diff --git a/api/10.11.0 b/api/10.11.0 new file mode 120000 index 00000000..372a462f --- /dev/null +++ b/api/10.11.0 @@ -0,0 +1 @@ +../webpanel/6.6.0 \ No newline at end of file diff --git a/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js b/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js new file mode 100644 index 00000000..9e32c51b --- /dev/null +++ b/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1266],{3140:function(e,t){var n="linux",a=[],s="f17c",o="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z";t.mw={prefix:"fab",iconName:n,icon:[448,512,a,s,o]},t.M_=t.mw},8595:function(e,t){var n="windows",a=[],s="f17a",o="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";t.mw={prefix:"fab",iconName:n,icon:[448,512,a,s,o]},t.tQ=t.mw},6795:function(e,t,n){n.d(t,{Q:function(){return c}});var a=n(6540),s=n(8785),o=n.n(s),r=n(8437);function i(e){return a.createElement(o(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function c(e){return r.Ay.showjson.value?a.createElement("div",{className:"text-left"},a.createElement(i,{obj:e.obj})):a.createElement(a.Fragment,null)}},1266:function(e,t,n){n.r(t);var a=n(3140),s=n(8595),o=n(6784),r=n(6540),i=n(5615),c=n(1274),l=n(8065),m=n(4180),d=n(3490),h=n(2576),u=n(5301),E=n(7864),b=n(4118),v=n(664),f=n(7567),w=n(6795),p=n(7255);class A extends r.Component{constructor(e){super(e),this.restart=this.restart.bind(this),this.state={busy:!1}}componentDidMount(){this.setState({busy:!0});const e=[];console.time("DataLoad"),e.push(this.loadAdminInfo()),(async()=>{await Promise.all(e),console.timeEnd("DataLoad"),this.setState({busy:!1})})()}async loadAdminInfo(){console.time("AdminLoad");const e=await d.A.getAdminInfo();switch(e.code){case u.s.ERROR:this.setState({error:e.error});break;case u.s.OK:this.setState({adminInfo:e.payload})}console.timeEnd("AdminLoad")}async restart(){this.setState({showRebootModal:!1,busy:!0}),console.time("Reboot");const e=await d.A.restartServer();switch(e.code){case u.s.ERROR:this.setState({error:e.error});break;case u.s.OK:window.location.reload()}this.setState({busy:!1}),console.timeEnd("Reboot")}render(){if(this.state.busy)return r.createElement(p.default,{text:"loading.admin"});const e=()=>this.setState({showRebootModal:!1}),t=!!((0,b.u)(this.context.user).administrationRights&h.O4.RestartHost),n=!!((0,b.u)(this.context.user).administrationRights&h.O4.ChangeVersion),m=!!((0,b.u)(this.context.user).administrationRights&h.O4.DownloadLogs);return r.createElement(r.Fragment,null,r.createElement(w.Q,{obj:this.state.adminInfo}),r.createElement(f.Ay,{error:this.state.error,onClose:()=>this.setState({error:void 0})}),r.createElement("div",{className:"text-center"},this.state.adminInfo?r.createElement(r.Fragment,null,r.createElement("h3",{className:" text-secondary"},r.createElement(l.A,{id:"view.admin.hostos"}),r.createElement(o.g,{fixedWidth:!0,icon:this.context.serverInfo.windowsHost?s.tQ:a.M_})),r.createElement("h5",{className:"text-secondary"},r.createElement(l.A,{id:"view.admin.remote"}),r.createElement("a",{href:this.state.adminInfo.trackedRepositoryUrl},this.state.adminInfo.trackedRepositoryUrl)),r.createElement("h3",{className:"text-secondary"},r.createElement(l.A,{id:"view.admin.version.current"}),r.createElement("span",{className:this.context.serverInfo.versionthis.setState({showRebootModal:!0})},r.createElement(l.A,{id:"view.admin.reboot.button"})),r.createElement(i.A,{className:"mr-2",variant:"primary",disabled:!n,onClick:()=>{this.props.history.push(v.Sb.admin_update.link??v.Sb.admin_update.route)}},r.createElement(l.A,{id:"view.admin.update.button"})),r.createElement(i.A,{variant:"primary",disabled:!m,onClick:()=>{this.props.history.push(v.Sb.admin_logs.link??v.Sb.admin_logs.route)}},r.createElement(l.A,{id:"view.admin.logs.button"})),r.createElement(c.A,{show:this.state.showRebootModal,onHide:e,size:"lg",centered:!0},r.createElement(c.A.Header,{closeButton:!0},r.createElement(c.A.Title,null,r.createElement(l.A,{id:"view.admin.reboot.modal.title"}))),r.createElement(c.A.Body,null,r.createElement(l.A,{id:"view.admin.reboot.modal.body"})),r.createElement(c.A.Footer,null,r.createElement(i.A,{onClick:e},r.createElement(l.A,{id:"generic.close"})),r.createElement(i.A,{variant:"danger",onClick:()=>{this.restart()}},r.createElement(l.A,{id:"view.admin.reboot.button"}))))))}}A.contextType=E.U,t.default=(0,m.y)(A)}}]); +//# sourceMappingURL=1266.af53a7c30c69a7c099c1.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js.map b/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js.map new file mode 100644 index 00000000..9f5c73c3 --- /dev/null +++ b/webpanel/6.6.0/1266.af53a7c30c69a7c099c1.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1266.af53a7c30c69a7c099c1.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faLinux.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faWindows.js","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/views/Administration.tsx"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'linux';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f17c';\nvar svgPathData = 'M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faLinux = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'windows';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f17a';\nvar svgPathData = 'M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faWindows = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
\n \n
\n );\n}\n","import { faLinux } from \"@fortawesome/free-brands-svg-icons/faLinux\";\nimport { faWindows } from \"@fortawesome/free-brands-svg-icons/faWindows\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { ReactNode } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Modal from \"react-bootstrap/Modal\";\nimport { FormattedMessage } from \"react-intl\";\nimport { RouteComponentProps } from \"react-router\";\nimport { withRouter } from \"react-router-dom\";\n\nimport AdminClient from \"../../ApiClient/AdminClient\";\nimport {\n AdministrationResponse,\n AdministrationRights\n} from \"../../ApiClient/generatedcode/generated\";\nimport InternalError, { ErrorCode } from \"../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../ApiClient/models/InternalComms/InternalStatus\";\nimport { GeneralContext } from \"../../contexts/GeneralContext\";\nimport { resolvePermissionSet } from \"../../utils/misc\";\nimport { AppRoutes } from \"../../utils/routes\";\nimport ErrorAlert from \"../utils/ErrorAlert\";\nimport { DebugJsonViewer } from \"../utils/JsonViewer\";\nimport Loading from \"../utils/Loading\";\n\ntype IProps = RouteComponentProps;\ninterface IState {\n adminInfo?: AdministrationResponse;\n error?: InternalError;\n busy: boolean;\n showRebootModal?: boolean;\n}\n\nclass Administration extends React.Component {\n public declare context: GeneralContext;\n\n public constructor(props: IProps) {\n super(props);\n this.restart = this.restart.bind(this);\n\n this.state = {\n busy: false\n };\n }\n\n public componentDidMount(): void {\n this.setState({\n busy: true\n });\n const tasks = [];\n\n console.time(\"DataLoad\");\n tasks.push(this.loadAdminInfo());\n\n void (async () => {\n await Promise.all(tasks);\n console.timeEnd(\"DataLoad\");\n this.setState({\n busy: false\n });\n })();\n }\n\n private async loadAdminInfo() {\n console.time(\"AdminLoad\");\n const response = await AdminClient.getAdminInfo();\n switch (response.code) {\n case StatusCode.ERROR: {\n this.setState({\n error: response.error\n });\n break;\n }\n case StatusCode.OK: {\n this.setState({\n adminInfo: response.payload\n });\n break;\n }\n }\n console.timeEnd(\"AdminLoad\");\n }\n\n private async restart() {\n this.setState({\n showRebootModal: false,\n busy: true\n });\n console.time(\"Reboot\");\n const response = await AdminClient.restartServer();\n switch (response.code) {\n case StatusCode.ERROR: {\n this.setState({\n error: response.error\n });\n break;\n }\n case StatusCode.OK: {\n window.location.reload();\n }\n }\n this.setState({\n busy: false\n });\n console.timeEnd(\"Reboot\");\n }\n\n public render(): ReactNode {\n if (this.state.busy) {\n return ;\n }\n\n const handleClose = () => this.setState({ showRebootModal: false });\n const handleOpen = () => this.setState({ showRebootModal: true });\n\n const canReboot = !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.RestartHost\n );\n const canUpdate = !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.ChangeVersion\n );\n const canLogs = !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.DownloadLogs\n );\n\n return (\n \n \n this.setState({ error: undefined })}\n />\n
\n {this.state.adminInfo ? (\n \n

\n \n \n

\n
\n \n \n {this.state.adminInfo.trackedRepositoryUrl}\n \n
\n

\n \n \n {this.context.serverInfo.version}\n \n

\n

\n \n \n {this.state.adminInfo.latestVersion}\n \n

\n
\n ) : null}\n
\n \n \n \n {\n this.props.history.push(\n AppRoutes.admin_update.link ?? AppRoutes.admin_update.route\n );\n }}>\n \n \n {\n this.props.history.push(\n AppRoutes.admin_logs.link ?? AppRoutes.admin_logs.route\n );\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n }\n}\nAdministration.contextType = GeneralContext;\nexport default withRouter(Administration);\n"],"names":["iconName","aliases","unicode","svgPathData","exports","prefix","icon","JsonViewer","props","React","ReactJson","src","obj","name","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","value","className","Administration","constructor","super","this","restart","bind","state","busy","componentDidMount","setState","tasks","console","time","push","loadAdminInfo","Promise","all","timeEnd","response","AdminClient","getAdminInfo","code","StatusCode","ERROR","error","OK","adminInfo","payload","showRebootModal","restartServer","window","location","reload","render","Loading","text","handleClose","canReboot","resolvePermissionSet","context","user","administrationRights","AdministrationRights","RestartHost","canUpdate","ChangeVersion","canLogs","DownloadLogs","ErrorAlert","onClose","undefined","FormattedMessage","id","FontAwesomeIcon","fixedWidth","serverInfo","windowsHost","faWindows","faLinux","href","trackedRepositoryUrl","version","latestVersion","Button","variant","disabled","onClick","handleOpen","history","AppRoutes","admin_update","link","route","admin_logs","Modal","show","onHide","size","centered","Header","closeButton","Title","Body","Footer","contextType","GeneralContext","withRouter"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js b/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js new file mode 100644 index 00000000..de4f479b --- /dev/null +++ b/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1552],{3728:function(e,t,o){var r,n=o(3110),i=o(5537),s=o(7602),a=o(4354),l=o(2576),c=o(6382),d=o(4173),u=o(5301),h=o(8437),p=o(6192),m=o(536);t.A=new((r=class e extends a.O{constructor(){super(),this.apiHttpClient=void 0,this.apiClient=void 0,this.apiRequestInterceptor={onFulfilled:async e=>{if("https://example.org:5000"===h.Ay.apipath.value){const e=new d.Ay(d.O4.NO_APIPATH,{void:!0});return Promise.reject(e)}if(e.overrideTokenDetection||"/api"!==e.url&&"/api/"!==e.url&&"/api/oauth_gateway"!==e.url&&"/api/oauth_gateway"!==e.url){const t=await this.wait4Token();e.headers.Authorization=`Bearer ${t.bearer||""}`}return e},onRejected:e=>Promise.reject(e)},this.apiResponseInterceptor={onFulfilled:e=>e,onRejected:(t,o)=>{const r=t;if(r?.code===d.O4.NO_APIPATH)return Promise.reject(r);if(!(t.response&&t.response.status&&e.globalHandledCodes.includes(t.response.status))){const e=t,o=new d.Ay(d.O4.AXIOS,{jsError:e},t.response);return Promise.reject(o)}const n=t.response;switch(t.response.status){case 400:{const e=n.data,t=new d.Ay(d.O4.HTTP_BAD_REQUEST,{errorMessage:e},n);return Promise.reject(t)}case 401:{const e=t.config;if("/api"===e.url||"api"===e.url)return Promise.resolve(t.response);if(this.autoLogin)return this.login().then((e=>{switch(e.code){case u.s.OK:return o.request(t.config);case u.s.ERROR:return this.emit("accessDenied"),this.logout(),Promise.reject(e)}}));{this.emit("accessDenied");const e=new d.Ay(d.O4.HTTP_ACCESS_DENIED,{void:!0},n,!0);return Promise.reject(e)}}case 403:{const e=t.config;if("/"!==e.url&&""!==e.url||"post"!==e.method){this.emit("accessDenied");const e=new d.Ay(d.O4.HTTP_ACCESS_DENIED,{void:!0},n,!0);return Promise.reject(e)}return Promise.resolve(t.response)}case 406:{const e=new d.Ay(d.O4.HTTP_NOT_ACCEPTABLE,{void:!0},n);return Promise.reject(e)}case 409:{const e=n.data,o=t.config;if("/Administration/Logs"===o.url&&"get"===o.method)return Promise.resolve(t.response);const r=new d.Ay(d.O4.HTTP_DATA_INEGRITY,{errorMessage:e},n);return Promise.reject(r)}case 426:{const e=n.data,t=new d.Ay(d.O4.HTTP_API_MISMATCH,{errorMessage:e},n);return Promise.reject(t)}case 500:{const e=n.data,t=new d.Ay(d.O4.HTTP_SERVER_ERROR,{errorMessage:e},n);return Promise.reject(t)}case 501:{const e=n.data,t=new d.Ay(d.O4.HTTP_UNIMPLEMENTED,{errorMessage:e},n);return Promise.reject(t)}case 503:return console.log("Server not ready, delaying request",t.config),new Promise((e=>{setTimeout(e,5e3)})).then((()=>o.request(t.config)));default:{const e=new d.Ay(d.O4.UNHANDLED_GLOBAL_RESPONSE,{axiosResponse:n},n);return Promise.reject(e)}}}},this.initialized=!1,this.loadingServerInfo=!1,this._serverInfo=void 0,this.autoLogin=!0,this.loggingIn=!1,this.getServerInfo=this.getServerInfo.bind(this),m.A.addHook(this.getServerInfo),this.on("purgeCache",(()=>{this._serverInfo=void 0,p.A.token&&m.A.runHooks(p.A.token)})),h.Ay.apipath.callback=()=>{console.log("API path changed"),window.location.reload()}}get serverInfo(){return this._serverInfo}get defaultHeaders(){return{Accept:"application/json",Api:"Tgstation.Server.Api/"+s.mG,"Webpanel-Version":s.xv}}async initApi(){console.log("Initializing API client"),console.time("APIInit"),this.apiHttpClient=new l.Qq({baseURL:h.Ay.apipath.value,withCredentials:!1,headers:new n.$t(this.defaultHeaders),validateStatus:t=>!e.globalHandledCodes.includes(t)}),this.apiHttpClient.instance.interceptors.request.use(this.apiRequestInterceptor.onFulfilled,this.apiRequestInterceptor.onRejected),this.apiHttpClient.instance.interceptors.response.use(this.apiResponseInterceptor.onFulfilled,(e=>this.apiResponseInterceptor.onRejected(e,this.apiHttpClient.instance))),this.apiClient=new l.jI(this.apiHttpClient),console.timeEnd("APIInit");let t=!1;const o=localStorage.getItem("SessionToken"),r=localStorage.getItem("SessionTokenExpiry"),i="true"==localStorage.getItem("SessionTokenDefault");if(o&&r)if(console.log("Found session token"),1e3*parseInt(r)>=Date.now()){const e={bearer:o};t=await this.setToken(e,i,!0)}else console.log("But it was expired");return this.initialized=!0,this.emit("initialized"),t}wait4Init(){return new Promise((e=>{this.initialized?e():this.on("initialized",(()=>e()))}))}wait4Token(){return new Promise((e=>{p.A.hasToken()?e(p.A.token):this.on("tokenAvailable",(t=>{e(t)}))}))}async login(e){await this.wait4Init(),console.log("Attempting login");let t,o,r=!1;if(e?p.A.credentials=e:p.A.credentials?.type===c.$.OAuth&&(this.logout(),r=!0),r||!p.A.credentials)return new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.LOGIN_NOCREDS,{void:!0})});if(this.loggingIn)return await new Promise((e=>{const t=o=>{e(o),this.removeListener("loadLoginInfo",t)};this.on("loadLoginInfo",t)}));this.loggingIn=!0;try{p.A.credentials.type==c.$.Password?(o=p.A.credentials.userName.toLowerCase()==p.A.default.userName.toLowerCase()&&p.A.credentials.password==p.A.default.password,t=await this.apiClient.api.apiRootControllerCreateToken({auth:{username:p.A.credentials.userName,password:p.A.credentials.password}})):(o=!1,t=await this.apiClient.api.apiRootControllerCreateToken({headers:new n.$t({OAuthProvider:p.A.credentials.provider,Authorization:`OAuth ${p.A.credentials.token}`})}))}catch(e){const t=new u.A({code:u.s.ERROR,error:e});return this.emit("loadLoginInfo",t),t}finally{this.loggingIn=!1}switch(t.status){case 200:{console.log("Login success");const e=t.data;await this.setToken(e,o,!1);const r=new u.A({code:u.s.OK,payload:e});return this.emit("loadLoginInfo",r),r}case 401:{this.logout(),console.log("Failed to login");const e=new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.LOGIN_FAIL,{void:!0},t)});return this.emit("loadLoginInfo",e),e}case 403:{this.logout(),console.log("Account disabled");const e=new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.LOGIN_DISABLED,{void:!0},t)});return this.emit("loadLoginInfo",e),e}case 429:{this.logout(),console.log("rate limited");const e=new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.LOGIN_RATELIMIT,{errorMessage:t.data},t)});return this.emit("loadLoginInfo",e),e}default:{const e=new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)});return this.emit("loadLoginInfo",e),e}}}async oAuthGateway(e){let t;await this.wait4Init(),console.log("Attempting OAuth gateway login");try{t=await this.apiClient.api.apiRootControllerCreateOAuthGatewayToken({headers:new n.$t({OAuthProvider:e.provider,Authorization:`OAuth ${e.token}`})})}catch(e){return new u.A({code:u.s.ERROR,error:e})}switch(t.status){case 200:console.log("OAuth gateway success");return new u.A({code:u.s.OK,payload:t.data});case 401:console.log("Failed to use OAuth Gateway");return new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.LOGIN_FAIL,{void:!0},t)});default:return new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}logout(){p.A.hasToken()&&(console.log("Logging out"),p.A.credentials=void 0,p.A.token=void 0,localStorage.removeItem("SessionToken"),localStorage.removeItem("SessionTokenExpiry"),this.emit("purgeCache"),this.emit("logout"))}async getServerInfo(e,t=!1){if(await this.wait4Init(),this._serverInfo&&!t)return this._serverInfo;if(this.loadingServerInfo)return new Promise((e=>{if(this._serverInfo)return void e(this._serverInfo);const t=o=>{e(o),this.removeListener("loadServerInfo",t)};this.on("loadServerInfo",t)}));let o;this.loadingServerInfo=!0;try{o=await this.apiClient.api.apiRootControllerServerInfo()}catch(e){const t=new u.A({code:u.s.ERROR,error:e});return this.emit("loadServerInfo",t),this.loadingServerInfo=!1,t}if(200===o.status){const e=o.data,t=new u.A({code:u.s.OK,payload:e});return this.emit("loadServerInfo",t),this._serverInfo=t,this.loadingServerInfo=!1,t}{const e=new u.A({code:u.s.ERROR,error:new d.Ay(d.O4.UNHANDLED_RESPONSE,{axiosResponse:o},o)});return this.emit("loadServerInfo",e),this.loadingServerInfo=!1,e}}async setToken(e,t,o){const r=p.A.token,n=p.A.defaulted;if(p.A.token=e,p.A.defaulted=t,o){let e;try{e=200!=(await this.apiClient.api.apiRootControllerServerInfo({overrideTokenDetection:!0})).status}catch{e=!0}if(e)return p.A.token=r,p.A.defaulted=n,console.log("Stored token failed to authenticate"),!1;console.log("Stored token authenticated")}localStorage.setItem("SessionToken",e.bearer);const s=(0,i.s)(e.bearer);return s.exp&&localStorage.setItem("SessionTokenExpiry",s.exp.toString()),localStorage.setItem("SessionTokenDefault",t?"true":"false"),this.emit("tokenAvailable",e),m.A.runHooks(e),!0}}).globalHandledCodes=[400,401,403,406,409,426,500,501,503],r)},1552:function(e,t,o){var r=o(4354),n=o(2576),i=o(4173),s=o(5301),a=o(3728),l=o(8437),c=o(536);t.A=new class extends r.O{get cachedUser(){return this._cachedUser}constructor(){super(),this._cachedUser=void 0,this.loadingUserInfo=!1,this.createAllUsersWithAA=!1,this.getCurrentUser=this.getCurrentUser.bind(this),c.A.addHook((()=>this.getCurrentUser())),a.A.on("purgeCache",(()=>{this._cachedUser=void 0}))}async editUser(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.userControllerUpdate(e)}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 200:{const o=await this.getCurrentUser();return o.code!=s.s.OK?new s.A({code:s.s.ERROR,error:o.error}):(o.payload.id==e.id&&a.A.emit("purgeCache"),new s.A({code:s.s.OK,payload:t.data}))}case 404:{const e=t.data;return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.USER_NOT_FOUND,{errorMessage:e})})}default:return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async getCurrentUser(e){if(await a.A.wait4Init(),this._cachedUser&&!e)return this._cachedUser;if(this.loadingUserInfo)return await new Promise((e=>{const t=o=>{e(o),this.removeListener("loadUserInfo",t)};this.on("loadUserInfo",t)}));let t;this.loadingUserInfo=!0;try{t=await a.A.apiClient.api.userControllerRead()}catch(e){const t=new s.A({code:s.s.ERROR,error:e});return this.emit("loadUserInfo",t),this.loadingUserInfo=!1,t}if(200===t.status){const e=new s.A({code:s.s.OK,payload:t.data});return this._cachedUser=e,this.emit("loadUserInfo",e),this.loadingUserInfo=!1,e}{const e=new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)});return this.emit("loadUserInfo",e),this.loadingUserInfo=!1,e}}async listUsers({page:e=1,pageSize:t=l.Ay.itemsperpage.value}){let o;await a.A.wait4Init();try{o=await a.A.apiClient.api.userControllerList({page:e,pageSize:t})}catch(e){return new s.A({code:s.s.ERROR,error:e})}if(200===o.status){const e=o.data.content.sort(((e,t)=>e.id-t.id));return new s.A({code:s.s.OK,payload:{...o.data,content:e}})}return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.UNHANDLED_RESPONSE,{axiosResponse:o},o)})}async getUser(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.userControllerGetId(e)}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 200:return new s.A({code:s.s.OK,payload:t.data});case 404:{const e=t.data;return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.USER_NOT_FOUND,{errorMessage:e})})}default:return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async createUser(e){if(await a.A.wait4Init(),void 0===e.enabled&&(e.enabled=!0),this.createAllUsersWithAA){e.instanceManagerRights=0,e.administrationRights=0;for(const t of Object.values(n.cq))"number"==typeof t&&(e.instanceManagerRights+=t);for(const t of Object.values(n.O4))"number"==typeof t&&(e.administrationRights+=t)}let t;try{t=await a.A.apiClient.api.userControllerCreate(e)}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 201:return new s.A({code:s.s.OK,payload:t.data});case 410:{const e=t.data;return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.USER_NO_SYS_IDENT,{errorMessage:e})})}default:return new s.A({code:s.s.ERROR,error:new i.Ay(i.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}}},4354:function(e,t,o){o.d(t,{O:function(){return n}});var r=o(4101);class n extends r.TypedEmitter{constructor(){super(),null==window.clients&&(window.clients={}),console.log(this.constructor.name,this),window.clients[this.constructor.name]=this}}},2576:function(e,t,o){o.d(t,{B5:function(){return s},CF:function(){return O},GZ:function(){return h},HB:function(){return c},LD:function(){return y},NB:function(){return u},O4:function(){return i},Qq:function(){return T},SK:function(){return A},WX:function(){return I},_W:function(){return E},cq:function(){return R},em:function(){return g},jI:function(){return w},k_:function(){return a},mA:function(){return S},mS:function(){return p},p3:function(){return f},qd:function(){return l},rY:function(){return m},u3:function(){return d},vH:function(){return C}});var r=o(3110),n=o(1083);let i=function(e){return e[e.None=0]="None",e[e.WriteUsers=1]="WriteUsers",e[e.RestartHost=2]="RestartHost",e[e.ChangeVersion=4]="ChangeVersion",e[e.EditOwnPassword=8]="EditOwnPassword",e[e.ReadUsers=16]="ReadUsers",e[e.DownloadLogs=32]="DownloadLogs",e[e.EditOwnOAuthConnections=64]="EditOwnOAuthConnections",e[e.UploadVersion=128]="UploadVersion",e}({}),s=function(e){return e[e.None=0]="None",e[e.WriteEnabled=1]="WriteEnabled",e[e.WriteProvider=2]="WriteProvider",e[e.WriteChannels=4]="WriteChannels",e[e.WriteConnectionString=8]="WriteConnectionString",e[e.ReadConnectionString=16]="ReadConnectionString",e[e.Read=32]="Read",e[e.Create=64]="Create",e[e.Delete=128]="Delete",e[e.WriteName=256]="WriteName",e[e.WriteReconnectionInterval=512]="WriteReconnectionInterval",e[e.WriteChannelLimit=1024]="WriteChannelLimit",e}({}),a=function(e){return e[e.Irc=0]="Irc",e[e.Discord=1]="Discord",e}({}),l=function(e){return e[e.None=0]="None",e[e.Read=1]="Read",e[e.Write=2]="Write",e[e.List=4]="List",e[e.Delete=8]="Delete",e}({}),c=function(e){return e[e.Disallowed=0]="Disallowed",e[e.HostWrite=1]="HostWrite",e[e.SystemIdentityWrite=2]="SystemIdentityWrite",e}({}),d=function(e){return e[e.Optional=0]="Optional",e[e.Required=1]="Required",e[e.Skipped=2]="Skipped",e}({}),u=function(e){return e[e.None=0]="None",e[e.ReadRevision=1]="ReadRevision",e[e.SetPort=2]="SetPort",e[e.SetAutoStart=4]="SetAutoStart",e[e.SetSecurity=8]="SetSecurity",e[e.ReadMetadata=16]="ReadMetadata",e[e.SetWebClient=32]="SetWebClient",e[e.SoftRestart=64]="SoftRestart",e[e.SoftShutdown=128]="SoftShutdown",e[e.Restart=256]="Restart",e[e.Shutdown=512]="Shutdown",e[e.Start=1024]="Start",e[e.SetStartupTimeout=2048]="SetStartupTimeout",e[e.SetHealthCheckInterval=4096]="SetHealthCheckInterval",e[e.CreateDump=8192]="CreateDump",e[e.SetTopicTimeout=16384]="SetTopicTimeout",e[e.SetAdditionalParameters=32768]="SetAdditionalParameters",e[e.SetVisibility=65536]="SetVisibility",e[e.SetProfiler=131072]="SetProfiler",e[e.SetLogOutput=262144]="SetLogOutput",e[e.SetMapThreads=524288]="SetMapThreads",e[e.BroadcastMessage=1048576]="BroadcastMessage",e[e.SetMinidumps=2097152]="SetMinidumps",e}({}),h=function(e){return e[e.Trusted=0]="Trusted",e[e.Safe=1]="Safe",e[e.Ultrasafe=2]="Ultrasafe",e}({}),p=function(e){return e[e.Public=0]="Public",e[e.Private=1]="Private",e[e.Invisible=2]="Invisible",e}({}),m=function(e){return e[e.None=0]="None",e[e.Read=1]="Read",e[e.Compile=2]="Compile",e[e.CancelCompile=4]="CancelCompile",e[e.SetDme=8]="SetDme",e[e.SetApiValidationPort=16]="SetApiValidationPort",e[e.CompileJobs=32]="CompileJobs",e[e.SetSecurityLevel=64]="SetSecurityLevel",e[e.SetApiValidationRequirement=128]="SetApiValidationRequirement",e[e.SetTimeout=256]="SetTimeout",e[e.SetCompilerArguments=512]="SetCompilerArguments",e}({}),g=function(e){return e[e.None=0]="None",e[e.ReadActive=1]="ReadActive",e[e.ListInstalled=2]="ListInstalled",e[e.InstallOfficialOrChangeActiveByondVersion=4]="InstallOfficialOrChangeActiveByondVersion",e[e.CancelInstall=8]="CancelInstall",e[e.InstallCustomByondVersion=16]="InstallCustomByondVersion",e[e.DeleteInstall=32]="DeleteInstall",e[e.InstallOfficialOrChangeActiveOpenDreamVersion=64]="InstallOfficialOrChangeActiveOpenDreamVersion",e[e.InstallCustomOpenDreamVersion=128]="InstallCustomOpenDreamVersion",e}({}),f=function(e){return e[e.Byond=0]="Byond",e[e.OpenDream=1]="OpenDream",e}({}),C=function(e){return e[e.InternalServerError=0]="InternalServerError",e[e.ApiMismatch=1]="ApiMismatch",e[e.ModelValidationFailure=2]="ModelValidationFailure",e[e.IOError=3]="IOError",e[e.BadHeaders=4]="BadHeaders",e[e.TokenWithToken=5]="TokenWithToken",e[e.DatabaseIntegrityConflict=6]="DatabaseIntegrityConflict",e[e.MissingHostWatchdog=7]="MissingHostWatchdog",e[e.CannotChangeServerSuite=8]="CannotChangeServerSuite",e[e.RemoteApiError=9]="RemoteApiError",e[e.ServerUpdateInProgress=10]="ServerUpdateInProgress",e[e.UserNameChange=11]="UserNameChange",e[e.UserSidChange=12]="UserSidChange",e[e.UserMismatchNameSid=13]="UserMismatchNameSid",e[e.UserMismatchPasswordSid=14]="UserMismatchPasswordSid",e[e.UserPasswordLength=15]="UserPasswordLength",e[e.UserColonInName=16]="UserColonInName",e[e.UserMissingName=17]="UserMissingName",e[e.InstanceRelocateOnline=18]="InstanceRelocateOnline",e[e.InstanceAtExistingPath=19]="InstanceAtExistingPath",e[e.InstanceDetachOnline=20]="InstanceDetachOnline",e[e.InstanceAtConflictingPath=21]="InstanceAtConflictingPath",e[e.InstanceLimitReached=22]="InstanceLimitReached",e[e.InstanceWhitespaceNameOrPath=23]="InstanceWhitespaceNameOrPath",e[e.InstanceHeaderRequired=24]="InstanceHeaderRequired",e[e.RequiresPosixSystemIdentity=25]="RequiresPosixSystemIdentity",e[e.ConfigurationFileUpdated=26]="ConfigurationFileUpdated",e[e.ConfigurationDirectoryNotEmpty=27]="ConfigurationDirectoryNotEmpty",e[e.SwarmIntegrityCheckFailed=28]="SwarmIntegrityCheckFailed",e[e.RepoMismatchUserAndAccessToken=29]="RepoMismatchUserAndAccessToken",e[e.RepoCloning=30]="RepoCloning",e[e.RepoBusy=31]="RepoBusy",e[e.RepoExists=32]="RepoExists",e[e.RepoMissing=33]="RepoMissing",e[e.RepoMismatchShaAndReference=34]="RepoMismatchShaAndReference",e[e.RepoMismatchShaAndUpdate=35]="RepoMismatchShaAndUpdate",e[e.EngineCannotDeleteActiveVersion=36]="EngineCannotDeleteActiveVersion",e[e.RepoDuplicateTestMerge=37]="RepoDuplicateTestMerge",e[e.RepoWhitespaceCommitterName=38]="RepoWhitespaceCommitterName",e[e.RepoWhitespaceCommitterEmail=39]="RepoWhitespaceCommitterEmail",e[e.ApiPageTooLarge=40]="ApiPageTooLarge",e[e.ApiInvalidPageOrPageSize=41]="ApiInvalidPageOrPageSize",e[e.ChatBotWrongChannelType=42]="ChatBotWrongChannelType",e[e.ChatBotWhitespaceConnectionString=43]="ChatBotWhitespaceConnectionString",e[e.ChatBotWhitespaceName=44]="ChatBotWhitespaceName",e[e.ChatBotProviderMissing=45]="ChatBotProviderMissing",e[e.ConfigurationContendedAccess=46]="ConfigurationContendedAccess",e[e.ChatBotMax=47]="ChatBotMax",e[e.ChatBotMaxChannels=48]="ChatBotMaxChannels",e[e.ByondDirectXInstallFail=49]="ByondDirectXInstallFail",e[e.EngineDownloadFail=50]="EngineDownloadFail",e[e.EngineNoVersionsInstalled=51]="EngineNoVersionsInstalled",e[e.DeploymentNeverValidated=52]="DeploymentNeverValidated",e[e.DeploymentInvalidValidation=53]="DeploymentInvalidValidation",e[e.CannotRemoveLastAuthenticationOption=54]="CannotRemoveLastAuthenticationOption",e[e.DeploymentNoDme=55]="DeploymentNoDme",e[e.DeploymentMissingDme=56]="DeploymentMissingDme",e[e.DeploymentExitCode=57]="DeploymentExitCode",e[e.DeploymentInProgress=58]="DeploymentInProgress",e[e.InstanceMissingDreamDaemonSettings=59]="InstanceMissingDreamDaemonSettings",e[e.InstanceMissingDreamMakerSettings=60]="InstanceMissingDreamMakerSettings",e[e.InstanceMissingRepositorySettings=61]="InstanceMissingRepositorySettings",e[e.InstanceUpdateTestMergeConflict=62]="InstanceUpdateTestMergeConflict",e[e.RepoCredentialsRequired=63]="RepoCredentialsRequired",e[e.RepoCannotAuthenticate=64]="RepoCannotAuthenticate",e[e.RepoReferenceRequired=65]="RepoReferenceRequired",e[e.WatchdogRunning=66]="WatchdogRunning",e[e.WatchdogCompileJobCorrupted=67]="WatchdogCompileJobCorrupted",e[e.WatchdogStartupFailed=68]="WatchdogStartupFailed",e[e.WatchdogStartupTimeout=69]="WatchdogStartupTimeout",e[e.RepoUnsupportedTestMergeRemote=70]="RepoUnsupportedTestMergeRemote",e[e.RepoSwappedShaOrReference=71]="RepoSwappedShaOrReference",e[e.RepoMergeConflict=72]="RepoMergeConflict",e[e.RepoReferenceNotTracking=73]="RepoReferenceNotTracking",e[e.RepoTestMergeConflict=74]="RepoTestMergeConflict",e[e.InstanceNotAtWhitelistedPath=75]="InstanceNotAtWhitelistedPath",e[e.GameServerDoubleSoft=76]="GameServerDoubleSoft",e[e.DreamDaemonPagerRunning=77]="DreamDaemonPagerRunning",e[e.GameServerPortInUse=78]="GameServerPortInUse",e[e.PostDeployFailure=79]="PostDeployFailure",e[e.WatchdogNotRunning=80]="WatchdogNotRunning",e[e.ResourceNotPresent=81]="ResourceNotPresent",e[e.ResourceNeverPresent=82]="ResourceNeverPresent",e[e.GitHubApiRateLimit=83]="GitHubApiRateLimit",e[e.JobStopped=84]="JobStopped",e[e.MissingGCore=85]="MissingGCore",e[e.GCoreFailure=86]="GCoreFailure",e[e.RepoTestMergeInvalidRemote=87]="RepoTestMergeInvalidRemote",e[e.EngineNonExistentCustomVersion=88]="EngineNonExistentCustomVersion",e[e.GameServerOffline=89]="GameServerOffline",e[e.InstanceOffline=90]="InstanceOffline",e[e.ChatCannotConnectProvider=91]="ChatCannotConnectProvider",e[e.EngineFirewallFail=92]="EngineFirewallFail",e[e.NoPortsAvailable=93]="NoPortsAvailable",e[e.PortNotAvailable=94]="PortNotAvailable",e[e.AdminUserCannotOAuth=95]="AdminUserCannotOAuth",e[e.OAuthProviderDisabled=96]="OAuthProviderDisabled",e[e.FileUploadExpired=97]="FileUploadExpired",e[e.UserGroupAndPermissionSet=98]="UserGroupAndPermissionSet",e[e.UserGroupNotEmpty=99]="UserGroupNotEmpty",e[e.UserLimitReached=100]="UserLimitReached",e[e.UserGroupLimitReached=101]="UserGroupLimitReached",e[e.DeploymentTimeout=102]="DeploymentTimeout",e[e.BroadcastFailure=103]="BroadcastFailure",e[e.OpenDreamCantFindDotnet=104]="OpenDreamCantFindDotnet",e[e.OpenDreamTooOld=105]="OpenDreamTooOld",e[e.DotnetDiagnosticsFailure=106]="DotnetDiagnosticsFailure",e[e.DeploymentWrongDme=107]="DeploymentWrongDme",e[e.RepoTokenUsernameMismatch=108]="RepoTokenUsernameMismatch",e[e.RemoteGatewaysNotImplemented=109]="RemoteGatewaysNotImplemented",e}({}),R=function(e){return e[e.None=0]="None",e[e.Read=1]="Read",e[e.Create=2]="Create",e[e.Rename=4]="Rename",e[e.Relocate=8]="Relocate",e[e.SetOnline=16]="SetOnline",e[e.Delete=32]="Delete",e[e.List=64]="List",e[e.SetConfiguration=128]="SetConfiguration",e[e.SetAutoUpdate=256]="SetAutoUpdate",e[e.SetChatBotLimit=512]="SetChatBotLimit",e[e.GrantPermissions=1024]="GrantPermissions",e}({}),A=function(e){return e[e.None=0]="None",e[e.Read=1]="Read",e[e.Write=2]="Write",e[e.Create=4]="Create",e}({}),y=function(e){return e.GitHub="GitHub",e.Discord="Discord",e.TGForums="TGForums",e.Keycloak="Keycloak",e.InvisionCommunity="InvisionCommunity",e}({}),S=function(e){return e[e.Unknown=0]="Unknown",e[e.GitHub=1]="GitHub",e[e.GitLab=2]="GitLab",e}({}),I=function(e){return e[e.None=0]="None",e[e.CancelPendingChanges=1]="CancelPendingChanges",e[e.SetOrigin=2]="SetOrigin",e[e.SetSha=4]="SetSha",e[e.MergePullRequest=8]="MergePullRequest",e[e.UpdateBranch=16]="UpdateBranch",e[e.ChangeCommitter=32]="ChangeCommitter",e[e.ChangeTestMergeCommits=64]="ChangeTestMergeCommits",e[e.ChangeCredentials=128]="ChangeCredentials",e[e.SetReference=256]="SetReference",e[e.Read=512]="Read",e[e.ChangeAutoUpdateSettings=1024]="ChangeAutoUpdateSettings",e[e.Delete=2048]="Delete",e[e.CancelClone=4096]="CancelClone",e[e.ChangeSubmoduleUpdate=8192]="ChangeSubmoduleUpdate",e[e.Reclone=16384]="Reclone",e}({}),O=function(e){return e[e.Administration=0]="Administration",e[e.InstanceManager=1]="InstanceManager",e[e.Repository=2]="Repository",e[e.Engine=3]="Engine",e[e.DreamMaker=4]="DreamMaker",e[e.DreamDaemon=5]="DreamDaemon",e[e.ChatBots=6]="ChatBots",e[e.Configuration=7]="Configuration",e[e.InstancePermissionSet=8]="InstancePermissionSet",e}({}),E=function(e){return e[e.Offline=0]="Offline",e[e.Restoring=1]="Restoring",e[e.Online=2]="Online",e[e.DelayedRestart=3]="DelayedRestart",e}({}),D=function(e){return e.Json="application/json",e.FormData="multipart/form-data",e.UrlEncoded="application/x-www-form-urlencoded",e.Text="text/plain",e}({});class T{constructor({securityWorker:e,secure:t,format:o,...i}={}){this.instance=void 0,this.securityData=null,this.securityWorker=void 0,this.secure=void 0,this.format=void 0,this.setSecurityData=e=>{this.securityData=e},this.request=async({secure:e,path:t,type:o,query:n,format:i,body:s,headers:a,...l})=>{const c=("boolean"==typeof e?e:this.secure)&&this.securityWorker&&await this.securityWorker(this.securityData)||{};l.headers=a?new r.$t(a):new r.$t;const d=this.mergeRequestParams(l,c),u=i||this.format||void 0;return o===D.FormData&&s&&null!==s&&"object"==typeof s&&(s=this.createFormData(s)),o===D.Text&&s&&null!==s&&"string"!=typeof s&&(s=JSON.stringify(s)),this.instance.request({...d,headers:{...d.headers||{},...o?{"Content-Type":o}:{}},params:n,responseType:u,data:s,url:t})},this.instance=n.A.create({...i,baseURL:i.baseURL||""}),this.secure=t,this.format=o,this.securityWorker=e}mergeRequestParams(e,t){const o=e.method||t&&t.method;return{...this.instance.defaults,...e,...t||{},headers:{...o&&this.instance.defaults.headers[o.toLowerCase()]||{},...e.headers||{},...t&&t.headers||{}}}}stringifyFormItem(e){return"object"==typeof e&&null!==e?JSON.stringify(e):`${e}`}createFormData(e){return e instanceof FormData?e:Object.keys(e||{}).reduce(((t,o)=>{const r=e[o],n=r instanceof Array?r:[r];for(const e of n){const r=e instanceof Blob||e instanceof File;t.append(o,r?e:this.stringifyFormItem(e))}return t}),new FormData)}}class w{constructor(e){this.http=void 0,this.api={administrationControllerRead:(e,t={})=>this.http.request({path:"/api/Administration",method:"GET",query:e,format:"json",...t}),administrationControllerUpdate:(e,t={})=>this.http.request({path:"/api/Administration",method:"POST",body:e,type:D.Json,format:"json",...t}),administrationControllerDelete:(e={})=>this.http.request({path:"/api/Administration",method:"DELETE",...e}),administrationControllerListLogs:(e,t={})=>this.http.request({path:"/api/Administration/Logs",method:"GET",query:e,secure:!0,format:"json",...t}),administrationControllerGetLog:(e,t={})=>this.http.request({path:`/api/Administration/Logs/${e}`,method:"GET",secure:!0,format:"json",...t}),apiRootControllerServerInfo:(e={})=>this.http.request({path:"/api",method:"GET",format:"json",...e}),apiRootControllerCreateToken:(e={})=>this.http.request({path:"/api",method:"POST",secure:!0,format:"json",...e}),apiRootControllerCreateOAuthGatewayToken:(e={})=>this.http.request({path:"/api/oauth_gateway",method:"POST",format:"json",...e}),chatControllerCreate:(e,t={})=>this.http.request({path:"/api/Chat",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),chatControllerUpdate:(e,t={})=>this.http.request({path:"/api/Chat",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),chatControllerDelete:(e,t={})=>this.http.request({path:`/api/Chat/${e}`,method:"DELETE",secure:!0,...t}),chatControllerGetId:(e,t={})=>this.http.request({path:`/api/Chat/${e}`,method:"GET",secure:!0,format:"json",...t}),chatControllerList:(e,t={})=>this.http.request({path:"/api/Chat/List",method:"GET",query:e,secure:!0,format:"json",...t}),configurationControllerUpdate:(e,t={})=>this.http.request({path:"/api/Config",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),configurationControllerCreateDirectory:(e,t={})=>this.http.request({path:"/api/Config",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),configurationControllerDeleteDirectory:(e,t={})=>this.http.request({path:"/api/Config",method:"DELETE",body:e,secure:!0,type:D.Json,...t}),configurationControllerFile:(e,t={})=>this.http.request({path:`/api/Config/File/${e}`,method:"GET",secure:!0,format:"json",...t}),configurationControllerDirectory:({directoryPath:e,...t},o={})=>this.http.request({path:`/api/Config/List/${e}`,method:"GET",query:t,secure:!0,format:"json",...o}),configurationControllerList:(e,t={})=>this.http.request({path:"/api/Config/List",method:"GET",query:e,secure:!0,format:"json",...t}),dreamDaemonControllerCreate:(e={})=>this.http.request({path:"/api/DreamDaemon",method:"PUT",secure:!0,format:"json",...e}),dreamDaemonControllerRead:(e={})=>this.http.request({path:"/api/DreamDaemon",method:"GET",secure:!0,format:"json",...e}),dreamDaemonControllerDelete:(e={})=>this.http.request({path:"/api/DreamDaemon",method:"DELETE",secure:!0,...e}),dreamDaemonControllerUpdate:(e,t={})=>this.http.request({path:"/api/DreamDaemon",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),dreamDaemonControllerRestart:(e={})=>this.http.request({path:"/api/DreamDaemon",method:"PATCH",secure:!0,format:"json",...e}),dreamDaemonControllerCreateDump:(e={})=>this.http.request({path:"/api/DreamDaemon/Diagnostics",method:"PATCH",secure:!0,format:"json",...e}),dreamMakerControllerRead:(e={})=>this.http.request({path:"/api/DreamMaker",method:"GET",secure:!0,format:"json",...e}),dreamMakerControllerCreate:(e={})=>this.http.request({path:"/api/DreamMaker",method:"PUT",secure:!0,format:"json",...e}),dreamMakerControllerUpdate:(e,t={})=>this.http.request({path:"/api/DreamMaker",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),dreamMakerControllerGetId:(e,t={})=>this.http.request({path:`/api/DreamMaker/${e}`,method:"GET",secure:!0,format:"json",...t}),dreamMakerControllerList:(e,t={})=>this.http.request({path:"/api/DreamMaker/List",method:"GET",query:e,secure:!0,format:"json",...t}),engineControllerRead:(e={})=>this.http.request({path:"/api/Engine",method:"GET",secure:!0,format:"json",...e}),engineControllerUpdate:(e,t={})=>this.http.request({path:"/api/Engine",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),engineControllerDelete:(e,t={})=>this.http.request({path:"/api/Engine",method:"DELETE",body:e,secure:!0,type:D.Json,format:"json",...t}),engineControllerList:(e,t={})=>this.http.request({path:"/api/Engine/List",method:"GET",query:e,secure:!0,format:"json",...t}),instanceControllerCreate:(e,t={})=>this.http.request({path:"/api/Instance",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),instanceControllerUpdate:(e,t={})=>this.http.request({path:"/api/Instance",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),instanceControllerDelete:(e,t={})=>this.http.request({path:`/api/Instance/${e}`,method:"DELETE",secure:!0,...t}),instanceControllerGetId:(e,t={})=>this.http.request({path:`/api/Instance/${e}`,method:"GET",secure:!0,format:"json",...t}),instanceControllerGrantPermissions:(e,t={})=>this.http.request({path:`/api/Instance/${e}`,method:"PATCH",secure:!0,...t}),instanceControllerList:(e,t={})=>this.http.request({path:"/api/Instance/List",method:"GET",query:e,secure:!0,format:"json",...t}),instancePermissionSetControllerCreate:(e,t={})=>this.http.request({path:"/api/InstancePermissionSet",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),instancePermissionSetControllerUpdate:(e,t={})=>this.http.request({path:"/api/InstancePermissionSet",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),instancePermissionSetControllerRead:(e={})=>this.http.request({path:"/api/InstancePermissionSet",method:"GET",secure:!0,format:"json",...e}),instancePermissionSetControllerList:(e,t={})=>this.http.request({path:"/api/InstancePermissionSet/List",method:"GET",query:e,secure:!0,format:"json",...t}),instancePermissionSetControllerGetId:(e,t={})=>this.http.request({path:`/api/InstancePermissionSet/${e}`,method:"GET",secure:!0,format:"json",...t}),instancePermissionSetControllerDelete:(e,t={})=>this.http.request({path:`/api/InstancePermissionSet/${e}`,method:"DELETE",secure:!0,...t}),jobControllerRead:(e,t={})=>this.http.request({path:"/api/Job",method:"GET",query:e,secure:!0,format:"json",...t}),jobControllerList:(e,t={})=>this.http.request({path:"/api/Job/List",method:"GET",query:e,secure:!0,format:"json",...t}),jobControllerDelete:(e,t={})=>this.http.request({path:`/api/Job/${e}`,method:"DELETE",secure:!0,format:"json",...t}),jobControllerGetId:(e,t={})=>this.http.request({path:`/api/Job/${e}`,method:"GET",secure:!0,format:"json",...t}),repositoryControllerCreate:(e,t={})=>this.http.request({path:"/api/Repository",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),repositoryControllerDelete:(e={})=>this.http.request({path:"/api/Repository",method:"DELETE",secure:!0,format:"json",...e}),repositoryControllerReclone:(e={})=>this.http.request({path:"/api/Repository",method:"PATCH",secure:!0,format:"json",...e}),repositoryControllerRead:(e={})=>this.http.request({path:"/api/Repository",method:"GET",secure:!0,format:"json",...e}),repositoryControllerUpdate:(e,t={})=>this.http.request({path:"/api/Repository",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),transferControllerDownload:(e,t={})=>this.http.request({path:"/api/Transfer",method:"GET",query:e,secure:!0,...t}),transferControllerUpload:(e,t,o={})=>this.http.request({path:"/api/Transfer",method:"PUT",query:e,body:t,secure:!0,...o}),userControllerCreate:(e,t={})=>this.http.request({path:"/api/User",method:"PUT",body:e,type:D.Json,format:"json",...t}),userControllerUpdate:(e,t={})=>this.http.request({path:"/api/User",method:"POST",body:e,type:D.Json,format:"json",...t}),userControllerRead:(e={})=>this.http.request({path:"/api/User",method:"GET",format:"json",...e}),userControllerList:(e,t={})=>this.http.request({path:"/api/User/List",method:"GET",query:e,format:"json",...t}),userControllerGetId:(e,t={})=>this.http.request({path:`/api/User/${e}`,method:"GET",secure:!0,format:"json",...t}),userGroupControllerCreate:(e,t={})=>this.http.request({path:"/api/UserGroup",method:"PUT",body:e,secure:!0,type:D.Json,format:"json",...t}),userGroupControllerUpdate:(e,t={})=>this.http.request({path:"/api/UserGroup",method:"POST",body:e,secure:!0,type:D.Json,format:"json",...t}),userGroupControllerGetId:(e,t={})=>this.http.request({path:`/api/UserGroup/${e}`,method:"GET",format:"json",...t}),userGroupControllerDelete:(e,t={})=>this.http.request({path:`/api/UserGroup/${e}`,method:"DELETE",secure:!0,...t}),userGroupControllerList:(e,t={})=>this.http.request({path:"/api/UserGroup/List",method:"GET",query:e,format:"json",...t})},this.http=e}}},6382:function(e,t,o){o.d(t,{$:function(){return r}});let r=function(e){return e[e.Password=0]="Password",e[e.OAuth=1]="OAuth",e}({})},4173:function(e,t,o){o.d(t,{Ay:function(){return c},MZ:function(){return l},O4:function(){return a}});var r=o(4118),n=o(2576),i=o(8437),s=o(6192);let a=function(e){return e.OK='Isnt displayed but is used as an "error" when everything is ok',e.HTTP_BAD_REQUEST="error.http.bad_request",e.HTTP_DATA_INEGRITY="error.http.data_integrity",e.HTTP_API_MISMATCH="error.http.api_mismatch",e.HTTP_SERVER_ERROR="error.http.server_error",e.HTTP_UNIMPLEMENTED="error.http.unimplemented",e.HTTP_ACCESS_DENIED="error.http.access_denied",e.HTTP_NOT_ACCEPTABLE="error.http.not_acceptable",e.UNHANDLED_RESPONSE="error.unhandled_response",e.UNHANDLED_GLOBAL_RESPONSE="error.unhandled_global_response",e.AXIOS="error.axios",e.GITHUB_FAIL="error.github",e.APP_FAIL="error.app",e.NO_APIPATH="error.no_apipath",e.LOGIN_FAIL="error.login.bad_user_pass",e.LOGIN_NOCREDS="error.login.no_creds",e.LOGIN_DISABLED="error.login.user_disabled",e.LOGIN_BAD_OAUTH="error.login.bad_oauth",e.LOGIN_RATELIMIT="error.login.rate_limit",e.USER_NO_SYS_IDENT="error.user.no_sys_ident",e.USER_NOT_FOUND="error.user.not_found",e.ADMIN_GITHUB_RATE="error.admin.rate",e.ADMIN_GITHUB_ERROR="error.admin.error",e.ADMIN_WATCHDOG_UNAVAIL="error.admin.watchdog.avail",e.ADMIN_VERSION_NOT_FOUND="error.admin.update.notfound",e.ADMIN_LOGS_IO_ERROR="error.admin.logs.io",e.JOB_JOB_NOT_FOUND="error.job.not_found",e.JOB_JOB_COMPLETE="error.job.complete",e.TRANSFER_NOT_AVAILABLE="error.transfer.not_available",e.UPLOAD_FAILED="error.transfer.upload_failed",e.GROUP_NOT_FOUND="error.group.not_found",e.GROUP_NOT_EMPTY="error.group.not_empty",e.NO_DB_ENTITY="error.no_db_entity",e.ENGINE_VERSION_NOT_FOUND="error.no_engine_version",e.COMPILE_JOB_NOT_FOUND="error.compile_job_not_found",e.CONFIG_FILE_NOT_FOUND="error.config_file_not_found",e.CONFIG_FILE_IO_ERROR="error.config_file_io",e.CONFIG_FILE_DIRECTORY_NOT_FOUND="error.config_file_directory_not_found",e.BAD_YML="error.bad_yml",e.BAD_TGS_YML_VERSION="error.bad_tgs_yml_version",e.BAD_CHANNELS_JSON="error.bad_channels_json",e.BAD_HUB_CONNECTION="error.bad_hub_connection",e}({}),l=function(e){return e[e.LOCALE=0]="LOCALE",e[e.TEXT=1]="TEXT",e}({});class c{constructor(e,t,o,a){if(this.code=void 0,this.desc=void 0,this.extendedInfo=void 0,this.originalErrorMessage=void 0,this.code=e,"errorMessage"in t){const e=t.errorMessage;this.originalErrorMessage=e,this.desc={type:l.TEXT,desc:`${n.vH[e.errorCode]}: ${e.message}${e.additionalData?": "+e.additionalData:""}`},e.message||(this.desc={type:l.TEXT,desc:n.vH[e.errorCode]})}if("jsError"in t){const e=t.jsError;this.desc={type:l.TEXT,desc:`${e.name}: ${e.message}`}}const c=(new Error).stack;o?.config.headers.Authorization&&(o.config.headers.Authorization="*********");let d=JSON.stringify({addon:t,origin:o,config:i.Ay,stack:c});d=d.replace(/Basic (?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?/g,"Basic **************"),d=d.replace(/{"username":".+?","password":".+?"}/g,'{"username":"*******","password":"*******"}'),s.A.hasToken()&&(d=(0,r.yh)(d,s.A.token.bearer,"**************")),i.Ay.githubtoken.value&&(d=(0,r.yh)(d,i.Ay.githubtoken.value,"**************")),this.extendedInfo=d,a||console.error(`Error occured within the application: ${this.code} (${this.desc?.desc??"No description"})`,this),window.breakonerror}}},5301:function(e,t,o){o.d(t,{s:function(){return r}});let r=function(e){return e[e.OK=0]="OK",e[e.ERROR=1]="ERROR",e}({});t.A=function(e){return Object.freeze(Object.assign({},e))}},6192:function(e,t,o){var r=o(6382);t.A=new class{hasToken(){return this.token&&this.token.bearer}constructor(){this.token=void 0,this.defaulted=void 0,this.credentials=void 0,this.default={type:r.$.Password,userName:"admin",password:"ISolemlySwearToDeleteTheDataDirectory"}}}},536:function(e,t,o){var r=o(4101);class n extends r.TypedEmitter{constructor(...e){super(...e),this.promiseHooks=new Set}runHooks(e){console.log("Running login hooks");let t=0;const o=[];for(const r of this.promiseHooks){const n=t;console.log(`Running hook ${r.name}(${n})`),o.push(new Promise(((t,o)=>{r(e).then((()=>{console.log(`Done hook ${r.name}(${n})`),t()})).catch((e=>{console.error(`Error running hook ${r.name}(${n}): `,e),o(e)}))}))),t++}Promise.all(o).then((()=>{console.log("Running post login event"),this.emit("loginSuccess",e)})).catch((()=>console.error("An error occured while running login hooks")))}addHook(e){this.promiseHooks.add(e)}removeHook(e){this.promiseHooks.delete(e)}}t.A=new n},8437:function(e,t,o){o.d(t,{iD:function(){return i},jL:function(){return n}});var r=o(7602);let n=function(e){return e.ALWAYS="always",e.AUTO="auto",e.NEVER="never",e}({}),i=function(e){return e.AUTO="auto",e.COLLAPSE="collapse",e.EXPAND="expand",e}({});const s={githubtoken:{id:"config.githubtoken",type:"pwd",value:""},apipath:{id:"config.apipath",type:"str",site_local:!0,value:window.publicPath?new URL("..",new URL(window.publicPath,window.location.href)).href:r.E},jobpollinactive:{id:"config.jobpollinactive",type:"num",value:15},jobpollactive:{id:"config.jobpollactive",type:"num",value:5},jobswidgetdisplay:{id:"config.jobswidgetdisplay",type:"enum",possibleValues:n,value:n.AUTO},instanceprobetimer:{id:"config.instanceprobetimer",type:"num",value:60},itemsperpage:{id:"config.itemsperpage",type:"num",value:25,min:1,max:100},instanceeditsidebar:{id:"config.instanceeditsidebar",type:"enum",possibleValues:i,value:i.AUTO},showjson:{id:"config.showjson",type:"bool",value:"DEV"===r.g},manualpr:{id:"config.manualpr",type:"bool",value:!0},restjobs2:{id:"config.restjobs2",type:"bool",value:!1},mergeabilitypolltimer:{id:"config.mergeabilitypolltimer",type:"num",value:5e3}};t.Ay=s}}]); +//# sourceMappingURL=1552.a20b41c5b29122c75e79.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js.map b/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js.map new file mode 100644 index 00000000..a6f63496 --- /dev/null +++ b/webpanel/6.6.0/1552.a20b41c5b29122c75e79.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1552.a20b41c5b29122c75e79.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/ServerClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/UserClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/_base.ts","webpack://tgstation-server-control-panel/./src/ApiClient/generatedcode/generated.ts","webpack://tgstation-server-control-panel/./src/ApiClient/models/ICredentials.ts","webpack://tgstation-server-control-panel/./src/ApiClient/models/InternalComms/InternalError.ts","webpack://tgstation-server-control-panel/./src/ApiClient/models/InternalComms/InternalStatus.ts","webpack://tgstation-server-control-panel/./src/ApiClient/util/CredentialsProvider.ts","webpack://tgstation-server-control-panel/./src/ApiClient/util/LoginHooks.ts","webpack://tgstation-server-control-panel/./src/ApiClient/util/config.ts"],"sourcesContent":["import { AxiosError, AxiosHeaders, AxiosInstance, AxiosResponse } from \"axios\";\nimport { jwtDecode } from \"jwt-decode\";\n\nimport { API_VERSION, VERSION } from \"../definitions/constants\";\nimport { ApiClient } from \"./_base\";\nimport {\n Api,\n ErrorMessageResponse,\n HttpClient,\n OAuthGatewayResponse,\n ServerInformationResponse,\n TokenResponse\n} from \"./generatedcode/generated\";\nimport { CredentialsType, ICredentials, IOAuthCredentials } from \"./models/ICredentials\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport { ServerClientRequestConfig } from \"./ServerClientRequestConfig\";\nimport configOptions from \"./util/config\";\nimport CredentialsProvider from \"./util/CredentialsProvider\";\nimport LoginHooks from \"./util/LoginHooks\";\n\ninterface IEvents {\n //self explainatory\n logout: () => void;\n //fired whenever something is denied access, shouldnt really be used\n accessDenied: () => void;\n //fired when the server info is first loaded\n loadServerInfo: (\n serverInfo: InternalStatus\n ) => void;\n //fired when the api is loaded from the json file and loaded\n initialized: () => void;\n //purge all caches\n purgeCache: () => void;\n //internal event, queues logins\n loadLoginInfo: (loginInfo: InternalStatus) => void;\n //internal event fired for wait4Token(), external things should be using LoginHooks#LoginSuccess or a login hook\n tokenAvailable: (token: TokenResponse) => void;\n}\n\nexport type LoginErrors =\n | GenericErrors\n | ErrorCode.LOGIN_DISABLED\n | ErrorCode.LOGIN_FAIL\n | ErrorCode.LOGIN_NOCREDS\n | ErrorCode.LOGIN_BAD_OAUTH\n | ErrorCode.LOGIN_RATELIMIT;\n\nexport type OAuthGatewayErrors = GenericErrors | ErrorCode.LOGIN_FAIL | ErrorCode.LOGIN_BAD_OAUTH;\n\nexport type ServerInfoErrors = GenericErrors;\n\nexport default new (class ServerClient extends ApiClient {\n private static readonly globalHandledCodes = [400, 401, 403, 406, 409, 426, 500, 501, 503];\n\n //api\n\n public apiHttpClient?: HttpClient;\n public apiClient?: Api;\n\n public apiRequestInterceptor = {\n onFulfilled: async (value: ServerClientRequestConfig) => {\n //Meta value that means theres no value, used in the github deployed version\n if (configOptions.apipath.value === \"https://example.org:5000\") {\n const errorobj = new InternalError(ErrorCode.NO_APIPATH, {\n void: true\n });\n return Promise.reject(errorobj);\n }\n\n //This applies the authorization header, it will wait however long it needs until\n // theres a token available. It obviously won't wait for a token before sending the request\n // if its currently sending a request to the login endpoint...\n if (\n value.overrideTokenDetection ||\n !(\n value.url === \"/api\" ||\n value.url === \"/api/\" ||\n value.url === \"/api/oauth_gateway\" ||\n value.url === \"/api/oauth_gateway\"\n )\n ) {\n const tok = await this.wait4Token();\n (value.headers as { [key: string]: string })[\"Authorization\"] = `Bearer ${\n tok.bearer || \"\"\n }`;\n }\n return value;\n },\n // it is real, we do not know what type though\n onRejected: (error: unknown) => {\n return Promise.reject(error);\n }\n };\n\n public apiResponseInterceptor = {\n onFulfilled: (val: AxiosResponse) => val,\n // it is real, we do not know what type though\n onRejected: (error: AxiosError, axiosServer: AxiosInstance): Promise => {\n //THIS IS SNOWFLAKE KEKW\n //As the above comment mentions, this shitcode is very snowflake\n // it tries to typecast the \"response\" we got into an error then tries to check if that \"error\" is\n // the snowflake no apipath github error, if it is, it rejects the promise to send it to the catch block\n // all endpoints have which simply returns the error wrapped in a status object\n const snowflake = error as unknown as InternalError;\n if (snowflake?.code === ErrorCode.NO_APIPATH) {\n return Promise.reject(snowflake);\n }\n\n //This was originally an else clause at the bottom but it made it hard to find\n // if the promise rejected and its not because its a globally handled status code\n // it means that axios created an error itself for an unknown reason(network failure,\n // cors failure, user is navigating away, aborting requests, etc). Simply return the error\n // as a globally handled error.\n if (\n !(\n error.response &&\n error.response.status &&\n ServerClient.globalHandledCodes.includes(error.response.status)\n )\n ) {\n const err = error as Error;\n const errorobj = new InternalError(\n ErrorCode.AXIOS,\n { jsError: err },\n error.response\n );\n return Promise.reject(errorobj);\n }\n\n //I am sorry, this is the bulk of the shitcode, its a massive switch that handles every single\n // globally handled status code and sometimes not so globally because one endpoint decided it would be\n const res = error.response;\n switch (error.response.status) {\n //Error code 400: Bad request, show message to user and instruct them to report it as its probably a bug\n case 400: {\n const errorMessage = res.data as ErrorMessageResponse;\n const errorobj = new InternalError(\n ErrorCode.HTTP_BAD_REQUEST,\n { errorMessage },\n res\n );\n return Promise.reject(errorobj);\n }\n //Error code 401: Access Denied, fired whenever a token expires, in that case, attempt to reauthenticate\n // using the last known working credentials, if that succeeds, reissue the request, otherwise logout the\n // user and kick them to the login page. Snowflake behaviour: Acts as a failed login for the login endpoint\n case 401: {\n const request = error.config!;\n if (request.url === \"/api\" || request.url === \"api\") {\n return Promise.resolve(error.response);\n }\n\n if (this.autoLogin) {\n return this.login().then(status => {\n switch (status.code) {\n case StatusCode.OK: {\n return axiosServer.request(error.config!);\n }\n case StatusCode.ERROR: {\n this.emit(\"accessDenied\");\n //time to kick out the user\n this.logout();\n return Promise.reject(status);\n }\n }\n });\n } else {\n this.emit(\"accessDenied\");\n const errorobj = new InternalError(\n ErrorCode.HTTP_ACCESS_DENIED,\n { void: true },\n res,\n true\n );\n return Promise.reject(errorobj);\n }\n }\n case 403: {\n const request = error.config!;\n if ((request.url === \"/\" || request.url === \"\") && request.method === \"post\") {\n return Promise.resolve(error.response);\n } else {\n this.emit(\"accessDenied\");\n const errorobj = new InternalError(\n ErrorCode.HTTP_ACCESS_DENIED,\n { void: true },\n res,\n true\n );\n return Promise.reject(errorobj);\n }\n }\n case 406: {\n const errorobj = new InternalError(\n ErrorCode.HTTP_NOT_ACCEPTABLE,\n { void: true },\n res\n );\n return Promise.reject(errorobj);\n }\n case 409: {\n const errorMessage = res.data as ErrorMessageResponse;\n\n //Thanks for reusing a global erorr status cyber. Log operations can return 409\n const request = error.config!;\n if (request.url === \"/Administration/Logs\" && request.method === \"get\") {\n return Promise.resolve(error.response);\n }\n\n const errorobj = new InternalError(\n ErrorCode.HTTP_DATA_INEGRITY,\n { errorMessage },\n res\n );\n return Promise.reject(errorobj);\n }\n case 426: {\n const errorMessage = res.data as ErrorMessageResponse;\n const errorobj = new InternalError(\n ErrorCode.HTTP_API_MISMATCH,\n { errorMessage },\n res\n );\n return Promise.reject(errorobj);\n }\n case 500: {\n const errorMessage = res.data as ErrorMessageResponse;\n const errorobj = new InternalError(\n ErrorCode.HTTP_SERVER_ERROR,\n { errorMessage },\n res\n );\n return Promise.reject(errorobj);\n }\n case 501: {\n const errorMessage = res.data as ErrorMessageResponse;\n const errorobj = new InternalError(\n ErrorCode.HTTP_UNIMPLEMENTED,\n { errorMessage },\n res\n );\n return Promise.reject(errorobj);\n }\n case 503: {\n console.log(\"Server not ready, delaying request\", error.config);\n return new Promise(resolve => {\n setTimeout(resolve, 5000);\n }).then(() => axiosServer.request(error.config!));\n /*const errorobj = new InternalError(\n ErrorCode.HTTP_SERVER_NOT_READY,\n {\n void: true\n },\n res\n );\n return Promise.reject(errorobj);*/\n }\n default: {\n const errorobj = new InternalError(\n ErrorCode.UNHANDLED_GLOBAL_RESPONSE,\n { axiosResponse: res },\n res\n );\n return Promise.reject(errorobj);\n }\n }\n }\n };\n\n private initialized = false;\n private loadingServerInfo = false;\n\n public constructor() {\n super();\n this.getServerInfo = this.getServerInfo.bind(this);\n\n LoginHooks.addHook(this.getServerInfo);\n this.on(\"purgeCache\", () => {\n this._serverInfo = undefined;\n if (CredentialsProvider.token) {\n void LoginHooks.runHooks(CredentialsProvider.token);\n }\n });\n\n //Why is this here? Because otherwise it creates an import loop, grrrrr\n configOptions.apipath.callback = (): void => {\n console.log(\"API path changed\");\n window.location.reload();\n };\n }\n\n //serverInfo\n private _serverInfo?: InternalStatus;\n\n public get serverInfo() {\n return this._serverInfo;\n }\n\n public autoLogin = true;\n private loggingIn = false;\n\n public get defaultHeaders() {\n return {\n Accept: \"application/json\",\n Api: `Tgstation.Server.Api/` + API_VERSION,\n \"Webpanel-Version\": VERSION\n };\n }\n\n public async initApi(): Promise {\n console.log(\"Initializing API client\");\n console.time(\"APIInit\");\n\n this.apiHttpClient = new HttpClient({\n //Yes this is only initialized once even if the configOption changes, this doesn't\n baseURL: configOptions.apipath.value as string,\n withCredentials: false,\n headers: new AxiosHeaders(this.defaultHeaders),\n //Global errors are handled via the catch clause and endpoint specific response codes are handled normally\n validateStatus: status => {\n return !ServerClient.globalHandledCodes.includes(status);\n }\n });\n this.apiHttpClient.instance.interceptors.request.use(\n this.apiRequestInterceptor.onFulfilled,\n this.apiRequestInterceptor.onRejected\n );\n this.apiHttpClient.instance.interceptors.response.use(\n this.apiResponseInterceptor.onFulfilled,\n error =>\n this.apiResponseInterceptor.onRejected(\n error as AxiosError,\n this.apiHttpClient!.instance\n )\n );\n\n this.apiClient = new Api(this.apiHttpClient);\n\n console.timeEnd(\"APIInit\");\n\n let result = false;\n // check if there's a token stored\n const bearer = localStorage.getItem(\"SessionToken\");\n const expiresAtUnixTimestampStr = localStorage.getItem(\"SessionTokenExpiry\");\n const defaultToken = localStorage.getItem(\"SessionTokenDefault\") == \"true\";\n if (bearer && expiresAtUnixTimestampStr) {\n console.log(\"Found session token\");\n if (parseInt(expiresAtUnixTimestampStr) * 1000 >= Date.now()) {\n const storedToken: TokenResponse = { bearer };\n result = await this.setToken(storedToken, defaultToken, true);\n } else {\n console.log(\"But it was expired\");\n }\n }\n\n this.initialized = true;\n this.emit(\"initialized\");\n return result;\n }\n\n //Utility function that returns a promise which resolves whenever ServerClient#ApiClient becomes valid\n public wait4Init(): Promise {\n return new Promise(resolve => {\n if (this.initialized) {\n resolve();\n return;\n }\n this.on(\"initialized\", () => resolve());\n });\n }\n\n //Utility function that returns a promise which resolves with the token whenever theres valid credentials(could be immediatly)\n public wait4Token() {\n return new Promise(resolve => {\n if (CredentialsProvider.hasToken()) {\n resolve(CredentialsProvider.token!);\n return;\n }\n this.on(\"tokenAvailable\", token => {\n resolve(token);\n });\n });\n }\n\n public async login(\n newCreds?: ICredentials\n ): Promise> {\n //Shouldn't really happen edge cases\n await this.wait4Init();\n\n console.log(\"Attempting login\");\n\n //Newcreds is optional, if its missing its going to try to reuse the last used credentials,\n // if newCreds exists, its going to use newCreds\n let oauthAutoLogin = false;\n if (newCreds) {\n CredentialsProvider.credentials = newCreds;\n } else if (CredentialsProvider.credentials?.type === CredentialsType.OAuth) {\n // autologin doesn't work with OAuth\n this.logout();\n oauthAutoLogin = true;\n }\n\n //This is thrown if you try to reuse the last credentials without actually having last used credentials\n //or you let an oauth login expire\n if (oauthAutoLogin || !CredentialsProvider.credentials)\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.LOGIN_NOCREDS, { void: true })\n });\n\n //This block is here to prevent duplication of login requests at the same time, when you start logging in,\n // it sets loggingIn to true and fires an event once its done logging in, successful or not, if you try to login\n // while another login request is ongoing, it listens to that event and returns the output normally.\n //\n // Basically, make two calls, receive two identical return values, make only one request\n if (this.loggingIn) {\n return await new Promise(resolve => {\n const resolver = (info: InternalStatus) => {\n resolve(info);\n this.removeListener(\"loadLoginInfo\", resolver);\n };\n this.on(\"loadLoginInfo\", resolver);\n });\n }\n this.loggingIn = true;\n\n let response;\n let defaulted;\n try {\n if (CredentialsProvider.credentials.type == CredentialsType.Password) {\n defaulted =\n CredentialsProvider.credentials.userName.toLowerCase() ==\n CredentialsProvider.default.userName.toLowerCase() &&\n CredentialsProvider.credentials.password ==\n CredentialsProvider.default.password;\n response = await this.apiClient!.api.apiRootControllerCreateToken({\n auth: {\n username: CredentialsProvider.credentials.userName,\n password: CredentialsProvider.credentials.password\n }\n });\n } else {\n defaulted = false;\n response = await this.apiClient!.api.apiRootControllerCreateToken({\n headers: new AxiosHeaders({\n OAuthProvider: CredentialsProvider.credentials.provider,\n Authorization: `OAuth ${CredentialsProvider.credentials.token}`\n })\n });\n }\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n this.emit(\"loadLoginInfo\", res);\n return res;\n } finally {\n this.loggingIn = false;\n }\n switch (response.status) {\n case 200: {\n console.log(\"Login success\");\n const token = response.data as TokenResponse;\n\n await this.setToken(token, defaulted, false);\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: token\n });\n //Deduplication\n this.emit(\"loadLoginInfo\", res);\n\n return res;\n }\n case 401: {\n this.logout();\n console.log(\"Failed to login\");\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.LOGIN_FAIL,\n {\n void: true\n },\n response\n )\n });\n this.emit(\"loadLoginInfo\", res);\n return res;\n }\n case 403: {\n this.logout();\n console.log(\"Account disabled\");\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.LOGIN_DISABLED,\n {\n void: true\n },\n response\n )\n });\n this.emit(\"loadLoginInfo\", res);\n return res;\n }\n case 429: {\n this.logout();\n console.log(\"rate limited\");\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.LOGIN_RATELIMIT,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n this.emit(\"loadLoginInfo\", res);\n return res;\n }\n default: {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n this.emit(\"loadLoginInfo\", res);\n return res;\n }\n }\n }\n\n public async oAuthGateway(\n creds: IOAuthCredentials\n ): Promise> {\n //Shouldn't really happen edge cases\n await this.wait4Init();\n\n console.log(\"Attempting OAuth gateway login\");\n\n let response;\n try {\n response = await this.apiClient!.api.apiRootControllerCreateOAuthGatewayToken({\n headers: new AxiosHeaders({\n OAuthProvider: creds.provider,\n Authorization: `OAuth ${creds.token}`\n })\n });\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n return res;\n }\n\n switch (response.status) {\n case 200: {\n console.log(\"OAuth gateway success\");\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as OAuthGatewayResponse\n });\n\n return res;\n }\n case 401: {\n console.log(\"Failed to use OAuth Gateway\");\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.LOGIN_FAIL,\n {\n void: true\n },\n response\n )\n });\n return res;\n }\n default: {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n\n public logout() {\n //If theres no token it means theres nothing to clear\n if (!CredentialsProvider.hasToken()) {\n return;\n }\n console.log(\"Logging out\");\n CredentialsProvider.credentials = undefined;\n CredentialsProvider.token = undefined;\n localStorage.removeItem(\"SessionToken\");\n localStorage.removeItem(\"SessionTokenExpiry\");\n //events to clear the app state as much as possible for the next user\n this.emit(\"purgeCache\");\n this.emit(\"logout\");\n }\n\n public async getServerInfo(\n _token?: TokenResponse,\n bypassCache = false\n ): Promise> {\n await this.wait4Init();\n\n if (this._serverInfo && !bypassCache) {\n return this._serverInfo;\n }\n\n if (this.loadingServerInfo) {\n return new Promise(resolve => {\n if (this._serverInfo) {\n //race condition if 2 things listen to an event or something\n resolve(this._serverInfo);\n return;\n }\n const resolver = (\n info: InternalStatus\n ) => {\n resolve(info);\n this.removeListener(\"loadServerInfo\", resolver);\n };\n this.on(\"loadServerInfo\", resolver);\n });\n }\n\n this.loadingServerInfo = true;\n\n let response;\n try {\n response = await this.apiClient!.api.apiRootControllerServerInfo();\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n this.emit(\"loadServerInfo\", res);\n this.loadingServerInfo = false;\n return res;\n }\n switch (response.status) {\n case 200: {\n const info = response.data as ServerInformationResponse;\n const cache = new InternalStatus({\n code: StatusCode.OK,\n payload: info\n });\n this.emit(\"loadServerInfo\", cache);\n this._serverInfo = cache;\n this.loadingServerInfo = false;\n return cache;\n }\n default: {\n const res = new InternalStatus<\n ServerInformationResponse,\n ErrorCode.UNHANDLED_RESPONSE\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n this.emit(\"loadServerInfo\", res);\n this.loadingServerInfo = false;\n return res;\n }\n }\n }\n\n private async setToken(\n token: TokenResponse,\n defaulted: boolean,\n validate: boolean\n ): Promise {\n // CredentialsProvider.token is added to all requests in the form of Authorization: Bearer \n\n const previousToken = CredentialsProvider.token;\n const previousDefaulted = CredentialsProvider.defaulted;\n\n CredentialsProvider.token = token;\n CredentialsProvider.defaulted = defaulted;\n\n if (validate) {\n let failed;\n try {\n const response = await this.apiClient!.api.apiRootControllerServerInfo({\n overrideTokenDetection: true\n });\n\n failed = response.status != 200;\n } catch {\n failed = true;\n }\n\n if (failed) {\n CredentialsProvider.token = previousToken;\n CredentialsProvider.defaulted = previousDefaulted;\n console.log(\"Stored token failed to authenticate\");\n return false;\n }\n\n console.log(\"Stored token authenticated\");\n }\n\n localStorage.setItem(\"SessionToken\", token.bearer);\n const jwt = jwtDecode(token.bearer);\n if (jwt.exp) {\n localStorage.setItem(\"SessionTokenExpiry\", jwt.exp.toString());\n }\n\n localStorage.setItem(\"SessionTokenDefault\", defaulted ? \"true\" : \"false\");\n\n this.emit(\"tokenAvailable\", token);\n\n //LoginHooks are a way of running several async tasks at the same time whenever the user is authenticated,\n // we cannot use events here as events wait on each listener before proceeding which has a noticable performance\n // cost when it comes to several different requests to TGS,\n // we cant directly call what we need to run here as it would violate isolation of\n // ApiClient(the apiclient is independent from the rest of the app to avoid circular dependency\n // (example: Component requires ServerClient to login and but the ServerClient requires Component to\n // update it once the server info is loaded))\n //\n // TL;DR; Runs shit when you login\n\n LoginHooks.runHooks(token);\n return true;\n }\n})();\n\n//https://stackoverflow.com/questions/40510611/typescript-interface-require-one-of-two-properties-to-exist\n//name describes what it does, makes the passed type only require 1 property, the others being optional\nexport type RequireAtLeastOne = Pick> &\n {\n [K in Keys]-?: Required> & Partial>>;\n }[Keys];\n","import { ApiClient } from \"./_base\";\nimport {\n AdministrationRights,\n ErrorMessageResponse,\n InstanceManagerRights,\n PaginatedUserResponse,\n UserCreateRequest,\n UserResponse,\n UserUpdateRequest\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\nimport LoginHooks from \"./util/LoginHooks\";\n\ninterface IEvents {\n loadUserInfo: (user: InternalStatus) => void;\n}\n\nexport type GetCurrentUserErrors = GenericErrors;\nexport type EditUserErrors = GenericErrors | ErrorCode.USER_NOT_FOUND;\nexport type GetUserErrors = GenericErrors | ErrorCode.USER_NOT_FOUND;\nexport type CreateUserErrors = GenericErrors | ErrorCode.USER_NO_SYS_IDENT;\n\nexport default new (class UserClient extends ApiClient {\n private _cachedUser?: InternalStatus;\n public get cachedUser() {\n return this._cachedUser;\n }\n private loadingUserInfo = false;\n //If set to true, all created users will default to having all permissions granted, used by the setup\n public createAllUsersWithAA = false;\n\n public constructor() {\n super();\n this.getCurrentUser = this.getCurrentUser.bind(this);\n\n LoginHooks.addHook(() => this.getCurrentUser());\n ServerClient.on(\"purgeCache\", () => {\n this._cachedUser = undefined;\n });\n }\n\n public async editUser(\n newUser: UserUpdateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n let response;\n try {\n response = await ServerClient.apiClient!.api.userControllerUpdate(newUser);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n // noinspection DuplicatedCode\n switch (response.status) {\n case 200: {\n const current = await this.getCurrentUser();\n if (current.code == StatusCode.OK) {\n if (current.payload.id == newUser.id) {\n //if we are editing ourselves, clear cached data to reload permissions on the app\n ServerClient.emit(\"purgeCache\");\n }\n } else {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: current.error\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserResponse\n });\n }\n case 404: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.USER_NOT_FOUND, { errorMessage })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getCurrentUser(\n bypassCache?: boolean\n ): Promise> {\n await ServerClient.wait4Init();\n\n if (this._cachedUser && !bypassCache) {\n return this._cachedUser;\n }\n\n if (this.loadingUserInfo) {\n return await new Promise(resolve => {\n const resolver = (user: InternalStatus) => {\n resolve(user);\n this.removeListener(\"loadUserInfo\", resolver);\n };\n this.on(\"loadUserInfo\", resolver);\n });\n }\n\n this.loadingUserInfo = true;\n\n let response;\n try {\n // UserController_Read\n response = await ServerClient.apiClient!.api.userControllerRead();\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n this.emit(\"loadUserInfo\", res);\n this.loadingUserInfo = false;\n return res;\n }\n\n switch (response.status) {\n case 200: {\n const thing = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserResponse\n });\n\n this._cachedUser = thing;\n this.emit(\"loadUserInfo\", thing);\n this.loadingUserInfo = false;\n return thing;\n }\n default: {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n this.emit(\"loadUserInfo\", res);\n this.loadingUserInfo = false;\n return res;\n }\n }\n }\n\n public async listUsers({\n page = 1,\n pageSize = configOptions.itemsperpage.value as number\n }): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userControllerList({\n page: page,\n pageSize: pageSize\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n const payload = (response.data as PaginatedUserResponse).content.sort(\n (a, b) => a.id - b.id\n );\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: {\n ...(response.data as PaginatedUserResponse),\n content: payload\n }\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getUser(id: number): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userControllerGetId(id);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n // noinspection DuplicatedCode\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserResponse\n });\n }\n case 404: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.USER_NOT_FOUND, { errorMessage })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async createUser(\n newuser:\n | {\n name: string;\n password: string;\n enabled?: boolean;\n instanceManagerRights?: InstanceManagerRights;\n administrationRights?: AdministrationRights;\n }\n | {\n systemIdentifier: string;\n enabled?: boolean;\n instanceManagerRights?: InstanceManagerRights;\n administrationRights?: AdministrationRights;\n }\n ): Promise> {\n await ServerClient.wait4Init();\n\n if (newuser.enabled === undefined) newuser.enabled = true;\n if (this.createAllUsersWithAA) {\n newuser.instanceManagerRights = 0;\n newuser.administrationRights = 0;\n\n for (const perm of Object.values(InstanceManagerRights)) {\n if (typeof perm !== \"number\") continue;\n newuser.instanceManagerRights += perm;\n }\n\n for (const perm of Object.values(AdministrationRights)) {\n if (typeof perm !== \"number\") continue;\n newuser.administrationRights += perm;\n }\n }\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userControllerCreate(\n newuser as UserCreateRequest\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 201: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserResponse\n });\n }\n case 410: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.USER_NO_SYS_IDENT, { errorMessage })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n","import { DefaultListener, ListenerSignature, TypedEmitter } from \"tiny-typed-emitter\";\n\nexport abstract class ApiClient<\n L extends ListenerSignature = DefaultListener\n> extends TypedEmitter {\n public constructor() {\n super();\n if (window.clients == undefined) {\n window.clients = {};\n }\n console.log(this.constructor.name, this);\n window.clients[this.constructor.name] = this;\n }\n}\n","/* eslint-disable */\n/* tslint:disable */\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\n/** Represents administrative server information. */\nexport interface AdministrationResponse {\n /**\n * The GitHub repository the server is built to receive updates from.\n * @format uri\n */\n trackedRepositoryUrl: string;\n /** The latest available version of the Tgstation.Server.Host assembly from the upstream repository. If System.Version.Major is less than 4 the update cannot be applied due to API changes. */\n latestVersion: string;\n /**\n * This response is cached. This field indicates the System.DateTimeOffset the Tgstation.Server.Api.Models.Internal.UpdateInformation was generated.\n * @format date-time\n */\n generatedAt: string;\n}\n\n/**\n * Administration rights for the server.\n * @format int64\n */\nexport enum AdministrationRights {\n None = 0,\n WriteUsers = 1,\n RestartHost = 2,\n ChangeVersion = 4,\n EditOwnPassword = 8,\n ReadUsers = 16,\n DownloadLogs = 32,\n EditOwnOAuthConnections = 64,\n UploadVersion = 128,\n}\n\n/** Represents a request to update a chat bot. */\nexport interface ChatBotCreateRequest {\n /** Channels the Discord bot should listen/announce in. */\n channels?: ChatChannel[] | null;\n /** If the connection is enabled. */\n enabled?: boolean | null;\n /**\n * The time interval in minutes the chat bot attempts to reconnect if Tgstation.Server.Api.Models.Internal.ChatBotSettings.Enabled and disconnected. Must not be zero.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n reconnectionInterval?: number | null;\n /**\n * The maximum number of Tgstation.Server.Api.Models.ChatChannels the Tgstation.Server.Api.Models.Internal.ChatBotSettings may contain.\n * @format int32\n */\n channelLimit?: number | null;\n /** The Tgstation.Server.Api.Models.ChatProvider used for the connection. */\n provider: ChatProvider;\n /**\n * The information used to connect to the Tgstation.Server.Api.Models.Internal.ChatBotSettings.Provider.\n * @minLength 0\n * @maxLength 10000\n */\n connectionString: string;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\n/** Represents a chat bot response. */\nexport interface ChatBotResponse {\n /** Channels the Discord bot should listen/announce in. */\n channels: ChatChannel[];\n /** If the connection is enabled. */\n enabled: boolean;\n /**\n * The time interval in minutes the chat bot attempts to reconnect if Tgstation.Server.Api.Models.Internal.ChatBotSettings.Enabled and disconnected. Must not be zero.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n reconnectionInterval: number;\n /**\n * The maximum number of Tgstation.Server.Api.Models.ChatChannels the Tgstation.Server.Api.Models.Internal.ChatBotSettings may contain.\n * @format int32\n */\n channelLimit: number;\n /** The Tgstation.Server.Api.Models.ChatProvider used for the connection. */\n provider: ChatProvider;\n /**\n * The information used to connect to the Tgstation.Server.Api.Models.Internal.ChatBotSettings.Provider.\n * @minLength 0\n * @maxLength 10000\n */\n connectionString?: string | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/**\n * Rights for chat bots.\n * @format int64\n */\nexport enum ChatBotRights {\n None = 0,\n WriteEnabled = 1,\n WriteProvider = 2,\n WriteChannels = 4,\n WriteConnectionString = 8,\n ReadConnectionString = 16,\n Read = 32,\n Create = 64,\n Delete = 128,\n WriteName = 256,\n WriteReconnectionInterval = 512,\n WriteChannelLimit = 1024,\n}\n\n/** Represents a request to update a chat bot. */\nexport interface ChatBotUpdateRequest {\n /** Channels the Discord bot should listen/announce in. */\n channels?: ChatChannel[] | null;\n /** If the connection is enabled. */\n enabled?: boolean | null;\n /**\n * The time interval in minutes the chat bot attempts to reconnect if Tgstation.Server.Api.Models.Internal.ChatBotSettings.Enabled and disconnected. Must not be zero.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n reconnectionInterval?: number | null;\n /**\n * The maximum number of Tgstation.Server.Api.Models.ChatChannels the Tgstation.Server.Api.Models.Internal.ChatBotSettings may contain.\n * @format int32\n */\n channelLimit?: number | null;\n /** The Tgstation.Server.Api.Models.ChatProvider used for the connection. */\n provider?: ChatProvider | null;\n /**\n * The information used to connect to the Tgstation.Server.Api.Models.Internal.ChatBotSettings.Provider.\n * @minLength 0\n * @maxLength 10000\n */\n connectionString?: string | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name?: string | null;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/** Indicates a chat channel. */\nexport interface ChatChannel {\n /**\n * The channel identifier.\n * For Tgstation.Server.Api.Models.ChatProvider.Irc, it's the IRC channel name and optional password colon separated.\n * For Tgstation.Server.Api.Models.ChatProvider.Discord, it's the stringified Discord channel snowflake.\n * @minLength 1\n * @maxLength 100\n */\n channelData: string;\n /** If the Tgstation.Server.Api.Models.ChatChannel is an admin channel. */\n isAdminChannel: boolean;\n /** If the Tgstation.Server.Api.Models.ChatChannel is a watchdog channel. */\n isWatchdogChannel: boolean;\n /** If the Tgstation.Server.Api.Models.ChatChannel is an updates channel. */\n isUpdatesChannel: boolean;\n /** If the Tgstation.Server.Api.Models.ChatChannel received system messages. */\n isSystemChannel: boolean;\n /**\n * A custom tag users can define to group channels together.\n * @minLength 0\n * @maxLength 10000\n */\n tag?: string | null;\n}\n\n/**\n * Represents a chat service provider.\n * @format int32\n */\nexport enum ChatProvider {\n Irc = 0,\n Discord = 1,\n}\n\nexport interface CompileJobResponse {\n /** The Tgstation.Server.Api.Models.Response.CompileJobResponse.Job relating to this job. */\n job: JobResponse;\n /** Git revision the compiler ran on. */\n revisionInformation: RevisionInformation;\n /** The Tgstation.Server.Api.Models.Response.CompileJobResponse.EngineVersion the Tgstation.Server.Api.Models.Response.CompileJobResponse was made with. */\n engineVersion: EngineVersion;\n /**\n * The origin System.Uri of the repository the compile job was built from.\n * @format uri\n */\n repositoryOrigin: string;\n /**\n * The .dme file used for compilation.\n * @minLength 1\n */\n dmeName: string;\n /**\n * Textual output of DM.\n * @minLength 1\n */\n output: string;\n /**\n * The Game folder the results were compiled into.\n * @format uuid\n */\n directoryName: string;\n /** The minimum Tgstation.Server.Api.Models.DreamDaemonSecurity required to run the Tgstation.Server.Api.Models.Internal.CompileJob's output. */\n minimumSecurityLevel?: DreamDaemonSecurity | null;\n /** The DMAPI System.Version. */\n dmApiVersion?: string | null;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/** Represents a request to update a configuration file. */\nexport interface ConfigurationFileRequest {\n path: string;\n lastReadHash?: string | null;\n}\n\n/** Response when reading configuration files. */\nexport interface ConfigurationFileResponse {\n path: string;\n lastReadHash?: string | null;\n /** If Tgstation.Server.Api.Models.Response.ConfigurationFileResponse.Path represents a directory. */\n isDirectory: boolean;\n /** If access to the Tgstation.Server.Api.Models.IConfigurationFile file was denied for the operation. */\n accessDenied?: boolean | null;\n /** The ticket to use to access the Tgstation.Server.Api.Routes.Transfer controller. */\n fileTicket: string;\n}\n\n/**\n * Rights for Tgstation.Server.Api.Models.IConfigurationFiles.\n * @format int64\n */\nexport enum ConfigurationRights {\n None = 0,\n Read = 1,\n Write = 2,\n List = 4,\n Delete = 8,\n}\n\n/**\n * The type of configuration allowed on an Tgstation.Server.Api.Models.Instance.\n * @format int32\n */\nexport enum ConfigurationType {\n Disallowed = 0,\n HostWrite = 1,\n SystemIdentityWrite = 2,\n}\n\n/**\n * The DMAPI validation setting for deployments.\n * @format int32\n */\nexport enum DMApiValidationMode {\n Optional = 0,\n Required = 1,\n Skipped = 2,\n}\n\n/** A request to update Tgstation.Server.Api.Models.Internal.DreamDaemonSettings. */\nexport interface DreamDaemonRequest {\n /** A System.String to send to the running server's DMAPI for broadcasting. How this is displayed is up to how the DMAPI is integrated in the codebase. Requires interop version >=5.7.0. */\n broadcastMessage?: string | null;\n /**\n * An incrementing ID for representing current server execution.\n * @format int64\n */\n sessionId?: number | null;\n /**\n * When the current server execution was started.\n * @format date-time\n */\n launchTime?: string | null;\n /**\n * The last known count of connected players. Requires Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.HealthCheckSeconds to not be 0 and a game server interop version >= 5.10.0 to populate.\n * @format int32\n */\n clientCount?: number | null;\n /** If the server is undergoing a soft reset. This may be automatically set by changes to other fields. */\n softRestart?: boolean | null;\n /** If the server is undergoing a soft shutdown. */\n softShutdown?: boolean | null;\n /** If the watchdog starts when it's Tgstation.Server.Api.Models.Instance starts. */\n autoStart?: boolean | null;\n /** If the BYOND web client can be used to connect to the game server. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n allowWebClient?: boolean | null;\n /** If -profile is passed in on the DreamDaemon command line. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n startProfiler?: boolean | null;\n /** The Tgstation.Server.Api.Models.DreamDaemonVisibility level of DreamDaemon. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n visibility?: DreamDaemonVisibility | null;\n /** The Tgstation.Server.Api.Models.DreamDaemonSecurity level of DreamDaemon. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n securityLevel?: DreamDaemonSecurity | null;\n /**\n * The port DreamDaemon uses. This should be publically accessible.\n * @format int32\n * @min 1\n * @max 65535\n */\n port?: number | null;\n /**\n * The port used by Tgstation.Server.Api.Models.EngineType.OpenDream for its topic port.\n * @format int32\n */\n openDreamTopicPort?: number | null;\n /**\n * The DreamDaemon startup timeout in seconds.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n startupTimeout?: number | null;\n /**\n * The number of seconds between each watchdog health check. 0 disables.\n * @format int32\n */\n healthCheckSeconds?: number | null;\n /** If a process core dump should be created prior to restarting the watchdog due to health check failure. */\n dumpOnHealthCheckRestart?: boolean | null;\n /**\n * The timeout for sending and receiving BYOND topics in milliseconds.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n topicRequestTimeout?: number | null;\n /**\n * Parameters string for DreamDaemon.\n * @minLength 0\n * @maxLength 10000\n */\n additionalParameters?: string | null;\n /** If process output/error text should be logged. */\n logOutput?: boolean | null;\n /**\n * If DreamDaemon supports it, the value added as the -map-threads parameter. 0 uses the default BYOND value. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream.\n * @format int32\n */\n mapThreads?: number | null;\n /** If minidumps should be taken instead of full dumps. */\n minidumps?: boolean | null;\n}\n\n/** Represents an instance of BYOND's DreamDaemon game server. Create action starts the server. Delete action shuts down the server. */\nexport interface DreamDaemonResponse {\n /** The live revision. */\n activeCompileJob?: CompileJobResponse | null;\n /** The next revision to go live. */\n stagedCompileJob?: CompileJobResponse | null;\n /** The current Tgstation.Server.Api.Models.WatchdogStatus. */\n status?: WatchdogStatus | null;\n /** The current Tgstation.Server.Api.Models.DreamDaemonSecurity. May be upgraded. due to requirements of Tgstation.Server.Api.Models.Response.DreamDaemonResponse.ActiveCompileJob. */\n currentSecurity?: DreamDaemonSecurity | null;\n /** The current Tgstation.Server.Api.Models.DreamDaemonVisibility. */\n currentVisibility?: DreamDaemonVisibility | null;\n /**\n * The port the running Tgstation.Server.Api.Models.Response.DreamDaemonResponse instance is set to.\n * @format int32\n */\n currentPort?: number | null;\n /**\n * The Tgstation.Server.Api.Models.EngineType.OpenDream topic port the running Tgstation.Server.Api.Models.Response.DreamDaemonResponse instance is set to.\n * @format int32\n */\n currentTopicPort?: number | null;\n /** The webclient status the running Tgstation.Server.Api.Models.Response.DreamDaemonResponse instance is set to. */\n currentAllowWebclient?: boolean | null;\n /**\n * The amount of RAM in use by the game server in bytes.\n * @format int64\n */\n immediateMemoryUsage?: number | null;\n /**\n * An incrementing ID for representing current server execution.\n * @format int64\n */\n sessionId?: number | null;\n /**\n * When the current server execution was started.\n * @format date-time\n */\n launchTime?: string | null;\n /**\n * The last known count of connected players. Requires Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.HealthCheckSeconds to not be 0 and a game server interop version >= 5.10.0 to populate.\n * @format int32\n */\n clientCount?: number | null;\n /** If the server is undergoing a soft reset. This may be automatically set by changes to other fields. */\n softRestart?: boolean | null;\n /** If the server is undergoing a soft shutdown. */\n softShutdown?: boolean | null;\n /** If the watchdog starts when it's Tgstation.Server.Api.Models.Instance starts. */\n autoStart?: boolean | null;\n /** If the BYOND web client can be used to connect to the game server. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n allowWebClient?: boolean | null;\n /** If -profile is passed in on the DreamDaemon command line. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n startProfiler?: boolean | null;\n /** The Tgstation.Server.Api.Models.DreamDaemonVisibility level of DreamDaemon. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n visibility?: DreamDaemonVisibility | null;\n /** The Tgstation.Server.Api.Models.DreamDaemonSecurity level of DreamDaemon. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream. */\n securityLevel?: DreamDaemonSecurity | null;\n /**\n * The port DreamDaemon uses. This should be publically accessible.\n * @format int32\n * @min 1\n * @max 65535\n */\n port?: number | null;\n /**\n * The port used by Tgstation.Server.Api.Models.EngineType.OpenDream for its topic port.\n * @format int32\n */\n openDreamTopicPort?: number | null;\n /**\n * The DreamDaemon startup timeout in seconds.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n startupTimeout?: number | null;\n /**\n * The number of seconds between each watchdog health check. 0 disables.\n * @format int32\n */\n healthCheckSeconds?: number | null;\n /** If a process core dump should be created prior to restarting the watchdog due to health check failure. */\n dumpOnHealthCheckRestart?: boolean | null;\n /**\n * The timeout for sending and receiving BYOND topics in milliseconds.\n * @format int32\n * @min 1\n * @max 4294967295\n */\n topicRequestTimeout?: number | null;\n /**\n * Parameters string for DreamDaemon.\n * @minLength 0\n * @maxLength 10000\n */\n additionalParameters?: string | null;\n /** If process output/error text should be logged. */\n logOutput?: boolean | null;\n /**\n * If DreamDaemon supports it, the value added as the -map-threads parameter. 0 uses the default BYOND value. No-op for Tgstation.Server.Api.Models.EngineType.OpenDream.\n * @format int32\n */\n mapThreads?: number | null;\n /** If minidumps should be taken instead of full dumps. */\n minidumps?: boolean | null;\n}\n\n/**\n * Rights for managing DreamDaemon.\n * @format int64\n */\nexport enum DreamDaemonRights {\n None = 0,\n ReadRevision = 1,\n SetPort = 2,\n SetAutoStart = 4,\n SetSecurity = 8,\n ReadMetadata = 16,\n SetWebClient = 32,\n SoftRestart = 64,\n SoftShutdown = 128,\n Restart = 256,\n Shutdown = 512,\n Start = 1024,\n SetStartupTimeout = 2048,\n SetHealthCheckInterval = 4096,\n CreateDump = 8192,\n SetTopicTimeout = 16384,\n SetAdditionalParameters = 32768,\n SetVisibility = 65536,\n SetProfiler = 131072,\n SetLogOutput = 262144,\n SetMapThreads = 524288,\n BroadcastMessage = 1048576,\n SetMinidumps = 2097152,\n}\n\n/**\n * DreamDaemon's security level.\n * @format int32\n */\nexport enum DreamDaemonSecurity {\n Trusted = 0,\n Safe = 1,\n Ultrasafe = 2,\n}\n\n/**\n * The visibility setting for DreamDaemon.\n * @format int32\n */\nexport enum DreamDaemonVisibility {\n Public = 0,\n Private = 1,\n Invisible = 2,\n}\n\n/** A request to the DreamMaker controller. */\nexport interface DreamMakerRequest {\n /**\n * The name of the .dme file the server tries to compile with without the extension.\n * @minLength 0\n * @maxLength 10000\n */\n projectName?: string | null;\n /**\n * The port used during compilation to validate the DMAPI.\n * @format int32\n * @min 1\n * @max 65535\n */\n apiValidationPort?: number | null;\n /** The Tgstation.Server.Api.Models.DreamDaemonSecurity level used to validate the DMAPI. */\n apiValidationSecurityLevel?: DreamDaemonSecurity | null;\n /**\n * If API validation should be required for a deployment to succeed. Must not be set on mutation if Tgstation.Server.Api.Models.Internal.DreamMakerSettings.DMApiValidationMode is set.\n * @deprecated\n */\n requireDMApiValidation?: boolean | null;\n /** The current Tgstation.Server.Api.Models.DMApiValidationMode. Must not be set on mutation if Tgstation.Server.Api.Models.Internal.DreamMakerSettings.RequireDMApiValidation is set. */\n dmApiValidationMode?: DMApiValidationMode | null;\n /**\n * Amount of time before an in-progress deployment is cancelled.\n * @format date-span\n */\n timeout?: string | null;\n /**\n * Additional arguments added to the compiler command line.\n * @minLength 0\n * @maxLength 10000\n */\n compilerAdditionalArguments?: string | null;\n}\n\n/** A request to the DreamMaker controller. */\nexport interface DreamMakerResponse {\n /**\n * The name of the .dme file the server tries to compile with without the extension.\n * @minLength 0\n * @maxLength 10000\n */\n projectName?: string | null;\n /**\n * The port used during compilation to validate the DMAPI.\n * @format int32\n * @min 1\n * @max 65535\n */\n apiValidationPort: number;\n /** The Tgstation.Server.Api.Models.DreamDaemonSecurity level used to validate the DMAPI. */\n apiValidationSecurityLevel: DreamDaemonSecurity;\n /**\n * If API validation should be required for a deployment to succeed. Must not be set on mutation if Tgstation.Server.Api.Models.Internal.DreamMakerSettings.DMApiValidationMode is set.\n * @deprecated\n */\n requireDMApiValidation: boolean;\n /** The current Tgstation.Server.Api.Models.DMApiValidationMode. Must not be set on mutation if Tgstation.Server.Api.Models.Internal.DreamMakerSettings.RequireDMApiValidation is set. */\n dmApiValidationMode: DMApiValidationMode;\n /**\n * Amount of time before an in-progress deployment is cancelled.\n * @format date-span\n */\n timeout: string;\n /**\n * Additional arguments added to the compiler command line.\n * @minLength 0\n * @maxLength 10000\n */\n compilerAdditionalArguments?: string | null;\n}\n\n/**\n * Rights for deployment.\n * @format int64\n */\nexport enum DreamMakerRights {\n None = 0,\n Read = 1,\n Compile = 2,\n CancelCompile = 4,\n SetDme = 8,\n SetApiValidationPort = 16,\n CompileJobs = 32,\n SetSecurityLevel = 64,\n SetApiValidationRequirement = 128,\n SetTimeout = 256,\n SetCompilerArguments = 512,\n}\n\n/** Represents an engine installation job. Tgstation.Server.Api.Models.Response.FileTicketResponse.FileTicket is used to upload custom version zip files. */\nexport interface EngineInstallResponse {\n /** The Tgstation.Server.Api.Models.Response.JobResponse being used to install a new Tgstation.Server.Api.Models.EngineVersion. */\n installJob?: JobResponse | null;\n fileTicket?: string | null;\n}\n\n/** Represents an installed Tgstation.Server.Api.Models.EngineVersion. */\nexport interface EngineResponse {\n /** The represented Tgstation.Server.Api.Models.EngineVersion. If null that indicates none were found. */\n engineVersion: EngineVersion;\n}\n\n/**\n * Rights for engine version management.\n * @format int64\n */\nexport enum EngineRights {\n None = 0,\n ReadActive = 1,\n ListInstalled = 2,\n InstallOfficialOrChangeActiveByondVersion = 4,\n CancelInstall = 8,\n InstallCustomByondVersion = 16,\n DeleteInstall = 32,\n InstallOfficialOrChangeActiveOpenDreamVersion = 64,\n InstallCustomOpenDreamVersion = 128,\n}\n\n/**\n * The type of engine the codebase is using.\n * @format int32\n */\nexport enum EngineType {\n Byond = 0,\n OpenDream = 1,\n}\n\n/** Information about an engine installation. */\nexport interface EngineVersion {\n /** The Tgstation.Server.Api.Models.EngineType. */\n engine: EngineType;\n /** The System.Version of the engine. Currently only valid when Tgstation.Server.Api.Models.EngineVersion.Engine is Tgstation.Server.Api.Models.EngineType.Byond. */\n version?: string | null;\n /**\n * The git commit SHA of the engine. Currently only valid when Tgstation.Server.Api.Models.EngineVersion.Engine is Tgstation.Server.Api.Models.EngineType.OpenDream.\n * @minLength 40\n * @maxLength 40\n */\n sourceSHA?: string | null;\n /**\n * The revision of the custom build.\n * @format int32\n */\n customIteration?: number | null;\n}\n\n/** A request to delete a specific Tgstation.Server.Api.Models.Request.EngineVersionDeleteRequest.EngineVersion. */\nexport interface EngineVersionDeleteRequest {\n /** The Tgstation.Server.Api.Models.EngineVersion to delete. */\n engineVersion?: EngineVersion | null;\n}\n\n/** A request to switch to a given Tgstation.Server.Api.Models.Request.EngineVersionRequest.EngineVersion. */\nexport interface EngineVersionRequest {\n /** The Tgstation.Server.Api.Models.EngineVersion to switch to. */\n engineVersion?: EngineVersion | null;\n /** If a custom BYOND version is to be uploaded. */\n uploadCustomZip?: boolean | null;\n}\n\n/** Common base of entities with IDs. */\nexport interface EntityId {\n /**\n * The ID of the entity.\n * @format int64\n */\n id?: number | null;\n}\n\n/**\n * Types of Tgstation.Server.Api.Models.Response.ErrorMessageResponses that the API may return.\n * @format int32\n */\nexport enum ErrorCode {\n InternalServerError = 0,\n ApiMismatch = 1,\n ModelValidationFailure = 2,\n IOError = 3,\n BadHeaders = 4,\n TokenWithToken = 5,\n DatabaseIntegrityConflict = 6,\n MissingHostWatchdog = 7,\n CannotChangeServerSuite = 8,\n RemoteApiError = 9,\n ServerUpdateInProgress = 10,\n UserNameChange = 11,\n UserSidChange = 12,\n UserMismatchNameSid = 13,\n UserMismatchPasswordSid = 14,\n UserPasswordLength = 15,\n UserColonInName = 16,\n UserMissingName = 17,\n InstanceRelocateOnline = 18,\n InstanceAtExistingPath = 19,\n InstanceDetachOnline = 20,\n InstanceAtConflictingPath = 21,\n InstanceLimitReached = 22,\n InstanceWhitespaceNameOrPath = 23,\n InstanceHeaderRequired = 24,\n RequiresPosixSystemIdentity = 25,\n ConfigurationFileUpdated = 26,\n ConfigurationDirectoryNotEmpty = 27,\n SwarmIntegrityCheckFailed = 28,\n RepoMismatchUserAndAccessToken = 29,\n RepoCloning = 30,\n RepoBusy = 31,\n RepoExists = 32,\n RepoMissing = 33,\n RepoMismatchShaAndReference = 34,\n RepoMismatchShaAndUpdate = 35,\n EngineCannotDeleteActiveVersion = 36,\n RepoDuplicateTestMerge = 37,\n RepoWhitespaceCommitterName = 38,\n RepoWhitespaceCommitterEmail = 39,\n ApiPageTooLarge = 40,\n ApiInvalidPageOrPageSize = 41,\n ChatBotWrongChannelType = 42,\n ChatBotWhitespaceConnectionString = 43,\n ChatBotWhitespaceName = 44,\n ChatBotProviderMissing = 45,\n ConfigurationContendedAccess = 46,\n ChatBotMax = 47,\n ChatBotMaxChannels = 48,\n ByondDirectXInstallFail = 49,\n EngineDownloadFail = 50,\n EngineNoVersionsInstalled = 51,\n DeploymentNeverValidated = 52,\n DeploymentInvalidValidation = 53,\n CannotRemoveLastAuthenticationOption = 54,\n DeploymentNoDme = 55,\n DeploymentMissingDme = 56,\n DeploymentExitCode = 57,\n DeploymentInProgress = 58,\n InstanceMissingDreamDaemonSettings = 59,\n InstanceMissingDreamMakerSettings = 60,\n InstanceMissingRepositorySettings = 61,\n InstanceUpdateTestMergeConflict = 62,\n RepoCredentialsRequired = 63,\n RepoCannotAuthenticate = 64,\n RepoReferenceRequired = 65,\n WatchdogRunning = 66,\n WatchdogCompileJobCorrupted = 67,\n WatchdogStartupFailed = 68,\n WatchdogStartupTimeout = 69,\n RepoUnsupportedTestMergeRemote = 70,\n RepoSwappedShaOrReference = 71,\n RepoMergeConflict = 72,\n RepoReferenceNotTracking = 73,\n RepoTestMergeConflict = 74,\n InstanceNotAtWhitelistedPath = 75,\n GameServerDoubleSoft = 76,\n DreamDaemonPagerRunning = 77,\n GameServerPortInUse = 78,\n PostDeployFailure = 79,\n WatchdogNotRunning = 80,\n ResourceNotPresent = 81,\n ResourceNeverPresent = 82,\n GitHubApiRateLimit = 83,\n JobStopped = 84,\n MissingGCore = 85,\n GCoreFailure = 86,\n RepoTestMergeInvalidRemote = 87,\n EngineNonExistentCustomVersion = 88,\n GameServerOffline = 89,\n InstanceOffline = 90,\n ChatCannotConnectProvider = 91,\n EngineFirewallFail = 92,\n NoPortsAvailable = 93,\n PortNotAvailable = 94,\n AdminUserCannotOAuth = 95,\n OAuthProviderDisabled = 96,\n FileUploadExpired = 97,\n UserGroupAndPermissionSet = 98,\n UserGroupNotEmpty = 99,\n UserLimitReached = 100,\n UserGroupLimitReached = 101,\n DeploymentTimeout = 102,\n BroadcastFailure = 103,\n OpenDreamCantFindDotnet = 104,\n OpenDreamTooOld = 105,\n DotnetDiagnosticsFailure = 106,\n DeploymentWrongDme = 107,\n RepoTokenUsernameMismatch = 108,\n RemoteGatewaysNotImplemented = 109,\n}\n\n/** Represents an error message returned by the server. */\nexport interface ErrorMessageResponse {\n /** The version of the API the server is using. */\n serverApiVersion: string;\n /** A human readable description of the error. */\n message: string;\n /** Additional data associated with the error message. */\n additionalData?: string | null;\n /** The Tgstation.Server.Api.Models.Response.ErrorMessageResponse.ErrorCode of the Tgstation.Server.Api.Models.Response.ErrorMessageResponse. */\n errorCode: ErrorCode;\n}\n\n/** A request to create an Tgstation.Server.Api.Models.Instance. */\nexport interface InstanceCreateRequest {\n /**\n * The path to where the Tgstation.Server.Api.Models.Instance is located. Can only be changed while the Tgstation.Server.Api.Models.Instance is offline. Must not exist when the instance is created.\n * @minLength 1\n */\n path: string;\n /** If Tgstation.Server.Api.Models.IConfigurationFiles can be used on the Tgstation.Server.Api.Models.Instance. */\n configurationType?: ConfigurationType | null;\n /**\n * The time interval in minutes the repository is automatically pulled and compiles. 0 disables.\n * @format int32\n */\n autoUpdateInterval?: number | null;\n /**\n * A cron expression indicating when auto-updates should trigger. Must be a valid 6 part cron schedule (SECONDS MINUTES HOURS DAY/MONTH MONTH DAY/WEEK). Empty System.String disables.\n * @minLength 0\n * @maxLength 10000\n */\n autoUpdateCron?: string | null;\n /**\n * The maximum number of chat bots the Tgstation.Server.Api.Models.Instance may contain.\n * @format int32\n */\n chatBotLimit?: number | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\n/**\n * Rights for managing Tgstation.Server.Api.Models.Instances.\n * @format int64\n */\nexport enum InstanceManagerRights {\n None = 0,\n Read = 1,\n Create = 2,\n Rename = 4,\n Relocate = 8,\n SetOnline = 16,\n Delete = 32,\n List = 64,\n SetConfiguration = 128,\n SetAutoUpdate = 256,\n SetChatBotLimit = 512,\n GrantPermissions = 1024,\n}\n\n/** A request to update an instance permission set. */\nexport interface InstancePermissionSetRequest {\n /**\n * The Tgstation.Server.Api.Models.EntityId.Id of the Tgstation.Server.Api.Models.PermissionSet the Tgstation.Server.Api.Models.Internal.InstancePermissionSet belongs to.\n * @format int64\n */\n permissionSetId: number;\n /** The Tgstation.Server.Api.Rights.InstancePermissionSetRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n instancePermissionSetRights?: InstancePermissionSetRights | null;\n /** The Tgstation.Server.Api.Rights.EngineRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n engineRights?: EngineRights | null;\n /** The Tgstation.Server.Api.Rights.DreamDaemonRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n dreamDaemonRights?: DreamDaemonRights | null;\n /** The Tgstation.Server.Api.Rights.DreamMakerRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n dreamMakerRights?: DreamMakerRights | null;\n /** The Tgstation.Server.Api.Rights.RepositoryRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n repositoryRights?: RepositoryRights | null;\n /** The Tgstation.Server.Api.Rights.ChatBotRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n chatBotRights?: ChatBotRights | null;\n /** The Tgstation.Server.Api.Rights.ConfigurationRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n configurationRights?: ConfigurationRights | null;\n}\n\n/** A response containing an instance permission set. */\nexport interface InstancePermissionSetResponse {\n /**\n * The Tgstation.Server.Api.Models.EntityId.Id of the Tgstation.Server.Api.Models.PermissionSet the Tgstation.Server.Api.Models.Internal.InstancePermissionSet belongs to.\n * @format int64\n */\n permissionSetId: number;\n /** The Tgstation.Server.Api.Rights.InstancePermissionSetRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n instancePermissionSetRights: InstancePermissionSetRights;\n /** The Tgstation.Server.Api.Rights.EngineRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n engineRights: EngineRights;\n /** The Tgstation.Server.Api.Rights.DreamDaemonRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n dreamDaemonRights: DreamDaemonRights;\n /** The Tgstation.Server.Api.Rights.DreamMakerRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n dreamMakerRights: DreamMakerRights;\n /** The Tgstation.Server.Api.Rights.RepositoryRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n repositoryRights: RepositoryRights;\n /** The Tgstation.Server.Api.Rights.ChatBotRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n chatBotRights: ChatBotRights;\n /** The Tgstation.Server.Api.Rights.ConfigurationRights of the Tgstation.Server.Api.Models.Internal.InstancePermissionSet. */\n configurationRights: ConfigurationRights;\n}\n\n/**\n * Rights for an Tgstation.Server.Api.Models.Instance.\n * @format int64\n */\nexport enum InstancePermissionSetRights {\n None = 0,\n Read = 1,\n Write = 2,\n Create = 4,\n}\n\n/** Server response for Tgstation.Server.Api.Models.Instances. */\nexport interface InstanceResponse {\n /** The Tgstation.Server.Api.Models.Response.JobResponse representing a change of Tgstation.Server.Api.Models.Instance.Path. */\n moveJob?: JobResponse | null;\n /** If the querying user may access this instance. */\n accessible: boolean;\n /**\n * The path to where the Tgstation.Server.Api.Models.Instance is located. Can only be changed while the Tgstation.Server.Api.Models.Instance is offline. Must not exist when the instance is created.\n * @minLength 1\n */\n path: string;\n /** If the Tgstation.Server.Api.Models.Instance is online. */\n online: boolean;\n /** If Tgstation.Server.Api.Models.IConfigurationFiles can be used on the Tgstation.Server.Api.Models.Instance. */\n configurationType: ConfigurationType;\n /**\n * The time interval in minutes the repository is automatically pulled and compiles. 0 disables.\n * @format int32\n */\n autoUpdateInterval: number;\n /**\n * A cron expression indicating when auto-updates should trigger. Must be a valid 6 part cron schedule (SECONDS MINUTES HOURS DAY/MONTH MONTH DAY/WEEK). Empty System.String disables.\n * @minLength 0\n * @maxLength 10000\n */\n autoUpdateCron: string;\n /**\n * The maximum number of chat bots the Tgstation.Server.Api.Models.Instance may contain.\n * @format int32\n */\n chatBotLimit: number;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/** A request to update an Tgstation.Server.Api.Models.Instance. */\nexport interface InstanceUpdateRequest {\n /**\n * The path to where the Tgstation.Server.Api.Models.Instance is located. Can only be changed while the Tgstation.Server.Api.Models.Instance is offline. Must not exist when the instance is created.\n * @minLength 1\n */\n path?: string | null;\n /** If the Tgstation.Server.Api.Models.Instance is online. */\n online?: boolean | null;\n /** If Tgstation.Server.Api.Models.IConfigurationFiles can be used on the Tgstation.Server.Api.Models.Instance. */\n configurationType?: ConfigurationType | null;\n /**\n * The time interval in minutes the repository is automatically pulled and compiles. 0 disables.\n * @format int32\n */\n autoUpdateInterval?: number | null;\n /**\n * A cron expression indicating when auto-updates should trigger. Must be a valid 6 part cron schedule (SECONDS MINUTES HOURS DAY/MONTH MONTH DAY/WEEK). Empty System.String disables.\n * @minLength 0\n * @maxLength 10000\n */\n autoUpdateCron?: string | null;\n /**\n * The maximum number of chat bots the Tgstation.Server.Api.Models.Instance may contain.\n * @format int32\n */\n chatBotLimit?: number | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name?: string | null;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/**\n * The different types of Tgstation.Server.Api.Models.Response.JobResponse.\n * @format int32\n */\nexport enum JobCode {\n Unknown = 0,\n Move = 1,\n RepositoryClone = 2,\n RepositoryUpdate = 3,\n RepositoryAutoUpdate = 4,\n RepositoryDelete = 5,\n EngineOfficialInstall = 6,\n EngineCustomInstall = 7,\n EngineDelete = 8,\n Deployment = 9,\n AutomaticDeployment = 10,\n WatchdogLaunch = 11,\n WatchdogRestart = 12,\n WatchdogDump = 13,\n StartupWatchdogLaunch = 14,\n StartupWatchdogReattach = 15,\n ReconnectChatBot = 16,\n RepositoryReclone = 17,\n}\n\n/** Represents a long running job on the server. Model is read-only, updates attempt to cancel the job. */\nexport interface JobResponse {\n /**\n * The Tgstation.Server.Api.Models.EntityId.Id of the Tgstation.Server.Api.Models.Instance.\n * @format int64\n */\n instanceId: number;\n /** The Tgstation.Server.Api.Models.Response.UserResponse that started the job. */\n startedBy: ShallowUserResponse;\n /** The Tgstation.Server.Api.Models.Response.UserResponse that cancelled the job. */\n cancelledBy?: ShallowUserResponse | null;\n /**\n * Optional progress between 0 and 100 inclusive.\n * @format int32\n */\n progress?: number | null;\n /** Optional description of the job's current . */\n stage?: string | null;\n /** The Tgstation.Server.Api.Models.JobCode. */\n jobCode: JobCode;\n /**\n * English description of the Tgstation.Server.Api.Models.Internal.Job.\n * @minLength 1\n */\n description: string;\n /** The Tgstation.Server.Api.Models.ErrorCode associated with the Tgstation.Server.Api.Models.Internal.Job if any. */\n errorCode?: ErrorCode | null;\n /** Details of any exceptions caught during the Tgstation.Server.Api.Models.Internal.Job. */\n exceptionDetails?: string | null;\n /**\n * When the Tgstation.Server.Api.Models.Internal.Job was started.\n * @format date-time\n */\n startedAt: string;\n /**\n * When the Tgstation.Server.Api.Models.Internal.Job stopped.\n * @format date-time\n */\n stoppedAt?: string | null;\n /** If the Tgstation.Server.Api.Models.Internal.Job was cancelled. */\n cancelled: boolean;\n /** The Tgstation.Server.Api.Rights.RightsType of Tgstation.Server.Api.Models.Internal.Job.CancelRight if it can be cancelled. */\n cancelRightsType?: RightsType | null;\n /**\n * The N:Tgstation.Server.Api.Rights required to cancel the Tgstation.Server.Api.Models.Internal.Job.\n * @format int64\n */\n cancelRight?: number | null;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/** Represents a server log file. */\nexport interface LogFileResponse {\n /** The name of the log file. */\n name: string;\n /**\n * The System.DateTimeOffset of when the log file was modified.\n * @format date-time\n */\n lastModified: string;\n /** The ticket to use to access the Tgstation.Server.Api.Routes.Transfer controller. */\n fileTicket: string;\n}\n\n/** Represents a valid OAuth connection. */\nexport interface OAuthConnection {\n /** The Tgstation.Server.Api.Models.OAuthProvider of the Tgstation.Server.Api.Models.OAuthConnection. */\n provider: OAuthProvider;\n /**\n * The ID of the user in the Tgstation.Server.Api.Models.OAuthConnection.Provider.\n * @minLength 1\n * @maxLength 100\n */\n externalUserId: string;\n}\n\n/** Success result for an OAuth gateway login attempt. */\nexport interface OAuthGatewayResponse {\n /** The user's access token for the requested OAuth service. */\n accessCode: string;\n}\n\n/** List of OAuth providers supported by TGS. */\nexport enum OAuthProvider {\n GitHub = \"GitHub\",\n Discord = \"Discord\",\n TGForums = \"TGForums\",\n Keycloak = \"Keycloak\",\n InvisionCommunity = \"InvisionCommunity\",\n}\n\n/** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\nexport interface OAuthProviderInfo {\n /** The client ID. */\n clientId: string;\n /**\n * The redirect URL.\n * @format uri\n */\n redirectUri: string;\n /**\n * The server URL.\n * @format uri\n */\n serverUrl?: string | null;\n /** If true the OAuth provider may only be used for gateway authentication. If false the OAuth provider may be used for server logins or gateway authentication. If null the OAuth provider may only be used for server logins. */\n gatewayOnly: boolean;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedChatBotResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: ChatBotResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedCompileJobResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: CompileJobResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedConfigurationFileResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: ConfigurationFileResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedEngineResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: EngineResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedInstancePermissionSetResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: InstancePermissionSetResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedInstanceResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: InstanceResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedJobResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: JobResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedLogFileResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: LogFileResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedUserGroupResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: UserGroupResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a paginated set of models. */\nexport interface PaginatedUserResponse {\n /** The System.Collections.Generic.ICollection`1 of the returned s. */\n content: UserResponse[];\n /**\n * The total number of pages in the query.\n * @format int32\n */\n totalPages: number;\n /**\n * The current size of pages in the query.\n * @format int32\n */\n pageSize: number;\n /**\n * The total items across all pages.\n * @format int32\n */\n totalItems: number;\n}\n\n/** Represents a set of server permissions. */\nexport interface PermissionSet {\n /** @format int64 */\n id?: number | null;\n /** The Tgstation.Server.Api.Rights.AdministrationRights for the user. */\n administrationRights: AdministrationRights;\n /** The Tgstation.Server.Api.Rights.InstanceManagerRights for the user. */\n instanceManagerRights: InstanceManagerRights;\n}\n\n/**\n * Indicates the remote git host.\n * @format int32\n */\nexport enum RemoteGitProvider {\n Unknown = 0,\n GitHub = 1,\n GitLab = 2,\n}\n\n/** Represents a request to clone the repository. */\nexport interface RepositoryCreateRequest {\n /**\n * The origin URL to clone.\n * @format uri\n */\n origin: string;\n /**\n * The branch or tag HEAD points to.\n * @minLength 0\n * @maxLength 10000\n */\n reference?: string | null;\n /**\n * The name of the committer.\n * @minLength 0\n * @maxLength 10000\n */\n committerName?: string | null;\n /**\n * The e-mail of the committer.\n * @format email\n * @minLength 0\n * @maxLength 10000\n */\n committerEmail?: string | null;\n /**\n * The username to access the git repository with. If using a TGS encoded app private key for Tgstation.Server.Api.Models.RepositorySettings.AccessToken, this should be the app's name.\n * @minLength 0\n * @maxLength 10000\n */\n accessUser?: string | null;\n /**\n * The token/password to access the git repository with. Can also be a TGS encoded app private key. Tgstation.Server.Api.Models.RepositorySettings.TgsAppPrivateKeyPrefix for details.\n * @minLength 0\n * @maxLength 10000\n */\n accessToken?: string | null;\n /** If commits created from testmerges are pushed to the remote. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n pushTestMergeCommits?: boolean | null;\n /** If GitHub deployments should be created. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser, Tgstation.Server.Api.Models.RepositorySettings.AccessToken, and Tgstation.Server.Api.Models.RepositorySettings.PushTestMergeCommits to be set to function. */\n createGitHubDeployments?: boolean | null;\n /** If test merge commits are signed with the username of the person who merged it. Note this only affects future commits. */\n showTestMergeCommitters?: boolean | null;\n /** If test merge commits should be kept when auto updating. May cause merge conflicts which will block the update. */\n autoUpdatesKeepTestMerges?: boolean | null;\n /** If synchronization should occur when auto updating. Requries Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n autoUpdatesSynchronize?: boolean | null;\n /** If test merging should create a comment. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n postTestMergeComment?: boolean | null;\n /** Do the equivalent of a `git submodule update --init` alongside any resets to origin, checkouts, or test merge additions. Note that this action is recursive ONLY during cloning. */\n updateSubmodules?: boolean | null;\n}\n\n/** Represents a git repository. */\nexport interface RepositoryResponse {\n /**\n * The origin URL. If null, the git repository does not currently exist on the server.\n * @format uri\n */\n origin?: string | null;\n /** The current Tgstation.Server.Api.Models.RevisionInformation. */\n revisionInformation?: RevisionInformation | null;\n remoteGitProvider?: RemoteGitProvider | null;\n remoteRepositoryOwner?: string | null;\n remoteRepositoryName?: string | null;\n /** The Tgstation.Server.Api.Models.Response.JobResponse started by the request, if any. */\n activeJob?: JobResponse | null;\n /**\n * The branch or tag HEAD points to.\n * @minLength 0\n * @maxLength 10000\n */\n reference?: string | null;\n /**\n * The name of the committer.\n * @minLength 0\n * @maxLength 10000\n */\n committerName: string;\n /**\n * The e-mail of the committer.\n * @format email\n * @minLength 0\n * @maxLength 10000\n */\n committerEmail: string;\n /**\n * The username to access the git repository with. If using a TGS encoded app private key for Tgstation.Server.Api.Models.RepositorySettings.AccessToken, this should be the app's name.\n * @minLength 0\n * @maxLength 10000\n */\n accessUser?: string | null;\n /** If commits created from testmerges are pushed to the remote. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n pushTestMergeCommits: boolean;\n /** If GitHub deployments should be created. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser, Tgstation.Server.Api.Models.RepositorySettings.AccessToken, and Tgstation.Server.Api.Models.RepositorySettings.PushTestMergeCommits to be set to function. */\n createGitHubDeployments: boolean;\n /** If test merge commits are signed with the username of the person who merged it. Note this only affects future commits. */\n showTestMergeCommitters: boolean;\n /** If test merge commits should be kept when auto updating. May cause merge conflicts which will block the update. */\n autoUpdatesKeepTestMerges: boolean;\n /** If synchronization should occur when auto updating. Requries Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n autoUpdatesSynchronize: boolean;\n /** If test merging should create a comment. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n postTestMergeComment: boolean;\n /** Do the equivalent of a `git submodule update --init` alongside any resets to origin, checkouts, or test merge additions. Note that this action is recursive ONLY during cloning. */\n updateSubmodules: boolean;\n}\n\n/**\n * Rights for the git repository.\n * @format int64\n */\nexport enum RepositoryRights {\n None = 0,\n CancelPendingChanges = 1,\n SetOrigin = 2,\n SetSha = 4,\n MergePullRequest = 8,\n UpdateBranch = 16,\n ChangeCommitter = 32,\n ChangeTestMergeCommits = 64,\n ChangeCredentials = 128,\n SetReference = 256,\n Read = 512,\n ChangeAutoUpdateSettings = 1024,\n Delete = 2048,\n CancelClone = 4096,\n ChangeSubmoduleUpdate = 8192,\n Reclone = 16384,\n}\n\n/** Represents a request to change the repository. */\nexport interface RepositoryUpdateRequest {\n /**\n * The commit HEAD should point to.\n * @minLength 0\n * @maxLength 40\n */\n checkoutSha?: string | null;\n /** Do the equivalent of a `git pull`. Will attempt to merge unless Tgstation.Server.Api.Models.Internal.RepositoryApiBase.Reference is also specified in which case a hard reset will be performed after checking out. */\n updateFromOrigin?: boolean | null;\n /** Tgstation.Server.Api.Models.TestMergeParameters for new Tgstation.Server.Api.Models.TestMerges. Note that merges that conflict will not be performed. */\n newTestMerges?: TestMergeParameters[] | null;\n /**\n * The branch or tag HEAD points to.\n * @minLength 0\n * @maxLength 10000\n */\n reference?: string | null;\n /**\n * The name of the committer.\n * @minLength 0\n * @maxLength 10000\n */\n committerName?: string | null;\n /**\n * The e-mail of the committer.\n * @format email\n * @minLength 0\n * @maxLength 10000\n */\n committerEmail?: string | null;\n /**\n * The username to access the git repository with. If using a TGS encoded app private key for Tgstation.Server.Api.Models.RepositorySettings.AccessToken, this should be the app's name.\n * @minLength 0\n * @maxLength 10000\n */\n accessUser?: string | null;\n /**\n * The token/password to access the git repository with. Can also be a TGS encoded app private key. Tgstation.Server.Api.Models.RepositorySettings.TgsAppPrivateKeyPrefix for details.\n * @minLength 0\n * @maxLength 10000\n */\n accessToken?: string | null;\n /** If commits created from testmerges are pushed to the remote. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n pushTestMergeCommits?: boolean | null;\n /** If GitHub deployments should be created. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessUser, Tgstation.Server.Api.Models.RepositorySettings.AccessToken, and Tgstation.Server.Api.Models.RepositorySettings.PushTestMergeCommits to be set to function. */\n createGitHubDeployments?: boolean | null;\n /** If test merge commits are signed with the username of the person who merged it. Note this only affects future commits. */\n showTestMergeCommitters?: boolean | null;\n /** If test merge commits should be kept when auto updating. May cause merge conflicts which will block the update. */\n autoUpdatesKeepTestMerges?: boolean | null;\n /** If synchronization should occur when auto updating. Requries Tgstation.Server.Api.Models.RepositorySettings.AccessUser and Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n autoUpdatesSynchronize?: boolean | null;\n /** If test merging should create a comment. Requires Tgstation.Server.Api.Models.RepositorySettings.AccessToken to be set to function. */\n postTestMergeComment?: boolean | null;\n /** Do the equivalent of a `git submodule update --init` alongside any resets to origin, checkouts, or test merge additions. Note that this action is recursive ONLY during cloning. */\n updateSubmodules?: boolean | null;\n}\n\nexport interface RevisionInformation {\n /** The Tgstation.Server.Api.Models.TestMerge that was created with this Tgstation.Server.Api.Models.RevisionInformation. */\n primaryTestMerge?: TestMerge | null;\n /** The Tgstation.Server.Api.Models.TestMerges active in the Tgstation.Server.Api.Models.RevisionInformation. */\n activeTestMerges: TestMerge[];\n /** The Tgstation.Server.Api.Models.Internal.CompileJobs made from the Tgstation.Server.Api.Models.RevisionInformation. */\n compileJobs: EntityId[];\n /**\n * The revision SHA.\n * @minLength 0\n * @maxLength 40\n */\n commitSha: string;\n /**\n * The timestamp of the revision.\n * @format date-time\n */\n timestamp: string;\n /**\n * The SHA of the most recent remote commit.\n * @minLength 0\n * @maxLength 40\n */\n originCommitSha: string;\n}\n\n/**\n * The type of rights a model uses.\n * @format int64\n */\nexport enum RightsType {\n Administration = 0,\n InstanceManager = 1,\n Repository = 2,\n Engine = 3,\n DreamMaker = 4,\n DreamDaemon = 5,\n ChatBots = 6,\n Configuration = 7,\n InstancePermissionSet = 8,\n}\n\n/** Represents basic server information. */\nexport interface ServerInformationResponse {\n /** The version of the host. */\n version: string;\n /** The N:Tgstation.Server.Api version of the host. */\n apiVersion: string;\n /** The DMAPI interop version the server uses. */\n dmApiVersion: string;\n /** If the server is running on a windows operating system. */\n windowsHost: boolean;\n /** Map of Tgstation.Server.Api.Models.OAuthProvider to the Tgstation.Server.Api.Models.OAuthProviderInfo for them. */\n oAuthProviderInfos: {\n /** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\n GitHub: OAuthProviderInfo;\n /** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\n Discord: OAuthProviderInfo;\n /** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\n TGForums: OAuthProviderInfo;\n /** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\n Keycloak: OAuthProviderInfo;\n /** Public information about a given Tgstation.Server.Api.Models.OAuthProvider. */\n InvisionCommunity: OAuthProviderInfo;\n };\n /** If there is a server update in progress. */\n updateInProgress: boolean;\n /** A System.Collections.Generic.ICollection`1 of connected Tgstation.Server.Api.Models.Response.SwarmServerResponses. */\n swarmServers?: SwarmServerResponse[] | null;\n /**\n * Minimum length of database user passwords.\n * @format int32\n */\n minimumPasswordLength: number;\n /**\n * The maximum number of Tgstation.Server.Api.Models.Instances allowed.\n * @format int32\n */\n instanceLimit: number;\n /**\n * The maximum number of users allowed.\n * @format int32\n */\n userLimit: number;\n /**\n * The maximum number of user groups allowed.\n * @format int32\n */\n userGroupLimit: number;\n /** Limits the locations instances may be created or attached from. */\n validInstancePaths?: string[] | null;\n}\n\n/** Represents a request to update TGS. */\nexport interface ServerUpdateRequest {\n /** Changes the version of tgstation-server to the given version from the upstream repository. */\n newVersion: string;\n /** If the user will provide the server update package .zip file via file transfer as opposed to TGS retrieving it from GitHub. */\n uploadZip?: boolean | null;\n}\n\n/** A response to a Tgstation.Server.Api.Models.Request.ServerUpdateRequest. */\nexport interface ServerUpdateResponse {\n /** The version of tgstation-server pending update. */\n newVersion: string;\n /** The ticket to use to access the Tgstation.Server.Api.Routes.Transfer controller. */\n fileTicket: string;\n}\n\n/** Base class for user names. */\nexport interface ShallowUserResponse {\n name: string;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\nexport interface SwarmServerResponse {\n /** If the Tgstation.Server.Api.Models.Response.SwarmServerResponse is the controller. */\n controller: boolean;\n /**\n * The public address of the server.\n * @format uri\n */\n address: string;\n /**\n * The address the swarm server can be publically accessed.\n * @format uri\n */\n publicAddress: string;\n /**\n * The server's identifier.\n * @minLength 1\n */\n identifier: string;\n}\n\nexport interface TestMerge {\n /** The Tgstation.Server.Api.Models.NamedEntity of the user who created the Tgstation.Server.Api.Models.TestMerge. */\n mergedBy: ShallowUserResponse;\n /**\n * The ID of the Tgstation.Server.Api.Models.Internal.TestMergeApiBase.\n * @format int64\n */\n id: number;\n /**\n * When the Tgstation.Server.Api.Models.Internal.TestMergeApiBase was created.\n * @format date-time\n */\n mergedAt: string;\n /**\n * The title of the test merge source.\n * @minLength 1\n */\n titleAtMerge: string;\n /**\n * The body of the test merge source.\n * @minLength 1\n */\n bodyAtMerge: string;\n /**\n * The URL of the test merge source.\n * @minLength 1\n */\n url: string;\n /**\n * The author of the test merge source.\n * @minLength 1\n */\n author: string;\n /**\n * The number of the test merge source.\n * @format int32\n */\n number: number;\n /**\n * The sha of the test merge revision to merge. If not specified, the latest commit from the source will be used.\n * @minLength 0\n * @maxLength 40\n */\n targetCommitSha: string;\n /**\n * Optional comment about the test.\n * @minLength 0\n * @maxLength 10000\n */\n comment?: string | null;\n}\n\n/** Parameters for creating a Tgstation.Server.Api.Models.TestMerge. */\nexport interface TestMergeParameters {\n /**\n * The number of the test merge source.\n * @format int32\n */\n number: number;\n /**\n * The sha of the test merge revision to merge. If not specified, the latest commit from the source will be used.\n * @minLength 0\n * @maxLength 40\n */\n targetCommitSha?: string | null;\n /**\n * Optional comment about the test.\n * @minLength 0\n * @maxLength 10000\n */\n comment?: string | null;\n}\n\n/** Represents a JWT returned by the API. */\nexport interface TokenResponse {\n /** The value of the JWT. */\n bearer: string;\n}\n\n/** For creating a user. */\nexport interface UserCreateRequest {\n /**\n * Cleartext password of the user.\n * @minLength 1\n */\n password?: string | null;\n /** List of Tgstation.Server.Api.Models.OAuthConnections associated with the user. */\n oAuthConnections?: OAuthConnection[] | null;\n /** The Tgstation.Server.Api.Models.PermissionSet directly associated with the user. */\n permissionSet?: PermissionSet | null;\n /** The Tgstation.Server.Api.Models.Internal.UserGroup asociated with the user, if any. */\n group?: UserGroup | null;\n /** If the Tgstation.Server.Api.Models.Internal.UserModelBase is enabled since users cannot be deleted. System users cannot be disabled. */\n enabled?: boolean | null;\n /**\n * The SID/UID of the Tgstation.Server.Api.Models.Internal.UserModelBase on Windows/POSIX respectively.\n * @minLength 1\n * @maxLength 100\n */\n systemIdentifier?: string | null;\n name?: string | null;\n}\n\n/** Represents a group of users. */\nexport interface UserGroup {\n /** @format int64 */\n id: number;\n /** The Tgstation.Server.Api.Models.PermissionSet of the Tgstation.Server.Api.Models.Internal.UserGroup. */\n permissionSet: PermissionSet;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\n/** Request to create a user group. */\nexport interface UserGroupCreateRequest {\n /** @format int64 */\n id: number;\n /** The Tgstation.Server.Api.Models.PermissionSet of the Tgstation.Server.Api.Models.Internal.UserGroup. */\n permissionSet?: PermissionSet | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\nexport interface UserGroupResponse {\n /** The Tgstation.Server.Api.Models.UserNames the Tgstation.Server.Api.Models.Response.UserGroupResponse has. */\n users: ShallowUserResponse[];\n /** @format int64 */\n id: number;\n /** The Tgstation.Server.Api.Models.PermissionSet of the Tgstation.Server.Api.Models.Internal.UserGroup. */\n permissionSet: PermissionSet;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\n/** Request to update a user group. */\nexport interface UserGroupUpdateRequest {\n /** @format int64 */\n id: number;\n /** The Tgstation.Server.Api.Models.PermissionSet of the Tgstation.Server.Api.Models.Internal.UserGroup. */\n permissionSet?: PermissionSet | null;\n /**\n * The name of the entity represented by the Tgstation.Server.Api.Models.NamedEntity.\n * @minLength 1\n * @maxLength 100\n */\n name?: string | null;\n}\n\nexport interface UserResponse {\n /** The Tgstation.Server.Api.Models.Response.UserResponse who created this Tgstation.Server.Api.Models.Response.UserResponse. */\n createdBy: ShallowUserResponse;\n /** List of Tgstation.Server.Api.Models.OAuthConnections associated with the user. */\n oAuthConnections: OAuthConnection[];\n /** The Tgstation.Server.Api.Models.PermissionSet directly associated with the user. */\n permissionSet?: PermissionSet | null;\n /** The Tgstation.Server.Api.Models.Internal.UserGroup asociated with the user, if any. */\n group?: UserGroup | null;\n /** If the Tgstation.Server.Api.Models.Internal.UserModelBase is enabled since users cannot be deleted. System users cannot be disabled. */\n enabled: boolean;\n /**\n * When the Tgstation.Server.Api.Models.Internal.UserModelBase was created.\n * @format date-time\n */\n createdAt: string;\n /**\n * The SID/UID of the Tgstation.Server.Api.Models.Internal.UserModelBase on Windows/POSIX respectively.\n * @minLength 1\n * @maxLength 100\n */\n systemIdentifier?: string | null;\n name: string;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/** For editing a given user. */\nexport interface UserUpdateRequest {\n /**\n * Cleartext password of the user.\n * @minLength 1\n */\n password?: string | null;\n /** List of Tgstation.Server.Api.Models.OAuthConnections associated with the user. */\n oAuthConnections?: OAuthConnection[] | null;\n /** The Tgstation.Server.Api.Models.PermissionSet directly associated with the user. */\n permissionSet?: PermissionSet | null;\n /** The Tgstation.Server.Api.Models.Internal.UserGroup asociated with the user, if any. */\n group?: UserGroup | null;\n /** If the Tgstation.Server.Api.Models.Internal.UserModelBase is enabled since users cannot be deleted. System users cannot be disabled. */\n enabled?: boolean | null;\n /**\n * The SID/UID of the Tgstation.Server.Api.Models.Internal.UserModelBase on Windows/POSIX respectively.\n * @minLength 1\n * @maxLength 100\n */\n systemIdentifier?: string | null;\n name?: string | null;\n /**\n * The ID of the entity.\n * @format int64\n */\n id: number;\n}\n\n/**\n * The current status of the watchdog.\n * @format int32\n */\nexport enum WatchdogStatus {\n Offline = 0,\n Restoring = 1,\n Online = 2,\n DelayedRestart = 3,\n}\n\nexport interface AdministrationControllerReadParams {\n /** If true, the cache should be bypassed. */\n fresh: boolean;\n}\n\n/** Represents a request to update TGS. */\nexport type AdministrationControllerUpdatePayload = ServerUpdateRequest;\n\nexport interface AdministrationControllerListLogsParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** Represents a request to update a chat bot. */\nexport type ChatControllerCreatePayload = ChatBotCreateRequest;\n\n/** Represents a request to update a chat bot. */\nexport type ChatControllerUpdatePayload = ChatBotUpdateRequest;\n\nexport interface ChatControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** Represents a request to update a configuration file. */\nexport type ConfigurationControllerUpdatePayload = ConfigurationFileRequest;\n\n/** Represents a request to update a configuration file. */\nexport type ConfigurationControllerCreateDirectoryPayload = ConfigurationFileRequest;\n\n/** Represents a request to update a configuration file. */\nexport type ConfigurationControllerDeleteDirectoryPayload = ConfigurationFileRequest;\n\nexport interface ConfigurationControllerDirectoryParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n /** The path of the directory to get. */\n directoryPath: string;\n}\n\nexport interface ConfigurationControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** A request to update Tgstation.Server.Api.Models.Internal.DreamDaemonSettings. */\nexport type DreamDaemonControllerUpdatePayload = DreamDaemonRequest;\n\n/** A request to the DreamMaker controller. */\nexport type DreamMakerControllerUpdatePayload = DreamMakerRequest;\n\nexport interface DreamMakerControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** A request to switch to a given Tgstation.Server.Api.Models.Request.EngineVersionRequest.EngineVersion. */\nexport type EngineControllerUpdatePayload = EngineVersionRequest;\n\n/** A request to delete a specific Tgstation.Server.Api.Models.Request.EngineVersionDeleteRequest.EngineVersion. */\nexport type EngineControllerDeletePayload = EngineVersionDeleteRequest;\n\nexport interface EngineControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** A request to create an Tgstation.Server.Api.Models.Instance. */\nexport type InstanceControllerCreatePayload = InstanceCreateRequest;\n\n/** A request to update an Tgstation.Server.Api.Models.Instance. */\nexport type InstanceControllerUpdatePayload = InstanceUpdateRequest;\n\nexport interface InstanceControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** A request to update an instance permission set. */\nexport type InstancePermissionSetControllerCreatePayload = InstancePermissionSetRequest;\n\n/** A request to update an instance permission set. */\nexport type InstancePermissionSetControllerUpdatePayload = InstancePermissionSetRequest;\n\nexport interface InstancePermissionSetControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\nexport interface JobControllerReadParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\nexport interface JobControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** Represents a request to clone the repository. */\nexport type RepositoryControllerCreatePayload = RepositoryCreateRequest;\n\n/** Represents a request to change the repository. */\nexport type RepositoryControllerUpdatePayload = RepositoryUpdateRequest;\n\nexport interface TransferControllerDownloadParams {\n /** The Tgstation.Server.Api.Models.Response.FileTicketResponse.FileTicket for the download. */\n ticket: string;\n}\n\n/** @format binary */\nexport type TransferControllerUploadPayload = File;\n\nexport interface TransferControllerUploadParams {\n /** The Tgstation.Server.Api.Models.Response.FileTicketResponse.FileTicket for the upload. */\n ticket: string;\n}\n\n/** For creating a user. */\nexport type UserControllerCreatePayload = UserCreateRequest;\n\n/** For editing a given user. */\nexport type UserControllerUpdatePayload = UserUpdateRequest;\n\nexport interface UserControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\n/** Request to create a user group. */\nexport type UserGroupControllerCreatePayload = UserGroupCreateRequest;\n\n/** Request to update a user group. */\nexport type UserGroupControllerUpdatePayload = UserGroupUpdateRequest;\n\nexport interface UserGroupControllerListParams {\n /**\n * The current page.\n * @format int32\n */\n page: number;\n /**\n * The page size.\n * @format int32\n */\n pageSize: number;\n}\n\nimport axios, {\n AxiosHeaders,\n AxiosInstance,\n AxiosRequestConfig,\n AxiosResponse,\n HeadersDefaults,\n RawAxiosRequestHeaders,\n ResponseType,\n} from \"axios\";\nimport { ServerClientRequestConfig } from \"../ServerClientRequestConfig\";\n\ntype RawAxiosHeaders = Omit;\n\nexport type QueryParamsType = Record;\n\nexport interface FullRequestParams extends Omit {\n /** set parameter to `true` for call `securityWorker` for this request */\n secure?: boolean;\n /** request path */\n path: string;\n /** content type of request body */\n type?: ContentType;\n /** query params */\n query?: QueryParamsType;\n /** format of response (i.e. response.json() -> format: \"json\") */\n format?: ResponseType;\n /** request body */\n body?: unknown;\n}\ntype ExtendedRequestParams = Omit;\nexport type RequestParams = Omit & {\n headers?: RawAxiosHeaders;\n};\n\nexport interface ApiConfig extends Omit {\n securityWorker?: (\n securityData: SecurityDataType | null,\n ) => Promise | AxiosRequestConfig | void;\n secure?: boolean;\n format?: ResponseType;\n}\n\nexport enum ContentType {\n Json = \"application/json\",\n FormData = \"multipart/form-data\",\n UrlEncoded = \"application/x-www-form-urlencoded\",\n Text = \"text/plain\",\n}\n\nexport class HttpClient {\n public instance: AxiosInstance;\n private securityData: SecurityDataType | null = null;\n private securityWorker?: ApiConfig[\"securityWorker\"];\n private secure?: boolean;\n private format?: ResponseType;\n\n constructor({ securityWorker, secure, format, ...axiosConfig }: ApiConfig = {}) {\n this.instance = axios.create({ ...axiosConfig, baseURL: axiosConfig.baseURL || \"\" });\n this.secure = secure;\n this.format = format;\n this.securityWorker = securityWorker;\n }\n\n public setSecurityData = (data: SecurityDataType | null) => {\n this.securityData = data;\n };\n\n protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig {\n const method = params1.method || (params2 && params2.method);\n\n return {\n ...this.instance.defaults,\n ...params1,\n ...(params2 || {}),\n headers: {\n ...((method && this.instance.defaults.headers[method.toLowerCase() as keyof HeadersDefaults]) || {}),\n ...(params1.headers || {}),\n ...((params2 && params2.headers) || {}),\n },\n };\n }\n\n protected stringifyFormItem(formItem: unknown) {\n if (typeof formItem === \"object\" && formItem !== null) {\n return JSON.stringify(formItem);\n } else {\n return `${formItem}`;\n }\n }\n\n protected createFormData(input: Record): FormData {\n if (input instanceof FormData) {\n return input;\n }\n return Object.keys(input || {}).reduce((formData, key) => {\n const property = input[key];\n const propertyContent: any[] = property instanceof Array ? property : [property];\n\n for (const formItem of propertyContent) {\n const isFileType = formItem instanceof Blob || formItem instanceof File;\n formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem));\n }\n\n return formData;\n }, new FormData());\n }\n\n public request = async ({\n secure,\n path,\n type,\n query,\n format,\n body,\n headers,\n ...params\n }: Omit & { headers?: RawAxiosHeaders }): Promise> => {\n const secureParams =\n ((typeof secure === \"boolean\" ? secure : this.secure) &&\n this.securityWorker &&\n (await this.securityWorker(this.securityData))) ||\n {};\n if (headers) {\n (params as FullRequestParams).headers = new AxiosHeaders(headers as AxiosHeaders);\n } else {\n (params as FullRequestParams).headers = new AxiosHeaders();\n }\n const requestParams = this.mergeRequestParams(params, secureParams);\n const responseFormat = format || this.format || undefined;\n\n if (type === ContentType.FormData && body && body !== null && typeof body === \"object\") {\n body = this.createFormData(body as Record);\n }\n\n if (type === ContentType.Text && body && body !== null && typeof body !== \"string\") {\n body = JSON.stringify(body);\n }\n\n return this.instance.request({\n ...requestParams,\n headers: {\n ...(requestParams.headers || {}),\n ...(type ? { \"Content-Type\": type } : {}),\n },\n params: query,\n responseType: responseFormat,\n data: body,\n url: path,\n });\n };\n}\n\n/**\n * @title TGS API\n * @version 10.11.0\n * @license AGPL-3.0 (https://github.com/tgstation/tgstation-server/blob/dev/LICENSE)\n * @externalDocs https://tgstation.github.io/tgstation-server/api.html\n * @contact /tg/station 13 (https://github.com/tgstation)\n *\n * A production scale tool for DreamMaker server management\n */\nexport class Api {\n http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n api = {\n /**\n * No description\n *\n * @tags Administration\n * @name AdministrationControllerRead\n * @summary Get Tgstation.Server.Api.Models.Response.AdministrationResponse server information.\n * @request GET:/api/Administration\n * @response `200` `AdministrationResponse` Retrieved Tgstation.Server.Api.Models.Response.AdministrationResponse data successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `424` `ErrorMessageResponse` The GitHub API rate limit was hit. See response header Retry-After.\n * @response `429` `ErrorMessageResponse` A GitHub API error occurred. See error message for details.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n administrationControllerRead: (query: AdministrationControllerReadParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Administration`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Administration\n * @name AdministrationControllerUpdate\n * @summary Attempt to perform a server upgrade.\n * @request POST:/api/Administration\n * @response `202` `ServerUpdateResponse` Update has been started successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The requested release version could not be found in the target GitHub repository.\n * @response `422` `ErrorMessageResponse` Upgrade operations are unavailable due to the launch configuration of TGS.\n * @response `424` `ErrorMessageResponse` A GitHub rate limit was encountered or the swarm integrity check failed.\n * @response `429` `ErrorMessageResponse` A GitHub API error occurred.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n administrationControllerUpdate: (data: AdministrationControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Administration`,\n method: \"POST\",\n body: data,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Administration\n * @name AdministrationControllerDelete\n * @summary Attempts to restart the server.\n * @request DELETE:/api/Administration\n * @response `204` `void` Restart begun successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `422` `ErrorMessageResponse` Restart operations are unavailable due to the launch configuration of TGS.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n administrationControllerDelete: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Administration`,\n method: \"DELETE\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Administration\n * @name AdministrationControllerListLogs\n * @summary List Tgstation.Server.Api.Models.Response.LogFileResponses present.\n * @request GET:/api/Administration/Logs\n * @secure\n * @response `200` `PaginatedLogFileResponse` Listed logs successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` An IO error occurred while listing.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n administrationControllerListLogs: (query: AdministrationControllerListLogsParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Administration/Logs`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Administration\n * @name AdministrationControllerGetLog\n * @summary Download a Tgstation.Server.Api.Models.Response.LogFileResponse.\n * @request GET:/api/Administration/Logs/{path}\n * @secure\n * @response `200` `LogFileResponse` Downloaded Tgstation.Server.Api.Models.Response.LogFileResponse successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` An IO error occurred while downloading.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n administrationControllerGetLog: (path: string, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Administration/Logs/${path}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags ApiRoot\n * @name ApiRootControllerServerInfo\n * @summary Main page of the Tgstation.Server.Host.Core.Application.\n * @request GET:/api\n * @response `200` `ServerInformationResponse` Tgstation.Server.Api.Models.Response.ServerInformationResponse retrieved successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n apiRootControllerServerInfo: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api`,\n method: \"GET\",\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags ApiRoot\n * @name ApiRootControllerCreateToken\n * @summary Attempt to authenticate a Tgstation.Server.Host.Models.User using Tgstation.Server.Host.Controllers.ApiController.ApiHeaders.\n * @request POST:/api\n * @secure\n * @response `200` `TokenResponse` User logged in and Tgstation.Server.Api.Models.Response.TokenResponse generated successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `void` User authentication failed.\n * @response `403` `void` User authenticated but is disabled by an administrator.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `429` `ErrorMessageResponse` OAuth authentication failed due to rate limiting.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n apiRootControllerCreateToken: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api`,\n method: \"POST\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags ApiRoot\n * @name ApiRootControllerCreateOAuthGatewayToken\n * @summary Attempt to authenticate a Tgstation.Server.Host.Models.User using Tgstation.Server.Host.Controllers.ApiController.ApiHeaders.\n * @request POST:/api/oauth_gateway\n * @response `200` `OAuthGatewayResponse` Tgstation.Server.Api.Models.Response.OAuthGatewayResponse generated successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `void` OAuth authentication failed.\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `429` `ErrorMessageResponse` OAuth authentication failed due to rate limiting.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n apiRootControllerCreateOAuthGatewayToken: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/oauth_gateway`,\n method: \"POST\",\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Chat\n * @name ChatControllerCreate\n * @summary Create a new chat bot model.\n * @request PUT:/api/Chat\n * @secure\n * @response `201` `ChatBotResponse` Created Tgstation.Server.Host.Models.ChatBot successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n chatControllerCreate: (data: ChatControllerCreatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Chat`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Chat\n * @name ChatControllerUpdate\n * @summary Updates a chat bot model.\n * @request POST:/api/Chat\n * @secure\n * @response `200` `ChatBotResponse` Update applied successfully.\n * @response `204` `void` Update applied successfully. Tgstation.Server.Host.Models.ChatBot not returned based on user permissions.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The Tgstation.Server.Host.Models.ChatBot with the given ID does not exist in this instance.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n chatControllerUpdate: (data: ChatControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Chat`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Chat\n * @name ChatControllerDelete\n * @summary Delete a Tgstation.Server.Host.Models.ChatBot.\n * @request DELETE:/api/Chat/{id}\n * @secure\n * @response `204` `void` Chat bot deleted or does not exist.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n chatControllerDelete: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Chat/${id}`,\n method: \"DELETE\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Chat\n * @name ChatControllerGetId\n * @summary Get a specific Tgstation.Server.Host.Models.ChatBot.\n * @request GET:/api/Chat/{id}\n * @secure\n * @response `200` `ChatBotResponse` Retrieved Tgstation.Server.Host.Models.ChatBot successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The Tgstation.Server.Host.Models.ChatBot with the given ID does not exist in this instance.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n chatControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Chat/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Chat\n * @name ChatControllerList\n * @summary List Tgstation.Server.Host.Models.ChatBots.\n * @request GET:/api/Chat/List\n * @secure\n * @response `200` `PaginatedChatBotResponse` Listed chat bots successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n chatControllerList: (query: ChatControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Chat/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerUpdate\n * @summary Write to a configuration file.\n * @request POST:/api/Config\n * @secure\n * @response `200` `ConfigurationFileResponse` File updated successfully.\n * @response `202` `ConfigurationFileResponse` File upload ticket created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerUpdate: (data: ConfigurationControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Config`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerCreateDirectory\n * @summary Create a configuration directory.\n * @request PUT:/api/Config\n * @secure\n * @response `200` `ConfigurationFileResponse` Directory already exists.\n * @response `201` `ConfigurationFileResponse` Directory created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` Conflict\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerCreateDirectory: (\n data: ConfigurationControllerCreateDirectoryPayload,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/Config`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerDeleteDirectory\n * @summary Deletes an empty directory.\n * @request DELETE:/api/Config\n * @secure\n * @response `204` `void` Empty directory deleted successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` Conflict\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerDeleteDirectory: (\n data: ConfigurationControllerDeleteDirectoryPayload,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/Config`,\n method: \"DELETE\",\n body: data,\n secure: true,\n type: ContentType.Json,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerFile\n * @summary Get the contents of a file at a filePath.\n * @request GET:/api/Config/File/{filePath}\n * @secure\n * @response `200` `ConfigurationFileResponse` File read successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` Conflict\n * @response `410` `ErrorMessageResponse` File does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerFile: (filePath: string, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Config/File/${filePath}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerDirectory\n * @summary Get the contents of a directory at a directoryPath.\n * @request GET:/api/Config/List/{directoryPath}\n * @secure\n * @response `200` `PaginatedConfigurationFileResponse` Directory listed successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` Conflict\n * @response `410` `ErrorMessageResponse` Directory does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerDirectory: (\n { directoryPath, ...query }: ConfigurationControllerDirectoryParams,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/Config/List/${directoryPath}`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Configuration\n * @name ConfigurationControllerList\n * @summary Get the contents of the root configuration directory.\n * @request GET:/api/Config/List\n * @secure\n * @response `200` `PaginatedConfigurationFileResponse` OK\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n configurationControllerList: (query: ConfigurationControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Config/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerCreate\n * @summary Launches the watchdog.\n * @request PUT:/api/DreamDaemon\n * @secure\n * @response `202` `JobResponse` Watchdog launch started successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerCreate: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon`,\n method: \"PUT\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerRead\n * @summary Get the watchdog status.\n * @request GET:/api/DreamDaemon\n * @secure\n * @response `200` `DreamDaemonResponse` Read Tgstation.Server.Api.Models.Response.DreamDaemonResponse information successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerDelete\n * @summary Stops the Watchdog if it's running.\n * @request DELETE:/api/DreamDaemon\n * @secure\n * @response `204` `void` Watchdog terminated.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerDelete: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon`,\n method: \"DELETE\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerUpdate\n * @summary Update watchdog settings to be applied at next server reboot.\n * @request POST:/api/DreamDaemon\n * @secure\n * @response `200` `DreamDaemonResponse` Settings applied successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerUpdate: (data: DreamDaemonControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerRestart\n * @summary Creates a Tgstation.Server.Api.Models.Response.JobResponse to restart the Watchdog. It will not start if it wasn't already running.\n * @request PATCH:/api/DreamDaemon\n * @secure\n * @response `202` `JobResponse` Restart Tgstation.Server.Api.Models.Response.JobResponse started successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerRestart: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon`,\n method: \"PATCH\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamDaemon\n * @name DreamDaemonControllerCreateDump\n * @summary Creates a Tgstation.Server.Api.Models.Response.JobResponse to generate a DreamDaemon process dump.\n * @request PATCH:/api/DreamDaemon/Diagnostics\n * @secure\n * @response `202` `JobResponse` Dump Tgstation.Server.Api.Models.Response.JobResponse started successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamDaemonControllerCreateDump: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamDaemon/Diagnostics`,\n method: \"PATCH\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamMaker\n * @name DreamMakerControllerRead\n * @summary Read current deployment settings.\n * @request GET:/api/DreamMaker\n * @secure\n * @response `200` `DreamMakerResponse` Read deployment settings successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamMakerControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamMaker`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamMaker\n * @name DreamMakerControllerCreate\n * @summary Begin deploying repository code.\n * @request PUT:/api/DreamMaker\n * @secure\n * @response `202` `JobResponse` Created deployment Tgstation.Server.Api.Models.Response.JobResponse successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamMakerControllerCreate: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamMaker`,\n method: \"PUT\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamMaker\n * @name DreamMakerControllerUpdate\n * @summary Update deployment settings.\n * @request POST:/api/DreamMaker\n * @secure\n * @response `200` `DreamMakerResponse` Changes applied successfully. The updated Tgstation.Server.Host.Models.DreamMakerSettings will be returned.\n * @response `204` `void` Changes applied successfully. The updated Tgstation.Server.Host.Models.DreamMakerSettings will be not be returned due to permissions.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamMakerControllerUpdate: (data: DreamMakerControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamMaker`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamMaker\n * @name DreamMakerControllerGetId\n * @summary Get a Tgstation.Server.Host.Models.CompileJob specified by a given id.\n * @request GET:/api/DreamMaker/{id}\n * @secure\n * @response `200` `CompileJobResponse` Tgstation.Server.Host.Models.CompileJob retrieved successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `404` `ErrorMessageResponse` Specified Tgstation.Server.Host.Models.CompileJob ID does not exist in this instance.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamMakerControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamMaker/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags DreamMaker\n * @name DreamMakerControllerList\n * @summary List all Tgstation.Server.Host.Models.CompileJobTgstation.Server.Api.Models.EntityIds for the instance.\n * @request GET:/api/DreamMaker/List\n * @secure\n * @response `200` `PaginatedCompileJobResponse` Retrieved Tgstation.Server.Api.Models.EntityIds successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n dreamMakerControllerList: (query: DreamMakerControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/DreamMaker/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Engine\n * @name EngineControllerRead\n * @summary Gets the active Tgstation.Server.Api.Models.EngineVersion.\n * @request GET:/api/Engine\n * @secure\n * @response `200` `EngineResponse` Retrieved version information successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` No engine versions installed.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n engineControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Engine`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Engine\n * @name EngineControllerUpdate\n * @summary Changes the active engine version to the one specified in a given model.\n * @request POST:/api/Engine\n * @secure\n * @response `200` `EngineInstallResponse` Switched active engine version successfully.\n * @response `202` `EngineInstallResponse` Created Tgstation.Server.Host.Models.Job to install and switch active engine version successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n engineControllerUpdate: (data: EngineControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Engine`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Engine\n * @name EngineControllerDelete\n * @summary Attempts to delete the BYOND version specified in a given model from the instance.\n * @request DELETE:/api/Engine\n * @secure\n * @response `202` `JobResponse` Created Tgstation.Server.Host.Models.Job to delete target version successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` Attempted to delete the active BYOND System.Version.\n * @response `410` `ErrorMessageResponse` The Tgstation.Server.Api.Models.EngineVersion specified was not installed.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n engineControllerDelete: (data: EngineControllerDeletePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Engine`,\n method: \"DELETE\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Engine\n * @name EngineControllerList\n * @summary Lists installed Tgstation.Server.Api.Models.EngineVersions.\n * @request GET:/api/Engine/List\n * @secure\n * @response `200` `PaginatedEngineResponse` Retrieved version information successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n engineControllerList: (query: EngineControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Engine/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerCreate\n * @summary Create or attach an Tgstation.Server.Api.Models.Instance.\n * @request PUT:/api/Instance\n * @secure\n * @response `200` `InstanceResponse` Instance attached successfully.\n * @response `201` `InstanceResponse` Instance created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerCreate: (data: InstanceControllerCreatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerUpdate\n * @summary Modify an Tgstation.Server.Api.Models.Instance's settings.\n * @request POST:/api/Instance\n * @secure\n * @response `200` `InstanceResponse` Instance updated successfully.\n * @response `202` `InstanceResponse` Instance updated successfully and relocation job created.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerUpdate: (data: InstanceControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerDelete\n * @summary Detach an Tgstation.Server.Api.Models.Instance with the given id.\n * @request DELETE:/api/Instance/{id}\n * @secure\n * @response `204` `void` Instance detatched successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerDelete: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance/${id}`,\n method: \"DELETE\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerGetId\n * @summary Get a specific Tgstation.Server.Api.Models.Instance.\n * @request GET:/api/Instance/{id}\n * @secure\n * @response `200` `InstanceResponse` Retrieved Tgstation.Server.Api.Models.Instance successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerGrantPermissions\n * @summary Gives the current user full permissions on a given instance id.\n * @request PATCH:/api/Instance/{id}\n * @secure\n * @response `204` `void` Granted permissions successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` Gone\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerGrantPermissions: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance/${id}`,\n method: \"PATCH\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Instance\n * @name InstanceControllerList\n * @summary List Tgstation.Server.Api.Models.Instances.\n * @request GET:/api/Instance/List\n * @secure\n * @response `200` `PaginatedInstanceResponse` Retrieved Tgstation.Server.Api.Models.Instances successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instanceControllerList: (query: InstanceControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Instance/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerCreate\n * @summary Create an Tgstation.Server.Host.Models.InstancePermissionSet.\n * @request PUT:/api/InstancePermissionSet\n * @secure\n * @response `201` `InstancePermissionSetResponse` Tgstation.Server.Host.Models.InstancePermissionSet created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The Tgstation.Server.Api.Models.PermissionSet does not exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerCreate: (\n data: InstancePermissionSetControllerCreatePayload,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/InstancePermissionSet`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerUpdate\n * @summary Update the permissions for an Tgstation.Server.Host.Models.InstancePermissionSet.\n * @request POST:/api/InstancePermissionSet\n * @secure\n * @response `200` `InstancePermissionSetResponse` Tgstation.Server.Host.Models.InstancePermissionSet updated successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The requested Tgstation.Server.Host.Models.InstancePermissionSet does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerUpdate: (\n data: InstancePermissionSetControllerUpdatePayload,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/InstancePermissionSet`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerRead\n * @summary Read the active Tgstation.Server.Host.Models.InstancePermissionSet.\n * @request GET:/api/InstancePermissionSet\n * @secure\n * @response `200` `InstancePermissionSetResponse` Tgstation.Server.Host.Models.InstancePermissionSet retrieved successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/InstancePermissionSet`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerList\n * @summary Lists Tgstation.Server.Host.Models.InstancePermissionSets for the instance.\n * @request GET:/api/InstancePermissionSet/List\n * @secure\n * @response `200` `PaginatedInstancePermissionSetResponse` Retrieved Tgstation.Server.Host.Models.InstancePermissionSets successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerList: (\n query: InstancePermissionSetControllerListParams,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/InstancePermissionSet/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerGetId\n * @summary Gets a specific Tgstation.Server.Api.Models.Internal.InstancePermissionSet.\n * @request GET:/api/InstancePermissionSet/{id}\n * @secure\n * @response `200` `InstancePermissionSetResponse` Retrieve Tgstation.Server.Api.Models.Internal.InstancePermissionSet successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The requested Tgstation.Server.Api.Models.Internal.InstancePermissionSet does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/InstancePermissionSet/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags InstancePermissionSet\n * @name InstancePermissionSetControllerDelete\n * @summary Delete an Tgstation.Server.Host.Models.InstancePermissionSet.\n * @request DELETE:/api/InstancePermissionSet/{id}\n * @secure\n * @response `204` `void` Target Tgstation.Server.Host.Models.InstancePermissionSet deleted.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` Target Tgstation.Server.Host.Models.InstancePermissionSet or no longer exists.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n instancePermissionSetControllerDelete: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/InstancePermissionSet/${id}`,\n method: \"DELETE\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Job\n * @name JobControllerRead\n * @summary Get active Tgstation.Server.Api.Models.Response.JobResponses for the instance.\n * @request GET:/api/Job\n * @secure\n * @response `200` `PaginatedJobResponse` Retrieved active Tgstation.Server.Host.Models.Jobs successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n jobControllerRead: (query: JobControllerReadParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Job`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Job\n * @name JobControllerList\n * @summary List all Tgstation.Server.Api.Models.Response.JobResponse for the instance in reverse creation order.\n * @request GET:/api/Job/List\n * @secure\n * @response `200` `PaginatedJobResponse` Retrieved Tgstation.Server.Host.Models.JobTgstation.Server.Api.Models.EntityIds successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n jobControllerList: (query: JobControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Job/List`,\n method: \"GET\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Job\n * @name JobControllerDelete\n * @summary Cancel a running Tgstation.Server.Api.Models.Response.JobResponse.\n * @request DELETE:/api/Job/{id}\n * @secure\n * @response `202` `JobResponse` Tgstation.Server.Host.Models.Job cancellation requested successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `404` `ErrorMessageResponse` Tgstation.Server.Host.Models.Job does not exist in this instance.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `void` Tgstation.Server.Host.Models.Job could not be found in the job manager. Has it already completed?.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n jobControllerDelete: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Job/${id}`,\n method: \"DELETE\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Job\n * @name JobControllerGetId\n * @summary Get a specific Tgstation.Server.Api.Models.Response.JobResponse.\n * @request GET:/api/Job/{id}\n * @secure\n * @response `200` `JobResponse` Retrieved Tgstation.Server.Host.Models.Job successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `404` `ErrorMessageResponse` Tgstation.Server.Host.Models.Job does not exist in this instance.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n jobControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Job/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Repository\n * @name RepositoryControllerCreate\n * @summary Begin cloning the repository if it doesn't exist.\n * @request PUT:/api/Repository\n * @secure\n * @response `201` `RepositoryResponse` The repository was created successfully and the Tgstation.Server.Api.Models.Response.JobResponse to clone it has begun.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n repositoryControllerCreate: (data: RepositoryControllerCreatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Repository`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Repository\n * @name RepositoryControllerDelete\n * @summary Delete the repository.\n * @request DELETE:/api/Repository\n * @secure\n * @response `202` `RepositoryResponse` Job to delete the repository created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n repositoryControllerDelete: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Repository`,\n method: \"DELETE\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Repository\n * @name RepositoryControllerReclone\n * @summary Delete the repository.\n * @request PATCH:/api/Repository\n * @secure\n * @response `202` `RepositoryResponse` Job to delete the repository created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n repositoryControllerReclone: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Repository`,\n method: \"PATCH\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Repository\n * @name RepositoryControllerRead\n * @summary Get the repository's status.\n * @request GET:/api/Repository\n * @secure\n * @response `200` `RepositoryResponse` Retrieved the repository settings successfully.\n * @response `201` `RepositoryResponse` Retrieved the repository settings successfully, though they did not previously exist.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `RepositoryResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n repositoryControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Repository`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Repository\n * @name RepositoryControllerUpdate\n * @summary Perform updates to the repository.\n * @request POST:/api/Repository\n * @secure\n * @response `200` `RepositoryResponse` Updated the repository settings successfully.\n * @response `202` `RepositoryResponse` Updated the repository settings successfully and a Tgstation.Server.Api.Models.Response.JobResponse was created to make the requested git changes.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The database entity for the requested instance could not be retrieved. The instance was likely detached.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n repositoryControllerUpdate: (data: RepositoryControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Repository`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Transfer\n * @name TransferControllerDownload\n * @summary Downloads a file with a given ticket.\n * @request GET:/api/Transfer\n * @secure\n * @response `200` `File` Started streaming download successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The ticket was no longer or was never valid.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n transferControllerDownload: (query: TransferControllerDownloadParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/Transfer`,\n method: \"GET\",\n query: query,\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Transfer\n * @name TransferControllerUpload\n * @summary Uploads a file with a given ticket.\n * @request PUT:/api/Transfer\n * @secure\n * @response `204` `void` Uploaded file successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `void` An error occurred during the upload.\n * @response `410` `ErrorMessageResponse` The ticket was no longer or was never valid.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n transferControllerUpload: (\n query: TransferControllerUploadParams,\n data: TransferControllerUploadPayload,\n params: RequestParams = {},\n ) =>\n this.http.request({\n path: `/api/Transfer`,\n method: \"PUT\",\n query: query,\n body: data,\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags User\n * @name UserControllerCreate\n * @summary Create a new Tgstation.Server.Host.Models.User.\n * @request PUT:/api/User\n * @response `201` `UserResponse` Tgstation.Server.Host.Models.User created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `void` The requested system identifier could not be found.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userControllerCreate: (data: UserControllerCreatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/User`,\n method: \"PUT\",\n body: data,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags User\n * @name UserControllerUpdate\n * @summary Update a Tgstation.Server.Host.Models.User.\n * @request POST:/api/User\n * @response `200` `UserResponse` Tgstation.Server.Host.Models.User updated successfully. Not returned due to lack of permissions.\n * @response `204` `void` No Content\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `404` `ErrorMessageResponse` Requested Tgstation.Server.Api.Models.EntityId.Id does not exist.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` Requested Tgstation.Server.Api.Models.Internal.UserApiBase.Group does not exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userControllerUpdate: (data: UserControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/User`,\n method: \"POST\",\n body: data,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags User\n * @name UserControllerRead\n * @summary Get information about the current Tgstation.Server.Host.Models.User.\n * @request GET:/api/User\n * @response `200` `UserResponse` The Tgstation.Server.Host.Models.User was retrieved successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userControllerRead: (params: RequestParams = {}) =>\n this.http.request({\n path: `/api/User`,\n method: \"GET\",\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags User\n * @name UserControllerList\n * @summary List all Tgstation.Server.Host.Models.Users in the server.\n * @request GET:/api/User/List\n * @response `200` `PaginatedUserResponse` Retrieved Tgstation.Server.Host.Models.Users successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userControllerList: (query: UserControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/User/List`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags User\n * @name UserControllerGetId\n * @summary Get a specific Tgstation.Server.Host.Models.User.\n * @request GET:/api/User/{id}\n * @secure\n * @response `200` `UserResponse` The Tgstation.Server.Host.Models.User was retrieved successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `404` `ErrorMessageResponse` The Tgstation.Server.Host.Models.User does not exist.\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/User/${id}`,\n method: \"GET\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags UserGroup\n * @name UserGroupControllerCreate\n * @summary Create a new Tgstation.Server.Host.Models.UserGroup.\n * @request PUT:/api/UserGroup\n * @secure\n * @response `201` `UserGroupResponse` Tgstation.Server.Host.Models.UserGroup created successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userGroupControllerCreate: (data: UserGroupControllerCreatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/UserGroup`,\n method: \"PUT\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags UserGroup\n * @name UserGroupControllerUpdate\n * @summary Update a Tgstation.Server.Host.Models.UserGroup.\n * @request POST:/api/UserGroup\n * @secure\n * @response `200` `UserGroupResponse` Tgstation.Server.Host.Models.UserGroup updated successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `void` The requested Tgstation.Server.Host.Models.UserGroup does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userGroupControllerUpdate: (data: UserGroupControllerUpdatePayload, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/UserGroup`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags UserGroup\n * @name UserGroupControllerGetId\n * @summary Gets a specific Tgstation.Server.Host.Models.UserGroup.\n * @request GET:/api/UserGroup/{id}\n * @response `200` `UserGroupResponse` Retrieve Tgstation.Server.Host.Models.UserGroup successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `410` `ErrorMessageResponse` The requested Tgstation.Server.Host.Models.UserGroup does not currently exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userGroupControllerGetId: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/UserGroup/${id}`,\n method: \"GET\",\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags UserGroup\n * @name UserGroupControllerDelete\n * @summary Delete a Tgstation.Server.Host.Models.UserGroup.\n * @request DELETE:/api/UserGroup/{id}\n * @secure\n * @response `204` `void` Tgstation.Server.Host.Models.UserGroup was deleted.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse` The Tgstation.Server.Host.Models.UserGroup is not empty.\n * @response `410` `ErrorMessageResponse` The Tgstation.Server.Host.Models.UserGroup didn't exist.\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userGroupControllerDelete: (id: number, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/UserGroup/${id}`,\n method: \"DELETE\",\n secure: true,\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags UserGroup\n * @name UserGroupControllerList\n * @summary Lists all Tgstation.Server.Host.Models.UserGroups.\n * @request GET:/api/UserGroup/List\n * @response `200` `PaginatedUserGroupResponse` Retrieved Tgstation.Server.Host.Models.UserGroups successfully.\n * @response `400` `ErrorMessageResponse`\n * @response `401` `any`\n * @response `403` `any`\n * @response `406` `ErrorMessageResponse`\n * @response `409` `ErrorMessageResponse`\n * @response `500` `ErrorMessageResponse`\n * @response `501` `ErrorMessageResponse`\n * @response `503` `any`\n */\n userGroupControllerList: (query: UserGroupControllerListParams, params: RequestParams = {}) =>\n this.http.request({\n path: `/api/UserGroup/List`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n };\n}\n","import { OAuthProvider } from \"../generatedcode/generated\";\n\nexport enum CredentialsType {\n Password,\n OAuth\n}\n\nexport interface IPasswordCredentials {\n type: CredentialsType.Password;\n userName: string;\n password: string;\n}\n\nexport interface IOAuthCredentials {\n type: CredentialsType.OAuth;\n provider: OAuthProvider;\n token: string;\n}\n\nexport type ICredentials = IPasswordCredentials | IOAuthCredentials;\n","import { AxiosResponse } from \"axios\";\n\nimport { replaceAll } from \"../../../utils/misc\";\nimport { ErrorCode as TGSErrorCode, ErrorMessageResponse } from \"../../generatedcode/generated\";\nimport configOptions from \"../../util/config\";\nimport CredentialsProvider from \"../../util/CredentialsProvider\";\n\nexport type GenericErrors =\n | ErrorCode.HTTP_BAD_REQUEST\n | ErrorCode.HTTP_DATA_INEGRITY\n | ErrorCode.HTTP_API_MISMATCH\n | ErrorCode.HTTP_SERVER_ERROR\n | ErrorCode.HTTP_UNIMPLEMENTED\n // | ErrorCode.HTTP_SERVER_NOT_READY\n | ErrorCode.AXIOS\n | ErrorCode.UNHANDLED_RESPONSE\n | ErrorCode.UNHANDLED_GLOBAL_RESPONSE\n | ErrorCode.HTTP_ACCESS_DENIED\n | ErrorCode.HTTP_NOT_ACCEPTABLE\n | ErrorCode.OK\n | ErrorCode.NO_APIPATH\n | ErrorCode.APP_FAIL;\n\nexport enum ErrorCode {\n OK = 'Isnt displayed but is used as an \"error\" when everything is ok', //void\n HTTP_BAD_REQUEST = \"error.http.bad_request\", //errmessage\n HTTP_DATA_INEGRITY = \"error.http.data_integrity\", //errmessage\n HTTP_API_MISMATCH = \"error.http.api_mismatch\", //void\n HTTP_SERVER_ERROR = \"error.http.server_error\", //errmessage\n HTTP_UNIMPLEMENTED = \"error.http.unimplemented\", //errmessage\n //auto retry HTTP_SERVER_NOT_READY = 'error.http.server_not_ready', //void\n HTTP_ACCESS_DENIED = \"error.http.access_denied\", //void\n HTTP_NOT_ACCEPTABLE = \"error.http.not_acceptable\", //void\n UNHANDLED_RESPONSE = \"error.unhandled_response\", //axiosresponse\n UNHANDLED_GLOBAL_RESPONSE = \"error.unhandled_global_response\", //axiosresponse\n AXIOS = \"error.axios\", //jserror\n\n //Generic errors\n GITHUB_FAIL = \"error.github\", //jserror\n APP_FAIL = \"error.app\", //jserror\n NO_APIPATH = \"error.no_apipath\", //void\n\n //Login errors\n LOGIN_FAIL = \"error.login.bad_user_pass\", //void\n LOGIN_NOCREDS = \"error.login.no_creds\", //void\n LOGIN_DISABLED = \"error.login.user_disabled\", //void\n LOGIN_BAD_OAUTH = \"error.login.bad_oauth\", //jserror\n LOGIN_RATELIMIT = \"error.login.rate_limit\", //errmessage\n\n //User errors\n USER_NO_SYS_IDENT = \"error.user.no_sys_ident\", //errmessage\n USER_NOT_FOUND = \"error.user.not_found\", //errmessage\n\n //Administration errors\n ADMIN_GITHUB_RATE = \"error.admin.rate\", //errmessage\n ADMIN_GITHUB_ERROR = \"error.admin.error\", //errmessage\n ADMIN_WATCHDOG_UNAVAIL = \"error.admin.watchdog.avail\", //errmessage\n ADMIN_VERSION_NOT_FOUND = \"error.admin.update.notfound\", //errmessage\n ADMIN_LOGS_IO_ERROR = \"error.admin.logs.io\", //errmessage\n\n //Job errors\n JOB_JOB_NOT_FOUND = \"error.job.not_found\", //errmessage\n JOB_JOB_COMPLETE = \"error.job.complete\", //void\n\n //Transfer errors\n TRANSFER_NOT_AVAILABLE = \"error.transfer.not_available\", //errmessage\n UPLOAD_FAILED = \"error.transfer.upload_failed\", //void\n\n GROUP_NOT_FOUND = \"error.group.not_found\", //errmessage\n GROUP_NOT_EMPTY = \"error.group.not_empty\", //errmessage\n\n //Watchdog errors\n NO_DB_ENTITY = \"error.no_db_entity\", //errmessage\n\n //Engine errors\n ENGINE_VERSION_NOT_FOUND = \"error.no_engine_version\",\n\n //DreamMaker errors\n COMPILE_JOB_NOT_FOUND = \"error.compile_job_not_found\", //errmessage\n\n //Config File errors\n CONFIG_FILE_NOT_FOUND = \"error.config_file_not_found\",\n CONFIG_FILE_IO_ERROR = \"error.config_file_io\",\n CONFIG_FILE_DIRECTORY_NOT_FOUND = \"error.config_file_directory_not_found\",\n\n BAD_YML = \"error.bad_yml\",\n BAD_TGS_YML_VERSION = \"error.bad_tgs_yml_version\",\n\n BAD_CHANNELS_JSON = \"error.bad_channels_json\",\n\n BAD_HUB_CONNECTION = \"error.bad_hub_connection\"\n}\n\ntype errorMessage = {\n errorMessage: ErrorMessageResponse;\n};\ntype axiosResponse = {\n axiosResponse: AxiosResponse;\n};\ntype jsError = {\n jsError: Error;\n};\ntype voidError = {\n void: true;\n};\n\nexport enum DescType {\n LOCALE,\n TEXT\n}\n\ninterface Desc {\n type: DescType;\n desc: string;\n}\n\nexport type allAddons = errorMessage | axiosResponse | jsError | voidError;\n\nexport default class InternalError {\n public readonly code: T;\n public readonly desc?: Desc;\n public readonly extendedInfo: string;\n public readonly originalErrorMessage?: ErrorMessageResponse;\n\n public constructor(code: T, addon: allAddons, origin?: AxiosResponse, noError?: boolean) {\n this.code = code;\n if (\"errorMessage\" in addon) {\n const err = addon.errorMessage;\n this.originalErrorMessage = err;\n this.desc = {\n type: DescType.TEXT,\n desc: `${TGSErrorCode[err.errorCode]}: ${err.message}${\n err.additionalData ? \": \" + err.additionalData : \"\"\n }`\n };\n if (!err.message) {\n this.desc = {\n type: DescType.TEXT,\n desc: TGSErrorCode[err.errorCode]\n };\n }\n }\n if (\"jsError\" in addon) {\n const err = addon.jsError;\n this.desc = {\n type: DescType.TEXT,\n desc: `${err.name}: ${err.message}`\n };\n }\n const stack = new Error().stack;\n\n if (origin?.config.headers[\"Authorization\"]) {\n origin.config.headers[\"Authorization\"] = \"*********\";\n }\n\n let debuginfo = JSON.stringify({ addon, origin, config: configOptions, stack });\n debuginfo = debuginfo.replace(\n /Basic (?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?/g,\n \"Basic **************\"\n );\n debuginfo = debuginfo.replace(\n /{\"username\":\".+?\",\"password\":\".+?\"}/g,\n '{\"username\":\"*******\",\"password\":\"*******\"}'\n );\n if (CredentialsProvider.hasToken()) {\n debuginfo = replaceAll(debuginfo, CredentialsProvider.token!.bearer, \"**************\");\n }\n if (configOptions.githubtoken.value) {\n debuginfo = replaceAll(\n debuginfo,\n configOptions.githubtoken.value as string,\n \"**************\"\n );\n }\n this.extendedInfo = debuginfo;\n\n if (!noError) {\n console.error(\n `Error occured within the application: ${this.code} (${\n this.desc?.desc ?? \"No description\"\n })`,\n this\n );\n }\n\n //@ts-expect-error yeah well, i aint extending the window interface\n if (window.breakonerror) {\n // eslint-disable-next-line no-debugger\n debugger;\n }\n }\n}\n","import InternalError, { ErrorCode } from \"./InternalError\";\n\nexport enum StatusCode {\n OK,\n ERROR\n}\n\nexport interface InternalStatusErr {\n code: StatusCode.ERROR;\n error: InternalError;\n}\n\nexport interface InternalStatusOK {\n code: StatusCode.OK;\n payload: T;\n}\n\ntype InternalStatus = InternalStatusOK | InternalStatusErr;\n\nconst InternalStatus = function InternalStatus(\n this: InternalStatus,\n args: InternalStatus\n): Readonly> {\n return Object.freeze(Object.assign({}, args));\n} as unknown as {\n new (\n args: InternalStatus\n ): Readonly>;\n};\n\nexport default InternalStatus;\n","import { MODE } from \"../../definitions/constants\";\nimport type { TokenResponse } from \"../generatedcode/generated\";\nimport { CredentialsType, ICredentials, IPasswordCredentials } from \"../models/ICredentials\";\n\n//Data structure meant to help against circular dependencies within the ApiClient\n//Its rather dumb and only holds username, password and the token.\n//Also contains a function to determine if theres a token here\nexport default new (class CredentialsProvider {\n //token\n public token?: TokenResponse;\n public defaulted?: boolean;\n\n //credentials\n public credentials?: ICredentials;\n public default: IPasswordCredentials = {\n type: CredentialsType.Password,\n userName: \"admin\",\n password: \"ISolemlySwearToDeleteTheDataDirectory\"\n };\n\n public hasToken() {\n return (\n this.token && this.token.bearer /* &&\n (!this.token.expiresAt || new Date(this.token.expiresAt) > new Date(Date.now()))*/\n );\n }\n\n public constructor() {\n if (MODE === \"DEV\") {\n window.credentialProvider = this;\n }\n }\n})();\n","import { TypedEmitter } from \"tiny-typed-emitter\";\n\nimport type { TokenResponse } from \"../generatedcode/generated\";\n\ninterface IEvents {\n //tasks once the user is fully logged in\n loginSuccess: (token: TokenResponse) => void;\n}\n\nclass LoginHooks extends TypedEmitter {\n private promiseHooks: Set<(token: TokenResponse) => Promise> = new Set();\n\n public runHooks(token: TokenResponse) {\n console.log(\"Running login hooks\");\n let i = 0;\n const work: Array> = [];\n for (const hook of this.promiseHooks) {\n const id = i;\n console.log(`Running hook ${hook.name}(${id})`);\n work.push(\n new Promise((resolve, reject) => {\n hook(token)\n .then(() => {\n console.log(`Done hook ${hook.name}(${id})`);\n resolve();\n })\n .catch(err => {\n console.error(`Error running hook ${hook.name}(${id}): `, err);\n reject(err);\n });\n })\n );\n i++;\n }\n Promise.all(work)\n .then(() => {\n console.log(\"Running post login event\");\n this.emit(\"loginSuccess\", token);\n })\n .catch(() => console.error(\"An error occured while running login hooks\"));\n }\n\n public addHook(hook: (token: TokenResponse) => Promise): void {\n this.promiseHooks.add(hook);\n }\n\n public removeHook(hook: (token: TokenResponse) => Promise): void {\n this.promiseHooks.delete(hook);\n }\n}\n\nexport default new LoginHooks();\n","import { DEFAULT_APIPATH, MODE } from \"../../definitions/constants\";\n\nexport type ConfigValue = number | string | boolean;\n\nexport type ConfigOption = BaseConfigOption &\n (NumConfigOption | StrConfigOption | PwdConfigOption | BoolConfigOption | EnumConfigOption);\n\nexport interface BaseConfigOption {\n id: string;\n site_local?: boolean;\n}\n\nexport interface NumConfigOption extends BaseConfigOption {\n type: \"num\";\n value: number;\n min?: number;\n max?: number;\n callback?: (oldValue: number, newValue: number) => void;\n}\nexport interface StrConfigOption extends BaseConfigOption {\n type: \"str\";\n value: string;\n callback?: (oldValue: string, newValue: string) => void;\n}\nexport interface PwdConfigOption extends BaseConfigOption {\n type: \"pwd\";\n value: string;\n callback?: (oldValue: string, newValue: string) => void;\n}\nexport interface BoolConfigOption extends BaseConfigOption {\n type: \"bool\";\n value: boolean;\n callback?: (oldValue: boolean, newValue: boolean) => void;\n}\nexport interface EnumConfigOption extends BaseConfigOption {\n type: \"enum\";\n possibleValues: Record;\n value: string;\n callback?: (oldValue: string, newValue: string) => void;\n}\n\nexport type ConfigMap = {\n [key: string]: ConfigOption;\n};\n\nexport enum jobsWidgetOptions {\n ALWAYS = \"always\",\n AUTO = \"auto\",\n NEVER = \"never\"\n}\n\nexport enum InstanceEditSidebar {\n AUTO = \"auto\",\n COLLAPSE = \"collapse\",\n EXPAND = \"expand\"\n}\n\n//https://stackoverflow.com/questions/54598322/how-to-make-typescript-infer-the-keys-of-an-object-but-define-type-of-its-value\n//Infer the keys but restrict the values to a type\nconst asElementTypesConfig = (elements: {\n [Property in keyof Type]: ConfigOption;\n}) => elements;\n\nconst configOptions = asElementTypesConfig({\n githubtoken: {\n id: \"config.githubtoken\",\n type: \"pwd\",\n value: \"\"\n },\n apipath: {\n id: \"config.apipath\",\n type: \"str\",\n site_local: true,\n value:\n MODE === \"DEV\"\n ? DEFAULT_APIPATH\n : window.publicPath\n ? new URL(\"..\", new URL(window.publicPath, window.location.href)).href\n : DEFAULT_APIPATH\n },\n jobpollinactive: {\n id: \"config.jobpollinactive\",\n type: \"num\",\n value: 15\n },\n jobpollactive: {\n id: \"config.jobpollactive\",\n type: \"num\",\n value: 5\n },\n jobswidgetdisplay: {\n id: \"config.jobswidgetdisplay\",\n type: \"enum\",\n possibleValues: jobsWidgetOptions,\n value: jobsWidgetOptions.AUTO\n },\n instanceprobetimer: {\n id: \"config.instanceprobetimer\",\n type: \"num\",\n value: 60\n },\n itemsperpage: {\n id: \"config.itemsperpage\",\n type: \"num\",\n value: 25,\n min: 1,\n max: 100\n },\n instanceeditsidebar: {\n id: \"config.instanceeditsidebar\",\n type: \"enum\",\n possibleValues: InstanceEditSidebar,\n value: InstanceEditSidebar.AUTO\n },\n showjson: {\n id: \"config.showjson\",\n type: \"bool\",\n value: MODE === \"DEV\"\n },\n manualpr: {\n id: \"config.manualpr\",\n type: \"bool\",\n value: true\n },\n restjobs2: {\n id: \"config.restjobs2\",\n type: \"bool\",\n value: false\n },\n mergeabilitypolltimer: {\n id: \"config.mergeabilitypolltimer\",\n type: \"num\",\n value: 5000\n }\n});\n\nexport default configOptions;\n"],"names":["_ServerClient","ServerClient","ApiClient","constructor","super","apiHttpClient","apiClient","apiRequestInterceptor","onFulfilled","async","configOptions","apipath","value","errorobj","InternalError","ErrorCode","NO_APIPATH","void","Promise","reject","overrideTokenDetection","url","tok","this","wait4Token","headers","bearer","onRejected","error","apiResponseInterceptor","val","axiosServer","snowflake","code","response","status","globalHandledCodes","includes","err","AXIOS","jsError","res","errorMessage","data","HTTP_BAD_REQUEST","request","config","resolve","autoLogin","login","then","StatusCode","OK","ERROR","emit","logout","HTTP_ACCESS_DENIED","method","HTTP_NOT_ACCEPTABLE","HTTP_DATA_INEGRITY","HTTP_API_MISMATCH","HTTP_SERVER_ERROR","HTTP_UNIMPLEMENTED","console","log","setTimeout","UNHANDLED_GLOBAL_RESPONSE","axiosResponse","initialized","loadingServerInfo","_serverInfo","loggingIn","getServerInfo","bind","LoginHooks","addHook","on","undefined","CredentialsProvider","token","runHooks","callback","window","location","reload","serverInfo","defaultHeaders","Accept","Api","API_VERSION","VERSION","initApi","time","HttpClient","baseURL","withCredentials","AxiosHeaders","validateStatus","instance","interceptors","use","timeEnd","result","localStorage","getItem","expiresAtUnixTimestampStr","defaultToken","parseInt","Date","now","storedToken","setToken","wait4Init","hasToken","newCreds","defaulted","oauthAutoLogin","credentials","type","CredentialsType","OAuth","InternalStatus","LOGIN_NOCREDS","resolver","info","removeListener","Password","userName","toLowerCase","password","api","apiRootControllerCreateToken","auth","username","OAuthProvider","provider","Authorization","stat","payload","LOGIN_FAIL","LOGIN_DISABLED","LOGIN_RATELIMIT","UNHANDLED_RESPONSE","oAuthGateway","creds","apiRootControllerCreateOAuthGatewayToken","removeItem","_token","bypassCache","apiRootControllerServerInfo","cache","validate","previousToken","previousDefaulted","failed","setItem","jwt","jwtDecode","exp","toString","cachedUser","_cachedUser","loadingUserInfo","createAllUsersWithAA","getCurrentUser","editUser","newUser","userControllerUpdate","current","id","USER_NOT_FOUND","user","userControllerRead","thing","listUsers","page","pageSize","itemsperpage","userControllerList","content","sort","a","b","getUser","userControllerGetId","createUser","newuser","enabled","instanceManagerRights","administrationRights","perm","Object","values","InstanceManagerRights","AdministrationRights","userControllerCreate","USER_NO_SYS_IDENT","TypedEmitter","clients","name","ChatBotRights","ChatProvider","ConfigurationRights","ConfigurationType","DMApiValidationMode","DreamDaemonRights","DreamDaemonSecurity","DreamDaemonVisibility","DreamMakerRights","EngineRights","EngineType","InstancePermissionSetRights","RemoteGitProvider","RepositoryRights","RightsType","WatchdogStatus","ContentType","securityWorker","secure","format","axiosConfig","securityData","setSecurityData","path","query","body","params","secureParams","requestParams","mergeRequestParams","responseFormat","FormData","createFormData","Text","JSON","stringify","responseType","axios","create","params1","params2","defaults","stringifyFormItem","formItem","input","keys","reduce","formData","key","property","propertyContent","Array","isFileType","Blob","File","append","http","administrationControllerRead","administrationControllerUpdate","Json","administrationControllerDelete","administrationControllerListLogs","administrationControllerGetLog","chatControllerCreate","chatControllerUpdate","chatControllerDelete","chatControllerGetId","chatControllerList","configurationControllerUpdate","configurationControllerCreateDirectory","configurationControllerDeleteDirectory","configurationControllerFile","filePath","configurationControllerDirectory","directoryPath","configurationControllerList","dreamDaemonControllerCreate","dreamDaemonControllerRead","dreamDaemonControllerDelete","dreamDaemonControllerUpdate","dreamDaemonControllerRestart","dreamDaemonControllerCreateDump","dreamMakerControllerRead","dreamMakerControllerCreate","dreamMakerControllerUpdate","dreamMakerControllerGetId","dreamMakerControllerList","engineControllerRead","engineControllerUpdate","engineControllerDelete","engineControllerList","instanceControllerCreate","instanceControllerUpdate","instanceControllerDelete","instanceControllerGetId","instanceControllerGrantPermissions","instanceControllerList","instancePermissionSetControllerCreate","instancePermissionSetControllerUpdate","instancePermissionSetControllerRead","instancePermissionSetControllerList","instancePermissionSetControllerGetId","instancePermissionSetControllerDelete","jobControllerRead","jobControllerList","jobControllerDelete","jobControllerGetId","repositoryControllerCreate","repositoryControllerDelete","repositoryControllerReclone","repositoryControllerRead","repositoryControllerUpdate","transferControllerDownload","transferControllerUpload","userGroupControllerCreate","userGroupControllerUpdate","userGroupControllerGetId","userGroupControllerDelete","userGroupControllerList","DescType","addon","origin","noError","desc","extendedInfo","originalErrorMessage","TEXT","TGSErrorCode","errorCode","message","additionalData","stack","Error","debuginfo","replace","replaceAll","githubtoken","breakonerror","args","freeze","assign","default","promiseHooks","Set","i","work","hook","push","catch","all","add","removeHook","delete","jobsWidgetOptions","InstanceEditSidebar","site_local","publicPath","URL","href","DEFAULT_APIPATH","jobpollinactive","jobpollactive","jobswidgetdisplay","possibleValues","AUTO","instanceprobetimer","min","max","instanceeditsidebar","showjson","MODE","manualpr","restjobs2","mergeabilitypolltimer"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js b/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js new file mode 100644 index 00000000..28331a4a --- /dev/null +++ b/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1606],{1781:function(e,t,s){s.d(t,{d:function(){return o}});var i=s(6540),n=s(8280),a=s(5677),r=s(3399),l=s(8065);class o extends i.Component{constructor(e){super(e),this.state={animatedOpen:!1,closeTriggered:!1}}componentDidMount(){this.setState({animatedOpen:!0}),this.isCompleted()&&this.close()}componentDidUpdate(){this.isCompleted()&&this.close()}isCompleted(e){e??=this.props;return e.progress.loaded===e.progress.total||0===e.progress.total}close(){this.state.closeTriggered||(this.setState({closeTriggered:!0}),setTimeout((()=>{this.setState({animatedOpen:!1}),setTimeout(this.props.onClose,1e3)}),3e3))}render(){const e=this.props.progress.loaded===this.props.progress.total||0===this.props.progress.total;return i.createElement(n.A,{in:this.state.animatedOpen,dimension:"height"},i.createElement("div",null,i.createElement(a.A,{className:"clearfix",variant:e?"success":"primary",transition:!0},i.createElement(l.A,{id:e?"generic.downloaded":"generic.downloading",values:{file:this.props.filename}}),i.createElement("hr",null),i.createElement(r.A,{min:0,now:Math.max(1,this.props.progress.loaded),max:Math.max(1,this.props.progress.total??1),variant:e?"success":"warning",animated:!e}))))}}},5755:function(e,t,s){s.d(t,{A:function(){return l}});var i=s(6540),n=s(472),a=s(8065),r=s(7602);class l extends i.Component{render(){return i.createElement(n.A,{className:"bg-transparent",border:"info"},i.createElement(n.A.Header,{className:"bg-info text-dark font-weight-bold"},i.createElement(a.A,{id:"generic.wip"})),i.createElement(n.A.Body,null,i.createElement(n.A.Title,null,i.createElement(a.A,{id:"generic.wip.desc"}),i.createElement("a",{href:"https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest"},"https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest")),i.createElement(n.A.Text,{as:"pre",className:"bg-transparent text-info"},i.createElement("code",null,`Version: ${r.xv}\nWebpanel Mode: ${r.g}\nCurrent route: ${window.location.toString()}`))))}}},1606:function(e,t,s){s.r(t);var i=s(6188),n=s(6784),a=s(1941),r=s(6540),l=s(5615),o=s(616),c=s(5038),d=s(3524),h=s(8065),p=s(8798),m=s(6105),f=s(2576),u=s(5301),y=s(1972),w=s(7621),E=s(4118),g=s(1781),A=s(7567),v=s(5659),x=s(1723),R=s(6113),D=s(6795),S=s(7255),b=s(5755);function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const s=window.navigator;if(s&&s.msSaveOrOpenBlob)s.msSaveOrOpenBlob(t,e);else{const s=document.createElement("a");document.body.appendChild(s);const i=URL.createObjectURL(t);s.href=i,s.download=e,s.click(),URL.revokeObjectURL(s.href),s.remove()}};class N{constructor(e,t){this.parent=void 0,this.children=void 0,this.fileResponse=void 0,this.totalFiles=void 0,this.fullyLoaded=!1,this.fileResponse=e,this.parent=t??null,e.isDirectory||(this.fullyLoaded=!0),this.children=[]}}class O extends r.Component{constructor(e){super(e),this.state={errors:[],rootDirectory:null,loading:!0,selectedFile:null,selectedCreateNode:null,downloads:[]},this.createEntity=this.createEntity.bind(this),this.selectFile=this.selectFile.bind(this),this.shortAsyncAction=this.shortAsyncAction.bind(this),this.deleteFile=this.deleteFile.bind(this),this.loadDirectory=this.loadDirectory.bind(this),this.clearDirectory=this.clearDirectory.bind(this)}addError(e){this.setState((t=>{const s=Array.from(t.errors);return s.push(e),{errors:s}}))}componentDidMount(){this.loadRootDir()}async loadRootDir(){if((0,E.Ex)(this.context.instancePermissionSet,f.qd.List)){this.setState({loading:!0});const e=new N({path:"/",isDirectory:!0,fileTicket:""});await this.loadDirectory(e),this.setState({rootDirectory:e,loading:!1})}else this.setState({loading:!1})}async shortAsyncAction(e){const t=e();let s=!1;const i=new Promise((e=>setTimeout(e,750))).then((()=>{s=!0}));await Promise.race([t,i]),s?(this.setState({loading:!0}),await t,this.setState({loading:!1})):this.forceUpdate()}async deleteDirectory(e){const t=await m.A.deleteDirectory(this.context.instance.id,{path:e.fileResponse.path});if(t.code===u.s.OK){if(null!=e.parent){const t=e.parent.children.indexOf(e);e.parent.children.splice(t,1),this.forceUpdate()}}else this.addError(t.error)}async loadDirectory(e){if((0,E.Ex)(this.context.instancePermissionSet,f.qd.List)){this.clearDirectory(e);const t="\\"===e.fileResponse.path[0]||"/"===e.fileResponse.path[0]?e.fileResponse.path.slice(1):e.fileResponse.path;let s=1;for(let i=1;i<=s;++i){const n=await m.A.getDirectory(this.context.instance.id,t,{page:i});if(n.code!==u.s.OK){this.addError(n.error);break}{s=n.payload.totalPages,s<=i&&(e.fullyLoaded=!0);const t=n.payload.content.map((t=>new N(t,e)));for(const s of t)e.children.push(s)}}}}async selectFile(e){if(this.state.selectedFile===e)return void this.setState({selectedFile:null});let t=e.fileResponse.path;for(;t.startsWith("/");)t=t.substring(1);if(!e.fileResponse.isDirectory){const s=await m.A.getConfigFile(this.context.instance.id,t,null);s.code===u.s.OK?e.fileResponse=s.payload:(this.addError(s.error),e.fileResponse.lastReadHash=null)}this.setState({selectedFile:e,selectedCreateNode:null})}async deleteFile(){const e=this.state.selectedFile,t=await m.A.writeConfigFile(this.context.instance.id,{path:e.fileResponse.path,lastReadHash:e.fileResponse.lastReadHash},new Uint8Array);if(t.code===u.s.OK){const t=e.parent,s=t.children.indexOf(e);t.children.splice(s,1),this.setState({selectedFile:null})}else this.addError(t.error)}async downloadDirectory(e){if(!confirm(this.props.intl.formatMessage({id:"view.instance.files.zip.confirm"},{path:e.fileResponse.path})))return;this.setState({loading:!0});const t=async e=>{let t=[],s=1;const i="\\"===e.path[0]||"/"===e.path[0]?e.path.slice(1):e.path;for(let e=1;e<=s;++e){const n=await m.A.getDirectory(this.context.instance.id,i,{page:e});if(n.code!==u.s.OK)return this.addError(n.error),null;s=n.payload.totalPages,t=t.concat(n.payload.content)}return t};let s=!1;const i=async t=>{const i=await m.A.getConfigFile(this.context.instance.id,t.path,null),n=t.path.substring(e.fileResponse.path.length);if(i.code===u.s.OK){return async()=>{const e=await y.A.Download(i.payload.fileTicket,this.allocateDownload(n));if(e.code!=u.s.OK)return this.addError(e.error),null;const t=e.payload;return new File([t],n)}}return this.addError(i.error),s=!0,()=>Promise.resolve(null)};let n=[e.fileResponse];const r=[];for(;n.length>0;){const e=[];for(const s of n){const i=t(s);await i,e.push(i)}if(n=[],s)return void this.setState({loading:!1});for(const t of e){const e=await t;if(null==e)return void this.setState({loading:!1});for(const t of e)if(t.isDirectory)n.push(t);else{const e=await i(t);r.push(e())}}}if(await Promise.all(r),s)return void this.setState({loading:!1});const l=[];for(const e of r)l.push(await e);const o=await(0,a._6)(l).blob(),c=Math.max(e.fileResponse.path.lastIndexOf("\\"),e.fileResponse.path.lastIndexOf("/")),d=e.fileResponse.path.slice(c+1)+".zip";F(d,o),this.setState({loading:!1})}async downloadFile(){this.setState({loading:!0});const e=this.state.selectedFile,t=Math.max(e.fileResponse.path.lastIndexOf("\\"),e.fileResponse.path.lastIndexOf("/")),s=e.fileResponse.path.slice(t+1),i=await m.A.getConfigFile(this.context.instance.id,e.fileResponse.path,this.allocateDownload(s));i.code===u.s.OK?F(s,i.payload.content):this.addError(i.error),this.setState({loading:!1})}async createEntity(e,t){let s;if(e.isDirectory)s=new Uint8Array;else{const e=new Promise((e=>{const t=document.createElement("input");t.type="file",t.onchange=t=>{const s=t.target?.files;e(s?s[0]:null)},t.click()})),t=await e;if(!t)return;s=await t.arrayBuffer()}this.setState({loading:!0});let i=t.fileResponse.path;e.replace?i="/"+i:i+="/"+e.entityName,i.startsWith("//")&&(i=i.substring(1)),e.isDirectory&&(i+="/webpanel.dir.create.tmp");const n=await m.A.writeConfigFile(this.context.instance.id,{path:i,lastReadHash:e.replace?t.fileResponse.lastReadHash:null},s);n.code!==u.s.OK?this.addError(n.error):e.replace&&(t.fileResponse=n.payload),e.replace||(t.fullyLoaded=!1,await this.loadDirectory(t));let a=i.replace("\\","/");a.startsWith("/")&&(a=a.substring(1));const r=t.children.find((e=>a.startsWith(e.fileResponse.path.replace("\\","/"))))??null;r&&(e.isDirectory?(await this.loadDirectory(r),this.setState({selectedCreateNode:null,selectedFile:null})):await this.selectFile(r)),this.setState({loading:!1})}clearDirectory(e){e.fullyLoaded=!1,e.children.forEach((e=>{e===this.state.selectedFile?this.setState({selectedFile:null}):e===this.state.selectedCreateNode&&this.setState({selectedCreateNode:null}),e.fileResponse.isDirectory&&this.clearDirectory(e)})),e.children=[]}allocateDownload(e){const t=new Promise((e=>{this.setState((t=>{const s=[...t.downloads];return e(s.push(null)-1),{downloads:s}}))}));let s=0;return i=>{const n=++s;t.then((t=>{s===n&&this.setState((s=>{const n=[...s.downloads];return n[t]={filename:e,progress:i,onClose:()=>{this.setState((e=>{const s=[...e.downloads];return s[t]=null,{downloads:s}}))}},{downloads:n}}))}))}}render(){const e=r.createElement(r.Fragment,null,this.state.downloads.map(((e,t)=>{if(e)return r.createElement(g.d,C({key:t},e))})));if(this.state.loading)return r.createElement(r.Fragment,null,e,r.createElement(S.default,{text:"loading.instance.files"}));if(this.context.instance.configurationType===f.HB.Disallowed)return r.createElement("div",{className:"text-center"},r.createElement(v.A,{title:"view.instance.files.disallowed"}));const t=(0,E.Ex)(this.context.instancePermissionSet,f.qd.List),s=(0,E.Ex)(this.context.instancePermissionSet,f.qd.Write);return r.createElement("div",null,r.createElement(D.Q,{obj:this.state}),r.createElement("h2",{className:"text-center"},r.createElement(h.A,{id:"view.instance.files.file_browser"})),this.state.errors.map(((e,t)=>{if(e)return r.createElement(A.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const s=Array.from(e.errors);return s[t]=void 0,{errors:s}}))})})),e,r.createElement("div",{className:"d-flex flex-row"},t?r.createElement("div",{className:"text-left",style:{paddingRight:"16px",maxHeight:"800px",minWidth:"200px",overflowY:"scroll"}},this.renderDirectory(this.state.rootDirectory)):r.createElement("div",{style:{maxWidth:"200px"}},r.createElement(v.A,{title:"view.instance.files.disallowed.directory"})),r.createElement("div",{className:"flex-fill flex-column text-center align-self-center",style:{padding:"16px"}},s?r.createElement(r.Fragment,null):r.createElement(v.A,{title:"view.instance.files.disallowed.write"}),this.state.selectedCreateNode?this.renderCreate():this.state.selectedFile?this.renderSelectedFile():t?r.createElement("h4",null,r.createElement(h.A,{id:"view.instance.files.select_item"})):this.renderBrowserlessForms())))}renderDirectory(e){const t=Math.max(e.fileResponse.path.lastIndexOf("\\"),e.fileResponse.path.lastIndexOf("/")),s=e===this.state.selectedFile;if(!e.fileResponse.isDirectory){const a=e.fileResponse.path.slice(t+1);return r.createElement("li",{className:"browser-li"},r.createElement(l.A,{variant:s?"secondary":"primary",onClick:()=>{this.shortAsyncAction((()=>this.selectFile(e)))},className:"nowrap"},r.createElement(n.g,{icon:i.h8M}),"\xa0",a))}const a=e==this.state.rootDirectory?"Configuration":e.fileResponse.path.slice(t+1);return r.createElement("div",{className:"mb-2"},r.createElement(o.A,null,r.createElement(l.A,{variant:e.fullyLoaded?"primary":"secondary",onClick:()=>{e.fullyLoaded?(this.clearDirectory(e),this.forceUpdate()):this.shortAsyncAction((()=>this.loadDirectory(e)))}},r.createElement(n.g,{icon:e.fullyLoaded?i.WkZ:i.E5r})),r.createElement(l.A,{className:"nowrap",variant:s?"secondary":"primary",onClick:()=>{this.shortAsyncAction((()=>this.selectFile(e)))}},a)),r.createElement("ul",{className:"browser-ul"},e.children.map((e=>r.createElement("li",{key:e.fileResponse.path},this.renderDirectory(e))))))}renderCreate(){const e={entityName:{type:x.PU.String,name:"fields.instance.files.create.name",tooltip:"fields.instance.files.create.name.tip",defaultValue:""},isDirectory:{type:x.PU.Boolean,name:"fields.instance.files.create.directory",defaultValue:!1}},t=this.state.selectedCreateNode;return r.createElement(r.Fragment,null,r.createElement("h5",null,t.fileResponse.path,t.parent?"/":""),r.createElement("h5",null,r.createElement(h.A,{id:"view.instance.files.create"})),r.createElement("hr",null),r.createElement(R.A,{fields:e,onSave:e=>{this.createEntity(e,t)},saveMessageId:"fields.instance.files.create"}))}renderSelectedFile(){const e=(0,E.Ex)(this.context.instancePermissionSet,f.qd.Read),t=(0,E.Ex)(this.context.instancePermissionSet,f.qd.Write),s=this.state.selectedFile,a=Math.max(s.fileResponse.path.lastIndexOf("\\"),s.fileResponse.path.lastIndexOf("/")),o=s.fileResponse.path.slice(a+1),p=!s.fileResponse.isDirectory&&!s.fileResponse.lastReadHash,m=s==this.state.rootDirectory?"Configuration":s.fileResponse.path.slice(a+1),u=this.state.selectedCreateNode===s,y=(0,E.Ex)(this.context.instancePermissionSet,f.qd.Delete);let w=s.fileResponse.path.replaceAll("\\","/");return w.startsWith("/")||(w="/"+w),r.createElement(r.Fragment,null,r.createElement("h5",null,w),r.createElement("hr",null),r.createElement("div",{className:"mb-3"},s.fileResponse.isDirectory?r.createElement(r.Fragment,null,r.createElement(l.A,{variant:"primary",className:"mx-2 nowrap",onClick:()=>{this.downloadDirectory(s)}},r.createElement(n.g,{icon:i.cbP}),"\xa0",r.createElement(h.A,{id:"view.instance.files.download.directory"})),r.createElement(l.A,{variant:u?"secondary":"primary",className:"mx-2 nowrap",onClick:()=>{this.state.selectedCreateNode!=s&&this.setState({selectedCreateNode:s})}},r.createElement(n.g,{icon:i.A4h}),"\xa0",r.createElement(h.A,{id:"view.instance.files.create"})),r.createElement(c.A,{placement:"top",show:(!y||!s.fullyLoaded||0!==s.children.length)&&void 0,overlay:e=>r.createElement(d.A,C({id:"cant-delete-dir-tooltip"},e),r.createElement(h.A,{id:s.fullyLoaded?y?"view.instance.files.delete.directory.populated":"view.instance.files.disallowed.directory.delete":"view.instance.files.delete.directory.populated.unloaded"}))},r.createElement(l.A,{variant:"danger",className:"mx-2 nowrap",disabled:!s.fullyLoaded||!y||s.children.length>0||s==this.state.rootDirectory,onClick:()=>{confirm(this.props.intl.formatMessage({id:"view.instance.files.delete.directory.confirm"},{directoryName:m}))&&this.shortAsyncAction((()=>this.deleteDirectory(s)))}},r.createElement(n.g,{icon:i.GRI}),"\xa0",r.createElement(h.A,{id:"view.instance.files.delete.directory"})))):r.createElement(r.Fragment,null,r.createElement(c.A,{placement:"top",overlay:e=>r.createElement(d.A,C({id:"file-download-location-tooltip"},e),r.createElement(h.A,{id:"view.instance.files.download.location"}))},r.createElement(l.A,{className:"mx-2",disabled:!e,onClick:()=>{this.downloadFile()}},r.createElement(h.A,{id:"view.instance.files.download"}))),r.createElement(c.A,{placement:"top",show:!(!t||!p)&&void 0,overlay:e=>r.createElement(d.A,C({id:"file-not-refreshed-tooltip"},e),r.createElement(h.A,{id:"view.instance.files.replace.stale"}))},r.createElement(l.A,{variant:"warning",className:"mx-2",disabled:!t||p,onClick:()=>{this.createEntity({entityName:o,isDirectory:!1,replace:!0},s)}},r.createElement(h.A,{id:"view.instance.files.replace"}))),r.createElement(c.A,{placement:"top",show:!(!t||!p)&&void 0,overlay:e=>r.createElement(d.A,C({id:"file-not-refreshed-tooltip-delete"},e),r.createElement(h.A,{id:"view.instance.files.replace.stale"}))},r.createElement(l.A,{variant:"danger",className:"mx-2",disabled:!t||p,onClick:()=>{confirm(this.props.intl.formatMessage({id:"view.instance.files.delete.confirm"},{path:s.fileResponse.path}))&&this.shortAsyncAction((()=>this.deleteFile()))}},r.createElement(h.A,{id:"view.instance.files.delete"}))))))}renderBrowserlessForms(){return r.createElement(b.A,null)}}O.contextType=w.z,t.default=(0,p.Ay)(O)}}]); +//# sourceMappingURL=1606.01639402c96c79e47cf6.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js.map b/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js.map new file mode 100644 index 00000000..71e57543 --- /dev/null +++ b/webpanel/6.6.0/1606.01639402c96c79e47cf6.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1606.01639402c96c79e47cf6.bundle.js","mappings":"4OAiBO,MAAMA,UAAqBC,EAAAA,UACvBC,WAAAA,CAAYC,GACfC,MAAMD,GACNE,KAAKC,MAAQ,CACTC,cAAc,EACdC,gBAAgB,EAExB,CAEOC,iBAAAA,GACHJ,KAAKK,SAAS,CACVH,cAAc,IAGdF,KAAKM,eACLN,KAAKO,OAEb,CAEOC,kBAAAA,GACCR,KAAKM,eACLN,KAAKO,OAEb,CAEQD,WAAAA,CAAYR,GAChBA,IAAUE,KAAKF,MAGf,OADIA,EAAMW,SAASC,SAAWZ,EAAMW,SAASE,OAAkC,IAAzBb,EAAMW,SAASE,KAEzE,CAEQJ,KAAAA,GACAP,KAAKC,MAAME,iBAGfH,KAAKK,SAAS,CACVF,gBAAgB,IAGpBS,YAAW,KACPZ,KAAKK,SAAS,CACVH,cAAc,IAElBU,WAAWZ,KAAKF,MAAMe,QAAS,IAAK,GACrC,KACP,CAEOC,MAAAA,GACH,MAAMC,EACFf,KAAKF,MAAMW,SAASC,SAAWV,KAAKF,MAAMW,SAASE,OACrB,IAA9BX,KAAKF,MAAMW,SAASE,MACxB,OACIf,EAAAA,cAACoB,EAAAA,EAAQ,CAACC,GAAIjB,KAAKC,MAAMC,aAAcgB,UAAU,UAC7CtB,EAAAA,cAAA,WACIA,EAAAA,cAACuB,EAAAA,EAAK,CACFC,UAAU,WACVC,QAASN,EAAY,UAAY,UACjCO,YAAU,GACV1B,EAAAA,cAAC2B,EAAAA,EAAgB,CACbC,GAAIT,EAAY,qBAAuB,sBACvCU,OAAQ,CAAEC,KAAM1B,KAAKF,MAAM6B,YAE/B/B,EAAAA,cAAA,WACAA,EAAAA,cAACgC,EAAAA,EAAW,CACRC,IAAK,EACLC,IAAKC,KAAKC,IAAI,EAAGhC,KAAKF,MAAMW,SAASC,QACrCsB,IAAKD,KAAKC,IAAI,EAAGhC,KAAKF,MAAMW,SAASE,OAAS,GAC9CU,QAASN,EAAY,UAAY,UACjCkB,UAAWlB,MAMnC,E,kGCtFW,MAAMmB,UAAkBtC,EAAAA,UAC5BkB,MAAAA,GACH,OACIlB,EAAAA,cAACuC,EAAAA,EAAI,CAACf,UAAU,iBAAiBgB,OAAO,QACpCxC,EAAAA,cAACuC,EAAAA,EAAKE,OAAM,CAACjB,UAAU,sCACnBxB,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,iBAEzB5B,EAAAA,cAACuC,EAAAA,EAAKG,KAAI,KACN1C,EAAAA,cAACuC,EAAAA,EAAKI,MAAK,KACP3C,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,qBACrB5B,EAAAA,cAAA,KAAG4C,KAAK,8EAA6E,+EAIzF5C,EAAAA,cAACuC,EAAAA,EAAKM,KAAI,CAACC,GAAI,MAAOtB,UAAU,4BAC5BxB,EAAAA,cAAA,YACK,YAAY+C,EAAAA,sBAA2BC,EAAAA,qBAAwBC,OAAOC,SAASC,gBAMxG,E,yeCOJ,MAAMC,EAAwBA,CAACC,EAAkBC,KAE7C,MAAMC,EAAaN,OAAOO,UAE1B,GAAID,GAAcA,EAAWE,iBAGzBF,EAAWE,iBAAiBH,EAAUD,OACnC,CAEH,MAAMK,EAAIC,SAASC,cAAc,KACjCD,SAASE,KAAKC,YAAYJ,GAC1B,MAAMK,EAAUC,IAAIC,gBAAgBX,GACpCI,EAAEd,KAAOmB,EACTL,EAAEQ,SAAWb,EACbK,EAAES,QACFH,IAAII,gBAAgBV,EAAEd,MACtBc,EAAEW,QACN,GASJ,MAAMC,EAOKrE,WAAAA,CAAYsE,EAAyCC,GAAwB,KAN7EA,YAAM,OACNC,cAAQ,OACRF,kBAAY,OACZG,gBAAU,OACVC,aAAc,EAGjBvE,KAAKmE,aAAeA,EACpBnE,KAAKoE,OAASA,GAAU,KACnBD,EAAaK,cAAaxE,KAAKuE,aAAc,GAClDvE,KAAKqE,SAAW,EACpB,EAcJ,MAAMI,UAAc7E,EAAAA,UAGTC,WAAAA,CAAYC,GACfC,MAAMD,GAENE,KAAKC,MAAQ,CACTyE,OAAQ,GACRC,cAAe,KACfC,SAAS,EACTC,aAAc,KACdC,mBAAoB,KACpBC,UAAW,IAGf/E,KAAKgF,aAAehF,KAAKgF,aAAaC,KAAKjF,MAC3CA,KAAKkF,WAAalF,KAAKkF,WAAWD,KAAKjF,MACvCA,KAAKmF,iBAAmBnF,KAAKmF,iBAAiBF,KAAKjF,MACnDA,KAAKoF,WAAapF,KAAKoF,WAAWH,KAAKjF,MACvCA,KAAKqF,cAAgBrF,KAAKqF,cAAcJ,KAAKjF,MAC7CA,KAAKsF,eAAiBtF,KAAKsF,eAAeL,KAAKjF,KACnD,CAEQuF,QAAAA,CAASC,GACbxF,KAAKK,UAASoF,IACV,MAAMf,EAASgB,MAAMC,KAAKF,EAAUf,QAEpC,OADAA,EAAOkB,KAAKJ,GACL,CACHd,SACH,GAET,CAEOtE,iBAAAA,GACEJ,KAAK6F,aACd,CAEA,iBAAcA,GACV,IAAIC,EAAAA,EAAAA,IAAc9F,KAAK+F,QAAQC,sBAAuBC,EAAAA,GAAoBC,MAAO,CAC7ElG,KAAKK,SAAS,CACVuE,SAAS,IAEb,MAKMD,EAAgB,IAAIT,EALL,CACjBiC,KAAM,IACN3B,aAAa,EACb4B,WAAY,WAGVpG,KAAKqF,cAAcV,GAEzB3E,KAAKK,SAAS,CACVsE,cAAeA,EACfC,SAAS,GAEjB,MACI5E,KAAKK,SAAS,CACVuE,SAAS,GAGrB,CAEA,sBAAcO,CAAiBkB,GAC3B,MAAMC,EAAgBD,IAGtB,IAAIE,GAAc,EAClB,MAAMC,EAAiB,IAAIC,SAAQC,GAAK9F,WAAW8F,EAAG,OAAMC,MAAK,KAC7DJ,GAAc,CAAI,UAGhBE,QAAQG,KAAK,CAACN,EAAeE,IAE/BD,GACAvG,KAAKK,SAAS,CACVuE,SAAS,UAGP0B,EAENtG,KAAKK,SAAS,CACVuE,SAAS,KAEV5E,KAAK6G,aAChB,CAEA,qBAAcC,CAAgBC,GAC1B,MAAMC,QAAiBC,EAAAA,EAAwBH,gBAAgB9G,KAAK+F,QAAQmB,SAAS1F,GAAI,CACrF2E,KAAMY,EAAI5C,aAAagC,OAG3B,GAAIa,EAASG,OAASC,EAAAA,EAAWC,IAC7B,GAAkB,MAAdN,EAAI3C,OAAgB,CACpB,MAAMkD,EAAcP,EAAI3C,OAAOC,SAASkD,QAAQR,GAChDA,EAAI3C,OAAOC,SAASmD,OAAOF,EAAa,GACxCtH,KAAK6G,aACT,OAEA7G,KAAKuF,SAASyB,EAASxB,MAE/B,CAEA,mBAAcH,CAAcoC,GACxB,IAAI3B,EAAAA,EAAAA,IAAc9F,KAAK+F,QAAQC,sBAAuBC,EAAAA,GAAoBC,MAAO,CAC7ElG,KAAKsF,eAAemC,GAEpB,MAAMtB,EACiC,OAAnCsB,EAAUtD,aAAagC,KAAK,IAAkD,MAAnCsB,EAAUtD,aAAagC,KAAK,GACjEsB,EAAUtD,aAAagC,KAAKuB,MAAM,GAClCD,EAAUtD,aAAagC,KACjC,IAAIwB,EAAW,EACf,IAAK,IAAIC,EAAO,EAAGA,GAAQD,IAAYC,EAAM,CACzC,MAAMZ,QAAiBC,EAAAA,EAAwBY,aAC3C7H,KAAK+F,QAAQmB,SAAS1F,GACtB2E,EACA,CACIyB,SAGR,GAAIZ,EAASG,OAASC,EAAAA,EAAWC,GAS1B,CACHrH,KAAKuF,SAASyB,EAASxB,OACvB,KACJ,CAZqC,CACjCmC,EAAWX,EAASc,QAAQC,WACxBJ,GAAYC,IAAMH,EAAUlD,aAAc,GAC9C,MAAMyD,EAAchB,EAASc,QAAQG,QAAQC,KACzCC,GAAK,IAAIjE,EAAciE,EAAGV,KAE9B,IAAK,MAAMU,KAAKH,EACZP,EAAUpD,SAASuB,KAAKuC,EAEhC,CAIJ,CACJ,CACJ,CAEA,gBAAcjD,CAAWxD,GACrB,GAAI1B,KAAKC,MAAM4E,eAAiBnD,EAI5B,YAHA1B,KAAKK,SAAS,CACVwE,aAAc,OAKtB,IAAIuD,EAAe1G,EAAKyC,aAAagC,KACrC,KAAOiC,EAAaC,WAAW,MAAMD,EAAeA,EAAaE,UAAU,GAE3E,IAAK5G,EAAKyC,aAAaK,YAAa,CAChC,MAAMwC,QAAiBC,EAAAA,EAAwBsB,cAC3CvI,KAAK+F,QAAQmB,SAAS1F,GACtB4G,EACA,MAGYpB,EAASG,OAASC,EAAAA,EAAWC,GAEzC3F,EAAKyC,aAAe6C,EAASc,SAE7B9H,KAAKuF,SAASyB,EAASxB,OACvB9D,EAAKyC,aAAaqE,aAAe,KAEzC,CAEAxI,KAAKK,SAAS,CACVwE,aAAcnD,EACdoD,mBAAoB,MAE5B,CAEA,gBAAcM,GACV,MAAMP,EAAe7E,KAAKC,MAAM4E,aAC1BmC,QAAiBC,EAAAA,EAAwBwB,gBAC3CzI,KAAK+F,QAAQmB,SAAS1F,GACtB,CACI2E,KAAMtB,EAAaV,aAAagC,KAChCqC,aAAc3D,EAAaV,aAAaqE,cAE5C,IAAIE,YAGR,GAAI1B,EAASG,OAASC,EAAAA,EAAWC,GAAI,CACjC,MAAMsB,EAAkB9D,EAAaT,OAC/BkD,EAAcqB,EAAgBtE,SAASkD,QAAQ1C,GACrD8D,EAAgBtE,SAASmD,OAAOF,EAAa,GAC7CtH,KAAKK,SAAS,CACVwE,aAAc,MAEtB,MAAO7E,KAAKuF,SAASyB,EAASxB,MAClC,CAEA,uBAAcoD,CAAkBnB,GAC5B,IACKoB,QACG7I,KAAKF,MAAMgJ,KAAKC,cACZ,CAAEvH,GAAI,mCACN,CAAE2E,KAAMsB,EAAUtD,aAAagC,QAIvC,OAEJnG,KAAKK,SAAS,CACVuE,SAAS,IAGb,MAAMoE,EAAqBC,UAGvB,IAAI5E,EAAwC,GACxCsD,EAAW,EAEf,MAAMxB,EAAuB,OAAhBY,EAAIZ,KAAK,IAA+B,MAAhBY,EAAIZ,KAAK,GAAaY,EAAIZ,KAAKuB,MAAM,GAAKX,EAAIZ,KACnF,IAAK,IAAIyB,EAAO,EAAGA,GAAQD,IAAYC,EAAM,CACzC,MAAMsB,QAA0BjC,EAAAA,EAAwBY,aACpD7H,KAAK+F,QAAQmB,SAAS1F,GACtB2E,EACA,CACIyB,SAGR,GAAIsB,EAAkB/B,OAASC,EAAAA,EAAWC,GAKtC,OADArH,KAAKuF,SAAS2D,EAAkB1D,OACzB,KAJPmC,EAAWuB,EAAkBpB,QAAQC,WACrC1D,EAAWA,EAAS8E,OAAOD,EAAkBpB,QAAQG,QAK7D,CAEA,OAAO5D,CAAQ,EAGnB,IAAI+E,GAAmB,EACvB,MAAMC,EAAqBJ,UAGvB,MAAM9E,QAAqB8C,EAAAA,EAAwBsB,cAC/CvI,KAAK+F,QAAQmB,SAAS1F,GACtBE,EAAKyE,KACL,MAGEmD,EAAY5H,EAAKyE,KAAKmC,UAAUb,EAAUtD,aAAagC,KAAKoD,QAClE,GAAIpF,EAAagD,OAASC,EAAAA,EAAWC,GAAI,CAiBrC,OAhBe4B,UACX,MAAMO,QAAiBC,EAAAA,EAAeC,SAClCvF,EAAa2D,QAAQ1B,WACrBpG,KAAK2J,iBAAiBL,IAG1B,GAAIE,EAASrC,MAAQC,EAAAA,EAAWC,GAE5B,OADArH,KAAKuF,SAASiE,EAAShE,OAChB,KAGX,MAAM1B,EAAW0F,EAAS1B,QAE1B,OADa,IAAI8B,KAAK,CAAC9F,GAAWwF,EACvB,CAInB,CAIA,OAFAtJ,KAAKuF,SAASpB,EAAaqB,OAC3B4D,GAAmB,EACZ,IAAM3C,QAAQoD,QAAQ,KAAK,EAGtC,IAAIC,EAAsD,CAACrC,EAAUtD,cAErE,MAAM4F,EAAwC,GAE9C,KAAOD,EAAuBP,OAAS,GAAG,CACtC,MAAMS,EAAuD,GAC7D,IAAK,MAAMvC,KAAaqC,EAAwB,CAC5C,MAAMG,EAAOjB,EAAmBvB,SAC1BwC,EACND,EAAMpE,KAAKqE,EACf,CAIA,GAFAH,EAAyB,GAErBV,EAIA,YAHApJ,KAAKK,SAAS,CACVuE,SAAS,IAKjB,IAAK,MAAMqF,KAAQD,EAAO,CACtB,MAAME,QAAgBD,EACtB,GAAe,MAAXC,EAIA,YAHAlK,KAAKK,SAAS,CACVuE,SAAS,IAKjB,IAAK,MAAMuF,KAAkBD,EACzB,GAAIC,EAAe3F,YACfsF,EAAuBlE,KAAKuE,OACzB,CACH,MAAMC,QAAyBf,EAAmBc,GAClDJ,EAAcnE,KAAKwE,IACvB,CAER,CACJ,CAGA,SADM3D,QAAQ4D,IAAIN,GACdX,EAIA,YAHApJ,KAAKK,SAAS,CACVuE,SAAS,IAKjB,MAAM0F,EAAwB,GAC9B,IAAK,MAAMC,KAAgBR,EACvBO,EAAc1E,WAAY2E,GAG9B,MAAMC,QAAgBC,EAAAA,EAAAA,IAAYH,GAAeI,OAE3CC,EAAQ5I,KAAKC,IACfyF,EAAUtD,aAAagC,KAAKyE,YAAY,MACxCnD,EAAUtD,aAAagC,KAAKyE,YAAY,MAGtC3H,EAAWwE,EAAUtD,aAAagC,KAAKuB,MAAMiD,EAAQ,GAAK,OAChE3H,EAAsBC,EAAUuH,GAEhCxK,KAAKK,SAAS,CACVuE,SAAS,GAEjB,CAEA,kBAAciG,GACV7K,KAAKK,SAAS,CACVuE,SAAS,IAGb,MAAMC,EAAe7E,KAAKC,MAAM4E,aAC1B8F,EAAQ5I,KAAKC,IACf6C,EAAaV,aAAagC,KAAKyE,YAAY,MAC3C/F,EAAaV,aAAagC,KAAKyE,YAAY,MAEzC3H,EAAW4B,EAAaV,aAAagC,KAAKuB,MAAMiD,EAAQ,GACxD3D,QAAiBC,EAAAA,EAAwBsB,cAC3CvI,KAAK+F,QAAQmB,SAAS1F,GACtBqD,EAAaV,aAAagC,KAC1BnG,KAAK2J,iBAAiB1G,IAGtB+D,EAASG,OAASC,EAAAA,EAAWC,GAC7BrE,EAAsBC,EAAU+D,EAASc,QAAQG,SAC9CjI,KAAKuF,SAASyB,EAASxB,OAE9BxF,KAAKK,SAAS,CACVuE,SAAS,GAEjB,CAEA,kBAAcI,CACV8F,EACA1G,GAEA,IAAIlB,EACJ,GAAI4H,EAAStG,YACTtB,EAAW,IAAIwF,eACZ,CACH,MAAMqC,EAAe,IAAItE,SAAqBoD,IAC1C,MAAMmB,EAAQzH,SAASC,cAAc,SACrCwH,EAAMC,KAAO,OACbD,EAAME,SAAWC,IACb,MAAMC,EAASD,EAAEE,QAA6BD,MACnCvB,EAAPuB,EAAeA,EAAM,GACZ,KAAK,EAEtBJ,EAAMjH,OAAO,IAGXuH,QAAkBP,EACxB,IAAKO,EAAW,OAGhBpI,QAAiBoI,EAAUC,aAC/B,CAEAvL,KAAKK,SAAS,CAAEuE,SAAS,IAEzB,IAAI4G,EAAiBpH,EAAOD,aAAagC,KACpC2E,EAASW,QACTD,EAAiB,IAAMA,EADLA,GAAkB,IAAMV,EAASY,WAEpDF,EAAenD,WAAW,QAAOmD,EAAiBA,EAAelD,UAAU,IAC3EwC,EAAStG,cAAagH,GAAkB,4BAE5C,MAAMxE,QAAiBC,EAAAA,EAAwBwB,gBAC3CzI,KAAK+F,QAAQmB,SAAS1F,GACtB,CACI2E,KAAMqF,EACNhD,aAAcsC,EAASW,QAAUrH,EAAOD,aAAaqE,aAAe,MAExEtF,GAGA8D,EAASG,OAASC,EAAAA,EAAWC,GAC7BrH,KAAKuF,SAASyB,EAASxB,OAChBsF,EAASW,UAChBrH,EAAOD,aAAe6C,EAASc,SAG9BgD,EAASW,UACVrH,EAAOG,aAAc,QACfvE,KAAKqF,cAAcjB,IAG7B,IAAIuH,EAAuBH,EAAeC,QAAQ,KAAM,KACpDE,EAAqBtD,WAAW,OAChCsD,EAAuBA,EAAqBrD,UAAU,IAC1D,MAAMsD,EACFxH,EAAOC,SAASwH,MAAKC,GACjBH,EAAqBtD,WAAWyD,EAAM3H,aAAagC,KAAKsF,QAAQ,KAAM,SACrE,KAELG,IACId,EAAStG,mBACHxE,KAAKqF,cAAcuG,GACzB5L,KAAKK,SAAS,CACVyE,mBAAoB,KACpBD,aAAc,cAET7E,KAAKkF,WAAW0G,IAEjC5L,KAAKK,SAAS,CACVuE,SAAS,GAEjB,CAEQU,cAAAA,CAAemC,GAEnBA,EAAUlD,aAAc,EACxBkD,EAAUpD,SAAS0H,SAAQD,IACnBA,IAAU9L,KAAKC,MAAM4E,aACrB7E,KAAKK,SAAS,CACVwE,aAAc,OAEbiH,IAAU9L,KAAKC,MAAM6E,oBAC1B9E,KAAKK,SAAS,CACVyE,mBAAoB,OAExBgH,EAAM3H,aAAaK,aAAaxE,KAAKsF,eAAewG,EAAM,IAGlErE,EAAUpD,SAAW,EACzB,CAEQsF,gBAAAA,CAAiBhI,GACrB,MAAMqK,EAAe,IAAIvF,SAAgBoD,IACrC7J,KAAKK,UAASoF,IACV,MAAMwG,EAAe,IAAIxG,EAAUV,WAEnC,OADA8E,EAAQoC,EAAarG,KAAK,MAAQ,GAC3B,CACHb,UAAWkH,EACd,GACH,IAEN,IAAIC,EAAS,EACb,OAAQzL,IACJ,MAAM0L,IAAWD,EACZF,EAAarF,MAAKgE,IACfuB,IAAWC,GAIfnM,KAAKK,UAASoF,IACV,MAAMwG,EAAe,IAAIxG,EAAUV,WAcnC,OAbAkH,EAAatB,GAAS,CAClBhJ,WACAlB,WACAI,QAASA,KACLb,KAAKK,UAASoF,IACV,MAAMwG,EAAe,IAAIxG,EAAUV,WAEnC,OADAkH,EAAatB,GAAS,KACf,CACH5F,UAAWkH,EACd,GACH,GAGH,CACHlH,UAAWkH,EACd,GACH,GACJ,CAEV,CAEOnL,MAAAA,GACH,MAAMsL,EACFxM,EAAAA,cAACA,EAAAA,SAAc,KACVI,KAAKC,MAAM8E,UAAUmD,KAAI,CAACpE,EAAU6G,KACjC,GAAK7G,EACL,OAAOlE,EAAAA,cAACD,EAAAA,EAAY0M,EAAA,CAACC,IAAK3B,GAAW7G,GAAY,KAK7D,GAAI9D,KAAKC,MAAM2E,QACX,OACIhF,EAAAA,cAACA,EAAAA,SAAc,KACVwM,EACDxM,EAAAA,cAAC2M,EAAAA,QAAO,CAACC,KAAK,4BAO1B,GAF2BxM,KAAK+F,QAAQmB,SAASuF,oBAEtBC,EAAAA,GAAkBC,WACzC,OACI/M,EAAAA,cAAA,OAAKwB,UAAU,eACXxB,EAAAA,cAACgN,EAAAA,EAAY,CAACC,MAAM,oCAKhC,MAAMC,GAAqBhH,EAAAA,EAAAA,IACvB9F,KAAK+F,QAAQC,sBACbC,EAAAA,GAAoBC,MAGlB6G,GAAWjH,EAAAA,EAAAA,IACb9F,KAAK+F,QAAQC,sBACbC,EAAAA,GAAoB+G,OAGxB,OACIpN,EAAAA,cAAA,WACIA,EAAAA,cAACqN,EAAAA,EAAe,CAACC,IAAKlN,KAAKC,QAC3BL,EAAAA,cAAA,MAAIwB,UAAU,eACVxB,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,sCAExBxB,KAAKC,MAAMyE,OAAOwD,KAAI,CAACiF,EAAKxC,KACzB,GAAKwC,EACL,OACIvN,EAAAA,cAACwN,EAAAA,GAAU,CACPd,IAAK3B,EACLnF,MAAO2H,EACPtM,QAASA,IACLb,KAAKK,UAASgN,IACV,MAAMC,EAAS5H,MAAMC,KAAK0H,EAAK3I,QAE/B,OADA4I,EAAO3C,QAAS4C,EACT,CACH7I,OAAQ4I,EACX,KAGX,IAGTlB,EACDxM,EAAAA,cAAA,OAAKwB,UAAU,mBACV0L,EACGlN,EAAAA,cAAA,OACIwB,UAAU,YACVoM,MAAO,CACHC,aAAc,OACdC,UAAW,QACXC,SAAU,QACVC,UAAW,WAEd5N,KAAK6N,gBAAgB7N,KAAKC,MAAM0E,gBAGrC/E,EAAAA,cAAA,OACI4N,MAAO,CACHM,SAAU,UAEdlO,EAAAA,cAACgN,EAAAA,EAAY,CAACC,MAAM,8CAG5BjN,EAAAA,cAAA,OACIwB,UAAU,sDACVoM,MAAO,CAAEO,QAAS,SAChBhB,EAGEnN,EAAAA,cAACA,EAAAA,SAAc,MAFfA,EAAAA,cAACgN,EAAAA,EAAY,CAACC,MAAM,yCAIvB7M,KAAKC,MAAM6E,mBACR9E,KAAKgO,eACLhO,KAAKC,MAAM4E,aACX7E,KAAKiO,qBACLnB,EACAlN,EAAAA,cAAA,UACIA,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,qCAGzBxB,KAAKkO,2BAM7B,CAEQL,eAAAA,CAAgB9G,GACpB,MAAM4D,EAAQ5I,KAAKC,IACf+E,EAAI5C,aAAagC,KAAKyE,YAAY,MAClC7D,EAAI5C,aAAagC,KAAKyE,YAAY,MAEhCuD,EAAWpH,IAAQ/G,KAAKC,MAAM4E,aACpC,IAAKkC,EAAI5C,aAAaK,YAAa,CAC/B,MAAMvB,EAAW8D,EAAI5C,aAAagC,KAAKuB,MAAMiD,EAAQ,GACrD,OACI/K,EAAAA,cAAA,MAAIwB,UAAU,cACVxB,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAS8M,EAAW,YAAc,UAClCE,QAASA,KAAWrO,KAAKmF,kBAAiB,IAAMnF,KAAKkF,WAAW6B,IAAM,EACtE3F,UAAU,UACVxB,EAAAA,cAAC0O,EAAAA,EAAe,CAACC,KAAMC,EAAAA,MAAa,OAC7BvL,GAIvB,CAEA,MAAMwL,EACF1H,GAAO/G,KAAKC,MAAM0E,cACZ,gBACAoC,EAAI5C,aAAagC,KAAKuB,MAAMiD,EAAQ,GAE9C,OACI/K,EAAAA,cAAA,OAAKwB,UAAU,QACXxB,EAAAA,cAAC8O,EAAAA,EAAW,KACR9O,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAU0F,EAAIxC,YAA4B,UAAd,YAC5B8J,QAASA,KACDtH,EAAIxC,aACJvE,KAAKsF,eAAeyB,GACpB/G,KAAK6G,eAEA7G,KAAKmF,kBAAiB,IAAMnF,KAAKqF,cAAc0B,IACxD,GAEJnH,EAAAA,cAAC0O,EAAAA,EAAe,CAACC,KAAMxH,EAAIxC,YAAcoK,EAAAA,IAAgBC,EAAAA,OAE7DhP,EAAAA,cAACwO,EAAAA,EAAM,CACHhN,UAAU,SACVC,QAAS8M,EAAW,YAAc,UAClCE,QAASA,KAAWrO,KAAKmF,kBAAiB,IAAMnF,KAAKkF,WAAW6B,IAAM,GACrE0H,IAGT7O,EAAAA,cAAA,MAAIwB,UAAU,cACT2F,EAAI1C,SAAS6D,KAAI2G,GACdjP,EAAAA,cAAA,MAAI0M,IAAKuC,EAAO1K,aAAagC,MAAOnG,KAAK6N,gBAAgBgB,OAK7E,CAEQb,YAAAA,GACJ,MAAMc,EAAS,CACXpD,WAAY,CACRT,KAAM8D,EAAAA,GAAUC,OAChBC,KAAM,oCACNC,QAAS,wCACTC,aAAc,IAElB3K,YAAa,CACTyG,KAAM8D,EAAAA,GAAUK,QAChBH,KAAM,yCACNE,cAAc,IAIhBE,EAAarP,KAAKC,MAAM6E,mBAE9B,OACIlF,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAAA,UACKyP,EAAWlL,aAAagC,KACxBkJ,EAAWjL,OAAS,IAAM,IAE/BxE,EAAAA,cAAA,UACIA,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,gCAEzB5B,EAAAA,cAAA,WACAA,EAAAA,cAAC0P,EAAAA,EAAS,CACNR,OAAQA,EACRS,OAAST,IACA9O,KAAKgF,aAAa8J,EAAQO,EAClC,EACDG,cAAc,iCAI9B,CAEQvB,kBAAAA,GACJ,MAAMwB,GAAU3J,EAAAA,EAAAA,IAAc9F,KAAK+F,QAAQC,sBAAuBC,EAAAA,GAAoByJ,MAChF3C,GAAWjH,EAAAA,EAAAA,IACb9F,KAAK+F,QAAQC,sBACbC,EAAAA,GAAoB+G,OAGlB2C,EAAoB3P,KAAKC,MAAM4E,aAC/B8F,EAAQ5I,KAAKC,IACf2N,EAAkBxL,aAAagC,KAAKyE,YAAY,MAChD+E,EAAkBxL,aAAagC,KAAKyE,YAAY,MAE9C3H,EAAW0M,EAAkBxL,aAAagC,KAAKuB,MAAMiD,EAAQ,GAE7DiF,GACDD,EAAkBxL,aAAaK,cAC/BmL,EAAkBxL,aAAaqE,aAE9BiG,EACFkB,GAAqB3P,KAAKC,MAAM0E,cAC1B,gBACAgL,EAAkBxL,aAAagC,KAAKuB,MAAMiD,EAAQ,GACtD7F,EAAqB9E,KAAKC,MAAM6E,qBAAuB6K,EAEvDE,GAAuB/J,EAAAA,EAAAA,IACzB9F,KAAK+F,QAAQC,sBACbC,EAAAA,GAAoB6J,QAGxB,IAAIC,EAAaJ,EAAkBxL,aAAagC,KAAK6J,WAAW,KAAM,KAGtE,OAFKD,EAAW1H,WAAW,OAAM0H,EAAa,IAAMA,GAGhDnQ,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAAA,UAAKmQ,GACLnQ,EAAAA,cAAA,WACAA,EAAAA,cAAA,OAAKwB,UAAU,QACTuO,EAAkBxL,aAAaK,YAqE7B5E,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAQ,UACRD,UAAU,cACViN,QAASA,KAAWrO,KAAK4I,kBAAkB+G,EAAmB,GAC9D/P,EAAAA,cAAC0O,EAAAA,EAAe,CAACC,KAAM0B,EAAAA,MAAc,OAErCrQ,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,4CAEzB5B,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAASyD,EAAqB,YAAc,UAC5C1D,UAAU,cACViN,QAASA,KACDrO,KAAKC,MAAM6E,oBAAsB6K,GACjC3P,KAAKK,SAAS,CACVyE,mBAAoB6K,GAE5B,GAEJ/P,EAAAA,cAAC0O,EAAAA,EAAe,CAACC,KAAM2B,EAAAA,MAAU,OAEjCtQ,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,gCAEzB5B,EAAAA,cAACuQ,EAAAA,EAAc,CACXC,UAAU,MACVC,OACIR,IACAF,EAAkBpL,aACoB,IAAtCoL,EAAkBtL,SAASkF,cAErBgE,EAEV+C,QAASxQ,GACLF,EAAAA,cAAC2Q,EAAAA,EAAOlE,EAAA,CAAC7K,GAAG,2BAA8B1B,GACtCF,EAAAA,cAAC2B,EAAAA,EAAgB,CACbC,GACKmO,EAAkBpL,YAEbsL,EACE,iDACA,kDAHF,8DAQtBjQ,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAQ,SACRD,UAAU,cACVoP,UACKb,EAAkBpL,cAClBsL,GACDF,EAAkBtL,SAASkF,OAAS,GACpCoG,GAAqB3P,KAAKC,MAAM0E,cAEpC0J,QAASA,KAEDxF,QACI7I,KAAKF,MAAMgJ,KAAKC,cACZ,CACIvH,GAAI,gDAER,CAAEiN,oBAILzO,KAAKmF,kBAAiB,IACvBnF,KAAK8G,gBAAgB6I,IACxB,GAET/P,EAAAA,cAAC0O,EAAAA,EAAe,CAACC,KAAMkC,EAAAA,MAAW,OAElC7Q,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,4CA3IjC5B,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAACuQ,EAAAA,EAAc,CACXC,UAAU,MACVE,QAASxQ,GACLF,EAAAA,cAAC2Q,EAAAA,EAAOlE,EAAA,CAAC7K,GAAG,kCAAqC1B,GAC7CF,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,4CAG7B5B,EAAAA,cAACwO,EAAAA,EAAM,CACHhN,UAAU,OACVoP,UAAWf,EACXpB,QAASA,KAAWrO,KAAK6K,cAAe,GACxCjL,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,mCAG7B5B,EAAAA,cAACuQ,EAAAA,EAAc,CACXC,UAAU,MACVC,QAAOtD,IAAa6C,SAA6BrC,EACjD+C,QAASxQ,GACLF,EAAAA,cAAC2Q,EAAAA,EAAOlE,EAAA,CAAC7K,GAAG,8BAAiC1B,GACzCF,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,wCAG7B5B,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAQ,UACRD,UAAU,OACVoP,UAAWzD,GAAY6C,EACvBvB,QAASA,KACArO,KAAKgF,aACN,CACI0G,WAAYzI,EACZuB,aAAa,EACbiH,SAAS,GAEbkE,EAEP,GACD/P,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,kCAG7B5B,EAAAA,cAACuQ,EAAAA,EAAc,CACXC,UAAU,MACVC,QAAOtD,IAAa6C,SAA6BrC,EACjD+C,QAASxQ,GACLF,EAAAA,cAAC2Q,EAAAA,EAAOlE,EAAA,CAAC7K,GAAG,qCAAwC1B,GAChDF,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,wCAG7B5B,EAAAA,cAACwO,EAAAA,EAAM,CACH/M,QAAQ,SACRD,UAAU,OACVoP,UAAWzD,GAAY6C,EACvBvB,QAASA,KAEDxF,QACI7I,KAAKF,MAAMgJ,KAAKC,cACZ,CAAEvH,GAAI,sCACN,CAAE2E,KAAMwJ,EAAkBxL,aAAagC,SAI1CnG,KAAKmF,kBAAiB,IAAMnF,KAAKoF,cAAa,GAE3DxF,EAAAA,cAAC2B,EAAAA,EAAgB,CAACC,GAAG,mCAoFrD,CAEQ0M,sBAAAA,GACJ,OAAOtO,EAAAA,cAACsC,EAAAA,EAAS,KACrB,EAGJuC,EAAMiM,YAAcC,EAAAA,EACpB,WAAeC,EAAAA,EAAAA,IAAWnM,E","sources":["webpack://tgstation-server-control-panel/./src/components/utils/DownloadCard.tsx","webpack://tgstation-server-control-panel/./src/components/utils/WIPNotice.tsx","webpack://tgstation-server-control-panel/./src/components/views/Instance/Edit/Files.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Alert, Collapse, ProgressBar } from \"react-bootstrap\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { ProgressEvent } from \"../../ApiClient/TransferClient\";\n\nexport interface IDownloadProps {\n filename: string;\n progress: ProgressEvent;\n onClose: () => void;\n}\n\ninterface IState {\n animatedOpen: boolean;\n closeTriggered: boolean;\n}\n\nexport class DownloadCard extends React.Component {\n public constructor(props: IDownloadProps) {\n super(props);\n this.state = {\n animatedOpen: false,\n closeTriggered: false\n };\n }\n\n public componentDidMount(): void {\n this.setState({\n animatedOpen: true\n });\n\n if (this.isCompleted()) {\n this.close();\n }\n }\n\n public componentDidUpdate(): void {\n if (this.isCompleted()) {\n this.close();\n }\n }\n\n private isCompleted(props?: Readonly): boolean {\n props ??= this.props;\n const completed =\n props.progress.loaded === props.progress.total || props.progress.total === 0;\n return completed;\n }\n\n private close(): void {\n if (this.state.closeTriggered) {\n return;\n }\n this.setState({\n closeTriggered: true\n });\n\n setTimeout(() => {\n this.setState({\n animatedOpen: false\n });\n setTimeout(this.props.onClose, 1000);\n }, 3000);\n }\n\n public render(): React.ReactNode {\n const completed =\n this.props.progress.loaded === this.props.progress.total ||\n this.props.progress.total === 0;\n return (\n \n
\n \n \n
\n \n \n
\n
\n );\n }\n}\n","import React, { ReactNode } from \"react\";\nimport Card from \"react-bootstrap/Card\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { MODE, VERSION } from \"../../definitions/constants\";\n\nexport default class WIPNotice extends React.Component {\n public render(): ReactNode {\n return (\n \n \n \n \n \n \n \n \n https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest\n \n \n \n \n {`Version: ${VERSION}\\nWebpanel Mode: ${MODE}\\nCurrent route: ${window.location.toString()}`}\n \n \n \n \n );\n }\n}\n","import {\r\n faDownload,\r\n faFile,\r\n faFileAlt,\r\n faFolderMinus,\r\n faFolderPlus,\r\n faTimes\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { downloadZip } from \"client-zip\";\r\nimport React from \"react\";\r\nimport { Button, ButtonGroup, OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from \"react-intl\";\r\n\r\nimport ConfigurationFileClient from \"../../../../ApiClient/ConfigurationFileClient\";\r\nimport {\r\n ConfigurationFileResponse,\r\n ConfigurationRights,\r\n ConfigurationType\r\n} from \"../../../../ApiClient/generatedcode/generated\";\r\nimport InternalError, { ErrorCode } from \"../../../../ApiClient/models/InternalComms/InternalError\";\r\nimport { StatusCode } from \"../../../../ApiClient/models/InternalComms/InternalStatus\";\r\nimport TransferClient, { ProgressEvent } from \"../../../../ApiClient/TransferClient\";\r\nimport { InstanceEditContext } from \"../../../../contexts/InstanceEditContext\";\r\nimport { hasFilesRight } from \"../../../../utils/misc\";\r\nimport { DownloadCard, IDownloadProps } from \"../../../utils/DownloadCard\";\r\nimport ErrorAlert from \"../../../utils/ErrorAlert\";\r\nimport GenericAlert from \"../../../utils/GenericAlert\";\r\nimport { FieldType } from \"../../../utils/InputField\";\r\nimport InputForm from \"../../../utils/InputForm\";\r\nimport { DebugJsonViewer } from \"../../../utils/JsonViewer\";\r\nimport Loading from \"../../../utils/Loading\";\r\nimport WIPNotice from \"../../../utils/WIPNotice\";\r\n\r\n// https://stackoverflow.com/questions/24007073/open-links-made-by-createobjecturl-in-ie11/45732897#45732897\r\nconst downloadFileUsingBlob = (fileName: string, fileData: Blob) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\r\n const unknownNav = window.navigator as any;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\r\n if (unknownNav && unknownNav.msSaveOrOpenBlob) {\r\n // for IE\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\r\n unknownNav.msSaveOrOpenBlob(fileData, fileName);\r\n } else {\r\n // for Non-IE (chrome, firefox etc.)\r\n const a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n const fileUrl = URL.createObjectURL(fileData);\r\n a.href = fileUrl;\r\n a.download = fileName;\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n }\r\n};\r\n\r\ninterface CreateEntitySettings {\r\n entityName: string;\r\n isDirectory: boolean;\r\n replace?: boolean;\r\n}\r\n\r\nclass DirectoryTree {\r\n public parent: DirectoryTree | null;\r\n public children: DirectoryTree[];\r\n public fileResponse: ConfigurationFileResponse;\r\n public totalFiles: number | undefined;\r\n public fullyLoaded = false;\r\n\r\n public constructor(fileResponse: ConfigurationFileResponse, parent?: DirectoryTree) {\r\n this.fileResponse = fileResponse;\r\n this.parent = parent ?? null;\r\n if (!fileResponse.isDirectory) this.fullyLoaded = true;\r\n this.children = [];\r\n }\r\n}\r\n\r\ntype IProps = WrappedComponentProps;\r\n\r\ninterface IState {\r\n errors: Array | undefined>;\r\n rootDirectory: DirectoryTree | null;\r\n loading: boolean;\r\n selectedFile: DirectoryTree | null;\r\n selectedCreateNode: DirectoryTree | null;\r\n downloads: (IDownloadProps | null)[];\r\n}\r\n\r\nclass Files extends React.Component {\r\n public declare context: InstanceEditContext;\r\n\r\n public constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n errors: [],\r\n rootDirectory: null,\r\n loading: true,\r\n selectedFile: null,\r\n selectedCreateNode: null,\r\n downloads: []\r\n };\r\n\r\n this.createEntity = this.createEntity.bind(this);\r\n this.selectFile = this.selectFile.bind(this);\r\n this.shortAsyncAction = this.shortAsyncAction.bind(this);\r\n this.deleteFile = this.deleteFile.bind(this);\r\n this.loadDirectory = this.loadDirectory.bind(this);\r\n this.clearDirectory = this.clearDirectory.bind(this);\r\n }\r\n\r\n private addError(error: InternalError): void {\r\n this.setState(prevState => {\r\n const errors = Array.from(prevState.errors);\r\n errors.push(error);\r\n return {\r\n errors\r\n };\r\n });\r\n }\r\n\r\n public componentDidMount(): void {\r\n void this.loadRootDir();\r\n }\r\n\r\n private async loadRootDir() {\r\n if (hasFilesRight(this.context.instancePermissionSet, ConfigurationRights.List)) {\r\n this.setState({\r\n loading: true\r\n });\r\n const mockResponse = {\r\n path: \"/\",\r\n isDirectory: true,\r\n fileTicket: \"\"\r\n };\r\n const rootDirectory = new DirectoryTree(mockResponse);\r\n await this.loadDirectory(rootDirectory);\r\n\r\n this.setState({\r\n rootDirectory: rootDirectory,\r\n loading: false\r\n });\r\n } else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n }\r\n\r\n private async shortAsyncAction(action: () => Promise): Promise {\r\n const actionPromise = action();\r\n\r\n // only set state to loading if it's taking more than 750ms\r\n let tookTooLong = false;\r\n const tooLongPromise = new Promise(r => setTimeout(r, 750)).then(() => {\r\n tookTooLong = true;\r\n });\r\n\r\n await Promise.race([actionPromise, tooLongPromise]);\r\n\r\n if (tookTooLong) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n await actionPromise;\r\n\r\n this.setState({\r\n loading: false\r\n });\r\n } else this.forceUpdate();\r\n }\r\n\r\n private async deleteDirectory(dir: DirectoryTree): Promise {\r\n const response = await ConfigurationFileClient.deleteDirectory(this.context.instance.id, {\r\n path: dir.fileResponse.path\r\n });\r\n\r\n if (response.code === StatusCode.OK) {\r\n if (dir.parent != null) {\r\n const parentIndex = dir.parent.children.indexOf(dir);\r\n dir.parent.children.splice(parentIndex, 1);\r\n this.forceUpdate();\r\n }\r\n } else {\r\n this.addError(response.error);\r\n }\r\n }\r\n\r\n private async loadDirectory(directory: DirectoryTree): Promise {\r\n if (hasFilesRight(this.context.instancePermissionSet, ConfigurationRights.List)) {\r\n this.clearDirectory(directory);\r\n\r\n const path =\r\n directory.fileResponse.path[0] === \"\\\\\" || directory.fileResponse.path[0] === \"/\"\r\n ? directory.fileResponse.path.slice(1)\r\n : directory.fileResponse.path;\r\n let maxPages = 1;\r\n for (let page = 1; page <= maxPages; ++page) {\r\n const response = await ConfigurationFileClient.getDirectory(\r\n this.context.instance.id,\r\n path,\r\n {\r\n page\r\n }\r\n );\r\n if (response.code === StatusCode.OK) {\r\n maxPages = response.payload.totalPages;\r\n if (maxPages <= page) directory.fullyLoaded = true;\r\n const newChildren = response.payload.content.map(\r\n c => new DirectoryTree(c, directory)\r\n );\r\n for (const c of newChildren) {\r\n directory.children.push(c);\r\n }\r\n } else {\r\n this.addError(response.error);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async selectFile(file: DirectoryTree): Promise {\r\n if (this.state.selectedFile === file) {\r\n this.setState({\r\n selectedFile: null\r\n });\r\n return;\r\n }\r\n\r\n let doctoredPath = file.fileResponse.path;\r\n while (doctoredPath.startsWith(\"/\")) doctoredPath = doctoredPath.substring(1);\r\n\r\n if (!file.fileResponse.isDirectory) {\r\n const response = await ConfigurationFileClient.getConfigFile(\r\n this.context.instance.id,\r\n doctoredPath,\r\n null\r\n );\r\n\r\n const success = response.code === StatusCode.OK;\r\n if (success) {\r\n file.fileResponse = response.payload;\r\n } else {\r\n this.addError(response.error);\r\n file.fileResponse.lastReadHash = null;\r\n }\r\n }\r\n\r\n this.setState({\r\n selectedFile: file,\r\n selectedCreateNode: null\r\n });\r\n }\r\n\r\n private async deleteFile(): Promise {\r\n const selectedFile = this.state.selectedFile!;\r\n const response = await ConfigurationFileClient.writeConfigFile(\r\n this.context.instance.id,\r\n {\r\n path: selectedFile.fileResponse.path,\r\n lastReadHash: selectedFile.fileResponse.lastReadHash\r\n },\r\n new Uint8Array()\r\n );\r\n\r\n if (response.code === StatusCode.OK) {\r\n const parentDirectory = selectedFile.parent!;\r\n const parentIndex = parentDirectory.children.indexOf(selectedFile);\r\n parentDirectory.children.splice(parentIndex, 1);\r\n this.setState({\r\n selectedFile: null\r\n });\r\n } else this.addError(response.error);\r\n }\r\n\r\n private async downloadDirectory(directory: DirectoryTree): Promise {\r\n if (\r\n !confirm(\r\n this.props.intl.formatMessage(\r\n { id: \"view.instance.files.zip.confirm\" },\r\n { path: directory.fileResponse.path }\r\n )\r\n )\r\n ) {\r\n return;\r\n }\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n const enumerateDirectory = async (\r\n dir: ConfigurationFileResponse\r\n ): Promise => {\r\n let children: ConfigurationFileResponse[] = [];\r\n let maxPages = 1;\r\n\r\n const path = dir.path[0] === \"\\\\\" || dir.path[0] === \"/\" ? dir.path.slice(1) : dir.path;\r\n for (let page = 1; page <= maxPages; ++page) {\r\n const directoryResponse = await ConfigurationFileClient.getDirectory(\r\n this.context.instance.id,\r\n path,\r\n {\r\n page\r\n }\r\n );\r\n if (directoryResponse.code === StatusCode.OK) {\r\n maxPages = directoryResponse.payload.totalPages;\r\n children = children.concat(directoryResponse.payload.content);\r\n } else {\r\n this.addError(directoryResponse.error);\r\n return null;\r\n }\r\n }\r\n\r\n return children;\r\n };\r\n\r\n let errorEncountered = false;\r\n const downloadSingleFile = async (\r\n file: ConfigurationFileResponse\r\n ): Promise<() => Promise> => {\r\n const fileResponse = await ConfigurationFileClient.getConfigFile(\r\n this.context.instance.id,\r\n file.path,\r\n null\r\n );\r\n\r\n const pathInZip = file.path.substring(directory.fileResponse.path.length);\r\n if (fileResponse.code === StatusCode.OK) {\r\n const phase2 = async (): Promise => {\r\n const contents = await TransferClient.Download(\r\n fileResponse.payload.fileTicket,\r\n this.allocateDownload(pathInZip)\r\n );\r\n\r\n if (contents.code != StatusCode.OK) {\r\n this.addError(contents.error);\r\n return null;\r\n }\r\n\r\n const download = contents.payload;\r\n const file = new File([download], pathInZip);\r\n return file;\r\n };\r\n\r\n return phase2;\r\n }\r\n\r\n this.addError(fileResponse.error);\r\n errorEncountered = true;\r\n return () => Promise.resolve(null);\r\n };\r\n\r\n let directoriesToEnumerate: ConfigurationFileResponse[] = [directory.fileResponse];\r\n\r\n const fileDownloads: Promise[] = [];\r\n\r\n while (directoriesToEnumerate.length > 0) {\r\n const tasks: Promise[] = [];\r\n for (const directory of directoriesToEnumerate) {\r\n const task = enumerateDirectory(directory);\r\n await task;\r\n tasks.push(task);\r\n }\r\n\r\n directoriesToEnumerate = [];\r\n\r\n if (errorEncountered) {\r\n this.setState({\r\n loading: false\r\n });\r\n return;\r\n }\r\n\r\n for (const task of tasks) {\r\n const dirInfo = await task;\r\n if (dirInfo == null) {\r\n this.setState({\r\n loading: false\r\n });\r\n return;\r\n }\r\n\r\n for (const directoryEntry of dirInfo) {\r\n if (directoryEntry.isDirectory) {\r\n directoriesToEnumerate.push(directoryEntry);\r\n } else {\r\n const innerPromiseFunc = await downloadSingleFile(directoryEntry);\r\n fileDownloads.push(innerPromiseFunc());\r\n }\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(fileDownloads);\r\n if (errorEncountered) {\r\n this.setState({\r\n loading: false\r\n });\r\n return;\r\n }\r\n\r\n const downloadFiles: File[] = [];\r\n for (const fileDownload of fileDownloads) {\r\n downloadFiles.push((await fileDownload)!);\r\n }\r\n\r\n const zipBlob = await downloadZip(downloadFiles).blob();\r\n\r\n const index = Math.max(\r\n directory.fileResponse.path.lastIndexOf(\"\\\\\"),\r\n directory.fileResponse.path.lastIndexOf(\"/\")\r\n );\r\n\r\n const fileName = directory.fileResponse.path.slice(index + 1) + \".zip\";\r\n downloadFileUsingBlob(fileName, zipBlob);\r\n\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n\r\n private async downloadFile(): Promise {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n const selectedFile = this.state.selectedFile!;\r\n const index = Math.max(\r\n selectedFile.fileResponse.path.lastIndexOf(\"\\\\\"),\r\n selectedFile.fileResponse.path.lastIndexOf(\"/\")\r\n );\r\n const fileName = selectedFile.fileResponse.path.slice(index + 1);\r\n const response = await ConfigurationFileClient.getConfigFile(\r\n this.context.instance.id,\r\n selectedFile.fileResponse.path,\r\n this.allocateDownload(fileName)\r\n );\r\n\r\n if (response.code === StatusCode.OK) {\r\n downloadFileUsingBlob(fileName, response.payload.content!);\r\n } else this.addError(response.error);\r\n\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n\r\n private async createEntity(\r\n settings: CreateEntitySettings,\r\n parent: DirectoryTree\r\n ): Promise {\r\n let fileData: ArrayBuffer;\r\n if (settings.isDirectory) {\r\n fileData = new Uint8Array();\r\n } else {\r\n const inputPromise = new Promise(resolve => {\r\n const input = document.createElement(\"input\");\r\n input.type = \"file\";\r\n input.onchange = e => {\r\n const files = (e.target as HTMLInputElement)?.files;\r\n if (files) resolve(files[0]);\r\n else resolve(null);\r\n };\r\n input.click();\r\n });\r\n\r\n const localFile = await inputPromise;\r\n if (!localFile) return;\r\n\r\n // https://stackoverflow.com/questions/423376/how-to-get-the-file-name-from-a-full-path-using-javascript\r\n fileData = await localFile.arrayBuffer();\r\n }\r\n\r\n this.setState({ loading: true });\r\n\r\n let remoteFilePath = parent.fileResponse.path;\r\n if (!settings.replace) remoteFilePath += \"/\" + settings.entityName;\r\n else remoteFilePath = \"/\" + remoteFilePath;\r\n if (remoteFilePath.startsWith(\"//\")) remoteFilePath = remoteFilePath.substring(1);\r\n if (settings.isDirectory) remoteFilePath += \"/webpanel.dir.create.tmp\";\r\n\r\n const response = await ConfigurationFileClient.writeConfigFile(\r\n this.context.instance.id,\r\n {\r\n path: remoteFilePath,\r\n lastReadHash: settings.replace ? parent.fileResponse.lastReadHash : null\r\n },\r\n fileData\r\n );\r\n\r\n if (response.code !== StatusCode.OK) {\r\n this.addError(response.error);\r\n } else if (settings.replace) {\r\n parent.fileResponse = response.payload;\r\n }\r\n\r\n if (!settings.replace) {\r\n parent.fullyLoaded = false;\r\n await this.loadDirectory(parent);\r\n }\r\n\r\n let normalizedRemotePath = remoteFilePath.replace(\"\\\\\", \"/\");\r\n if (normalizedRemotePath.startsWith(\"/\"))\r\n normalizedRemotePath = normalizedRemotePath.substring(1);\r\n const newFileNode =\r\n parent.children.find(child =>\r\n normalizedRemotePath.startsWith(child.fileResponse.path.replace(\"\\\\\", \"/\"))\r\n ) ?? null;\r\n\r\n if (newFileNode)\r\n if (settings.isDirectory) {\r\n await this.loadDirectory(newFileNode);\r\n this.setState({\r\n selectedCreateNode: null,\r\n selectedFile: null\r\n });\r\n } else await this.selectFile(newFileNode);\r\n\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n\r\n private clearDirectory(directory: DirectoryTree): void {\r\n // reload the directory\r\n directory.fullyLoaded = false;\r\n directory.children.forEach(child => {\r\n if (child === this.state.selectedFile)\r\n this.setState({\r\n selectedFile: null\r\n });\r\n else if (child === this.state.selectedCreateNode)\r\n this.setState({\r\n selectedCreateNode: null\r\n });\r\n if (child.fileResponse.isDirectory) this.clearDirectory(child);\r\n });\r\n\r\n directory.children = [];\r\n }\r\n\r\n private allocateDownload(filename: string) {\r\n const indexPromise = new Promise(resolve => {\r\n this.setState(prevState => {\r\n const newDownloads = [...prevState.downloads];\r\n resolve(newDownloads.push(null) - 1);\r\n return {\r\n downloads: newDownloads\r\n };\r\n });\r\n });\r\n let latest = 0;\r\n return (progress: ProgressEvent) => {\r\n const ticket = ++latest;\r\n void indexPromise.then(index => {\r\n if (latest !== ticket) {\r\n return;\r\n }\r\n\r\n this.setState(prevState => {\r\n const newDownloads = [...prevState.downloads];\r\n newDownloads[index] = {\r\n filename,\r\n progress,\r\n onClose: () => {\r\n this.setState(prevState => {\r\n const newDownloads = [...prevState.downloads];\r\n newDownloads[index] = null;\r\n return {\r\n downloads: newDownloads\r\n };\r\n });\r\n }\r\n };\r\n return {\r\n downloads: newDownloads\r\n };\r\n });\r\n });\r\n };\r\n }\r\n\r\n public render(): React.ReactNode {\r\n const downloadsFragment = (\r\n \r\n {this.state.downloads.map((download, index) => {\r\n if (!download) return;\r\n return ;\r\n })}\r\n \r\n );\r\n\r\n if (this.state.loading) {\r\n return (\r\n \r\n {downloadsFragment}\r\n \r\n \r\n );\r\n }\r\n\r\n const instanceConfigMode = this.context.instance.configurationType;\r\n\r\n if (instanceConfigMode === ConfigurationType.Disallowed) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n const canListDirectories = hasFilesRight(\r\n this.context.instancePermissionSet,\r\n ConfigurationRights.List\r\n );\r\n\r\n const canWrite = hasFilesRight(\r\n this.context.instancePermissionSet,\r\n ConfigurationRights.Write\r\n );\r\n\r\n return (\r\n
\r\n \r\n

\r\n \r\n

\r\n {this.state.errors.map((err, index) => {\r\n if (!err) return;\r\n return (\r\n \r\n this.setState(prev => {\r\n const newarr = Array.from(prev.errors);\r\n newarr[index] = undefined;\r\n return {\r\n errors: newarr\r\n };\r\n })\r\n }\r\n />\r\n );\r\n })}\r\n {downloadsFragment}\r\n
\r\n {canListDirectories ? (\r\n \r\n {this.renderDirectory(this.state.rootDirectory!)}\r\n
\r\n ) : (\r\n \r\n \r\n
\r\n )}\r\n \r\n {!canWrite ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {this.state.selectedCreateNode ? (\r\n this.renderCreate()\r\n ) : this.state.selectedFile ? (\r\n this.renderSelectedFile()\r\n ) : canListDirectories ? (\r\n

\r\n \r\n

\r\n ) : (\r\n this.renderBrowserlessForms()\r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private renderDirectory(dir: DirectoryTree): React.ReactNode {\r\n const index = Math.max(\r\n dir.fileResponse.path.lastIndexOf(\"\\\\\"),\r\n dir.fileResponse.path.lastIndexOf(\"/\")\r\n );\r\n const selected = dir === this.state.selectedFile;\r\n if (!dir.fileResponse.isDirectory) {\r\n const fileName = dir.fileResponse.path.slice(index + 1);\r\n return (\r\n
  • \r\n void this.shortAsyncAction(() => this.selectFile(dir))}\r\n className=\"nowrap\">\r\n \r\n  {fileName}\r\n \r\n
  • \r\n );\r\n }\r\n\r\n const directoryName =\r\n dir == this.state.rootDirectory\r\n ? \"Configuration\"\r\n : dir.fileResponse.path.slice(index + 1);\r\n\r\n return (\r\n
    \r\n \r\n {\r\n if (dir.fullyLoaded) {\r\n this.clearDirectory(dir);\r\n this.forceUpdate();\r\n } else {\r\n void this.shortAsyncAction(() => this.loadDirectory(dir));\r\n }\r\n }}>\r\n \r\n \r\n void this.shortAsyncAction(() => this.selectFile(dir))}>\r\n {directoryName}\r\n \r\n \r\n
      \r\n {dir.children.map(subDir => (\r\n
    • {this.renderDirectory(subDir)}
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private renderCreate(): React.ReactNode {\r\n const fields = {\r\n entityName: {\r\n type: FieldType.String as FieldType.String,\r\n name: \"fields.instance.files.create.name\",\r\n tooltip: \"fields.instance.files.create.name.tip\",\r\n defaultValue: \"\"\r\n },\r\n isDirectory: {\r\n type: FieldType.Boolean as FieldType.Boolean,\r\n name: \"fields.instance.files.create.directory\",\r\n defaultValue: false\r\n }\r\n };\r\n\r\n const createNode = this.state.selectedCreateNode!;\r\n\r\n return (\r\n \r\n
    \r\n {createNode.fileResponse.path}\r\n {createNode.parent ? \"/\" : \"\"}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n void this.createEntity(fields, createNode)\r\n }\r\n saveMessageId=\"fields.instance.files.create\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private renderSelectedFile(): React.ReactNode {\r\n const canRead = hasFilesRight(this.context.instancePermissionSet, ConfigurationRights.Read);\r\n const canWrite = hasFilesRight(\r\n this.context.instancePermissionSet,\r\n ConfigurationRights.Write\r\n );\r\n\r\n const fileDirectoryTree = this.state.selectedFile!;\r\n const index = Math.max(\r\n fileDirectoryTree.fileResponse.path.lastIndexOf(\"\\\\\"),\r\n fileDirectoryTree.fileResponse.path.lastIndexOf(\"/\")\r\n );\r\n const fileName = fileDirectoryTree.fileResponse.path.slice(index + 1);\r\n\r\n const fileIsNotRefreshed =\r\n !fileDirectoryTree.fileResponse.isDirectory &&\r\n !fileDirectoryTree.fileResponse.lastReadHash;\r\n\r\n const directoryName =\r\n fileDirectoryTree == this.state.rootDirectory\r\n ? \"Configuration\"\r\n : fileDirectoryTree.fileResponse.path.slice(index + 1);\r\n const selectedCreateNode = this.state.selectedCreateNode === fileDirectoryTree;\r\n\r\n const canDeleteDirectories = hasFilesRight(\r\n this.context.instancePermissionSet,\r\n ConfigurationRights.Delete\r\n );\r\n\r\n let headerText = fileDirectoryTree.fileResponse.path.replaceAll(\"\\\\\", \"/\");\r\n if (!headerText.startsWith(\"/\")) headerText = \"/\" + headerText;\r\n\r\n return (\r\n \r\n
    {headerText}
    \r\n
    \r\n
    \r\n {!fileDirectoryTree.fileResponse.isDirectory ? (\r\n \r\n (\r\n \r\n \r\n \r\n )}>\r\n void this.downloadFile()}>\r\n \r\n \r\n \r\n (\r\n \r\n \r\n \r\n )}>\r\n \r\n void this.createEntity(\r\n {\r\n entityName: fileName,\r\n isDirectory: false,\r\n replace: true\r\n },\r\n fileDirectoryTree\r\n )\r\n }>\r\n \r\n \r\n \r\n (\r\n \r\n \r\n \r\n )}>\r\n {\r\n if (\r\n confirm(\r\n this.props.intl.formatMessage(\r\n { id: \"view.instance.files.delete.confirm\" },\r\n { path: fileDirectoryTree.fileResponse.path }\r\n )\r\n )\r\n )\r\n void this.shortAsyncAction(() => this.deleteFile());\r\n }}>\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n void this.downloadDirectory(fileDirectoryTree)}>\r\n \r\n  \r\n \r\n \r\n {\r\n if (this.state.selectedCreateNode != fileDirectoryTree) {\r\n this.setState({\r\n selectedCreateNode: fileDirectoryTree\r\n });\r\n }\r\n }}>\r\n \r\n  \r\n \r\n \r\n (\r\n \r\n \r\n \r\n )}>\r\n 0 ||\r\n fileDirectoryTree == this.state.rootDirectory\r\n }\r\n onClick={() => {\r\n if (\r\n confirm(\r\n this.props.intl.formatMessage(\r\n {\r\n id: \"view.instance.files.delete.directory.confirm\"\r\n },\r\n { directoryName }\r\n )\r\n )\r\n )\r\n void this.shortAsyncAction(() =>\r\n this.deleteDirectory(fileDirectoryTree)\r\n );\r\n }}>\r\n \r\n  \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private renderBrowserlessForms(): React.ReactNode {\r\n return ;\r\n }\r\n}\r\n\r\nFiles.contextType = InstanceEditContext;\r\nexport default injectIntl(Files);\r\n"],"names":["DownloadCard","React","constructor","props","super","this","state","animatedOpen","closeTriggered","componentDidMount","setState","isCompleted","close","componentDidUpdate","progress","loaded","total","setTimeout","onClose","render","completed","Collapse","in","dimension","Alert","className","variant","transition","FormattedMessage","id","values","file","filename","ProgressBar","min","now","Math","max","animated","WIPNotice","Card","border","Header","Body","Title","href","Text","as","VERSION","MODE","window","location","toString","downloadFileUsingBlob","fileName","fileData","unknownNav","navigator","msSaveOrOpenBlob","a","document","createElement","body","appendChild","fileUrl","URL","createObjectURL","download","click","revokeObjectURL","remove","DirectoryTree","fileResponse","parent","children","totalFiles","fullyLoaded","isDirectory","Files","errors","rootDirectory","loading","selectedFile","selectedCreateNode","downloads","createEntity","bind","selectFile","shortAsyncAction","deleteFile","loadDirectory","clearDirectory","addError","error","prevState","Array","from","push","loadRootDir","hasFilesRight","context","instancePermissionSet","ConfigurationRights","List","path","fileTicket","action","actionPromise","tookTooLong","tooLongPromise","Promise","r","then","race","forceUpdate","deleteDirectory","dir","response","ConfigurationFileClient","instance","code","StatusCode","OK","parentIndex","indexOf","splice","directory","slice","maxPages","page","getDirectory","payload","totalPages","newChildren","content","map","c","doctoredPath","startsWith","substring","getConfigFile","lastReadHash","writeConfigFile","Uint8Array","parentDirectory","downloadDirectory","confirm","intl","formatMessage","enumerateDirectory","async","directoryResponse","concat","errorEncountered","downloadSingleFile","pathInZip","length","contents","TransferClient","Download","allocateDownload","File","resolve","directoriesToEnumerate","fileDownloads","tasks","task","dirInfo","directoryEntry","innerPromiseFunc","all","downloadFiles","fileDownload","zipBlob","downloadZip","blob","index","lastIndexOf","downloadFile","settings","inputPromise","input","type","onchange","e","files","target","localFile","arrayBuffer","remoteFilePath","replace","entityName","normalizedRemotePath","newFileNode","find","child","forEach","indexPromise","newDownloads","latest","ticket","downloadsFragment","_extends","key","Loading","text","configurationType","ConfigurationType","Disallowed","GenericAlert","title","canListDirectories","canWrite","Write","DebugJsonViewer","obj","err","ErrorAlert","prev","newarr","undefined","style","paddingRight","maxHeight","minWidth","overflowY","renderDirectory","maxWidth","padding","renderCreate","renderSelectedFile","renderBrowserlessForms","selected","Button","onClick","FontAwesomeIcon","icon","faFileAlt","directoryName","ButtonGroup","faFolderMinus","faFolderPlus","subDir","fields","FieldType","String","name","tooltip","defaultValue","Boolean","createNode","InputForm","onSave","saveMessageId","canRead","Read","fileDirectoryTree","fileIsNotRefreshed","canDeleteDirectories","Delete","headerText","replaceAll","faDownload","faFile","OverlayTrigger","placement","show","overlay","Tooltip","disabled","faTimes","contextType","InstanceEditContext","injectIntl"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js b/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js new file mode 100644 index 00000000..f91a91b9 --- /dev/null +++ b/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1903],{1903:function(e,r,a){var t=a(4354),s=a(4173),n=a(5301),o=a(3728),i=a(8437);r.A=new class extends t.O{async updateGroup(e){let r;await o.A.wait4Init();try{r=await o.A.apiClient.api.userGroupControllerUpdate(e)}catch(e){return new n.A({code:n.s.ERROR,error:e})}switch(r.status){case 200:return new n.A({code:n.s.OK,payload:r.data});case 410:return new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.GROUP_NOT_FOUND,{errorMessage:r.data})});default:return new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}}async listGroups({page:e=1,pageSize:r=i.Ay.itemsperpage.value}){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.userGroupControllerList({pageSize:r,page:e})}catch(e){return new n.A({code:n.s.ERROR,error:e})}return 200===a.status?new n.A({code:n.s.OK,payload:a.data}):new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async createGroup(e,r){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.userGroupControllerCreate({name:e,permissionSet:r})}catch(e){return new n.A({code:n.s.ERROR,error:e})}return 201===a.status?new n.A({code:n.s.OK,payload:a.data}):new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async deleteGroup(e){let r;await o.A.wait4Init();try{r=await o.A.apiClient.api.userGroupControllerDelete(e)}catch(e){return new n.A({code:n.s.ERROR,error:e})}switch(r.status){case 204:return new n.A({code:n.s.OK,payload:null});case 409:return new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.GROUP_NOT_EMPTY,{errorMessage:r.data})});case 410:return new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.GROUP_NOT_FOUND,{errorMessage:r.data})});default:return new n.A({code:n.s.ERROR,error:new s.Ay(s.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}}}}}]); +//# sourceMappingURL=1903.85ef84acfb18a85c046b.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js.map b/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js.map new file mode 100644 index 00000000..92b10a9f --- /dev/null +++ b/webpanel/6.6.0/1903.85ef84acfb18a85c046b.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1903.85ef84acfb18a85c046b.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/UserGroupClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport type {\n ErrorMessageResponse,\n PaginatedUserGroupResponse,\n PermissionSet,\n UserGroupCreateRequest,\n UserGroupResponse,\n UserGroupUpdateRequest\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\nexport type UpdateGroupErrors = GenericErrors | ErrorCode.GROUP_NOT_FOUND;\nexport type listGroupsErrors = GenericErrors;\nexport type CreateGroupErrors = GenericErrors;\nexport type DeleteGroupErrors =\n | GenericErrors\n | ErrorCode.GROUP_NOT_FOUND\n | ErrorCode.GROUP_NOT_EMPTY;\n\nexport default new (class UserGroupClient extends ApiClient {\n public async updateGroup(\n group: UserGroupUpdateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userGroupControllerUpdate(group);\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: e as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserGroupResponse\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GROUP_NOT_FOUND, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async listGroups({\n page = 1,\n pageSize = configOptions.itemsperpage.value as number\n }): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userGroupControllerList({\n pageSize: pageSize,\n page: page\n });\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: e as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as PaginatedUserGroupResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async createGroup(\n name: string,\n permissionSet?: PermissionSet\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userGroupControllerCreate({\n name: name,\n permissionSet: permissionSet\n } as UserGroupCreateRequest);\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: e as InternalError\n });\n }\n\n switch (response.status) {\n case 201: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as UserGroupResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async deleteGroup(id: number): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.userGroupControllerDelete(id);\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: e as InternalError\n });\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 409: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GROUP_NOT_EMPTY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GROUP_NOT_FOUND, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n"],"names":["ApiClient","updateGroup","group","response","ServerClient","wait4Init","apiClient","api","userGroupControllerUpdate","e","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","data","InternalError","ErrorCode","GROUP_NOT_FOUND","errorMessage","UNHANDLED_RESPONSE","axiosResponse","listGroups","page","pageSize","configOptions","itemsperpage","value","userGroupControllerList","createGroup","name","permissionSet","userGroupControllerCreate","deleteGroup","id","userGroupControllerDelete","GROUP_NOT_EMPTY"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js b/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js new file mode 100644 index 00000000..dfafce77 --- /dev/null +++ b/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1930],{1930:function(e,a,t){var r=t(4354),n=t(4173),s=t(5301),o=t(3728),i=t(8437);a.A=new class extends r.O{async getDeployInfo(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamMakerControllerRead({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 200===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async startCompile(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamMakerControllerCreate({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 202===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async updateDeployInfo(e,a){let t;await o.A.wait4Init();try{t=await o.A.apiClient.api.dreamMakerControllerUpdate(a,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 200:return new s.A({code:s.s.OK,payload:t.data});case 204:return new s.A({code:s.s.OK,payload:null});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:t.data},t)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async listCompileJobs(e,{page:a=1,pageSize:t=i.Ay.itemsperpage.value}){let r;await o.A.wait4Init();try{r=await o.A.apiClient.api.dreamMakerControllerList({page:a,pageSize:t},{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 200===r.status?new s.A({code:s.s.OK,payload:r.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}async getCompileJob(e,a){let t;await o.A.wait4Init();try{t=await o.A.apiClient.api.dreamMakerControllerGetId(a,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 200:return new s.A({code:s.s.OK,payload:t.data});case 404:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.COMPILE_JOB_NOT_FOUND,{errorMessage:t.data},t)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}}}}]); +//# sourceMappingURL=1930.a299e5e3ce155c06e80c.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js.map b/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js.map new file mode 100644 index 00000000..1d5c156f --- /dev/null +++ b/webpanel/6.6.0/1930.a299e5e3ce155c06e80c.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1930.a299e5e3ce155c06e80c.bundle.js","mappings":"4MAoBA,QAAoB,cAAgCA,EAAAA,EAChD,mBAAaC,CACTC,GAIA,IAAIC,QAFEC,EAAAA,EAAaC,YAGnB,IACIF,QAAiBC,EAAAA,EAAaE,UAAWC,IAAIC,yBAAyB,CAClEC,QAAS,CACLC,SAAUR,EAASS,aAG/B,CAAE,MAAOC,GACL,OAAO,IAAIC,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAOL,GAEf,CAEA,OACS,MADDT,EAASe,OAEF,IAAIL,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAASjB,EAASkB,OAIf,IAAIR,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUC,mBACV,CAAEC,cAAetB,GACjBA,IAKpB,CAEA,kBAAauB,CACTxB,GAIA,IAAIC,QAFEC,EAAAA,EAAaC,YAGnB,IACIF,QAAiBC,EAAAA,EAAaE,UAAWC,IAAIoB,2BAA2B,CACpElB,QAAS,CACLC,SAAUR,EAASS,aAG/B,CAAE,MAAOC,GACL,OAAO,IAAIC,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAOL,GAEf,CAEA,OACS,MADDT,EAASe,OAEF,IAAIL,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAASjB,EAASkB,OAIf,IAAIR,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUC,mBACV,CAAEC,cAAetB,GACjBA,IAKpB,CAEA,sBAAayB,CACT1B,EACA2B,GAIA,IAAI1B,QAFEC,EAAAA,EAAaC,YAGnB,IACIF,QAAiBC,EAAAA,EAAaE,UAAWC,IAAIuB,2BAA2BD,EAAU,CAC9EpB,QAAS,CACLC,SAAUR,EAASS,aAG/B,CAAE,MAAOC,GACL,OAAO,IAAIC,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAOL,GAEf,CAEA,OAAQT,EAASe,QACb,KAAK,IACD,OAAO,IAAIL,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAASjB,EAASkB,OAG1B,KAAK,IACD,OAAO,IAAIR,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAAS,OAGjB,KAAK,IACD,OAAO,IAAIP,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUQ,aACV,CACIC,aAAc7B,EAASkB,MAE3BlB,KAIZ,QACI,OAAO,IAAIU,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUC,mBACV,CAAEC,cAAetB,GACjBA,KAKpB,CAEA,qBAAa8B,CACT/B,GACA,KAAEgC,EAAO,EAAC,SAAEC,EAAWC,EAAAA,GAAcC,aAAaC,QAIlD,IAAInC,QAFEC,EAAAA,EAAaC,YAGnB,IACIF,QAAiBC,EAAAA,EAAaE,UAAWC,IAAIgC,yBACzC,CAAEL,OAAMC,YACR,CACI1B,QAAS,CACLC,SAAUR,EAASS,aAInC,CAAE,MAAOC,GACL,OAAO,IAAIC,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAOL,GAEf,CAEA,OACS,MADDT,EAASe,OAEF,IAAIL,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAASjB,EAASkB,OAIf,IAAIR,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUC,mBACV,CAAEC,cAAetB,GACjBA,IAKpB,CAEA,mBAAaqC,CACTtC,EACAuC,GAIA,IAAItC,QAFEC,EAAAA,EAAaC,YAGnB,IACIF,QAAiBC,EAAAA,EAAaE,UAAWC,IAAImC,0BAA0BD,EAAY,CAC/EhC,QAAS,CACLC,SAAUR,EAASS,aAG/B,CAAE,MAAOC,GACL,OAAO,IAAIC,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAOL,GAEf,CAEA,OAAQT,EAASe,QACb,KAAK,IACD,OAAO,IAAIL,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWI,GACjBC,QAASjB,EAASkB,OAG1B,KAAK,IACD,OAAO,IAAIR,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUoB,sBACV,CACIX,aAAc7B,EAASkB,MAE3BlB,KAIZ,QACI,OAAO,IAAIU,EAAAA,EAAe,CACtBC,KAAMC,EAAAA,EAAWC,MACjBC,MAAO,IAAIK,EAAAA,GACPC,EAAAA,GAAUC,mBACV,CAAEC,cAAetB,GACjBA,KAKpB,E","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/DreamMakerClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport {\n CompileJobResponse,\n DreamMakerRequest,\n DreamMakerResponse,\n ErrorMessageResponse,\n JobResponse,\n PaginatedCompileJobResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\ntype getDeployInfoErrors = GenericErrors;\ntype startCompileErrors = GenericErrors;\ntype updateDeployInfoErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\ntype listCompileJobsErrors = GenericErrors;\ntype getCompileJobErrors = GenericErrors | ErrorCode.COMPILE_JOB_NOT_FOUND;\n\nexport default new (class DreamDaemonClient extends ApiClient {\n public async getDeployInfo(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamMakerControllerRead({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as DreamMakerResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async startCompile(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamMakerControllerCreate({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as JobResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async updateDeployInfo(\n instance: number,\n settings: DreamMakerRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamMakerControllerUpdate(settings, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as DreamMakerResponse\n });\n }\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async listCompileJobs(\n instance: number,\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamMakerControllerList(\n { page, pageSize },\n {\n headers: {\n Instance: instance.toString()\n }\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as PaginatedCompileJobResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getCompileJob(\n instance: number,\n compileJob: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamMakerControllerGetId(compileJob, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as CompileJobResponse\n });\n }\n case 404: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.COMPILE_JOB_NOT_FOUND,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n"],"names":["ApiClient","getDeployInfo","instance","response","ServerClient","wait4Init","apiClient","api","dreamMakerControllerRead","headers","Instance","toString","stat","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","data","InternalError","ErrorCode","UNHANDLED_RESPONSE","axiosResponse","startCompile","dreamMakerControllerCreate","updateDeployInfo","settings","dreamMakerControllerUpdate","NO_DB_ENTITY","errorMessage","listCompileJobs","page","pageSize","configOptions","itemsperpage","value","dreamMakerControllerList","getCompileJob","compileJob","dreamMakerControllerGetId","COMPILE_JOB_NOT_FOUND"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js b/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js new file mode 100644 index 00000000..479c7e94 --- /dev/null +++ b/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[2153,5727],{1723:function(e,t,n){n.d(t,{Ay:function(){return A},PU:function(){return f},gH:function(){return y}});var a=n(6188),r=n(6784),i=n(6540),l=n(5615),o=n(1208),s=n(5192),c=n(5038),d=n(3524),u=n(8065);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;te.onChange(t.target.value),disabled:e.disabled,ref:t})})),h=i.forwardRef((function(e){return i.createElement(o.A.Control,{as:"textarea",value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled})})),v=i.forwardRef((function(e,t){return i.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled,type:"password",ref:t})})),g=i.forwardRef((function(e,t){const n=Math.random().toString();return i.createElement("label",{htmlFor:n,className:"d-flex m-0 flex-grow-1 justify-content-center align-content-center"},i.createElement(o.A.Check,{id:n,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:"switch",className:"m-auto",disabled:e.disabled,ref:t}))})),b=i.forwardRef((function(e,t){return i.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(isNaN(t.target.valueAsNumber)?t.target.value:t.target.valueAsNumber),disabled:e.disabled,min:e.min,max:e.max,type:"number",ref:t})})),E=i.forwardRef((function(e,t){return i.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(parseInt(t.target.value)),disabled:e.disabled,as:"select",custom:!0,ref:t},Object.entries(e.enum).filter((([e])=>isNaN(parseInt(e)))).map((([t,n])=>e.noLocalize?i.createElement("option",{key:n,value:n},t):i.createElement(u.A,{id:`${e.name}.${t}`,key:t},(e=>i.createElement("option",{key:n,value:n},e))))))})),y={[f.Enum]:0,[f.Number]:0,[f.Boolean]:!1,[f.String]:"",[f.Password]:"",[f.TextArea]:""};function A(e){const[t,n]=(0,i.useState)(e.defaultValue??y[e.type]),o=(0,i.useRef)(null);(0,i.useEffect)((()=>{n(e.defaultValue??y[e.type])}),[e.defaultValue]),(0,i.useEffect)((()=>{switch(o.current&&(o.current.checkValidity()?o.current.classList.remove("is-invalid"):o.current.classList.add("is-invalid")),e.type){case f.Boolean:case f.Enum:case f.Number:case f.String:case f.Password:case f.TextArea:return void e.onChange(t,o.current?.checkValidity()??!0)}}),[t]);const A={string:p,password:v,boolean:g,textarea:h,[f.Number]:void 0,[f.Enum]:void 0},w=t!=(e.defaultValue??y[e.type])||e.forceChanged;return i.createElement(s.A,null,i.createElement(c.A,{overlay:(x=e.tooltip,x?i.createElement(d.A,{id:x},i.createElement(u.A,{id:x})):i.createElement(i.Fragment,null)),show:!!e.tooltip&&void 0},(({ref:t,...n})=>i.createElement(s.A.Prepend,{className:"w-50 w-xl-40"},i.createElement(s.A.Text,m({className:"flex-grow-1"},n),i.createElement("span",{className:w?"font-weight-bold":""},i.createElement(u.A,{id:e.name})),i.createElement("div",{className:"ml-auto"},e.disabled&&!e.hideReadOnly?i.createElement(u.A,{id:"generic.readonly"}):null,i.createElement("div",{ref:t,className:"d-inline-block ml-2",style:{visibility:e.tooltip?"unset":"hidden"}},i.createElement(r.g,{icon:a.ktq}))))))),e.type===f.Number?i.createElement(b,{value:t,onChange:e=>n(e),name:e.name,disabled:e.disabled,max:e.max,min:e.min,ref:o}):e.type===f.Enum?i.createElement(E,{value:t,onChange:e=>n(e),name:e.name,enum:e.enum,noLocalize:e.noLocalize,disabled:e.disabled}):i.createElement(A[e.type],{value:t,onChange:e=>n(e),disabled:e.disabled,name:e.type,ref:o}),w&&!e.disabled||e.additionalAppend?i.createElement(s.A.Append,null,w&&!e.disabled?i.createElement(l.A,{variant:"danger",onClick:()=>n(e.defaultValue??y[e.type])},i.createElement(r.g,{icon:"undo"})):null,e.additionalAppend):null);var x}},6113:function(e,t,n){n.d(t,{A:function(){return d}});var a=n(6540),r=n(5615),i=n(5038),l=n(3524),o=n(8065),s=n(1723);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t{Object.keys(e.fields).forEach((e=>{u((t=>({...t,[e]:{}})))}))}),[]);for(const[r,i]of Object.entries(e.fields))n.set(r,i),t.set(i,(0,a.useState)(i.defaultValue??s.gH[i.type]));let m=e.alwaysAllowSave,f=!1;for(const[e,a]of n){const[n]=t.get(a),r=d[e];if((a.defaultValue??s.gH[a.type])!=n&&(m=!0),r?.invalid&&(f=!0),m&&f)break}return e.hideDisabled&&!Object.values(e.fields).some((e=>!e.disabled))?a.createElement(a.Fragment,null):a.createElement("div",null,Object.entries(e.fields).map((([n,r])=>{const{disabled:i,...l}=r;return e.hideDisabled&&i?null:a.createElement(s.Ay,c({key:n},l,{disabled:e.readOnly||i,onChange:(e,a)=>{t.get(r)[1](e),u((e=>({...e,[n]:{...e[n],invalid:!a}})))}}))})),a.createElement("div",{className:"text-center mt-2"},a.createElement(i.A,{overlay:a.createElement(l.A,{id:"form-invalid"},a.createElement(o.A,{id:"generic.invalid_form"})),show:!!f&&void 0},a.createElement(r.A,{variant:e.readOnly||f?"danger":"success",disabled:e.readOnly||!m||f,onClick:()=>{const a={};for(const[r,i]of n){const[n]=t.get(i);(i.alwaysInclude||n!=(i.defaultValue??s.gH[i.type])||e.includeAll)&&(a[r]=n)}e.onSave(a)}},a.createElement(o.A,{id:e.saveMessageId??"generic.save"})))))}},6795:function(e,t,n){n.d(t,{Q:function(){return s}});var a=n(6540),r=n(8785),i=n.n(r),l=n(8437);function o(e){return a.createElement(i(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function s(e){return l.Ay.showjson.value?a.createElement("div",{className:"text-left"},a.createElement(o,{obj:e.obj})):a.createElement(a.Fragment,null)}},2153:function(e,t,n){n.r(t);var a=n(6540),r=n(8065),i=n(4180),l=n(2576),o=n(1824),s=n(5301),c=n(379),d=n(7621),u=n(4118),m=n(7567),f=n(1723),p=n(6113),h=n(6795),v=n(7255);class g extends a.Component{constructor(e){super(e),this.editInstance=this.editInstance.bind(this),this.state={errors:[],moving:!1}}addError(e){this.setState((t=>{const n=Array.from(t.errors);return n.push(e),{errors:n}}))}async editInstance(e){if(e.autoUpdateCron&&e.autoUpdateInterval)return void alert("Cannot set both auto update interval and cron!");const t=this.context.instance.id;let n;e.path&&e.path!=this.context.instance.path&&(n=e.path,e.path=null,e.online=!1,this.setState({moving:!0}));const a=await o.A.editInstance({...e,id:t});if(a.code!==s.s.OK)return this.addError(a.error),void this.setState({moving:!1});if(n){const e=await o.A.editInstance({id:this.context.instance.id,path:n});if(e.code!==s.s.OK)return this.addError(e.error),this.setState({moving:!1}),void await this.context.reloadInstance();let a;do{if(await new Promise((e=>setTimeout(e,1e3))),a=await o.A.getInstance(t),a.code!==s.s.OK)return this.addError(a.error),this.setState({moving:!1}),void await this.context.reloadInstance()}while(a.payload.moveJob);const r=await o.A.editInstance({online:!0,id:t});r.code!==s.s.OK?(this.addError(r.error),this.setState({moving:!1})):c.default.registerJob(e.payload.moveJob,t)}await this.context.reloadInstance()}render(){const e=e=>(0,u.tL)((0,u.u)(this.context.user),e),t={name:{name:"fields.instance.name",type:f.PU.String,defaultValue:this.context.instance.name,disabled:!e(l.cq.Rename)},path:{name:"fields.instance.path",type:f.PU.String,defaultValue:this.context.instance.path,disabled:!e(l.cq.Relocate)},chatBotLimit:{name:"fields.instance.chatbotlimit",type:f.PU.Number,min:0,defaultValue:this.context.instance.chatBotLimit,disabled:!e(l.cq.SetChatBotLimit)},autoUpdateCron:{name:"fields.instance.cron",type:f.PU.String,defaultValue:this.context.instance.autoUpdateCron,disabled:!e(l.cq.SetAutoUpdate)},autoUpdateInterval:{name:"fields.instance.autoupdate",type:f.PU.Number,min:0,defaultValue:this.context.instance.autoUpdateInterval,disabled:!e(l.cq.SetAutoUpdate)},configurationType:{name:"fields.instance.filemode",type:f.PU.Enum,enum:l.HB,defaultValue:this.context.instance.configurationType,disabled:!e(l.cq.SetConfiguration)}};return a.createElement("div",{className:"text-center"},a.createElement("h1",null,a.createElement(r.A,{id:"view.instance.info"})),a.createElement(h.Q,{obj:this.context}),this.state.errors.map(((e,t)=>{if(e)return a.createElement(m.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const n=Array.from(e.errors);return n[t]=void 0,{errors:n}}))})})),this.state.moving?a.createElement(v.default,{text:"loading.instance.move"}):a.createElement(p.A,{fields:t,onSave:this.editInstance}))}}g.contextType=d.z,t.default=(0,i.y)(g)},7621:function(e,t,n){n.d(t,{z:function(){return a}});const a=n(6540).createContext(void 0)},5192:function(e,t,n){var a=n(8587),r=n(8168),i=n(2485),l=n.n(i),o=n(6540),s=n(6261),c=n(6519),d=["bsPrefix","size","hasValidation","className","as"],u=(0,s.A)("input-group-append"),m=(0,s.A)("input-group-prepend"),f=(0,s.A)("input-group-text",{Component:"span"}),p=o.forwardRef((function(e,t){var n=e.bsPrefix,i=e.size,s=e.hasValidation,u=e.className,m=e.as,f=void 0===m?"div":m,p=(0,a.A)(e,d);return n=(0,c.oU)(n,"input-group"),o.createElement(f,(0,r.A)({ref:t},p,{className:l()(u,n,i&&n+"-"+i,s&&"has-validation")}))}));p.displayName="InputGroup",p.Text=f,p.Radio=function(e){return o.createElement(f,null,o.createElement("input",(0,r.A)({type:"radio"},e)))},p.Checkbox=function(e){return o.createElement(f,null,o.createElement("input",(0,r.A)({type:"checkbox"},e)))},p.Append=u,p.Prepend=m,t.A=p}}]); +//# sourceMappingURL=2153.127573880e3e5661e918.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js.map b/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js.map new file mode 100644 index 00000000..547591da --- /dev/null +++ b/webpanel/6.6.0/2153.127573880e3e5661e918.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"2153.127573880e3e5661e918.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/utils/InputField.tsx","webpack://tgstation-server-control-panel/./src/components/utils/InputForm.tsx","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/views/Instance/Edit/Config.tsx","webpack://tgstation-server-control-panel/./src/contexts/InstanceEditContext.ts","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/InputGroup.js"],"sourcesContent":["import { faInfo } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nexport type AnyEnum = {\n [key: string]: string | number;\n [index: number]: string;\n};\n\nexport enum FieldType {\n Boolean = \"boolean\",\n Number = \"number\",\n String = \"string\",\n TextArea = \"textarea\",\n Password = \"password\",\n Enum = \"enum\"\n}\n\nexport type InputFieldTypes = number | string | boolean;\n\nexport type InputFieldProps = {\n name: string;\n disabled?: boolean;\n tooltip?: string;\n type: FieldType;\n hideReadOnly?: boolean;\n additionalAppend?: React.ReactNode;\n forceChanged?: boolean;\n} & (\n | {\n defaultValue?: boolean | null;\n onChange: (newValue: boolean, isValid: boolean) => unknown;\n type: FieldType.Boolean;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Number;\n min?: number;\n max?: number;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.String;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.TextArea;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.Password;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Enum;\n noLocalize?: boolean;\n enum: AnyEnum;\n }\n);\n\ninterface ControlProps {\n value: InputFieldTypes;\n onChange: (newvalue: InputFieldTypes) => unknown;\n disabled?: boolean;\n name: string;\n}\n\nconst StringControl = React.forwardRef(\n function StringControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n ref={ref}\n />\n );\n }\n);\n\nconst TextAreaControl = React.forwardRef(\n function StringControl(props): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n />\n );\n }\n);\n\nconst PasswordControl = React.forwardRef(\n function PasswordControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n type=\"password\"\n ref={ref}\n />\n );\n }\n);\n\nconst BooleanControl = React.forwardRef(\n function BooleanControl(props, ref): JSX.Element {\n const rndId = Math.random().toString();\n return (\n \n props.onChange(e.target.checked)}\n type=\"switch\"\n className=\"m-auto\"\n disabled={props.disabled}\n ref={ref}\n />\n \n );\n }\n);\n\ntype NumberControlProps = ControlProps & {\n min?: number;\n max?: number;\n};\nconst NumberControl = React.forwardRef(\n function NumberControl(props, ref): JSX.Element {\n return (\n ) =>\n props.onChange(\n isNaN(e.target.valueAsNumber) ? e.target.value : e.target.valueAsNumber\n )\n }\n disabled={props.disabled}\n min={props.min}\n max={props.max}\n type=\"number\"\n ref={ref}\n />\n );\n }\n);\n\ntype EnumControlProps = ControlProps & {\n enum: AnyEnum;\n noLocalize?: boolean;\n};\nconst EnumControl = React.forwardRef(\n function EnumControl(props, ref): JSX.Element {\n return (\n props.onChange(parseInt(e.target.value))}\n disabled={props.disabled}\n as=\"select\"\n custom\n ref={ref}>\n {Object.entries(props.enum)\n //filters out reverse mapping\n .filter(([key]) => isNaN(parseInt(key)))\n .map(([key, value]) => {\n return props.noLocalize ? (\n \n ) : (\n \n {message => (\n \n )}\n \n );\n })}\n \n );\n }\n);\n\nexport const defaultValues: Record = {\n [FieldType.Enum]: 0,\n [FieldType.Number]: 0,\n [FieldType.Boolean]: false,\n [FieldType.String]: \"\",\n [FieldType.Password]: \"\",\n [FieldType.TextArea]: \"\"\n};\n\nexport default function InputField(props: InputFieldProps): JSX.Element {\n const [currentValue, setCurrentValue] = useState(\n props.defaultValue ?? defaultValues[props.type]\n );\n const controlRef = useRef(null);\n useEffect(() => {\n setCurrentValue(props.defaultValue ?? defaultValues[props.type]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.defaultValue]);\n\n useEffect(() => {\n if (controlRef.current) {\n if (controlRef.current.checkValidity()) {\n controlRef.current.classList.remove(\"is-invalid\");\n } else {\n controlRef.current.classList.add(\"is-invalid\");\n }\n }\n\n switch (props.type) {\n case FieldType.Boolean:\n props.onChange(\n currentValue as boolean,\n controlRef.current?.checkValidity() ?? true\n );\n return;\n case FieldType.Enum:\n case FieldType.Number:\n props.onChange(currentValue as number, controlRef.current?.checkValidity() ?? true);\n return;\n case FieldType.String:\n case FieldType.Password:\n case FieldType.TextArea:\n props.onChange(currentValue as string, controlRef.current?.checkValidity() ?? true);\n return;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue]);\n\n const tooltip = (innerid?: string) => {\n if (!innerid) return ;\n\n return (\n \n \n \n );\n };\n\n const basicControls: {\n [Property in typeof props.type]: Property extends FieldType.Enum | FieldType.Number\n ? undefined\n : React.FC;\n } = {\n string: StringControl,\n password: PasswordControl,\n boolean: BooleanControl,\n textarea: TextAreaControl,\n [FieldType.Number]: undefined,\n [FieldType.Enum]: undefined\n };\n\n const changed =\n currentValue != (props.defaultValue ?? defaultValues[props.type]) || props.forceChanged;\n\n return (\n \n \n {({ ref, ...triggerHandler }) => (\n \n \n \n \n \n
    \n {props.disabled && !props.hideReadOnly ? (\n \n ) : null}\n \n \n
    \n \n
    \n
    \n )}\n \n {props.type === FieldType.Number ? (\n setCurrentValue(newValue)}\n name={props.name}\n disabled={props.disabled}\n max={props.max}\n min={props.min}\n ref={controlRef}\n />\n ) : props.type === FieldType.Enum ? (\n setCurrentValue(newValue)}\n name={props.name}\n enum={props.enum}\n noLocalize={props.noLocalize}\n disabled={props.disabled}\n />\n ) : (\n React.createElement>(\n basicControls[props.type],\n {\n value: currentValue,\n onChange: newValue => setCurrentValue(newValue),\n disabled: props.disabled,\n name: props.type,\n ref: controlRef\n }\n )\n )}\n {!(!changed || props.disabled) || props.additionalAppend ? (\n \n {!(!changed || props.disabled) ? (\n \n setCurrentValue(props.defaultValue ?? defaultValues[props.type])\n }>\n \n \n ) : null}\n {props.additionalAppend}\n \n ) : null}\n
    \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { DistributiveOmit } from \"../../utils/misc\";\nimport InputField, {\n defaultValues,\n FieldType,\n InputFieldProps,\n InputFieldTypes\n} from \"./InputField\";\n\ntype ExtractValues = T extends T ? T[keyof T] : never;\n\ntype FieldsOutput> = {\n [Id in keyof Fields]: Fields[Id][\"type\"] extends FieldType.Number\n ? number\n : Fields[Id][\"type\"] extends FieldType.Enum\n ? // @ts-expect-error Typescript doesnt seem to support union descrimination in conditional types\n ExtractValues\n : Fields[Id][\"type\"] extends FieldType.Boolean\n ? boolean\n : Fields[Id][\"type\"] extends FieldType.String\n ? string\n : Fields[Id][\"type\"] extends FieldType.Password\n ? string\n : Fields[Id][\"type\"] extends FieldType.TextArea\n ? string\n : never;\n};\n\nexport type InputFormField = DistributiveOmit & {\n alwaysInclude?: boolean;\n};\ninterface IProps> {\n fields: Fields;\n onSave: (fields: FieldsOutput) => unknown;\n readOnly?: boolean;\n hideDisabled?: boolean;\n includeAll?: boolean;\n saveMessageId?: string;\n alwaysAllowSave?: boolean;\n}\n\ninterface FieldState {\n invalid?: boolean;\n}\n\nexport default function InputForm>(\n props: IProps\n): JSX.Element {\n const fieldValueStates = new Map<\n InputFormField,\n [InputFieldTypes, React.Dispatch>]\n >();\n const fieldStateIds = new Map();\n const [fieldStates, setFieldStates] = useState>({});\n\n useEffect(() => {\n Object.keys(props.fields).forEach(id => {\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {}\n }));\n });\n // It wants props.fields, but you really shouldnt ever change it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n for (const [id, field] of Object.entries(props.fields)) {\n fieldStateIds.set(id, field);\n fieldValueStates.set(\n field,\n // props.fields never changes, it will be\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useState(field.defaultValue ?? defaultValues[field.type])\n );\n }\n\n let anyDiff = props.alwaysAllowSave;\n let anyInvalid = false;\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n const fieldState = fieldStates[id];\n if ((fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) != fieldValue)\n anyDiff = true;\n if (fieldState?.invalid) anyInvalid = true;\n\n if (anyDiff && anyInvalid) break;\n }\n\n const save = () => {\n const outputObject: Record = {};\n\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n\n if (\n !fieldDescriptor.alwaysInclude &&\n fieldValue ==\n (fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) &&\n !props.includeAll\n )\n continue;\n\n outputObject[id] = fieldValue;\n }\n // @ts-expect-error I can't be assed to turn this generic object into the specially crafted output type, its mostly for public api sanity so i dont care\n props.onSave(outputObject);\n };\n\n //Don't show anything including the save button if we are hiding every single field\n if (props.hideDisabled) {\n if (!Object.values(props.fields).some(field => !field.disabled)) {\n return <>;\n }\n }\n\n return (\n
    \n {Object.entries(props.fields).map(([id, field]) => {\n const { disabled, ...innerProps } = field;\n if (props.hideDisabled && disabled) return null;\n\n return (\n {\n fieldValueStates.get(field)![1](newVal);\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {\n ...prevState[id],\n invalid: !isValid\n }\n }));\n }}\n />\n );\n })}\n
    \n \n \n \n }\n show={anyInvalid ? undefined : false}>\n \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\nimport { FormattedMessage } from \"react-intl\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\n\nimport {\n ConfigurationType,\n InstanceManagerRights,\n InstanceResponse,\n InstanceUpdateRequest\n} from \"../../../../ApiClient/generatedcode/generated\";\nimport InstanceClient, { GetInstanceErrors } from \"../../../../ApiClient/InstanceClient\";\nimport InternalError, { ErrorCode } from \"../../../../ApiClient/models/InternalComms/InternalError\";\nimport InternalStatus, {\n StatusCode\n} from \"../../../../ApiClient/models/InternalComms/InternalStatus\";\nimport JobsController from \"../../../../ApiClient/util/JobsController\";\nimport { InstanceEditContext } from \"../../../../contexts/InstanceEditContext\";\nimport { hasInstanceManagerRight, resolvePermissionSet } from \"../../../../utils/misc\";\nimport ErrorAlert from \"../../../utils/ErrorAlert\";\nimport { FieldType } from \"../../../utils/InputField\";\nimport InputForm from \"../../../utils/InputForm\";\nimport { DebugJsonViewer } from \"../../../utils/JsonViewer\";\nimport Loading from \"../../../utils/Loading\";\n\ntype IProps = RouteComponentProps;\ninterface IState {\n moving: boolean;\n errors: Array | undefined>;\n}\n\nclass InstanceSettings extends React.Component {\n public declare context: InstanceEditContext;\n\n public constructor(props: IProps) {\n super(props);\n\n this.editInstance = this.editInstance.bind(this);\n\n this.state = {\n errors: [],\n moving: false\n };\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n private async editInstance(instance: Omit) {\n if (!!instance.autoUpdateCron && !!instance.autoUpdateInterval) {\n alert(\"Cannot set both auto update interval and cron!\");\n return;\n }\n\n const instanceId = this.context.instance.id;\n let newPath: string | undefined;\n if (instance.path && instance.path != this.context.instance.path) {\n newPath = instance.path;\n instance.path = null;\n instance.online = false; // need to offline the instance before moving it\n this.setState({ moving: true });\n }\n\n const response = await InstanceClient.editInstance({\n ...instance,\n id: instanceId\n });\n if (response.code !== StatusCode.OK) {\n this.addError(response.error);\n this.setState({ moving: false });\n return;\n }\n\n if (newPath) {\n //move the instance\n const response2 = await InstanceClient.editInstance({\n id: this.context.instance.id,\n path: newPath\n });\n\n if (response2.code !== StatusCode.OK) {\n this.addError(response2.error);\n this.setState({ moving: false });\n await this.context.reloadInstance();\n return;\n }\n\n // we can't use the jobs controller because instance move jobs are special so just wait until the move is done\n let response3: InternalStatus;\n do {\n await new Promise(resolve => setTimeout(resolve, 1000));\n response3 = await InstanceClient.getInstance(instanceId);\n\n if (response3.code !== StatusCode.OK) {\n this.addError(response3.error);\n this.setState({ moving: false });\n await this.context.reloadInstance();\n return;\n }\n } while (response3.payload.moveJob);\n\n const response4 = await InstanceClient.editInstance({\n online: true,\n id: instanceId\n });\n if (response4.code !== StatusCode.OK) {\n this.addError(response4.error);\n this.setState({ moving: false });\n } else {\n JobsController.registerJob(response2.payload.moveJob!, instanceId);\n }\n }\n\n await this.context.reloadInstance();\n }\n\n public render(): React.ReactNode {\n const checkIMFlag = (flag: InstanceManagerRights) => {\n return hasInstanceManagerRight(resolvePermissionSet(this.context.user), flag);\n };\n\n const fields = {\n name: {\n name: \"fields.instance.name\",\n type: FieldType.String as FieldType.String,\n defaultValue: this.context.instance.name,\n disabled: !checkIMFlag(InstanceManagerRights.Rename)\n },\n path: {\n name: \"fields.instance.path\",\n type: FieldType.String as FieldType.String,\n defaultValue: this.context.instance.path,\n disabled: !checkIMFlag(InstanceManagerRights.Relocate)\n },\n chatBotLimit: {\n name: \"fields.instance.chatbotlimit\",\n type: FieldType.Number as FieldType.Number,\n min: 0,\n defaultValue: this.context.instance.chatBotLimit,\n disabled: !checkIMFlag(InstanceManagerRights.SetChatBotLimit)\n },\n autoUpdateCron: {\n name: \"fields.instance.cron\",\n type: FieldType.String as FieldType.String,\n defaultValue: this.context.instance.autoUpdateCron,\n disabled: !checkIMFlag(InstanceManagerRights.SetAutoUpdate)\n },\n autoUpdateInterval: {\n name: \"fields.instance.autoupdate\",\n type: FieldType.Number as FieldType.Number,\n min: 0,\n defaultValue: this.context.instance.autoUpdateInterval,\n disabled: !checkIMFlag(InstanceManagerRights.SetAutoUpdate)\n },\n configurationType: {\n name: \"fields.instance.filemode\",\n type: FieldType.Enum as FieldType.Enum,\n enum: ConfigurationType,\n defaultValue: this.context.instance.configurationType,\n disabled: !checkIMFlag(InstanceManagerRights.SetConfiguration)\n }\n };\n\n return (\n
    \n

    \n \n

    \n \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n\n {this.state.moving ? (\n \n ) : (\n \n )}\n
    \n );\n }\n}\nInstanceSettings.contextType = InstanceEditContext;\nexport default withRouter(InstanceSettings);\n","import React from \"react\";\n\nimport type {\n InstancePermissionSetResponse,\n InstanceResponse,\n ServerInformationResponse,\n UserResponse\n} from \"../ApiClient/generatedcode/generated\";\nimport InternalError from \"../ApiClient/models/InternalComms/InternalError\";\n\nexport type InstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse;\n};\n\n//same as InstanceEditContext except used for components which arent loading under instanceedit so we cant guarentee that instance wont be null\nexport type UnsafeInstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse | null;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse | null;\n};\n\nexport const InstanceEditContext = React.createContext(\n undefined as unknown as InstanceEditContext\n);\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _excluded = [\"bsPrefix\", \"size\", \"hasValidation\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n hasValidation = _ref.hasValidation,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size, hasValidation && 'has-validation')\n }));\n});\nInputGroup.displayName = 'InputGroup';\nInputGroup.Text = InputGroupText;\nInputGroup.Radio = InputGroupRadio;\nInputGroup.Checkbox = InputGroupCheckbox;\nInputGroup.Append = InputGroupAppend;\nInputGroup.Prepend = InputGroupPrepend;\nexport default InputGroup;"],"names":["FieldType","StringControl","React","props","ref","Form","Control","value","onChange","e","target","disabled","TextAreaControl","as","PasswordControl","type","BooleanControl","rndId","Math","random","toString","htmlFor","className","Check","id","checked","NumberControl","isNaN","valueAsNumber","min","max","EnumControl","parseInt","custom","Object","entries","enum","filter","key","map","noLocalize","FormattedMessage","name","message","defaultValues","Enum","Number","Boolean","String","Password","TextArea","InputField","currentValue","setCurrentValue","useState","defaultValue","controlRef","useRef","useEffect","current","checkValidity","classList","remove","add","basicControls","string","password","boolean","textarea","undefined","changed","forceChanged","InputGroup","OverlayTrigger","overlay","innerid","tooltip","Tooltip","show","triggerHandler","Prepend","Text","_extends","hideReadOnly","style","visibility","FontAwesomeIcon","icon","faInfo","newValue","additionalAppend","Append","Button","variant","onClick","InputForm","fieldValueStates","Map","fieldStateIds","fieldStates","setFieldStates","keys","fields","forEach","prevState","field","set","anyDiff","alwaysAllowSave","anyInvalid","fieldDescriptor","fieldValue","get","fieldState","invalid","hideDisabled","values","some","innerProps","readOnly","newVal","isValid","save","outputObject","alwaysInclude","includeAll","onSave","saveMessageId","JsonViewer","ReactJson","src","obj","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","InstanceSettings","constructor","super","this","editInstance","bind","state","errors","moving","addError","error","setState","Array","from","push","instance","autoUpdateCron","autoUpdateInterval","alert","instanceId","context","newPath","path","online","response","InstanceClient","code","StatusCode","OK","response2","reloadInstance","response3","Promise","resolve","setTimeout","getInstance","payload","moveJob","response4","JobsController","registerJob","render","checkIMFlag","flag","hasInstanceManagerRight","resolvePermissionSet","user","InstanceManagerRights","Rename","Relocate","chatBotLimit","SetChatBotLimit","SetAutoUpdate","configurationType","ConfigurationType","SetConfiguration","err","index","ErrorAlert","onClose","prev","newarr","Loading","text","contextType","InstanceEditContext","withRouter","_excluded","InputGroupAppend","InputGroupPrepend","InputGroupText","Component","_ref","bsPrefix","size","hasValidation","_ref$as","displayName","Radio","Checkbox"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/2161.7ba9f78deda474a39a37.bundle.js b/webpanel/6.6.0/2161.7ba9f78deda474a39a37.bundle.js new file mode 100644 index 00000000..84383d4c --- /dev/null +++ b/webpanel/6.6.0/2161.7ba9f78deda474a39a37.bundle.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[2161],{2161:function(e){e.exports=JSON.parse('{"routes.home":"Home","routes.user_manager":"User Manager","routes.login":"Log In","routes.admin":"Administration","routes.admin.update":"TGS Update","routes.admin.logs":"TGS Logs","routes.config":"Webpanel Config","routes.passwd":"Change Password","routes.usermanager":"Users","routes.useredit":"User Editor","routes.usercreate":"Create User","routes.instancelist":"Instances","routes.instancecreate":"Add New Instance","routes.instanceedit":"Edit Instance","routes.instancejobs":"Jobs","routes.setup":"PostInstall Setup","routes.info":"Info","login.header":"Login to Continue","login.type.generic":"Password Login","login.type.oauth":"OAuth Login","login.oauth":"Sign in with {provider}","login.gateway.recommended":"HIGHLY Recommended","login.gateway.run":"Authorize webpanel to access GitHub","login.submit":"Login","login.password":"Password","login.password.repeat":"Confirm Password","login.password.repeat.match":"Passwords do not match!","login.password.repeat.short":"Password is too short! It must have a length of atleast ","login.title":"Login","login.username":"Username","navbar.home":"Home","navbar.purgecache":"Purge Client Cache","navbar.refresh":"Refresh","navbar.logout":"Logout","navbar.update":"Server Update Available","app.job.started":"Started: ","app.job.startedby":"Started By: ","app.job.completed":"Finished: ","app.job.cancelled":"Cancelled: ","app.job.cancelledby":"Cancelled By: ","error.http.access_denied.desc":"Access to this resource is denied","error.unhandled_response.desc":"The application received an unexpected response","error.unhandled_global_response.desc":"The application received an unexpected global response","error.login.no_creds.desc":"Attempted to login without any credentials","error.login.bad_oauth":"An error occurred while logging in using OAuth","error.login.bad_user_pass.desc":"Invalid credentials!","error.login.user_disabled.desc":"This user account is disabled","error.user.no_sys_ident.desc":"This system user was not found","error.user.not_found.desc":"This TGS user was not found","error.http.bad_request":"Bad Request","error.http.data_integrity":"A data integrity check failed while performing the operation","error.http.api_mismatch":"API version mismatch","error.http.server_error":"BUG: Server error","error.http.unimplemented":"This feature is unimplemented.","error.http.server_not_ready":"The server is still starting/stoping!","error.http.access_denied":"Access denied","error.http.not_acceptable":"BUG: The server has found the request to be unacceptable.","error.axios":"Axios error","error.unhandled_response":"The application received an unexpected response","error.unhandled_global_response":"The application received an unexpected global response","error.login.no_creds":"Attempted to login without any credentials","error.login.bad_user_pass":"Invalid credentials!","error.login.user_disabled":"This user account is disabled","error.login.rate_limit":"Failed to login using external provider due to rate limiting. Please try again later","error.user.no_sys_ident":"This system user was not found","error.user.not_found":"This TGS user was not found","error.group.not_found":"The requested group cannot be found.","error.group.not_empty":"The requested group cannot be deleted as it contains users.","error.admin.rate":"The server has exceeded github\'s rate limiting. Please try again later.","error.admin.error":"The server has ran into an error while using github\'s API.","error.admin.watchdog.avail":"This operation is unavailable due to the launch configuration of TGS.","error.admin.update.notfound":"This TGS version does not seem to exist.","error.admin.logs.io":"An IO error occured while processing logs","error.somethingwentwrong":"Uh oh.... Something went wrong!","error.notfound":"This page has not been found!","error.github":"An error occured while interacting with the Github API","error.app":"An error occured in the application","error.app.undefined":"A \\"Ghost\\" error occured in the application","error.app.default_creds":"You are using the default TGS credentials. Please click \'Change Password\' at earliest convenience!","error.job.not_found":"The specified job could not be found","error.job.complete":"Unable to delete the job, perhaps it already completed","error.transfer.not_available":"Unable to transfer file as it is no longer or never was valid","error.transfer.upload_failed":"An error occured while uploading a file","error.no_db_entity":"The database entity for the requested instance could not be retrieved. The instance was likely detached","error.api.empty":"No description available","error.no_apipath":"No API path set, set an API path on the configuration page.","error.compile_job_not_found":"Compile job not found.","error.bad_tgs_yml_version":"Incorrect .tgs.yml version. Only version 1 is supported.","error.bad_yml":"Malformed .yml.","error.bad_channels_json":"Malformed channels JSON.","error.no_engine_version":"The target engine version does not exist on the server.","error.bad_hub_connection":"Lost connection to the SignalR hub.","generic.save":"Save","generic.savetab":"Save Tab","generic.saveall":"Save All","generic.details":"Details","generic.downloading":"Downloading \\"{file}\\"...","generic.downloaded":"Downloaded \\"{file}\\"","generic.errordetails":"Error Details ({info})","generic.debugwarn":"Be careful to censor out any credentials or tokens when copying errors!","generic.close":"Close","generic.clone":"Clone","generic.goback":"Go Back","generic.accessdenied":"This user does not have access to this page.","generic.persist":"Persist","generic.continue":"Continue","generic.view":"View","generic.download":"Download","generic.name":"Name","generic.datetime":"Date/Time","generic.entry":"Entry","generic.action":"Action","generic.createdby":"Created By","generic.created":"Created","generic.disabled":"Disabled","generic.enabled":"Enabled","generic.grouped":"Grouped","generic.tgs":"TGS","generic.group":"Group","generic.groupid":"Group ID {id}","generic.info":"Info","generic.system.short":"SYSTEM","generic.edit":"Edit","generic.access":"Access","generic.systemidentifier":"System Identifier","generic.appname":"tgstation-server","generic.userid":"User ID ","generic.numusers":"{count} Users","generic.setall":"Set all","generic.true":"True","generic.false":"False","generic.reset":"Reset","generic.disable":"Disable","generic.enable":"Enable","generic.configmode":"Configuration Mode","generic.online":"Online","generic.offline":"Offline","generic.path":"Path","generic.select":"Select","generic.instance":"Instance","generic.goto.title":"Go to page","generic.goto":"Goto","generic.wip":"Work In Progress!","generic.readonly":"(Read-Only)","generic.invalid_form":"This form contains invalid values!","generic.no_perm":"You do not have the permission to do this","generic.wip.desc":"The TGS webpanel is still a work in progress. The feature you are trying to use is not yet available. Until it becomes available, please use the TGS desktop client at ","generic.assert.noinstance":"No instance. Perhaps an error occured.","generic.assert.nouser":"No user. Perhaps an error occured.","generic.assert.nopermissionset":"No permission set. Perhaps an error occured.","generic.latest":"Latest","generic.testmerged":"Testmerged","generic.commit":"Commit","generic.areyousure":"Are you sure?","generic.cancel":"Cancel","generic.not_applicable":"N/A","view.setup.navigationblock":"Navigation has been disabled for the duration of the setup.","view.setup.title":"Step By Step Setup Wizard","view.setup.quit":"Quit Setup","view.setup.quitconfirm":"Are you sure you want to exit the setup? You will not be able to return.","view.setup.disableadmin":"Disable default Admin account","view.setup.nextpage":"Next Page","view.setup.step.1":"Step 1. Create yourself a user account","view.setup.step.2":"Step 2. Login using your new user account","view.setup.step.3":"Step 3. Disable the default Admin account","view.setup.step.4":"Step 4. Configure clientside settings (Optional)","view.setup.step.5":"Setup Complete!","view.admin.hostos":"Host Machine OS: ","view.admin.remote":"Remote repository: ","view.admin.version.current":"Current Version: ","view.admin.version.latest":"Latest Version: ","view.admin.reboot.button":"Restart TGS","view.admin.reboot.modal.title":"Confirmation","view.admin.reboot.modal.body":"Are you sure you wish to restart TGS?","view.admin.update.button":"Update TGS","view.admin.update.selectversion":"Select Version","view.admin.update.selectversion.deny":"You do not have permission to update to a GitHub version","view.admin.update.selectversion.cache":"Last checked @ {date} local time","view.admin.update.latest":" (Latest)","view.admin.update.current":" (Current)","view.admin.update.releasenotes":"Release Notes","view.admin.update.wait":"Please take the time to read the release notes before proceeding","view.admin.update.showall":"Show all versions","view.admin.update.hideall":"Show only recent versions","view.admin.update.cachekill":"Force refresh cache","view.admin.update.upload":"Upload Update Package","view.admin.update.upload.deny":"You do not have permission to update using uploaded packages","view.admin.update.major_warn.title":"WARNING: Attempting Major TGS Version Change","view.admin.update.major_warn.body":"You are attempting to switch the major version of TGS from {currentMajor} to {targetMajor}! READ THE RELEASE NOTES CAREFULLY! Most TGS major upgrades constitute a change in the required .NET runtime. If this runtime is not installed PRIOR to updating, TGS will FAIL to restart after upgrading until it is! There also may be REQUIRED configuration changes that, if not made, may also result in a failure to restart!","view.admin.logs.button":"TGS Logs","view.user.list.cantlist":"This user does not have the permission to list users, only the current user is listed/editable.","view.user.edit.cantedit":"This user does not have the permission to edit users.","view.user.edit.oauth.connections":"OAuth Connections","view.user.edit.oauth.current":"OAuth 2.0 Connections","view.user.edit.oauth.add":"Add Connection","view.user.edit.oauth.id":"Service User ID:","view.user.edit.oauth.provider":"Provider","view.user.edit.oauth.provider.discord":"Discord","view.user.edit.oauth.provider.github":"GitHub","view.user.edit.oauth.provider.tgforums":"/tg/ Forums","view.user.edit.oauth.provider.keycloak":"Keycloak","view.user.edit.oauth.provider.invisioncommunity":"Invision Community","view.user.passwd.title":"Editing password for ","view.user.create.tgs":"Create user with TGS identifier","view.user.create.sys":"Create user with system identifier","view.utils.deployment_viewer.dmapi_outdated":"Your codebase\'s DMAPI interop version ({codebase}) is not present or less than tgstation-server\'s version ({tgs}). Please update your codebase with the latest TGS DMAPI library for full functionality. Click here to go to the latest TGS DMAPI release.","view.utils.deployment_viewer.no_jobs":"No deployments have been created!","view.utils.deployment_viewer.test_merges_hint.show":"Show Test Merges","view.utils.deployment_viewer.test_merges_hint.hide":"Hide Test Merges","view.utils.deployment_viewer.table.id":"Id","view.utils.deployment_viewer.table.byond":"Engine Version","view.utils.deployment_viewer.table.started_at":"Started At","view.utils.deployment_viewer.table.completed_at":"Completed At","view.utils.deployment_viewer.table.started_by":"Started By","view.utils.deployment_viewer.table.project":"Project Name","view.utils.deployment_viewer.table.pr.number":"Test Merge #","view.utils.deployment_viewer.table.pr.title":"Title","view.utils.deployment_viewer.table.pr.merged_by":"Merged By","view.utils.deployment_viewer.table.pr.merged_at":"Merged At","view.utils.deployment_viewer.table.pr.comment":"Comment","view.utils.deployment_viewer.table.revision":"SHA","view.utils.deployment_viewer.table.origin":"Origin SHA","view.utils.deployment_viewer.table.security":"Minimum Security","view.utils.deployment_viewer.table.dmapi":"DMAPI Interop Version","view.instance.no_metadata":"You do not have the permission to read all settings, only editable fields will be shown. Said fields will only contain default values.","view.instance.no_compile_jobs":"You do not have the permission to view deployment information!","view.instanceedit.title":"Editing Instance {instancename} ({instanceid})","view.instanceedit.tabs.info":"Information","view.instanceedit.tabs.repository":"Repository","view.instanceedit.tabs.deployment":"Deployment","view.instanceedit.tabs.dreamdaemon":"Server","view.instanceedit.tabs.engine":"Engine","view.instanceedit.tabs.chatbots":"Chat Bots","view.instanceedit.tabs.files":"Files & Scripts","view.instanceedit.tabs.users":"Permissions","view.instanceedit.tabs.jobs":"Jobs History","view.instanceedit.tabs.config":"Config","view.instance.create.loading":"Creating Instance...","view.instance.create.title":"New Instance","view.instance.create.name":"Instance Name","view.instance.create.manual":"Manual Setup","view.instance.create.quick":"Quick Setup","view.instance.create.quick.active":"Performing Instance Quick Setup","view.instance.create.quick.stage.yml":"Downloading .tgs.yml...","view.instance.create.quick.stage.download_scripts":"Downloading script \\"{script}\\"...","view.instance.create.quick.stage.create_instance":"Creating instance...","view.instance.create.quick.stage.cloning":"Starting repository clone...","view.instance.create.quick.stage.byond":"Starting {version} BYOND install...","view.instance.create.quick.stage.settings":"Updating compiler/server settings...","view.instance.create.quick.stage.upload_scripts":"Uploading EventScript \\"{script}\\"...","view.instance.create.quick.stage.static":"Creating GameStaticFiles directory \\"{dir}\\"...","view.instance.create.quick.stage.static.transfer":"Transferring \\"{path}\\" from GitHub to GameStaticFiles/{targetPath}...","view.instance.create.quick.submit":"Start Quick Setup","view.instance.create.quick.notice":"Quick setup requires the following:{br}\\t- A GitHub hosted repository.{br}\\t- A codebase containing a .tgs.yml file in its root.{br}\\t- A GitHub personal access token with read access to the repository set in the webpanel settings.","view.instance.create.quick.warning":"Quick setup may install executable scripts or set the BYOND security level to a less secure value. Ensure you trust the codebase you are targeting.","view.instance.create.repo_owner":"GitHub Repository Owner","view.instance.create.repo_name":"GitHub Repository Name","view.instance.create.repo_branch":"GitHub Repository Reference (branch/tag, Optional)","view.instance.create.access_user":"GitHub Token Username (Optional)","view.instance.create.access_token":"GitHub Token (Optional)","view.instance.create.path":"Instance Path on Server","view.instance.create.path.prefix":"Prefix:","view.instance.create.submit":"Create Instance","view.instance.list.grant":"Grant yourself permission to access this instance","view.instance.list.grant.deny":"Requires the \\"Grant All Permissions\\" instance manager right","view.instance.list.title":"Instance List","view.instance.list.set.online":"Bring Online","view.instance.list.set.offline":"Take Offline","view.instance.configmode.0":"Disabled","view.instance.configmode.1":"Authorized users can read/write","view.instance.configmode.2":"Authorized users can read/write using their system user","view.instance.jobs.title":"Job list","view.instance.jobs.jobtotal":"{amount} jobs","view.instance.jobs.error":"An error occured","view.instance.jobs.clearfinished":"Clear finished jobs","view.instance.jobs.reconnect_in":"Attempting reconnect in {seconds}s...","view.instance.jobs.reconnect_now":"Attempting reconnection...","view.instance.jobs.reconnected_auth":"Reconnected, authenticating...","view.instance.moving":"[MOVING INSTANCE...]","view.instance.config.instancesettings":"Instance Settings","view.instance.config.instanceusers":"Instance Users","view.instance.config.chatbots":"Chat Bots","view.instance.engine":"Version Selector","view.instance.engine.add_byond":"Install new BYOND version","view.instance.engine.add_od":"Install new OpenDream version","view.instance.engine.upload":"Upload custom version","view.instance.engine.custom":"Uploaded from zip file","view.instance.engine.current_and_list_denied":"This user does not have the permission to access information about BYOND versions","view.instance.engine.list_denied":"This user does not have the permission to list all installed BYOND versions","view.instance.engine.current_denied":"This user does not have the permission to see the active BYOND version","view.instance.engine.current_version":"Active Version: {version}","view.instance.chat":"Chat Bots","view.instance.chat.create":"Add Bot","view.instance.chat.create.invalid.discord":"Invalid Discord channel ID!","view.instance.chat.create.invalid.irc":"Invalid IRC channel!","view.instance.chat.create.missing.address":"Missing IRC Server Address!","view.instance.chat.create.missing.channel":"Missing channel ID!","view.instance.chat.create.missing.name":"Missing Bot Name!","view.instance.chat.create.missing.nick":"Missing IRC Bot Nickname!","view.instance.chat.create.missing.token":"Missing Discord Bot Token!","view.instance.chat.create.channel":"Add Channel","view.instance.chat.delete":"Delete Bot","view.instance.chat.delete.deny":"You do not have permission to delete chat bots","view.instance.chat.delete.confirm":"Are you sure you want to delete chat bot \\"{botName}\\"?","view.instance.chat.delete.channel":"Delete Channel","view.instance.chat.delete.channel.confirm":"Are you sure you want to delete channel \\"{channelName}\\"?","view.instance.chat.limit":"Maximum of {max} chat bots reached!","view.instance.chat.limit.channels":"Maximum of {max} channels reached!","view.instance.chat.reload":"Load Connection String","view.instance.chat.reload.deny":"You do not have permission to view connection strings","view.instance.chat.select_item":"Select an Item on the Left","view.instance.chat.channels.export":"Export Channels to Clipboard","view.instance.chat.channels.import":"Import Channels from Clipboard","view.instance.chat.channels.deny":"You do not have permission to edit chat bot channels!","view.instance.files.create":"Create Item","view.instance.files.delete":"Delete File","view.instance.files.delete.confirm":"Are you sure you want to delete the file \\"{path}\\"","view.instance.files.delete.directory":"Delete Empty Directory","view.instance.files.delete.directory.populated":"Only empty directories may be deleted","view.instance.files.delete.directory.populated.unloaded":"Expand the directory to see if it contains files before deleting it","view.instance.files.delete.directory.confirm":"Are you sure you want to delete the empty directory \\"{directoryName}\\"?","view.instance.files.disallowed":"The instance settings prevent you from using the file browser","view.instance.files.disallowed.directory":"You do not have permission to view directory contents. The webpanel does not support file browsing without this permission.","view.instance.files.disallowed.directory.delete":"You do not have permission to delete directories","view.instance.files.disallowed.read_no_browse":"You do not have permission to browse nor download files.","view.instance.files.disallowed.read":"You do not have permission to download files.","view.instance.files.disallowed.write":"You do not have permission to create, modify, or delete files.","view.instance.files.download":"Download File","view.instance.files.download.directory":"Download Zip","view.instance.files.download.location":"Downloaded files will be saved in the OS\'s default download location","view.instance.files.file_browser":"File Browser","view.instance.files.load_more":"(Click to Load Directory)","view.instance.files.replace":"Overwrite with Uploaded File","view.instance.files.replace.stale":"Cannot replace file due to being unable to refresh its status!","view.instance.files.select_item":"Select an Item on the Left","view.instance.files.upload":"Upload and Overwrite File","view.instance.files.zip.confirm":"Are you sure you want to download the directory \\"{path}\\" as a zip? This can be a very intense operation for large folder structures and may not succeed.","view.instance.info":"Instance Metadata","view.instance.perms":"Instance Permissions","view.instance.perms.create":"Create Instance Permission Set","view.instance.perms.delete":"Delete Instance Permission Set","view.instance.perms.grant":"Grant Full Permissions","view.instance.perms.grant.desc":"You have access to grant yourself full permissions on this instance.","view.instance.perms.missing":"This permission set is not registered with the instance","view.instance.server.status":"Status: ","view.instance.server.status.client_count":"Clients","view.instance.server.status.client_count.pending":"Client count available in {healthCheckSecondsLeft}s...","view.instance.server.status.client_count.soon":"Refresh to see client count","view.instance.server.status.client_count.cant":"Update your DMAPI and enable health checks to get client count","view.instance.server.status.cpu":"CPU","view.instance.server.status.ram":"RAM","view.instance.server.status.Offline":"Offline","view.instance.server.status.Restoring":"Restoring","view.instance.server.status.Online":"Online","view.instance.server.status.DelayedRestart":"Delayed Restart","view.instance.server.status.undefined":"No permission","view.instance.server.status.uptime":"Last Restart: ","view.instance.server.settings":"Settings","view.instance.server.actions":"Actions","view.instance.server.start":"Start","view.instance.server.stop":"Stop","view.instance.server.restart":"Restart","view.instance.server.dump":"Dump Process","view.instance.server.deployment_info":"Deployment Information","view.instance.server.deployment_info.active":"Active Deployment","view.instance.server.deployment_info.staged":"Staged Deployment","view.instance.server.no_metadata_and_no_settings":"You do not have the permission to list or edit Dream Daemon settings for this instance.","view.instance.server.no_metadata_actions":"You do not have permission to fetch the status of the server, some actions may not work depending on the state of the server.","view.instance.server.no_metadata_graceful":"You do not have permission to fetch the current graceful action.","view.instance.server.no_graceful":"You do not have permission to get or set the current graceful action.","view.instance.server.no_actions":"You do not have permission to commit any actions.","view.instance.server.broadcast":"Broadcast","view.instance.server.prompt.restart":"Are you sure you wish to immediately restart the server?","view.instance.server.prompt.stop":"Are you sure you wish to immediately stop the server?","view.instance.graceful":"Graceful Action","view.instance.graceful.desc":"This action will be applied the next time the server restarts","view.instance.graceful.Restart":"Restart","view.instance.graceful.Stop":"Shutdown","view.instance.graceful.None":"None","view.instance.repo.creds":"Credentials","view.instance.repo.creds.desc":"Credentials used to perform operations on the remote repository","view.instance.repo.creds.modal.title":"Set Repository Credentials","view.instance.repo.canthookclone":"Unable to find clone job, refresh page when clone is complete. Please report this!","view.instance.repo.repoinfo":"Repository Information","view.instance.repo.reposettings":"Repository Settings","view.instance.repo.testmerges":"Test Merges","view.instance.repo.testmerges.badprovider":"Guided test merges are only supported on github","view.instance.repo.info.origin":"Origin URL","view.instance.repo.info.owner":"Repository Owner","view.instance.repo.info.name":"Repository Name","view.instance.repo.tm.by":"Testmerged by:","view.instance.repo.tm.comment":"Comment:","view.instance.repo.tm.commit":"Commit:","view.instance.repo.tm.modal.title":"Add or Update Testmerge","view.instance.repo.tm.modal.label":"Select Commit","view.instance.repo.tm.modal.comment":"Comment","view.instance.repo.tm.modal.tip":"Tip: When clicking the add or update button, hold shift to testmerge the latest commit bypassing this popup!","view.instance.repo.pending.title":"Pending Changes","view.instance.repo.pending.none":"No pending changes","view.instance.repo.pending.deploy":"Queue a deployment of repository code to the server","view.instance.repo.pending.reapply":"Retestmerge #{number} ({title}) at {commit}","view.instance.repo.pending.reset":"Reset repository to local tracked reference","view.instance.repo.pending.reset.nobranch":"Recheckout commit {commit}","view.instance.repo.pending.update":"Reset repository to remote tracked reference","view.instance.repo.pending.added":"Testmerge #{number} ({title}) at {commit}","view.instance.repo.pending.added.manual":"Manual testmerge of PR #{number}","view.instance.repo.pending.updated":"Update #{number} ({title}) to {commit}","view.instance.repo.pending.removed":"Removes #{number} ({title})","view.instance.repo.pending.renamed":"Change the comment on #{number}","view.instance.repo.update.remote":"Update to Remote","view.instance.repo.update.local":"Reset to Local Origin","view.instance.repo.update.local.tip":"Using this option may take you off the current repository reference. In order to update to latest, you will have to manually checkout said reference again.","view.instance.repo.update.none":"No Initial Change","view.instance.repo.reset":"Reset repository to origin","view.instance.repo.reset.desc":"This option will reset the repository to the tracked origin, updating the repository and clearing any test merged PRs","view.instance.repo.manual":"Manual Test Merge Entry","view.instance.repo.manual.desc":"Use this box to manually test merge a pull/merge request by entering its number and clicking \\"Add Test Merge\\"","view.instance.repo.addmanual":"Add Test Merge","view.instance.repo.testmergelabel":"Labelled","view.instance.repo.conflictlabel":"Merge Conflict","view.instance.repo.norepoinfo":"You lack the permission to display information about the repository","view.instance.repo.delete.title":"Delete Repository","view.instance.repo.delete.desc":"This will delete the local copy of the repository. Instance settings, code modifications, event scripts and static files will be preserved.","view.instance.repo.delete":"Delete Repo","view.instance.repo.reclone.title":"Reclone Repository","view.instance.repo.reclone.desc":"This will delete the local copy of the repository and clone it fresh from its current origin URL. An attempt to checkout the current reference and SHA will occur. Useful as a garbage collection or repair action. Repository credentials, instance settings, code modifications, event scripts and static files will be preserved.","view.instance.repo.reclone":"Reclone Repo","view.instance.repo.clone":"Clone Remote Repository","view.instance.repo.noautomerge":"Automatic test merge management is unavailable due to missing permissions","view.instance.repo.deployAfter":"Compile & Deploy after changes","view.instance.repo.deployAfter.desc":"Compile and deploy the repository to the server after completing the test merge","view.instance.deploy.title":"Deployment Settings","view.instance.deploy.deploy":"Compile & Deploy repository","view.info.client":"Client Info","view.info.server":"Server Info","view.info.swarm":"Swarm Info","view.info.controller":"[CONTROLLER]","view.info.version":"Version: ","view.info.httpapiversion":"HTTP API Version: ","view.info.dmapiversion":"DM API Version: ","view.info.minpassword":"Minimum Password Length: ","view.info.instancelimit":"Instance Limit: ","view.info.userlimit":"User Limit: ","view.info.grouplimit":"Group Limit: ","view.info.oauth":"OAuth Support: ","view.meme_0":"Toxic Gamers\' Sanctuary","view.meme_1":"The Great Spaceman","view.meme_2":"The Griefers\' Stronghold","view.meme_3":"The Gourmet Spaceport","view.meme_4":"The Galactic Sh*tshow","view.meme_5":"The Grand Syndicate","view.meme_6":"The Giant Spacepickle","view.meme_7":"The Goofy Spacemen","view.meme_8":"The Godly Station","view.meme_9":"The Grumpy Scientists","view.meme_10":"Terrible Griefer Society","view.meme_11":"Taco-Generating Spacecraft","view.meme_12":"Thirsty Gamers\' Saloon","view.meme_13":"Titanic Gaming Server","view.meme_14":"Tragic Space Odyssey","view.meme_15":"Tinfoil Hat Guild","view.meme_16":"Turbocharged Game Station","view.meme_17":"Time-Traveling Game Show","view.meme_18":"Totally Gnarly Setup","view.meme_19":"Terrifying Ghost Ship","view.meme_20":"Tasty Grilled Sandwich","view.meme_21":"Treasure-Gathering Spacefarers","view.meme_22":"Tornado-Generating Storm","view.meme_23":"Twisted Gaming Society","view.meme_24":"Tgstation Sucks","view.meme_25":"Terra-Gov Server","view.report":"Report Issue","perms.admin":"Administration Permissions","perms.admin.writeusers":"Edit Users","perms.admin.writeusers.desc":"Ability to edit users, if View Users is granted, all users can be edited, otherwise, only the current user can be edited","perms.admin.restarthost":"Restart TGS","perms.admin.restarthost.desc":"Ability to restart TGS","perms.admin.changeversion":"Update TGS","perms.admin.changeversion.desc":"Abilty to update TGS to a newer version","perms.admin.editownpassword":"Change Own Password","perms.admin.editownpassword.desc":"Ability to change their own password","perms.admin.readusers":"View Users","perms.admin.readusers.desc":"Ability to view all users","perms.admin.downloadlogs":"Access TGS logs","perms.admin.downloadlogs.desc":"Ability to view and download all TGS logs","perms.admin.editownoauthconnections":"Edit own external identity providers","perms.admin.editownoauthconnections.desc":"Ability to edit their own identity providers(oauth)","perms.admin.uploadversion":"Upload Version .zip","perms.admin.uploadversion.desc":"Ability to update the server with an uploaded .zip update package.","perms.instance":"Instance Manager Permissions","perms.instance.read":"Read Accessible Instances","perms.instance.read.desc":"Ability to list and view instances the user is allowed access to. WARNING: Users who know the instance ID can still use the API to edit it using other permissions even if they lack this one.","perms.instance.create":"Create Instances","perms.instance.create.warning":"The current user is not permitted to create instances","perms.instance.create.desc":"Ability to create new instances","perms.instance.rename":"Rename Instances","perms.instance.rename.desc":"Ability to rename instances","perms.instance.relocate":"Relocate Instances","perms.instance.relocate.desc":"Ablity to change the location of an instance on the file system","perms.instance.setonline":"Change Instance Online Status","perms.instance.setonline.desc":"Ability to set an instance as online or offline","perms.instance.delete":"Delete Instance","perms.instance.delete.desc":"Ablity to delete an instance","perms.instance.list":"Read All Instances","perms.instance.list.desc":"Ability to list and view all instances","perms.instance.setconfiguration":"Set Instance Configuration Mode","perms.instance.setconfiguration.desc":"Ability to set an instance\'s static file editing mode","perms.instance.setautoupdate":"Set Instance Autoupdate Interval","perms.instance.setautoupdate.desc":"Ability to set an instance\'s interval for automatic code updates","perms.instance.setchatbotlimit":"Set Instance Chatbot Limit","perms.instance.setchatbotlimit.desc":"Ability to change an instance\'s maximum amounts of bots","perms.instance.grantpermissions":"Grant All Permissions","perms.instance.grantpermissions.desc":"Ability to grant themselves all permissions on any instance","perms.instancepermissionset":"Instance Admin","perms.instancepermissionset.cantedit":"You require the \\"Write\\" instance permission set flag to change these values","perms.instancepermissionset.create":"Create new Instance Permission Sets","perms.instancepermissionset.create.desc":"Allows you to grant access to this instance to other TGS users/groups.","perms.instancepermissionset.read":"Read Instance Permission Sets","perms.instancepermissionset.read.desc":"Allows you to read the permissions in this instance of other TGS users/groups already registered.","perms.instancepermissionset.write":"Write Instance Permission Sets","perms.instancepermissionset.write.desc":"Allows you to change or delete the permissions in this instance of both you and other TGS users/groups already registered.","perms.repository":"Repository","perms.repository.cancelpendingchanges":"Cancel Pending Changes","perms.repository.cancelpendingchanges.desc":"Allows cancelling active repository jobs (Except clone jobs).","perms.repository.setorigin":"Clone Repository","perms.repository.setorigin.desc":"Allows cloning the repository from a remote if it doesn\'t exist.","perms.repository.setsha":"Checkout SHA","perms.repository.setsha.desc":"Allows checking out a specific commit by it\'s SHA.","perms.repository.mergepullrequest":"Create Test Merge","perms.repository.mergepullrequest.desc":"Allows test merging a commit request from the remote.","perms.repository.updatebranch":"Update Branch","perms.repository.updatebranch.desc":"Allows hard reset and merge updates to the repository\'s current branch.","perms.repository.changecommitter":"Change Committer","perms.repository.changecommitter.desc":"Allows changing the username git commits are written as.","perms.repository.changetestmergecommits":"Change Remote Test Merge Settings","perms.repository.changetestmergecommits.desc":"Allows enabling/disabling the settings for pushing test merge commits to the remote in a temporary branch, posting comments when test merges occur, and creating GitHub deployments.","perms.repository.changecredentials":"Change Credentials","perms.repository.changecredentials.desc":"Allows changing the credentials used to access the repository.","perms.repository.setreference":"Checkout Branch/Tag","perms.repository.setreference.desc":"Allows checking out a specific branch/tag by it\'s name.","perms.repository.read":"Read Status Information","perms.repository.read.desc":"Allows reading repository status information (HEAD/Committer/Active Test Merges/etc...).","perms.repository.changeautoupdatesettings":"Change Auto Update Test Merge Settings","perms.repository.changeautoupdatesettings.desc":"Allows changing the setting to preserve test merges while updating a branch or synchronize with the remote.","perms.repository.delete":"Delete Repository","perms.repository.delete.desc":"Allows deleting the cloned repository from disk in order to clone another one.","perms.repository.cancelclone":"Cancel Clone","perms.repository.cancelclone.desc":"Allows cancelling active repository clone jobs.","perms.repository.changesubmoduleupdate":"Change Submodule Update","perms.repository.changesubmoduleupdate.desc":"Allows changing the setting to update submodules with branches.","perms.repository.reclone":"Reclone Repository","perms.repository.reclone.desc":"Allows deletion and subsequent recloning of repository.","perms.engine":"Engine","perms.engine.readactive":"Read Active Version","perms.engine.readactive.desc":"Allows reading the active engine version.","perms.engine.listinstalled":"List Installed Versions","perms.engine.listinstalled.desc":"Allows reading all installed engine versions.","perms.engine.installofficialorchangeactivebyondversion":"Activate/Install BYOND Version","perms.engine.installofficialorchangeactivebyondversion.desc":"Allows installation and activation of BYOND versions downloaded from the official website. Pre-installed custom versions may also be activated","perms.engine.installofficialorchangeactiveopendreamversion":"Activate/Install OpenDream Version","perms.engine.installofficialorchangeactiveopendreamversion.desc":"Allows installation and activation of OpenDream versions downloaded from the configured git. Pre-installed custom versions may also be activated","perms.engine.cancelinstall":"Cancel Install Job","perms.engine.cancelinstall.desc":"Allows cancelling install jobs.","perms.engine.installcustombyondversion":"Install Custom BYOND Version","perms.engine.installcustombyondversion.desc":"Allows installing a BYOND version uploaded from a zip file.","perms.engine.installcustomopendreamversion":"Install Custom OpenDream Version","perms.engine.installcustomopendreamversion.desc":"Allows installing an OpenDream version uploaded from a zip file.","perms.engine.deleteinstall":"Delete Engine Version","perms.dreammaker":"Deployment","perms.dreammaker.read":"Read Deployment Settings","perms.dreammaker.read.desc":"Allows reading information about the deployment settings.","perms.dreammaker.compile":"Create Deployment","perms.dreammaker.compile.desc":"Allows starting new deployment jobs.","perms.dreammaker.cancelcompile":"Cancel Deployment","perms.dreammaker.cancelcompile.desc":"Allows cancelling deployment jobs.","perms.dreammaker.setdme":"Set .dme Path","perms.dreammaker.setdme.desc":"Allows overriding TGS\' automatic .dme detection in favor of using a different .dme.","perms.dreammaker.setapivalidationport":"Set Validation Port","perms.dreammaker.setapivalidationport.desc":"Allows changing the port used by the game server to check for the presence of the DMAPI while deploying.","perms.dreammaker.compilejobs":"Read Compile Jobs","perms.dreammaker.compilejobs.desc":"Allows reading information about the current and past deployments.","perms.dreammaker.setsecuritylevel":"Set Validation Security Level","perms.dreammaker.setsecuritylevel.desc":"Allows changing the BYOND security level used to validate the DMAPI.","perms.dreammaker.setapivalidationrequirement":"Set Validation Requirement","perms.dreammaker.setapivalidationrequirement.desc":"Allows setting whether or not the DMAPI is required for successful deployments.","perms.dreammaker.settimeout":"Set Deployment Timeout","perms.dreammaker.settimeout.desc":"Allows setting the amount of time allowed to pass before a deployment job is automatically cancelled.","perms.dreammaker.setcompilerarguments":"Set Additional Compiler Arguments","perms.dreammaker.setcompilerarguments.desc":"Allows setting additional compiler arguments to be passed on the command line.","perms.dreamdaemon":"Server","perms.dreamdaemon.readrevision":"View Current Compile Jobs","perms.dreamdaemon.readrevision.desc":"Allows reading information about the latest and staged compile jobs.","perms.dreamdaemon.setlogoutput":"Set Game Server Output Logging","perms.dreamdaemon.setlogoutput.desc":"Allows setting whether or not the game server will log it\'s output to the Diagnostics folder.","perms.dreamdaemon.setautostart":"Set Autostart","perms.dreamdaemon.setautostart.desc":"Allows setting whether or not the game server will start automatically when the instance comes online.","perms.dreamdaemon.setport":"Set Game Port","perms.dreamdaemon.setport.desc":"Allows setting the port the game server listens on.","perms.dreamdaemon.setsecurity":"Set Security Level","perms.dreamdaemon.setsecurity.desc":"Allows setting the BYOND security level to run the game at (Note: a higher DMAPI setting stored in a compile job can override this).","perms.dreamdaemon.readmetadata":"Read Settings","perms.dreamdaemon.readmetadata.desc":"Allows reading the current game server settings.","perms.dreamdaemon.setwebclient":"Set Webclient","perms.dreamdaemon.setwebclient.desc":"Allows enabling/disabling use of the BYOND webclient.","perms.dreamdaemon.softrestart":"Graceful Restart","perms.dreamdaemon.softrestart.desc":"Allows requesting the server is gracefully restarted (Process restart on world.Reboot()).","perms.dreamdaemon.softshutdown":"Graceful Shutdown","perms.dreamdaemon.softshutdown.desc":"Allows requesting the server is gracefully shutdown (Process terminiation on world.Reboot()).","perms.dreamdaemon.restart":"Hard Restart","perms.dreamdaemon.restart.desc":"Allows immediately restarting the game server process.","perms.dreamdaemon.shutdown":"Hard Shutdown","perms.dreamdaemon.shutdown.desc":"Allows immediately terminating the game server process.","perms.dreamdaemon.start":"Server Launch","perms.dreamdaemon.start.desc":"Allows launching the game server from a shutdown state.","perms.dreamdaemon.setstartuptimeout":"Set Startup Timeout","perms.dreamdaemon.setstartuptimeout.desc":"Allows changing the idle/DMAPI detection timeout for starting new servers before it\'s considered a failure. This also applies to game server instances used during deployments.","perms.dreamdaemon.sethealthcheckinterval":"Set Health Check Interval","perms.dreamdaemon.sethealthcheckinterval.desc":"Allows changing the interval at which health check Topics are sent.","perms.dreamdaemon.createdump":"Create Process Dump","perms.dreamdaemon.createdump.desc":"Allows creating dump files of the game server process while it is running.","perms.dreamdaemon.settopictimeout":"Set Topic Timeout","perms.dreamdaemon.settopictimeout.desc":"Allows setting the timeout interval for sending Topics to the server before being considered a failure.","perms.dreamdaemon.setadditionalparameters":"Set Additional Parameters","perms.dreamdaemon.setadditionalparameters.desc":"Allows adding additional game server launch parameters (Not command line arguments).","perms.dreamdaemon.setvisibility":"Set Visibility","perms.dreamdaemon.setvisibility.desc":"Allows changing the game server visibility setting.","perms.dreamdaemon.setprofiler":"Set Profiler","perms.dreamdaemon.setprofiler.desc":"Allows setting the `-profile` command line option.","perms.dreamdaemon.setmapthreads":"Set Map Threads","perms.dreamdaemon.setmapthreads.desc":"Allows setting the `-map-threads` command line option.","perms.dreamdaemon.broadcastmessage":"Send Broadcast Messages","perms.dreamdaemon.broadcastmessage.desc":"Allows sending arbitrary messages from TGS clients to the running game server for broadcasting to players.","perms.dreamdaemon.setminidumps":"Change Core Dump Type","perms.dreamdaemon.setminidumps.desc":"Allows switching between creating minidumps and full core dumps.","perms.chatbots":"Chat Bots","perms.chatbots.writeenabled":"Set Enabled","perms.chatbots.writeenabled.desc":"Allows activation and deactivation of chat bots.","perms.chatbots.writeprovider":"Set Provider","perms.chatbots.writeprovider.desc":"Allows changing the chat provider of chat bots.","perms.chatbots.writechannels":"Set Channels","perms.chatbots.writechannels.desc":"Allows changing the channels chat bots are connected to.","perms.chatbots.writeconnectionstring":"Set Connection String","perms.chatbots.writeconnectionstring.desc":"Allows adjusting the TGS connection string of chat bots.","perms.chatbots.readconnectionstring":"Read Connection String","perms.chatbots.readconnectionstring.desc":"Allows reading the TGS connection string of chat bots. May contain sensitive data","perms.chatbots.read":"Read","perms.chatbots.read.desc":"Allows reading all chat bot information aside from their connection strings.","perms.chatbots.create":"Create","perms.chatbots.create.desc":"Allows the creation of bew chat bots.","perms.chatbots.delete":"Delete","perms.chatbots.delete.desc":"Allows the deletion of chat bots.","perms.chatbots.writename":"Set Name","perms.chatbots.writename.desc":"Allows changing the name of chat bots.","perms.chatbots.writereconnectioninterval":"Set Reconnection Interval","perms.chatbots.writereconnectioninterval.desc":"Allows changing the interval at which chat bots that have lost connection to their providers will attempt to reconnect.","perms.chatbots.writechannellimit":"Set Channel Limit","perms.chatbots.writechannellimit.desc":"Allows changing the channel limit of chat bots.","perms.configuration":"Files & Scripts","perms.configuration.read":"Read Files","perms.configuration.read.desc":"Allows downloading configuration files where permitted.","perms.configuration.write":"Modify Files","perms.configuration.write.desc":"Allows uploading, overwriting, and deleting configuration files where permitted.","perms.configuration.list":"Traverse Directories","perms.configuration.list.desc":"Allows listing the contents of configuration directories where permitted.","perms.configuration.delete":"Delete Directories","perms.configuration.delete.desc":"Allows deleting empty configuration directories where permitted.","perms.group":"Group","perms.group.create":"Create Group","perms.group.warning":"This user is linked to the \\"{group}\\" group. Any change to the permissions will be applied to the group.","perms.group.delete.tooltip":"This group contains more than 0 users. Remove all users before deleting the group.","perms.group.rename.tooltip":"Rename","perms.group.none":"No group","perms.group.current":"Current Group: ","perms.group.cantlist":"You lack the permission to list all users. You need it to be able to list all groups","config.githubtoken":"Github token","config.githubtoken.desc":"You can supply a private authorization token for github to bypass some rate limiting on the github API.","config.apipath":"TGS API Path","config.apipath.desc":"Sets the API client server\'s path.","config.jobpollinactive":"Inactive job poll delay (s)","config.jobpollinactive.desc":"After how many seconds should we check for new jobs if we dont have any active jobs","config.jobpollactive":"Active job poll delay (s)","config.jobpollactive.desc":"After how many seconds should we check for new jobs if we know about a job","config.jobswidgetdisplay":"Jobs Widget Display","config.jobswidgetdisplay.desc":"Display mode for the instance jobs widget","config.jobswidgetdisplay.enum.always":"Always display","config.jobswidgetdisplay.enum.auto":"Display when there are jobs","config.jobswidgetdisplay.enum.never":"Never display","config.instanceprobetimer":"Instance permission poll delay","config.instanceprobetimer.desc":"After how many seconds should we update the list of instances","config.itemsperpage":"Items Per Page","config.itemsperpage.desc":"This allows you to configure the amount of items shown at once in lists. Note that not all lists support this option yet.","config.instanceeditsidebar":"Instance Edit Sidebar","config.instanceeditsidebar.desc":"This controls how the left sidebar menu acts in the instance edit page.","config.instanceeditsidebar.enum.auto":"Expand on hover","config.instanceeditsidebar.enum.collapse":"Always collapsed","config.instanceeditsidebar.enum.expand":"Always expanded","config.showjson":"Show JSON objects","config.showjson.desc":"Most pages will display the underlying json data if enabled.","config.manualpr":"Show manual PR entry on repository page","config.manualpr.desc":"Controls whether or not an input box is displayed to manually testmerge a pr based on its PR number. This option is ignored and the manual PR entry box is always displayed when using a repository hosted on GitLab.","config.manualreset":"Show force reset switch on repository page","config.manualreset.desc":"Controls whether or not an input box is displayed to force a repository reset. This option is ignored and the manual PR entry box is always displayed when using a repository hosted on GitLab.","config.restjobs2":"Force HTTP Polling for Job Updates","config.restjobs2.desc":"Workaround for if SignalR job updates are failing","config.mergeabilitypolltimer":"Mergeability Polling Timer","config.mergeabilitypolltimer.desc":"After how many milliseconds we try to poll the mergeability of a PR from github again","loading.loading":"Loading...","loading.login":"Logging in...","loading.page":"Loading page: ","loading.page.notfound":"Loading page: NotFound","loading.perms":"Updating permissions...","loading.app":"Loading app...","loading.routes":"Loading routes...","loading.admin":"Loading admin info...","loading.version":"Loading versions...","loading.updating":"Updating server...","loading.logs":"Loading Log(s)...","loading.info":"Loading Information...","loading.serverinfo":"Loading Server Information...","loading.passwd":"Changing password...","loading.userlist":"Loading user list...","loading.user.load":"Loading user information...","loading.user.save":"Saving user information...","loading.user.create":"Creating user...","loading.instance.list":"Loading instance list...","loading.instance.move":"Relocating instance...","loading.instance.files":"Performing file operation...","loading.instance.jobs.list":"Loading job list...","loading.instance":"Loading instance...","loading.instance.server":"Loading watchdog information...","loading.repo.cloning":"Cloning repository...","loading.repo.prs":"Loading PRs...","loading.repo.commits":"Loading Commits...","loading.repo.busy":"The repository is currently busy...","loading.deployments":"Loading DreamMaker Settings...","loading.compile_jobs":"Loading Compile Jobs...","loading.chat":"Loading Chat Bots...","loading.byond":"Loading BYOND Version Information...","loading.instance.perms":"Loading Instance Permissions...","fields.instance.name":"Instance Name","fields.instance.path":"Path on disk","fields.instance.chatbotlimit":"Max chatbots","fields.instance.filemode":"Static File Edit Mode","fields.instance.cron":"Auto-update cron schedule (6-part, UTC, 0 to disable)","fields.instance.autoupdate":"Auto-update Interval in minutes (0 to disable)","fields.instance.autoupdate.tip":"Interval begins when previous update completes or immediately upon setting.","fields.instance.chat.channel.admin":"Admin Channel","fields.instance.chat.channel.admin.tip":"This channel can be used to receive messages and issue TGS chat commands designated as admin only","fields.instance.chat.channel.discord":"Channel ID","fields.instance.chat.channel.discord.tip":"Right click a channel with developer mode enabled to see the option to copy its ID","fields.instance.chat.channel.irc":"IRC Channel","fields.instance.chat.channel.irc.tip":"Include the \'#\'","fields.instance.chat.channel.tag":"DMAPI Tag","fields.instance.chat.channel.tag.tip":"A string associated with this channel in the DMAPI","fields.instance.chat.channel.updates":"Deployments Channel","fields.instance.chat.channel.updates.tip":"This channel will receive TGS deployment messages","fields.instance.chat.channel.system":"System Channel","fields.instance.chat.channel.system.tip":"This channel will receive TGS system messages (Restarts and updates)","fields.instance.chat.channel.watchdog":"Watchdog Channel","fields.instance.chat.channel.watchdog.tip":"This channel will receive live updates as to the state of the active game server process","fields.instance.chat.create.channel":"Add Channel","fields.instance.chat.create.discord.token":"Bot Token","fields.instance.chat.create.discord.token.tip":"Bot access token retrieved from Discord developers portal","fields.instance.chat.create.discord.output":"Show Deployment Messages","fields.instance.chat.create.discord.output.tip":"When messages from deployment jobs will be shown in Watchdog-type channels","fields.instance.chat.create.discord.based.tip":"Know your meme","fields.instance.chat.create.discord.branding":"Deployment Embed Branding","fields.instance.chat.create.discord.branding.tip":"If the tgstation-server logo, name, and link to repo are shown at the top of deployment embeds","fields.instance.chat.create.irc.address":"Server Address","fields.instance.chat.create.irc.address.tip":"IP/Domain only","fields.instance.chat.create.irc.port":"Server Port","fields.instance.chat.create.irc.nick":"Bot Nickname","fields.instance.chat.create.irc.pass":"Server Password","fields.instance.chat.create.irc.pass.tip":"Setting a password on the server for your IRC bot is HIGHLY recommended","fields.instance.chat.create.irc.passtype":"Server Password Type","fields.instance.chat.create.irc.ssl":"Connect with SSL","fields.instance.chat.create.irc.ssl.tip":"Note: This is dependent on the IRC server\'s configuration","fields.instance.chat.create.save":"Create Chat Bot","fields.instance.chat.edit.connection":"Connection String","fields.instance.chat.edit.connection.tip":"Contains sensitive information. Consider remaking the bot instead of modifying this due to the internal formatting","fields.instance.chat.edit.connection.unloaded":"Not Loaded. Edit available","fields.instance.chat.edit.connection.deny":"Lacking read permission. Edit may still available","fields.instance.chat.enabled":"Enabled","fields.instance.chat.enabled.tip":"If the bot is to be online with the instance","fields.instance.chat.limit":"Channel Limit","fields.instance.chat.limit.tip":"Maximum number of channels this bot can interact with","fields.instance.chat.provider":"Chat Service Provider","fields.instance.chat.reconnect":"Reconnection Interval (Minutes)","fields.instance.chat.reconnect.tip":"The period at which the bot will attempt to reconnect to the chat service if unexpectedly disconnected","fields.instance.chat.name":"Chat Bot Name","fields.instance.chat.name.tip":"Internal name of the chat bot","fields.instance.filemode.Disallowed":"No File Management.","fields.instance.filemode.HostWrite":"Authorized users can edit any file.","fields.instance.filemode.SystemIdentityWrite":"Users using a system identity can edit files their user has access to.","fields.instance.files.create":"Create Directory or Upload File","fields.instance.files.create.directory":"Create directory instead of file","fields.instance.files.create.name":"File system entry name","fields.instance.files.create.name.tip":"The name of the file or directory being created (extension included for files)","fields.instance.perms.owner":"Editing Instance Permissions For","fields.instance.perms.owner.switch":"Switch","fields.instance.watchdog.autostart":"Start server with instance","fields.instance.watchdog.autostartprofiler":"Start BYOND profiler automatically","fields.instance.watchdog.allowwebclient":"Allow BYOND web client connections","fields.instance.watchdog.logoutput":"Log Game Server Output","fields.instance.watchdog.minidumps":"Use minidumps instead of full core dumps","fields.instance.watchdog.visibility":"BYOND hub visibility","fields.instance.watchdog.visibility.Public":"Public","fields.instance.watchdog.visibility.Private":"Private","fields.instance.watchdog.visibility.Invisible":"Invisible","fields.instance.watchdog.securitylevel":"BYOND security level","fields.instance.watchdog.securitylevel.Trusted":"Trusted","fields.instance.watchdog.securitylevel.Safe":"Safe","fields.instance.watchdog.securitylevel.Ultrasafe":"Ultra-Safe","fields.instance.watchdog.port":"Network port","fields.instance.watchdog.timeout.startup":"Startup timeout (seconds)","fields.instance.watchdog.timeout.topic":"Topic timeout (milliseconds)","fields.instance.watchdog.healthcheck":"Health Check Timeout (seconds)","fields.instance.watchdog.dumpOnHealthCheckRestart":"Create process dump on health check fail restart","fields.instance.watchdog.additionalparams":"Additional command line parameters","fields.instance.watchdog.mapthreads":"Map Threads Count (0 for default)","fields.instance.watchdog.broadcast":"Broadcast Message","fields.instance.watchdog.broadcast.desc":"A message to broadcast to players using the DMAPI. Requires the server be running with an interop version >=5.7.0","fields.instance.watchdog.od_topic_port":"OpenDream Topic Port","fields.instance.watchdog.od_topic_port.desc":"Port used to receive world Topic called when launching deployments with the OpenDream engine","fields.instance.repository.origincheckoutsha":"Origin SHA","fields.instance.repository.origincheckoutsha.desc":"SHA of the origin commit","fields.instance.repository.checkoutsha":"Checkout SHA","fields.instance.repository.checkoutsha.desc":"SHA of the commit to checkout","fields.instance.repository.reference":"Reference","fields.instance.repository.reference.desc":"Set this to the branch, commit or tag you wish to track","fields.instance.repository.committerName":"Committer Name","fields.instance.repository.committerEmail":"Committer Email","fields.instance.repository.creds.mode":"Credential Type","fields.instance.repository.creds.mode.desc":"The type of credential to use","fields.instance.repository.creds.mode.None":"Clear Credentials","fields.instance.repository.creds.mode.PrivateKey":"GitHub App (Recommended)","fields.instance.repository.creds.mode.PrivateKey.username":"GitHub App Name","fields.instance.repository.creds.mode.PrivateKey.username.desc":"The name of the GitHub App","fields.instance.repository.creds.mode.PrivateKey.id":"Client ID or App ID","fields.instance.repository.creds.mode.PrivateKey.id.desc":"GitHub recommends using the client ID","fields.instance.repository.creds.mode.PrivateKey.pk":"App Private Key","fields.instance.repository.creds.mode.PrivateKey.pk.desc":"The contents of a .pem file generated on the app control panel","fields.instance.repository.creds.mode.Token":"Access Token","fields.instance.repository.creds.mode.Token.username":"Username","fields.instance.repository.creds.mode.Token.username.desc":"Username of the account for the token","fields.instance.repository.creds.mode.Token.token":"Personal Access Token","fields.instance.repository.creds.mode.Token.token.desc":"Generated personal access token","fields.instance.repository.creds.mode.Password":"Username/Password (INSECURE)","fields.instance.repository.creds.mode.Password.username":"Username","fields.instance.repository.creds.mode.Password.username.desc":"Account username","fields.instance.repository.creds.mode.Password.password":"Password","fields.instance.repository.creds.mode.Password.password.desc":"Account password","fields.instance.repository.accessUser":"Access Username","fields.instance.repository.accessUser.desc":"These credentials will be used when cloning the repository or performing authenticated actions","fields.instance.repository.accessToken":"New Access Password","fields.instance.repository.accessToken.desc":"For github, this will be a PAT(Private Authentication Token), for other providers, this will be a password","fields.instance.repository.clearAccessToken":"Clear Access Credentials","fields.instance.repository.pushTestMergeCommits":"Push Test Merge Commits","fields.instance.repository.pushTestMergeCommits.desc":"This will push commits created by test merges to a temporary branch on the remote. Requires access credentials.","fields.instance.repository.createGitHubDeployments":"Create GitHub Deployments","fields.instance.repository.createGitHubDeployments.desc":"Requires access credentials","fields.instance.repository.showTestMergeCommitters":"Show test merge commiters in public metadata","fields.instance.repository.showTestMergeCommitters.desc":"Shows who test merged a PR. This only applies to future commits.","fields.instance.repository.autoUpdatesKeepTestMerges":"Preserve test merges when auto updating","fields.instance.repository.autoUpdatesKeepTestMerges.desc":"If enabled, auto updates may fail if a merge conflict occurs.","fields.instance.repository.autoUpdatesSynchronize":"Push new commits to origin during auto-update","fields.instance.repository.autoUpdatesSynchronize.desc":"Used for example, with changelog scripts depending on the setup","fields.instance.repository.postTestMergeComment":"Post comment when test merge is deployed","fields.instance.repository.postTestMergeComment.desc":"This will post a github comment each time a test merge is deployed or updated","fields.instance.repository.updateSubmodules":"Update submodules automatically","fields.instance.repository.updateSubmodules.desc":"Submodules will be updated automatically when resetting, checking out or adding a test merge. This is not recursive","fields.instance.repository.url":"Remote URL","fields.instance.repository.ref":"Remote reference (branch)","fields.instance.repository.gituser":"Git access username","fields.instance.repository.gitpassword":"Git access password","fields.instance.repository.enablesubmodules":"Enable submodules","fields.instance.deploy.projectname":"DME name (blank for auto)","fields.instance.deploy.projectname.desc":"This can also be a relative path and shouldn\'t include the file extension","fields.instance.deploy.compilerargs":"Additional Compiler Arguments","fields.instance.deploy.compilerargs.desc":"These are added to compiler command lines right before the path to the .dme","fields.instance.deploy.timeout":"Job timeout (in minutes)","fields.instance.deploy.timeout.desc":"Time before a compile job is abandonned and cancelled","fields.instance.deploy.apiport":"DMAPI port (0 for auto)","fields.instance.deploy.apiport.desc":"This port should not be public","fields.instance.deploy.seclevel":"DMAPI validation security level","fields.instance.deploy.seclevel.Trusted":"Trusted","fields.instance.deploy.seclevel.Safe":"Safe","fields.instance.deploy.seclevel.Ultrasafe":"Ultra-Safe","fields.instance.deploy.seclevel.desc":"This is only used for the DMAPI validation","fields.instance.deploy.validateapi":"DMAPI Validation Mode","fields.instance.deploy.validateapi.desc":" DMAPI validation check that the DMAPI initializes successfully without any runtimes.","fields.instance.deploy.validateapi.Optional":"Attempt but do not require validation","fields.instance.deploy.validateapi.Required":"Require validation to succeed for the deployment to succeed","fields.instance.deploy.validateapi.Skipped":"Skip validation disabling all DMAPI features","warning.screensize.header":"Screen size warning","warning.screensize":"The TGS webpanel does not guarentee support for viewports with a width of under 992px."}')}}]); \ No newline at end of file diff --git a/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js b/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js new file mode 100644 index 00000000..53bf5d52 --- /dev/null +++ b/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[2554],{2554:function(e,t,n){n.r(t),n.d(t,{default:function(){return c}});var a=n(6540),r=n(8065),s=n(875);class c extends a.Component{render(){return a.createElement("div",{className:"mx-auto",style:{maxWidth:"max-content"}},a.createElement("h3",{className:"text-center"},a.createElement(r.A,{id:"view.instance.jobs.title"})),a.createElement(s.A,{width:"unset",widget:!1}))}}}}]); +//# sourceMappingURL=2554.a486a1a9f29469250f36.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js.map b/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js.map new file mode 100644 index 00000000..e220b75b --- /dev/null +++ b/webpanel/6.6.0/2554.a486a1a9f29469250f36.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"2554.a486a1a9f29469250f36.bundle.js","mappings":"oOAQe,MAAMA,UAAaC,EAAAA,UACvBC,MAAAA,GACH,OACID,EAAAA,cAAA,OAAKE,UAAU,UAAUC,MAAO,CAAEC,SAAU,gBACxCJ,EAAAA,cAAA,MAAIE,UAAU,eACVF,EAAAA,cAACK,EAAAA,EAAgB,CAACC,GAAG,8BAEzBN,EAAAA,cAACO,EAAAA,EAAQ,CAACC,MAAO,QAASC,QAAQ,IAG9C,E","sources":["webpack://tgstation-server-control-panel/./src/components/views/Instance/Jobs.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport JobsList from \"../../utils/JobsList\";\n\ntype IProps = object;\ntype IState = object;\n\nexport default class Jobs extends React.Component {\n public render(): ReactNode {\n return (\n
    \n

    \n \n

    \n \n
    \n );\n }\n}\n"],"names":["Jobs","React","render","className","style","maxWidth","FormattedMessage","id","JobsList","width","widget"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js b/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js new file mode 100644 index 00000000..39a8b18b --- /dev/null +++ b/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[2852],{3140:function(e,t){var n="linux",l=[],r="f17c",c="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z";t.mw={prefix:"fab",iconName:n,icon:[448,512,l,r,c]},t.M_=t.mw},8595:function(e,t){var n="windows",l=[],r="f17a",c="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";t.mw={prefix:"fab",iconName:n,icon:[448,512,l,r,c]},t.tQ=t.mw},6795:function(e,t,n){n.d(t,{Q:function(){return i}});var l=n(6540),r=n(8785),c=n.n(r),a=n(8437);function m(e){return l.createElement(c(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function i(e){return a.Ay.showjson.value?l.createElement("div",{className:"text-left"},l.createElement(m,{obj:e.obj})):l.createElement(l.Fragment,null)}},2852:function(e,t,n){n.r(t);var l=n(3140),r=n(8595),c=n(6784),a=n(6540),m=n(8065),i=n(7864),s=n(7602),o=n(6795),E=n(7255);class u extends a.Component{render(){return a.createElement("div",{className:"text-center"},a.createElement(o.Q,{obj:this.context}),a.createElement("h3",null,a.createElement(m.A,{id:"view.info.client"})),a.createElement("div",{className:"text-secondary"},a.createElement("h4",null,a.createElement(m.A,{id:"view.info.version"}),`${s.xv} (${s.g})`)),a.createElement("hr",null),a.createElement("h3",null,a.createElement(m.A,{id:"view.info.server"})),this.context.serverInfo?a.createElement(a.Fragment,null,a.createElement("div",{className:"text-secondary"},a.createElement("table",{className:"mx-auto text-left"},a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.admin.hostos"}))),a.createElement("td",null,a.createElement("h4",null,a.createElement(c.g,{fixedWidth:!0,icon:this.context.serverInfo.windowsHost?r.tQ:l.M_})))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.version"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.version))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.httpapiversion"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.apiVersion))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.dmapiversion"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.dmApiVersion))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.minpassword"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.minimumPasswordLength))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.instancelimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.instanceLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.userlimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.userLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.grouplimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.userGroupLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.A,{id:"view.info.oauth"}))),a.createElement("td",null,a.createElement("h4",null,Object.keys(this.context.serverInfo.oAuthProviderInfos??{}).join(", "))))))),this.context.serverInfo.swarmServers?.length?a.createElement(a.Fragment,null,a.createElement("hr",null),a.createElement(m.A,{id:"view.info.swarm",tagName:"h3"}),this.context.serverInfo.swarmServers.map((e=>a.createElement("h4",{key:e.identifier,className:e.controller?"font-weight-bold text-secondary":"text-secondary"},e.identifier," (",e.address,")"," ",e.controller?a.createElement(m.A,{id:"view.info.controller"}):null)))):null):a.createElement(E.default,{text:"loading.info"}))}}u.contextType=i.U,t.default=u}}]); +//# sourceMappingURL=2852.048bd9aa8c22495bbe28.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js.map b/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js.map new file mode 100644 index 00000000..f7f2e702 --- /dev/null +++ b/webpanel/6.6.0/2852.048bd9aa8c22495bbe28.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"2852.048bd9aa8c22495bbe28.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faLinux.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faWindows.js","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/views/Info.tsx"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'linux';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f17c';\nvar svgPathData = 'M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faLinux = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'windows';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f17a';\nvar svgPathData = 'M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faWindows = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
    \n \n
    \n );\n}\n","import { faLinux } from \"@fortawesome/free-brands-svg-icons/faLinux\";\nimport { faWindows } from \"@fortawesome/free-brands-svg-icons/faWindows\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { GeneralContext, UnsafeGeneralContext } from \"../../contexts/GeneralContext\";\nimport { MODE, VERSION } from \"../../definitions/constants\";\nimport { DebugJsonViewer } from \"../utils/JsonViewer\";\nimport Loading from \"../utils/Loading\";\n\ntype IProps = object;\ntype IState = object;\n\nclass Info extends React.Component {\n public declare context: UnsafeGeneralContext;\n public render(): React.ReactNode {\n return (\n
    \n \n

    \n \n

    \n
    \n

    \n \n {`${VERSION} (${MODE})`}\n

    \n
    \n\n
    \n\n

    \n \n

    \n\n {!this.context.serverInfo ? (\n \n ) : (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.version}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.apiVersion}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.dmApiVersion}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.minimumPasswordLength}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.instanceLimit}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.userLimit}

    \n
    \n

    \n \n

    \n
    \n

    {this.context.serverInfo.userGroupLimit}

    \n
    \n

    \n \n

    \n
    \n

    \n {Object.keys(\n this.context.serverInfo.oAuthProviderInfos ?? {}\n ).join(\", \")}\n

    \n
    \n
    \n {this.context.serverInfo.swarmServers?.length ? (\n \n
    \n\n \n\n {this.context.serverInfo.swarmServers.map(server => {\n return (\n \n {server.identifier} ({server.address}){\" \"}\n {server.controller ? (\n \n ) : null}\n \n );\n })}\n
    \n ) : null}\n
    \n )}\n
    \n );\n }\n}\n\nInfo.contextType = GeneralContext;\nexport default Info;\n"],"names":["iconName","aliases","unicode","svgPathData","exports","prefix","icon","JsonViewer","props","React","ReactJson","src","obj","name","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","value","className","Info","render","this","context","FormattedMessage","id","VERSION","MODE","serverInfo","FontAwesomeIcon","fixedWidth","windowsHost","faWindows","faLinux","version","apiVersion","dmApiVersion","minimumPasswordLength","instanceLimit","userLimit","userGroupLimit","Object","keys","oAuthProviderInfos","join","swarmServers","length","tagName","map","server","key","identifier","controller","address","Loading","text","contextType","GeneralContext"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js b/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js new file mode 100644 index 00000000..fe2ebad3 --- /dev/null +++ b/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3318],{3318:function(t,e,n){n.r(e),n.d(e,{default:function(){return D}});var r=n(6540),s=n(8587),i=n(8168);var o=n(5540),a=r.createContext(null);function l(t,e){var n=Object.create(null);return t&&r.Children.map(t,(function(t){return t})).forEach((function(t){n[t.key]=function(t){return e&&(0,r.isValidElement)(t)?e(t):t}(t)})),n}function u(t,e,n){return null!=n[e]?n[e]:t.props[e]}function c(t,e,n){var s=l(t.children),i=function(t,e){function n(n){return n in e?e[n]:t[n]}t=t||{},e=e||{};var r,s=Object.create(null),i=[];for(var o in t)o in e?i.length&&(s[o]=i,i=[]):i.push(o);var a={};for(var l in e){if(s[l])for(r=0;r{t.addEventListener("transitionend",e,!1)}},this.props.children))}}},922:function(t,e,n){n.d(e,{A:function(){return s}});var r=n(4243);function s(t,e){t.classList?t.classList.add(e):(0,r.A)(t,e)||("string"==typeof t.className?t.className=t.className+" "+e:t.setAttribute("class",(t.className&&t.className.baseVal||"")+" "+e))}},4243:function(t,e,n){function r(t,e){return t.classList?!!e&&t.classList.contains(e):-1!==(" "+(t.className.baseVal||t.className)+" ").indexOf(" "+e+" ")}n.d(e,{A:function(){return r}})},8995:function(t,e,n){function r(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function s(t,e){t.classList?t.classList.remove(e):"string"==typeof t.className?t.className=r(t.className,e):t.setAttribute("class",r(t.className&&t.className.baseVal||"",e))}n.d(e,{A:function(){return s}})},5540:function(t,e,n){function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function s(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,r(t,e)}n.d(e,{A:function(){return s}})}}]); +//# sourceMappingURL=3318.8f7f4e465897a111f2d6.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js.map b/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js.map new file mode 100644 index 00000000..f6890aa7 --- /dev/null +++ b/webpanel/6.6.0/3318.8f7f4e465897a111f2d6.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3318.8f7f4e465897a111f2d6.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://tgstation-server-control-panel/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/config.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/Transition.js","webpack://tgstation-server-control-panel/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://tgstation-server-control-panel/./src/components/utils/CssTransitionGroup.tsx","webpack://tgstation-server-control-panel/./node_modules/dom-helpers/esm/addClass.js","webpack://tgstation-server-control-panel/./node_modules/dom-helpers/esm/hasClass.js","webpack://tgstation-server-control-panel/./node_modules/dom-helpers/esm/removeClass.js","webpack://tgstation-server-control-panel/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://tgstation-server-control-panel/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"],"sourcesContent":["import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default {\n disabled: false\n};","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import React from \"react\";\nimport { TransitionGroup } from \"react-transition-group\";\nimport CSSTransition from \"react-transition-group/CSSTransition\";\n\ninterface IProps {\n children: React.ReactNode;\n}\n\nexport default class CssTransitionGroup extends React.Component {\n public render(): React.ReactNode {\n return (\n \n {\n node.addEventListener(\"transitionend\", done, false);\n }}>\n {this.props.children}\n
    \n
    \n );\n }\n}\n","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}"],"names":["getChildMapping","children","mapFn","result","Object","create","Children","map","c","forEach","child","key","isValidElement","mapper","getProp","prop","props","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","length","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","in","cloneElement","bind","exit","enter","values","obj","k","TransitionGroup","_React$Component","context","_this","handleExited","call","this","self","ReferenceError","_assertThisInitialized","state","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","_ref","appear","node","currentChildMapping","render","_this$props","Component","component","childFactory","TransitionGroupContext","Provider","value","propTypes","defaultProps","forceReflow","scrollTop","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","prevState","updateStatus","componentDidUpdate","prevProps","nextStatus","cancelNextCallback","getTimeouts","timeout","undefined","mounting","nodeRef","current","performEnter","performExit","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","setTimeout","childProps","only","noop","contextType","removeClass","classes","split","CSSTransition","_len","arguments","args","Array","_key","apply","concat","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","type","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","className","_addClass","_this$appliedClasses$","base","done","CssTransitionGroup","React","addEventListener","element","classList","add","setAttribute","baseVal","hasClass","contains","indexOf","replaceClassName","origClass","classToRemove","replace","RegExp","remove","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","constructor"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js b/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js new file mode 100644 index 00000000..09bc2b12 --- /dev/null +++ b/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3490],{3490:function(e,r,t){var a=t(4354),n=t(4173),o=t(5301),s=t(3728),i=t(1972),c=t(8437);r.A=new class extends a.O{get cachedAdminInfo(){return this._cachedAdminInfo}constructor(){super(),this._cachedAdminInfo=void 0,this.loadingAdminInfo=!1,s.A.on("purgeCache",(()=>{this._cachedAdminInfo=void 0}))}async getAdminInfo(){if(await s.A.wait4Init(),this._cachedAdminInfo)return this._cachedAdminInfo;if(this.loadingAdminInfo)return await new Promise((e=>{const r=t=>{e(t),this.removeListener("loadAdminInfo",r)};this.on("loadAdminInfo",r)}));let e;this.loadingAdminInfo=!0;try{e=await s.A.apiClient.api.administrationControllerRead({fresh:!1})}catch(e){const r=new o.A({code:o.s.ERROR,error:e});return this.emit("loadAdminInfo",r),this.loadingAdminInfo=!1,r}switch(e.status){case 200:{const r=new o.A({code:o.s.OK,payload:e.data});return this._cachedAdminInfo=r,this.emit("loadAdminInfo",r),this.loadingAdminInfo=!1,r}case 424:{const r=e.data,t=new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_RATE,{errorMessage:r},e)});return this.emit("loadAdminInfo",t),this.loadingAdminInfo=!1,t}case 429:{const r=e.data,t=new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_ERROR,{errorMessage:r},e)});return this.emit("loadAdminInfo",t),this.loadingAdminInfo=!1,t}default:{const r=new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:e},e)});return this.emit("loadAdminInfo",r),this.loadingAdminInfo=!1,r}}}async restartServer(){let e;await s.A.wait4Init();try{e=await s.A.apiClient.api.administrationControllerDelete()}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(e.status){case 204:return new o.A({code:o.s.OK,payload:null});case 422:{const r=e.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_WATCHDOG_UNAVAIL,{errorMessage:r},e)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:e},e)})}}async updateServer(e){let r;await s.A.wait4Init();try{r=await s.A.apiClient.api.administrationControllerUpdate({newVersion:e})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(r.status){case 202:return new o.A({code:o.s.OK,payload:r.data});case 410:{const e=r.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_VERSION_NOT_FOUND,{errorMessage:e},r)})}case 422:{const e=r.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_WATCHDOG_UNAVAIL,{errorMessage:e},r)})}case 424:{const e=r.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_RATE,{errorMessage:e},r)})}case 429:{const e=r.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_ERROR,{errorMessage:e},r)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}}async uploadVersion(e,r){let t;await s.A.wait4Init();try{t=await s.A.apiClient.api.administrationControllerUpdate({newVersion:e,uploadZip:!0})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 202:{const e=t.data,a=await i.A.Upload(e.fileTicket,r);return a.code===o.s.OK?new o.A({code:o.s.OK,payload:e}):new o.A({code:o.s.ERROR,error:a.error})}case 410:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_VERSION_NOT_FOUND,{errorMessage:e},t)})}case 422:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_WATCHDOG_UNAVAIL,{errorMessage:e},t)})}case 424:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_RATE,{errorMessage:e},t)})}case 429:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_GITHUB_ERROR,{errorMessage:e},t)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async getLogs({page:e=1,pageSize:r=c.Ay.itemsperpage.value}){let t;await s.A.wait4Init();try{t=await s.A.apiClient.api.administrationControllerListLogs({pageSize:r,page:e})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:return new o.A({code:o.s.OK,payload:t.data});case 409:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_LOGS_IO_ERROR,{errorMessage:e},t)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async getLog(e,r){let t;await s.A.wait4Init();try{t=await s.A.apiClient.api.administrationControllerGetLog(e)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:{const e=t.data,a=await i.A.Download(e.fileTicket,r);if(a.code===o.s.OK){const r=Object.assign({content:await a.payload.text()},e);return new o.A({code:o.s.OK,payload:r})}return new o.A({code:o.s.ERROR,error:a.error})}case 409:{const e=t.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.ADMIN_LOGS_IO_ERROR,{errorMessage:e},t)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}}},1972:function(e,r,t){var a=t(4354),n=t(4173),o=t(5301),s=t(3728);r.A=new class extends a.O{async Download(e,r){let t;await s.A.wait4Init();try{t=await s.A.apiClient.api.transferControllerDownload({ticket:e},{headers:{Accept:"application/json, application/octet-stream"},format:"blob",onDownloadProgress:r})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:return new o.A({code:o.s.OK,payload:t.data});case 410:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.TRANSFER_NOT_AVAILABLE,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async Upload(e,r){let t;await s.A.wait4Init();try{t=await s.A.apiClient.api.transferControllerUpload({ticket:e},r,{headers:{"Content-Type":"application/octect-stream"}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 204:return new o.A({code:o.s.OK,payload:null});case 409:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UPLOAD_FAILED,{void:!0})});case 410:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.TRANSFER_NOT_AVAILABLE,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}}}}]); +//# sourceMappingURL=3490.90a42215688e83d4a3f2.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js.map b/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js.map new file mode 100644 index 00000000..c7b89ea0 --- /dev/null +++ b/webpanel/6.6.0/3490.90a42215688e83d4a3f2.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3490.90a42215688e83d4a3f2.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/AdminClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/TransferClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport type {\n AdministrationResponse,\n ErrorMessageResponse,\n LogFileResponse,\n PaginatedLogFileResponse,\n ServerUpdateResponse\n} from \"./generatedcode/generated\";\nimport { DownloadedLog } from \"./models/DownloadedLog\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport TransferClient, { DownloadErrors, ProgressEvent, UploadErrors } from \"./TransferClient\";\nimport configOptions from \"./util/config\";\n\ninterface IEvents {\n loadAdminInfo: (user: InternalStatus) => void;\n}\n\nexport type AdminInfoErrors =\n | GenericErrors\n | ErrorCode.ADMIN_GITHUB_RATE\n | ErrorCode.ADMIN_GITHUB_ERROR;\n\nexport type RestartErrors = GenericErrors | ErrorCode.ADMIN_WATCHDOG_UNAVAIL;\n\nexport type UpdateErrors =\n | GenericErrors\n | ErrorCode.ADMIN_WATCHDOG_UNAVAIL\n | ErrorCode.ADMIN_VERSION_NOT_FOUND\n | ErrorCode.ADMIN_GITHUB_RATE\n | ErrorCode.ADMIN_GITHUB_ERROR\n | UploadErrors;\n\nexport type LogsErrors = GenericErrors | ErrorCode.ADMIN_LOGS_IO_ERROR;\n\nexport type LogErrors = GenericErrors | ErrorCode.ADMIN_LOGS_IO_ERROR;\n\nexport default new (class AdminClient extends ApiClient {\n private _cachedAdminInfo?: InternalStatus;\n public get cachedAdminInfo() {\n return this._cachedAdminInfo;\n }\n private loadingAdminInfo = false;\n\n public constructor() {\n super();\n ServerClient.on(\"purgeCache\", () => {\n this._cachedAdminInfo = undefined;\n });\n }\n\n public async getAdminInfo(): Promise> {\n await ServerClient.wait4Init();\n if (this._cachedAdminInfo) {\n return this._cachedAdminInfo;\n }\n\n if (this.loadingAdminInfo) {\n return await new Promise(resolve => {\n const resolver = (\n user: InternalStatus\n ) => {\n resolve(user);\n this.removeListener(\"loadAdminInfo\", resolver);\n };\n this.on(\"loadAdminInfo\", resolver);\n });\n }\n\n this.loadingAdminInfo = true;\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerRead({\n fresh: false\n });\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n this.emit(\"loadAdminInfo\", res);\n this.loadingAdminInfo = false;\n return res;\n }\n\n switch (response.status) {\n case 200: {\n const thing = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as AdministrationResponse\n });\n\n this._cachedAdminInfo = thing;\n this.emit(\"loadAdminInfo\", thing);\n this.loadingAdminInfo = false;\n return thing;\n }\n case 424: {\n const errorMessage = response.data as ErrorMessageResponse;\n const thing = new InternalStatus<\n AdministrationResponse,\n ErrorCode.ADMIN_GITHUB_RATE\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_RATE,\n { errorMessage },\n response\n )\n });\n this.emit(\"loadAdminInfo\", thing);\n this.loadingAdminInfo = false;\n return thing;\n }\n case 429: {\n const errorMessage = response.data as ErrorMessageResponse;\n const thing = new InternalStatus<\n AdministrationResponse,\n ErrorCode.ADMIN_GITHUB_ERROR\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_ERROR,\n { errorMessage },\n response\n )\n });\n this.emit(\"loadAdminInfo\", thing);\n this.loadingAdminInfo = false;\n return thing;\n }\n default: {\n const res = new InternalStatus<\n AdministrationResponse,\n ErrorCode.UNHANDLED_RESPONSE\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n this.emit(\"loadAdminInfo\", res);\n this.loadingAdminInfo = false;\n return res;\n }\n }\n }\n\n public async restartServer(): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerDelete();\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 422: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_WATCHDOG_UNAVAIL,\n { errorMessage },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async updateServer(\n newVersion: string\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerUpdate({\n newVersion\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as ServerUpdateResponse\n });\n }\n case 410: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_VERSION_NOT_FOUND,\n { errorMessage },\n response\n )\n });\n }\n case 422: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_WATCHDOG_UNAVAIL,\n { errorMessage },\n response\n )\n });\n }\n case 424: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_RATE,\n { errorMessage },\n response\n )\n });\n }\n case 429: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_ERROR,\n { errorMessage },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async uploadVersion(\n newVersion: string,\n file: ArrayBuffer\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerUpdate({\n newVersion,\n uploadZip: true\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n const payload = response.data as ServerUpdateResponse;\n const upload = await TransferClient.Upload(payload.fileTicket, file);\n if (upload.code === StatusCode.OK) {\n return new InternalStatus({\n code: StatusCode.OK,\n payload\n });\n }\n\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: upload.error\n });\n }\n case 410: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_VERSION_NOT_FOUND,\n { errorMessage },\n response\n )\n });\n }\n case 422: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_WATCHDOG_UNAVAIL,\n { errorMessage },\n response\n )\n });\n }\n case 424: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_RATE,\n { errorMessage },\n response\n )\n });\n }\n case 429: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_GITHUB_ERROR,\n { errorMessage },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getLogs({\n page = 1,\n pageSize = configOptions.itemsperpage.value as number\n }): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerListLogs({\n pageSize: pageSize,\n page: page\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as PaginatedLogFileResponse\n });\n }\n case 409: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_LOGS_IO_ERROR,\n { errorMessage },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getLog(\n logName: string,\n progressHandler: (progressEvent: ProgressEvent) => void\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.administrationControllerGetLog(logName);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 200: {\n const logFileResponse = response.data as LogFileResponse;\n const contents = await TransferClient.Download(\n logFileResponse.fileTicket,\n progressHandler\n );\n if (contents.code === StatusCode.OK) {\n //Object.assign() is a funky function but all it does is copy everything from the second object to the first object\n const temp: DownloadedLog = Object.assign(\n {\n content: await contents.payload.text()\n },\n logFileResponse\n );\n return new InternalStatus({\n code: StatusCode.OK,\n payload: temp\n });\n } else {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: contents.error\n });\n }\n }\n case 409: {\n const errorMessage = response.data as ErrorMessageResponse;\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.ADMIN_LOGS_IO_ERROR,\n { errorMessage },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n","import { AxiosProgressEvent } from \"axios\";\n\nimport { ApiClient } from \"./_base\";\nimport type { ErrorMessageResponse } from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\n\nexport type DownloadErrors = GenericErrors | ErrorCode.TRANSFER_NOT_AVAILABLE;\nexport type UploadErrors =\n | GenericErrors\n | ErrorCode.TRANSFER_NOT_AVAILABLE\n | ErrorCode.UPLOAD_FAILED;\n\nexport type ProgressEvent = AxiosProgressEvent;\n\nexport default new (class TransferClient extends ApiClient {\n public async Download(\n ticket: string,\n progressHandler: (progressEvent: ProgressEvent) => void\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.transferControllerDownload(\n {\n ticket: ticket\n },\n {\n headers: {\n Accept: \"application/json, application/octet-stream\"\n },\n format: \"blob\",\n onDownloadProgress: progressHandler\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as Blob\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.TRANSFER_NOT_AVAILABLE, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async Upload(\n ticket: string,\n file: ArrayBuffer\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.transferControllerUpload(\n {\n ticket: ticket\n },\n file as unknown as File,\n {\n headers: {\n \"Content-Type\": \"application/octect-stream\"\n }\n }\n );\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: e as InternalError\n });\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 409: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.UPLOAD_FAILED, {\n void: true\n })\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.TRANSFER_NOT_AVAILABLE, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n"],"names":["ApiClient","cachedAdminInfo","this","_cachedAdminInfo","constructor","super","loadingAdminInfo","ServerClient","on","undefined","getAdminInfo","wait4Init","Promise","resolve","resolver","user","removeListener","response","apiClient","api","administrationControllerRead","fresh","stat","res","InternalStatus","code","StatusCode","ERROR","error","emit","status","thing","OK","payload","data","errorMessage","InternalError","ErrorCode","ADMIN_GITHUB_RATE","ADMIN_GITHUB_ERROR","UNHANDLED_RESPONSE","axiosResponse","restartServer","administrationControllerDelete","ADMIN_WATCHDOG_UNAVAIL","updateServer","newVersion","administrationControllerUpdate","ADMIN_VERSION_NOT_FOUND","uploadVersion","file","uploadZip","upload","TransferClient","Upload","fileTicket","getLogs","page","pageSize","configOptions","itemsperpage","value","administrationControllerListLogs","ADMIN_LOGS_IO_ERROR","getLog","logName","progressHandler","administrationControllerGetLog","logFileResponse","contents","Download","temp","Object","assign","content","text","ticket","transferControllerDownload","headers","Accept","format","onDownloadProgress","TRANSFER_NOT_AVAILABLE","transferControllerUpload","e","UPLOAD_FAILED","void"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js b/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js new file mode 100644 index 00000000..da35c00f --- /dev/null +++ b/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3536],{3536:function(e,t,a){a.r(t),a.d(t,{default:function(){return v}});var n=a(6784),l=a(6540),s=a(5615),r=a(1208),c=a(1364),i=a(5192),o=a(5038),u=a(3524),m=a(8065),d=a(8437),p=a(8325);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const a=e,s=l.createRef(),d=l.createRef(),p=this.state.values[a]??t,v=()=>{this.setState((e=>{const n=this.state.values[a]?{...this.state.values[a]}:{...t};return n.value="enum"===p.type?d.current.selectedOptions[0].value:"bool"===p.type?s.current.checked:s.current.value,{values:{...e.values,[a]:n}}}))},h=Math.random().toString();return l.createElement(i.A,{key:p.id},l.createElement(i.A.Prepend,{className:"w-40 flex-grow-1 flex-xl-grow-0 overflow-auto mb-2 mb-xl-0"},l.createElement(o.A,{overlay:(b=p.id+".desc",l.createElement(u.A,{id:b},l.createElement(m.A,{id:b})))},(({ref:e,...t})=>l.createElement(i.A.Text,f({className:"flex-fill "+(this.state.values[a]?"font-weight-bold":"")},t),l.createElement(m.A,{id:p.id}),l.createElement("div",{className:"ml-auto",ref:e},l.createElement(n.g,{fixedWidth:!0,icon:"info"})))))),l.createElement("div",{className:"flex-grow-1 w-100 w-xl-auto d-flex mb-3 mb-xl-0"},"enum"===p.type?l.createElement("select",{className:"flex-fill mb-0 "+(this.state.values[a]?"font-weight-bold":""),ref:d,onChange:v,defaultValue:p.value},Object.values(p.possibleValues).map((e=>l.createElement(m.A,{key:e,id:`${p.id}.enum.${e}`},(t=>l.createElement("option",{value:e},t)))))):"bool"===p.type?l.createElement("label",{htmlFor:h,className:"d-flex justify-content-center align-content-center flex-grow-1 w-100 w-xl-auto mb-0"},l.createElement(r.A.Check,{inline:!0,type:"switch",custom:!0,id:h,className:"m-auto",label:"",ref:s,onChange:v,checked:p.value})):l.createElement(c.A,{custom:!0,type:"num"===p.type?"number":"pwd"===p.type?"password":"text",className:"flex-fill mb-0 "+(this.state.values[a]?"font-weight-bold":""),min:"num"===p.type?p.min:void 0,max:"num"===p.type?p.max:void 0,ref:s,onChange:v,value:p.value}),this.state.values[a]?l.createElement(i.A.Append,{onClick:()=>{this.setState((e=>{const t={};for(const[n,l]of Object.entries(e.values))n!==a&&(t[n]=l);return{values:t}}))}},l.createElement(i.A.Text,null,l.createElement(n.g,{fixedWidth:!0,icon:"undo"}))):""));var b})),l.createElement("br",null),l.createElement("div",{className:"text-center"},l.createElement(s.A,{className:"px-5",onClick:this.save,disabled:!Object.keys(this.state.values).length},l.createElement(m.A,{id:"generic.save"}))))}}},5192:function(e,t,a){var n=a(8587),l=a(8168),s=a(2485),r=a.n(s),c=a(6540),i=a(6261),o=a(6519),u=["bsPrefix","size","hasValidation","className","as"],m=(0,i.A)("input-group-append"),d=(0,i.A)("input-group-prepend"),p=(0,i.A)("input-group-text",{Component:"span"}),f=c.forwardRef((function(e,t){var a=e.bsPrefix,s=e.size,i=e.hasValidation,m=e.className,d=e.as,p=void 0===d?"div":d,f=(0,n.A)(e,u);return a=(0,o.oU)(a,"input-group"),c.createElement(p,(0,l.A)({ref:t},f,{className:r()(m,a,s&&a+"-"+s,i&&"has-validation")}))}));f.displayName="InputGroup",f.Text=p,f.Radio=function(e){return c.createElement(p,null,c.createElement("input",(0,l.A)({type:"radio"},e)))},f.Checkbox=function(e){return c.createElement(p,null,c.createElement("input",(0,l.A)({type:"checkbox"},e)))},f.Append=m,f.Prepend=d,t.A=f}}]); +//# sourceMappingURL=3536.c1cb4c91c76f6074520d.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js.map b/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js.map new file mode 100644 index 00000000..e02853ed --- /dev/null +++ b/webpanel/6.6.0/3536.c1cb4c91c76f6074520d.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3536.c1cb4c91c76f6074520d.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/views/Configuration.tsx","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/InputGroup.js"],"sourcesContent":["import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { ReactNode } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport FormControl from \"react-bootstrap/FormControl\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport configOptions, { ConfigOption } from \"../../ApiClient/util/config\";\nimport ConfigController from \"../../ApiClient/util/ConfigController\";\n\ntype IProps = object;\ninterface IState {\n values: Partial;\n //if youre adding some state, make sure it doesnt get sent to be saved\n}\n\nexport default class Configuration extends React.Component {\n public constructor(props: IProps) {\n super(props);\n this.save = this.save.bind(this);\n\n this.state = {\n values: {}\n };\n }\n\n private save() {\n ConfigController.saveconfig(this.state.values);\n this.setState({\n values: {}\n });\n }\n\n public render(): ReactNode {\n const config = Object.entries(configOptions);\n\n return (\n \n {config.map(([_key, currentVal]) => {\n const key = _key as keyof typeof configOptions;\n //const persistRef = React.createRef();\n const valueRef = React.createRef();\n const enumRef = React.createRef();\n const value = this.state.values[key] ?? currentVal;\n const reset = () => {\n this.setState((prevState: IState) => {\n const filtered: Partial = {};\n for (const [innerkey, val] of Object.entries(prevState.values)) {\n if (innerkey === key) continue;\n filtered[innerkey as keyof typeof prevState.values] = val;\n }\n return {\n values: filtered\n };\n });\n };\n\n const updateValue = () => {\n this.setState(prevstate => {\n const obj: ConfigOption = this.state.values[key]\n ? { ...this.state.values[key] }\n : {\n ...currentVal\n };\n obj.value =\n value.type === \"enum\"\n ? enumRef.current!.selectedOptions[0].value\n : value.type === \"bool\"\n ? valueRef.current!.checked\n : valueRef.current!.value;\n\n return {\n values: {\n ...prevstate.values,\n [key]: obj\n }\n };\n });\n };\n\n const tooltip = (innerid: string) => {\n return (\n \n \n \n );\n };\n\n const random = Math.random().toString();\n\n return (\n \n \n {/*\n }\n type=\"switch\"\n custom\n onChange={updateValue}\n ref={persistRef}\n checked={value.persist}\n value={''}\n />\n */}\n \n {({ ref, ...triggerHandler }) => (\n \n \n }>\n \n
    \n \n )}\n \n \n
    \n {value.type === \"enum\" ? (\n \n {Object.values(value.possibleValues).map(possiblevalue => (\n \n {message => (\n \n )}\n \n ))}\n \n ) : value.type === \"bool\" ? (\n \n \n \n ) : (\n \n )}\n {this.state.values[key] ? (\n \n \n \n \n \n ) : (\n \"\"\n )}\n
    \n \n );\n })}\n\n
    \n\n
    \n \n \n \n
    \n \n );\n }\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _excluded = [\"bsPrefix\", \"size\", \"hasValidation\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n hasValidation = _ref.hasValidation,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size, hasValidation && 'has-validation')\n }));\n});\nInputGroup.displayName = 'InputGroup';\nInputGroup.Text = InputGroupText;\nInputGroup.Radio = InputGroupRadio;\nInputGroup.Checkbox = InputGroupCheckbox;\nInputGroup.Append = InputGroupAppend;\nInputGroup.Prepend = InputGroupPrepend;\nexport default InputGroup;"],"names":["Configuration","React","constructor","props","super","this","save","bind","state","values","ConfigController","saveconfig","setState","render","config","Object","entries","configOptions","map","_key","currentVal","key","valueRef","enumRef","value","updateValue","prevstate","obj","type","current","selectedOptions","checked","random","Math","toString","InputGroup","id","Prepend","className","OverlayTrigger","overlay","innerid","Tooltip","FormattedMessage","ref","triggerHandler","Text","_extends","FontAwesomeIcon","fixedWidth","icon","onChange","defaultValue","possibleValues","possiblevalue","message","htmlFor","Form","Check","inline","custom","label","FormControl","min","undefined","max","Append","onClick","reset","prevState","filtered","innerkey","val","Button","disabled","keys","length","_excluded","InputGroupAppend","InputGroupPrepend","InputGroupText","Component","_ref","bsPrefix","size","hasValidation","_ref$as","as","displayName","Radio","Checkbox"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js b/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js new file mode 100644 index 00000000..466b66c0 --- /dev/null +++ b/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3649],{1512:function(e,t,a){a.d(t,{A:function(){return l}});var n=a(6540),r=a(5038),s=a(3524),i=a(8065);function l(e){return n.createElement(r.A,{show:e.show,overlay:n.createElement(s.A,{id:e.tooltipid},n.createElement(i.A,{id:e.tooltipid}))},e.children)}},3649:function(e,t,a){a.r(t),a.d(t,{default:function(){return X}});var n=a(6540),r=a(5615),s=a(1274),i=a(472),l=a(616),o=a(5038),c=a(3524),d=a(2431),m=a(8065),u=a(1930),p=a(2576),h=a(4295),E=a(4173),g=a(5301),f=a(8143),y=a(8437),b=a(379),v=a(7621),A=a(4580),w=a(4118),S=a(7567),C=a(5659),P=a(1723),R=a(6113),T=a(6795),x=a(7255),k=a(1512),M=a(6784),N=a(8280),U=a(6052),I=a(9944),H=a(8854);function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t{u((t=>{let a;return a="boolean"==typeof e?e:e(t),a&&Q(),a}))},[E,f]=(0,n.useState)(!1),[y,b]=(0,n.useState)(e.head),[S,C]=(0,n.useState)(i?i[1]:""),[R,T]=(0,n.useState)(null),[D,W]=(0,n.useState)(null),B=(0,n.useContext)(v.z),Q=(0,n.useCallback)((async n=>{if(R&&!n)return;const r=await A.A.getPRCommits({owner:a.remoteRepositoryOwner,repo:a.remoteRepositoryName,pr:e,wantedCommit:t?.targetCommitSha});if(r.code===g.s.ERROR)c(r.error);else{const e=new Map;r.payload[0].forEach((t=>e.set(t.sha,t))),T(e),W(r.payload[1]??null)}}),[a.remoteRepositoryOwner,a.remoteRepositoryName,e.head,t?.targetCommitSha]);(0,n.useEffect)((()=>d?void Q():void 0),[d,Q]),(0,n.useEffect)((()=>E?void Q():void 0),[E,Q]),(0,n.useEffect)((()=>h(!1)),[i]),(0,n.useEffect)((()=>C(i?i[1]:"")),[i]);let F;t&&(R?.has(t.targetCommitSha)?F=R?.get(t.targetCommitSha):D?.sha===t.targetCommitSha&&(F=D));const K=[...(R??[]).values()].map((a=>({name:a.name,value:a.sha,current:a.sha===t?.targetCommitSha,latest:a.sha===e.head,disabled:!1})));D&&(K.push({name:"...",value:"",current:!1,latest:!1,disabled:!0}),K.push({name:D.name,value:D.sha,current:D.sha===t?.targetCommitSha,latest:D.sha===e.head,disabled:!1}));const X=(0,w.bQ)(B.instancePermissionSet,p.WX.MergePullRequest),V=(0,w.bQ)(B.instancePermissionSet,p.WX.Read)&&(0,w.bQ)(B.instancePermissionSet,p.WX.UpdateBranch)||!t;return n.createElement(n.Fragment,null,n.createElement("tr",null,n.createElement("td",{className:"text-right"+(i?" font-weight-bold":"")},"#",e.number),n.createElement("td",null,n.createElement(U.A,{pill:!0,className:"text-white text-capitalize mr-2",style:{backgroundColor:{closed:"#c93c37",merged:"#8256d0",open:"#347d39"}[e.state]}},e.state),e.testmergelabel?n.createElement(U.A,{pill:!0,className:"text-white text-capitalize mr-2",variant:"primary"},n.createElement(m.A,{id:"view.instance.repo.testmergelabel"})):null,!1===e.mergeable?n.createElement(U.A,{pill:!0,className:"text-white text-capitalize mr-2",variant:"danger"},n.createElement(m.A,{id:"view.instance.repo.conflictlabel"})):null),n.createElement("td",null,n.createElement("a",{href:e.link,target:"_blank",rel:"noreferrer"},e.title)),n.createElement("td",{className:"font-italic"},e.author),n.createElement("td",null,n.createElement("div",{className:"d-flex justify-content-center"},n.createElement("div",{className:"d-inline-block text-nowrap"},i?n.createElement(n.Fragment,null,n.createElement(k.A,{tooltipid:"generic.no_perm",show:!V&&void 0},n.createElement(r.A,{variant:"danger",className:"mx-1",onClick:l,disabled:!V},n.createElement(M.g,{icon:"minus",fixedWidth:!0}))),n.createElement(k.A,{tooltipid:"generic.no_perm",show:(!X||!V)&&void 0},n.createElement(r.A,{className:"mx-1",onClick:a=>a.shiftKey?o(e.head,t?.comment??null):f(!0),variant:i[0]===e.head?"primary":"info",disabled:!X||!V},n.createElement(M.g,{icon:"sync",fixedWidth:!0}))),t?n.createElement(r.A,{className:"mx-1",onClick:()=>h((e=>!e)),active:d},n.createElement(M.g,{icon:"info",fixedWidth:!0})):null):n.createElement(k.A,{tooltipid:"generic.no_perm",show:!X&&void 0},n.createElement(r.A,{variant:"success",className:"mx-1",disabled:!X,onClick:t=>t.shiftKey?o(e.head,null):f(!0)},n.createElement(M.g,{icon:"plus",fixedWidth:!0}))))))),n.createElement("tr",null,n.createElement("td",{className:"py-0 border-top-0"}),n.createElement("td",{colSpan:4,className:"py-0 border-top-0"},t?n.createElement(N.A,{in:d},n.createElement("div",null,n.createElement("div",{className:"py-3"},n.createElement("table",{className:"reset-table"},n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",{className:"text-nowrap"},n.createElement("span",{className:"p-2"},n.createElement(m.A,{id:"view.instance.repo.tm.by"}))),n.createElement("td",null,t.mergedBy.name)),n.createElement("tr",null,n.createElement("td",{className:"text-nowrap"},n.createElement("span",{className:"p-2"},n.createElement(m.A,{id:"view.instance.repo.tm.comment"}))),n.createElement("td",null,t.comment)),n.createElement("tr",null,n.createElement("td",{className:"text-nowrap"},n.createElement("span",{className:"p-2"},n.createElement(m.A,{id:"view.instance.repo.tm.commit"}))),n.createElement("td",null,F?n.createElement(n.Fragment,null,F.name,n.createElement("a",{className:"ml-1",href:F.url,target:"_blank",rel:"noreferrer"},"(",t.targetCommitSha.substring(0,7),")")):t.targetCommitSha.substring(0,7)))))))):null)),n.createElement(s.A,{show:E,onHide:()=>f(!1),centered:!0,size:"lg"},n.createElement(s.A.Header,{closeButton:!0},n.createElement(s.A.Title,null,n.createElement(m.A,{id:"view.instance.repo.tm.modal.title"}))),n.createElement(s.A.Body,null,n.createElement("h5",null,n.createElement("a",{href:e.link,target:"_blank",rel:"noreferrer",className:"text-decoration-none"},e.title)),n.createElement(m.A,{id:"view.instance.repo.tm.modal.label"}),R?n.createElement(I.A,{filterOptions:H.A,search:!0,options:K,value:y??F?.sha,autoComplete:"on",renderOption:(e,t,a,r)=>n.createElement("button",O({type:"button",className:r+(t.disabled?" font-weight-bold":"")},e),n.createElement(U.A,null,t.value.substring(0,7)),t.current?n.createElement(U.A,{variant:"primary",pill:!0,className:"mr-1"},n.createElement(m.A,{id:"generic.testmerged"})):null,t.latest?n.createElement(U.A,{variant:"success",pill:!0,className:"mr-1"},n.createElement(m.A,{id:"generic.latest"})):null,t.name),onChange:e=>b(e)}):n.createElement(x.default,{text:"loading.repo.commits",width:5,widthUnit:"rem"}),n.createElement(P.Ay,{name:"view.instance.repo.tm.modal.comment",type:P.PU.String,onChange:e=>C(e),defaultValue:t?.comment??""}),n.createElement("span",{className:"text-muted font-italic mt-4 d-inline-block"},n.createElement(m.A,{id:"view.instance.repo.tm.modal.tip"}))),n.createElement(s.A.Footer,null,n.createElement(r.A,{variant:"danger",onClick:()=>f(!1)},n.createElement(m.A,{id:"generic.close"})),n.createElement(r.A,{onClick:()=>{y&&o(y,S),f(!1)}},n.createElement(m.A,{id:"generic.save"})))))}function W(){return W=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const a=Array.from(t.errors);return a.push(e),{errors:a}}))}componentDidMount(){this.setState({deployAfter:(0,w.eG)(this.context.instancePermissionSet,p.rY.Compile)}),this.fetchRepositoryInfo(void 0,!0)}async fetchRepositoryInfo(e,t){(0,w.bQ)(this.context.instancePermissionSet,p.WX.Read)||(this.setState({loading:!1,cloning:!1}),this.reloadDesiredState(null,t??!1,!1),this.setState({repositoryInfo:null,credMode:F.PrivateKey}));const a=await f.A.getRepository(this.context.instance.id);if(this.setState({cloning:!1,repoBusy:!1}),a.code===g.s.ERROR)if(a.error.code===E.O4.HTTP_DATA_INEGRITY&&a.error.originalErrorMessage?.errorCode===p.vH.RepoCloning)if(this.setState({cloning:!0,unableToHookClone:!1}),e)b.default.registerCallback(e.id,this.fetchRepositoryInfo);else{const e=await h.A.listActiveJobs(this.context.instance.id,{page:1,pageSize:100});if(e.code===g.s.OK){const t=e.payload.content.sort(((e,t)=>t.id-e.id)).find((e=>e.description.includes("Clone")&&e.description.includes("repository")));t?b.default.registerCallback(t.id,this.fetchRepositoryInfo):this.setState({unableToHookClone:!0})}else this.addError(e.error),this.setState({unableToHookClone:!0})}else a.error.code===E.O4.HTTP_DATA_INEGRITY&&a.error.originalErrorMessage?.errorCode===p.vH.RepoBusy?this.setState({repoBusy:!0}):this.addError(a.error);else this.reloadPRs(a.payload,t),this.setState({repositoryInfo:a.payload,credMode:F.PrivateKey});this.setState({loading:!1})}reloadPRs(e,t){e.remoteGitProvider===p.mA.GitHub&&e.remoteRepositoryName&&e.remoteRepositoryOwner&&(this.setState({loadingPRs:!0}),A.A.getPRs({repo:e.remoteRepositoryName,owner:e.remoteRepositoryOwner,wantedPRs:e.revisionInformation?.activeTestMerges.map((e=>e.number))}).then((a=>{this.setState({loadingPRs:!1}),a.code===g.s.ERROR?this.addError(a.error):(this.setState({gitHubPRs:a.payload}),t&&this.reloadDesiredState(e,!0,!1,a.payload))})).catch((e=>{this.setState({loadingPRs:!1}),this.addError(new E.Ay(E.O4.APP_FAIL,{jsError:e}))})))}async applyTestmerges(e){const t={},a=this.state.repositoryInfo,n=this.state.resetType!==Q.None;if(this.state.resetType===Q.Local?t.checkoutSha=a?.revisionInformation?.originCommitSha:this.state.resetType===Q.Remote&&(t.updateFromOrigin=!0,t.reference=a?.reference),a&&a?.remoteGitProvider===p.mA.GitHub){const a=[];[...this.state.desiredState.entries()].forEach((([t,r])=>{if(!r)return;const[s,i,l]=r;(!s||n||e)&&a.push({number:t,targetCommitSha:i,comment:l})})),a.length&&(t.newTestMerges=a)}const r=t.newTestMerges??[];this.state.manualPRs.forEach((e=>r.push({number:e}))),r.length&&(t.newTestMerges=r),this.setState({loading:!0});const s=await f.A.editRepository(this.context.instance.id,t);if(this.setState({loading:!1}),s.code===g.s.OK)if(s.payload.activeJob){if(this.setState({loading:!0}),b.default.fastmode=5,b.default.registerCallback(s.payload.activeJob.id,(e=>this.fetchRepositoryInfo(e,void 0===e.errorCode&&void 0===e.exceptionDetails))),b.default.registerJob(s.payload.activeJob,this.context.instance.id),this.state.deployAfter){const e=s.payload.activeJob.id,t=setInterval((()=>{const a=b.default.jobs.get(e);("number"==typeof a?.progress||a?.stoppedAt)&&(u.A.startCompile(this.context.instance.id).then((e=>{e.code===g.s.ERROR&&this.addError(e.error)})),clearInterval(t))}),5e3)}}else await this.fetchRepositoryInfo();else this.addError(s.error)}reloadDesiredState(e,t,a,n){n=n??this.state.gitHubPRs,t&&this.setState((e=>({resetType:a?Q.None:e.resetType,manualPRs:new Set}))),e&&this.setState((r=>{const s=r.desiredState,i=new Map(t?[]:s);let l=!1;const o=t&&!a;e.revisionInformation?.activeTestMerges.forEach((e=>{const a=i.get(e.number);if(!t){if(!a)return;if(a&&!a[0])return}const r=n?.find((t=>e.number===t.number));if(o&&!("merged"!==r?.state))i.set(e.number,null),l=!0;else{const t=(o?r?.head:null)??e.targetCommitSha;o&&t!==e.targetCommitSha&&(l=!0),i.set(e.number,[!0,t,e.comment??""])}}));return{resetType:l?"(no branch)"===e.reference?Q.Local:Q.Remote:r.resetType,desiredState:i}}))}render(){return n.createElement("div",{className:"text-center"},n.createElement(T.Q,{obj:this.state}),this.renderErrors(),this.state.cloning?n.createElement(x.default,{text:"loading.repo.cloning"}):this.state.repositoryInfo&&!this.state.repositoryInfo.origin?this.renderPreClone():n.createElement(n.Fragment,null,n.createElement("h3",null,n.createElement(m.A,{id:"view.instance.repo.repoinfo"})),this.state.repoBusy?n.createElement(x.default,{text:"loading.repo.busy"}):n.createElement(n.Fragment,null,this.renderRepoInformation(),n.createElement("hr",null),this.renderSettings(),n.createElement("hr",null),this.renderTestMerges(),n.createElement("hr",null),this.renderReclone(),n.createElement("hr",null),this.renderDelete())))}renderErrors(){return n.createElement(n.Fragment,null,this.state.errors.map(((e,t)=>{if(e)return n.createElement(S.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const a=Array.from(e.errors);return a[t]=void 0,{errors:a}}))})})))}renderRepoInformation(){const e=this.state.repositoryInfo;return e?n.createElement("table",{className:"mx-auto text-left"},n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",null,n.createElement("span",{className:"mr-3"},n.createElement(m.A,{id:"view.instance.repo.info.origin"}))),n.createElement("td",null,e.origin)),n.createElement("tr",null,n.createElement("td",null,n.createElement("span",{className:"mr-3"},n.createElement(m.A,{id:"view.instance.repo.info.owner"}))),n.createElement("td",null,e.remoteRepositoryOwner)),n.createElement("tr",null,n.createElement("td",null,n.createElement("span",{className:"mr-3"},n.createElement(m.A,{id:"view.instance.repo.info.name"}))),n.createElement("td",null,e.remoteRepositoryName)))):n.createElement(C.A,{title:"view.instance.repo.norepoinfo"})}renderPreClone(){const e={origin:{type:P.PU.String,name:"fields.instance.repository.url"},reference:{type:P.PU.String,name:"fields.instance.repository.ref",defaultValue:""},updateSubmodules:{type:P.PU.Boolean,name:"fields.instance.repository.enablesubmodules",defaultValue:!0}};return n.createElement(n.Fragment,null,n.createElement("h3",null,n.createElement(m.A,{id:"view.instance.repo.clone"})),this.renderCredsModal(),n.createElement(R.A,{fields:e,hideDisabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.Read),onSave:async e=>{const t={...e};""==e.reference&&(t.reference=null),this.state.writableCredentials&&(t.accessUser=this.state.writableCredentials.accessUser,t.accessToken=this.state.writableCredentials.accessToken);const a=await f.A.cloneRepository(this.context.instance.id,t);a.code===g.s.OK?(this.setState({writableCredentials:null}),await this.fetchRepositoryInfo(a.payload.activeJob??void 0)):this.addError(a.error)},includeAll:!0,alwaysAllowSave:!!this.state.writableCredentials,saveMessageId:"generic.clone"}))}renderSettings(){const e=this.state.repositoryInfo,t={originCheckoutSha:{type:P.PU.String,name:"fields.instance.repository.origincheckoutsha",disabled:!0,defaultValue:e?e.revisionInformation?.originCommitSha:"",tooltip:"fields.instance.repository.origincheckoutsha.desc"},checkoutSha:{type:P.PU.String,name:"fields.instance.repository.checkoutsha",defaultValue:e?e.revisionInformation?.commitSha:"",tooltip:"fields.instance.repository.checkoutsha.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.SetSha)},reference:{type:P.PU.String,name:"fields.instance.repository.reference",defaultValue:e?e.reference:"",tooltip:"fields.instance.repository.reference.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.SetReference)},committerName:{type:P.PU.String,name:"fields.instance.repository.committerName",defaultValue:e?e.committerName:"",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeCommitter)},committerEmail:{type:P.PU.String,name:"fields.instance.repository.committerEmail",defaultValue:e?e.committerEmail:"",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeCommitter)},pushTestMergeCommits:{type:P.PU.Boolean,name:"fields.instance.repository.pushTestMergeCommits",defaultValue:!!e&&e.pushTestMergeCommits,tooltip:"fields.instance.repository.pushTestMergeCommits.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeTestMergeCommits)},createGitHubDeployments:{type:P.PU.Boolean,name:"fields.instance.repository.createGitHubDeployments",defaultValue:!!e&&e.createGitHubDeployments,tooltip:"fields.instance.repository.createGitHubDeployments.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeTestMergeCommits)},showTestMergeCommitters:{type:P.PU.Boolean,name:"fields.instance.repository.showTestMergeCommitters",defaultValue:!!e&&e.showTestMergeCommitters,tooltip:"fields.instance.repository.showTestMergeCommitters.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeTestMergeCommits)},autoUpdatesKeepTestMerges:{type:P.PU.Boolean,name:"fields.instance.repository.autoUpdatesKeepTestMerges",defaultValue:!!e&&e.autoUpdatesKeepTestMerges,tooltip:"fields.instance.repository.autoUpdatesKeepTestMerges.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeAutoUpdateSettings)},autoUpdatesSynchronize:{type:P.PU.Boolean,name:"fields.instance.repository.autoUpdatesSynchronize",defaultValue:!!e&&e.autoUpdatesSynchronize,tooltip:"fields.instance.repository.autoUpdatesSynchronize.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeAutoUpdateSettings)},postTestMergeComment:{type:P.PU.Boolean,name:"fields.instance.repository.postTestMergeComment",defaultValue:!!e&&e.postTestMergeComment,tooltip:"fields.instance.repository.postTestMergeComment.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeTestMergeCommits)},updateSubmodules:{type:P.PU.Boolean,name:"fields.instance.repository.updateSubmodules",defaultValue:!!e&&e.updateSubmodules,tooltip:"fields.instance.repository.updateSubmodules.desc",disabled:!(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeSubmoduleUpdate)}};return n.createElement(n.Fragment,null,n.createElement("h3",null,n.createElement(m.A,{id:"view.instance.repo.reposettings"})),this.renderCredsModal(),n.createElement(R.A,{fields:t,onSave:async e=>{this.setState({loading:!0,writableCredentials:null});const t={...e};this.state.writableCredentials&&(t.accessUser=this.state.writableCredentials.accessUser,t.accessToken=this.state.writableCredentials.accessToken);const a=await f.A.editRepository(this.context.instance.id,t);this.setState({loading:!1}),a.code===g.s.OK?a.payload.activeJob?(this.setState({loading:!0}),b.default.fastmode=5,b.default.registerCallback(a.payload.activeJob.id,(()=>this.fetchRepositoryInfo(void 0,!0))),b.default.registerJob(a.payload.activeJob,this.context.instance.id)):await this.fetchRepositoryInfo():this.addError(a.error)},alwaysAllowSave:!!this.state.writableCredentials}))}renderCredDetails(){const e=this.state.credMode,t=this.state.writableCredentials,a=this.state.repositoryInfo,[r]=Object.entries(F).find((([,t])=>t==e)),s=`fields.instance.repository.creds.mode.${r}`,i={username:{type:P.PU.String,name:s+".username",tooltip:s+".username.desc",defaultValue:t?.accessUser??a?.accessUser??""}},l={...i,token:{type:P.PU.Password,name:s+".token",tooltip:s+".token.desc",defaultValue:t?.accessToken??""}},o={...i,clientId:{type:P.PU.String,name:s+".id",tooltip:s+".id.desc"},privateKey:{type:P.PU.TextArea,name:s+".pk",tooltip:s+".pk.desc"}};return n.createElement(n.Fragment,null,n.createElement("div",{style:{display:e!=F.PrivateKey?"none":void 0}},n.createElement(R.A,{fields:o,onSave:e=>{const t=e.username?.trim(),a=e.clientId?.trim(),n=e.privateKey?.trim();if(!t?.length||!a?.length||!n?.length)return void alert("Please enter a username, client/app ID, and private key!");const r=`TGS_PK_${a}:${btoa(n)}`;this.setState({writableCredentials:{accessUser:t,accessToken:r},showCredsModal:!1})}})),n.createElement("div",{style:{display:e==F.PrivateKey?"none":void 0}},n.createElement(R.A,{fields:l,onSave:t=>{const a=t.username?.trim(),n=t.token?.trim();a?.length&&n?.length?this.setState({writableCredentials:{accessUser:a,accessToken:n},showCredsModal:!1}):alert(`Please enter both a username and a ${e==F.Password?"password":"token"}!`)}})))}renderCredsModal(){const e=(0,w.bQ)(this.context.instancePermissionSet,p.WX.ChangeCredentials),t=n.createElement(r.A,{disabled:!e,onClick:()=>this.setState({showCredsModal:!0})},n.createElement(m.A,{id:"generic.edit"})),a=this.state.credMode;return n.createElement(n.Fragment,null,n.createElement(s.A,{show:this.state.showCredsModal,onHide:()=>this.setState({showCredsModal:!1}),centered:!0,size:"lg"},n.createElement(s.A.Header,{closeButton:!0},n.createElement(s.A.Title,null,n.createElement(m.A,{id:"view.instance.repo.creds.modal.title"}))),n.createElement(s.A.Body,null,n.createElement(P.Ay,{name:"fields.instance.repository.creds.mode",type:P.PU.Enum,enum:F,defaultValue:a,onChange:e=>this.setState({credMode:e})}),a!=F.None?this.renderCredDetails():n.createElement(s.A.Footer,null,n.createElement(r.A,{className:"text-center",variant:"danger",onClick:()=>this.setState({showCredsModal:!1,writableCredentials:{accessUser:"",accessToken:""}})},n.createElement(m.A,{id:"generic.save"})),n.createElement(r.A,{className:"text-center",onClick:()=>this.setState({showCredsModal:!1,writableCredentials:null})},n.createElement(m.A,{id:"generic.reset"}))),a!=F.None?n.createElement(s.A.Footer,null,n.createElement(r.A,{className:"text-center",onClick:()=>this.setState({showCredsModal:!1,writableCredentials:null})},n.createElement(m.A,{id:"generic.reset"}))):null)),n.createElement("div",{className:"d-flex mt-5"},n.createElement(P.Ay,{name:"view.instance.repo.creds",tooltip:"view.instance.repo.creds.desc",type:P.PU.String,defaultValue:(this.state.writableCredentials?this.state.writableCredentials.accessUser:this.state.repositoryInfo?.accessUser)||"(Unset)",onChange:()=>{},disabled:!0,hideReadOnly:!0,additionalAppend:t,forceChanged:!!this.state.writableCredentials})))}renderTestMerges(){const e=this.state.repositoryInfo,t=(0,w.eG)(this.context.instancePermissionSet,p.rY.Compile),a=(0,w.bQ)(this.context.instancePermissionSet,p.WX.MergePullRequest),s=(0,w.bQ)(this.context.instancePermissionSet,p.WX.Read)&&(0,w.bQ)(this.context.instancePermissionSet,p.WX.UpdateBranch),u=new Map;e&&e.revisionInformation?.activeTestMerges.forEach((e=>u.set(e.number,e)));const h=this.state.gitHubPRs?.sort(((e,t)=>u.has(e.number)!==u.has(t.number)?u.has(e.number)?-1:1:e.testmergelabel!==t.testmergelabel?e.testmergelabel?-1:1:e.mergeable!==t.mergeable?e.mergeable?-1:1:e.number-t.number))??[],E=h.map((t=>{const a=this.state.desiredState.get(t.number),n=e?e?.revisionInformation?.activeTestMerges.find((e=>e.number===t.number)):void 0;return a?n?n.targetCommitSha!==a[1]?[B.updated,t]:(n.comment??"")!==a[2]?[B.rename,t]:[B.reapply,t]:[B.added,t]:this.state.desiredState.get(t.number)?null:n?[B.removed,t]:null})).filter((e=>null!==e)),g=E.sort(((e,t)=>{const a=[B.removed,B.reapply,B.added,B.updated];for(const n of a)if(e[0]===n^t[0]===n)return e[0]===n?-1:1;return 0})),f=!!e&&"(no branch)"===e.reference,b=E.some((e=>e[0]!=B.added&&e[0]!=B.reapply)),v=0===E.filter((([e])=>e!==B.reapply)).length&&this.state.resetType===Q.None&&!this.state.manualPRs.size;return e&&e.remoteGitProvider==p.mA.Unknown?n.createElement(C.A,{title:"view.instance.repo.testmerges.badprovider"}):n.createElement("div",{className:"mx-5"},n.createElement(i.A,{className:"mb-5"},n.createElement(i.A.Header,null,n.createElement(m.A,{id:"view.instance.repo.pending.title"})),n.createElement(i.A.Body,{className:"text-left"},n.createElement("ul",null,v?n.createElement("li",{className:"font-weight-lighter font-italic"},n.createElement(m.A,{id:"view.instance.repo.pending.none"})):n.createElement(n.Fragment,null,e&&f?n.createElement("li",null,n.createElement(m.A,{id:"view.instance.repo.pending.reset.nobranch",values:{commit:e.revisionInformation?.originCommitSha.substring(0,7)}})):this.state.resetType===Q.Remote?n.createElement("li",null,n.createElement(m.A,{id:"view.instance.repo.pending.update"})):this.state.resetType===Q.Local?n.createElement("li",null,n.createElement(m.A,{id:"view.instance.repo.pending.reset"})):null,e&&e.remoteGitProvider===p.mA.GitHub?g.map((([e,t])=>{const a=this.state.desiredState.get(t.number);if(e===B.reapply&&this.state.resetType===Q.None&&!f)return null;let r=a?a[1].substring(0,7):null;const s=this.state.gitHubPRs?.find((e=>t.number===e.number));return r&&!s?.head.startsWith(r)||(r=`HEAD (${(r??s.head).substring(0,7)})`),n.createElement("li",{key:t.number},n.createElement(m.A,{id:`view.instance.repo.pending.${e}`,values:{number:t.number,commit:r,title:t.title}}))})):null,[...this.state.manualPRs.values()].map((e=>n.createElement("li",{key:e},n.createElement(m.A,{id:"view.instance.repo.pending.added.manual",values:{number:e}})))),this.state.deployAfter?n.createElement("li",{key:"deploy"},n.createElement(m.A,{id:"view.instance.repo.pending.deploy"})):null)),n.createElement(l.A,{size:"lg",className:"mb-2 text-center"},n.createElement(r.A,{disabled:f||!s,onClick:()=>this.setState({resetType:Q.Remote}),variant:this.state.resetType===Q.Remote?"secondary":"primary"},n.createElement(m.A,{id:"view.instance.repo.update.remote"})),n.createElement(o.A,{placement:"top",overlay:e=>n.createElement(c.A,W({id:"repo-local-reset-tip"},e),n.createElement(m.A,{id:"view.instance.repo.update.local.tip"}))},n.createElement(r.A,{onClick:()=>this.setState({resetType:Q.Local}),variant:this.state.resetType===Q.Local?"secondary":"primary"},n.createElement(m.A,{id:"view.instance.repo.update.local"}))),n.createElement(r.A,{disabled:b,onClick:()=>this.setState({resetType:Q.None}),variant:this.state.resetType===Q.None?"secondary":"primary"},n.createElement(m.A,{id:"view.instance.repo.update.none"}))),!y.Ay.manualpr.value&&e&&this.state.gitHubPRs&&e.remoteGitProvider!==p.mA.GitLab?null:n.createElement("div",{className:"d-flex mt-5"},n.createElement(P.Ay,{name:"view.instance.repo.manual",tooltip:"view.instance.repo.manual.desc",type:P.PU.Number,min:0,defaultValue:this.state.lastManualPR,onChange:e=>this.setState({manualPR:e}),disabled:!a}),n.createElement(k.A,{tooltipid:"generic.no_perm",show:!a&&void 0},n.createElement(r.A,{className:"nowrap ml-3",disabled:this.state.manualPR===this.state.lastManualPR||!a,onClick:()=>{this.setState((e=>({manualPRs:new Set([...e.manualPRs.values(),this.state.manualPR]),lastManualPR:this.state.manualPR})))}},n.createElement(m.A,{id:"view.instance.repo.addmanual"})))),n.createElement(P.Ay,{name:"view.instance.repo.deployAfter",tooltip:"view.instance.repo.deployAfter.desc",type:P.PU.Boolean,defaultValue:!!t&&this.state.deployAfter,disabled:!t,onChange:e=>this.setState({deployAfter:e})})),n.createElement(i.A.Footer,null,n.createElement(r.A,{variant:"danger",className:"mx-2",disabled:v,onClick:()=>this.reloadDesiredState(e,!0,!0)},n.createElement(m.A,{id:"generic.cancel"})),n.createElement(r.A,{className:"mx-2",disabled:v,onClick:()=>{this.applyTestmerges(f)}},n.createElement(m.A,{id:"generic.commit"})))),this.state.loadingPRs?n.createElement(x.default,{text:"loading.repo.prs"}):e?e&&e.remoteGitProvider===p.mA.GitHub?n.createElement(n.Fragment,null,n.createElement("h3",null,n.createElement(m.A,{id:"view.instance.repo.testmerges"})),n.createElement("br",null),n.createElement(d.A,{variant:"dark",striped:!0,hover:!0,className:"text-left"},n.createElement("tbody",null,h.map((t=>n.createElement(D,{key:t.number,testmergeinfo:u.get(t.number),pr:t,repoInfo:e,finalState:!!this.state.desiredState.get(t.number)&&this.state.desiredState.get(t.number).slice(1),onRemove:()=>this.setState((e=>({resetType:e.resetType===Q.None?Q.Remote:e.resetType,desiredState:new Map(e.desiredState).set(t.number,null)}))),onSelectCommit:(e,a)=>this.setState((n=>({desiredState:new Map(n.desiredState).set(t.number,[!1,e,a])}))),onError:e=>this.addError(e)})))))):null:n.createElement(C.A,{title:"view.instance.repo.noautomerge"}))}renderReclone(){const e=(0,w.bQ)(this.context.instancePermissionSet,p.WX.Reclone);return n.createElement(n.Fragment,null,n.createElement("h4",null,n.createElement(m.A,{id:"view.instance.repo.reclone.title"})),n.createElement("span",null,n.createElement(m.A,{id:"view.instance.repo.reclone.desc"})),n.createElement("br",null),n.createElement(r.A,{variant:"warning",className:"mt-2",disabled:!e,onClick:()=>this.setState({showRecloneModal:!0})},n.createElement(m.A,{id:"view.instance.repo.reclone"})),n.createElement(s.A,{show:this.state.showRecloneModal,onHide:()=>this.setState({showRecloneModal:!1}),centered:!0},n.createElement(s.A.Header,{closeButton:!0},n.createElement(s.A.Title,null,n.createElement(m.A,{id:"view.instance.repo.reclone.title"}))),n.createElement(s.A.Body,null,n.createElement("span",null,n.createElement(m.A,{id:"generic.areyousure"}))),n.createElement(s.A.Footer,null,n.createElement(r.A,{onClick:()=>this.setState({showRecloneModal:!1})},n.createElement(m.A,{id:"generic.cancel"})),n.createElement(r.A,{variant:"danger",onClick:()=>{(async()=>{this.setState({showRecloneModal:!1,loading:!0});const e=await f.A.recloneRepository(this.context.instance.id);this.setState({loading:!1}),e.code===g.s.OK?e.payload.activeJob?(this.setState({loading:!0}),b.default.fastmode=5,b.default.registerCallback(e.payload.activeJob.id,(e=>this.fetchRepositoryInfo(e,void 0===e.errorCode&&void 0===e.exceptionDetails))),b.default.registerJob(e.payload.activeJob,this.context.instance.id)):await this.fetchRepositoryInfo():this.addError(e.error)})()}},n.createElement(m.A,{id:"view.instance.repo.reclone"})))))}renderDelete(){const e=(0,w.bQ)(this.context.instancePermissionSet,p.WX.Delete);return n.createElement(n.Fragment,null,n.createElement("h4",null,n.createElement(m.A,{id:"view.instance.repo.delete.title"})),n.createElement("span",null,n.createElement(m.A,{id:"view.instance.repo.delete.desc"})),n.createElement("br",null),n.createElement(r.A,{variant:"danger",className:"mt-2",disabled:!e,onClick:()=>this.setState({showDeleteModal:!0})},n.createElement(m.A,{id:"view.instance.repo.delete"})),n.createElement(s.A,{show:this.state.showDeleteModal,onHide:()=>this.setState({showDeleteModal:!1}),centered:!0},n.createElement(s.A.Header,{closeButton:!0},n.createElement(s.A.Title,null,n.createElement(m.A,{id:"view.instance.repo.delete.title"}))),n.createElement(s.A.Body,null,n.createElement("span",null,n.createElement(m.A,{id:"generic.areyousure"}))),n.createElement(s.A.Footer,null,n.createElement(r.A,{onClick:()=>this.setState({showDeleteModal:!1})},n.createElement(m.A,{id:"generic.cancel"})),n.createElement(r.A,{variant:"danger",onClick:()=>{(async()=>{this.setState({showDeleteModal:!1,loading:!0});const e=await f.A.deleteRepository(this.context.instance.id);this.setState({loading:!1}),e.code===g.s.OK?e.payload.activeJob?(this.setState({loading:!0}),b.default.fastmode=5,b.default.registerCallback(e.payload.activeJob.id,(e=>this.fetchRepositoryInfo(e,void 0===e.errorCode&&void 0===e.exceptionDetails))),b.default.registerJob(e.payload.activeJob,this.context.instance.id)):await this.fetchRepositoryInfo():this.addError(e.error)})()}},n.createElement(m.A,{id:"view.instance.repo.delete"})))))}}K.contextType=v.z;var X=K}}]); +//# sourceMappingURL=3649.d173abd1c25c54a9ed15.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js.map b/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js.map new file mode 100644 index 00000000..3e1c7c30 --- /dev/null +++ b/webpanel/6.6.0/3649.d173abd1c25c54a9ed15.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3649.d173abd1c25c54a9ed15.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/utils/SimpleTooltip.tsx","webpack://tgstation-server-control-panel/./src/components/utils/TestMergeRow.tsx","webpack://tgstation-server-control-panel/./src/components/views/Instance/Edit/Repository.tsx"],"sourcesContent":["import React from \"react\";\nimport { OverlayTrigger } from \"react-bootstrap\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\ntype IProps = {\n tooltipid: string;\n children: JSX.Element;\n show: boolean | undefined;\n};\n\nexport default function SimpleToolTip(props: IProps): JSX.Element {\n return (\n \n \n \n }>\n {props.children}\n \n );\n}\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useCallback, useContext, useEffect, useState } from \"react\";\nimport { Collapse } from \"react-bootstrap\";\nimport Badge from \"react-bootstrap/Badge\";\nimport Button from \"react-bootstrap/Button\";\nimport Modal from \"react-bootstrap/Modal\";\nimport { FormattedMessage } from \"react-intl\";\nimport SelectSearch, { fuzzySearch, SelectedOptionValue } from \"react-select-search\";\n\nimport {\n RepositoryResponse,\n RepositoryRights,\n TestMerge\n} from \"../../ApiClient/generatedcode/generated\";\nimport InternalError from \"../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../ApiClient/models/InternalComms/InternalStatus\";\nimport { InstanceEditContext } from \"../../contexts/InstanceEditContext\";\nimport GithubClient, { Commit, PullRequest } from \"../../utils/GithubClient\";\nimport { hasRepoRight } from \"../../utils/misc\";\nimport InputField, { FieldType } from \"./InputField\";\nimport Loading from \"./Loading\";\nimport SimpleToolTip from \"./SimpleTooltip\";\n\ninterface IProps {\n pr: PullRequest;\n testmergeinfo?: TestMerge;\n repoInfo: RepositoryResponse;\n finalState: [commit: string, comment: string] | false;\n onRemove: () => unknown;\n onSelectCommit: (commit: string, comment: string | null) => unknown;\n onError: (error: InternalError) => unknown;\n}\n\nexport default function TestMergeRow({\n pr,\n testmergeinfo,\n repoInfo,\n finalState,\n onRemove,\n onSelectCommit,\n onError\n}: IProps): JSX.Element {\n const [showDetails, _setShowDetails] = useState(false);\n const setShowDetails = (_newVal: ((prevState: boolean) => boolean) | boolean) => {\n _setShowDetails(prevState => {\n let newVal;\n if (typeof _newVal === \"boolean\") {\n newVal = _newVal;\n } else {\n newVal = _newVal(prevState);\n }\n if (newVal) void loadCommits();\n return newVal;\n });\n };\n const [showModal, setShowModal] = useState(false);\n const [selectedCommit, setSelectedCommit] = useState(pr.head);\n const [comment, setComment] = useState(finalState ? finalState[1] : \"\");\n const [commits, setCommits] = useState | null>(null);\n const [extraCommit, setExtraCommit] = useState(null);\n const instanceEditContext = useContext(InstanceEditContext);\n\n const loadCommits = useCallback(\n async (force?: boolean) => {\n if (commits && !force) return;\n\n const response = await GithubClient.getPRCommits({\n //Repo info should be set if we are here\n owner: repoInfo.remoteRepositoryOwner!,\n repo: repoInfo.remoteRepositoryName!,\n pr: pr,\n wantedCommit: testmergeinfo?.targetCommitSha\n });\n if (response.code === StatusCode.ERROR) {\n onError(response.error);\n } else {\n const commitMap = new Map();\n response.payload[0].forEach(commit => commitMap.set(commit.sha, commit));\n setCommits(commitMap);\n setExtraCommit(response.payload[1] ?? null);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n repoInfo.remoteRepositoryOwner,\n repoInfo.remoteRepositoryName,\n pr.head,\n testmergeinfo?.targetCommitSha\n ]\n );\n useEffect(() => (showDetails ? void loadCommits() : void 0), [showDetails, loadCommits]);\n useEffect(() => (showModal ? void loadCommits() : void 0), [showModal, loadCommits]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => setShowDetails(false), [finalState]);\n useEffect(() => setComment(finalState ? finalState[1] : \"\"), [finalState]);\n\n const colorMap: Record = {\n closed: \"#c93c37\",\n merged: \"#8256d0\",\n open: \"#347d39\"\n };\n let activeCommit: Commit | undefined = undefined;\n if (testmergeinfo) {\n if (commits?.has(testmergeinfo.targetCommitSha)) {\n activeCommit = commits?.get(testmergeinfo.targetCommitSha);\n } else if (extraCommit?.sha === testmergeinfo.targetCommitSha) {\n activeCommit = extraCommit;\n }\n }\n const commitOptions = [...(commits ?? []).values()].map(commit => ({\n name: commit.name,\n value: commit.sha,\n current: commit.sha === testmergeinfo?.targetCommitSha,\n latest: commit.sha === pr.head,\n disabled: false\n }));\n if (extraCommit) {\n commitOptions.push({\n name: \"...\",\n value: \"\",\n current: false,\n latest: false,\n disabled: true\n });\n commitOptions.push({\n name: extraCommit.name,\n value: extraCommit.sha,\n current: extraCommit.sha === testmergeinfo?.targetCommitSha,\n latest: extraCommit.sha === pr.head,\n disabled: false\n });\n }\n const canAdd = hasRepoRight(\n instanceEditContext.instancePermissionSet,\n RepositoryRights.MergePullRequest\n );\n const canReset =\n (hasRepoRight(instanceEditContext.instancePermissionSet, RepositoryRights.Read) &&\n hasRepoRight(\n instanceEditContext.instancePermissionSet,\n RepositoryRights.UpdateBranch\n )) ||\n //Allow updating and removing pending PRs\n !testmergeinfo;\n\n return (\n <>\n \n \n #{pr.number}\n \n \n \n {pr.state}\n \n {pr.testmergelabel ? (\n \n \n \n ) : null}\n {pr.mergeable === false ? (\n \n \n \n ) : null}\n \n \n \n {pr.title}\n \n \n {pr.author}\n\n \n
    \n
    \n {finalState ? (\n <>\n \n \n \n \n \n \n \n e.shiftKey\n ? onSelectCommit(\n pr.head,\n testmergeinfo?.comment ?? null\n )\n : setShowModal(true)\n }\n variant={finalState[0] === pr.head ? \"primary\" : \"info\"}\n //To update, you have to reset and reapply the TM so you need both\n disabled={!canAdd || !canReset}>\n \n \n \n {testmergeinfo ? (\n setShowDetails(val => !val)}\n active={showDetails}>\n \n \n ) : null}\n \n ) : (\n \n \n e.shiftKey\n ? onSelectCommit(pr.head, null)\n : setShowModal(true)\n }>\n \n \n \n )}\n
    \n
    \n \n \n\n \n \n \n {testmergeinfo ? (\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n {testmergeinfo.mergedBy.name}
    \n \n \n \n {testmergeinfo.comment}
    \n \n \n \n \n {activeCommit ? (\n <>\n {activeCommit.name}\n \n (\n {testmergeinfo.targetCommitSha.substring(\n 0,\n 7\n )}\n )\n \n \n ) : (\n testmergeinfo.targetCommitSha.substring(\n 0,\n 7\n )\n )}\n
    \n
    \n
    \n
    \n ) : null}\n \n \n setShowModal(false)} centered size=\"lg\">\n \n \n \n \n \n \n
    \n \n {pr.title}\n \n
    \n \n {commits ? (\n (\n //@ts-expect-error error in the library, it's the wrong type\n \n {(option.value as string).substring(0, 7)}\n {option.current ? (\n \n \n \n ) : null}\n {option.latest ? (\n \n \n \n ) : null}\n {option.name}\n \n )}\n onChange={value => setSelectedCommit(value as unknown as string)}\n />\n ) : (\n \n )}\n setComment(newComment)}\n defaultValue={testmergeinfo?.comment ?? \"\"}\n />\n \n \n \n
    \n \n \n {\n if (selectedCommit) onSelectCommit(selectedCommit, comment);\n setShowModal(false);\n }}>\n \n \n \n
    \n \n );\n}\n","import React from \"react\";\nimport { Button, ButtonGroup, Card, Modal, OverlayTrigger, Table, Tooltip } from \"react-bootstrap\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport DreamMakerClient from \"../../../../ApiClient/DreamMakerClient\";\nimport {\n DreamMakerRights,\n ErrorCode as TGSErrorCode,\n JobResponse,\n RemoteGitProvider,\n RepositoryCreateRequest,\n RepositoryResponse,\n RepositoryRights,\n RepositoryUpdateRequest,\n TestMerge,\n TestMergeParameters\n} from \"../../../../ApiClient/generatedcode/generated\";\nimport JobsClient from \"../../../../ApiClient/JobsClient\";\nimport InternalError, { ErrorCode } from \"../../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../../ApiClient/models/InternalComms/InternalStatus\";\nimport RepositoryClient from \"../../../../ApiClient/RepositoryClient\";\nimport configOptions from \"../../../../ApiClient/util/config\";\nimport JobsController from \"../../../../ApiClient/util/JobsController\";\nimport { InstanceEditContext } from \"../../../../contexts/InstanceEditContext\";\nimport GithubClient, { PullRequest } from \"../../../../utils/GithubClient\";\nimport { hasDreamMakerRight, hasRepoRight } from \"../../../../utils/misc\";\nimport ErrorAlert from \"../../../utils/ErrorAlert\";\nimport GenericAlert from \"../../../utils/GenericAlert\";\nimport InputField, { FieldType } from \"../../../utils/InputField\";\nimport InputForm from \"../../../utils/InputForm\";\nimport { DebugJsonViewer } from \"../../../utils/JsonViewer\";\nimport Loading from \"../../../utils/Loading\";\nimport SimpleToolTip from \"../../../utils/SimpleTooltip\";\nimport TestMergeRow from \"../../../utils/TestMergeRow\";\n\nenum PRState {\n reapply = \"reapply\",\n added = \"added\",\n removed = \"removed\",\n updated = \"updated\",\n rename = \"renamed\"\n}\n\nenum ResetType {\n None,\n Local,\n Remote\n}\n\nenum CredentialsType {\n None,\n Password,\n Token,\n PrivateKey\n}\n\ntype IProps = object;\n\ninterface IState {\n errors: Array | undefined>;\n repositoryInfo: RepositoryResponse | null;\n writableCredentials: IWritableCredentials | null;\n credMode: CredentialsType;\n showCredsModal: boolean;\n loading: boolean;\n cloning: boolean;\n repoBusy: boolean;\n unableToHookClone: boolean;\n loadingPRs: boolean;\n gitHubPRs: PullRequest[] | null;\n manualPRs: Set;\n resetType: ResetType;\n desiredState: Map;\n showDeleteModal: boolean;\n showRecloneModal: boolean;\n manualPR: number;\n lastManualPR: number;\n deployAfter: boolean;\n}\n\ninterface IWritableCredentials {\n accessUser: string;\n accessToken: string;\n}\n\nclass Repository extends React.Component {\n public declare context: InstanceEditContext;\n\n public constructor(props: IProps) {\n super(props);\n\n this.state = {\n errors: [],\n repositoryInfo: null,\n writableCredentials: null,\n credMode: CredentialsType.PrivateKey,\n showCredsModal: false,\n loading: true,\n cloning: false,\n unableToHookClone: false,\n gitHubPRs: null,\n manualPRs: new Set(),\n resetType: ResetType.Remote,\n desiredState: new Map<\n number,\n [current: boolean, sha: string, comment: string | null] | null\n >(),\n showDeleteModal: false,\n showRecloneModal: false,\n manualPR: 0,\n lastManualPR: 0,\n deployAfter: false,\n repoBusy: false,\n loadingPRs: false\n };\n\n this.fetchRepositoryInfo = this.fetchRepositoryInfo.bind(this);\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n public componentDidMount(): void {\n this.setState({\n deployAfter: hasDreamMakerRight(\n this.context.instancePermissionSet,\n DreamMakerRights.Compile\n )\n });\n void this.fetchRepositoryInfo(undefined, true);\n }\n\n private async fetchRepositoryInfo(\n cloneJob?: JobResponse,\n resetDesiredState?: boolean\n ): Promise {\n if (!hasRepoRight(this.context.instancePermissionSet, RepositoryRights.Read)) {\n this.setState({\n loading: false,\n cloning: false\n });\n this.reloadDesiredState(null, resetDesiredState ?? false, false);\n this.setState({\n repositoryInfo: null,\n credMode: CredentialsType.PrivateKey\n });\n }\n\n const response = await RepositoryClient.getRepository(this.context.instance.id);\n\n this.setState({\n cloning: false,\n repoBusy: false\n });\n if (response.code === StatusCode.ERROR) {\n if (\n response.error.code === ErrorCode.HTTP_DATA_INEGRITY &&\n response.error.originalErrorMessage?.errorCode === TGSErrorCode.RepoCloning\n ) {\n this.setState({\n cloning: true,\n unableToHookClone: false\n });\n if (cloneJob) {\n JobsController.registerCallback(cloneJob.id, this.fetchRepositoryInfo);\n } else {\n const response2 = await JobsClient.listActiveJobs(this.context.instance.id, {\n page: 1,\n pageSize: 100\n });\n if (response2.code === StatusCode.OK) {\n const cloneJob = response2.payload.content\n .sort((a, b) => b.id - a.id)\n .find(\n job =>\n job.description.includes(\"Clone\") &&\n job.description.includes(\"repository\")\n );\n if (cloneJob) {\n JobsController.registerCallback(cloneJob.id, this.fetchRepositoryInfo);\n } else {\n this.setState({\n unableToHookClone: true\n });\n }\n } else {\n this.addError(response2.error);\n this.setState({\n unableToHookClone: true\n });\n }\n }\n } else if (\n response.error.code === ErrorCode.HTTP_DATA_INEGRITY &&\n response.error.originalErrorMessage?.errorCode === TGSErrorCode.RepoBusy\n ) {\n this.setState({\n repoBusy: true\n });\n } else {\n this.addError(response.error);\n }\n } else {\n this.reloadPRs(response.payload, resetDesiredState);\n //response.payload.remoteGitProvider = RemoteGitProvider.GitLab;\n this.setState({\n repositoryInfo: response.payload,\n credMode: CredentialsType.PrivateKey\n });\n }\n this.setState({ loading: false });\n }\n\n private reloadPRs(repositoryInfo: RepositoryResponse, resetDesiredState?: boolean) {\n if (\n repositoryInfo.remoteGitProvider === RemoteGitProvider.GitHub &&\n repositoryInfo.remoteRepositoryName &&\n repositoryInfo.remoteRepositoryOwner\n ) {\n this.setState({\n loadingPRs: true\n });\n GithubClient.getPRs({\n repo: repositoryInfo.remoteRepositoryName,\n owner: repositoryInfo.remoteRepositoryOwner,\n wantedPRs: repositoryInfo.revisionInformation?.activeTestMerges.map(tm => tm.number)\n })\n .then(prs => {\n this.setState({\n loadingPRs: false\n });\n if (prs.code === StatusCode.ERROR) {\n this.addError(prs.error);\n } else {\n this.setState({\n gitHubPRs: prs.payload\n });\n if (resetDesiredState)\n this.reloadDesiredState(repositoryInfo, true, false, prs.payload);\n }\n })\n .catch(e => {\n this.setState({\n loadingPRs: false\n });\n this.addError(new InternalError(ErrorCode.APP_FAIL, { jsError: e as Error }));\n });\n }\n }\n\n private async applyTestmerges(noBranch: boolean): Promise {\n const editOptions: RepositoryUpdateRequest = {};\n const repositoryInfo = this.state.repositoryInfo;\n const willReset = this.state.resetType !== ResetType.None;\n\n if (this.state.resetType === ResetType.Local) {\n editOptions.checkoutSha = repositoryInfo?.revisionInformation?.originCommitSha;\n } else if (this.state.resetType === ResetType.Remote) {\n editOptions.updateFromOrigin = true;\n editOptions.reference = repositoryInfo?.reference;\n }\n\n if (repositoryInfo && repositoryInfo?.remoteGitProvider === RemoteGitProvider.GitHub) {\n const testMergeArray: TestMergeParameters[] = [];\n [...this.state.desiredState.entries()].forEach(([number, prDesiredState]) => {\n if (!prDesiredState) return;\n const [current, commit, comment] = prDesiredState;\n //If we aren't resetting, ignore PRs we didn't touch\n if (current && !(willReset || noBranch)) return;\n\n testMergeArray.push({\n number: number,\n targetCommitSha: commit,\n comment\n });\n });\n if (testMergeArray.length) editOptions.newTestMerges = testMergeArray;\n }\n const testMergeArray = editOptions.newTestMerges ?? [];\n this.state.manualPRs.forEach(pr =>\n testMergeArray.push({\n number: pr\n })\n );\n if (testMergeArray.length) editOptions.newTestMerges = testMergeArray;\n\n this.setState({\n loading: true\n });\n const response = await RepositoryClient.editRepository(\n this.context.instance.id,\n editOptions\n );\n this.setState({\n loading: false\n });\n if (response.code === StatusCode.OK) {\n if (response.payload.activeJob) {\n this.setState({\n loading: true\n });\n JobsController.fastmode = 5;\n JobsController.registerCallback(response.payload.activeJob.id, job => {\n return this.fetchRepositoryInfo(\n job,\n job.errorCode === undefined && job.exceptionDetails === undefined\n );\n });\n JobsController.registerJob(response.payload.activeJob, this.context.instance.id);\n if (this.state.deployAfter) {\n const jobId = response.payload.activeJob.id;\n const deployinterval = setInterval(() => {\n const targetJob = JobsController.jobs.get(jobId);\n if (typeof targetJob?.progress === \"number\" || targetJob?.stoppedAt) {\n void DreamMakerClient.startCompile(this.context.instance.id).then(\n response => {\n if (response.code === StatusCode.ERROR) {\n this.addError(response.error);\n }\n }\n );\n clearInterval(deployinterval);\n }\n }, 5000);\n }\n } else {\n await this.fetchRepositoryInfo();\n }\n } else {\n this.addError(response.error);\n }\n }\n\n private reloadDesiredState(\n repoinfo: RepositoryResponse | null,\n reset: boolean,\n harderReset: boolean,\n gitHubPRs?: PullRequest[] | null\n ) {\n gitHubPRs = gitHubPRs ?? this.state.gitHubPRs;\n if (reset) {\n this.setState(prevState => {\n return {\n resetType: harderReset ? ResetType.None : prevState.resetType,\n manualPRs: new Set()\n };\n });\n }\n\n if (!repoinfo) return;\n\n this.setState(prevState => {\n const desiredState = prevState.desiredState;\n const newDesiredState = new Map(!reset ? desiredState : []);\n let updatingTMs = false;\n const regularReset = reset && !harderReset;\n repoinfo.revisionInformation?.activeTestMerges.forEach(pr => {\n const currentDesiredState = newDesiredState.get(pr.number);\n if (!reset) {\n //We want the PR gone, don't retestmerge it\n if (!currentDesiredState) return;\n //We want the PR updated to a specific commit, don't mess with it\n if (currentDesiredState && !currentDesiredState[0]) return;\n }\n\n const gitHubPR = gitHubPRs?.find(\n potentialGitHubPR => pr.number === potentialGitHubPR.number\n );\n\n const defaultDesiredState = gitHubPR?.state === \"merged\" ? false : true;\n if (regularReset && !defaultDesiredState) {\n newDesiredState.set(pr.number, null);\n updatingTMs = true;\n } else {\n const newHead = (regularReset ? gitHubPR?.head : null) ?? pr.targetCommitSha;\n if (regularReset && newHead !== pr.targetCommitSha) {\n updatingTMs = true;\n }\n newDesiredState.set(pr.number, [true, newHead, pr.comment ?? \"\"]);\n }\n });\n\n const resetType = updatingTMs\n ? repoinfo.reference === \"(no branch)\"\n ? ResetType.Local\n : ResetType.Remote\n : prevState.resetType;\n return {\n resetType,\n desiredState: newDesiredState\n };\n });\n }\n\n public render(): React.ReactNode {\n return (\n
    \n \n {this.renderErrors()}\n {/*Just like... hope its cloned if you don't have read access*/}\n\n {this.state.cloning ? (\n \n ) : this.state.repositoryInfo && !this.state.repositoryInfo.origin ? (\n this.renderPreClone()\n ) : (\n \n

    \n \n

    \n {this.state.repoBusy ? (\n \n ) : (\n \n {this.renderRepoInformation()}\n
    \n {this.renderSettings()}\n
    \n {this.renderTestMerges()}\n
    \n {this.renderReclone()}\n
    \n {this.renderDelete()}\n
    \n )}\n
    \n )}\n
    \n );\n }\n\n private renderErrors(): React.ReactNode {\n return (\n \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n \n );\n }\n\n private renderRepoInformation(): React.ReactNode {\n const repositoryInfo = this.state.repositoryInfo;\n if (!repositoryInfo) return ;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n {repositoryInfo.origin}
    \n \n \n \n {repositoryInfo.remoteRepositoryOwner}
    \n \n \n \n {repositoryInfo.remoteRepositoryName}
    \n );\n }\n\n private renderPreClone(): React.ReactNode {\n const cloneFields = {\n origin: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.url\"\n },\n reference: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.ref\",\n defaultValue: \"\"\n },\n updateSubmodules: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.enablesubmodules\",\n defaultValue: true\n }\n };\n\n return (\n \n

    \n \n

    \n {this.renderCredsModal()}\n {\n const repoCloneRequest: RepositoryCreateRequest = {\n ...result\n };\n\n if (result.reference == \"\") repoCloneRequest.reference = null;\n if (this.state.writableCredentials) {\n repoCloneRequest.accessUser = this.state.writableCredentials.accessUser;\n repoCloneRequest.accessToken =\n this.state.writableCredentials.accessToken;\n }\n\n const response = await RepositoryClient.cloneRepository(\n this.context.instance.id,\n repoCloneRequest\n );\n if (response.code === StatusCode.OK) {\n this.setState({ writableCredentials: null });\n await this.fetchRepositoryInfo(response.payload.activeJob ?? undefined);\n } else {\n this.addError(response.error);\n }\n }}\n includeAll\n alwaysAllowSave={!!this.state.writableCredentials}\n saveMessageId=\"generic.clone\"\n />\n
    \n );\n }\n\n private renderSettings(): React.ReactNode {\n const repositoryInfo = this.state.repositoryInfo;\n const editFields = {\n originCheckoutSha: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.origincheckoutsha\",\n disabled: true,\n defaultValue: repositoryInfo\n ? repositoryInfo.revisionInformation?.originCommitSha\n : \"\",\n tooltip: \"fields.instance.repository.origincheckoutsha.desc\"\n },\n checkoutSha: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.checkoutsha\",\n defaultValue: repositoryInfo ? repositoryInfo.revisionInformation?.commitSha : \"\",\n tooltip: \"fields.instance.repository.checkoutsha.desc\",\n disabled: !hasRepoRight(this.context.instancePermissionSet, RepositoryRights.SetSha)\n },\n reference: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.reference\",\n defaultValue: repositoryInfo ? repositoryInfo.reference : \"\",\n tooltip: \"fields.instance.repository.reference.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.SetReference\n )\n },\n committerName: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.committerName\",\n defaultValue: repositoryInfo ? repositoryInfo.committerName : \"\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeCommitter\n )\n },\n committerEmail: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.repository.committerEmail\",\n defaultValue: repositoryInfo ? repositoryInfo.committerEmail : \"\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeCommitter\n )\n },\n pushTestMergeCommits: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.pushTestMergeCommits\",\n defaultValue: repositoryInfo ? repositoryInfo.pushTestMergeCommits : false,\n tooltip: \"fields.instance.repository.pushTestMergeCommits.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeTestMergeCommits\n )\n },\n createGitHubDeployments: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.createGitHubDeployments\",\n defaultValue: repositoryInfo ? repositoryInfo.createGitHubDeployments : false,\n tooltip: \"fields.instance.repository.createGitHubDeployments.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeTestMergeCommits\n )\n },\n showTestMergeCommitters: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.showTestMergeCommitters\",\n defaultValue: repositoryInfo ? repositoryInfo.showTestMergeCommitters : false,\n tooltip: \"fields.instance.repository.showTestMergeCommitters.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeTestMergeCommits\n )\n },\n autoUpdatesKeepTestMerges: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.autoUpdatesKeepTestMerges\",\n defaultValue: repositoryInfo ? repositoryInfo.autoUpdatesKeepTestMerges : false,\n tooltip: \"fields.instance.repository.autoUpdatesKeepTestMerges.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeAutoUpdateSettings\n )\n },\n autoUpdatesSynchronize: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.autoUpdatesSynchronize\",\n defaultValue: repositoryInfo ? repositoryInfo.autoUpdatesSynchronize : false,\n tooltip: \"fields.instance.repository.autoUpdatesSynchronize.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeAutoUpdateSettings\n )\n },\n postTestMergeComment: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.postTestMergeComment\",\n defaultValue: repositoryInfo ? repositoryInfo.postTestMergeComment : false,\n tooltip: \"fields.instance.repository.postTestMergeComment.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeTestMergeCommits\n )\n },\n updateSubmodules: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.repository.updateSubmodules\",\n defaultValue: repositoryInfo ? repositoryInfo.updateSubmodules : false,\n tooltip: \"fields.instance.repository.updateSubmodules.desc\",\n disabled: !hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeSubmoduleUpdate\n )\n }\n };\n\n return (\n \n

    \n \n

    \n {this.renderCredsModal()}\n {\n this.setState({ loading: true, writableCredentials: null });\n const repoUpdateRequest: RepositoryUpdateRequest = { ...result };\n if (this.state.writableCredentials) {\n repoUpdateRequest.accessUser =\n this.state.writableCredentials.accessUser;\n repoUpdateRequest.accessToken =\n this.state.writableCredentials.accessToken;\n }\n\n const response = await RepositoryClient.editRepository(\n this.context.instance.id,\n repoUpdateRequest\n );\n this.setState({ loading: false });\n if (response.code === StatusCode.OK) {\n if (response.payload.activeJob) {\n this.setState({ loading: true });\n JobsController.fastmode = 5;\n JobsController.registerCallback(response.payload.activeJob.id, () =>\n this.fetchRepositoryInfo(undefined, true)\n );\n JobsController.registerJob(\n response.payload.activeJob,\n this.context.instance.id\n );\n } else {\n await this.fetchRepositoryInfo();\n }\n } else {\n this.addError(response.error);\n }\n }}\n alwaysAllowSave={!!this.state.writableCredentials}\n />\n
    \n );\n }\n\n private renderCredDetails(): React.ReactNode {\n const credMode = this.state.credMode;\n const writableCredentials = this.state.writableCredentials;\n const repoInfo = this.state.repositoryInfo;\n\n const [credModeName] = Object.entries(CredentialsType)\n //filters out reverse mapping\n .find(([, value]) => value == credMode)!;\n\n const localeId = `fields.instance.repository.creds.mode.${credModeName}`;\n\n const baseFields = {\n username: {\n type: FieldType.String as FieldType.String,\n name: localeId + \".username\",\n tooltip: localeId + \".username.desc\",\n defaultValue: writableCredentials?.accessUser ?? repoInfo?.accessUser ?? \"\"\n }\n };\n\n const regularFields = {\n ...baseFields,\n token: {\n type: FieldType.Password as FieldType.Password,\n name: localeId + \".token\",\n tooltip: localeId + \".token.desc\",\n defaultValue: writableCredentials?.accessToken ?? \"\"\n }\n };\n\n const privateKeyFields = {\n ...baseFields,\n clientId: {\n type: FieldType.String as FieldType.String,\n name: localeId + \".id\",\n tooltip: localeId + \".id.desc\"\n },\n privateKey: {\n type: FieldType.TextArea as FieldType.TextArea,\n name: localeId + \".pk\",\n tooltip: localeId + \".pk.desc\"\n }\n };\n\n return (\n \n \n {\n const username = result.username?.trim();\n const clientId = result.clientId?.trim();\n const privateKey = result.privateKey?.trim();\n\n if (!username?.length || !clientId?.length || !privateKey?.length) {\n alert(\"Please enter a username, client/app ID, and private key!\");\n return;\n }\n\n const tgsEncodedAppPrivateKey = `TGS_PK_${clientId}:${btoa(privateKey)}`;\n\n this.setState({\n writableCredentials: {\n accessUser: username,\n accessToken: tgsEncodedAppPrivateKey\n },\n showCredsModal: false\n });\n }}\n />\n
    \n \n {\n const username = result.username?.trim();\n const token = result.token?.trim();\n\n if (!username?.length || !token?.length) {\n alert(\n `Please enter both a username and a ${credMode == CredentialsType.Password ? \"password\" : \"token\"}!`\n );\n return;\n }\n\n this.setState({\n writableCredentials: {\n accessUser: username,\n accessToken: token\n },\n showCredsModal: false\n });\n }}\n />\n \n
    \n );\n }\n\n private renderCredsModal(): React.ReactNode {\n const canCreds = hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.ChangeCredentials\n );\n const editButton = (\n \n );\n const credMode = this.state.credMode;\n\n return (\n \n this.setState({ showCredsModal: false })}\n centered\n size=\"lg\">\n \n \n \n \n \n \n \n this.setState({ credMode: newCredentialsType })\n }\n />\n {credMode != CredentialsType.None ? (\n this.renderCredDetails()\n ) : (\n \n \n this.setState({\n showCredsModal: false,\n writableCredentials: {\n accessUser: \"\",\n accessToken: \"\"\n }\n })\n }>\n \n \n \n this.setState({\n showCredsModal: false,\n writableCredentials: null\n })\n }>\n \n \n \n )}\n {credMode != CredentialsType.None ? (\n \n \n this.setState({\n showCredsModal: false,\n writableCredentials: null\n })\n }>\n \n \n \n ) : null}\n \n \n
    \n {}}\n disabled\n hideReadOnly\n additionalAppend={editButton}\n forceChanged={!!this.state.writableCredentials}\n />\n
    \n
    \n );\n }\n\n private renderTestMerges(): React.ReactNode {\n const repositoryInfo = this.state.repositoryInfo;\n\n const canDeploy = hasDreamMakerRight(\n this.context.instancePermissionSet,\n DreamMakerRights.Compile\n );\n const canAdd = hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.MergePullRequest\n );\n const canUpdate =\n hasRepoRight(this.context.instancePermissionSet, RepositoryRights.Read) &&\n hasRepoRight(this.context.instancePermissionSet, RepositoryRights.UpdateBranch);\n\n const testmergedPRs = new Map();\n if (repositoryInfo) {\n repositoryInfo.revisionInformation?.activeTestMerges.forEach(pr =>\n testmergedPRs.set(pr.number, pr)\n );\n }\n const sortedPRs =\n this.state.gitHubPRs?.sort((a, b) => {\n if (testmergedPRs.has(a.number) !== testmergedPRs.has(b.number)) {\n return testmergedPRs.has(a.number) ? -1 : 1;\n }\n if (a.testmergelabel !== b.testmergelabel) {\n return a.testmergelabel ? -1 : 1;\n }\n if (a.mergeable !== b.mergeable) {\n return a.mergeable ? -1 : 1;\n }\n return a.number - b.number;\n }) ?? [];\n const filteredPendingActions = sortedPRs\n .map(pr => {\n const desiredPRState = this.state.desiredState.get(pr.number);\n const tmInfo = !repositoryInfo\n ? undefined\n : repositoryInfo?.revisionInformation?.activeTestMerges.find(\n activePR => activePR.number === pr.number\n );\n\n if (desiredPRState) {\n if (!tmInfo) {\n return [PRState.added, pr];\n } else if (tmInfo.targetCommitSha !== desiredPRState[1]) {\n return [PRState.updated, pr];\n } else if ((tmInfo.comment ?? \"\") !== desiredPRState[2]) {\n return [PRState.rename, pr];\n } else {\n return [PRState.reapply, pr];\n }\n }\n if (!this.state.desiredState.get(pr.number)) {\n if (!tmInfo) return null;\n\n return [PRState.removed, pr];\n }\n return null;\n })\n .filter(value => value !== null) as [PRState, PullRequest][];\n const sortedPendingActions = filteredPendingActions.sort((a, b) => {\n const order = [PRState.removed, PRState.reapply, PRState.added, PRState.updated];\n for (const state of order) {\n if (\n // @ts-expect-error again, ts doesn't want people to use xor on booleans, and I disagree\n (a[0] === state) ^\n (b[0] === state)\n ) {\n return a[0] === state ? -1 : 1;\n }\n }\n return 0;\n });\n const noBranch = !repositoryInfo ? false : repositoryInfo.reference === \"(no branch)\";\n const forceReset = filteredPendingActions.some(\n action => action[0] != PRState.added && action[0] != PRState.reapply\n );\n\n //PRs we haven't touched, only used to display prs to reapply after reset\n const noPendingChanges =\n filteredPendingActions.filter(([state]) => state !== PRState.reapply).length === 0 &&\n this.state.resetType === ResetType.None &&\n !this.state.manualPRs.size;\n\n if (repositoryInfo && repositoryInfo.remoteGitProvider == RemoteGitProvider.Unknown)\n return ;\n\n return (\n
    \n \n \n \n \n \n
      \n {noPendingChanges ? (\n
    • \n \n
    • \n ) : (\n \n {repositoryInfo && noBranch ? (\n
    • \n \n
    • \n ) : this.state.resetType === ResetType.Remote ? (\n
    • \n \n
    • \n ) : this.state.resetType === ResetType.Local ? (\n
    • \n \n
    • \n ) : null}\n {repositoryInfo &&\n repositoryInfo.remoteGitProvider === RemoteGitProvider.GitHub\n ? sortedPendingActions.map(([state, pr]) => {\n const prDesiredState = this.state.desiredState.get(\n pr.number\n );\n\n if (\n state === PRState.reapply &&\n !(\n this.state.resetType !== ResetType.None ||\n noBranch\n )\n )\n return null;\n\n let targetCommit = prDesiredState\n ? prDesiredState[1].substring(0, 7)\n : null;\n\n const gitHubPR = this.state.gitHubPRs?.find(\n gitHubPR => pr.number === gitHubPR.number\n );\n\n if (\n !targetCommit ||\n gitHubPR?.head.startsWith(targetCommit)\n )\n targetCommit = `HEAD (${(\n targetCommit ?? gitHubPR!.head\n ).substring(0, 7)})`;\n\n return (\n
    • \n \n
    • \n );\n })\n : null}\n {[...this.state.manualPRs.values()].map(pr => (\n
    • \n \n
    • \n ))}\n {this.state.deployAfter ? (\n
    • \n \n
    • \n ) : null}\n
      \n )}\n
    \n \n this.setState({ resetType: ResetType.Remote })}\n variant={\n this.state.resetType === ResetType.Remote\n ? \"secondary\"\n : \"primary\"\n }>\n \n \n (\n \n \n \n )}>\n this.setState({ resetType: ResetType.Local })}\n variant={\n this.state.resetType === ResetType.Local\n ? \"secondary\"\n : \"primary\"\n }>\n \n \n \n this.setState({ resetType: ResetType.None })}\n variant={\n this.state.resetType === ResetType.None\n ? \"secondary\"\n : \"primary\"\n }>\n \n \n \n {(configOptions.manualpr.value as boolean) ||\n !repositoryInfo ||\n !this.state.gitHubPRs ||\n repositoryInfo.remoteGitProvider === RemoteGitProvider.GitLab ? (\n
    \n this.setState({ manualPR: newPR })}\n disabled={!canAdd}\n />\n \n {\n this.setState(prevState => {\n return {\n manualPRs: new Set([\n ...prevState.manualPRs.values(),\n this.state.manualPR\n ]),\n lastManualPR: this.state.manualPR\n };\n });\n }}>\n \n \n \n
    \n ) : null}\n this.setState({ deployAfter: newVal })}\n />\n
    \n \n this.reloadDesiredState(repositoryInfo, true, true)}>\n \n \n void this.applyTestmerges(noBranch)}>\n \n \n \n
    \n {this.state.loadingPRs ? (\n \n ) : !repositoryInfo ? (\n \n ) : repositoryInfo &&\n repositoryInfo.remoteGitProvider === RemoteGitProvider.GitHub ? (\n \n

    \n \n

    \n
    \n \n \n {sortedPRs.map(pr => (\n \n this.setState(prevState => {\n return {\n resetType:\n prevState.resetType === ResetType.None\n ? ResetType.Remote\n : prevState.resetType,\n desiredState: new Map(\n prevState.desiredState\n ).set(pr.number, null)\n };\n })\n }\n onSelectCommit={(commit, comment) =>\n this.setState(prevState => {\n return {\n desiredState: new Map(\n prevState.desiredState\n ).set(pr.number, [false, commit, comment])\n };\n })\n }\n onError={error => this.addError(error)}\n />\n ))}\n \n
    \n
    \n ) : null}\n
    \n );\n }\n\n private renderReclone(): React.ReactNode {\n const canReclone = hasRepoRight(\n this.context.instancePermissionSet,\n RepositoryRights.Reclone\n );\n\n return (\n \n

    \n \n

    \n \n \n \n
    \n \n this.setState({\n showRecloneModal: true\n })\n }>\n \n \n \n this.setState({\n showRecloneModal: false\n })\n }\n centered>\n \n \n \n \n \n \n \n \n \n \n \n \n this.setState({\n showRecloneModal: false\n })\n }>\n \n \n \n void (async () => {\n this.setState({\n showRecloneModal: false,\n loading: true\n });\n const response = await RepositoryClient.recloneRepository(\n this.context.instance.id\n );\n this.setState({\n loading: false\n });\n if (response.code === StatusCode.OK) {\n if (response.payload.activeJob) {\n this.setState({\n loading: true\n });\n JobsController.fastmode = 5;\n JobsController.registerCallback(\n response.payload.activeJob.id,\n job => {\n return this.fetchRepositoryInfo(\n job,\n job.errorCode === undefined &&\n job.exceptionDetails === undefined\n );\n }\n );\n JobsController.registerJob(\n response.payload.activeJob,\n this.context.instance.id\n );\n } else {\n await this.fetchRepositoryInfo();\n }\n } else {\n this.addError(response.error);\n }\n })()\n }>\n \n \n \n \n
    \n );\n }\n\n private renderDelete(): React.ReactNode {\n const canDelete = hasRepoRight(this.context.instancePermissionSet, RepositoryRights.Delete);\n\n return (\n \n

    \n \n

    \n \n \n \n
    \n \n this.setState({\n showDeleteModal: true\n })\n }>\n \n \n \n this.setState({\n showDeleteModal: false\n })\n }\n centered>\n \n \n \n \n \n \n \n \n \n \n \n \n this.setState({\n showDeleteModal: false\n })\n }>\n \n \n \n void (async () => {\n this.setState({\n showDeleteModal: false,\n loading: true\n });\n const response = await RepositoryClient.deleteRepository(\n this.context.instance.id\n );\n this.setState({\n loading: false\n });\n if (response.code === StatusCode.OK) {\n if (response.payload.activeJob) {\n this.setState({\n loading: true\n });\n JobsController.fastmode = 5;\n JobsController.registerCallback(\n response.payload.activeJob.id,\n job => {\n return this.fetchRepositoryInfo(\n job,\n job.errorCode === undefined &&\n job.exceptionDetails === undefined\n );\n }\n );\n JobsController.registerJob(\n response.payload.activeJob,\n this.context.instance.id\n );\n } else {\n await this.fetchRepositoryInfo();\n }\n } else {\n this.addError(response.error);\n }\n })()\n }>\n \n \n \n \n
    \n );\n }\n}\n\nRepository.contextType = InstanceEditContext;\nexport default Repository;\n"],"names":["SimpleToolTip","props","React","OverlayTrigger","show","overlay","Tooltip","id","tooltipid","FormattedMessage","children","TestMergeRow","pr","testmergeinfo","repoInfo","finalState","onRemove","onSelectCommit","onError","showDetails","_setShowDetails","useState","setShowDetails","_newVal","prevState","newVal","loadCommits","showModal","setShowModal","selectedCommit","setSelectedCommit","head","comment","setComment","commits","setCommits","extraCommit","setExtraCommit","instanceEditContext","useContext","InstanceEditContext","useCallback","async","force","response","GithubClient","getPRCommits","owner","remoteRepositoryOwner","repo","remoteRepositoryName","wantedCommit","targetCommitSha","code","StatusCode","ERROR","error","commitMap","Map","payload","forEach","commit","set","sha","useEffect","activeCommit","has","get","commitOptions","values","map","name","value","current","latest","disabled","push","canAdd","hasRepoRight","instancePermissionSet","RepositoryRights","MergePullRequest","canReset","Read","UpdateBranch","className","number","Badge","pill","style","backgroundColor","closed","merged","open","state","testmergelabel","variant","mergeable","href","link","target","rel","title","author","undefined","Button","onClick","FontAwesomeIcon","icon","fixedWidth","e","shiftKey","val","active","colSpan","Collapse","in","mergedBy","url","substring","Modal","onHide","centered","size","Header","closeButton","Title","Body","SelectSearch","filterOptions","fuzzySearch","search","options","autoComplete","renderOption","option","snapshot","_extends","type","onChange","Loading","text","width","widthUnit","InputField","FieldType","String","newComment","defaultValue","Footer","PRState","ResetType","CredentialsType","Repository","constructor","super","this","errors","repositoryInfo","writableCredentials","credMode","PrivateKey","showCredsModal","loading","cloning","unableToHookClone","gitHubPRs","manualPRs","Set","resetType","Remote","desiredState","showDeleteModal","showRecloneModal","manualPR","lastManualPR","deployAfter","repoBusy","loadingPRs","fetchRepositoryInfo","bind","addError","setState","Array","from","componentDidMount","hasDreamMakerRight","context","DreamMakerRights","Compile","cloneJob","resetDesiredState","reloadDesiredState","RepositoryClient","getRepository","instance","ErrorCode","HTTP_DATA_INEGRITY","originalErrorMessage","errorCode","TGSErrorCode","RepoCloning","JobsController","registerCallback","response2","JobsClient","listActiveJobs","page","pageSize","OK","content","sort","a","b","find","job","description","includes","RepoBusy","reloadPRs","remoteGitProvider","RemoteGitProvider","GitHub","getPRs","wantedPRs","revisionInformation","activeTestMerges","tm","then","prs","catch","InternalError","APP_FAIL","jsError","applyTestmerges","noBranch","editOptions","willReset","None","Local","checkoutSha","originCommitSha","updateFromOrigin","reference","testMergeArray","entries","prDesiredState","length","newTestMerges","editRepository","activeJob","fastmode","exceptionDetails","registerJob","jobId","deployinterval","setInterval","targetJob","jobs","progress","stoppedAt","DreamMakerClient","startCompile","clearInterval","repoinfo","reset","harderReset","newDesiredState","updatingTMs","regularReset","currentDesiredState","gitHubPR","potentialGitHubPR","newHead","render","DebugJsonViewer","obj","renderErrors","origin","renderPreClone","renderRepoInformation","renderSettings","renderTestMerges","renderReclone","renderDelete","err","index","ErrorAlert","key","onClose","prev","newarr","GenericAlert","cloneFields","updateSubmodules","Boolean","renderCredsModal","InputForm","fields","hideDisabled","onSave","repoCloneRequest","result","accessUser","accessToken","cloneRepository","includeAll","alwaysAllowSave","saveMessageId","editFields","originCheckoutSha","tooltip","commitSha","SetSha","SetReference","committerName","ChangeCommitter","committerEmail","pushTestMergeCommits","ChangeTestMergeCommits","createGitHubDeployments","showTestMergeCommitters","autoUpdatesKeepTestMerges","ChangeAutoUpdateSettings","autoUpdatesSynchronize","postTestMergeComment","ChangeSubmoduleUpdate","repoUpdateRequest","renderCredDetails","credModeName","Object","localeId","baseFields","username","regularFields","token","Password","privateKeyFields","clientId","privateKey","TextArea","display","trim","alert","tgsEncodedAppPrivateKey","btoa","canCreds","ChangeCredentials","editButton","Enum","enum","newCredentialsType","hideReadOnly","additionalAppend","forceChanged","canDeploy","canUpdate","testmergedPRs","sortedPRs","filteredPendingActions","desiredPRState","tmInfo","activePR","updated","rename","reapply","added","removed","filter","sortedPendingActions","order","forceReset","some","action","noPendingChanges","Unknown","Card","targetCommit","startsWith","ButtonGroup","placement","configOptions","manualpr","GitLab","Number","min","newPR","Table","striped","hover","slice","canReclone","Reclone","recloneRepository","canDelete","Delete","deleteRepository","contextType"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js b/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js new file mode 100644 index 00000000..66ecce41 --- /dev/null +++ b/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3718],{3718:function(e,n,t){t.r(n),t.d(n,{default:function(){return s}});var r=t(6540),a=t(472),l=t(8065),o=t(7602);class s extends r.Component{render(){return r.createElement(a.A,{className:"bg-transparent",border:"danger"},r.createElement(a.A.Header,{className:"bg-danger"},r.createElement(l.A,{id:"error.somethingwentwrong"})),r.createElement(a.A.Body,null,r.createElement(a.A.Title,null,r.createElement(l.A,{id:"error.notfound"})),r.createElement(a.A.Text,{as:"pre",className:"bg-transparent text-danger"},r.createElement("code",null,`Webpanel Version: ${o.xv}\nWebpanel Mode: ${o.g}\nCurrent route: ${window.location.toString()}`))))}}}}]); +//# sourceMappingURL=3718.33cde3477ffa8ad7b949.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js.map b/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js.map new file mode 100644 index 00000000..e936c72b --- /dev/null +++ b/webpanel/6.6.0/3718.33cde3477ffa8ad7b949.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3718.33cde3477ffa8ad7b949.bundle.js","mappings":"8OAMe,MAAMA,UAAiBC,EAAAA,UAC3BC,MAAAA,GACH,OACID,EAAAA,cAACE,EAAAA,EAAI,CAACC,UAAU,iBAAiBC,OAAO,UACpCJ,EAAAA,cAACE,EAAAA,EAAKG,OAAM,CAACF,UAAU,aACnBH,EAAAA,cAACM,EAAAA,EAAgB,CAACC,GAAG,8BAEzBP,EAAAA,cAACE,EAAAA,EAAKM,KAAI,KACNR,EAAAA,cAACE,EAAAA,EAAKO,MAAK,KACPT,EAAAA,cAACM,EAAAA,EAAgB,CAACC,GAAG,oBAEzBP,EAAAA,cAACE,EAAAA,EAAKQ,KAAI,CAACC,GAAI,MAAOR,UAAU,8BAC5BH,EAAAA,cAAA,YACK,qBAAqBY,EAAAA,sBAA2BC,EAAAA,qBAAwBC,OAAOC,SAASC,gBAMjH,E","sources":["webpack://tgstation-server-control-panel/./src/components/utils/NotFound.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport Card from \"react-bootstrap/Card\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { MODE, VERSION } from \"../../definitions/constants\";\n\nexport default class NotFound extends React.Component {\n public render(): ReactNode {\n return (\n \n \n \n \n \n \n \n \n \n \n {`Webpanel Version: ${VERSION}\\nWebpanel Mode: ${MODE}\\nCurrent route: ${window.location.toString()}`}\n \n \n \n \n );\n }\n}\n"],"names":["NotFound","React","render","Card","className","border","Header","FormattedMessage","id","Body","Title","Text","as","VERSION","MODE","window","location","toString"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js b/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js new file mode 100644 index 00000000..bd7cd3e3 --- /dev/null +++ b/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3763],{3763:function(e,t,a){a.r(t);var n=a(7875),i=a(6188),s=a(6784),c=a(6540),l=a(5038),r=a(3524),o=a(5615),d=a(8065),h=a(8798),m=a(4614),p=a(2576),u=a(4173),f=a(5301),g=a(7621),E=a(4118),C=a(7567),v=a(1723),B=a(6113),y=a(6795),S=a(7255);function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const a=Array.from(t.errors);return a.push(e),{errors:a}}))}async refresh(){if((0,E.OQ)(this.context.instancePermissionSet,p.B5.Read)){this.setState({loading:!0});let e=1,t=[];for(let a=1;a<=e;++a){const n=await m.A.listChatBots(this.context.instance.id,{page:a});if(n.code!==f.s.OK){this.addError(n.error);break}e=n.payload.totalPages,t=t.concat(n.payload.content)}t.forEach((e=>e.loadedWithConnectionString=!1)),this.setState({chatBots:t,loading:!1})}}async addChatBot(e){let t,a,n;if(!e.name)return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.missing.name"}));switch(e.provider){case p.k_.Discord:if(a=e,!a.botToken)return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.missing.token"}));t=`${a.botToken};${a.dmOutputDisplay};0;${a.deploymentBranding?"1":"0"}`;break;case p.k_.Irc:if(n=e,!n.address)return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.missing.address"}));if(!n.nickname)return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.missing.nick"}));t=`${n.address};${n.port};${n.nickname};${n.useSsl?"1":"0"}`,n.password&&(t+=`;${n.passwordType};${n.password}`);break;default:throw new Error("Bad provider!")}this.setState({loading:!0});const i=await m.A.createChatBot(this.context.instance.id,{provider:e.provider,name:e.name,enabled:e.enabled,connectionString:t,channelLimit:e.channelLimit,reconnectionInterval:e.reconnectionInterval});if(i.code===f.s.OK){const e=i.payload;e.loadedWithConnectionString=!0;const t=[...this.state.chatBots];t.push(e),this.setState({chatBots:t,selectedChatBot:e,selectedAddNode:!1})}else this.addError(i.error);this.setState({loading:!1})}async reloadChatBot(e){this.setState({loading:!0});const t=await m.A.getChatBot(this.context.instance.id,e.id);if(t.code===f.s.OK){(e=t.payload).loadedWithConnectionString=!0;const a=[...this.state.chatBots],n=a.indexOf(e);a[n]=e,this.setState({chatBots:a,selectedChatBot:e})}else this.addError(t.error);this.setState({loading:!1})}async editChatBot(e){this.setState({loading:!0});let t=this.state.selectedChatBot;const a=await m.A.updateChatBot(this.context.instance.id,{...e,id:t.id});if(a.code===f.s.OK){if(a.payload){const e=[...this.state.chatBots],n=e.indexOf(t);t=a.payload,t.loadedWithConnectionString=!0,e[n]=t,this.setState({chatBots:e,selectedChatBot:t})}}else this.addError(a.error);this.setState({loading:!1})}async addChatChannel(e,t){if(!t.channelData)return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.missing.channel"}));if(e.provider===p.k_.Discord){if(!new RegExp("^[0-9]+$").test(t.channelData))return void alert(this.props.intl.formatMessage({id:"view.instance.chat.create.invalid.discord"}))}this.setState({loading:!0});const a=[...e.channels??[]];a.push(t);const n=await m.A.updateChatBot(this.context.instance.id,{channels:a,id:e.id});if(n.code===f.s.OK){if(n.payload){const t=[...this.state.chatBots],a=t.indexOf(e);(e=n.payload).loadedWithConnectionString=!0,t[a]=e,this.setState({chatBots:t,selectedChatBot:e,selectedChannel:e.channels[e.channels.length-1]})}}else this.addError(n.error);this.setState({loading:!1})}async editChatChannel(e,t){this.setState({loading:!0});const a=[...e.channels??[]],n=a[a.indexOf(this.state.selectedChannel)];Object.assign(n,t);const i=await m.A.updateChatBot(this.context.instance.id,{channels:a,id:e.id});if(i.code===f.s.OK){if(i.payload){const t=[...this.state.chatBots],a=t.indexOf(e);(e=i.payload).loadedWithConnectionString=!0,t[a]=e,this.setState({chatBots:t,selectedChatBot:e})}}else this.addError(i.error);this.setState({loading:!1})}async deleteChatChannel(e,t){if(!confirm(this.props.intl.formatMessage({id:"view.instance.chat.delete.channel.confirm"},{channelName:t.tag??t.channelData})))return;this.setState({loading:!0});const a=[...e.channels??[]],n=a.indexOf(t);a.splice(n,1);const i=await m.A.updateChatBot(this.context.instance.id,{channels:a,id:e.id});if(i.code===f.s.OK){if(i.payload){const t=[...this.state.chatBots],a=t.indexOf(e);(e=i.payload).loadedWithConnectionString=!0,t[a]=e,this.setState({chatBots:t,selectedChatBot:e,selectedChannel:null})}}else this.addError(i.error);this.setState({loading:!1})}async deleteChatBot(e){if(!confirm(this.props.intl.formatMessage({id:"view.instance.chat.delete.confirm"},{botName:e.name})))return;this.setState({loading:!0});const t=await m.A.deleteChatBot(this.context.instance.id,e.id);if(t.code===f.s.OK){const t=[...this.state.chatBots],a=t.indexOf(e);t.splice(a,1),this.setState({chatBots:t,selectedChatBot:null})}else this.addError(t.error);this.setState({loading:!1})}render(){if(this.state.loading)return c.createElement(S.default,{text:"loading.chat"});const e=(0,E.OQ)(this.context.instancePermissionSet,p.B5.Read),t=(0,E.OQ)(this.context.instancePermissionSet,p.B5.Create);return c.createElement("div",{className:"text-center"},c.createElement(y.Q,{obj:this.state}),c.createElement("h1",null,c.createElement(d.A,{id:"view.instance.chat"})),this.state.errors.map(((e,t)=>{if(e)return c.createElement(C.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const a=Array.from(e.errors);return a[t]=void 0,{errors:a}}))})})),c.createElement("div",{className:"d-flex flex-row"},c.createElement("div",{className:"text-left",style:{paddingRight:"16px",maxHeight:"800px",minWidth:"300px",overflowY:"scroll"}},c.createElement("ul",{className:"browser-ul"},e?this.state.chatBots.map(this.renderChatBotBrowser):c.createElement(c.Fragment,null),t?c.createElement("li",{className:"browser-li"},c.createElement(l.A,{placement:"top",show:!(this.state.chatBots.lengthc.createElement(r.A,w({id:"too-many-chat-bots"},e),c.createElement(d.A,{id:"view.instance.chat.limit",values:{max:this.context.instance.chatBotLimit}}))},c.createElement(o.A,{className:"nowrap",disabled:this.state.chatBots.length>=this.context.instance.chatBotLimit,onClick:()=>this.setState({selectedChatBot:null,selectedChannel:null,selectedAddNode:!(this.state.selectedAddNode&&!this.state.selectedChatBot)})},c.createElement(s.g,{icon:i.QLR}),"\xa0",c.createElement(d.A,{id:"view.instance.chat.create"})))):c.createElement(c.Fragment,null))),c.createElement("div",{className:"flex-fill flex-column text-center align-self-center",style:{padding:"16px"}},this.state.selectedChannel?this.renderAddEditChannel(!1):this.state.selectedChatBot&&!this.state.selectedAddNode?this.renderAddEditChatBot(!1):this.state.selectedAddNode?this.state.selectedChatBot?this.renderAddEditChannel(!0):this.renderAddEditChatBot(!0):c.createElement("h4",null,c.createElement(d.A,{id:"view.instance.chat.select_item"})))))}renderChatBotBrowser(e){const t=this.state.selectedChatBot===e,a=(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteChannels);return c.createElement("li",{key:e.id,className:"browser-li"},c.createElement(o.A,{variant:t?"secondary":"primary",onClick:()=>this.setState((a=>({selectedChatBot:!t||this.state.selectedChannel||this.state.selectedAddNode?e:null,selectedChannel:null,selectedAddNode:!1,addBotProvider:t?a.addBotProvider:e.provider}))),className:"nowrap"},c.createElement(s.g,{icon:e.provider===p.k_.Discord?n._2G:i.DN2}),"\xa0",e.name),a&&t?c.createElement("ul",{className:"browser-ul"},e.channels.map((e=>{const t=this.state.selectedChannel===e;return c.createElement("li",{key:e.channelData,className:"browser-li"},c.createElement(o.A,{variant:t?"secondary":"primary",onClick:()=>this.setState({selectedChannel:t?null:e}),className:"nowrap"},c.createElement(s.g,{icon:i.CYF}),"\xa0",e.tag?`(${e.tag})`:e.channelData))})),c.createElement("li",{className:"browser-li"},c.createElement(l.A,{placement:"top",show:!(e.channels.lengthc.createElement(r.A,w({id:"too-many-chat-channels"},t),c.createElement(d.A,{id:"view.instance.chat.limit.channels",values:{max:e.channelLimit}}))},c.createElement(o.A,{className:"nowrap",disabled:e.channels.length>=e.channelLimit,onClick:()=>this.setState({selectedChannel:null,selectedAddNode:!(this.state.selectedAddNode&&!this.state.selectedChannel)})},c.createElement(s.g,{icon:i.QLR}),"\xa0",c.createElement(d.A,{id:"view.instance.chat.create.channel"}))))):c.createElement(c.Fragment,null))}async exportChannelsToClipboard(){const e=this.state.selectedChatBot.channels,t=JSON.stringify(e);await navigator.clipboard.writeText(t),this.setState({flashExport:!0}),await new Promise((e=>setTimeout(e,2e3))),this.setState({flashExport:!1})}async importChannelsFromClipboard(){let e,t;if(this.setState({loading:!0}),navigator.clipboard.readText)e=await navigator.clipboard.readText();else if(e=prompt("Your browser doesn't allow clipboard reading. Please paste your entry here."),!e)return void this.setState({loading:!1});try{t=JSON.parse(e)}catch(e){const t=e instanceof Error?{jsError:e}:{void:!0};return this.addError(new u.Ay(u.O4.BAD_CHANNELS_JSON,t)),void this.setState({loading:!1})}let a=this.state.selectedChatBot;const n=await m.A.updateChatBot(this.context.instance.id,{channels:t,id:a.id});if(n.code===f.s.OK){if(n.payload){const e=[...this.state.chatBots],t=e.indexOf(a);a=n.payload,a.loadedWithConnectionString=!0,e[t]=a,this.setState({chatBots:e,selectedChatBot:a})}}else this.addError(n.error);this.setState({loading:!1})}renderAddEditChatBot(e){const t={type:v.PU.Enum,name:"fields.instance.chat.provider",defaultValue:this.state.addBotProvider,enum:p.k_,noLocalize:!0},a={...t,onChange:e=>{this.setState({addBotProvider:e})}},h={provider:{...t},name:{type:v.PU.String,name:"fields.instance.chat.name",tooltip:"fields.instance.chat.name.tip"},enabled:{type:v.PU.Boolean,name:"fields.instance.chat.enabled",tooltip:"fields.instance.chat.enabled.tip",defaultValue:!0},channelLimit:{type:v.PU.Number,name:"fields.instance.chat.limit",tooltip:"fields.instance.chat.limit.tip",min:0,max:65535,defaultValue:10},reconnectionInterval:{type:v.PU.Number,name:"fields.instance.chat.reconnect",tooltip:"fields.instance.chat.reconnect.tip",min:0,defaultValue:5}};if(e){const e={...h,botToken:{type:v.PU.Password,name:"fields.instance.chat.create.discord.token",tooltip:"fields.instance.chat.create.discord.token.tip"},dmOutputDisplayType:{type:v.PU.Enum,name:"fields.instance.chat.create.discord.output",tooltip:"fields.instance.chat.create.discord.output.tip",defaultValue:A.Always,enum:A,noLocalize:!0},deploymentBranding:{type:v.PU.Boolean,name:"fields.instance.chat.create.discord.branding",tooltip:"fields.instance.chat.create.discord.branding.tip",defaultValue:!0}},t={...h,address:{type:v.PU.String,name:"fields.instance.chat.create.irc.address",tooltip:"fields.instance.chat.create.irc.address.tip"},port:{type:v.PU.Number,name:"fields.instance.chat.create.irc.port",min:1,max:65535,defaultValue:6697},nickname:{type:v.PU.String,name:"fields.instance.chat.create.irc.nick"},password:{type:v.PU.Password,name:"fields.instance.chat.create.irc.pass",tooltip:"fields.instance.chat.create.irc.pass.tip"},passwordType:{type:v.PU.Enum,name:"fields.instance.chat.create.irc.passtype",defaultValue:x.SASL,enum:x,noLocalize:!0},useSsl:{type:v.PU.Boolean,name:"fields.instance.chat.create.irc.ssl",tooltip:"fields.instance.chat.create.irc.ssl.tip"}};return h.provider.disabled=!0,c.createElement(c.Fragment,null,c.createElement("h5",null,c.createElement(d.A,{id:"view.instance.chat.create"})),c.createElement("hr",null),c.createElement(v.Ay,a),c.createElement("hr",null),c.createElement(B.A,{key:`bot-create-form-${this.state.addBotProvider}`,hideDisabled:!0,includeAll:!0,saveMessageId:"fields.instance.chat.create.save",fields:this.state.addBotProvider===p.k_.Discord?e:t,onSave:e=>{this.addChatBot(e)}}))}const m=this.state.selectedChatBot,u=(0,E.OQ)(this.context.instancePermissionSet,p.B5.ReadConnectionString),f=(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteConnectionString),g={...h,connectionString:{type:v.PU.String,name:"fields.instance.chat.edit.connection",tooltip:"fields.instance.chat.edit.connection.tip",defaultValue:u?m.loadedWithConnectionString?m.connectionString:this.props.intl.formatMessage({id:"fields.instance.chat.edit.connection.unloaded"}):this.props.intl.formatMessage({id:"fields.instance.chat.edit.connection.deny"}),disabled:!f}};g.name.defaultValue=m.name,g.enabled.defaultValue=m.enabled,g.channelLimit.defaultValue=m.channelLimit,g.reconnectionInterval.defaultValue=m.reconnectionInterval,g.name.disabled=!(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteName),g.enabled.disabled=!(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteEnabled),g.channelLimit.disabled=!(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteChannelLimit),g.reconnectionInterval.disabled=!(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteReconnectionInterval);const C=(0,E.OQ)(this.context.instancePermissionSet,p.B5.Delete),y=(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteChannels);return c.createElement(c.Fragment,null,c.createElement("h5",null,c.createElement(s.g,{icon:m.provider===p.k_.Discord?n._2G:i.DN2}),"\xa0",m.name),c.createElement("hr",null),m.loadedWithConnectionString?c.createElement(c.Fragment,null):c.createElement(c.Fragment,null,c.createElement(l.A,{placement:"top",show:!u&&void 0,overlay:e=>c.createElement(r.A,w({id:"chat-bot-read-conn-perm"},e),c.createElement(d.A,{id:"view.instance.chat.reload.deny"}))},c.createElement(o.A,{className:"nowrap",disabled:!u,onClick:()=>{this.reloadChatBot(m)}},c.createElement(d.A,{id:"view.instance.chat.reload"}))),c.createElement("br",null),c.createElement("br",null)),c.createElement(B.A,{fields:g,onSave:e=>{this.editChatBot(e)}}),c.createElement("hr",null),c.createElement("div",{className:"text-center mb-3"},c.createElement(l.A,{placement:"top",show:!C&&void 0,overlay:e=>c.createElement(r.A,w({id:"chat-bot-delete-perm"},e),c.createElement(d.A,{id:"view.instance.chat.delete.deny"}))},c.createElement(o.A,{className:"nowrap mx-2",disabled:!C,variant:"danger",onClick:()=>{this.deleteChatBot(m)}},c.createElement(s.g,{icon:i.yLS}),"\xa0",c.createElement(d.A,{id:"view.instance.chat.delete"}))),navigator.clipboard?c.createElement(c.Fragment,null,c.createElement(o.A,{className:"nowrap mx-2",variant:this.state.flashExport?"success":"secondary",onClick:()=>{this.exportChannelsToClipboard()}},this.state.flashExport?c.createElement(s.g,{icon:i.e68}):c.createElement(c.Fragment,null,c.createElement(s.g,{icon:i.KTq}),c.createElement(s.g,{icon:i.CeG})),"\xa0",c.createElement(d.A,{id:"view.instance.chat.channels.export"})),c.createElement(l.A,{placement:"top",show:!y&&void 0,overlay:e=>c.createElement(r.A,w({id:"chat-bot-edit-channels-perm"},e),c.createElement(d.A,{id:"view.instance.chat.channels.deny"}))},c.createElement(o.A,{className:"nowrap mx-2",disabled:!y,variant:"primary",onClick:()=>{this.importChannelsFromClipboard()}},c.createElement(s.g,{icon:i.KTq}),c.createElement(s.g,{icon:i.dmS}),"\xa0",c.createElement(d.A,{id:"view.instance.chat.channels.import"})))):null))}renderAddEditChannel(e){const t=this.state.selectedChatBot,a={tag:{type:v.PU.String,name:"fields.instance.chat.channel.tag",tooltip:"fields.instance.chat.channel.tag.tip"},isAdminChannel:{type:v.PU.Boolean,name:"fields.instance.chat.channel.admin",tooltip:"fields.instance.chat.channel.admin.tip"},isWatchdogChannel:{type:v.PU.Boolean,name:"fields.instance.chat.channel.watchdog",tooltip:"fields.instance.chat.channel.watchdog.tip"},isUpdatesChannel:{type:v.PU.Boolean,name:"fields.instance.chat.channel.updates",tooltip:"fields.instance.chat.channel.updates.tip"},isSystemChannel:{type:v.PU.Boolean,name:"fields.instance.chat.channel.system",tooltip:"fields.instance.chat.channel.system.tip"}},n=(0,E.OQ)(this.context.instancePermissionSet,p.B5.WriteChannels);if(e){const e={channelData:{type:v.PU.String,name:"fields.instance.chat.channel.discord",tooltip:"fields.instance.chat.channel.discord.tip"},...a},n={channelData:{type:v.PU.String,name:"fields.instance.chat.channel.irc",tooltip:"fields.instance.chat.channel.irc.tip",defaultValue:"#"},...a};return c.createElement(c.Fragment,null,c.createElement("h5",null,c.createElement(d.A,{id:"view.instance.chat.create.channel"})),c.createElement("hr",null),c.createElement(B.A,{key:`bot-channel-create-form-${t.provider}`,includeAll:!0,saveMessageId:"fields.instance.chat.create.channel",fields:t.provider===p.k_.Discord?e:n,onSave:e=>{this.addChatChannel(t,e)}}))}const i=this.state.selectedChannel;return a.isAdminChannel.defaultValue=i.isAdminChannel,a.isUpdatesChannel.defaultValue=i.isUpdatesChannel,a.isWatchdogChannel.defaultValue=i.isWatchdogChannel,a.isSystemChannel.defaultValue=i.isSystemChannel,a.tag.defaultValue=i.tag,c.createElement(c.Fragment,{key:t.channels.indexOf(i)},c.createElement("h5",null,i.channelData,i.tag?` (${i.tag})`:""),c.createElement("hr",null),c.createElement(B.A,{fields:a,onSave:e=>{const a={channelData:this.state.selectedChannel.channelData,...e};this.editChatChannel(t,a)}}),c.createElement("hr",null),c.createElement(l.A,{placement:"top",show:!n&&void 0,overlay:e=>c.createElement(r.A,w({id:"chat-bot-delete-perm"},e),c.createElement(d.A,{id:"view.instance.chat.delete.channel.deny"}))},c.createElement(o.A,{className:"nowrap",disabled:!n,variant:"danger",onClick:()=>{this.deleteChatChannel(t,i)}},c.createElement(d.A,{id:"view.instance.chat.delete.channel"}))))}}b.contextType=g.z,t.default=(0,h.Ay)(b)}}]); +//# sourceMappingURL=3763.e63c0e2361e9251da793.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js.map b/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js.map new file mode 100644 index 00000000..4aedfbf3 --- /dev/null +++ b/webpanel/6.6.0/3763.e63c0e2361e9251da793.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3763.e63c0e2361e9251da793.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/views/Instance/Edit/ChatBots.tsx"],"sourcesContent":["import { faDiscord } from \"@fortawesome/free-brands-svg-icons\";\nimport {\n faArrowLeft,\n faArrowRight,\n faCheck,\n faClipboard,\n faComment,\n faHashtag,\n faPlus,\n faTrash\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { Button, OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from \"react-intl\";\n\nimport ChatBotClient from \"../../../../ApiClient/ChatBotClient\";\nimport {\n ChatBotResponse,\n ChatBotRights,\n ChatChannel,\n ChatProvider\n} from \"../../../../ApiClient/generatedcode/generated\";\nimport InternalError, {\n allAddons,\n ErrorCode\n} from \"../../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../../ApiClient/models/InternalComms/InternalStatus\";\nimport { InstanceEditContext } from \"../../../../contexts/InstanceEditContext\";\nimport { hasChatBotRight } from \"../../../../utils/misc\";\nimport ErrorAlert from \"../../../utils/ErrorAlert\";\nimport InputField, { FieldType } from \"../../../utils/InputField\";\nimport InputForm, { InputFormField } from \"../../../utils/InputForm\";\nimport { DebugJsonViewer } from \"../../../utils/JsonViewer\";\nimport Loading from \"../../../utils/Loading\";\n\nenum DiscordDMOutputDisplayType {\n Always = 0,\n OnError = 1,\n Never = 2\n}\n\nenum IrcPasswordType {\n Server = 0,\n SASL = 1,\n NickServ = 2\n}\n\ninterface ChatBotConnectionBuilder {\n provider: ChatProvider;\n name: string;\n enabled: boolean;\n channelLimit: number;\n reconnectionInterval: number;\n}\n\ninterface ChatBotUpdate extends ChatBotConnectionBuilder {\n connectionString: string;\n}\n\ninterface DiscordConnectionBuilder extends ChatBotConnectionBuilder {\n botToken: string;\n deploymentBranding: boolean;\n dmOutputDisplay: DiscordDMOutputDisplayType;\n}\n\ninterface IrcConnectionBuilder extends ChatBotConnectionBuilder {\n name: string;\n address: string;\n port: number;\n nickname: string;\n useSsl: boolean;\n passwordType: IrcPasswordType;\n password?: string;\n}\n\ninterface ChatBot extends ChatBotResponse {\n loadedWithConnectionString?: boolean;\n}\n\ntype IProps = WrappedComponentProps;\n\ninterface IState {\n loading: boolean;\n errors: Array | undefined>;\n chatBots: ChatBot[];\n selectedAddNode: boolean;\n selectedChatBot: ChatBot | null;\n selectedChannel: ChatChannel | null;\n addBotProvider: ChatProvider;\n flashExport: boolean;\n}\n\nclass ChatBots extends React.Component {\n public declare context: InstanceEditContext;\n\n public constructor(props: IProps) {\n super(props);\n\n this.state = {\n loading: true,\n errors: [],\n chatBots: [],\n selectedAddNode: false,\n selectedChatBot: null,\n selectedChannel: null,\n addBotProvider: ChatProvider.Discord,\n flashExport: false\n };\n\n this.renderChatBotBrowser = this.renderChatBotBrowser.bind(this);\n }\n\n public componentDidMount(): void {\n if (hasChatBotRight(this.context.instancePermissionSet, ChatBotRights.Read))\n void this.refresh();\n else\n this.setState({\n loading: false\n });\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n private async refresh(): Promise {\n if (hasChatBotRight(this.context.instancePermissionSet, ChatBotRights.Read)) {\n this.setState({\n loading: true\n });\n\n let maxPages = 1;\n let chatBots: ChatBot[] = [];\n for (let page = 1; page <= maxPages; ++page) {\n const response = await ChatBotClient.listChatBots(this.context.instance.id, {\n page\n });\n\n if (response.code === StatusCode.OK) {\n maxPages = response.payload.totalPages;\n\n chatBots = chatBots.concat(response.payload.content);\n } else {\n this.addError(response.error);\n break;\n }\n }\n\n // List endpoint does not pull connection string\n chatBots.forEach(chatBot => (chatBot.loadedWithConnectionString = false));\n\n this.setState({\n chatBots,\n loading: false\n });\n }\n }\n\n private async addChatBot(connectionBuilder: ChatBotConnectionBuilder): Promise {\n let connectionString: string;\n let discordBuilder: DiscordConnectionBuilder;\n let ircBuilder: IrcConnectionBuilder;\n\n if (!connectionBuilder.name) {\n alert(\n this.props.intl.formatMessage({\n id: \"view.instance.chat.create.missing.name\"\n })\n );\n return;\n }\n\n switch (connectionBuilder.provider) {\n case ChatProvider.Discord:\n discordBuilder = connectionBuilder as DiscordConnectionBuilder;\n if (!discordBuilder.botToken) {\n alert(\n this.props.intl.formatMessage({\n id: \"view.instance.chat.create.missing.token\"\n })\n );\n return;\n }\n\n connectionString = `${discordBuilder.botToken};${\n discordBuilder.dmOutputDisplay\n };0;${discordBuilder.deploymentBranding ? \"1\" : \"0\"}`;\n break;\n case ChatProvider.Irc:\n ircBuilder = connectionBuilder as IrcConnectionBuilder;\n if (!ircBuilder.address) {\n alert(\n this.props.intl.formatMessage({\n id: \"view.instance.chat.create.missing.address\"\n })\n );\n return;\n }\n if (!ircBuilder.nickname) {\n alert(\n this.props.intl.formatMessage({\n id: \"view.instance.chat.create.missing.nick\"\n })\n );\n return;\n }\n\n connectionString = `${ircBuilder.address};${ircBuilder.port};${\n ircBuilder.nickname\n };${ircBuilder.useSsl ? \"1\" : \"0\"}`;\n if (ircBuilder.password)\n connectionString += `;${ircBuilder.passwordType};${ircBuilder.password}`;\n break;\n default:\n throw new Error(\"Bad provider!\");\n }\n\n this.setState({\n loading: true\n });\n\n const response = await ChatBotClient.createChatBot(this.context.instance.id, {\n provider: connectionBuilder.provider,\n name: connectionBuilder.name,\n enabled: connectionBuilder.enabled,\n connectionString,\n channelLimit: connectionBuilder.channelLimit,\n reconnectionInterval: connectionBuilder.reconnectionInterval\n });\n\n if (response.code === StatusCode.OK) {\n const newChatBot: ChatBot = response.payload;\n newChatBot.loadedWithConnectionString = true;\n const newChatBots = [...this.state.chatBots];\n newChatBots.push(newChatBot);\n this.setState({\n chatBots: newChatBots,\n selectedChatBot: newChatBot,\n selectedAddNode: false\n });\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async reloadChatBot(chatBot: ChatBot): Promise {\n this.setState({\n loading: true\n });\n\n const response = await ChatBotClient.getChatBot(this.context.instance.id, chatBot.id);\n if (response.code === StatusCode.OK) {\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot\n });\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async editChatBot(chatBotUpdate: ChatBotUpdate): Promise {\n this.setState({\n loading: true\n });\n\n let chatBot = this.state.selectedChatBot!;\n\n const response = await ChatBotClient.updateChatBot(this.context.instance.id, {\n ...chatBotUpdate,\n id: chatBot.id\n });\n\n if (response.code === StatusCode.OK) {\n if (response.payload) {\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot\n });\n }\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async addChatChannel(chatBot: ChatBot, chatChannel: ChatChannel): Promise {\n if (!chatChannel.channelData) {\n alert(\n this.props.intl.formatMessage({ id: \"view.instance.chat.create.missing.channel\" })\n );\n return;\n }\n\n if (chatBot.provider === ChatProvider.Discord) {\n const reg = new RegExp(\"^[0-9]+$\");\n if (!reg.test(chatChannel.channelData)) {\n alert(\n this.props.intl.formatMessage({\n id: \"view.instance.chat.create.invalid.discord\"\n })\n );\n return;\n }\n }\n\n this.setState({\n loading: true\n });\n\n const newChannels = [...(chatBot.channels ?? [])];\n newChannels.push(chatChannel);\n\n const response = await ChatBotClient.updateChatBot(this.context.instance.id, {\n channels: newChannels,\n id: chatBot.id\n });\n\n if (response.code === StatusCode.OK) {\n if (response.payload) {\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot,\n selectedChannel: chatBot.channels[chatBot.channels.length - 1]\n });\n }\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async editChatChannel(chatBot: ChatBot, chatChannel: ChatChannel): Promise {\n this.setState({\n loading: true\n });\n\n const newChannels = [...(chatBot.channels ?? [])];\n const channelToEdit = newChannels[newChannels.indexOf(this.state.selectedChannel!)];\n\n Object.assign(channelToEdit, chatChannel);\n\n const response = await ChatBotClient.updateChatBot(this.context.instance.id, {\n channels: newChannels,\n id: chatBot.id\n });\n\n if (response.code === StatusCode.OK) {\n if (response.payload) {\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot\n });\n }\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async deleteChatChannel(chatBot: ChatBot, chatChannel: ChatChannel): Promise {\n if (\n !confirm(\n this.props.intl.formatMessage(\n { id: \"view.instance.chat.delete.channel.confirm\" },\n {\n channelName: chatChannel.tag ?? chatChannel.channelData\n }\n )\n )\n )\n return;\n\n this.setState({\n loading: true\n });\n\n const newChannels = [...(chatBot.channels ?? [])];\n const index = newChannels.indexOf(chatChannel);\n newChannels.splice(index, 1);\n\n const response = await ChatBotClient.updateChatBot(this.context.instance.id, {\n channels: newChannels,\n id: chatBot.id\n });\n\n if (response.code === StatusCode.OK) {\n if (response.payload) {\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot,\n\n selectedChannel: null\n });\n }\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private async deleteChatBot(chatBot: ChatBot): Promise {\n if (\n !confirm(\n this.props.intl.formatMessage(\n { id: \"view.instance.chat.delete.confirm\" },\n { botName: chatBot.name }\n )\n )\n )\n return;\n\n this.setState({\n loading: true\n });\n\n const response = await ChatBotClient.deleteChatBot(this.context.instance.id, chatBot.id);\n\n if (response.code === StatusCode.OK) {\n const newChatBots = [...this.state.chatBots];\n const index = newChatBots.indexOf(chatBot);\n newChatBots.splice(index, 1);\n\n this.setState({\n chatBots: newChatBots,\n selectedChatBot: null\n });\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n public render(): React.ReactNode {\n if (this.state.loading) {\n return ;\n }\n\n const canRead = hasChatBotRight(this.context.instancePermissionSet, ChatBotRights.Read);\n const canCreate = hasChatBotRight(this.context.instancePermissionSet, ChatBotRights.Create);\n\n return (\n
    \n \n

    \n \n

    \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n
    \n \n
      \n {canRead ? (\n this.state.chatBots.map(this.renderChatBotBrowser)\n ) : (\n \n )}\n {canCreate ? (\n
    • \n (\n \n \n \n )}>\n =\n this.context.instance.chatBotLimit\n }\n onClick={() =>\n this.setState({\n selectedChatBot: null,\n selectedChannel: null,\n selectedAddNode: !!(\n !this.state.selectedAddNode ||\n this.state.selectedChatBot\n )\n })\n }>\n \n  \n \n \n \n
    • \n ) : (\n \n )}\n
    \n
    \n \n {this.state.selectedChannel ? (\n this.renderAddEditChannel(false)\n ) : this.state.selectedChatBot && !this.state.selectedAddNode ? (\n this.renderAddEditChatBot(false)\n ) : this.state.selectedAddNode ? (\n this.state.selectedChatBot ? (\n this.renderAddEditChannel(true)\n ) : (\n this.renderAddEditChatBot(true)\n )\n ) : (\n

    \n \n

    \n )}\n
    \n \n \n );\n }\n\n private renderChatBotBrowser(chatBot: ChatBotResponse): React.ReactNode {\n const selected = this.state.selectedChatBot === chatBot;\n const canWriteChannels = hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteChannels\n );\n return (\n
  • \n \n this.setState(prevState => {\n return {\n selectedChatBot:\n selected &&\n !this.state.selectedChannel &&\n !this.state.selectedAddNode\n ? null\n : chatBot,\n selectedChannel: null,\n selectedAddNode: false,\n addBotProvider: selected\n ? prevState.addBotProvider\n : chatBot.provider\n };\n })\n }\n className=\"nowrap\">\n \n  {chatBot.name}\n \n {canWriteChannels && selected ? (\n
      \n {chatBot.channels.map(channel => {\n const channelSelected = this.state.selectedChannel === channel;\n return (\n
    • \n \n this.setState({\n selectedChannel: channelSelected ? null : channel\n })\n }\n className=\"nowrap\">\n \n  \n {channel.tag ? `(${channel.tag})` : channel.channelData}\n \n
    • \n );\n })}\n
    • \n (\n \n \n \n )}>\n = chatBot.channelLimit}\n onClick={() =>\n this.setState({\n selectedChannel: null,\n selectedAddNode: !!(\n !this.state.selectedAddNode ||\n this.state.selectedChannel\n )\n })\n }>\n \n  \n \n \n \n
    • \n
    \n ) : (\n \n )}\n
  • \n );\n }\n\n private async exportChannelsToClipboard(): Promise {\n const channels = this.state.selectedChatBot!.channels;\n const channelsJson = JSON.stringify(channels);\n await navigator.clipboard.writeText(channelsJson);\n this.setState({\n flashExport: true\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n this.setState({\n flashExport: false\n });\n }\n\n private async importChannelsFromClipboard(): Promise {\n this.setState({\n loading: true\n });\n\n let channelsJson;\n if (navigator.clipboard.readText) {\n channelsJson = await navigator.clipboard.readText();\n } else {\n channelsJson = prompt(\n \"Your browser doesn't allow clipboard reading. Please paste your entry here.\"\n ); // CBA to localize rn\n if (!channelsJson) {\n this.setState({\n loading: false\n });\n return;\n }\n }\n\n let channels;\n try {\n channels = JSON.parse(channelsJson) as ChatChannel[];\n } catch (jsError) {\n const addon: allAddons =\n jsError instanceof Error\n ? {\n jsError\n }\n : { void: true };\n this.addError(new InternalError(ErrorCode.BAD_CHANNELS_JSON, addon));\n\n this.setState({\n loading: false\n });\n return;\n }\n\n let chatBot = this.state.selectedChatBot!;\n\n const response = await ChatBotClient.updateChatBot(this.context.instance.id, {\n channels,\n id: chatBot.id\n });\n\n if (response.code === StatusCode.OK) {\n if (response.payload) {\n const chatBots = [...this.state.chatBots];\n const index = chatBots.indexOf(chatBot);\n\n chatBot = response.payload;\n chatBot.loadedWithConnectionString = true;\n\n chatBots[index] = chatBot;\n\n this.setState({\n chatBots,\n selectedChatBot: chatBot\n });\n }\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n loading: false\n });\n }\n\n private renderAddEditChatBot(add: boolean): React.ReactNode {\n const providerFieldCommon = {\n type: FieldType.Enum as FieldType.Enum,\n name: \"fields.instance.chat.provider\",\n defaultValue: this.state.addBotProvider,\n enum: ChatProvider,\n noLocalize: true\n };\n\n const providerField = {\n ...providerFieldCommon,\n onChange: (newValue: ChatProvider) => {\n this.setState({ addBotProvider: newValue });\n }\n };\n\n const fieldsCommon = {\n provider: { ...providerFieldCommon },\n name: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.name\",\n tooltip: \"fields.instance.chat.name.tip\"\n },\n enabled: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.enabled\",\n tooltip: \"fields.instance.chat.enabled.tip\",\n defaultValue: true\n },\n channelLimit: {\n type: FieldType.Number as FieldType.Number,\n name: \"fields.instance.chat.limit\",\n tooltip: \"fields.instance.chat.limit.tip\",\n min: 0,\n max: 65535,\n defaultValue: 10\n },\n reconnectionInterval: {\n type: FieldType.Number as FieldType.Number,\n name: \"fields.instance.chat.reconnect\",\n tooltip: \"fields.instance.chat.reconnect.tip\",\n min: 0,\n defaultValue: 5\n }\n };\n\n if (add) {\n const fieldsDiscord = {\n ...fieldsCommon,\n botToken: {\n type: FieldType.Password as FieldType.Password,\n name: \"fields.instance.chat.create.discord.token\",\n tooltip: \"fields.instance.chat.create.discord.token.tip\"\n },\n dmOutputDisplayType: {\n type: FieldType.Enum as FieldType.Enum,\n name: \"fields.instance.chat.create.discord.output\",\n tooltip: \"fields.instance.chat.create.discord.output.tip\",\n defaultValue: DiscordDMOutputDisplayType.Always,\n enum: DiscordDMOutputDisplayType,\n noLocalize: true\n },\n deploymentBranding: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.create.discord.branding\",\n tooltip: \"fields.instance.chat.create.discord.branding.tip\",\n defaultValue: true\n }\n };\n\n const fieldsIrc = {\n ...fieldsCommon,\n address: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.create.irc.address\",\n tooltip: \"fields.instance.chat.create.irc.address.tip\"\n },\n port: {\n type: FieldType.Number as FieldType.Number,\n name: \"fields.instance.chat.create.irc.port\",\n min: 1,\n max: 65535,\n defaultValue: 6697 // RFC7194\n },\n nickname: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.create.irc.nick\"\n },\n password: {\n type: FieldType.Password as FieldType.Password,\n name: \"fields.instance.chat.create.irc.pass\",\n tooltip: \"fields.instance.chat.create.irc.pass.tip\"\n },\n passwordType: {\n type: FieldType.Enum as FieldType.Enum,\n name: \"fields.instance.chat.create.irc.passtype\",\n defaultValue: IrcPasswordType.SASL,\n enum: IrcPasswordType,\n noLocalize: true\n },\n useSsl: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.create.irc.ssl\",\n tooltip: \"fields.instance.chat.create.irc.ssl.tip\"\n }\n };\n\n (fieldsCommon.provider as InputFormField).disabled = true;\n\n return (\n \n
    \n \n
    \n
    \n \n
    \n \n void this.addChatBot(connectionBuilder)\n }\n />\n
    \n );\n }\n\n const chatBot = this.state.selectedChatBot!;\n const canReadConnectionString = hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.ReadConnectionString\n );\n const canEditConnectionString = hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteConnectionString\n );\n\n const fieldsEdit = {\n ...fieldsCommon,\n connectionString: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.edit.connection\",\n tooltip: \"fields.instance.chat.edit.connection.tip\",\n defaultValue: canReadConnectionString\n ? chatBot.loadedWithConnectionString\n ? chatBot.connectionString\n : this.props.intl.formatMessage({\n id: \"fields.instance.chat.edit.connection.unloaded\"\n })\n : this.props.intl.formatMessage({\n id: \"fields.instance.chat.edit.connection.deny\"\n }),\n disabled: !canEditConnectionString\n }\n };\n\n (fieldsEdit.name as InputFormField).defaultValue = chatBot.name;\n (fieldsEdit.enabled as InputFormField).defaultValue = chatBot.enabled;\n (fieldsEdit.channelLimit as InputFormField).defaultValue = chatBot.channelLimit;\n (fieldsEdit.reconnectionInterval as InputFormField).defaultValue =\n chatBot.reconnectionInterval;\n\n (fieldsEdit.name as InputFormField).disabled = !hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteName\n );\n (fieldsEdit.enabled as InputFormField).disabled = !hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteEnabled\n );\n (fieldsEdit.channelLimit as InputFormField).disabled = !hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteChannelLimit\n );\n (fieldsEdit.reconnectionInterval as InputFormField).disabled = !hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteReconnectionInterval\n );\n\n const canDelete = hasChatBotRight(this.context.instancePermissionSet, ChatBotRights.Delete);\n\n const canEditChannels = hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteChannels\n );\n\n return (\n \n
    \n \n  {chatBot.name}\n
    \n
    \n {!chatBot.loadedWithConnectionString ? (\n \n (\n \n \n \n )}>\n void this.reloadChatBot(chatBot)}>\n \n \n \n
    \n
    \n
    \n ) : (\n \n )}\n void this.editChatBot(chatBotUpdate)}\n />\n
    \n
    \n (\n \n \n \n )}>\n void this.deleteChatBot(chatBot)}>\n \n  \n \n \n \n {navigator.clipboard ? (\n \n void this.exportChannelsToClipboard()}>\n {this.state.flashExport ? (\n \n ) : (\n \n \n \n \n )}\n  \n \n \n (\n \n \n \n )}>\n void this.importChannelsFromClipboard()}>\n \n \n  \n \n \n \n \n ) : null}\n
    \n
    \n );\n }\n\n private renderAddEditChannel(add: boolean): React.ReactNode {\n const chatBot = this.state.selectedChatBot!;\n\n const fieldsCommon = {\n tag: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.channel.tag\",\n tooltip: \"fields.instance.chat.channel.tag.tip\"\n },\n isAdminChannel: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.channel.admin\",\n tooltip: \"fields.instance.chat.channel.admin.tip\"\n },\n isWatchdogChannel: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.channel.watchdog\",\n tooltip: \"fields.instance.chat.channel.watchdog.tip\"\n },\n isUpdatesChannel: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.channel.updates\",\n tooltip: \"fields.instance.chat.channel.updates.tip\"\n },\n isSystemChannel: {\n type: FieldType.Boolean as FieldType.Boolean,\n name: \"fields.instance.chat.channel.system\",\n tooltip: \"fields.instance.chat.channel.system.tip\"\n }\n };\n\n const canEditChannels = hasChatBotRight(\n this.context.instancePermissionSet,\n ChatBotRights.WriteChannels\n );\n\n if (add) {\n const fieldsDiscord = {\n // we remap this to discord later because of uint64 memes\n channelData: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.channel.discord\",\n tooltip: \"fields.instance.chat.channel.discord.tip\"\n },\n ...fieldsCommon\n };\n const fieldsIrc = {\n channelData: {\n type: FieldType.String as FieldType.String,\n name: \"fields.instance.chat.channel.irc\",\n tooltip: \"fields.instance.chat.channel.irc.tip\",\n defaultValue: \"#\"\n },\n ...fieldsCommon\n };\n\n return (\n \n
    \n \n
    \n
    \n \n void this.addChatChannel(chatBot, chatChannel)\n }\n />\n
    \n );\n }\n\n const channel = this.state.selectedChannel!;\n\n (fieldsCommon.isAdminChannel as InputFormField).defaultValue = channel.isAdminChannel;\n (fieldsCommon.isUpdatesChannel as InputFormField).defaultValue = channel.isUpdatesChannel;\n (fieldsCommon.isWatchdogChannel as InputFormField).defaultValue = channel.isWatchdogChannel;\n (fieldsCommon.isSystemChannel as InputFormField).defaultValue = channel.isSystemChannel;\n (fieldsCommon.tag as InputFormField).defaultValue = channel.tag;\n\n return (\n \n
    \n {channel.channelData}\n {channel.tag ? ` (${channel.tag})` : \"\"}\n
    \n
    \n {\n const chatChannel = {\n channelData: this.state.selectedChannel!.channelData,\n ...chatChannelStub\n };\n void this.editChatChannel(chatBot, chatChannel);\n }}\n />\n
    \n (\n \n \n \n )}>\n void this.deleteChatChannel(chatBot, channel)}>\n \n \n \n
    \n );\n }\n}\n\nChatBots.contextType = InstanceEditContext;\nexport default injectIntl(ChatBots);\n"],"names":["DiscordDMOutputDisplayType","IrcPasswordType","ChatBots","React","constructor","props","super","this","state","loading","errors","chatBots","selectedAddNode","selectedChatBot","selectedChannel","addBotProvider","ChatProvider","Discord","flashExport","renderChatBotBrowser","bind","componentDidMount","hasChatBotRight","context","instancePermissionSet","ChatBotRights","Read","refresh","setState","addError","error","prevState","Array","from","push","maxPages","page","response","ChatBotClient","listChatBots","instance","id","code","StatusCode","OK","payload","totalPages","concat","content","forEach","chatBot","loadedWithConnectionString","addChatBot","connectionBuilder","connectionString","discordBuilder","ircBuilder","name","alert","intl","formatMessage","provider","botToken","dmOutputDisplay","deploymentBranding","Irc","address","nickname","port","useSsl","password","passwordType","Error","createChatBot","enabled","channelLimit","reconnectionInterval","newChatBot","newChatBots","reloadChatBot","getChatBot","index","indexOf","editChatBot","chatBotUpdate","updateChatBot","addChatChannel","chatChannel","channelData","RegExp","test","newChannels","channels","length","editChatChannel","channelToEdit","Object","assign","deleteChatChannel","confirm","channelName","tag","splice","deleteChatBot","botName","render","Loading","text","canRead","canCreate","Create","className","DebugJsonViewer","obj","FormattedMessage","map","err","ErrorAlert","key","onClose","prev","newarr","undefined","style","paddingRight","maxHeight","minWidth","overflowY","OverlayTrigger","placement","show","chatBotLimit","overlay","Tooltip","_extends","values","max","Button","disabled","onClick","FontAwesomeIcon","icon","faPlus","padding","renderAddEditChannel","renderAddEditChatBot","selected","canWriteChannels","WriteChannels","variant","faDiscord","faComment","channel","channelSelected","faHashtag","exportChannelsToClipboard","channelsJson","JSON","stringify","navigator","clipboard","writeText","Promise","resolve","setTimeout","importChannelsFromClipboard","readText","prompt","parse","jsError","addon","void","InternalError","ErrorCode","BAD_CHANNELS_JSON","add","providerFieldCommon","type","FieldType","Enum","defaultValue","enum","noLocalize","providerField","onChange","newValue","fieldsCommon","String","tooltip","Boolean","Number","min","fieldsDiscord","Password","dmOutputDisplayType","Always","fieldsIrc","SASL","InputField","InputForm","hideDisabled","includeAll","saveMessageId","fields","onSave","canReadConnectionString","ReadConnectionString","canEditConnectionString","WriteConnectionString","fieldsEdit","WriteName","WriteEnabled","WriteChannelLimit","WriteReconnectionInterval","canDelete","Delete","canEditChannels","faTrash","faCheck","faClipboard","faArrowLeft","faArrowRight","isAdminChannel","isWatchdogChannel","isUpdatesChannel","isSystemChannel","chatChannelStub","contextType","InstanceEditContext","injectIntl"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js b/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js new file mode 100644 index 00000000..e413e0b1 --- /dev/null +++ b/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3773],{5755:function(e,t,n){n.d(t,{A:function(){return s}});var r=n(6540),a=n(472),l=n(8065),o=n(7602);class s extends r.Component{render(){return r.createElement(a.A,{className:"bg-transparent",border:"info"},r.createElement(a.A.Header,{className:"bg-info text-dark font-weight-bold"},r.createElement(l.A,{id:"generic.wip"})),r.createElement(a.A.Body,null,r.createElement(a.A.Title,null,r.createElement(l.A,{id:"generic.wip.desc"}),r.createElement("a",{href:"https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest"},"https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest")),r.createElement(a.A.Text,{as:"pre",className:"bg-transparent text-info"},r.createElement("code",null,`Version: ${o.xv}\nWebpanel Mode: ${o.g}\nCurrent route: ${window.location.toString()}`))))}}},3773:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var r=n(6540),a=n(5755);class l extends r.Component{render(){return r.createElement(a.A,null)}}}}]); +//# sourceMappingURL=3773.4ca848e0d336aee60084.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js.map b/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js.map new file mode 100644 index 00000000..9f30a818 --- /dev/null +++ b/webpanel/6.6.0/3773.4ca848e0d336aee60084.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3773.4ca848e0d336aee60084.bundle.js","mappings":"iOAMe,MAAMA,UAAkBC,EAAAA,UAC5BC,MAAAA,GACH,OACID,EAAAA,cAACE,EAAAA,EAAI,CAACC,UAAU,iBAAiBC,OAAO,QACpCJ,EAAAA,cAACE,EAAAA,EAAKG,OAAM,CAACF,UAAU,sCACnBH,EAAAA,cAACM,EAAAA,EAAgB,CAACC,GAAG,iBAEzBP,EAAAA,cAACE,EAAAA,EAAKM,KAAI,KACNR,EAAAA,cAACE,EAAAA,EAAKO,MAAK,KACPT,EAAAA,cAACM,EAAAA,EAAgB,CAACC,GAAG,qBACrBP,EAAAA,cAAA,KAAGU,KAAK,8EAA6E,+EAIzFV,EAAAA,cAACE,EAAAA,EAAKS,KAAI,CAACC,GAAI,MAAOT,UAAU,4BAC5BH,EAAAA,cAAA,YACK,YAAYa,EAAAA,sBAA2BC,EAAAA,qBAAwBC,OAAOC,SAASC,gBAMxG,E,4FCrBW,MAAMC,UAAclB,EAAAA,UACxBC,MAAAA,GACH,OAAOD,EAAAA,cAACD,EAAAA,EAAS,KACrB,E","sources":["webpack://tgstation-server-control-panel/./src/components/utils/WIPNotice.tsx","webpack://tgstation-server-control-panel/./src/components/views/Setup.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport Card from \"react-bootstrap/Card\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { MODE, VERSION } from \"../../definitions/constants\";\n\nexport default class WIPNotice extends React.Component {\n public render(): ReactNode {\n return (\n \n \n \n \n \n \n \n \n https://github.com/tgstation/Tgstation.Server.ControlPanel/releases/latest\n \n \n \n \n {`Version: ${VERSION}\\nWebpanel Mode: ${MODE}\\nCurrent route: ${window.location.toString()}`}\n \n \n \n \n );\n }\n}\n","import React from \"react\";\n\nimport WIPNotice from \"../utils/WIPNotice\";\n\ntype IProps = object;\ntype IState = object;\n\nexport default class Setup extends React.Component {\n public render(): React.ReactNode {\n return ;\n }\n}\n"],"names":["WIPNotice","React","render","Card","className","border","Header","FormattedMessage","id","Body","Title","href","Text","as","VERSION","MODE","window","location","toString","Setup"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js b/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js new file mode 100644 index 00000000..a144de48 --- /dev/null +++ b/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[379],{1824:function(e,t,s){var n=s(4354),r=s(4173),o=s(5301),a=s(3728),i=s(8437);t.A=new class extends n.O{async listInstances({page:e=1,pageSize:t=i.Ay.itemsperpage.value}={}){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.instanceControllerList({pageSize:t,page:e})}catch(e){return new o.A({code:o.s.ERROR,error:e})}return 200===s.status?new o.A({code:o.s.OK,payload:s.data}):new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}async grantPermissions(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.instanceControllerGrantPermissions(e.id),this.emit("instanceChange",e.id)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 204:return new o.A({code:o.s.OK,payload:{id:e.id}});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async editInstance(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.instanceControllerUpdate(e),this.emit("instanceChange",e.id)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:case 202:return new o.A({code:o.s.OK,payload:t.data});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async detachInstance(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.instanceControllerDelete(e),this.emit("instanceChange",e)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 204:return new o.A({code:o.s.OK,payload:null});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async createInstance(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.instanceControllerCreate(e)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:case 201:{const e=t.data;return this.emit("instanceChange",e.id),new o.A({code:o.s.OK,payload:e})}case 409:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.HTTP_DATA_INEGRITY,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async getInstance(e){let t;await a.A.wait4Init();try{t=await a.A.apiClient.api.instanceControllerGetId(e)}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(t.status){case 200:return new o.A({code:o.s.OK,payload:t.data});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:t.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}}},2589:function(e,t,s){var n=s(4354),r=s(4173),o=s(5301),a=s(3728),i=s(8437);t.A=new class extends n.O{constructor(){super(),this._cachedInstancePermissionSet=new Map,this.loadingInstancePermissionSetInfo=new Map,a.A.on("purgeCache",(()=>{this._cachedInstancePermissionSet.clear()}))}async listInstancePermissionSets(e,{page:t=1,pageSize:s=i.Ay.itemsperpage.value}){let n;await a.A.wait4Init();try{n=await a.A.apiClient.api.instancePermissionSetControllerList({page:t,pageSize:s},{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}if(200===n.status){return new o.A({code:o.s.OK,payload:n.data})}return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:n},n)})}async getCurrentInstancePermissionSet(e,t){if(await a.A.wait4Init(),!t&&this._cachedInstancePermissionSet.has(e))return this._cachedInstancePermissionSet.get(e);if(this.loadingInstancePermissionSetInfo.get(e))return await new Promise((e=>{const t=s=>{e(s),this.removeListener("loadInstancePermissionSet",t)};this.on("loadInstancePermissionSet",t)}));let s;this.loadingInstancePermissionSetInfo.set(e,!0);try{s=await a.A.apiClient.api.instancePermissionSetControllerRead({headers:{Instance:e.toString()}})}catch(t){const s=new o.A({code:o.s.ERROR,error:t});return this.emit("loadInstancePermissionSet",s),this.loadingInstancePermissionSetInfo.set(e,!1),s}if(200===s.status){const t=new o.A({code:o.s.OK,payload:s.data});return this._cachedInstancePermissionSet.set(e,t),this.emit("loadInstancePermissionSet",t),this.loadingInstancePermissionSetInfo.set(e,!1),t}{const t=new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)});return this.emit("loadInstancePermissionSet",t),this.loadingInstancePermissionSetInfo.set(e,!1),t}}async getByPermissionSetId(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.instancePermissionSetControllerGetId(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 200:return new o.A({code:o.s.OK,payload:s.data});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:s.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}async createInstancePermissionSet(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.instancePermissionSetControllerCreate(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 201:return new o.A({code:o.s.OK,payload:s.data});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:s.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}async updateInstancePermissionSet(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.instancePermissionSetControllerUpdate(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 200:return new o.A({code:o.s.OK,payload:s.data});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:s.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}async deleteInstancePermissionSet(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.instancePermissionSetControllerDelete(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 204:return new o.A({code:o.s.OK,payload:{permissionSetId:t}});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.NO_DB_ENTITY,{errorMessage:s.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}}},4295:function(e,t,s){var n=s(4354),r=s(4173),o=s(5301),a=s(3728),i=s(8437);t.A=new class extends n.O{async listActiveJobs(e,{page:t=1,pageSize:s=i.Ay.itemsperpage.value}){let n;await a.A.wait4Init();try{n=await a.A.apiClient.api.jobControllerRead({page:t,pageSize:s},{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}if(200===n.status){const t=n.data.content.map((t=>({...t,instanceid:e})));return new o.A({code:o.s.OK,payload:{...n.data,content:t}})}return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:n},n)})}async getJob(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.jobControllerGetId(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 200:{const t={...s.data,instanceid:e};return new o.A({code:o.s.OK,payload:t})}case 404:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.JOB_JOB_NOT_FOUND,{errorMessage:s.data})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}async deleteJob(e,t){let s;await a.A.wait4Init();try{s=await a.A.apiClient.api.jobControllerDelete(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(s.status){case 202:{const t={...s.data,instanceid:e};return new o.A({code:o.s.OK,payload:t})}case 404:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.JOB_JOB_NOT_FOUND,{errorMessage:s.data})});case 410:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.JOB_JOB_COMPLETE,{void:!0})});default:return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:s},s)})}}async listJobs(e,{page:t=1,pageSize:s=i.Ay.itemsperpage.value}){let n;await a.A.wait4Init();try{n=await a.A.apiClient.api.jobControllerList({pageSize:s,page:t},{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}if(200===n.status){const t=n.data.content.map((t=>({...t,instanceid:e})));return new o.A({code:o.s.OK,payload:{...n.data,content:t}})}return new o.A({code:o.s.ERROR,error:new r.Ay(r.O4.UNHANDLED_RESPONSE,{axiosResponse:n},n)})}}},379:function(e,t,s){s.r(t);var n=s(6997),r=s(2521),o=s(250),a=s(4492),i=s(9589),c=s(4101),l=s(4118),d=s(2576),h=s(1824),u=s(2589),p=s(4295),w=s(4173),A=s(5301),R=s(3728),g=s(1552),y=s(8437),O=s(536);t.default=new class extends c.TypedEmitter{set fastmode(e){(async()=>{await this.jobsHubSupported()||(console.log(`JobsController going in fastmode for ${e} cycles`),this.fastmodecount=e,await this.restartLoop())})()}async reset(e){console.log("JobsController resetting"),e&&(this.jobs=new Map,this.jobsByInstance=new Map);try{await this.reloadAccessibleInstances()}catch(e){return void this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))}await this.restartLoop()}constructor(){super(),this.fastmodecount=0,this.currentLoop=new Date(0),this.accessibleInstances=new Map,this.enableJobProgressWorkaround=void 0,this.errors=[],this.nextRetry=void 0,this.jobs=new Map,this.jobsByInstance=new Map,this.jobCallback=new Map,this.lastSeenJob=-1,this.connection=void 0,this.connection=null,this.nextRetry=null,this.loop=this.loop.bind(this),this.reset=this.reset.bind(this),this.cleanConnection=this.cleanConnection.bind(this),this.restartLoop=this.restartLoop.bind(this)}async stopAndRemoveConnection(){if(console.log("JobsController: stopAndRemoveConnection"),this.connection){console.log(`Stopping and removing active hub connection. State is: ${this.connection.state}`);const e=this.connection;this.connection=null,await e.stop()}}async cleanConnection(){await this.jobsHubSupported()&&(console.log("JobsController: cleanConnection"),await this.stopAndRemoveConnection(),this.errors=[],this.nextRetry=null,this.jobs=new Map,this.jobsByInstance=new Map,this.emit("jobsLoaded"))}init(){window.clients.JobsController=this,R.A.on("purgeCache",(()=>{this.reset(!0)})),R.A.on("logout",(()=>{this.cleanConnection()})),h.A.on("instanceChange",(()=>{this.reset(!1)})),O.A.addHook((async()=>{console.log("JobsController resetting due to login"),await this.reset(!0)})),R.A.on("loadServerInfo",(e=>{e.code===A.s.OK&&(this.enableJobProgressWorkaround=(0,i.satisfies)(e.payload.version,"<4.11.0"))}))}async reloadAccessibleInstances(e=!1){const t=[],s=await h.A.listInstances({pageSize:100});if(s.code===A.s.ERROR)return void this.errors.push(s.error);t.push(...s.payload.content);for(let e=2;e<=s.payload.totalPages;e++){const s=await h.A.listInstances({page:e,pageSize:100});if(s.code===A.s.ERROR)return void this.errors.push(s.error);t.push(...s.payload.content)}const n=new Map,r=t.filter((e=>e.online&&e.accessible)).map((e=>u.A.getCurrentInstancePermissionSet(e.id).then((t=>{t.code!==A.s.ERROR?n.set(e.id,e):t.error.code!==w.O4.HTTP_ACCESS_DENIED&&this.errors.push(t.error)}))));await Promise.all(r),this.accessibleInstances=n,e&&window.setTimeout((()=>{this.reloadAccessibleInstances(!0)}),y.Ay.instanceprobetimer.value)}async jobsHubSupported(){if(y.Ay.restjobs2.value)return!1;if(this.connection)return!0;const e=await R.A.getServerInfo();return e.code===A.s.OK?(0,i.gte)(e.payload.apiVersion,"9.13.0"):(console.warn("Failed to retrieve server info to determin jobs hub support!"),!1)}async restartLoop(){if(console.log("JobsController: restartLoop"),!await this.jobsHubSupported()){const e=new Date(Date.now());return this.currentLoop=e,void window.setTimeout((()=>{this.loop(e).catch((e=>this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))))}),0)}await this.stopAndRemoveConnection(),this.nextRetry=null;let e=y.Ay.apipath.value;e.endsWith("/")||(e+="/");const t=this.connection=(new n.$).withUrl(`${e}api/hubs/jobs`,{accessTokenFactory:async()=>(await R.A.wait4Token()).bearer,transport:r.w.ServerSentEvents,headers:R.A.defaultHeaders}).withAutomaticReconnect({nextRetryDelayInMilliseconds:e=>{if(0==e.previousRetryCount)return 0;const t=1e3*Math.min(2**e.previousRetryCount,30),s=new Date;return s.setMilliseconds(s.getMilliseconds()+t),this.nextRetry=s,this.emit("jobsLoaded"),t}}).configureLogging(o.$.Trace).build();t.on("ReceiveJobUpdate",(async e=>{console.log(`Received update for job ${e.id}`),this.registerJob(e,e.instanceId),this.emit("jobsLoaded");const t=await this.canCancel(e,this.errors);this.jobs.has(e.id)&&(this.jobs.get(e.id).canCancel=t,this.emit("jobsLoaded"))}));let s=!0,i=null;t.onreconnected((()=>{this.nextRetry=null,s=!0,this.emit("jobsLoaded"),console.log("Jobs hub connection re-established, running refresh...");const e=async()=>{clearTimeout(i),i=null,t.state===a.j.Connected&&(s=!1,this.errors=[],this.emit("jobsLoaded"),await this.reloadAccessibleInstances(!1),await this.loop(this.currentLoop=new Date))};i&&clearTimeout(i),i=setTimeout((()=>{e()}),3e3)})),t.onreconnecting((()=>{if(s){i&&(clearTimeout(i),i=null);(async()=>{(await R.A.login()).code!=A.s.OK?R.A.logout():s=!1})()}else this.errors=[],this.errors.push(new w.Ay(w.O4.BAD_HUB_CONNECTION,{void:!0})),this.emit("jobsLoaded")})),t.start().catch((e=>{this.connection==t&&(this.errors=[],e instanceof Error?this.errors.push(new w.Ay(w.O4.BAD_HUB_CONNECTION,{jsError:e})):this.errors.push(new w.Ay(w.O4.BAD_HUB_CONNECTION,{void:!0})),this.emit("jobsLoaded"),this.connection=null)}))}_registerJob(e,t){const s=e;if(this.jobs.has(s.id)&&this.jobs.get(s.id).stoppedAt)return void console.warn(`Receieved job update for ${s.id} after it completed! Incoming job was${s.stoppedAt?"":" not"} completed.`);t&&(s.instanceId=t);const n=this.jobsByInstance.get(s.instanceId)??new Map;this.jobsByInstance.set(s.instanceId,n),n.set(s.id,s),this.jobs.set(s.id,s)}registerJob(e,t){this._registerJob(e,t);(async()=>{await this.jobsHubSupported()||(console.log("Server does not support jobs hub, restarting loop due to job registration."),await this.restartLoop())})()}async loop(e){if(e!==this.currentLoop)return;this.errors=[];let t=0;const s=[];let n=this.lastSeenJob;for(const r of this.accessibleInstances.keys()){const o=async s=>{for(const e of s)this._registerJob(e),n=Math.max(n,e.id);const o=s.map((e=>e.id)),a=Array.from(this.jobs.values()).filter((e=>!e.stoppedAt)).filter((e=>e.instanceId===r)).map((e=>e.id)).filter((e=>!o.includes(e))),i=this.jobsByInstance.get(r)??new Map;this.jobsByInstance.set(r,i);const c=[];a.forEach((e=>{c.push(p.A.getJob(r,e).then((e=>{e.code!==A.s.ERROR?(i.set(e.payload.id,e.payload),this.jobs.set(e.payload.id,e.payload)):this.errors.push(e.error)})))})),await Promise.all(c),e===this.currentLoop&&(t+=s.length)},a=e=>{e.code===w.O4.HTTP_DATA_INEGRITY&&e.originalErrorMessage?.errorCode===d.vH.InstanceOffline?(console.log(`[JobsController] Clearing instance ${r} as it is now offline`),this.accessibleInstances.delete(r),this.reloadAccessibleInstances().catch((e=>{this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))}))):this.errors.push(e)},i=-1===this.lastSeenJob?p.A.listActiveJobs:p.A.listJobs;s.push(i(r,{page:1,pageSize:10}).then((async t=>{if(e===this.currentLoop)if(t.code===A.s.OK){let s=t.payload.content;e:for(let e=2;e<=t.payload.totalPages;e++){for(const e of s)if(e.id<=this.lastSeenJob)break e;const n=await i(r,{page:e,pageSize:10});if(n.code===A.s.ERROR)return void a(n.error);t.payload.content.push(...n.payload.content),s=t.payload.content}if(e!==this.currentLoop)return;await o(t.payload.content.filter((e=>e.id>this.lastSeenJob||this.jobs.has(e.id))))}else a(t.error)})).catch((e=>{console.error(e)})))}await Promise.all(s),this.lastSeenJob=n,s.length=0;for(const t of this.jobs.values())this.enableJobProgressWorkaround&&void 0===t.progress&&!t.stoppedAt&&this.accessibleInstances.has(t.instanceId)&&s.push(p.A.getJob(t.instanceId,t.id).then((s=>{e===this.currentLoop&&(s.code===A.s.OK?t.progress=s.payload.progress:s.error.code===w.O4.HTTP_DATA_INEGRITY&&s.error.originalErrorMessage?.errorCode===d.vH.InstanceOffline?(console.log(`[JobsController] Clearing instance ${t.instanceId} as it is now offline`),this.accessibleInstances.delete(t.instanceId),this.reloadAccessibleInstances().catch((e=>{this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))}))):this.errors.push(s.error))}))),s.push(this.canCancel(t,this.errors).then((s=>{e===this.currentLoop&&(t.canCancel=s)})));if(await Promise.all(s),e===this.currentLoop){this.emit("jobsLoaded");for(const e of this.jobs.values()){if(!e.stoppedAt)continue;const t=this.jobCallback.get(e.id);if(t){for(const s of t)s(e);this.jobCallback.delete(e.id)}}this.fastmodecount&&e===this.currentLoop?(window.setTimeout((()=>{this.loop(e).catch((e=>this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))))}),800),this.fastmodecount--,console.log(`JobsController will remain in fastmode for ${this.fastmodecount} cycles`)):window.setTimeout((()=>{this.loop(e).catch((e=>this.errors.push(new w.Ay(w.O4.APP_FAIL,{jsError:Error(e)}))))}),1e3*(t?y.Ay.jobpollactive.value:y.Ay.jobpollinactive.value))}}async canCancel(e,t){if(void 0!==e.canCancel)return e.canCancel;if(void 0===e.cancelRightsType)return!0;switch(e.cancelRightsType){case d.CF.Administration:{const s=await g.A.getCurrentUser();if(s.code===A.s.OK){const t=e.cancelRight;return!!((0,l.u)(s.payload).administrationRights&t)}return t.push(s.error),!1}case d.CF.InstanceManager:{const s=await g.A.getCurrentUser();if(s.code===A.s.OK){const t=e.cancelRight;return!!((0,l.u)(s.payload).instanceManagerRights&t)}return t.push(s.error),!1}case d.CF.Engine:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.engineRights&t)}return t.push(s.error),!1}case d.CF.ChatBots:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.chatBotRights&t)}return t.push(s.error),!1}case d.CF.Configuration:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.configurationRights&t)}return t.push(s.error),!1}case d.CF.DreamDaemon:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.dreamDaemonRights&t)}return t.push(s.error),!1}case d.CF.DreamMaker:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.dreamMakerRights&t)}return t.push(s.error),!1}case d.CF.InstancePermissionSet:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.instancePermissionSetRights&t)}return t.push(s.error),!1}case d.CF.Repository:{const s=await u.A.getCurrentInstancePermissionSet(e.instanceId);if(s.code===A.s.OK){const t=e.cancelRight;return!!(s.payload.repositoryRights&t)}return t.push(s.error),!1}}}async cancelJob(e,t){const s=this.jobs.get(e);if(!s)return!1;const n=await p.A.deleteJob(s.instanceId,e);return n.code===A.s.OK||(t(n.error),!1)}clearJob(e,t=!1){const s=this.jobs.get(e);return!!s&&(this.jobsByInstance.get(s.instanceId)?.delete(e),this.jobs.delete(e),t||this.emit("jobsLoaded"),!0)}registerCallback(e,t){const s=this.jobCallback.get(e)??new Set;s.add(t),this.jobCallback.set(e,s)}}}}]); +//# sourceMappingURL=379.c3e224183df605ae225f.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js.map b/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js.map new file mode 100644 index 00000000..e32f7b2c --- /dev/null +++ b/webpanel/6.6.0/379.c3e224183df605ae225f.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"379.c3e224183df605ae225f.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/InstanceClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/InstancePermissionSetClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/JobsClient.ts","webpack://tgstation-server-control-panel/./src/ApiClient/util/JobsController.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport type {\n ErrorMessageResponse,\n InstanceCreateRequest,\n InstanceResponse,\n InstanceUpdateRequest,\n PaginatedInstanceResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\nexport type ListInstancesErrors = GenericErrors;\nexport type CreateInstanceErrors = GenericErrors;\nexport type EditInstanceErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type GetInstanceErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type GrantPermissionsErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type DetachInstanceErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\n\ninterface IEvents {\n instanceChange: (instanceId: number) => void;\n}\n\nexport default new (class InstanceClient extends ApiClient {\n public async listInstances({\n page = 1,\n pageSize = configOptions.itemsperpage.value as number\n } = {}): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerList({\n pageSize: pageSize,\n page: page\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as PaginatedInstanceResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async grantPermissions(\n instance: InstanceUpdateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerGrantPermissions(\n instance.id\n );\n this.emit(\"instanceChange\", instance.id);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: { id: instance.id } as InstanceResponse\n });\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async editInstance(\n instance: InstanceUpdateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerUpdate(instance);\n this.emit(\"instanceChange\", instance.id);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 200:\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstanceResponse\n });\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async detachInstance(id: number): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerDelete(id);\n this.emit(\"instanceChange\", id);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async createInstance(\n instance: InstanceCreateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerCreate(instance);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 200:\n case 201: {\n const instance = response.data as InstanceResponse;\n\n this.emit(\"instanceChange\", instance.id);\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: instance\n });\n }\n case 409:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.HTTP_DATA_INEGRITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getInstance(\n instanceid: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instanceControllerGetId(instanceid);\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstanceResponse\n });\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n","import { ApiClient } from \"./_base\";\nimport type {\n ErrorMessageResponse,\n InstancePermissionSetRequest,\n InstancePermissionSetResponse,\n PaginatedInstancePermissionSetResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\ninterface IEvents {\n loadInstancePermissionSet: (\n user: InternalStatus\n ) => void;\n}\n\nexport type getCurrentInstancePermissionSetErrors = GenericErrors;\nexport type getByPermissionSetIdErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type createInstancePermissionSetErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type updateInstancePermissionSetErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type deleteInstancePermissionSetErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type listInstancePermissionSetErrors = GenericErrors;\n\nexport default new (class InstancePermissionSetClient extends ApiClient {\n private _cachedInstancePermissionSet: Map<\n number,\n InternalStatus\n > = new Map>();\n\n private loadingInstancePermissionSetInfo: Map = new Map();\n\n public constructor() {\n super();\n\n ServerClient.on(\"purgeCache\", () => {\n this._cachedInstancePermissionSet.clear();\n });\n }\n\n public async listInstancePermissionSets(\n instanceid: number,\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\n ): Promise<\n InternalStatus\n > {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerList(\n {\n page: page,\n pageSize: pageSize\n },\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n const res = new InternalStatus<\n PaginatedInstancePermissionSetResponse,\n ErrorCode.OK\n >({\n code: StatusCode.OK,\n payload: response.data as PaginatedInstancePermissionSetResponse\n });\n return res;\n }\n default: {\n const res = new InternalStatus<\n PaginatedInstancePermissionSetResponse,\n GenericErrors\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n\n public async getCurrentInstancePermissionSet(\n instanceid: number,\n noCache?: boolean\n ): Promise<\n InternalStatus\n > {\n await ServerClient.wait4Init();\n\n if (!noCache && this._cachedInstancePermissionSet.has(instanceid)) {\n return this._cachedInstancePermissionSet.get(instanceid)!;\n }\n\n if (this.loadingInstancePermissionSetInfo.get(instanceid)) {\n return await new Promise(resolve => {\n const resolver = (\n user: InternalStatus\n ) => {\n resolve(user);\n this.removeListener(\"loadInstancePermissionSet\", resolver);\n };\n this.on(\"loadInstancePermissionSet\", resolver);\n });\n }\n\n this.loadingInstancePermissionSetInfo.set(instanceid, true);\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerRead({\n headers: {\n Instance: instanceid.toString()\n }\n });\n } catch (stat) {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n this.emit(\"loadInstancePermissionSet\", res);\n this.loadingInstancePermissionSetInfo.set(instanceid, false);\n return res;\n }\n\n switch (response.status) {\n case 200: {\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstancePermissionSetResponse\n });\n\n this._cachedInstancePermissionSet.set(instanceid, res);\n this.emit(\"loadInstancePermissionSet\", res);\n this.loadingInstancePermissionSetInfo.set(instanceid, false);\n return res;\n }\n default: {\n const res = new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n this.emit(\"loadInstancePermissionSet\", res);\n this.loadingInstancePermissionSetInfo.set(instanceid, false);\n return res;\n }\n }\n }\n\n public async getByPermissionSetId(\n instanceid: number,\n permissionSetId: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerGetId(\n permissionSetId,\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n getByPermissionSetIdErrors\n >({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n return res;\n }\n\n switch (response.status) {\n case 200: {\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstancePermissionSetResponse\n });\n return res;\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n getByPermissionSetIdErrors\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n\n public async createInstancePermissionSet(\n instanceid: number,\n instancePermissionSet: InstancePermissionSetRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerCreate(\n instancePermissionSet,\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n createInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n return res;\n }\n\n switch (response.status) {\n case 201: {\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstancePermissionSetResponse\n });\n return res;\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n createInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n\n public async updateInstancePermissionSet(\n instanceid: number,\n instancePermissionSet: InstancePermissionSetRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerUpdate(\n instancePermissionSet,\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n updateInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n return res;\n }\n\n switch (response.status) {\n case 200: {\n const res = new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as InstancePermissionSetResponse\n });\n return res;\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n updateInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n\n public async deleteInstancePermissionSet(\n instanceid: number,\n permissionSetId: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.instancePermissionSetControllerDelete(\n permissionSetId,\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n deleteInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n return res;\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: { permissionSetId } as InstancePermissionSetResponse\n });\n }\n case 410:\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.NO_DB_ENTITY, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n default: {\n const res = new InternalStatus<\n InstancePermissionSetResponse,\n deleteInstancePermissionSetErrors\n >({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n return res;\n }\n }\n }\n})();\n","import { ApiClient } from \"./_base\";\nimport type {\n ErrorMessageResponse,\n JobResponse,\n PaginatedJobResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\nexport type listJobsErrors = GenericErrors;\nexport type getJobErrors = GenericErrors | ErrorCode.JOB_JOB_NOT_FOUND;\nexport type deleteJobErrors =\n | GenericErrors\n | ErrorCode.JOB_JOB_NOT_FOUND\n | ErrorCode.JOB_JOB_COMPLETE;\n\nexport type PaginatedTGSJobResponse = Omit & {\n content: TGSJobResponse[];\n};\nexport type TGSJobResponse = JobResponse & {\n canCancel?: boolean;\n};\n\nexport default new (class JobsClient extends ApiClient {\n public async listActiveJobs(\n instanceid: number,\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.jobControllerRead(\n {\n page: page,\n pageSize: pageSize\n },\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n const newContent = (response.data as PaginatedJobResponse).content.map(job => {\n return {\n ...job,\n instanceid: instanceid\n };\n });\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: {\n ...(response.data as PaginatedJobResponse),\n content: newContent\n }\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getJob(\n instanceid: number,\n jobid: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.jobControllerGetId(jobid, {\n headers: {\n Instance: instanceid.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n const job = {\n ...(response.data as JobResponse),\n instanceid: instanceid\n };\n return new InternalStatus({\n code: StatusCode.OK,\n payload: job\n });\n }\n case 404: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.JOB_JOB_NOT_FOUND, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async deleteJob(\n instanceid: number,\n jobid: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.jobControllerDelete(jobid, {\n headers: {\n Instance: instanceid.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n const job = {\n ...(response.data as JobResponse),\n instanceid: instanceid\n };\n return new InternalStatus({\n code: StatusCode.OK,\n payload: job\n });\n }\n case 404: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.JOB_JOB_NOT_FOUND, {\n errorMessage: response.data as ErrorMessageResponse\n })\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.JOB_JOB_COMPLETE, {\n void: true\n })\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async listJobs(\n instanceid: number,\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.jobControllerList(\n {\n pageSize,\n page\n },\n {\n headers: {\n Instance: instanceid.toString()\n }\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n const newContent = (response.data as PaginatedJobResponse).content.map(job => {\n return {\n ...job,\n instanceid: instanceid\n };\n });\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: {\n ...(response.data as PaginatedJobResponse),\n content: newContent\n }\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n","import * as signalR from \"@microsoft/signalr\";\nimport { gte as SemVerGte, satisfies as SemverSatisfies } from \"semver\";\nimport { TypedEmitter } from \"tiny-typed-emitter\";\n\nimport { resolvePermissionSet } from \"../../utils/misc\";\nimport {\n AdministrationRights,\n ChatBotRights,\n ConfigurationRights,\n DreamDaemonRights,\n DreamMakerRights,\n EngineRights,\n ErrorCode as TGSErrorCode,\n InstanceManagerRights,\n InstancePermissionSetRights,\n InstanceResponse,\n JobResponse,\n RepositoryRights,\n RightsType\n} from \"../generatedcode/generated\";\nimport InstanceClient from \"../InstanceClient\";\nimport InstancePermissionSetClient from \"../InstancePermissionSetClient\";\nimport JobsClient, { TGSJobResponse } from \"../JobsClient\";\nimport InternalError, { ErrorCode } from \"../models/InternalComms/InternalError\";\nimport { StatusCode } from \"../models/InternalComms/InternalStatus\";\nimport ServerClient from \"../ServerClient\";\nimport UserClient from \"../UserClient\";\nimport configOptions from \"./config\";\nimport LoginHooks from \"./LoginHooks\";\n\ninterface IEvents {\n jobsLoaded: () => unknown;\n}\n\nexport default new (class JobsController extends TypedEmitter {\n private fastmodecount = 0;\n public set fastmode(cycles: number) {\n const doStuff = async () => {\n if (await this.jobsHubSupported()) {\n return;\n }\n\n console.log(`JobsController going in fastmode for ${cycles} cycles`);\n this.fastmodecount = cycles;\n await this.restartLoop();\n };\n void doStuff();\n }\n\n private currentLoop: Date = new Date(0);\n public accessibleInstances = new Map();\n\n private enableJobProgressWorkaround?: boolean;\n\n public errors: InternalError[] = [];\n public nextRetry: Date | null;\n public jobs = new Map();\n public jobsByInstance = new Map>();\n private jobCallback = new Map unknown>>();\n private lastSeenJob = -1;\n\n private connection: signalR.HubConnection | null;\n\n public async reset(clearJobs: boolean): Promise {\n console.log(\"JobsController resetting\");\n if (clearJobs) {\n this.jobs = new Map();\n this.jobsByInstance = new Map>();\n }\n\n try {\n await this.reloadAccessibleInstances();\n } catch (e) {\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n );\n return;\n }\n\n await this.restartLoop();\n }\n\n public constructor() {\n super();\n\n this.connection = null;\n this.nextRetry = null;\n this.loop = this.loop.bind(this);\n this.reset = this.reset.bind(this);\n this.cleanConnection = this.cleanConnection.bind(this);\n this.restartLoop = this.restartLoop.bind(this);\n }\n\n private async stopAndRemoveConnection(): Promise {\n console.log(\"JobsController: stopAndRemoveConnection\");\n\n if (this.connection) {\n console.log(\n `Stopping and removing active hub connection. State is: ${this.connection.state}`\n );\n const connectionToStop = this.connection;\n this.connection = null;\n await connectionToStop.stop();\n }\n }\n\n private async cleanConnection(): Promise {\n if (!(await this.jobsHubSupported())) {\n return;\n }\n\n console.log(\"JobsController: cleanConnection\");\n\n await this.stopAndRemoveConnection();\n\n this.errors = [];\n this.nextRetry = null;\n this.jobs = new Map();\n this.jobsByInstance = new Map>();\n this.emit(\"jobsLoaded\");\n }\n\n public init() {\n window.clients[\"JobsController\"] = this;\n\n //technically not a \"cache\" but we might as well reload it\n ServerClient.on(\"purgeCache\", () => void this.reset(true));\n ServerClient.on(\"logout\", () => void this.cleanConnection());\n\n InstanceClient.on(\"instanceChange\", () => void this.reset(false));\n LoginHooks.addHook(async () => {\n console.log(\"JobsController resetting due to login\");\n await this.reset(true);\n });\n\n ServerClient.on(\"loadServerInfo\", response => {\n if (response.code === StatusCode.OK) {\n //A bug in versions below 4.11.0 makes it so that /Job/List doesn't report back progress. If we are running on a higher version, theres no point in enabling the workaround\n this.enableJobProgressWorkaround = SemverSatisfies(\n response.payload.version,\n \"<4.11.0\"\n );\n }\n });\n }\n\n private async reloadAccessibleInstances(loop = false): Promise {\n const allInstances: InstanceResponse[] = [];\n\n const instances1 = await InstanceClient.listInstances({ pageSize: 100 });\n if (instances1.code === StatusCode.ERROR) {\n this.errors.push(instances1.error);\n return;\n } else {\n allInstances.push(...instances1.payload.content);\n }\n for (let i = 2; i <= instances1.payload.totalPages; i++) {\n const instances2 = await InstanceClient.listInstances({ page: i, pageSize: 100 });\n if (instances2.code === StatusCode.ERROR) {\n this.errors.push(instances2.error);\n return;\n } else {\n allInstances.push(...instances2.payload.content);\n }\n }\n\n const updatedSet = new Map();\n\n const work = allInstances\n .filter(instance => instance.online && instance.accessible)\n .map(instance => {\n return InstancePermissionSetClient.getCurrentInstancePermissionSet(\n instance.id\n ).then(permissionSet => {\n if (permissionSet.code === StatusCode.ERROR) {\n //If its access denied, it means we have view all instances but we dont have access to the instance itself\n if (permissionSet.error.code !== ErrorCode.HTTP_ACCESS_DENIED) {\n this.errors.push(permissionSet.error);\n }\n return;\n }\n updatedSet.set(instance.id, instance);\n });\n });\n\n await Promise.all(work);\n\n this.accessibleInstances = updatedSet;\n\n if (loop) {\n window.setTimeout(\n () => void this.reloadAccessibleInstances(true),\n configOptions.instanceprobetimer.value as number\n );\n }\n }\n\n private async jobsHubSupported(): Promise {\n if (configOptions.restjobs2.value as boolean) {\n return false;\n }\n\n if (this.connection) {\n return true;\n }\n\n const serverInfo = await ServerClient.getServerInfo();\n if (serverInfo.code === StatusCode.OK) {\n return SemVerGte(serverInfo.payload.apiVersion, \"9.13.0\");\n }\n\n console.warn(\"Failed to retrieve server info to determin jobs hub support!\");\n\n return false;\n }\n\n public async restartLoop(): Promise {\n console.log(\"JobsController: restartLoop\");\n if (!(await this.jobsHubSupported())) {\n //we use an actual date object here because it could help prevent really weird timing\n // issues as two different date objects cannot be equal\n // despite the date being\n const initDate = new Date(Date.now());\n this.currentLoop = initDate;\n window.setTimeout(() => {\n this.loop(initDate).catch(e =>\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n )\n );\n }, 0);\n\n return;\n }\n\n await this.stopAndRemoveConnection();\n\n this.nextRetry = null;\n\n let apiPath = configOptions.apipath.value as string;\n if (!apiPath.endsWith(\"/\")) {\n apiPath = apiPath + \"/\";\n }\n\n const localConnection = (this.connection = new signalR.HubConnectionBuilder()\n .withUrl(`${apiPath}api/hubs/jobs`, {\n accessTokenFactory: async () => {\n const token = await ServerClient.wait4Token();\n return token.bearer;\n },\n transport: signalR.HttpTransportType.ServerSentEvents,\n headers: ServerClient.defaultHeaders\n })\n .withAutomaticReconnect({\n nextRetryDelayInMilliseconds: (retryContext: signalR.RetryContext) => {\n if (retryContext.previousRetryCount == 0) {\n return 0;\n }\n\n const nextRetryMs = Math.min(2 ** retryContext.previousRetryCount, 30) * 1000;\n const retryDate = new Date();\n retryDate.setMilliseconds(retryDate.getMilliseconds() + nextRetryMs);\n this.nextRetry = retryDate;\n this.emit(\"jobsLoaded\");\n return nextRetryMs;\n }\n })\n .configureLogging(signalR.LogLevel.Trace)\n .build());\n\n localConnection.on(\"ReceiveJobUpdate\", async (job: JobResponse) => {\n console.log(`Received update for job ${job.id}`);\n this.registerJob(job, job.instanceId);\n this.emit(\"jobsLoaded\");\n const canCancel = await this.canCancel(job, this.errors);\n if (this.jobs.has(job.id)) {\n this.jobs.get(job.id)!.canCancel = canCancel;\n this.emit(\"jobsLoaded\");\n }\n });\n\n let justReconnected = true;\n let reconnectionTimeout: NodeJS.Timeout | null = null;\n localConnection.onreconnected(() => {\n this.nextRetry = null;\n justReconnected = true;\n this.emit(\"jobsLoaded\");\n console.log(\"Jobs hub connection re-established, running refresh...\");\n\n // at this point we need to manually load all the jobs we have registered in case they've completed in the hub and are no longer receiving updates\n const forcedRefresh = async () => {\n clearTimeout(reconnectionTimeout!);\n reconnectionTimeout = null;\n if (localConnection.state !== signalR.HubConnectionState.Connected) {\n return;\n }\n\n justReconnected = false;\n\n this.errors = [];\n this.emit(\"jobsLoaded\");\n await this.reloadAccessibleInstances(false);\n await this.loop((this.currentLoop = new Date()));\n };\n\n if (reconnectionTimeout) {\n clearTimeout(reconnectionTimeout);\n }\n\n reconnectionTimeout = setTimeout(() => void forcedRefresh(), 3000);\n });\n\n localConnection.onreconnecting(() => {\n if (justReconnected) {\n if (reconnectionTimeout) {\n clearTimeout(reconnectionTimeout);\n reconnectionTimeout = null;\n }\n\n const relog = async () => {\n // we reconnected and then got disconnected? That's an auth issue\n const result = await ServerClient.login();\n if (result.code != StatusCode.OK) {\n ServerClient.logout();\n } else {\n justReconnected = false;\n }\n };\n\n void relog();\n return;\n }\n\n this.errors = [];\n this.errors.push(new InternalError(ErrorCode.BAD_HUB_CONNECTION, { void: true }));\n this.emit(\"jobsLoaded\");\n });\n\n localConnection.start().catch(error => {\n if (this.connection != localConnection) {\n return;\n }\n\n this.errors = [];\n if (error instanceof Error) {\n this.errors.push(\n new InternalError(ErrorCode.BAD_HUB_CONNECTION, { jsError: error })\n );\n } else {\n this.errors.push(new InternalError(ErrorCode.BAD_HUB_CONNECTION, { void: true }));\n }\n this.emit(\"jobsLoaded\");\n this.connection = null;\n });\n }\n\n private _registerJob(job: TGSJobResponse, instanceid?: number): void;\n // noinspection JSUnusedLocalSymbols\n private _registerJob(job: JobResponse, instanceid: number): void;\n private _registerJob(_job: JobResponse | TGSJobResponse, instanceid?: number) {\n const job = _job as TGSJobResponse;\n if (this.jobs.has(job.id) && this.jobs.get(job.id)!.stoppedAt) {\n console.warn(\n `Receieved job update for ${job.id} after it completed! Incoming job was${\n job.stoppedAt ? \"\" : \" not\"\n } completed.`\n );\n return;\n }\n\n if (instanceid) job.instanceId = instanceid;\n const instanceSet =\n this.jobsByInstance.get(job.instanceId) ?? new Map();\n this.jobsByInstance.set(job.instanceId, instanceSet);\n instanceSet.set(job.id, job);\n this.jobs.set(job.id, job);\n }\n\n public registerJob(job: TGSJobResponse, instanceid?: number): void;\n public registerJob(job: JobResponse, instanceid: number): void;\n public registerJob(_job: JobResponse | TGSJobResponse, instanceid?: number) {\n this._registerJob(_job, instanceid);\n\n const doStuff = async () => {\n if (!(await this.jobsHubSupported())) {\n console.log(\n \"Server does not support jobs hub, restarting loop due to job registration.\"\n );\n await this.restartLoop();\n }\n };\n\n void doStuff();\n }\n\n private async loop(loopid: Date) {\n //so loops get initialiazed with the current time, it keeps track of which loop to run with\n // that initialization date in currentLoop if the currentLoop isnt equal to the one provided\n // to the loop, it means that the loop was\n // replaced so we dont try to call for another one\n if (loopid !== this.currentLoop) {\n return;\n }\n\n //time to clear out errors\n this.errors = [];\n\n let totalActiveJobs = 0;\n const work: Promise[] = [];\n\n //We can't update the value immediatly or instances will conflict with each other and prevent some jobs from fetching\n let tempLastSeenJob = this.lastSeenJob;\n for (const instanceid of this.accessibleInstances.keys()) {\n const processJobs = async (jobs: TGSJobResponse[]) => {\n for (const job of jobs) {\n this._registerJob(job);\n tempLastSeenJob = Math.max(tempLastSeenJob, job.id);\n }\n\n const remoteActive = jobs.map(job => job.id);\n const localActive = Array.from(this.jobs.values())\n .filter(job => !job.stoppedAt)\n .filter(job => job.instanceId === instanceid)\n .map(job => job.id);\n const manualIds = localActive.filter(jobId => !remoteActive.includes(jobId));\n\n const instanceSet =\n this.jobsByInstance.get(instanceid) ?? new Map();\n this.jobsByInstance.set(instanceid, instanceSet);\n const work: Promise[] = [];\n manualIds.forEach(jobId => {\n work.push(\n JobsClient.getJob(instanceid, jobId).then(job => {\n if (job.code === StatusCode.ERROR) {\n this.errors.push(job.error);\n return;\n }\n instanceSet.set(job.payload.id, job.payload);\n this.jobs.set(job.payload.id, job.payload);\n })\n );\n });\n await Promise.all(work);\n\n if (loopid !== this.currentLoop) return;\n\n totalActiveJobs += jobs.length;\n };\n\n const processError = (error: InternalError) => {\n if (\n error.code === ErrorCode.HTTP_DATA_INEGRITY &&\n error.originalErrorMessage?.errorCode === TGSErrorCode.InstanceOffline\n ) {\n console.log(\n `[JobsController] Clearing instance ${instanceid} as it is now offline`\n );\n this.accessibleInstances.delete(instanceid);\n //Probably a good idea to reload the list at this point\n this.reloadAccessibleInstances().catch(e => {\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n );\n });\n } else {\n this.errors.push(error);\n }\n };\n\n const fetchJobs =\n this.lastSeenJob === -1 ? JobsClient.listActiveJobs : JobsClient.listJobs;\n //now since this is async, it still possible that a single fire gets done after the new loop started, theres no really much that can be done about it\n work.push(\n fetchJobs(instanceid, { page: 1, pageSize: 10 })\n .then(async value => {\n //this check is here because the request itself is async and could return after\n // the loop is terminated, we dont want to contaminate the jobs of an instance\n // with the jobs of another even if it is for a single fire and would eventually\n // get fixed on its own after a few seconds\n if (loopid !== this.currentLoop) return;\n\n if (value.code === StatusCode.OK) {\n let lastPayload = value.payload.content;\n fetchLoop: for (let i = 2; i <= value.payload.totalPages; i++) {\n for (const job of lastPayload) {\n //We reached the last page of usable content, break the loop\n if (job.id <= this.lastSeenJob) {\n break fetchLoop;\n }\n }\n const jobs2 = await fetchJobs(instanceid, {\n page: i,\n pageSize: 10\n });\n if (jobs2.code === StatusCode.ERROR) {\n processError(jobs2.error);\n return;\n } else {\n value.payload.content.push(...jobs2.payload.content);\n lastPayload = value.payload.content;\n }\n }\n if (loopid !== this.currentLoop) return;\n await processJobs(\n value.payload.content.filter(\n job => job.id > this.lastSeenJob || this.jobs.has(job.id)\n )\n );\n } else {\n processError(value.error);\n }\n })\n .catch(reason => {\n console.error(reason);\n })\n );\n }\n\n await Promise.all(work);\n\n this.lastSeenJob = tempLastSeenJob;\n\n work.length = 0;\n for (const job of this.jobs.values()) {\n if (\n this.enableJobProgressWorkaround &&\n job.progress === undefined &&\n !job.stoppedAt &&\n this.accessibleInstances.has(job.instanceId)\n ) {\n work.push(\n JobsClient.getJob(job.instanceId, job.id).then(progressedjob => {\n if (loopid !== this.currentLoop) return;\n if (progressedjob.code === StatusCode.OK) {\n job.progress = progressedjob.payload.progress;\n } else {\n if (\n progressedjob.error.code === ErrorCode.HTTP_DATA_INEGRITY &&\n progressedjob.error.originalErrorMessage?.errorCode ===\n TGSErrorCode.InstanceOffline\n ) {\n console.log(\n `[JobsController] Clearing instance ${job.instanceId} as it is now offline`\n );\n this.accessibleInstances.delete(job.instanceId);\n //Probably a good idea to reload the list at this point\n this.reloadAccessibleInstances().catch(e => {\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, {\n jsError: Error(e as string)\n })\n );\n });\n } else {\n this.errors.push(progressedjob.error);\n }\n }\n })\n );\n }\n\n work.push(\n this.canCancel(job, this.errors).then(canCancel => {\n if (loopid !== this.currentLoop) return;\n job.canCancel = canCancel;\n })\n );\n }\n\n //populate fields on jobs\n await Promise.all(work);\n if (loopid !== this.currentLoop) return;\n\n this.emit(\"jobsLoaded\");\n\n for (const job of this.jobs.values()) {\n if (!job.stoppedAt) continue;\n const callbacks = this.jobCallback.get(job.id);\n if (!callbacks) continue;\n for (const callback of callbacks) {\n callback(job);\n }\n this.jobCallback.delete(job.id);\n }\n\n if (this.fastmodecount && loopid === this.currentLoop) {\n window.setTimeout(() => {\n this.loop(loopid).catch(e =>\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n )\n );\n }, 800);\n this.fastmodecount--;\n console.log(`JobsController will remain in fastmode for ${this.fastmodecount} cycles`);\n } else {\n window.setTimeout(\n () => {\n this.loop(loopid).catch(e =>\n this.errors.push(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n )\n );\n },\n (totalActiveJobs\n ? (configOptions.jobpollactive.value as number)\n : (configOptions.jobpollinactive.value as number)) * 1000\n );\n }\n }\n\n private async canCancel(\n job: Readonly,\n errors: InternalError[]\n ): Promise {\n //we dont need to reevalutate stuff that we already know\n if (job.canCancel !== undefined) return job.canCancel;\n\n if (job.cancelRightsType === undefined) {\n return true;\n }\n\n switch (job.cancelRightsType as RightsType) {\n case RightsType.Administration: {\n const userInfo = await UserClient.getCurrentUser();\n if (userInfo.code === StatusCode.OK) {\n const required = job.cancelRight as AdministrationRights;\n return !!(\n resolvePermissionSet(userInfo.payload).administrationRights & required\n );\n } else {\n errors.push(userInfo.error);\n return false;\n }\n }\n case RightsType.InstanceManager: {\n const userInfo = await UserClient.getCurrentUser();\n if (userInfo.code === StatusCode.OK) {\n const required = job.cancelRight as InstanceManagerRights;\n return !!(\n resolvePermissionSet(userInfo.payload).instanceManagerRights & required\n );\n } else {\n errors.push(userInfo.error);\n return false;\n }\n }\n case RightsType.Engine: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as EngineRights;\n return !!(InstancePermissionSet.payload.engineRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.ChatBots: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as ChatBotRights;\n return !!(InstancePermissionSet.payload.chatBotRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.Configuration: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as ConfigurationRights;\n return !!(InstancePermissionSet.payload.configurationRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.DreamDaemon: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as DreamDaemonRights;\n return !!(InstancePermissionSet.payload.dreamDaemonRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.DreamMaker: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as DreamMakerRights;\n return !!(InstancePermissionSet.payload.dreamMakerRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.InstancePermissionSet: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as InstancePermissionSetRights;\n return !!(InstancePermissionSet.payload.instancePermissionSetRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n case RightsType.Repository: {\n const InstancePermissionSet =\n await InstancePermissionSetClient.getCurrentInstancePermissionSet(\n job.instanceId\n );\n if (InstancePermissionSet.code === StatusCode.OK) {\n const required = job.cancelRight as RepositoryRights;\n return !!(InstancePermissionSet.payload.repositoryRights & required);\n } else {\n errors.push(InstancePermissionSet.error);\n return false;\n }\n }\n }\n }\n\n public async cancelJob(\n jobid: number,\n onError: (error: InternalError) => void\n ): Promise {\n const job = this.jobs.get(jobid);\n\n //no we cant cancel jobs we arent aware of yet\n if (!job) return false;\n\n const deleteInfo = await JobsClient.deleteJob(job.instanceId, jobid);\n if (deleteInfo.code === StatusCode.OK) {\n return true;\n } else {\n onError(deleteInfo.error);\n return false;\n }\n }\n\n public clearJob(jobid: number, noEmit = false): boolean {\n const job = this.jobs.get(jobid);\n\n //no we cant cancel jobs we arent aware of yet\n if (!job) return false;\n\n this.jobsByInstance.get(job.instanceId)?.delete(jobid);\n this.jobs.delete(jobid);\n if (!noEmit) {\n this.emit(\"jobsLoaded\");\n }\n return true;\n }\n\n public registerCallback(jobid: number, callback: (job: TGSJobResponse) => unknown): void {\n const set = this.jobCallback.get(jobid) ?? new Set();\n set.add(callback);\n this.jobCallback.set(jobid, set);\n }\n})();\n"],"names":["ApiClient","listInstances","page","pageSize","configOptions","itemsperpage","value","response","ServerClient","wait4Init","apiClient","api","instanceControllerList","stat","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","data","InternalError","ErrorCode","UNHANDLED_RESPONSE","axiosResponse","grantPermissions","instance","instanceControllerGrantPermissions","id","this","emit","NO_DB_ENTITY","errorMessage","editInstance","instanceControllerUpdate","detachInstance","instanceControllerDelete","createInstance","instanceControllerCreate","HTTP_DATA_INEGRITY","getInstance","instanceid","instanceControllerGetId","constructor","super","_cachedInstancePermissionSet","Map","loadingInstancePermissionSetInfo","on","clear","listInstancePermissionSets","instancePermissionSetControllerList","headers","Instance","toString","getCurrentInstancePermissionSet","noCache","has","get","Promise","resolve","resolver","user","removeListener","set","instancePermissionSetControllerRead","res","getByPermissionSetId","permissionSetId","instancePermissionSetControllerGetId","createInstancePermissionSet","instancePermissionSet","instancePermissionSetControllerCreate","updateInstancePermissionSet","instancePermissionSetControllerUpdate","deleteInstancePermissionSet","instancePermissionSetControllerDelete","listActiveJobs","jobControllerRead","newContent","content","map","job","getJob","jobid","jobControllerGetId","JOB_JOB_NOT_FOUND","deleteJob","jobControllerDelete","JOB_JOB_COMPLETE","void","listJobs","jobControllerList","TypedEmitter","fastmode","cycles","async","jobsHubSupported","console","log","fastmodecount","restartLoop","doStuff","reset","clearJobs","jobs","jobsByInstance","reloadAccessibleInstances","e","errors","push","APP_FAIL","jsError","Error","currentLoop","Date","accessibleInstances","enableJobProgressWorkaround","nextRetry","jobCallback","lastSeenJob","connection","loop","bind","cleanConnection","stopAndRemoveConnection","state","connectionToStop","stop","init","window","clients","InstanceClient","LoginHooks","addHook","SemverSatisfies","version","allInstances","instances1","i","totalPages","instances2","updatedSet","work","filter","online","accessible","InstancePermissionSetClient","then","permissionSet","HTTP_ACCESS_DENIED","all","setTimeout","instanceprobetimer","restjobs2","serverInfo","getServerInfo","SemVerGte","apiVersion","warn","initDate","now","catch","apiPath","apipath","endsWith","localConnection","signalR","withUrl","accessTokenFactory","wait4Token","bearer","transport","ServerSentEvents","defaultHeaders","withAutomaticReconnect","nextRetryDelayInMilliseconds","retryContext","previousRetryCount","nextRetryMs","Math","min","retryDate","setMilliseconds","getMilliseconds","configureLogging","Trace","build","registerJob","instanceId","canCancel","justReconnected","reconnectionTimeout","onreconnected","forcedRefresh","clearTimeout","Connected","onreconnecting","login","logout","relog","BAD_HUB_CONNECTION","start","_registerJob","_job","stoppedAt","instanceSet","loopid","totalActiveJobs","tempLastSeenJob","keys","processJobs","max","remoteActive","manualIds","Array","from","values","jobId","includes","forEach","JobsClient","length","processError","originalErrorMessage","errorCode","TGSErrorCode","InstanceOffline","delete","fetchJobs","lastPayload","fetchLoop","jobs2","reason","undefined","progress","progressedjob","callbacks","callback","jobpollactive","jobpollinactive","cancelRightsType","RightsType","Administration","userInfo","UserClient","getCurrentUser","required","cancelRight","resolvePermissionSet","administrationRights","InstanceManager","instanceManagerRights","Engine","InstancePermissionSet","engineRights","ChatBots","chatBotRights","Configuration","configurationRights","DreamDaemon","dreamDaemonRights","DreamMaker","dreamMakerRights","instancePermissionSetRights","Repository","repositoryRights","cancelJob","onError","deleteInfo","clearJob","noEmit","registerCallback","Set","add"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js b/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js new file mode 100644 index 00000000..183a4383 --- /dev/null +++ b/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[3890],{3890:function(e,t,r){r.r(t);var s=r(6540),a=r(5615),n=r(1105),i=r(1208),o=r(8065),l=r(4180),c=r(5301),u=r(1552),h=r(7864),m=r(664),d=r(7567),p=r(7255);class E extends s.Component{constructor(e){super(e),this.state={errors:[],password1:"",password2:"",username:"",sysuser:""},this.submitTGS=this.submitTGS.bind(this),this.submitSYS=this.submitSYS.bind(this)}validate(){let e=!1;return this.state.password1.length{const r=Array.from(t.errors);return r.push(e),{errors:r}}))}render(){if(this.state.creating)return s.createElement(p.default,{text:"loading.user.create"});return s.createElement("div",{className:"text-center"},this.state.errors.map(((e,t)=>{if(e)return s.createElement(d.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const r=Array.from(e.errors);return r[t]=void 0,{errors:r}}))})})),s.createElement("h3",null,s.createElement(o.A,{id:"routes.usercreate"})),s.createElement(n.A,{className:"mx-auto",lg:5,md:8},s.createElement(i.A,{onSubmit:e=>{this.submitTGS(e)}},s.createElement(i.A.Group,{controlId:"username"},s.createElement(i.A.Label,null,s.createElement(o.A,{id:"login.username"})),s.createElement(i.A.Control,{required:!0,onChange:e=>this.setState({username:e.target.value}),value:this.state.username})),s.createElement(i.A.Group,{controlId:"password1"},s.createElement(i.A.Label,null,s.createElement(o.A,{id:"login.password"})),s.createElement(i.A.Control,{type:"password",onChange:e=>this.setState({password1:e.target.value}),value:this.state.password1,isInvalid:this.state.matchError||this.state.lengthError}),s.createElement(i.A.Control.Feedback,{type:"invalid"},this.state.lengthError?s.createElement(s.Fragment,null,s.createElement(o.A,{id:"login.password.repeat.short"}),this.context.serverInfo.minimumPasswordLength):"")),s.createElement(i.A.Group,{controlId:"password2"},s.createElement(i.A.Label,null,s.createElement(o.A,{id:"login.password.repeat"})),s.createElement(i.A.Control,{type:"password",onChange:e=>this.setState({password2:e.target.value}),value:this.state.password2,isInvalid:this.state.matchError||this.state.lengthError}),s.createElement(i.A.Control.Feedback,{type:"invalid"},this.state.matchError?s.createElement(o.A,{id:"login.password.repeat.match"}):"")),s.createElement(a.A,{type:"submit"},s.createElement(o.A,{id:"view.user.create.tgs"}))),s.createElement("hr",null),s.createElement(i.A,{onSubmit:e=>{this.submitSYS(e)}},s.createElement(i.A.Group,{controlId:"sysuser"},s.createElement(i.A.Label,null,s.createElement(o.A,{id:"generic.systemidentifier"})),s.createElement(i.A.Control,{required:!0,onChange:e=>this.setState({sysuser:e.target.value}),value:this.state.sysuser})),s.createElement(a.A,{type:"submit"},s.createElement(o.A,{id:"view.user.create.sys"})))))}}E.defaultProps={postCreateAction:(e,t)=>{m.M2.selecteduserid=e.id,t.push(m.Sb.useredit.link??m.Sb.useredit.route)}},E.contextType=h.U,t.default=(0,l.y)(E)}}]); +//# sourceMappingURL=3890.6529a4c45b981840fcb6.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js.map b/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js.map new file mode 100644 index 00000000..4348bd4b --- /dev/null +++ b/webpanel/6.6.0/3890.6529a4c45b981840fcb6.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"3890.6529a4c45b981840fcb6.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/views/User/Create.tsx"],"sourcesContent":["import { History as LibHistory } from \"history\";\nimport React, { ChangeEvent, FormEvent, ReactNode } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport { FormattedMessage } from \"react-intl\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\n\nimport type { UserResponse } from \"../../../ApiClient/generatedcode/generated\";\nimport InternalError, { ErrorCode } from \"../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../ApiClient/models/InternalComms/InternalStatus\";\nimport UserClient from \"../../../ApiClient/UserClient\";\nimport { GeneralContext } from \"../../../contexts/GeneralContext\";\nimport { AppRoutes, RouteData } from \"../../../utils/routes\";\nimport ErrorAlert from \"../../utils/ErrorAlert\";\nimport Loading from \"../../utils/Loading\";\n\ninterface IState {\n errors: Array | undefined>;\n password1: string;\n password2: string;\n username: string;\n sysuser: string;\n matchError?: boolean;\n lengthError?: boolean;\n creating?: boolean;\n redirect?: boolean;\n}\ninterface IProps extends RouteComponentProps {\n postCreateAction?: (user: UserResponse, history: LibHistory) => void;\n}\n\nclass UserCreate extends React.Component {\n public declare context: GeneralContext;\n\n public static defaultProps = {\n postCreateAction: (user: UserResponse, history: LibHistory) => {\n RouteData.selecteduserid = user.id;\n history.push(AppRoutes.useredit.link ?? AppRoutes.useredit.route);\n }\n };\n\n public constructor(props: IProps) {\n super(props);\n\n this.state = {\n errors: [],\n password1: \"\",\n password2: \"\",\n username: \"\",\n sysuser: \"\"\n };\n\n this.submitTGS = this.submitTGS.bind(this);\n this.submitSYS = this.submitSYS.bind(this);\n }\n\n // noinspection DuplicatedCode\n private validate(): boolean {\n let err = false;\n if (this.state.password1.length < this.context.serverInfo.minimumPasswordLength) {\n err = true;\n this.setState({\n lengthError: true\n });\n } else {\n this.setState({\n lengthError: false\n });\n }\n if (this.state.password2 !== this.state.password1) {\n err = true;\n this.setState({\n matchError: true\n });\n } else {\n this.setState({\n matchError: false\n });\n }\n return err;\n }\n\n private async submitTGS(event: FormEvent) {\n event.preventDefault();\n\n //validation\n if (this.validate()) return;\n if (!this.state.username) return;\n\n this.setState({\n creating: true\n });\n\n const user = await UserClient.createUser({\n name: this.state.username,\n password: this.state.password1\n });\n // noinspection DuplicatedCode\n if (user.code == StatusCode.OK) {\n this.props.postCreateAction!(user.payload, this.props.history);\n } else {\n this.addError(user.error);\n this.setState({\n creating: false\n });\n }\n }\n\n private async submitSYS(event: FormEvent) {\n event.preventDefault();\n\n //validation\n if (!this.state.sysuser) return;\n\n this.setState({\n creating: true\n });\n\n const user = await UserClient.createUser({\n systemIdentifier: this.state.sysuser\n });\n // noinspection DuplicatedCode\n if (user.code == StatusCode.OK) {\n this.props.postCreateAction!(user.payload, this.props.history);\n } else {\n this.addError(user.error);\n this.setState({\n creating: false\n });\n }\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n public render(): ReactNode {\n if (this.state.creating) {\n return ;\n }\n\n const handleUsernameInput = (event: ChangeEvent) =>\n this.setState({ username: event.target.value });\n const handleSysuserInput = (event: ChangeEvent) =>\n this.setState({ sysuser: event.target.value });\n const handlePwd1Input = (event: ChangeEvent) =>\n this.setState({ password1: event.target.value });\n const handlePwd2Input = (event: ChangeEvent) =>\n this.setState({ password2: event.target.value });\n\n return (\n
    \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n

    \n \n

    \n \n
    void this.submitTGS(event)}>\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.lengthError ? (\n \n \n {this.context.serverInfo.minimumPasswordLength}\n \n ) : (\n \"\"\n )}\n \n \n \n \n \n \n \n \n {this.state.matchError ? (\n \n ) : (\n \"\"\n )}\n \n \n \n
    \n
    \n
    void this.submitSYS(event)}>\n \n \n \n \n \n \n \n
    \n \n
    \n );\n }\n}\nUserCreate.contextType = GeneralContext;\nexport default withRouter(UserCreate);\n"],"names":["UserCreate","React","constructor","props","super","this","state","errors","password1","password2","username","sysuser","submitTGS","bind","submitSYS","validate","err","length","context","serverInfo","minimumPasswordLength","setState","lengthError","matchError","event","preventDefault","creating","user","UserClient","createUser","name","password","code","StatusCode","OK","postCreateAction","payload","history","addError","error","systemIdentifier","prevState","Array","from","push","render","Loading","text","className","map","index","ErrorAlert","key","onClose","prev","newarr","undefined","FormattedMessage","id","Col","lg","md","Form","onSubmit","Group","controlId","Label","Control","required","onChange","target","value","type","isInvalid","Feedback","Button","defaultProps","RouteData","selecteduserid","AppRoutes","useredit","link","route","contextType","GeneralContext","withRouter"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js b/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js new file mode 100644 index 00000000..269ba96d --- /dev/null +++ b/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[4366],{4366:function(e,a,t){var r=t(4354),n=t(4173),s=t(5301),o=t(3728);a.A=new class extends r.O{async getWatchdogStatus(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamDaemonControllerRead({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(a.status){case 200:return new s.A({code:s.s.OK,payload:a.data});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:a.data},a)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}async updateWatchdogStatus(e,a){let t;await o.A.wait4Init();try{t=await o.A.apiClient.api.dreamDaemonControllerUpdate(a,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(t.status){case 200:return new s.A({code:s.s.OK,payload:t.data});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:t.data},t)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:t},t)})}}async startWatchdog(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamDaemonControllerCreate({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 202===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async stopWatchdog(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamDaemonControllerDelete({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 204===a.status?new s.A({code:s.s.OK,payload:null}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async restartWatchdog(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamDaemonControllerRestart({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 202===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async dumpWatchdog(e){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.dreamDaemonControllerCreateDump({headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 202===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}}}]); +//# sourceMappingURL=4366.9bae31f00a6c63925376.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js.map b/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js.map new file mode 100644 index 00000000..50bdee2d --- /dev/null +++ b/webpanel/6.6.0/4366.9bae31f00a6c63925376.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4366.9bae31f00a6c63925376.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/DreamDaemonClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport type {\n DreamDaemonRequest,\n DreamDaemonResponse,\n ErrorMessageResponse,\n JobResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\n\nexport type getWatchdogStatusErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport type updateWatchdogStatusErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\nexport default new (class DreamDaemonClient extends ApiClient {\n public async getWatchdogStatus(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerRead({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as DreamDaemonResponse\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async updateWatchdogStatus(\n instance: number,\n newSettings: DreamDaemonRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerUpdate(newSettings, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as DreamDaemonResponse\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async startWatchdog(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerCreate({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as JobResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async stopWatchdog(instance: number): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerDelete({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async restartWatchdog(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerRestart({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as JobResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async dumpWatchdog(\n instance: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.dreamDaemonControllerCreateDump({\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 202: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as JobResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n"],"names":["ApiClient","getWatchdogStatus","instance","response","ServerClient","wait4Init","apiClient","api","dreamDaemonControllerRead","headers","Instance","toString","stat","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","data","InternalError","ErrorCode","NO_DB_ENTITY","errorMessage","UNHANDLED_RESPONSE","axiosResponse","updateWatchdogStatus","newSettings","dreamDaemonControllerUpdate","startWatchdog","dreamDaemonControllerCreate","stopWatchdog","dreamDaemonControllerDelete","restartWatchdog","dreamDaemonControllerRestart","dumpWatchdog","dreamDaemonControllerCreateDump"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js b/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js new file mode 100644 index 00000000..06c0a107 --- /dev/null +++ b/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[4614],{4614:function(e,t,a){var r=a(4354),n=a(4173),s=a(5301),o=a(3728),c=a(8437);t.A=new class extends r.O{async listChatBots(e,{page:t=1,pageSize:a=c.Ay.itemsperpage.value}){let r;await o.A.wait4Init();try{r=await o.A.apiClient.api.chatControllerList({page:t,pageSize:a},{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 200===r.status?new s.A({code:s.s.OK,payload:r.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}async createChatBot(e,t){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.chatControllerCreate(t,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}return 201===a.status?new s.A({code:s.s.OK,payload:a.data}):new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async updateChatBot(e,t){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.chatControllerUpdate(t,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(a.status){case 200:return new s.A({code:s.s.OK,payload:a.data});case 204:return new s.A({code:s.s.OK,payload:null});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:a.data},a)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}async getChatBot(e,t){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.chatControllerGetId(t,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(a.status){case 200:return new s.A({code:s.s.OK,payload:a.data});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:a.data},a)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}async deleteChatBot(e,t){let a;await o.A.wait4Init();try{a=await o.A.apiClient.api.chatControllerDelete(t,{headers:{Instance:e.toString()}})}catch(e){return new s.A({code:s.s.ERROR,error:e})}switch(a.status){case 204:return new s.A({code:s.s.OK,payload:null});case 410:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.NO_DB_ENTITY,{errorMessage:a.data},a)});default:return new s.A({code:s.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}}}}]); +//# sourceMappingURL=4614.377f7c6aa6c217254517.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js.map b/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js.map new file mode 100644 index 00000000..52aa011b --- /dev/null +++ b/webpanel/6.6.0/4614.377f7c6aa6c217254517.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4614.377f7c6aa6c217254517.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/ChatBotClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\nimport {\n ChatBotCreateRequest,\n ChatBotResponse,\n ChatBotUpdateRequest,\n ErrorMessageResponse,\n PaginatedChatBotResponse\n} from \"./generatedcode/generated\";\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\nimport ServerClient from \"./ServerClient\";\nimport configOptions from \"./util/config\";\n\ntype listChatBotsErrors = GenericErrors;\ntype createChatBotErrors = GenericErrors;\ntype getChatBotErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\ntype updateChatBotErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\ntype deleteChatBotErrors = GenericErrors | ErrorCode.NO_DB_ENTITY;\n\nexport default new (class ChatBotClient extends ApiClient {\n public async listChatBots(\n instance: number,\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.chatControllerList(\n { page, pageSize },\n {\n headers: {\n Instance: instance.toString()\n }\n }\n );\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as PaginatedChatBotResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async createChatBot(\n instance: number,\n chatBot: ChatBotCreateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.chatControllerCreate(chatBot, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 201: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as ChatBotResponse\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async updateChatBot(\n instance: number,\n chatBot: ChatBotUpdateRequest\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.chatControllerUpdate(chatBot, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as ChatBotResponse\n });\n }\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async getChatBot(\n instance: number,\n chatBotId: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.chatControllerGetId(chatBotId, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 200: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: response.data as ChatBotResponse\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n\n public async deleteChatBot(\n instance: number,\n chatBotId: number\n ): Promise> {\n await ServerClient.wait4Init();\n\n let response;\n try {\n response = await ServerClient.apiClient!.api.chatControllerDelete(chatBotId, {\n headers: {\n Instance: instance.toString()\n }\n });\n } catch (stat) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: stat as InternalError\n });\n }\n\n switch (response.status) {\n case 204: {\n return new InternalStatus({\n code: StatusCode.OK,\n payload: null\n });\n }\n case 410: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.NO_DB_ENTITY,\n {\n errorMessage: response.data as ErrorMessageResponse\n },\n response\n )\n });\n }\n default: {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(\n ErrorCode.UNHANDLED_RESPONSE,\n { axiosResponse: response },\n response\n )\n });\n }\n }\n }\n})();\n"],"names":["ApiClient","listChatBots","instance","page","pageSize","configOptions","itemsperpage","value","response","ServerClient","wait4Init","apiClient","api","chatControllerList","headers","Instance","toString","stat","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","data","InternalError","ErrorCode","UNHANDLED_RESPONSE","axiosResponse","createChatBot","chatBot","chatControllerCreate","updateChatBot","chatControllerUpdate","NO_DB_ENTITY","errorMessage","getChatBot","chatBotId","chatControllerGetId","deleteChatBot","chatControllerDelete"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js b/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js new file mode 100644 index 00000000..d84748b1 --- /dev/null +++ b/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[4717],{6795:function(e,t,n){n.d(t,{Q:function(){return l}});var r=n(6540),s=n(8785),a=n.n(s),i=n(8437);function o(e){return r.createElement(a(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function l(e){return i.Ay.showjson.value?r.createElement("div",{className:"text-left"},r.createElement(o,{obj:e.obj})):r.createElement(r.Fragment,null)}},5282:function(e,t,n){n.d(t,{A:function(){return d}});var r=n(6784),s=n(6540),a=n(5615),i=n(1208),o=n(5038),l=n(1069),c=n(3899),m=n(8065);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;tthis.props.selectPage(t)},t));const h=this.props.totalPages>7?s.createElement(l.A.Ellipsis,{disabled:!0}):null,g=s.createElement(c.A,{id:"popover-gotopage"},s.createElement(c.A.Title,null,s.createElement(m.A,{id:"generic.goto.title"})),s.createElement(c.A.Content,null,s.createElement("form",{className:"d-flex",onSubmit:e=>{e.preventDefault(),this.props.selectPage(this.state.gotoValue),this.setState({showGoto:!1})}},s.createElement(i.A.Control,{className:"mr-2",type:"number",min:1,max:this.props.totalPages,value:this.state.gotoValue,onChange:e=>this.setState({gotoValue:parseInt(e.target.value)}),custom:!0}),s.createElement(a.A,{type:"submit"},s.createElement(m.A,{id:"generic.goto"}))))),{selectPage:y,totalPages:w,currentPage:A,...E}=this.props;return s.createElement("div",u({className:"text-center",style:{position:"sticky",bottom:"1.5em"}},E),s.createElement(l.A,{className:"justify-content-center"},s.createElement(l.A.Prev,{disabled:this.props.currentPage<=1,onClick:()=>this.props.selectPage(Math.max(this.props.currentPage-1,1))}),s.createElement(l.A.Item,{active:this.props.currentPage<=1,onClick:()=>this.props.selectPage(1)},"1"),h,e,h,this.props.totalPages>=2?s.createElement(l.A.Item,{active:this.props.currentPage>=this.props.totalPages,onClick:()=>this.props.selectPage(this.props.totalPages)},this.props.totalPages):null,this.props.totalPages>7?s.createElement(o.A,{show:this.state.showGoto,placement:"top",overlay:g},s.createElement(l.A.Item,{onClick:()=>this.setState((e=>({showGoto:!e.showGoto})))},s.createElement(r.g,{icon:"search"}))):null,s.createElement(l.A.Next,{disabled:this.props.currentPage>=this.props.totalPages,onClick:()=>this.props.selectPage(Math.min(this.props.currentPage+1,this.props.totalPages))})))}}},4717:function(e,t,n){n.r(t);var r=n(6188),s=n(6784),a=n(6540),i=n(5615),o=n(1208),l=n(1364),c=n(5192),m=n(5038),u=n(3524),d=n(8065),p=n(9013),h=n(2576),g=n(4173),y=n(5301),w=n(379),A=n(7621),E=n(4580),v=n(4118),f=n(664),b=n(7567),V=n(5659),P=n(6795),O=n(7255),R=n(5282);function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const n=Array.from(t.errors);return n.push(e),{errors:n}}))}async loadVersions(){if((0,v.Dp)(this.context.instancePermissionSet,h.em.ListInstalled)){const e=await p.A.listAllVersions(this.context.instance.id,{page:this.state.page});if(e.code===y.s.OK){if(this.state.page>e.payload.totalPages&&0!==e.payload.totalPages)return void this.setState({page:1});this.setState({versions:e.payload.content,maxPage:e.payload.totalPages})}else this.addError(e.error)}if((0,v.Dp)(this.context.instancePermissionSet,h.em.ReadActive)){const e=await p.A.getActiveVersion(this.context.instance.id);e.code===y.s.OK?this.setState({activeVersion:e.payload.engineVersion}):this.addError(e.error)}}async switchVersion(e,t){this.setState({loading:!0});const n=await p.A.switchActive(this.context.instance.id,e,t&&this.state.customFile?await this.state.customFile.arrayBuffer():void 0);n.code===y.s.ERROR?this.addError(n.error):(t&&this.setState({customFile:null}),n.payload.installJob?(w.default.registerJob(n.payload.installJob,this.context.instance.id),w.default.registerCallback(n.payload.installJob.id,(()=>{this.loadVersions()}))):await this.loadVersions()),this.setState({loading:!1})}componentDidUpdate(e,t){t.page!==this.state.page&&(f.M2.byondlistpage=this.state.page,this.loadVersions())}componentDidMount(){const e=E.A.getLatestDefaultCommit("OpenDreamProject","OpenDream");fetch("https://secure.byond.com/download/version.txt").then((e=>e.text())).then((e=>e.split("\n"))).then((e=>e[0])).then((e=>{const t={engine:h.p3.Byond,version:e};this.setState({latestByondVersion:t,selectedByondVersion:t,loading:!1})})).catch((e=>{this.addError(new g.Ay(g.O4.APP_FAIL,{jsError:Error(e)})),this.setState({loading:!1})})),(async()=>{await this.loadVersions();const t=await e;if(t.code===y.s.ERROR)return void this.addError(t.error);const n={engine:h.p3.OpenDream,sourceSHA:t.payload};this.setState((e=>({latestODVersion:n,selectedODVersion:this.makeUniqueStringForVersion(e.latestODVersion)==this.makeUniqueStringForVersion(e.selectedODVersion??e.latestODVersion)?n:e.selectedODVersion})))})()}render(){if(this.state.loading)return a.createElement(O.default,{text:"loading.byond"});const e=(0,v.Dp)(this.context.instancePermissionSet,h.em.ListInstalled),t=(0,v.Dp)(this.context.instancePermissionSet,h.em.ReadActive),n=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallOfficialOrChangeActiveByondVersion),o=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallOfficialOrChangeActiveOpenDreamVersion),l=(0,v.Dp)(this.context.instancePermissionSet,h.em.DeleteInstall);return a.createElement("div",{className:"text-center"},a.createElement(P.Q,{obj:this.state}),a.createElement("h1",null,a.createElement(d.A,{id:"view.instance.engine"})),this.state.errors.map(((e,t)=>{if(e)return a.createElement(b.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const n=Array.from(e.errors);return n[t]=void 0,{errors:n}}))})})),e?a.createElement(a.Fragment,null,t?null:a.createElement(V.A,{title:"view.instance.engine.current_denied"}),a.createElement("div",null,this.state.versions.map((e=>a.createElement(c.A,{className:"w-md-25 mb-1 mx-auto d-flex",key:this.makeUniqueStringForVersion(e.engineVersion)},n||t?a.createElement(c.A.Prepend,null,a.createElement(c.A.Radio,{name:"byond",id:this.makeUniqueStringForVersion(e.engineVersion),value:S.friendlyVersion(e.engineVersion),disabled:e.engineVersion.engine===h.p3.Byond?!n:e.engineVersion.engine===h.p3.OpenDream&&!o,checked:this.makeUniqueStringForVersion(e.engineVersion)===this.makeUniqueStringForVersion(this.state.activeVersion),onChange:async()=>{await this.switchVersion(e.engineVersion,!1)}})):null,a.createElement("label",{className:"flex-grow-1 m-0",htmlFor:this.makeUniqueStringForVersion(e.engineVersion)},a.createElement(m.A,{overlay:this.tooltip("view.instance.engine.custom"),show:!!e.engineVersion.customIteration&&void 0},(({ref:t,...n})=>a.createElement(c.A.Text,C({className:"w-100"},n),S.friendlyVersion(e.engineVersion),e.engineVersion.customIteration?a.createElement("div",{className:"ml-auto",ref:t},a.createElement(s.g,{fixedWidth:!0,icon:"info"})):null)))),this.makeUniqueStringForVersion(e.engineVersion)!==this.makeUniqueStringForVersion(this.state.activeVersion)?a.createElement(c.A.Append,null,a.createElement(m.A,{overlay:this.tooltip("generic.no_perm"),show:!l&&void 0},a.createElement(i.A,{variant:"danger",disabled:!l,onClick:()=>{(async()=>{this.setState({loading:!0});const t=await p.A.deleteVersion(this.context.instance.id,e.engineVersion);t.code===y.s.ERROR?this.addError(t.error):(w.default.registerJob(t.payload,this.context.instance.id),w.default.registerCallback(t.payload.id,(()=>{this.loadVersions()}))),this.setState({loading:!1})})()}},a.createElement(s.g,{icon:r.yLS})))):null)))),a.createElement(R.A,{className:"mt-4",selectPage:e=>this.setState({page:e}),totalPages:this.state.maxPage??1,currentPage:this.state.page})):t?a.createElement(a.Fragment,null,a.createElement(V.A,{title:"view.instance.engine.list_denied"}),a.createElement(d.A,{id:"view.instance.engine.current_version",values:{version:this.state.activeVersion}})):a.createElement(V.A,{title:"view.instance.engine.current_and_list_denied"}),a.createElement("hr",null),this.renderByondInstall(),a.createElement("hr",null),this.renderODInstall())}tooltip(e){return e?a.createElement(u.A,{id:e},a.createElement(d.A,{id:e})):a.createElement(a.Fragment,null)}renderByondInstall(){const e=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallCustomByondVersion),t=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallOfficialOrChangeActiveByondVersion);return a.createElement(a.Fragment,null,a.createElement("h4",null,a.createElement(d.A,{id:"view.instance.engine.add_byond"})),a.createElement(c.A,{className:"w-md-50 w-lg-25 mb-3 mx-auto"},a.createElement(l.A,{type:"number",defaultValue:this.state.latestByondVersion.version.split(".")[0],onChange:e=>{this.setState((t=>{const n=(t.selectedByondVersion??t.latestByondVersion).version.split(".");return n[0]=e.target.value,{selectedByondVersion:{engine:h.p3.Byond,version:n.join(".")}}}))}}),a.createElement(c.A.Text,{className:"rounded-0"},"."),a.createElement(l.A,{type:"number",defaultValue:this.state.latestByondVersion.version.split(".")[1],onChange:e=>{this.setState((t=>{const n=(t.selectedByondVersion??t.latestByondVersion).version.split(".");return n[1]=e.target.value,{selectedByondVersion:{engine:h.p3.Byond,version:n.join(".")}}}))}}),a.createElement(c.A.Append,null,a.createElement(m.A,{overlay:this.tooltip("generic.no_perm"),show:!t&&void 0},a.createElement(i.A,{variant:"success",disabled:!t,onClick:()=>{(async()=>{await this.switchVersion(this.state.selectedByondVersion??this.state.latestByondVersion,!0)})()}},a.createElement(s.g,{icon:r.QLR}))))),a.createElement(o.A,null,a.createElement(m.A,{overlay:this.tooltip("generic.no_perm"),show:!e&&void 0},a.createElement(o.A.File,{custom:!0,id:"test",disabled:!e,className:"w-md-50 w-lg-25 text-left",label:this.state.customFile?this.state.customFile.name:a.createElement(d.A,{id:"view.instance.engine.upload"}),accept:".zip",onChange:e=>{this.setState({customFile:e.target.files?e.target.files[0]:null})}}))))}renderODInstall(){const e=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallCustomOpenDreamVersion),t=(0,v.Dp)(this.context.instancePermissionSet,h.em.InstallOfficialOrChangeActiveOpenDreamVersion);return a.createElement(a.Fragment,null,a.createElement("h4",null,a.createElement(d.A,{id:"view.instance.engine.add_od"})),a.createElement(c.A,{className:"w-md-50 w-lg-25 mb-3 mx-auto"},a.createElement(l.A,{type:"string",defaultValue:this.state.latestODVersion.sourceSHA,value:(this.state.selectedODVersion??this.state.latestODVersion).sourceSHA,onChange:e=>{this.setState({selectedODVersion:{engine:h.p3.OpenDream,sourceSHA:e.target.value}})}}),a.createElement(c.A.Append,null,a.createElement(m.A,{overlay:this.tooltip("generic.no_perm"),show:!t&&void 0},a.createElement(i.A,{variant:"success",disabled:!t,onClick:()=>{(async()=>{await this.switchVersion(this.state.selectedODVersion??this.state.latestODVersion,!0)})()}},a.createElement(s.g,{icon:r.QLR}))))),a.createElement(o.A,null,a.createElement(m.A,{overlay:this.tooltip("generic.no_perm"),show:!e&&void 0},a.createElement(o.A.File,{custom:!0,id:"test",disabled:!e,className:"w-md-50 w-lg-25 text-left",label:this.state.customFile?this.state.customFile.name:a.createElement(d.A,{id:"view.instance.engine.upload"}),accept:".zip",onChange:e=>{this.setState({customFile:e.target.files?e.target.files[0]:null})}}))))}makeUniqueStringForVersion(e){return e?`${e.engine}-${e.version??"null"}-${e.sourceSHA??"null"}-${e.customIteration??"null"}`:"null-version"}static friendlyVersion(e){let t;switch(e.engine){case h.p3.Byond:t=e.version,t.endsWith(".0")&&(t=t.substring(0,t.length-2));break;case h.p3.OpenDream:t=`OD-${e.sourceSHA.substring(0,7)}`;break;default:throw new Error(`Unknown engine type: ${e.engine}`)}return e.customIteration?`${t} (${e.customIteration})`:t}}S.contextType=A.z,t.default=S},7621:function(e,t,n){n.d(t,{z:function(){return r}});const r=n(6540).createContext(void 0)},4580:function(e,t,n){n.d(t,{A:function(){return g}});var r=n(3441),s=n(8763),a=n(3437),i=n(4101),o=n(4173),l=n(5301),c=n(8437),m=n(7602);var u=e=>new Promise((t=>{setTimeout(t,e)}));async function d(e,t,n){const r=e.endpoint.merge(t,n);return c.Ay.githubtoken.value&&(r.headers.authorization=`token ${c.Ay.githubtoken.value}`),e(r)}async function p(){return c.Ay.githubtoken.value?{type:"token",tokenType:"pat",token:c.Ay.githubtoken.value}:{type:"unauthenticated"}}const h=()=>Object.assign(p.bind(null),{hook:d.bind(null)});var g=new class extends i.TypedEmitter{constructor(){super(),this.apiClient=void 0;const e=a.E.plugin(r.L,s.A);this.apiClient=new e({authStrategy:h,userAgent:"tgstation-server-control-panel/"+m.xv,baseUrl:"https://api.github.com",throttle:{onRateLimit:(e,t)=>(console.warn(`Request quota exhausted for request ${t.method} ${t.url}`),0===t.request.retryCount&&(console.log(`Retrying after ${e} seconds!`),!0)),onSecondaryRateLimit:(e,t)=>{console.warn(`Abuse detected for request ${t.method} ${t.url}`)}}})}async getLatestDefaultCommit(e,t){try{const n=await this.apiClient.repos.get({owner:e,repo:t}),r=await this.apiClient.repos.getBranch({owner:e,repo:t,branch:n.data.default_branch});return new l.A({code:l.s.OK,payload:r.data.commit.sha})}catch(e){return new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}async getVersions({owner:e,repo:t,current:n,all:r}){let s,a=0;try{s=await this.apiClient.paginate(this.apiClient.repos.listReleases,{owner:e,repo:t},((e,t)=>e.data.reduce(((e,s)=>{const i=/tgstation-server-v([\d.]+)/.exec(s.name??"");if(!i)return e;if(parseInt(i[1][0])<4)return e;const o=i[1];let l=!1;if(o<=n){if(a>=3&&!r)return t(),e;a++,l=!0}return e.push({version:o,body:s.body??"",current:o===n,old:l}),e}),[])))}catch(e){return new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new l.A({code:l.s.OK,payload:s})}transformFullPR(e){return{number:e.number,title:e.title,author:e.user?.login??"ghost",state:e.merged_at?"merged":e.state,link:e.html_url,head:e.head.sha,tail:e.base.sha,testmergelabel:e.labels.some((e=>e.name?.toLowerCase().includes("testmerge")||e.name?.toLowerCase().includes("test merge"))),mergeable:e.mergeable}}transformBasicPR(e){return{number:e.number,title:e.title,author:e.user?.login??"ghost",state:e.merged_at?"merged":e.state,link:e.html_url,head:e.head.sha,tail:e.base.sha,testmergelabel:e.labels.some((e=>e.name?.toLowerCase().includes("testmerge")||e.name?.toLowerCase().includes("test merge"))),mergeable:null}}async getPR({owner:e,repo:t,wantedPR:n}){const r=await this.apiClient.pulls.get({owner:e,repo:t,pull_number:n});return this.transformFullPR(r.data)}async getPRUntilMergeable({owner:e,repo:t,wantedPR:n,pollTimer:r=c.Ay.mergeabilitypolltimer.value}){for(let s=0;s<2;s++){const s=await this.getPR({owner:e,repo:t,wantedPR:n});if(null!==s.mergeable)return s;await u(r)}return this.getPR({owner:e,repo:t,wantedPR:n})}async getPRs({owner:e,repo:t,wantedPRs:n=[]}){let r=[];try{const s=await this.apiClient.paginate(this.apiClient.pulls.list,{owner:e,repo:t,state:"open"}),a=s.map((e=>e.number));if(c.Ay.githubtoken.value&&c.Ay.githubtoken.value.length>0){for(const e of n)a.includes(e)||a.push(e);const s=c.Ay.mergeabilitypolltimer.value,i=a.map((n=>this.getPRUntilMergeable({owner:e,repo:t,wantedPR:n,pollTimer:s})));r=await Promise.all(i)}else{r=s.map(this.transformBasicPR);for(const s of n)a.includes(s)||r.push(await this.getPR({owner:e,repo:t,wantedPR:s}))}}catch(e){return console.error(e),new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new l.A({code:l.s.OK,payload:r})}async getPRCommits({owner:e,repo:t,pr:n,wantedCommit:r}){let s,a=[];try{if(a=await this.apiClient.paginate(this.apiClient.pulls.listCommits,{owner:e,repo:t,pull_number:n.number,per_page:100},(({data:e})=>e.map((e=>({name:e.commit.message.split("\n")[0],sha:e.sha,url:e.html_url}))))),a.reverse(),r&&!a.find((e=>e.sha===r))){const n=(await this.apiClient.repos.getCommit({owner:e,repo:t,ref:r})).data;s={name:n.commit.message.split("\n")[0],sha:n.sha,url:n.html_url}}}catch(e){return console.error(e),new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new l.A({code:l.s.OK,payload:[a,s]})}async getFile(e,t,n,r){try{const{data:s}=await this.apiClient.repos.getContent({mediaType:{format:"base64"},owner:e,repo:t,path:n,ref:r});if(Array.isArray(s))return new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${n} was a directory!`)})});if("file"!==s.type)return new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${n} has type ${s.type}!`)})});const a=s.content;return new l.A({code:l.s.OK,payload:a})}catch(e){return console.error(e),new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}async getDirectoryContents(e,t,n,r){try{const{data:s}=await this.apiClient.repos.getContent({owner:e,repo:t,path:n,ref:r});if(!Array.isArray(s))return new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${n} was not a directory!`)})});const a=[];return s.forEach((e=>a.push({path:e.path,isDirectory:"dir"==e.type}))),new l.A({code:l.s.OK,payload:a})}catch(e){return console.error(e),new l.A({code:l.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}}}}]); +//# sourceMappingURL=4717.7ce70315522ba9913edc.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js.map b/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js.map new file mode 100644 index 00000000..51a0234a --- /dev/null +++ b/webpanel/6.6.0/4717.7ce70315522ba9913edc.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4717.7ce70315522ba9913edc.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/utils/PageHelper.tsx","webpack://tgstation-server-control-panel/./src/components/views/Instance/Edit/Engine.tsx","webpack://tgstation-server-control-panel/./src/contexts/InstanceEditContext.ts","webpack://tgstation-server-control-panel/./src/utils/delay.ts","webpack://tgstation-server-control-panel/./src/utils/GithubClient.ts"],"sourcesContent":["import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
    \n \n
    \n );\n}\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Pagination from \"react-bootstrap/Pagination\";\nimport Popover from \"react-bootstrap/Popover\";\nimport { FormattedMessage } from \"react-intl\";\n\ntype IProps = {\n selectPage: (page: number) => void;\n totalPages: number;\n currentPage: number;\n} & Partial>;\n\ninterface IState {\n showGoto: boolean;\n gotoValue: number;\n}\n\nexport default class PageHelper extends React.PureComponent {\n public constructor(props: IProps) {\n super(props);\n\n this.state = {\n showGoto: false,\n gotoValue: props.currentPage\n };\n }\n\n public render(): React.ReactNode {\n const items: React.ReactNode[] = [];\n\n const maxRight = Math.max(this.props.totalPages - this.props.currentPage - 1, 0);\n const maxLeft = Math.max(this.props.currentPage - 2, 0);\n\n const min = Math.max(\n this.props.currentPage -\n Math.max(\n 5 - Number(this.props.currentPage !== this.props.totalPages) - maxRight,\n 2\n ),\n 2\n );\n const max = Math.min(\n this.props.currentPage +\n Math.max(5 - Number(this.props.currentPage !== 1) - maxLeft, 2),\n this.props.totalPages - 1\n );\n\n //Start at the second page and stop at the second to last page\n for (let i = min; i <= max; i++) {\n items.push(\n this.props.selectPage(i)}>\n {i}\n \n );\n }\n\n const ellipsis = this.props.totalPages > 7 ? : null;\n\n const findPopover = (\n \n \n \n \n \n {\n e.preventDefault();\n this.props.selectPage(this.state.gotoValue);\n this.setState({\n showGoto: false\n });\n }}>\n this.setState({ gotoValue: parseInt(e.target.value) })}\n custom\n />\n \n \n \n \n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { selectPage: _1, totalPages: _2, currentPage: _3, ...props } = this.props;\n\n return (\n
    \n \n \n this.props.selectPage(Math.max(this.props.currentPage - 1, 1))\n }\n />\n this.props.selectPage(1)}>\n 1\n \n {ellipsis}\n {items}\n {ellipsis}\n {this.props.totalPages >= 2 ? (\n = this.props.totalPages}\n onClick={() => this.props.selectPage(this.props.totalPages)}>\n {this.props.totalPages}\n \n ) : null}\n {this.props.totalPages > 7 ? (\n \n \n this.setState(prev => {\n return {\n showGoto: !prev.showGoto\n };\n })\n }>\n \n \n \n ) : null}\n = this.props.totalPages}\n onClick={() =>\n this.props.selectPage(\n Math.min(this.props.currentPage + 1, this.props.totalPages)\n )\n }\n />\n \n
    \n );\n }\n}\n","import { faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { ChangeEvent } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport FormControl from \"react-bootstrap/FormControl\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport EngineClient from \"../../../../ApiClient/EngineClient\";\nimport {\n EngineResponse,\n EngineRights,\n EngineType,\n EngineVersion\n} from \"../../../../ApiClient/generatedcode/generated\";\nimport InternalError, { ErrorCode } from \"../../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../../ApiClient/models/InternalComms/InternalStatus\";\nimport JobsController from \"../../../../ApiClient/util/JobsController\";\nimport { InstanceEditContext } from \"../../../../contexts/InstanceEditContext\";\nimport GithubClient from \"../../../../utils/GithubClient\";\nimport { hasEngineRight } from \"../../../../utils/misc\";\nimport { RouteData } from \"../../../../utils/routes\";\nimport ErrorAlert from \"../../../utils/ErrorAlert\";\nimport GenericAlert from \"../../../utils/GenericAlert\";\nimport { DebugJsonViewer } from \"../../../utils/JsonViewer\";\nimport Loading from \"../../../utils/Loading\";\nimport PageHelper from \"../../../utils/PageHelper\";\n\ntype IProps = object;\n\ninterface IState {\n errors: Array | undefined>;\n versions: EngineResponse[];\n activeVersion?: EngineVersion;\n latestByondVersion: EngineVersion;\n latestODVersion: EngineVersion;\n selectedByondVersion?: EngineVersion;\n selectedODVersion?: EngineVersion;\n loading: boolean;\n customFile?: File | null;\n page: number;\n maxPage?: number;\n}\n\nclass Engine extends React.Component {\n public declare context: InstanceEditContext;\n public constructor(props: IProps) {\n super(props);\n\n const initByond = {\n version: \"514.1589\",\n engine: EngineType.Byond\n };\n const initOD = {\n engine: EngineType.OpenDream,\n sourceSHA: \"fab769776dada6b9bcad546094d78c604049e0e9\"\n };\n this.state = {\n versions: [],\n errors: [],\n latestByondVersion: initByond,\n latestODVersion: initOD,\n loading: true,\n page: RouteData.byondlistpage ?? 1\n };\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n private async loadVersions() {\n if (hasEngineRight(this.context.instancePermissionSet, EngineRights.ListInstalled)) {\n const response = await EngineClient.listAllVersions(this.context.instance.id, {\n page: this.state.page\n });\n if (response.code === StatusCode.OK) {\n if (\n this.state.page > response.payload.totalPages &&\n response.payload.totalPages !== 0\n ) {\n this.setState({\n page: 1\n });\n return;\n }\n\n this.setState({\n versions: response.payload.content,\n maxPage: response.payload.totalPages\n });\n } else {\n this.addError(response.error);\n }\n }\n\n if (hasEngineRight(this.context.instancePermissionSet, EngineRights.ReadActive)) {\n const response2 = await EngineClient.getActiveVersion(this.context.instance.id);\n if (response2.code === StatusCode.OK) {\n this.setState({\n activeVersion: response2.payload.engineVersion\n });\n } else {\n this.addError(response2.error);\n }\n }\n }\n\n private async switchVersion(version: EngineVersion, useCustom: boolean): Promise {\n this.setState({\n loading: true\n });\n const response = await EngineClient.switchActive(\n this.context.instance.id,\n version,\n useCustom && this.state.customFile\n ? await this.state.customFile.arrayBuffer()\n : undefined\n );\n if (response.code === StatusCode.ERROR) {\n this.addError(response.error);\n } else {\n if (useCustom) {\n this.setState({\n customFile: null\n });\n }\n if (response.payload.installJob) {\n JobsController.registerJob(response.payload.installJob, this.context.instance.id);\n JobsController.registerCallback(\n response.payload.installJob.id,\n () => void this.loadVersions()\n );\n } else {\n await this.loadVersions();\n }\n }\n this.setState({\n loading: false\n });\n }\n\n public componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\n if (prevState.page !== this.state.page) {\n RouteData.byondlistpage = this.state.page;\n void this.loadVersions();\n }\n }\n\n public componentDidMount(): void {\n const odGetPromise = GithubClient.getLatestDefaultCommit(\"OpenDreamProject\", \"OpenDream\");\n fetch(\"https://secure.byond.com/download/version.txt\")\n .then(res => res.text())\n .then(data => data.split(\"\\n\"))\n .then(versions => versions[0])\n .then(version => {\n const engineVersion: EngineVersion = {\n engine: EngineType.Byond,\n version\n };\n this.setState({\n latestByondVersion: engineVersion,\n selectedByondVersion: engineVersion,\n loading: false\n });\n })\n .catch(e => {\n this.addError(\n new InternalError(ErrorCode.APP_FAIL, { jsError: Error(e as string) })\n );\n this.setState({\n loading: false\n });\n });\n\n void (async () => {\n await this.loadVersions();\n\n const odLatestCommit = await odGetPromise;\n if (odLatestCommit.code === StatusCode.ERROR) {\n this.addError(odLatestCommit.error);\n return;\n }\n\n const newVer = {\n engine: EngineType.OpenDream,\n sourceSHA: odLatestCommit.payload\n };\n\n this.setState(prev => {\n return {\n latestODVersion: newVer,\n selectedODVersion:\n this.makeUniqueStringForVersion(prev.latestODVersion) ==\n this.makeUniqueStringForVersion(\n prev.selectedODVersion ?? prev.latestODVersion\n )\n ? newVer\n : prev.selectedODVersion\n };\n });\n })();\n }\n\n public render(): React.ReactNode {\n if (this.state.loading) {\n return ;\n }\n\n const canSeeVersions = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.ListInstalled\n );\n const canSeeCurrent = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.ReadActive\n );\n const canInstallAndSwitchByond = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallOfficialOrChangeActiveByondVersion\n );\n const canInstallAndSwitchOD = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallOfficialOrChangeActiveOpenDreamVersion\n );\n const canDelete = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.DeleteInstall\n );\n\n return (\n
    \n \n

    \n \n

    \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n {canSeeVersions ? (\n <>\n {!canSeeCurrent ? (\n \n ) : null}\n
    \n {this.state.versions.map(item => {\n // noinspection JSBitwiseOperatorUsage\n return (\n \n {canInstallAndSwitchByond || canSeeCurrent ? (\n \n {\n await this.switchVersion(\n item.engineVersion,\n false\n );\n }}\n />\n \n ) : null}\n \n \n {({ ref, ...triggerHandler }) => (\n \n {Engine.friendlyVersion(item.engineVersion)}\n {item.engineVersion.customIteration ? (\n \n }>\n \n
    \n ) : null}\n \n )}\n \n \n {this.makeUniqueStringForVersion(item.engineVersion) !==\n this.makeUniqueStringForVersion(\n this.state.activeVersion\n ) ? (\n \n \n \n void (async () => {\n this.setState({\n loading: true\n });\n const response =\n await EngineClient.deleteVersion(\n this.context.instance.id,\n item.engineVersion\n );\n if (\n response.code ===\n StatusCode.ERROR\n ) {\n this.addError(response.error);\n } else {\n JobsController.registerJob(\n response.payload,\n this.context.instance.id\n );\n JobsController.registerCallback(\n response.payload.id,\n () =>\n void this.loadVersions()\n );\n }\n this.setState({\n loading: false\n });\n })()\n }>\n \n \n \n \n ) : null}\n \n );\n })}\n
    \n this.setState({ page: newPage })}\n totalPages={this.state.maxPage ?? 1}\n currentPage={this.state.page}\n />\n \n ) : canSeeCurrent ? (\n <>\n \n \n \n ) : (\n \n )}\n
    \n {this.renderByondInstall()}\n
    \n {this.renderODInstall()}\n \n );\n }\n\n private tooltip(innerid?: string): JSX.Element {\n if (!innerid) return ;\n\n return (\n \n \n \n );\n }\n\n private renderByondInstall(): React.ReactNode {\n const canInstallCustomByond = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallCustomByondVersion\n );\n const canInstallAndSwitchByond = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallOfficialOrChangeActiveByondVersion\n );\n return (\n \n

    \n \n

    \n \n {\n this.setState(prev => {\n const arr = (\n prev.selectedByondVersion ?? prev.latestByondVersion\n ).version!.split(\".\");\n arr[0] = e.target.value;\n return {\n selectedByondVersion: {\n engine: EngineType.Byond,\n version: arr.join(\".\")\n }\n };\n });\n }}\n />\n .\n {\n this.setState(prev => {\n const arr = (\n prev.selectedByondVersion ?? prev.latestByondVersion\n ).version!.split(\".\");\n arr[1] = e.target.value;\n return {\n selectedByondVersion: {\n engine: EngineType.Byond,\n version: arr.join(\".\")\n }\n };\n });\n }}\n />\n \n \n \n void (async () => {\n await this.switchVersion(\n this.state.selectedByondVersion ??\n this.state.latestByondVersion,\n true\n );\n })()\n }>\n \n \n \n \n \n
    \n \n \n )\n }\n accept=\".zip\"\n onChange={(e: ChangeEvent) => {\n this.setState({\n customFile: e.target.files ? e.target.files[0] : null\n });\n }}\n />\n \n \n
    \n );\n }\n private renderODInstall(): React.ReactNode {\n const canInstallCustomOD = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallCustomOpenDreamVersion\n );\n const canInstallAndSwitchOD = hasEngineRight(\n this.context.instancePermissionSet,\n EngineRights.InstallOfficialOrChangeActiveOpenDreamVersion\n );\n return (\n \n

    \n \n

    \n \n {\n this.setState({\n selectedODVersion: {\n engine: EngineType.OpenDream,\n sourceSHA: e.target.value\n }\n });\n }}\n />\n \n \n \n void (async () => {\n await this.switchVersion(\n this.state.selectedODVersion ??\n this.state.latestODVersion,\n true\n );\n })()\n }>\n \n \n \n \n \n
    \n \n \n )\n }\n accept=\".zip\"\n onChange={(e: ChangeEvent) => {\n this.setState({\n customFile: e.target.files ? e.target.files[0] : null\n });\n }}\n />\n \n \n
    \n );\n }\n\n private makeUniqueStringForVersion(engineVersion?: EngineVersion): string {\n if (!engineVersion) {\n return \"null-version\";\n }\n\n return `${engineVersion.engine}-${engineVersion.version ?? \"null\"}-${\n engineVersion.sourceSHA ?? \"null\"\n }-${engineVersion.customIteration ?? \"null\"}`;\n }\n\n public static friendlyVersion(engineVersion: EngineVersion): string {\n let baseVersion: string;\n switch (engineVersion.engine) {\n case EngineType.Byond:\n baseVersion = engineVersion.version!;\n if (baseVersion.endsWith(\".0\")) {\n baseVersion = baseVersion.substring(0, baseVersion.length - 2);\n }\n break;\n case EngineType.OpenDream:\n baseVersion = `OD-${engineVersion.sourceSHA!.substring(0, 7)}`;\n break;\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown engine type: ${engineVersion.engine}`);\n }\n\n if (engineVersion.customIteration) {\n return `${baseVersion} (${engineVersion.customIteration})`;\n }\n\n return baseVersion;\n }\n}\nEngine.contextType = InstanceEditContext;\nexport default Engine;\n","import React from \"react\";\n\nimport type {\n InstancePermissionSetResponse,\n InstanceResponse,\n ServerInformationResponse,\n UserResponse\n} from \"../ApiClient/generatedcode/generated\";\nimport InternalError from \"../ApiClient/models/InternalComms/InternalError\";\n\nexport type InstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse;\n};\n\n//same as InstanceEditContext except used for components which arent loading under instanceedit so we cant guarentee that instance wont be null\nexport type UnsafeInstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse | null;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse | null;\n};\n\nexport const InstanceEditContext = React.createContext(\n undefined as unknown as InstanceEditContext\n);\n","const delay = (milliseconds: number): Promise => {\n return new Promise(resolve => {\n setTimeout(resolve, milliseconds);\n });\n};\n\nexport default delay;\n","/* eslint-disable import/no-unresolved */\nimport { retry } from \"@octokit/plugin-retry\";\nimport { throttling } from \"@octokit/plugin-throttling\";\nimport { RequestError } from \"@octokit/request-error\";\nimport { Octokit, RestEndpointMethodTypes } from \"@octokit/rest\";\nimport { EndpointDefaults } from \"@octokit/types\";\n/* eslint-enable import/no-unresolved */\nimport { TypedEmitter } from \"tiny-typed-emitter/lib\";\n\nimport InternalError, { ErrorCode } from \"../ApiClient/models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"../ApiClient/models/InternalComms/InternalStatus\";\nimport configOptions from \"../ApiClient/util/config\";\nimport { VERSION } from \"../definitions/constants\";\nimport delay from \"./delay\";\n\nexport interface TGSVersion {\n version: string;\n body: string;\n current: boolean;\n old: boolean;\n}\n\nexport interface Commit {\n name: string;\n sha: string;\n url: string;\n}\n\nexport interface PullRequest {\n number: number;\n title: string;\n author: string;\n state: \"open\" | \"closed\" | \"merged\";\n link: string;\n head: string;\n tail: string;\n testmergelabel: boolean;\n mergeable: boolean | null;\n}\n\ntype ExtractArrayType = A extends Array ? ArrayType : never;\nexport type ListedGithubPullRequest = ExtractArrayType<\n RestEndpointMethodTypes[\"pulls\"][\"list\"][\"response\"][\"data\"]\n>;\nexport type GithubPullRequest = RestEndpointMethodTypes[\"pulls\"][\"get\"][\"response\"][\"data\"];\n\nexport interface DirectoryItem {\n path: string;\n isDirectory: boolean;\n}\n\ntype IEvents = object;\n\n/* eslint-disable */\n\nasync function hook(request: any, route: any, parameters?: any): Promise {\n const endpoint = request.endpoint.merge(route as string, parameters);\n\n if (configOptions.githubtoken.value) {\n endpoint.headers.authorization = `token ${configOptions.githubtoken.value}`;\n }\n\n return request(endpoint);\n}\n\nasync function auth(): Promise {\n if (configOptions.githubtoken.value) {\n return {\n type: \"token\",\n tokenType: \"pat\",\n token: configOptions.githubtoken.value\n };\n } else {\n return {\n type: \"unauthenticated\"\n };\n }\n}\n\nconst authStrategy = () => {\n return Object.assign(auth.bind(null), {\n hook: hook.bind(null)\n });\n};\n\n/* eslint-enable */\n\nconst e = new (class GithubClient extends TypedEmitter {\n private readonly apiClient: Octokit;\n\n public constructor() {\n super();\n\n const octo = Octokit.plugin(retry, throttling);\n\n this.apiClient = new octo({\n authStrategy,\n userAgent: \"tgstation-server-control-panel/\" + VERSION,\n baseUrl: \"https://api.github.com\",\n throttle: {\n onRateLimit: (retryAfter: number, options: Required) => {\n console.warn(\n `Request quota exhausted for request ${options.method} ${options.url}`\n );\n\n if (options.request.retryCount === 0) {\n // only retries once\n console.log(`Retrying after ${retryAfter} seconds!`);\n return true;\n }\n return false;\n },\n onSecondaryRateLimit: (_: number, options: Required) => {\n // does not retry, only logs a warning\n console.warn(`Abuse detected for request ${options.method} ${options.url}`);\n }\n }\n });\n }\n\n public async getLatestDefaultCommit(\n owner: string,\n repo: string\n ): Promise> {\n try {\n const repoData = await this.apiClient.repos.get({\n owner,\n repo\n });\n\n const branch = await this.apiClient.repos.getBranch({\n owner,\n repo,\n branch: repoData.data.default_branch\n });\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: branch.data.commit.sha\n });\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n\n public async getVersions({\n owner,\n repo,\n current,\n all\n }: {\n owner: string;\n repo: string;\n current: string;\n all?: boolean;\n }): Promise> {\n let payload: TGSVersion[];\n let oldversions = 0;\n try {\n payload = await this.apiClient.paginate(\n this.apiClient.repos.listReleases,\n { owner, repo },\n (response, done) => {\n return response.data.reduce((result, release) => {\n const match = /tgstation-server-v([\\d.]+)/.exec(release.name ?? \"\");\n if (!match) return result;\n\n const majorVersion = parseInt(match[1][0]);\n if (majorVersion < 4) return result;\n\n const version = match[1];\n let old = false;\n\n //show 3 outdated versions(2 if you count the current one)\n if (version <= current) {\n if (oldversions >= 3 && !all) {\n (done as () => void)();\n return result;\n }\n oldversions++;\n old = true;\n }\n\n result.push({\n version,\n body: release.body ?? \"\",\n current: version === current,\n old\n });\n return result;\n }, [] as TGSVersion[]);\n }\n );\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload\n });\n }\n\n private transformFullPR(pr: GithubPullRequest): PullRequest {\n return {\n number: pr.number,\n title: pr.title,\n author: pr.user?.login ?? \"ghost\",\n state: pr.merged_at ? \"merged\" : pr.state,\n link: pr.html_url,\n head: pr.head.sha,\n tail: pr.base.sha,\n testmergelabel: pr.labels.some(\n label =>\n label.name?.toLowerCase().includes(\"testmerge\") ||\n label.name?.toLowerCase().includes(\"test merge\")\n ),\n mergeable: pr.mergeable\n };\n }\n\n private transformBasicPR(pr: ListedGithubPullRequest): PullRequest {\n return {\n number: pr.number,\n title: pr.title,\n author: pr.user?.login ?? \"ghost\",\n state: pr.merged_at ? \"merged\" : (pr.state as \"open\" | \"closed\"),\n link: pr.html_url,\n head: pr.head.sha,\n tail: pr.base.sha,\n testmergelabel: pr.labels.some(\n label =>\n label.name?.toLowerCase().includes(\"testmerge\") ||\n label.name?.toLowerCase().includes(\"test merge\")\n ),\n mergeable: null\n };\n }\n\n private async getPR({\n owner,\n repo,\n wantedPR\n }: {\n owner: string;\n repo: string;\n wantedPR: number;\n }) {\n const pr = await this.apiClient.pulls.get({\n owner,\n repo,\n pull_number: wantedPR\n });\n\n return this.transformFullPR(pr.data);\n }\n\n private async getPRUntilMergeable({\n owner,\n repo,\n wantedPR,\n pollTimer = configOptions.mergeabilitypolltimer.value as number\n }: {\n owner: string;\n repo: string;\n wantedPR: number;\n pollTimer?: number;\n }) {\n //Retry three times to get the mergeable status\n for (let i = 0; i < 2; i++) {\n const pr = await this.getPR({ owner, repo, wantedPR });\n\n if (pr.mergeable !== null) {\n return pr;\n }\n\n await delay(pollTimer);\n }\n\n return this.getPR({ owner, repo, wantedPR });\n }\n\n public async getPRs({\n owner,\n repo,\n wantedPRs = []\n }: {\n owner: string;\n repo: string;\n wantedPRs?: number[];\n }): Promise> {\n let payload: PullRequest[] = [];\n try {\n const basicPRInfo = await this.apiClient.paginate(this.apiClient.pulls.list, {\n owner,\n repo,\n state: \"open\"\n });\n\n const prsToGet = basicPRInfo.map(pr => pr.number);\n\n if (\n configOptions.githubtoken.value &&\n (configOptions.githubtoken.value as string).length > 0\n ) {\n //Fetch the full PR info for those with tokens\n for (const wantedPR of wantedPRs) {\n if (!prsToGet.includes(wantedPR)) {\n prsToGet.push(wantedPR);\n }\n }\n\n const pollTimer = configOptions.mergeabilitypolltimer.value as number;\n const prPromises = prsToGet.map(wantedPR =>\n this.getPRUntilMergeable({ owner, repo, wantedPR, pollTimer })\n );\n\n //Fetch them in parallel to not waste extra time with polling\n payload = await Promise.all(prPromises);\n } else {\n //Otherwise just use the basic info\n payload = basicPRInfo.map(this.transformBasicPR);\n\n for (const wantedPR of wantedPRs) {\n if (!prsToGet.includes(wantedPR)) {\n //Don't even poll for mergeability\n payload.push(await this.getPR({ owner, repo, wantedPR }));\n }\n }\n }\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload\n });\n }\n\n public async getPRCommits({\n owner,\n repo,\n pr,\n wantedCommit\n }: {\n owner: string;\n repo: string;\n pr: PullRequest;\n wantedCommit?: string;\n }): Promise> {\n let payload: Commit[] = [];\n let extraCommit: Commit | undefined = undefined;\n try {\n payload = await this.apiClient.paginate(\n this.apiClient.pulls.listCommits,\n {\n owner,\n repo,\n pull_number: pr.number,\n per_page: 100\n },\n ({ data }) =>\n data.map(commit => ({\n name: commit.commit.message.split(\"\\n\")[0],\n sha: commit.sha,\n url: commit.html_url\n }))\n );\n\n //Newest at the top\n payload.reverse();\n\n if (wantedCommit && !payload.find(commit => commit.sha === wantedCommit)) {\n const _extraCommit = (\n await this.apiClient.repos.getCommit({\n owner,\n repo,\n ref: wantedCommit\n })\n ).data;\n extraCommit = {\n name: _extraCommit.commit.message.split(\"\\n\")[0],\n sha: _extraCommit.sha,\n url: _extraCommit.html_url\n };\n }\n } catch (e) {\n console.error(e);\n return new InternalStatus<\n [commits: Commit[], extraCommit?: Commit],\n ErrorCode.GITHUB_FAIL\n >({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload: [payload, extraCommit]\n });\n }\n\n public async getFile(\n owner: string,\n repo: string,\n path: string,\n ref?: string\n ): Promise> {\n try {\n const { data } = await this.apiClient.repos.getContent({\n mediaType: {\n format: \"base64\"\n },\n owner,\n repo,\n path,\n ref\n });\n\n // ignore directory responses\n if (Array.isArray(data)) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} was a directory!`)\n })\n });\n }\n\n if (data.type !== \"file\") {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} has type ${data.type}!`)\n })\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const raw = (data as any).content as string;\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: raw\n });\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n\n public async getDirectoryContents(\n owner: string,\n repo: string,\n path: string,\n ref?: string\n ): Promise> {\n try {\n const { data } = await this.apiClient.repos.getContent({\n owner,\n repo,\n path,\n ref\n });\n\n // ignore non-directory responses\n if (!Array.isArray(data)) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} was not a directory!`)\n })\n });\n }\n\n const result: DirectoryItem[] = [];\n data.forEach(element =>\n result.push({\n path: element.path,\n isDirectory: element.type == \"dir\"\n })\n );\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: result\n });\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n})();\nexport default e;\n"],"names":["JsonViewer","props","React","ReactJson","src","obj","name","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","value","className","PageHelper","constructor","super","this","state","showGoto","gotoValue","currentPage","render","items","maxRight","Math","max","totalPages","maxLeft","min","Number","i","push","Pagination","Item","key","active","onClick","selectPage","ellipsis","Ellipsis","disabled","findPopover","Popover","id","Title","FormattedMessage","Content","onSubmit","e","preventDefault","setState","Form","Control","type","onChange","parseInt","target","custom","Button","_1","_2","_3","_extends","style","position","bottom","Prev","OverlayTrigger","show","placement","overlay","prev","FontAwesomeIcon","icon","Next","Engine","initByond","version","engine","EngineType","Byond","initOD","OpenDream","sourceSHA","versions","errors","latestByondVersion","latestODVersion","loading","page","RouteData","byondlistpage","addError","error","prevState","Array","from","loadVersions","hasEngineRight","context","instancePermissionSet","EngineRights","ListInstalled","response","EngineClient","listAllVersions","instance","code","StatusCode","OK","payload","content","maxPage","ReadActive","response2","getActiveVersion","activeVersion","engineVersion","switchVersion","useCustom","switchActive","customFile","arrayBuffer","undefined","ERROR","installJob","JobsController","registerJob","registerCallback","componentDidUpdate","prevProps","componentDidMount","odGetPromise","GithubClient","getLatestDefaultCommit","fetch","then","res","text","data","split","selectedByondVersion","catch","InternalError","ErrorCode","APP_FAIL","jsError","Error","odLatestCommit","newVer","selectedODVersion","makeUniqueStringForVersion","Loading","canSeeVersions","canSeeCurrent","canInstallAndSwitchByond","InstallOfficialOrChangeActiveByondVersion","canInstallAndSwitchOD","InstallOfficialOrChangeActiveOpenDreamVersion","canDelete","DeleteInstall","map","err","index","ErrorAlert","onClose","newarr","GenericAlert","title","item","InputGroup","Prepend","Radio","friendlyVersion","checked","async","htmlFor","tooltip","customIteration","ref","triggerHandler","Text","fixedWidth","Append","variant","deleteVersion","faTrash","newPage","values","renderByondInstall","renderODInstall","innerid","Tooltip","canInstallCustomByond","InstallCustomByondVersion","FormControl","defaultValue","arr","join","faPlus","File","label","accept","files","canInstallCustomOD","InstallCustomOpenDreamVersion","baseVersion","endsWith","substring","length","contextType","InstanceEditContext","milliseconds","Promise","resolve","setTimeout","hook","request","route","parameters","endpoint","merge","githubtoken","headers","authorization","auth","tokenType","token","authStrategy","Object","assign","bind","TypedEmitter","apiClient","octo","Octokit","plugin","retry","throttling","userAgent","VERSION","baseUrl","throttle","onRateLimit","retryAfter","options","console","warn","method","url","retryCount","log","onSecondaryRateLimit","_","owner","repo","repoData","repos","get","branch","getBranch","default_branch","InternalStatus","commit","sha","GITHUB_FAIL","getVersions","current","all","oldversions","paginate","listReleases","done","reduce","result","release","match","exec","old","body","transformFullPR","pr","number","author","user","login","merged_at","link","html_url","head","tail","base","testmergelabel","labels","some","toLowerCase","includes","mergeable","transformBasicPR","getPR","wantedPR","pulls","pull_number","getPRUntilMergeable","pollTimer","mergeabilitypolltimer","delay","getPRs","wantedPRs","basicPRInfo","list","prsToGet","prPromises","getPRCommits","wantedCommit","extraCommit","listCommits","per_page","message","reverse","find","_extraCommit","getCommit","getFile","path","getContent","mediaType","format","isArray","raw","getDirectoryContents","forEach","element","isDirectory"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js b/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js new file mode 100644 index 00000000..d23a00e3 --- /dev/null +++ b/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[4945],{1966:function(e,t,n){"use strict";n.d(t,{MU:function(){return o},Y3:function(){return c},YW:function(){return l},az:function(){return a},j$:function(){return r},lc:function(){return s},tJ:function(){return h},zN:function(){return i}});class r extends Error{constructor(e,t){const n=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=n}}class o extends Error{constructor(e="A timeout occurred."){const t=new.target.prototype;super(e),this.__proto__=t}}class s extends Error{constructor(e="An abort occurred."){const t=new.target.prototype;super(e),this.__proto__=t}}class i extends Error{constructor(e,t){const n=new.target.prototype;super(e),this.transport=t,this.errorType="UnsupportedTransportError",this.__proto__=n}}class c extends Error{constructor(e,t){const n=new.target.prototype;super(e),this.transport=t,this.errorType="DisabledTransportError",this.__proto__=n}}class a extends Error{constructor(e,t){const n=new.target.prototype;super(e),this.transport=t,this.errorType="FailedToStartTransportError",this.__proto__=n}}class l extends Error{constructor(e){const t=new.target.prototype;super(e),this.errorType="FailedToNegotiateWithServerError",this.__proto__=t}}class h extends Error{constructor(e,t){const n=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=n}}},4492:function(e,t,n){"use strict";n.d(t,{q:function(){return g},j:function(){return p}});var r=n(1296),o=n(6132);class s{writeHandshakeRequest(e){return r.s.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,n;if((0,o.mw)(e)){const o=new Uint8Array(e),s=o.indexOf(r.s.RecordSeparatorCode);if(-1===s)throw new Error("Message is incomplete.");const i=s+1;t=String.fromCharCode.apply(null,Array.prototype.slice.call(o.slice(0,i))),n=o.byteLength>i?o.slice(i).buffer:null}else{const o=e,s=o.indexOf(r.s.RecordSeparator);if(-1===s)throw new Error("Message is incomplete.");const i=s+1;t=o.substring(0,i),n=o.length>i?o.substring(i):null}const s=r.s.parse(t),i=JSON.parse(s[0]);if(i.type)throw new Error("Expected a handshake response from the server.");return[n,i]}}var i=n(1966),c=n(5963),a=n(250);class l{constructor(){this.observers=[]}next(e){for(const t of this.observers)t.next(e)}error(e){for(const t of this.observers)t.error&&t.error(e)}complete(){for(const e of this.observers)e.complete&&e.complete()}subscribe(e){return this.observers.push(e),new o.YU(this,e)}}class h{constructor(e,t,n){this._bufferSize=1e5,this._messages=[],this._totalMessageCount=0,this._waitForSequenceMessage=!1,this._nextReceivingSequenceId=1,this._latestReceivedSequenceId=0,this._bufferedByteCount=0,this._reconnectInProgress=!1,this._protocol=e,this._connection=t,this._bufferSize=n}async _send(e){const t=this._protocol.writeMessage(e);let n=Promise.resolve();if(this._isInvocationMessage(e)){this._totalMessageCount++;let e=()=>{},r=()=>{};(0,o.mw)(t)?this._bufferedByteCount+=t.byteLength:this._bufferedByteCount+=t.length,this._bufferedByteCount>=this._bufferSize&&(n=new Promise(((t,n)=>{e=t,r=n}))),this._messages.push(new u(t,this._totalMessageCount,e,r))}try{this._reconnectInProgress||await this._connection.send(t)}catch{this._disconnected()}await n}_ack(e){let t=-1;for(let n=0;nthis._nextReceivingSequenceId?this._connection.stop(new Error("Sequence ID greater than amount of messages we've received.")):this._nextReceivingSequenceId=e.sequenceId}_disconnected(){this._reconnectInProgress=!0,this._waitForSequenceMessage=!0}async _resend(){const e=0!==this._messages.length?this._messages[0]._id:this._totalMessageCount+1;await this._connection.send(this._protocol.writeMessage({type:c.G.Sequence,sequenceId:e}));const t=this._messages;for(const e of t)await this._connection.send(e._message);this._reconnectInProgress=!1}_dispose(e){null!=e||(e=new Error("Unable to reconnect to server."));for(const t of this._messages)t._rejector(e)}_isInvocationMessage(e){switch(e.type){case c.G.Invocation:case c.G.StreamItem:case c.G.Completion:case c.G.StreamInvocation:case c.G.CancelInvocation:return!0;case c.G.Close:case c.G.Sequence:case c.G.Ping:case c.G.Ack:return!1}}_ackTimer(){void 0===this._ackTimerHandle&&(this._ackTimerHandle=setTimeout((async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:c.G.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0}),1e3))}}class u{constructor(e,t,n,r){this._message=e,this._id=t,this._resolver=n,this._rejector=r}}var p;!function(e){e.Disconnected="Disconnected",e.Connecting="Connecting",e.Connected="Connected",e.Disconnecting="Disconnecting",e.Reconnecting="Reconnecting"}(p||(p={}));class g{static create(e,t,n,r,o,s,i){return new g(e,t,n,r,o,s,i)}constructor(e,t,n,r,i,l,h){this._nextKeepAlive=0,this._freezeEventListener=()=>{this._logger.log(a.$.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},o.z6.isRequired(e,"connection"),o.z6.isRequired(t,"logger"),o.z6.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=null!=i?i:3e4,this.keepAliveIntervalInMilliseconds=null!=l?l:15e3,this._statefulReconnectBufferSize=null!=h?h:1e5,this._logger=t,this._protocol=n,this.connection=e,this._reconnectPolicy=r,this._handshakeProtocol=new s,this.connection.onreceive=e=>this._processIncomingData(e),this.connection.onclose=e=>this._connectionClosed(e),this._callbacks={},this._methods={},this._closedCallbacks=[],this._reconnectingCallbacks=[],this._reconnectedCallbacks=[],this._invocationId=0,this._receivedHandshakeResponse=!1,this._connectionState=p.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:c.G.Ping})}get state(){return this._connectionState}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(e){if(this._connectionState!==p.Disconnected&&this._connectionState!==p.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!e)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=e}start(){return this._startPromise=this._startWithStateTransitions(),this._startPromise}async _startWithStateTransitions(){if(this._connectionState!==p.Disconnected)return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this._connectionState=p.Connecting,this._logger.log(a.$.Debug,"Starting HubConnection.");try{await this._startInternal(),o.OD.isBrowser&&window.document.addEventListener("freeze",this._freezeEventListener),this._connectionState=p.Connected,this._connectionStarted=!0,this._logger.log(a.$.Debug,"HubConnection connected successfully.")}catch(e){return this._connectionState=p.Disconnected,this._logger.log(a.$.Debug,`HubConnection failed to start successfully because of error '${e}'.`),Promise.reject(e)}}async _startInternal(){this._stopDuringStartError=void 0,this._receivedHandshakeResponse=!1;const e=new Promise(((e,t)=>{this._handshakeResolver=e,this._handshakeRejecter=t}));await this.connection.start(this._protocol.transferFormat);try{let t=this._protocol.version;this.connection.features.reconnect||(t=1);const n={protocol:this._protocol.name,version:t};if(this._logger.log(a.$.Debug,"Sending handshake request."),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(a.$.Information,`Using HubProtocol '${this._protocol.name}'.`),this._cleanupTimeout(),this._resetTimeoutPeriod(),this._resetKeepAliveInterval(),await e,this._stopDuringStartError)throw this._stopDuringStartError;(this.connection.features.reconnect||!1)&&(this._messageBuffer=new h(this._protocol,this.connection,this._statefulReconnectBufferSize),this.connection.features.disconnected=this._messageBuffer._disconnected.bind(this._messageBuffer),this.connection.features.resend=()=>{if(this._messageBuffer)return this._messageBuffer._resend()}),this.connection.features.inherentKeepAlive||await this._sendMessage(this._cachedPingMessage)}catch(e){throw this._logger.log(a.$.Debug,`Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`),this._cleanupTimeout(),this._cleanupPingTimer(),await this.connection.stop(e),e}}async stop(){const e=this._startPromise;this.connection.features.reconnect=!1,this._stopPromise=this._stopInternal(),await this._stopPromise;try{await e}catch(e){}}_stopInternal(e){if(this._connectionState===p.Disconnected)return this._logger.log(a.$.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===p.Disconnecting)return this._logger.log(a.$.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;const t=this._connectionState;return this._connectionState=p.Disconnecting,this._logger.log(a.$.Debug,"Stopping HubConnection."),this._reconnectDelayHandle?(this._logger.log(a.$.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===p.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new i.lc("The connection was stopped before the hub handshake could complete."),this.connection.stop(e))}async _sendCloseMessage(){try{await this._sendWithProtocol(this._createCloseMessage())}catch{}}stream(e,...t){const[n,r]=this._replaceStreamingParams(t),o=this._createStreamInvocation(e,t,r);let s;const i=new l;return i.cancelCallback=()=>{const e=this._createCancelInvocation(o.invocationId);return delete this._callbacks[o.invocationId],s.then((()=>this._sendWithProtocol(e)))},this._callbacks[o.invocationId]=(e,t)=>{t?i.error(t):e&&(e.type===c.G.Completion?e.error?i.error(new Error(e.error)):i.complete():i.next(e.item))},s=this._sendWithProtocol(o).catch((e=>{i.error(e),delete this._callbacks[o.invocationId]})),this._launchStreams(n,s),i}_sendMessage(e){return this._resetKeepAliveInterval(),this.connection.send(e)}_sendWithProtocol(e){return this._messageBuffer?this._messageBuffer._send(e):this._sendMessage(this._protocol.writeMessage(e))}send(e,...t){const[n,r]=this._replaceStreamingParams(t),o=this._sendWithProtocol(this._createInvocation(e,t,!0,r));return this._launchStreams(n,o),o}invoke(e,...t){const[n,r]=this._replaceStreamingParams(t),o=this._createInvocation(e,t,!1,r);return new Promise(((e,t)=>{this._callbacks[o.invocationId]=(n,r)=>{r?t(r):n&&(n.type===c.G.Completion?n.error?t(new Error(n.error)):e(n.result):t(new Error(`Unexpected message type: ${n.type}`)))};const r=this._sendWithProtocol(o).catch((e=>{t(e),delete this._callbacks[o.invocationId]}));this._launchStreams(n,r)}))}on(e,t){e&&t&&(e=e.toLowerCase(),this._methods[e]||(this._methods[e]=[]),-1===this._methods[e].indexOf(t)&&this._methods[e].push(t))}off(e,t){if(!e)return;e=e.toLowerCase();const n=this._methods[e];if(n)if(t){const r=n.indexOf(t);-1!==r&&(n.splice(r,1),0===n.length&&delete this._methods[e])}else delete this._methods[e]}onclose(e){e&&this._closedCallbacks.push(e)}onreconnecting(e){e&&this._reconnectingCallbacks.push(e)}onreconnected(e){e&&this._reconnectedCallbacks.push(e)}_processIncomingData(e){if(this._cleanupTimeout(),this._receivedHandshakeResponse||(e=this._processHandshakeResponse(e),this._receivedHandshakeResponse=!0),e){const t=this._protocol.parseMessages(e,this._logger);for(const e of t)if(!this._messageBuffer||this._messageBuffer._shouldProcessMessage(e))switch(e.type){case c.G.Invocation:this._invokeClientMethod(e).catch((e=>{this._logger.log(a.$.Error,`Invoke client method threw error: ${(0,o.WH)(e)}`)}));break;case c.G.StreamItem:case c.G.Completion:{const t=this._callbacks[e.invocationId];if(t){e.type===c.G.Completion&&delete this._callbacks[e.invocationId];try{t(e)}catch(e){this._logger.log(a.$.Error,`Stream callback threw error: ${(0,o.WH)(e)}`)}}break}case c.G.Ping:break;case c.G.Close:{this._logger.log(a.$.Information,"Close message received from server.");const t=e.error?new Error("Server returned an error on close: "+e.error):void 0;!0===e.allowReconnect?this.connection.stop(t):this._stopPromise=this._stopInternal(t);break}case c.G.Ack:this._messageBuffer&&this._messageBuffer._ack(e);break;case c.G.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(e);break;default:this._logger.log(a.$.Warning,`Invalid message type: ${e.type}.`)}}this._resetTimeoutPeriod()}_processHandshakeResponse(e){let t,n;try{[n,t]=this._handshakeProtocol.parseHandshakeResponse(e)}catch(e){const t="Error parsing handshake response: "+e;this._logger.log(a.$.Error,t);const n=new Error(t);throw this._handshakeRejecter(n),n}if(t.error){const e="Server returned handshake error: "+t.error;this._logger.log(a.$.Error,e);const n=new Error(e);throw this._handshakeRejecter(n),n}return this._logger.log(a.$.Debug,"Server handshake complete."),this._handshakeResolver(),n}_resetKeepAliveInterval(){this.connection.features.inherentKeepAlive||(this._nextKeepAlive=(new Date).getTime()+this.keepAliveIntervalInMilliseconds,this._cleanupPingTimer())}_resetTimeoutPeriod(){if(!(this.connection.features&&this.connection.features.inherentKeepAlive||(this._timeoutHandle=setTimeout((()=>this.serverTimeout()),this.serverTimeoutInMilliseconds),void 0!==this._pingServerHandle))){let e=this._nextKeepAlive-(new Date).getTime();e<0&&(e=0),this._pingServerHandle=setTimeout((async()=>{if(this._connectionState===p.Connected)try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}}),e)}}serverTimeout(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))}async _invokeClientMethod(e){const t=e.target.toLowerCase(),n=this._methods[t];if(!n)return this._logger.log(a.$.Warning,`No client method with the name '${t}' found.`),void(e.invocationId&&(this._logger.log(a.$.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),await this._sendWithProtocol(this._createCompletionMessage(e.invocationId,"Client didn't provide a result.",null))));const r=n.slice(),o=!!e.invocationId;let s,i,c;for(const n of r)try{const r=s;s=await n.apply(this,e.arguments),o&&s&&r&&(this._logger.log(a.$.Error,`Multiple results provided for '${t}'. Sending error to server.`),c=this._createCompletionMessage(e.invocationId,"Client provided multiple results.",null)),i=void 0}catch(e){i=e,this._logger.log(a.$.Error,`A callback for the method '${t}' threw error '${e}'.`)}c?await this._sendWithProtocol(c):o?(i?c=this._createCompletionMessage(e.invocationId,`${i}`,null):void 0!==s?c=this._createCompletionMessage(e.invocationId,null,s):(this._logger.log(a.$.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),c=this._createCompletionMessage(e.invocationId,"Client didn't provide a result.",null)),await this._sendWithProtocol(c)):s&&this._logger.log(a.$.Error,`Result given for '${t}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(a.$.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new i.lc("The underlying connection was closed before the hub handshake could complete."),this._handshakeResolver&&this._handshakeResolver(),this._cancelCallbacksWithError(e||new Error("Invocation canceled due to the underlying connection being closed.")),this._cleanupTimeout(),this._cleanupPingTimer(),this._connectionState===p.Disconnecting?this._completeClose(e):this._connectionState===p.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===p.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=p.Disconnected,this._connectionStarted=!1,this._messageBuffer&&(this._messageBuffer._dispose(null!=e?e:new Error("Connection closed.")),this._messageBuffer=void 0),o.OD.isBrowser&&window.document.removeEventListener("freeze",this._freezeEventListener);try{this._closedCallbacks.forEach((t=>t.apply(this,[e])))}catch(t){this._logger.log(a.$.Error,`An onclose callback called with error '${e}' threw error '${t}'.`)}}}async _reconnect(e){const t=Date.now();let n=0,r=void 0!==e?e:new Error("Attempting to reconnect due to a unknown error."),o=this._getNextRetryDelay(n++,0,r);if(null===o)return this._logger.log(a.$.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),void this._completeClose(e);if(this._connectionState=p.Reconnecting,e?this._logger.log(a.$.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(a.$.Information,"Connection reconnecting."),0!==this._reconnectingCallbacks.length){try{this._reconnectingCallbacks.forEach((t=>t.apply(this,[e])))}catch(t){this._logger.log(a.$.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==p.Reconnecting)return void this._logger.log(a.$.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.")}for(;null!==o;){if(this._logger.log(a.$.Information,`Reconnect attempt number ${n} will start in ${o} ms.`),await new Promise((e=>{this._reconnectDelayHandle=setTimeout(e,o)})),this._reconnectDelayHandle=void 0,this._connectionState!==p.Reconnecting)return void this._logger.log(a.$.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");try{if(await this._startInternal(),this._connectionState=p.Connected,this._logger.log(a.$.Information,"HubConnection reconnected successfully."),0!==this._reconnectedCallbacks.length)try{this._reconnectedCallbacks.forEach((e=>e.apply(this,[this.connection.connectionId])))}catch(e){this._logger.log(a.$.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(a.$.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==p.Reconnecting)return this._logger.log(a.$.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),void(this._connectionState===p.Disconnecting&&this._completeClose());r=e instanceof Error?e:new Error(e.toString()),o=this._getNextRetryDelay(n++,Date.now()-t,r)}}this._logger.log(a.$.Information,`Reconnect retries have been exhausted after ${Date.now()-t} ms and ${n} failed attempts. Connection disconnecting.`),this._completeClose()}_getNextRetryDelay(e,t,n){try{return this._reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:n})}catch(n){return this._logger.log(a.$.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${e}, ${t}) threw error '${n}'.`),null}}_cancelCallbacksWithError(e){const t=this._callbacks;this._callbacks={},Object.keys(t).forEach((n=>{const r=t[n];try{r(null,e)}catch(t){this._logger.log(a.$.Error,`Stream 'error' callback called with '${e}' threw error: ${(0,o.WH)(t)}`)}}))}_cleanupPingTimer(){this._pingServerHandle&&(clearTimeout(this._pingServerHandle),this._pingServerHandle=void 0)}_cleanupTimeout(){this._timeoutHandle&&clearTimeout(this._timeoutHandle)}_createInvocation(e,t,n,r){if(n)return 0!==r.length?{arguments:t,streamIds:r,target:e,type:c.G.Invocation}:{arguments:t,target:e,type:c.G.Invocation};{const n=this._invocationId;return this._invocationId++,0!==r.length?{arguments:t,invocationId:n.toString(),streamIds:r,target:e,type:c.G.Invocation}:{arguments:t,invocationId:n.toString(),target:e,type:c.G.Invocation}}}_launchStreams(e,t){if(0!==e.length){t||(t=Promise.resolve());for(const n in e)e[n].subscribe({complete:()=>{t=t.then((()=>this._sendWithProtocol(this._createCompletionMessage(n))))},error:e=>{let r;r=e instanceof Error?e.message:e&&e.toString?e.toString():"Unknown error",t=t.then((()=>this._sendWithProtocol(this._createCompletionMessage(n,r))))},next:e=>{t=t.then((()=>this._sendWithProtocol(this._createStreamItemMessage(n,e))))}})}}_replaceStreamingParams(e){const t=[],n=[];for(let r=0;r0)&&(t=!1,this._accessToken=await this._accessTokenFactory()),this._setAuthorizationHeader(e);const n=await this._innerClient.send(e);return t&&401===n.statusCode&&this._accessTokenFactory?(this._accessToken=await this._accessTokenFactory(),this._setAuthorizationHeader(e),await this._innerClient.send(e)):n}_setAuthorizationHeader(e){e.headers||(e.headers={}),this._accessToken?e.headers[s.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[s.Authorization]&&delete e.headers[s.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}}var l=n(1966),h=n(250),u=n(6132);class p extends c{constructor(e){if(super(),this._logger=e,"undefined"==typeof fetch||u.OD.isNode){const e=require;this._jar=new(e("tough-cookie").CookieJar),"undefined"==typeof fetch?this._fetchType=e("node-fetch"):this._fetchType=fetch,this._fetchType=e("fetch-cookie")(this._fetchType,this._jar)}else this._fetchType=fetch.bind((0,u.We)());if("undefined"==typeof AbortController){const e=require;this._abortControllerType=e("abort-controller")}else this._abortControllerType=AbortController}async send(e){if(e.abortSignal&&e.abortSignal.aborted)throw new l.lc;if(!e.method)throw new Error("No method defined.");if(!e.url)throw new Error("No url defined.");const t=new this._abortControllerType;let n;e.abortSignal&&(e.abortSignal.onabort=()=>{t.abort(),n=new l.lc});let r,o=null;if(e.timeout){const r=e.timeout;o=setTimeout((()=>{t.abort(),this._logger.log(h.$.Warning,"Timeout from HTTP request."),n=new l.MU}),r)}""===e.content&&(e.content=void 0),e.content&&(e.headers=e.headers||{},(0,u.mw)(e.content)?e.headers["Content-Type"]="application/octet-stream":e.headers["Content-Type"]="text/plain;charset=UTF-8");try{r=await this._fetchType(e.url,{body:e.content,cache:"no-cache",credentials:!0===e.withCredentials?"include":"same-origin",headers:{"X-Requested-With":"XMLHttpRequest",...e.headers},method:e.method,mode:"cors",redirect:"follow",signal:t.signal})}catch(e){if(n)throw n;throw this._logger.log(h.$.Warning,`Error from HTTP request. ${e}.`),e}finally{o&&clearTimeout(o),e.abortSignal&&(e.abortSignal.onabort=null)}if(!r.ok){const e=await g(r,"text");throw new l.j$(e||r.statusText,r.status)}const s=g(r,e.responseType),c=await s;return new i(r.status,r.statusText,c)}getCookieString(e){let t="";return u.OD.isNode&&this._jar&&this._jar.getCookies(e,((e,n)=>t=n.join("; "))),t}}function g(e,t){let n;switch(t){case"arraybuffer":n=e.arrayBuffer();break;case"text":default:n=e.text();break;case"blob":case"document":case"json":throw new Error(`${t} is not supported.`)}return n}class d extends c{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new l.lc):e.method?e.url?new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),r.withCredentials=void 0===e.withCredentials||e.withCredentials,r.setRequestHeader("X-Requested-With","XMLHttpRequest"),""===e.content&&(e.content=void 0),e.content&&((0,u.mw)(e.content)?r.setRequestHeader("Content-Type","application/octet-stream"):r.setRequestHeader("Content-Type","text/plain;charset=UTF-8"));const o=e.headers;o&&Object.keys(o).forEach((e=>{r.setRequestHeader(e,o[e])})),e.responseType&&(r.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=()=>{r.abort(),n(new l.lc)}),e.timeout&&(r.timeout=e.timeout),r.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),r.status>=200&&r.status<300?t(new i(r.status,r.statusText,r.response||r.responseText)):n(new l.j$(r.response||r.responseText||r.statusText,r.status))},r.onerror=()=>{this._logger.log(h.$.Warning,`Error from HTTP request. ${r.status}: ${r.statusText}.`),n(new l.j$(r.statusText,r.status))},r.ontimeout=()=>{this._logger.log(h.$.Warning,"Timeout from HTTP request."),n(new l.MU)},r.send(e.content)})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}}class _ extends c{constructor(e){if(super(),"undefined"!=typeof fetch||u.OD.isNode)this._httpClient=new p(e);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");this._httpClient=new d(e)}}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new l.lc):e.method?e.url?this._httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}getCookieString(e){return this._httpClient.getCookieString(e)}}var f=n(2521);class m{constructor(){this._isAborted=!1,this.onabort=null}abort(){this._isAborted||(this._isAborted=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this._isAborted}}class E{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,n){this._httpClient=e,this._logger=t,this._pollAbort=new m,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(u.z6.isRequired(e,"url"),u.z6.isRequired(t,"transferFormat"),u.z6.isIn(t,f.B,"transferFormat"),this._url=e,this._logger.log(h.$.Trace,"(LongPolling transport) Connecting."),t===f.B.Binary&&"undefined"!=typeof XMLHttpRequest&&"string"!=typeof(new XMLHttpRequest).responseType)throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");const[n,r]=(0,u.AL)(),o={[n]:r,...this._options.headers},s={abortSignal:this._pollAbort.signal,headers:o,timeout:1e5,withCredentials:this._options.withCredentials};t===f.B.Binary&&(s.responseType="arraybuffer");const i=`${e}&_=${Date.now()}`;this._logger.log(h.$.Trace,`(LongPolling transport) polling: ${i}.`);const c=await this._httpClient.get(i,s);200!==c.statusCode?(this._logger.log(h.$.Error,`(LongPolling transport) Unexpected response code: ${c.statusCode}.`),this._closeError=new l.j$(c.statusText||"",c.statusCode),this._running=!1):this._running=!0,this._receiving=this._poll(this._url,s)}async _poll(e,t){try{for(;this._running;)try{const n=`${e}&_=${Date.now()}`;this._logger.log(h.$.Trace,`(LongPolling transport) polling: ${n}.`);const r=await this._httpClient.get(n,t);204===r.statusCode?(this._logger.log(h.$.Information,"(LongPolling transport) Poll terminated by server."),this._running=!1):200!==r.statusCode?(this._logger.log(h.$.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this._closeError=new l.j$(r.statusText||"",r.statusCode),this._running=!1):r.content?(this._logger.log(h.$.Trace,`(LongPolling transport) data received. ${(0,u.Gp)(r.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this._logger.log(h.$.Trace,"(LongPolling transport) Poll timed out, reissuing.")}catch(e){this._running?e instanceof l.MU?this._logger.log(h.$.Trace,"(LongPolling transport) Poll timed out, reissuing."):(this._closeError=e,this._running=!1):this._logger.log(h.$.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(h.$.Trace,"(LongPolling transport) Polling complete."),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?(0,u._z)(this._logger,"LongPolling",this._httpClient,this._url,e,this._options):Promise.reject(new Error("Cannot send until the transport is connected"))}async stop(){this._logger.log(h.$.Trace,"(LongPolling transport) Stopping polling."),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(h.$.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);const e={},[t,n]=(0,u.AL)();e[t]=n;const r={headers:{...e,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials};let o;try{await this._httpClient.delete(this._url,r)}catch(e){o=e}o?o instanceof l.j$&&(404===o.statusCode?this._logger.log(h.$.Trace,"(LongPolling transport) A 404 response was returned from sending a DELETE request."):this._logger.log(h.$.Trace,`(LongPolling transport) Error sending a DELETE request: ${o}`)):this._logger.log(h.$.Trace,"(LongPolling transport) DELETE request accepted.")}finally{this._logger.log(h.$.Trace,"(LongPolling transport) Stop finished."),this._raiseOnClose()}}_raiseOnClose(){if(this.onclose){let e="(LongPolling transport) Firing onclose event.";this._closeError&&(e+=" Error: "+this._closeError),this._logger.log(h.$.Trace,e),this.onclose(this._closeError)}}}class w{constructor(e,t,n,r){this._httpClient=e,this._accessToken=t,this._logger=n,this._options=r,this.onreceive=null,this.onclose=null}async connect(e,t){return u.z6.isRequired(e,"url"),u.z6.isRequired(t,"transferFormat"),u.z6.isIn(t,f.B,"transferFormat"),this._logger.log(h.$.Trace,"(SSE transport) Connecting."),this._url=e,this._accessToken&&(e+=(e.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(this._accessToken)}`),new Promise(((n,r)=>{let o,s=!1;if(t===f.B.Text){if(u.OD.isBrowser||u.OD.isWebWorker)o=new this._options.EventSource(e,{withCredentials:this._options.withCredentials});else{const t=this._httpClient.getCookieString(e),n={};n.Cookie=t;const[r,s]=(0,u.AL)();n[r]=s,o=new this._options.EventSource(e,{withCredentials:this._options.withCredentials,headers:{...n,...this._options.headers}})}try{o.onmessage=e=>{if(this.onreceive)try{this._logger.log(h.$.Trace,`(SSE transport) data received. ${(0,u.Gp)(e.data,this._options.logMessageContent)}.`),this.onreceive(e.data)}catch(e){return void this._close(e)}},o.onerror=e=>{s?this._close():r(new Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},o.onopen=()=>{this._logger.log(h.$.Information,`SSE connected to ${this._url}`),this._eventSource=o,s=!0,n()}}catch(e){return void r(e)}}else r(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))}async send(e){return this._eventSource?(0,u._z)(this._logger,"SSE",this._httpClient,this._url,e,this._options):Promise.reject(new Error("Cannot send until the transport is connected"))}stop(){return this._close(),Promise.resolve()}_close(e){this._eventSource&&(this._eventSource.close(),this._eventSource=void 0,this.onclose&&this.onclose(e))}}class v{constructor(e,t,n,r,o,s){this._logger=n,this._accessTokenFactory=t,this._logMessageContent=r,this._webSocketConstructor=o,this._httpClient=e,this.onreceive=null,this.onclose=null,this._headers=s}async connect(e,t){let n;return u.z6.isRequired(e,"url"),u.z6.isRequired(t,"transferFormat"),u.z6.isIn(t,f.B,"transferFormat"),this._logger.log(h.$.Trace,"(WebSockets transport) Connecting."),this._accessTokenFactory&&(n=await this._accessTokenFactory()),new Promise(((r,o)=>{let i;e=e.replace(/^http/,"ws");const c=this._httpClient.getCookieString(e);let a=!1;if(u.OD.isNode||u.OD.isReactNative){const t={},[r,o]=(0,u.AL)();t[r]=o,n&&(t[s.Authorization]=`Bearer ${n}`),c&&(t[s.Cookie]=c),i=new this._webSocketConstructor(e,void 0,{headers:{...t,...this._headers}})}else n&&(e+=(e.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(n)}`);i||(i=new this._webSocketConstructor(e)),t===f.B.Binary&&(i.binaryType="arraybuffer"),i.onopen=t=>{this._logger.log(h.$.Information,`WebSocket connected to ${e}.`),this._webSocket=i,a=!0,r()},i.onerror=e=>{let t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:"There was an error with the transport",this._logger.log(h.$.Information,`(WebSockets transport) ${t}.`)},i.onmessage=e=>{if(this._logger.log(h.$.Trace,`(WebSockets transport) data received. ${(0,u.Gp)(e.data,this._logMessageContent)}.`),this.onreceive)try{this.onreceive(e.data)}catch(e){return void this._close(e)}},i.onclose=e=>{if(a)this._close(e);else{let t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.",o(new Error(t))}}}))}send(e){return this._webSocket&&this._webSocket.readyState===this._webSocketConstructor.OPEN?(this._logger.log(h.$.Trace,`(WebSockets transport) sending data. ${(0,u.Gp)(e,this._logMessageContent)}.`),this._webSocket.send(e),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this._webSocket&&this._close(void 0),Promise.resolve()}_close(e){this._webSocket&&(this._webSocket.onclose=()=>{},this._webSocket.onmessage=()=>{},this._webSocket.onerror=()=>{},this._webSocket.close(),this._webSocket=void 0),this._logger.log(h.$.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this._isCloseEvent(e)||!1!==e.wasClean&&1e3===e.code?e instanceof Error?this.onclose(e):this.onclose():this.onclose(new Error(`WebSocket closed with status code: ${e.code} (${e.reason||"no reason given"}).`)))}_isCloseEvent(e){return e&&"boolean"==typeof e.wasClean&&"number"==typeof e.code}}class ${constructor(e,t={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,u.z6.isRequired(e,"url"),this._logger=(0,u.h)(t.logger),this.baseUrl=this._resolveUrl(e),(t=t||{}).logMessageContent=void 0!==t.logMessageContent&&t.logMessageContent,"boolean"!=typeof t.withCredentials&&void 0!==t.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");t.withCredentials=void 0===t.withCredentials||t.withCredentials,t.timeout=void 0===t.timeout?1e5:t.timeout;let n=null,r=null;if(u.OD.isNode){const e=require;n=e("ws"),r=e("eventsource")}u.OD.isNode||"undefined"==typeof WebSocket||t.WebSocket?u.OD.isNode&&!t.WebSocket&&n&&(t.WebSocket=n):t.WebSocket=WebSocket,u.OD.isNode||"undefined"==typeof EventSource||t.EventSource?u.OD.isNode&&!t.EventSource&&void 0!==r&&(t.EventSource=r):t.EventSource=EventSource,this._httpClient=new a(t.httpClient||new _(this._logger),t.accessTokenFactory),this._connectionState="Disconnected",this._connectionStarted=!1,this._options=t,this.onreceive=null,this.onclose=null}async start(e){if(e=e||f.B.Binary,u.z6.isIn(e,f.B,"transferFormat"),this._logger.log(h.$.Debug,`Starting connection with transfer format '${f.B[e]}'.`),"Disconnected"!==this._connectionState)return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this._connectionState="Connecting",this._startInternalPromise=this._startInternal(e),await this._startInternalPromise,"Disconnecting"===this._connectionState){const e="Failed to start the HttpConnection before stop() was called.";return this._logger.log(h.$.Error,e),await this._stopPromise,Promise.reject(new l.lc(e))}if("Connected"!==this._connectionState){const e="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this._logger.log(h.$.Error,e),Promise.reject(new l.lc(e))}this._connectionStarted=!0}send(e){return"Connected"!==this._connectionState?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this._sendQueue||(this._sendQueue=new S(this.transport)),this._sendQueue.send(e))}async stop(e){return"Disconnected"===this._connectionState?(this._logger.log(h.$.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):"Disconnecting"===this._connectionState?(this._logger.log(h.$.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise):(this._connectionState="Disconnecting",this._stopPromise=new Promise((e=>{this._stopPromiseResolver=e})),await this._stopInternal(e),void await this._stopPromise)}async _stopInternal(e){this._stopError=e;try{await this._startInternalPromise}catch(e){}if(this.transport){try{await this.transport.stop()}catch(e){this._logger.log(h.$.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(h.$.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async _startInternal(e){let t=this.baseUrl;this._accessTokenFactory=this._options.accessTokenFactory,this._httpClient._accessTokenFactory=this._accessTokenFactory;try{if(this._options.skipNegotiation){if(this._options.transport!==f.w.WebSockets)throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");this.transport=this._constructTransport(f.w.WebSockets),await this._startTransport(t,e)}else{let n=null,r=0;do{if(n=await this._getNegotiationResponse(t),"Disconnecting"===this._connectionState||"Disconnected"===this._connectionState)throw new l.lc("The connection was stopped during negotiation.");if(n.error)throw new Error(n.error);if(n.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(n.url&&(t=n.url),n.accessToken){const e=n.accessToken;this._accessTokenFactory=()=>e,this._httpClient._accessToken=e,this._httpClient._accessTokenFactory=void 0}r++}while(n.url&&r<100);if(100===r&&n.url)throw new Error("Negotiate redirection limit exceeded.");await this._createTransport(t,this._options.transport,n,e)}this.transport instanceof E&&(this.features.inherentKeepAlive=!0),"Connecting"===this._connectionState&&(this._logger.log(h.$.Debug,"The HttpConnection connected successfully."),this._connectionState="Connected")}catch(e){return this._logger.log(h.$.Error,"Failed to start the connection: "+e),this._connectionState="Disconnected",this.transport=void 0,this._stopPromiseResolver(),Promise.reject(e)}}async _getNegotiationResponse(e){const t={},[n,r]=(0,u.AL)();t[n]=r;const o=this._resolveNegotiateUrl(e);this._logger.log(h.$.Debug,`Sending negotiation request: ${o}.`);try{const e=await this._httpClient.post(o,{content:"",headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials});if(200!==e.statusCode)return Promise.reject(new Error(`Unexpected status code returned from negotiate '${e.statusCode}'`));const n=JSON.parse(e.content);return(!n.negotiateVersion||n.negotiateVersion<1)&&(n.connectionToken=n.connectionId),n.useStatefulReconnect&&!0!==this._options._useStatefulReconnect?Promise.reject(new l.YW("Client didn't negotiate Stateful Reconnect but the server did.")):n}catch(e){let t="Failed to complete negotiation with the server: "+e;return e instanceof l.j$&&404===e.statusCode&&(t+=" Either this is not a SignalR endpoint or there is a proxy blocking the connection."),this._logger.log(h.$.Error,t),Promise.reject(new l.YW(t))}}_createConnectUrl(e,t){return t?e+(-1===e.indexOf("?")?"?":"&")+`id=${t}`:e}async _createTransport(e,t,n,r){let o=this._createConnectUrl(e,n.connectionToken);if(this._isITransport(t))return this._logger.log(h.$.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=t,await this._startTransport(o,r),void(this.connectionId=n.connectionId);const s=[],i=n.availableTransports||[];let c=n;for(const n of i){const i=this._resolveTransportOrError(n,t,r,!0===(null==c?void 0:c.useStatefulReconnect));if(i instanceof Error)s.push(`${n.transport} failed:`),s.push(i);else if(this._isITransport(i)){if(this.transport=i,!c){try{c=await this._getNegotiationResponse(e)}catch(e){return Promise.reject(e)}o=this._createConnectUrl(e,c.connectionToken)}try{return await this._startTransport(o,r),void(this.connectionId=c.connectionId)}catch(e){if(this._logger.log(h.$.Error,`Failed to start the transport '${n.transport}': ${e}`),c=void 0,s.push(new l.az(`${n.transport} failed: ${e}`,f.w[n.transport])),"Connecting"!==this._connectionState){const e="Failed to select transport before stop() was called.";return this._logger.log(h.$.Debug,e),Promise.reject(new l.lc(e))}}}}return s.length>0?Promise.reject(new l.tJ(`Unable to connect to the server with any of the available transports. ${s.join(" ")}`,s)):Promise.reject(new Error("None of the transports supported by the client are supported by the server."))}_constructTransport(e){switch(e){case f.w.WebSockets:if(!this._options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new v(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case f.w.ServerSentEvents:if(!this._options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new w(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case f.w.LongPolling:return new E(this._httpClient,this._logger,this._options);default:throw new Error(`Unknown transport: ${e}.`)}}_startTransport(e,t){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async n=>{let r=!1;if(this.features.reconnect){try{this.features.disconnected(),await this.transport.connect(e,t),await this.features.resend()}catch{r=!0}r&&this._stopConnection(n)}else this._stopConnection(n)}:this.transport.onclose=e=>this._stopConnection(e),this.transport.connect(e,t)}_resolveTransportOrError(e,t,n,r){const o=f.w[e.transport];if(null==o)return this._logger.log(h.$.Debug,`Skipping transport '${e.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${e.transport}' because it is not supported by this client.`);if(!function(e,t){return!e||!!(t&e)}(t,o))return this._logger.log(h.$.Debug,`Skipping transport '${f.w[o]}' because it was disabled by the client.`),new l.Y3(`'${f.w[o]}' is disabled by the client.`,o);if(!(e.transferFormats.map((e=>f.B[e])).indexOf(n)>=0))return this._logger.log(h.$.Debug,`Skipping transport '${f.w[o]}' because it does not support the requested transfer format '${f.B[n]}'.`),new Error(`'${f.w[o]}' does not support ${f.B[n]}.`);if(o===f.w.WebSockets&&!this._options.WebSocket||o===f.w.ServerSentEvents&&!this._options.EventSource)return this._logger.log(h.$.Debug,`Skipping transport '${f.w[o]}' because it is not supported in your environment.'`),new l.zN(`'${f.w[o]}' is not supported in your environment.`,o);this._logger.log(h.$.Debug,`Selecting transport '${f.w[o]}'.`);try{return this.features.reconnect=o===f.w.WebSockets?r:void 0,this._constructTransport(o)}catch(e){return e}}_isITransport(e){return e&&"object"==typeof e&&"connect"in e}_stopConnection(e){if(this._logger.log(h.$.Debug,`HttpConnection.stopConnection(${e}) called while in state ${this._connectionState}.`),this.transport=void 0,e=this._stopError||e,this._stopError=void 0,"Disconnected"!==this._connectionState){if("Connecting"===this._connectionState)throw this._logger.log(h.$.Warning,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${e}) was called while the connection is still in the connecting state.`);if("Disconnecting"===this._connectionState&&this._stopPromiseResolver(),e?this._logger.log(h.$.Error,`Connection disconnected with error '${e}'.`):this._logger.log(h.$.Information,"Connection disconnected."),this._sendQueue&&(this._sendQueue.stop().catch((e=>{this._logger.log(h.$.Error,`TransportSendQueue.stop() threw error '${e}'.`)})),this._sendQueue=void 0),this.connectionId=void 0,this._connectionState="Disconnected",this._connectionStarted){this._connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this._logger.log(h.$.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}else this._logger.log(h.$.Debug,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is already in the disconnected state.`)}_resolveUrl(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!u.OD.isBrowser)throw new Error(`Cannot resolve '${e}'.`);const t=window.document.createElement("a");return t.href=e,this._logger.log(h.$.Information,`Normalizing '${e}' to '${t.href}'.`),t.href}_resolveNegotiateUrl(e){const t=new URL(e);t.pathname.endsWith("/")?t.pathname+="negotiate":t.pathname+="/negotiate";const n=new URLSearchParams(t.searchParams);return n.has("negotiateVersion")||n.append("negotiateVersion",this._negotiateVersion.toString()),n.has("useStatefulReconnect")?"true"===n.get("useStatefulReconnect")&&(this._options._useStatefulReconnect=!0):!0===this._options._useStatefulReconnect&&n.append("useStatefulReconnect","true"),t.search=n.toString(),t.toString()}}class S{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new I,this._transportResult=new I,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||(this._transportResult=new I),this._transportResult.promise}stop(){return this._executing=!1,this._sendBufferedData.resolve(),this._sendLoopPromise}_bufferData(e){if(this._buffer.length&&typeof this._buffer[0]!=typeof e)throw new Error(`Expected data to be of type ${typeof this._buffer} but was of type ${typeof e}`);this._buffer.push(e),this._sendBufferedData.resolve()}async _sendLoop(){for(;;){if(await this._sendBufferedData.promise,!this._executing){this._transportResult&&this._transportResult.reject("Connection stopped.");break}this._sendBufferedData=new I;const e=this._transportResult;this._transportResult=void 0;const t="string"==typeof this._buffer[0]?this._buffer.join(""):S._concatBuffers(this._buffer);this._buffer.length=0;try{await this._transport.send(t),e.resolve()}catch(t){e.reject(t)}}}static _concatBuffers(e){const t=e.map((e=>e.byteLength)).reduce(((e,t)=>e+t)),n=new Uint8Array(t);let r=0;for(const t of e)n.set(new Uint8Array(t),r),r+=t.byteLength;return n.buffer}}class I{constructor(){this.promise=new Promise(((e,t)=>[this._resolver,this._rejecter]=[e,t]))}resolve(){this._resolver()}reject(e){this._rejecter(e)}}var b=n(4492),C=n(5963),y=n(6060),R=n(1296);class T{constructor(){this.name="json",this.version=2,this.transferFormat=f.B.Text}parseMessages(e,t){if("string"!=typeof e)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!e)return[];null===t&&(t=y.Q.instance);const n=R.s.parse(e),r=[];for(const e of n){const n=JSON.parse(e);if("number"!=typeof n.type)throw new Error("Invalid payload.");switch(n.type){case C.G.Invocation:this._isInvocationMessage(n);break;case C.G.StreamItem:this._isStreamItemMessage(n);break;case C.G.Completion:this._isCompletionMessage(n);break;case C.G.Ping:case C.G.Close:break;case C.G.Ack:this._isAckMessage(n);break;case C.G.Sequence:this._isSequenceMessage(n);break;default:t.log(h.$.Information,"Unknown message type '"+n.type+"' ignored.");continue}r.push(n)}return r}writeMessage(e){return R.s.write(JSON.stringify(e))}_isInvocationMessage(e){this._assertNotEmptyString(e.target,"Invalid payload for Invocation message."),void 0!==e.invocationId&&this._assertNotEmptyString(e.invocationId,"Invalid payload for Invocation message.")}_isStreamItemMessage(e){if(this._assertNotEmptyString(e.invocationId,"Invalid payload for StreamItem message."),void 0===e.item)throw new Error("Invalid payload for StreamItem message.")}_isCompletionMessage(e){if(e.result&&e.error)throw new Error("Invalid payload for Completion message.");!e.result&&e.error&&this._assertNotEmptyString(e.error,"Invalid payload for Completion message."),this._assertNotEmptyString(e.invocationId,"Invalid payload for Completion message.")}_isAckMessage(e){if("number"!=typeof e.sequenceId)throw new Error("Invalid SequenceId for Ack message.")}_isSequenceMessage(e){if("number"!=typeof e.sequenceId)throw new Error("Invalid SequenceId for Sequence message.")}_assertNotEmptyString(e,t){if("string"!=typeof e||""===e)throw new Error(t)}}const k={trace:h.$.Trace,debug:h.$.Debug,info:h.$.Information,information:h.$.Information,warn:h.$.Warning,warning:h.$.Warning,error:h.$.Error,critical:h.$.Critical,none:h.$.None};class P{configureLogging(e){if(u.z6.isRequired(e,"logging"),void 0!==e.log)this.logger=e;else if("string"==typeof e){const t=function(e){const t=k[e.toLowerCase()];if(void 0!==t)return t;throw new Error(`Unknown log level: ${e}`)}(e);this.logger=new u.Cr(t)}else this.logger=new u.Cr(e);return this}withUrl(e,t){return u.z6.isRequired(e,"url"),u.z6.isNotEmpty(e,"url"),this.url=e,this.httpConnectionOptions="object"==typeof t?{...this.httpConnectionOptions,...t}:{...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return u.z6.isRequired(e,"protocol"),this.protocol=e,this}withAutomaticReconnect(e){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return e?Array.isArray(e)?this.reconnectPolicy=new o(e):this.reconnectPolicy=e:this.reconnectPolicy=new o,this}withServerTimeout(e){return u.z6.isRequired(e,"milliseconds"),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return u.z6.isRequired(e,"milliseconds"),this._keepAliveIntervalInMilliseconds=e,this}withStatefulReconnect(e){return void 0===this.httpConnectionOptions&&(this.httpConnectionOptions={}),this.httpConnectionOptions._useStatefulReconnect=!0,this._statefulReconnectBufferSize=null==e?void 0:e.bufferSize,this}build(){const e=this.httpConnectionOptions||{};if(void 0===e.logger&&(e.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");const t=new $(this.url,e);return b.q.create(t,this.logger||y.Q.instance,this.protocol||new T,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}}},5963:function(e,t,n){"use strict";var r;n.d(t,{G:function(){return r}}),function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close",e[e.Ack=8]="Ack",e[e.Sequence=9]="Sequence"}(r||(r={}))},250:function(e,t,n){"use strict";var r;n.d(t,{$:function(){return r}}),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},2521:function(e,t,n){"use strict";var r,o;n.d(t,{B:function(){return o},w:function(){return r}}),function(e){e[e.None=0]="None",e[e.WebSockets=1]="WebSockets",e[e.ServerSentEvents=2]="ServerSentEvents",e[e.LongPolling=4]="LongPolling"}(r||(r={})),function(e){e[e.Text=1]="Text",e[e.Binary=2]="Binary"}(o||(o={}))},6060:function(e,t,n){"use strict";n.d(t,{Q:function(){return r}});class r{constructor(){}log(e,t){}}r.instance=new r},1296:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});class r{static write(e){return`${e}${r.RecordSeparator}`}static parse(e){if(e[e.length-1]!==r.RecordSeparator)throw new Error("Message is incomplete.");const t=e.split(r.RecordSeparator);return t.pop(),t}}r.RecordSeparatorCode=30,r.RecordSeparator=String.fromCharCode(r.RecordSeparatorCode)},6132:function(e,t,n){"use strict";n.d(t,{AL:function(){return d},Cr:function(){return g},Gp:function(){return a},OD:function(){return c},WH:function(){return w},We:function(){return v},YU:function(){return p},_z:function(){return h},h:function(){return u},mw:function(){return l},z6:function(){return i}});var r=n(250),o=n(6060);const s="8.0.7";class i{static isRequired(e,t){if(null==e)throw new Error(`The '${t}' argument is required.`)}static isNotEmpty(e,t){if(!e||e.match(/^\s*$/))throw new Error(`The '${t}' argument should not be empty.`)}static isIn(e,t,n){if(!(e in t))throw new Error(`Unknown ${n} value: ${e}.`)}}class c{static get isBrowser(){return!c.isNode&&"object"==typeof window&&"object"==typeof window.document}static get isWebWorker(){return!c.isNode&&"object"==typeof self&&"importScripts"in self}static get isReactNative(){return!c.isNode&&"object"==typeof window&&void 0===window.document}static get isNode(){return"undefined"!=typeof process&&process.release&&"node"===process.release.name}}function a(e,t){let n="";return l(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${function(e){const t=new Uint8Array(e);let n="";return t.forEach((e=>{n+=`0x${e<16?"0":""}${e.toString(16)} `})),n.substr(0,n.length-1)}(e)}'`)):"string"==typeof e&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function l(e){return e&&"undefined"!=typeof ArrayBuffer&&(e instanceof ArrayBuffer||e.constructor&&"ArrayBuffer"===e.constructor.name)}async function h(e,t,n,o,s,i){const c={},[h,u]=d();c[h]=u,e.log(r.$.Trace,`(${t} transport) sending data. ${a(s,i.logMessageContent)}.`);const p=l(s)?"arraybuffer":"text",g=await n.post(o,{content:s,headers:{...c,...i.headers},responseType:p,timeout:i.timeout,withCredentials:i.withCredentials});e.log(r.$.Trace,`(${t} transport) request complete. Response status: ${g.statusCode}.`)}function u(e){return void 0===e?new g(r.$.Information):null===e?o.Q.instance:void 0!==e.log?e:new g(e)}class p{constructor(e,t){this._subject=e,this._observer=t}dispose(){const e=this._subject.observers.indexOf(this._observer);e>-1&&this._subject.observers.splice(e,1),0===this._subject.observers.length&&this._subject.cancelCallback&&this._subject.cancelCallback().catch((e=>{}))}}class g{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){const n=`[${(new Date).toISOString()}] ${r.$[e]}: ${t}`;switch(e){case r.$.Critical:case r.$.Error:this.out.error(n);break;case r.$.Warning:this.out.warn(n);break;case r.$.Information:this.out.info(n);break;default:this.out.log(n)}}}}function d(){let e="X-SignalR-User-Agent";return c.isNode&&(e="User-Agent"),[e,_(s,f(),E(),m())]}function _(e,t,n,r){let o="Microsoft SignalR/";const s=e.split(".");return o+=`${s[0]}.${s[1]}`,o+=` (${e}; `,o+=t&&""!==t?`${t}; `:"Unknown OS; ",o+=`${n}`,o+=r?`; ${r}`:"; Unknown Runtime Version",o+=")",o}function f(){if(!c.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function m(){if(c.isNode)return process.versions.node}function E(){return c.isNode?"NodeJS":"Browser"}function w(e){return e.stack?e.stack:e.message?e.message:`${e}`}function v(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("could not find global")}},3904:function(e,t,n){const r=Symbol("SemVer ANY");class o{static get ANY(){return r}constructor(e,t){if(t=s(t),e instanceof o){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),l("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,l("comp",this)}parse(e){const t=this.options.loose?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new h(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(l("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}return a(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof o))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new u(e.value,t).test(this.value):""===e.operator?""===e.value||new u(this.value,t).test(e.semver):(!(t=s(t)).includePrerelease||"<0.0.0-0"!==this.value&&"<0.0.0-0"!==e.value)&&(!(!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&(!(!this.operator.startsWith(">")||!e.operator.startsWith(">"))||(!(!this.operator.startsWith("<")||!e.operator.startsWith("<"))||(!(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))||(!!(a(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))||!!(a(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))))))}}e.exports=o;const s=n(968),{safeRe:i,t:c}=n(9718),a=n(2111),l=n(7272),h=n(3908),u=n(8311)},8311:function(e,t,n){const r=/\s+/g;class o{constructor(e,t){if(t=i(t),e instanceof o)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new o(e.raw,t);if(e instanceof c)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(r," "),this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!m(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break}}this.formatted=void 0}get range(){if(void 0===this.formatted){this.formatted="";for(let e=0;e0&&(this.formatted+="||");const t=this.set[e];for(let e=0;e0&&(this.formatted+=" "),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){const t=((this.options.includePrerelease&&_)|(this.options.loose&&f))+":"+e,n=s.get(t);if(n)return n;const r=this.options.loose,o=r?h[u.HYPHENRANGELOOSE]:h[u.HYPHENRANGE];e=e.replace(o,P(this.options.includePrerelease)),a("hyphen replace",e),e=e.replace(h[u.COMPARATORTRIM],p),a("comparator trim",e),e=e.replace(h[u.TILDETRIM],g),a("tilde trim",e),e=e.replace(h[u.CARETTRIM],d),a("caret trim",e);let i=e.split(" ").map((e=>v(e,this.options))).join(" ").split(/\s+/).map((e=>k(e,this.options)));r&&(i=i.filter((e=>(a("loose invalid filter",e,this.options),!!e.match(h[u.COMPARATORLOOSE]))))),a("range list",i);const l=new Map,E=i.map((e=>new c(e,this.options)));for(const e of E){if(m(e))return[e];l.set(e.value,e)}l.size>1&&l.has("")&&l.delete("");const w=[...l.values()];return s.set(t,w),w}intersects(e,t){if(!(e instanceof o))throw new TypeError("a Range is required");return this.set.some((n=>w(n,t)&&e.set.some((e=>w(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,w=(e,t)=>{let n=!0;const r=e.slice();let o=r.pop();for(;n&&r.length;)n=r.every((e=>o.intersects(e,t))),o=r.pop();return n},v=(e,t)=>(a("comp",e,t),e=b(e,t),a("caret",e),e=S(e,t),a("tildes",e),e=y(e,t),a("xrange",e),e=T(e,t),a("stars",e),e),$=e=>!e||"x"===e.toLowerCase()||"*"===e,S=(e,t)=>e.trim().split(/\s+/).map((e=>I(e,t))).join(" "),I=(e,t)=>{const n=t.loose?h[u.TILDELOOSE]:h[u.TILDE];return e.replace(n,((t,n,r,o,s)=>{let i;return a("tilde",e,t,n,r,o,s),$(n)?i="":$(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:$(o)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:s?(a("replaceTilde pr",s),i=`>=${n}.${r}.${o}-${s} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${o} <${n}.${+r+1}.0-0`,a("tilde return",i),i}))},b=(e,t)=>e.trim().split(/\s+/).map((e=>C(e,t))).join(" "),C=(e,t)=>{a("caret",e,t);const n=t.loose?h[u.CARETLOOSE]:h[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,o,s,i)=>{let c;return a("caret",e,t,n,o,s,i),$(n)?c="":$(o)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:$(s)?c="0"===n?`>=${n}.${o}.0${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.0${r} <${+n+1}.0.0-0`:i?(a("replaceCaret pr",i),c="0"===n?"0"===o?`>=${n}.${o}.${s}-${i} <${n}.${o}.${+s+1}-0`:`>=${n}.${o}.${s}-${i} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${s}-${i} <${+n+1}.0.0-0`):(a("no pr"),c="0"===n?"0"===o?`>=${n}.${o}.${s}${r} <${n}.${o}.${+s+1}-0`:`>=${n}.${o}.${s}${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${s} <${+n+1}.0.0-0`),a("caret return",c),c}))},y=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map((e=>R(e,t))).join(" ")),R=(e,t)=>{e=e.trim();const n=t.loose?h[u.XRANGELOOSE]:h[u.XRANGE];return e.replace(n,((n,r,o,s,i,c)=>{a("xRange",e,n,r,o,s,i,c);const l=$(o),h=l||$(s),u=h||$(i),p=u;return"="===r&&p&&(r=""),c=t.includePrerelease?"-0":"",l?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&p?(h&&(s=0),i=0,">"===r?(r=">=",h?(o=+o+1,s=0,i=0):(s=+s+1,i=0)):"<="===r&&(r="<",h?o=+o+1:s=+s+1),"<"===r&&(c="-0"),n=`${r+o}.${s}.${i}${c}`):h?n=`>=${o}.0.0${c} <${+o+1}.0.0-0`:u&&(n=`>=${o}.${s}.0${c} <${o}.${+s+1}.0-0`),a("xRange return",n),n}))},T=(e,t)=>(a("replaceStars",e,t),e.trim().replace(h[u.STAR],"")),k=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(h[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),P=e=>(t,n,r,o,s,i,c,a,l,h,u,p)=>`${n=$(r)?"":$(o)?`>=${r}.0.0${e?"-0":""}`:$(s)?`>=${r}.${o}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${a=$(l)?"":$(h)?`<${+l+1}.0.0-0`:$(u)?`<${l}.${+h+1}.0-0`:p?`<=${l}.${h}.${u}-${p}`:e?`<${l}.${h}.${+u+1}-0`:`<=${a}`}`.trim(),N=(e,t,n)=>{for(let n=0;n0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},3908:function(e,t,n){const r=n(7272),{MAX_LENGTH:o,MAX_SAFE_INTEGER:s}=n(6874),{safeRe:i,t:c}=n(9718),a=n(968),{compareIdentifiers:l}=n(1123);class h{constructor(e,t){if(t=a(t),e instanceof h){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>o)throw new TypeError(`version is longer than ${o} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[c.LOOSE]:i[c.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);if(-1===r){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let r=[t,e];!1===n&&(r=[t]),0===l(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=h},7414:function(e,t,n){const r=n(144);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},2111:function(e,t,n){const r=n(4641),o=n(3999),s=n(5580),i=n(4089),c=n(7059),a=n(5200);e.exports=(e,t,n,l)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,l);case"!=":return o(e,n,l);case">":return s(e,n,l);case">=":return i(e,n,l);case"<":return c(e,n,l);case"<=":return a(e,n,l);default:throw new TypeError(`Invalid operator: ${t}`)}}},6170:function(e,t,n){const r=n(3908),o=n(144),{safeRe:s,t:i}=n(9718);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){const r=t.includePrerelease?s[i.COERCERTLFULL]:s[i.COERCERTL];let o;for(;(o=r.exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&o.index+o[0].length===n.index+n[0].length||(n=o),r.lastIndex=o.index+o[1].length+o[2].length;r.lastIndex=-1}else n=e.match(t.includePrerelease?s[i.COERCEFULL]:s[i.COERCE]);if(null===n)return null;const c=n[2],a=n[3]||"0",l=n[4]||"0",h=t.includePrerelease&&n[5]?`-${n[5]}`:"",u=t.includePrerelease&&n[6]?`+${n[6]}`:"";return o(`${c}.${a}.${l}${h}${u}`,t)}},909:function(e,t,n){const r=n(3908);e.exports=(e,t,n)=>{const o=new r(e,n),s=new r(t,n);return o.compare(s)||o.compareBuild(s)}},1763:function(e,t,n){const r=n(560);e.exports=(e,t)=>r(e,t,!0)},560:function(e,t,n){const r=n(3908);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},1832:function(e,t,n){const r=n(144);e.exports=(e,t)=>{const n=r(e,null,!0),o=r(t,null,!0),s=n.compare(o);if(0===s)return null;const i=s>0,c=i?n:o,a=i?o:n,l=!!c.prerelease.length;if(!!a.prerelease.length&&!l)return a.patch||a.minor?c.patch?"patch":c.minor?"minor":"major":"major";const h=l?"pre":"";return n.major!==o.major?h+"major":n.minor!==o.minor?h+"minor":n.patch!==o.patch?h+"patch":"prerelease"}},4641:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>0===r(e,t,n)},5580:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>r(e,t,n)>0},4089:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>r(e,t,n)>=0},3007:function(e,t,n){const r=n(3908);e.exports=(e,t,n,o,s)=>{"string"==typeof n&&(s=o,o=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,o,s).version}catch(e){return null}}},7059:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>r(e,t,n)<0},5200:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>r(e,t,n)<=0},2938:function(e,t,n){const r=n(3908);e.exports=(e,t)=>new r(e,t).major},6254:function(e,t,n){const r=n(3908);e.exports=(e,t)=>new r(e,t).minor},3999:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>0!==r(e,t,n)},144:function(e,t,n){const r=n(3908);e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t)}catch(e){if(!n)return null;throw e}}},4493:function(e,t,n){const r=n(3908);e.exports=(e,t)=>new r(e,t).patch},1729:function(e,t,n){const r=n(144);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},9970:function(e,t,n){const r=n(560);e.exports=(e,t,n)=>r(t,e,n)},4277:function(e,t,n){const r=n(909);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},7638:function(e,t,n){const r=n(8311);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},3927:function(e,t,n){const r=n(909);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},6953:function(e,t,n){const r=n(144);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},9589:function(e,t,n){const r=n(9718),o=n(6874),s=n(3908),i=n(1123),c=n(144),a=n(6953),l=n(7414),h=n(3007),u=n(1832),p=n(2938),g=n(6254),d=n(4493),_=n(1729),f=n(560),m=n(9970),E=n(1763),w=n(909),v=n(3927),$=n(4277),S=n(5580),I=n(7059),b=n(4641),C=n(3999),y=n(4089),R=n(5200),T=n(2111),k=n(6170),P=n(3904),N=n(8311),L=n(7638),A=n(7631),O=n(9628),D=n(270),x=n(1261),M=n(3874),j=n(7075),G=n(5571),F=n(5342),H=n(6780),q=n(2525),U=n(5032);e.exports={parse:c,valid:a,clean:l,inc:h,diff:u,major:p,minor:g,patch:d,prerelease:_,compare:f,rcompare:m,compareLoose:E,compareBuild:w,sort:v,rsort:$,gt:S,lt:I,eq:b,neq:C,gte:y,lte:R,cmp:T,coerce:k,Comparator:P,Range:N,satisfies:L,toComparators:A,maxSatisfying:O,minSatisfying:D,minVersion:x,validRange:M,outside:j,gtr:G,ltr:F,intersects:H,simplifyRange:q,subset:U,SemVer:s,re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:o.SEMVER_SPEC_VERSION,RELEASE_TYPES:o.RELEASE_TYPES,compareIdentifiers:i.compareIdentifiers,rcompareIdentifiers:i.rcompareIdentifiers}},6874:function(e){const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},7272:function(e){const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},1123:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),o=t.test(n);return r&&o&&(e=+e,n=+n),e===n?0:r&&!o?-1:o&&!r?1:en(t,e)}},8794:function(e){e.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);return void 0===t?void 0:(this.map.delete(e),this.map.set(e,t),t)}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&void 0!==t){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}},968:function(e){const t=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?t:e:n},9718:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:o,MAX_LENGTH:s}=n(6874),i=n(7272),c=(t=e.exports={}).re=[],a=t.safeRe=[],l=t.src=[],h=t.t={};let u=0;const p="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",s],[p,o]],d=(e,t,n)=>{const r=(e=>{for(const[t,n]of g)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),o=u++;i(e,o,t),h[e]=o,l[o]=t,c[o]=new RegExp(t,n?"g":void 0),a[o]=new RegExp(r,n?"g":void 0)};d("NUMERICIDENTIFIER","0|[1-9]\\d*"),d("NUMERICIDENTIFIERLOOSE","\\d+"),d("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),d("MAINVERSION",`(${l[h.NUMERICIDENTIFIER]})\\.(${l[h.NUMERICIDENTIFIER]})\\.(${l[h.NUMERICIDENTIFIER]})`),d("MAINVERSIONLOOSE",`(${l[h.NUMERICIDENTIFIERLOOSE]})\\.(${l[h.NUMERICIDENTIFIERLOOSE]})\\.(${l[h.NUMERICIDENTIFIERLOOSE]})`),d("PRERELEASEIDENTIFIER",`(?:${l[h.NUMERICIDENTIFIER]}|${l[h.NONNUMERICIDENTIFIER]})`),d("PRERELEASEIDENTIFIERLOOSE",`(?:${l[h.NUMERICIDENTIFIERLOOSE]}|${l[h.NONNUMERICIDENTIFIER]})`),d("PRERELEASE",`(?:-(${l[h.PRERELEASEIDENTIFIER]}(?:\\.${l[h.PRERELEASEIDENTIFIER]})*))`),d("PRERELEASELOOSE",`(?:-?(${l[h.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[h.PRERELEASEIDENTIFIERLOOSE]})*))`),d("BUILDIDENTIFIER",`${p}+`),d("BUILD",`(?:\\+(${l[h.BUILDIDENTIFIER]}(?:\\.${l[h.BUILDIDENTIFIER]})*))`),d("FULLPLAIN",`v?${l[h.MAINVERSION]}${l[h.PRERELEASE]}?${l[h.BUILD]}?`),d("FULL",`^${l[h.FULLPLAIN]}$`),d("LOOSEPLAIN",`[v=\\s]*${l[h.MAINVERSIONLOOSE]}${l[h.PRERELEASELOOSE]}?${l[h.BUILD]}?`),d("LOOSE",`^${l[h.LOOSEPLAIN]}$`),d("GTLT","((?:<|>)?=?)"),d("XRANGEIDENTIFIERLOOSE",`${l[h.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),d("XRANGEIDENTIFIER",`${l[h.NUMERICIDENTIFIER]}|x|X|\\*`),d("XRANGEPLAIN",`[v=\\s]*(${l[h.XRANGEIDENTIFIER]})(?:\\.(${l[h.XRANGEIDENTIFIER]})(?:\\.(${l[h.XRANGEIDENTIFIER]})(?:${l[h.PRERELEASE]})?${l[h.BUILD]}?)?)?`),d("XRANGEPLAINLOOSE",`[v=\\s]*(${l[h.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[h.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[h.XRANGEIDENTIFIERLOOSE]})(?:${l[h.PRERELEASELOOSE]})?${l[h.BUILD]}?)?)?`),d("XRANGE",`^${l[h.GTLT]}\\s*${l[h.XRANGEPLAIN]}$`),d("XRANGELOOSE",`^${l[h.GTLT]}\\s*${l[h.XRANGEPLAINLOOSE]}$`),d("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),d("COERCE",`${l[h.COERCEPLAIN]}(?:$|[^\\d])`),d("COERCEFULL",l[h.COERCEPLAIN]+`(?:${l[h.PRERELEASE]})?`+`(?:${l[h.BUILD]})?(?:$|[^\\d])`),d("COERCERTL",l[h.COERCE],!0),d("COERCERTLFULL",l[h.COERCEFULL],!0),d("LONETILDE","(?:~>?)"),d("TILDETRIM",`(\\s*)${l[h.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",d("TILDE",`^${l[h.LONETILDE]}${l[h.XRANGEPLAIN]}$`),d("TILDELOOSE",`^${l[h.LONETILDE]}${l[h.XRANGEPLAINLOOSE]}$`),d("LONECARET","(?:\\^)"),d("CARETTRIM",`(\\s*)${l[h.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",d("CARET",`^${l[h.LONECARET]}${l[h.XRANGEPLAIN]}$`),d("CARETLOOSE",`^${l[h.LONECARET]}${l[h.XRANGEPLAINLOOSE]}$`),d("COMPARATORLOOSE",`^${l[h.GTLT]}\\s*(${l[h.LOOSEPLAIN]})$|^$`),d("COMPARATOR",`^${l[h.GTLT]}\\s*(${l[h.FULLPLAIN]})$|^$`),d("COMPARATORTRIM",`(\\s*)${l[h.GTLT]}\\s*(${l[h.LOOSEPLAIN]}|${l[h.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",d("HYPHENRANGE",`^\\s*(${l[h.XRANGEPLAIN]})\\s+-\\s+(${l[h.XRANGEPLAIN]})\\s*$`),d("HYPHENRANGELOOSE",`^\\s*(${l[h.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[h.XRANGEPLAINLOOSE]})\\s*$`),d("STAR","(<|>)?=?\\s*\\*"),d("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),d("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},5571:function(e,t,n){const r=n(7075);e.exports=(e,t,n)=>r(e,t,">",n)},6780:function(e,t,n){const r=n(8311);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n))},5342:function(e,t,n){const r=n(7075);e.exports=(e,t,n)=>r(e,t,"<",n)},9628:function(e,t,n){const r=n(3908),o=n(8311);e.exports=(e,t,n)=>{let s=null,i=null,c=null;try{c=new o(t,n)}catch(e){return null}return e.forEach((e=>{c.test(e)&&(s&&-1!==i.compare(e)||(s=e,i=new r(s,n)))})),s}},270:function(e,t,n){const r=n(3908),o=n(8311);e.exports=(e,t,n)=>{let s=null,i=null,c=null;try{c=new o(t,n)}catch(e){return null}return e.forEach((e=>{c.test(e)&&(s&&1!==i.compare(e)||(s=e,i=new r(s,n)))})),s}},1261:function(e,t,n){const r=n(3908),o=n(8311),s=n(5580);e.exports=(e,t)=>{e=new o(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!s(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||n&&!s(n,i)||(n=i)}return n&&e.test(n)?n:null}},7075:function(e,t,n){const r=n(3908),o=n(3904),{ANY:s}=o,i=n(8311),c=n(7638),a=n(5580),l=n(7059),h=n(5200),u=n(4089);e.exports=(e,t,n,p)=>{let g,d,_,f,m;switch(e=new r(e,p),t=new i(t,p),n){case">":g=a,d=h,_=l,f=">",m=">=";break;case"<":g=l,d=u,_=a,f="<",m="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(c(e,t,p))return!1;for(let n=0;n{e.semver===s&&(e=new o(">=0.0.0")),i=i||e,c=c||e,g(e.semver,i.semver,p)?i=e:_(e.semver,c.semver,p)&&(c=e)})),i.operator===f||i.operator===m)return!1;if((!c.operator||c.operator===f)&&d(e,c.semver))return!1;if(c.operator===m&&_(e,c.semver))return!1}return!0}},2525:function(e,t,n){const r=n(7638),o=n(560);e.exports=(e,t,n)=>{const s=[];let i=null,c=null;const a=e.sort(((e,t)=>o(e,t,n)));for(const e of a){r(e,t,n)?(c=e,i||(i=e)):(c&&s.push([i,c]),c=null,i=null)}i&&s.push([i,null]);const l=[];for(const[e,t]of s)e===t?l.push(e):t||e!==a[0]?t?e===a[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`):l.push("*");const h=l.join(" || "),u="string"==typeof t.raw?t.raw:String(t);return h.length=0.0.0-0")],l=[new o(">=0.0.0")],h=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===s){if(1===t.length&&t[0].semver===s)return!0;e=n.includePrerelease?a:l}if(1===t.length&&t[0].semver===s){if(n.includePrerelease)return!0;t=l}const r=new Set;let o,h,g,d,_,f,m;for(const t of e)">"===t.operator||">="===t.operator?o=u(o,t,n):"<"===t.operator||"<="===t.operator?h=p(h,t,n):r.add(t.semver);if(r.size>1)return null;if(o&&h){if(g=c(o.semver,h.semver,n),g>0)return null;if(0===g&&(">="!==o.operator||"<="!==h.operator))return null}for(const e of r){if(o&&!i(e,String(o),n))return null;if(h&&!i(e,String(h),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let E=!(!h||n.includePrerelease||!h.semver.prerelease.length)&&h.semver,w=!(!o||n.includePrerelease||!o.semver.prerelease.length)&&o.semver;E&&1===E.prerelease.length&&"<"===h.operator&&0===E.prerelease[0]&&(E=!1);for(const e of t){if(m=m||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,o)if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),">"===e.operator||">="===e.operator){if(d=u(o,e,n),d===e&&d!==o)return!1}else if(">="===o.operator&&!i(o.semver,String(e),n))return!1;if(h)if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if(_=p(h,e,n),_===e&&_!==h)return!1}else if("<="===h.operator&&!i(h.semver,String(e),n))return!1;if(!e.operator&&(h||o)&&0!==g)return!1}return!(o&&f&&!h&&0!==g)&&(!(h&&m&&!o&&0!==g)&&(!w&&!E))},u=(e,t,n)=>{if(!e)return t;const r=c(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},p=(e,t,n)=>{if(!e)return t;const r=c(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let o=!1;e:for(const r of e.set){for(const e of t.set){const t=h(r,e,n);if(o=o||null!==t,t)continue e}if(o)return!1}return!0}},7631:function(e,t,n){const r=n(8311);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},3874:function(e,t,n){const r=n(8311);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}}}]); +//# sourceMappingURL=4945.ca56b95a327c1fa584ea.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js.map b/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js.map new file mode 100644 index 00000000..e287efec --- /dev/null +++ b/webpanel/6.6.0/4945.ca56b95a327c1fa584ea.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4945.ca56b95a327c1fa584ea.bundle.js","mappings":"+VAGO,MAAMA,UAAkBC,MAM3B,WAAAC,CAAYC,EAAcC,GACtB,MAAMC,aAAuBC,UAC7BC,MAAM,GAAGJ,mBAA8BC,MACvCI,KAAKJ,WAAaA,EAGlBI,KAAKC,UAAYJ,CACrB,EAGG,MAAMK,UAAqBT,MAK9B,WAAAC,CAAYC,EAAe,uBACvB,MAAME,aAAuBC,UAC7BC,MAAMJ,GAGNK,KAAKC,UAAYJ,CACrB,EAGG,MAAMM,UAAmBV,MAK5B,WAAAC,CAAYC,EAAe,sBACvB,MAAME,aAAuBC,UAC7BC,MAAMJ,GAGNK,KAAKC,UAAYJ,CACrB,EAIG,MAAMO,UAAkCX,MAM3C,WAAAC,CAAYW,EAASC,GACjB,MAAMT,aAAuBC,UAC7BC,MAAMM,GACNL,KAAKM,UAAYA,EACjBN,KAAKO,UAAY,4BAGjBP,KAAKC,UAAYJ,CACrB,EAIG,MAAMW,UAA+Bf,MAMxC,WAAAC,CAAYW,EAASC,GACjB,MAAMT,aAAuBC,UAC7BC,MAAMM,GACNL,KAAKM,UAAYA,EACjBN,KAAKO,UAAY,yBAGjBP,KAAKC,UAAYJ,CACrB,EAIG,MAAMY,UAAoChB,MAM7C,WAAAC,CAAYW,EAASC,GACjB,MAAMT,aAAuBC,UAC7BC,MAAMM,GACNL,KAAKM,UAAYA,EACjBN,KAAKO,UAAY,8BAGjBP,KAAKC,UAAYJ,CACrB,EAIG,MAAMa,UAAyCjB,MAKlD,WAAAC,CAAYW,GACR,MAAMR,aAAuBC,UAC7BC,MAAMM,GACNL,KAAKO,UAAY,mCAGjBP,KAAKC,UAAYJ,CACrB,EAIG,MAAMc,UAAwBlB,MAMjC,WAAAC,CAAYW,EAASO,GACjB,MAAMf,aAAuBC,UAC7BC,MAAMM,GACNL,KAAKY,YAAcA,EAGnBZ,KAAKC,UAAYJ,CACrB,E,mHC9HG,MAAMgB,EAET,qBAAAC,CAAsBC,GAClB,OAAOC,EAAA,EAAkBC,MAAMC,KAAKC,UAAUJ,GAClD,CACA,sBAAAK,CAAuBC,GACnB,IAAIC,EACAC,EACJ,IAAI,QAAcF,GAAO,CAErB,MAAMG,EAAa,IAAIC,WAAWJ,GAC5BK,EAAiBF,EAAWG,QAAQX,EAAA,EAAkBY,qBAC5D,IAAwB,IAApBF,EACA,MAAM,IAAIjC,MAAM,0BAIpB,MAAMoC,EAAiBH,EAAiB,EACxCJ,EAAcQ,OAAOC,aAAaC,MAAM,KAAMC,MAAMnC,UAAUoC,MAAMC,KAAKX,EAAWU,MAAM,EAAGL,KAC7FN,EAAiBC,EAAWY,WAAaP,EAAkBL,EAAWU,MAAML,GAAgBQ,OAAS,IACzG,KACK,CACD,MAAMC,EAAWjB,EACXK,EAAiBY,EAASX,QAAQX,EAAA,EAAkBuB,iBAC1D,IAAwB,IAApBb,EACA,MAAM,IAAIjC,MAAM,0BAIpB,MAAMoC,EAAiBH,EAAiB,EACxCJ,EAAcgB,EAASE,UAAU,EAAGX,GACpCN,EAAiBe,EAASG,OAASZ,EAAkBS,EAASE,UAAUX,GAAkB,IAC9F,CAEA,MAAMa,EAAW1B,EAAA,EAAkB2B,MAAMrB,GACnCsB,EAAW1B,KAAKyB,MAAMD,EAAS,IACrC,GAAIE,EAASC,KACT,MAAM,IAAIpD,MAAM,kDAKpB,MAAO,CAAC8B,EAHgBqB,EAI5B,E,iCC5CG,MAAME,EACT,WAAApD,GACIM,KAAK+C,UAAY,EACrB,CACA,IAAAC,CAAKC,GACD,IAAK,MAAMC,KAAYlD,KAAK+C,UACxBG,EAASF,KAAKC,EAEtB,CACA,KAAAE,CAAMC,GACF,IAAK,MAAMF,KAAYlD,KAAK+C,UACpBG,EAASC,OACTD,EAASC,MAAMC,EAG3B,CACA,QAAAC,GACI,IAAK,MAAMH,KAAYlD,KAAK+C,UACpBG,EAASG,UACTH,EAASG,UAGrB,CACA,SAAAC,CAAUJ,GAEN,OADAlD,KAAK+C,UAAUQ,KAAKL,GACb,IAAI,KAAoBlD,KAAMkD,EACzC,ECzBG,MAAMM,EACT,WAAA9D,CAAY+D,EAAUC,EAAYC,GAC9B3D,KAAK4D,YAAc,IACnB5D,KAAK6D,UAAY,GACjB7D,KAAK8D,mBAAqB,EAC1B9D,KAAK+D,yBAA0B,EAE/B/D,KAAKgE,yBAA2B,EAChChE,KAAKiE,0BAA4B,EACjCjE,KAAKkE,mBAAqB,EAC1BlE,KAAKmE,sBAAuB,EAC5BnE,KAAKoE,UAAYX,EACjBzD,KAAKqE,YAAcX,EACnB1D,KAAK4D,YAAcD,CACvB,CACA,WAAMW,CAAMjE,GACR,MAAMkE,EAAoBvE,KAAKoE,UAAUI,aAAanE,GACtD,IAAIoE,EAAsBC,QAAQC,UAElC,GAAI3E,KAAK4E,qBAAqBvE,GAAU,CACpCL,KAAK8D,qBACL,IAAIe,EAA8B,OAC9BC,EAA8B,QAC9B,QAAcP,GACdvE,KAAKkE,oBAAsBK,EAAkBnC,WAG7CpC,KAAKkE,oBAAsBK,EAAkB9B,OAE7CzC,KAAKkE,oBAAsBlE,KAAK4D,cAChCa,EAAsB,IAAIC,SAAQ,CAACC,EAASI,KACxCF,EAA8BF,EAC9BG,EAA8BC,CAAM,KAG5C/E,KAAK6D,UAAUN,KAAK,IAAIyB,EAAaT,EAAmBvE,KAAK8D,mBAAoBe,EAA6BC,GAClH,CACA,IAKS9E,KAAKmE,4BACAnE,KAAKqE,YAAYY,KAAKV,EAEpC,CACA,MACIvE,KAAKkF,eACT,OACMT,CACV,CACA,IAAAU,CAAKC,GACD,IAAIC,GAAsB,EAE1B,IAAK,IAAIC,EAAQ,EAAGA,EAAQtF,KAAK6D,UAAUpB,OAAQ6C,IAAS,CACxD,MAAMC,EAAUvF,KAAK6D,UAAUyB,GAC/B,GAAIC,EAAQC,KAAOJ,EAAWK,WAC1BJ,EAAqBC,GACjB,QAAcC,EAAQG,UACtB1F,KAAKkE,oBAAsBqB,EAAQG,SAAStD,WAG5CpC,KAAKkE,oBAAsBqB,EAAQG,SAASjD,OAGhD8C,EAAQI,gBAEP,MAAI3F,KAAKkE,mBAAqBlE,KAAK4D,aAKpC,MAHA2B,EAAQI,WAIZ,CACJ,EAC4B,IAAxBN,IAEArF,KAAK6D,UAAY7D,KAAK6D,UAAU3B,MAAMmD,EAAqB,GAEnE,CACA,qBAAAO,CAAsBvF,GAClB,GAAIL,KAAK+D,wBACL,OAAI1D,EAAQwC,OAAS,IAAYgD,WAI7B7F,KAAK+D,yBAA0B,GACxB,GAIf,IAAK/D,KAAK4E,qBAAqBvE,GAC3B,OAAO,EAEX,MAAMyF,EAAY9F,KAAKgE,yBAEvB,OADAhE,KAAKgE,2BACD8B,GAAa9F,KAAKiE,2BACd6B,IAAc9F,KAAKiE,2BAGnBjE,KAAK+F,aAGF,IAEX/F,KAAKiE,0BAA4B6B,EAGjC9F,KAAK+F,aACE,EACX,CACA,cAAAC,CAAe3F,GACPA,EAAQoF,WAAazF,KAAKgE,yBAE1BhE,KAAKqE,YAAY4B,KAAK,IAAIxG,MAAM,gEAGpCO,KAAKgE,yBAA2B3D,EAAQoF,UAC5C,CACA,aAAAP,GACIlF,KAAKmE,sBAAuB,EAC5BnE,KAAK+D,yBAA0B,CACnC,CACA,aAAMmC,GACF,MAAMT,EAAuC,IAA1BzF,KAAK6D,UAAUpB,OAC5BzC,KAAK6D,UAAU,GAAG2B,IAClBxF,KAAK8D,mBAAqB,QAC1B9D,KAAKqE,YAAYY,KAAKjF,KAAKoE,UAAUI,aAAa,CAAE3B,KAAM,IAAYgD,SAAUJ,gBAGtF,MAAM/C,EAAW1C,KAAK6D,UACtB,IAAK,MAAM0B,KAAW7C,QACZ1C,KAAKqE,YAAYY,KAAKM,EAAQG,UAExC1F,KAAKmE,sBAAuB,CAChC,CACA,QAAAgC,CAAShD,GACLA,UAA8CA,EAAQ,IAAI1D,MAAM,mCAEhE,IAAK,MAAM8F,KAAWvF,KAAK6D,UACvB0B,EAAQa,UAAUjD,EAE1B,CACA,oBAAAyB,CAAqBvE,GAMjB,OAAQA,EAAQwC,MACZ,KAAK,IAAYwD,WACjB,KAAK,IAAYC,WACjB,KAAK,IAAYC,WACjB,KAAK,IAAYC,iBACjB,KAAK,IAAYC,iBACb,OAAO,EACX,KAAK,IAAYC,MACjB,KAAK,IAAYb,SACjB,KAAK,IAAYc,KACjB,KAAK,IAAYC,IACb,OAAO,EAEnB,CACA,SAAAb,QACiCc,IAAzB7G,KAAK8G,kBACL9G,KAAK8G,gBAAkBC,YAAWC,UAC9B,IACShH,KAAKmE,4BACAnE,KAAKqE,YAAYY,KAAKjF,KAAKoE,UAAUI,aAAa,CAAE3B,KAAM,IAAY+D,IAAKnB,WAAYzF,KAAKiE,4BAG1G,CACA,MAAQ,CACRgD,aAAajH,KAAK8G,iBAClB9G,KAAK8G,qBAAkBD,CAAS,GAEjC,KAEX,EAEJ,MAAM7B,EACF,WAAAtF,CAAYW,EAAS6G,EAAIC,EAAUC,GAC/BpH,KAAK0F,SAAWrF,EAChBL,KAAKwF,IAAM0B,EACXlH,KAAK2F,UAAYwB,EACjBnH,KAAKoG,UAAYgB,CACrB,EClLG,IAAIC,GACX,SAAWA,GAEPA,EAAiC,aAAI,eAErCA,EAA+B,WAAI,aAEnCA,EAA8B,UAAI,YAElCA,EAAkC,cAAI,gBAEtCA,EAAiC,aAAI,cACxC,CAXD,CAWGA,IAAuBA,EAAqB,CAAC,IAEzC,MAAMC,EAMT,aAAOC,CAAO7D,EAAY8D,EAAQ/D,EAAUgE,EAAiBC,EAA6BC,EAAiCC,GACvH,OAAO,IAAIN,EAAc5D,EAAY8D,EAAQ/D,EAAUgE,EAAiBC,EAA6BC,EAAiCC,EAC1I,CACA,WAAAlI,CAAYgE,EAAY8D,EAAQ/D,EAAUgE,EAAiBC,EAA6BC,EAAiCC,GACrH5H,KAAK6H,eAAiB,EACtB7H,KAAK8H,qBAAuB,KACxB9H,KAAK+H,QAAQC,IAAI,IAASC,QAAS,wNAAwN,EAE/P,KAAIC,WAAWxE,EAAY,cAC3B,KAAIwE,WAAWV,EAAQ,UACvB,KAAIU,WAAWzE,EAAU,YACzBzD,KAAK0H,4BAA8BA,QAAiFA,EAnC9F,IAoCtB1H,KAAK2H,gCAAkCA,QAAyFA,EAnCpG,KAoC5B3H,KAAKmI,6BAA+BP,QAAiFA,EAnC9E,IAoCvC5H,KAAK+H,QAAUP,EACfxH,KAAKoE,UAAYX,EACjBzD,KAAK0D,WAAaA,EAClB1D,KAAKoI,iBAAmBX,EACxBzH,KAAKqI,mBAAqB,IAAIxH,EAC9Bb,KAAK0D,WAAW4E,UAAajH,GAASrB,KAAKuI,qBAAqBlH,GAChErB,KAAK0D,WAAW8E,QAAWrF,GAAUnD,KAAKyI,kBAAkBtF,GAC5DnD,KAAK0I,WAAa,CAAC,EACnB1I,KAAK2I,SAAW,CAAC,EACjB3I,KAAK4I,iBAAmB,GACxB5I,KAAK6I,uBAAyB,GAC9B7I,KAAK8I,sBAAwB,GAC7B9I,KAAK+I,cAAgB,EACrB/I,KAAKgJ,4BAA6B,EAClChJ,KAAKiJ,iBAAmB5B,EAAmB6B,aAC3ClJ,KAAKmJ,oBAAqB,EAC1BnJ,KAAKoJ,mBAAqBpJ,KAAKoE,UAAUI,aAAa,CAAE3B,KAAM,IAAY8D,MAC9E,CAEA,SAAI0C,GACA,OAAOrJ,KAAKiJ,gBAChB,CAIA,gBAAIK,GACA,OAAOtJ,KAAK0D,YAAc1D,KAAK0D,WAAW4F,cAAwB,IACtE,CAEA,WAAIC,GACA,OAAOvJ,KAAK0D,WAAW6F,SAAW,EACtC,CAMA,WAAIA,CAAQC,GACR,GAAIxJ,KAAKiJ,mBAAqB5B,EAAmB6B,cAAgBlJ,KAAKiJ,mBAAqB5B,EAAmBoC,aAC1G,MAAM,IAAIhK,MAAM,0FAEpB,IAAK+J,EACD,MAAM,IAAI/J,MAAM,8CAEpBO,KAAK0D,WAAW6F,QAAUC,CAC9B,CAKA,KAAAE,GAEI,OADA1J,KAAK2J,cAAgB3J,KAAK4J,6BACnB5J,KAAK2J,aAChB,CACA,gCAAMC,GACF,GAAI5J,KAAKiJ,mBAAqB5B,EAAmB6B,aAC7C,OAAOxE,QAAQK,OAAO,IAAItF,MAAM,0EAEpCO,KAAKiJ,iBAAmB5B,EAAmBwC,WAC3C7J,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,2BACjC,UACU9J,KAAK+J,iBACP,KAASC,WAETC,OAAOC,SAASC,iBAAiB,SAAUnK,KAAK8H,sBAEpD9H,KAAKiJ,iBAAmB5B,EAAmB+C,UAC3CpK,KAAKmJ,oBAAqB,EAC1BnJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,wCACrC,CACA,MAAOO,GAGH,OAFArK,KAAKiJ,iBAAmB5B,EAAmB6B,aAC3ClJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,gEAAgEO,OAC1F3F,QAAQK,OAAOsF,EAC1B,CACJ,CACA,oBAAMN,GACF/J,KAAKsK,2BAAwBzD,EAC7B7G,KAAKgJ,4BAA6B,EAElC,MAAMuB,EAAmB,IAAI7F,SAAQ,CAACC,EAASI,KAC3C/E,KAAKwK,mBAAqB7F,EAC1B3E,KAAKyK,mBAAqB1F,CAAM,UAE9B/E,KAAK0D,WAAWgG,MAAM1J,KAAKoE,UAAUsG,gBAC3C,IACI,IAAIC,EAAU3K,KAAKoE,UAAUuG,QACxB3K,KAAK0D,WAAWkH,SAASC,YAG1BF,EAAU,GAEd,MAAM5J,EAAmB,CACrB0C,SAAUzD,KAAKoE,UAAU0G,KACzBH,WAaJ,GAXA3K,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,oCAC3B9J,KAAK+K,aAAa/K,KAAKqI,mBAAmBvH,sBAAsBC,IACtEf,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,sBAAsBhL,KAAKoE,UAAU0G,UAE5E9K,KAAKiL,kBACLjL,KAAKkL,sBACLlL,KAAKmL,gCACCZ,EAIFvK,KAAKsK,sBAKL,MAAMtK,KAAKsK,uBAEctK,KAAK0D,WAAWkH,SAASC,YAAa,KAE/D7K,KAAKoL,eAAiB,IAAI5H,EAAcxD,KAAKoE,UAAWpE,KAAK0D,WAAY1D,KAAKmI,8BAC9EnI,KAAK0D,WAAWkH,SAASS,aAAerL,KAAKoL,eAAelG,cAAcoG,KAAKtL,KAAKoL,gBACpFpL,KAAK0D,WAAWkH,SAASW,OAAS,KAC9B,GAAIvL,KAAKoL,eACL,OAAOpL,KAAKoL,eAAelF,SAC/B,GAGHlG,KAAK0D,WAAWkH,SAASY,yBACpBxL,KAAK+K,aAAa/K,KAAKoJ,mBAErC,CACA,MAAOiB,GAOH,MANArK,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,oCAAoCO,8CACrErK,KAAKiL,kBACLjL,KAAKyL,0BAGCzL,KAAK0D,WAAWuC,KAAKoE,GACrBA,CACV,CACJ,CAKA,UAAMpE,GAEF,MAAMyF,EAAe1L,KAAK2J,cAC1B3J,KAAK0D,WAAWkH,SAASC,WAAY,EACrC7K,KAAK2L,aAAe3L,KAAK4L,sBACnB5L,KAAK2L,aACX,UAEUD,CACV,CACA,MAAOrB,GAEP,CACJ,CACA,aAAAuB,CAAczI,GACV,GAAInD,KAAKiJ,mBAAqB5B,EAAmB6B,aAE7C,OADAlJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,8BAA8B3G,+DACxDuB,QAAQC,UAEnB,GAAI3E,KAAKiJ,mBAAqB5B,EAAmBwE,cAE7C,OADA7L,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,+BAA+B3G,4EACzDnD,KAAK2L,aAEhB,MAAMtC,EAAQrJ,KAAKiJ,iBAGnB,OAFAjJ,KAAKiJ,iBAAmB5B,EAAmBwE,cAC3C7L,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,2BAC7B9J,KAAK8L,uBAIL9L,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,iEACjC7C,aAAajH,KAAK8L,uBAClB9L,KAAK8L,2BAAwBjF,EAC7B7G,KAAK+L,iBACErH,QAAQC,YAEf0E,IAAUhC,EAAmB+C,WAE7BpK,KAAKgM,oBAEThM,KAAKiL,kBACLjL,KAAKyL,oBACLzL,KAAKsK,sBAAwBnH,GAAS,IAAI,KAAW,uEAI9CnD,KAAK0D,WAAWuC,KAAK9C,GAChC,CACA,uBAAM6I,GACF,UACUhM,KAAKiM,kBAAkBjM,KAAKkM,sBACtC,CACA,MAEA,CACJ,CAQA,MAAAC,CAAOC,KAAeC,GAClB,MAAOC,EAASC,GAAavM,KAAKwM,wBAAwBH,GACpDI,EAAuBzM,KAAK0M,wBAAwBN,EAAYC,EAAME,GAE5E,IAAII,EACJ,MAAMC,EAAU,IAAI9J,EAkCpB,OAjCA8J,EAAQC,eAAiB,KACrB,MAAMC,EAAmB9M,KAAK+M,wBAAwBN,EAAqBO,cAE3E,cADOhN,KAAK0I,WAAW+D,EAAqBO,cACrCL,EAAaM,MAAK,IACdjN,KAAKiM,kBAAkBa,IAChC,EAEN9M,KAAK0I,WAAW+D,EAAqBO,cAAgB,CAACE,EAAiB/J,KAC/DA,EACAyJ,EAAQzJ,MAAMA,GAGT+J,IAEDA,EAAgBrK,OAAS,IAAY0D,WACjC2G,EAAgB/J,MAChByJ,EAAQzJ,MAAM,IAAI1D,MAAMyN,EAAgB/J,QAGxCyJ,EAAQvJ,WAIZuJ,EAAQ5J,KAAMkK,EAAoB,MAE1C,EAEJP,EAAe3M,KAAKiM,kBAAkBQ,GACjCU,OAAO9C,IACRuC,EAAQzJ,MAAMkH,UACPrK,KAAK0I,WAAW+D,EAAqBO,aAAa,IAE7DhN,KAAKoN,eAAed,EAASK,GACtBC,CACX,CACA,YAAA7B,CAAa1K,GAET,OADAL,KAAKmL,0BACEnL,KAAK0D,WAAWuB,KAAK5E,EAChC,CAKA,iBAAA4L,CAAkB5L,GACd,OAAIL,KAAKoL,eACEpL,KAAKoL,eAAe9G,MAAMjE,GAG1BL,KAAK+K,aAAa/K,KAAKoE,UAAUI,aAAanE,GAE7D,CAUA,IAAA4E,CAAKmH,KAAeC,GAChB,MAAOC,EAASC,GAAavM,KAAKwM,wBAAwBH,GACpDgB,EAAcrN,KAAKiM,kBAAkBjM,KAAKsN,kBAAkBlB,EAAYC,GAAM,EAAME,IAE1F,OADAvM,KAAKoN,eAAed,EAASe,GACtBA,CACX,CAYA,MAAAE,CAAOnB,KAAeC,GAClB,MAAOC,EAASC,GAAavM,KAAKwM,wBAAwBH,GACpDI,EAAuBzM,KAAKsN,kBAAkBlB,EAAYC,GAAM,EAAOE,GA+B7E,OA9BU,IAAI7H,SAAQ,CAACC,EAASI,KAE5B/E,KAAK0I,WAAW+D,EAAqBO,cAAgB,CAACE,EAAiB/J,KAC/DA,EACA4B,EAAO5B,GAGF+J,IAEDA,EAAgBrK,OAAS,IAAY0D,WACjC2G,EAAgB/J,MAChB4B,EAAO,IAAItF,MAAMyN,EAAgB/J,QAGjCwB,EAAQuI,EAAgBM,QAI5BzI,EAAO,IAAItF,MAAM,4BAA4ByN,EAAgBrK,SAErE,EAEJ,MAAM8J,EAAe3M,KAAKiM,kBAAkBQ,GACvCU,OAAO9C,IACRtF,EAAOsF,UAEArK,KAAK0I,WAAW+D,EAAqBO,aAAa,IAE7DhN,KAAKoN,eAAed,EAASK,EAAa,GAGlD,CACA,EAAAc,CAAGrB,EAAYsB,GACNtB,GAAesB,IAGpBtB,EAAaA,EAAWuB,cACnB3N,KAAK2I,SAASyD,KACfpM,KAAK2I,SAASyD,GAAc,KAGsB,IAAlDpM,KAAK2I,SAASyD,GAAYzK,QAAQ+L,IAGtC1N,KAAK2I,SAASyD,GAAY7I,KAAKmK,GACnC,CACA,GAAAE,CAAIxB,EAAYyB,GACZ,IAAKzB,EACD,OAEJA,EAAaA,EAAWuB,cACxB,MAAMG,EAAW9N,KAAK2I,SAASyD,GAC/B,GAAK0B,EAGL,GAAID,EAAQ,CACR,MAAME,EAAYD,EAASnM,QAAQkM,IAChB,IAAfE,IACAD,EAASE,OAAOD,EAAW,GACH,IAApBD,EAASrL,eACFzC,KAAK2I,SAASyD,GAGjC,aAEWpM,KAAK2I,SAASyD,EAE7B,CAKA,OAAA5D,CAAQyF,GACAA,GACAjO,KAAK4I,iBAAiBrF,KAAK0K,EAEnC,CAKA,cAAAC,CAAeD,GACPA,GACAjO,KAAK6I,uBAAuBtF,KAAK0K,EAEzC,CAKA,aAAAE,CAAcF,GACNA,GACAjO,KAAK8I,sBAAsBvF,KAAK0K,EAExC,CACA,oBAAA1F,CAAqBlH,GAOjB,GANArB,KAAKiL,kBACAjL,KAAKgJ,6BACN3H,EAAOrB,KAAKoO,0BAA0B/M,GACtCrB,KAAKgJ,4BAA6B,GAGlC3H,EAAM,CAEN,MAAMqB,EAAW1C,KAAKoE,UAAUiK,cAAchN,EAAMrB,KAAK+H,SACzD,IAAK,MAAM1H,KAAWqC,EAClB,IAAI1C,KAAKoL,gBAAmBpL,KAAKoL,eAAexF,sBAAsBvF,GAItE,OAAQA,EAAQwC,MACZ,KAAK,IAAYwD,WACbrG,KAAKsO,oBAAoBjO,GACpB8M,OAAO9C,IACRrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,sCAAqC,QAAe4K,KAAK,IAE9F,MACJ,KAAK,IAAY/D,WACjB,KAAK,IAAYC,WAAY,CACzB,MAAM0H,EAAWjO,KAAK0I,WAAWrI,EAAQ2M,cACzC,GAAIiB,EAAU,CACN5N,EAAQwC,OAAS,IAAY0D,mBACtBvG,KAAK0I,WAAWrI,EAAQ2M,cAEnC,IACIiB,EAAS5N,EACb,CACA,MAAOgK,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,iCAAgC,QAAe4K,KACpF,CACJ,CACA,KACJ,CACA,KAAK,IAAY1D,KAEb,MACJ,KAAK,IAAYD,MAAO,CACpB1G,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,uCACvC,MAAM7H,EAAQ9C,EAAQ8C,MAAQ,IAAI1D,MAAM,sCAAwCY,EAAQ8C,YAAS0D,GAClE,IAA3BxG,EAAQkO,eAIRvO,KAAK0D,WAAWuC,KAAK9C,GAIrBnD,KAAK2L,aAAe3L,KAAK4L,cAAczI,GAE3C,KACJ,CACA,KAAK,IAAYyD,IACT5G,KAAKoL,gBACLpL,KAAKoL,eAAejG,KAAK9E,GAE7B,MACJ,KAAK,IAAYwF,SACT7F,KAAKoL,gBACLpL,KAAKoL,eAAepF,eAAe3F,GAEvC,MACJ,QACIL,KAAK+H,QAAQC,IAAI,IAASC,QAAS,yBAAyB5H,EAAQwC,SAIpF,CACA7C,KAAKkL,qBACT,CACA,yBAAAkD,CAA0B/M,GACtB,IAAImN,EACAjN,EACJ,KACKA,EAAeiN,GAAmBxO,KAAKqI,mBAAmBjH,uBAAuBC,EACtF,CACA,MAAOgJ,GACH,MAAMhK,EAAU,qCAAuCgK,EACvDrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAOY,GACjC,MAAM8C,EAAQ,IAAI1D,MAAMY,GAExB,MADAL,KAAKyK,mBAAmBtH,GAClBA,CACV,CACA,GAAIqL,EAAgBrL,MAAO,CACvB,MAAM9C,EAAU,oCAAsCmO,EAAgBrL,MACtEnD,KAAK+H,QAAQC,IAAI,IAASvI,MAAOY,GACjC,MAAM8C,EAAQ,IAAI1D,MAAMY,GAExB,MADAL,KAAKyK,mBAAmBtH,GAClBA,CACV,CAKA,OAHInD,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,8BAErC9J,KAAKwK,qBACEjJ,CACX,CACA,uBAAA4J,GACQnL,KAAK0D,WAAWkH,SAASY,oBAK7BxL,KAAK6H,gBAAiB,IAAI4G,MAAOC,UAAY1O,KAAK2H,gCAClD3H,KAAKyL,oBACT,CACA,mBAAAP,GACI,KAAKlL,KAAK0D,WAAWkH,UAAa5K,KAAK0D,WAAWkH,SAASY,oBAEvDxL,KAAK2O,eAAiB5H,YAAW,IAAM/G,KAAK4O,iBAAiB5O,KAAK0H,kCAEnCb,IAA3B7G,KAAK6O,oBAAiC,CACtC,IAAIC,EAAW9O,KAAK6H,gBAAiB,IAAI4G,MAAOC,UAC5CI,EAAW,IACXA,EAAW,GAGf9O,KAAK6O,kBAAoB9H,YAAWC,UAChC,GAAIhH,KAAKiJ,mBAAqB5B,EAAmB+C,UAC7C,UACUpK,KAAK+K,aAAa/K,KAAKoJ,mBACjC,CACA,MAGIpJ,KAAKyL,mBACT,CACJ,GACDqD,EACP,CAER,CAEA,aAAAF,GAII5O,KAAK0D,WAAWuC,KAAK,IAAIxG,MAAM,uEACnC,CACA,yBAAM6O,CAAoBS,GACtB,MAAM3C,EAAa2C,EAAkBC,OAAOrB,cACtCsB,EAAUjP,KAAK2I,SAASyD,GAC9B,IAAK6C,EAOD,OANAjP,KAAK+H,QAAQC,IAAI,IAASC,QAAS,mCAAmCmE,kBAElE2C,EAAkB/B,eAClBhN,KAAK+H,QAAQC,IAAI,IAASC,QAAS,wBAAwBmE,gCAAyC2C,EAAkB/B,wBAChHhN,KAAKiM,kBAAkBjM,KAAKkP,yBAAyBH,EAAkB/B,aAAc,kCAAmC,SAKtI,MAAMmC,EAAcF,EAAQ/M,QAEtBkN,IAAkBL,EAAkB/B,aAE1C,IAAIqC,EACAC,EACAC,EACJ,IAAK,MAAMC,KAAKL,EACZ,IACI,MAAMM,EAAUJ,EAChBA,QAAYG,EAAExN,MAAMhC,KAAM+O,EAAkBW,WACxCN,GAAmBC,GAAOI,IAC1BzP,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,kCAAkC2M,gCACnEmD,EAAoBvP,KAAKkP,yBAAyBH,EAAkB/B,aAAc,oCAAqC,OAG3HsC,OAAYzI,CAChB,CACA,MAAOwD,GACHiF,EAAYjF,EACZrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,8BAA8B2M,mBAA4B/B,MAC/F,CAEAkF,QACMvP,KAAKiM,kBAAkBsD,GAExBH,GAEDE,EACAC,EAAoBvP,KAAKkP,yBAAyBH,EAAkB/B,aAAc,GAAGsC,IAAa,WAErFzI,IAARwI,EACLE,EAAoBvP,KAAKkP,yBAAyBH,EAAkB/B,aAAc,KAAMqC,IAGxFrP,KAAK+H,QAAQC,IAAI,IAASC,QAAS,wBAAwBmE,gCAAyC2C,EAAkB/B,kBAEtHuC,EAAoBvP,KAAKkP,yBAAyBH,EAAkB/B,aAAc,kCAAmC,aAEnHhN,KAAKiM,kBAAkBsD,IAGzBF,GACArP,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,qBAAqB2M,kDAGlE,CACA,iBAAA3D,CAAkBtF,GACdnD,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,kCAAkC3G,4BAAgCnD,KAAKiJ,qBAExGjJ,KAAKsK,sBAAwBtK,KAAKsK,uBAAyBnH,GAAS,IAAI,KAAW,iFAG/EnD,KAAKwK,oBACLxK,KAAKwK,qBAETxK,KAAK2P,0BAA0BxM,GAAS,IAAI1D,MAAM,uEAClDO,KAAKiL,kBACLjL,KAAKyL,oBACDzL,KAAKiJ,mBAAqB5B,EAAmBwE,cAC7C7L,KAAK+L,eAAe5I,GAEfnD,KAAKiJ,mBAAqB5B,EAAmB+C,WAAapK,KAAKoI,iBAEpEpI,KAAK4P,WAAWzM,GAEXnD,KAAKiJ,mBAAqB5B,EAAmB+C,WAClDpK,KAAK+L,eAAe5I,EAO5B,CACA,cAAA4I,CAAe5I,GACX,GAAInD,KAAKmJ,mBAAoB,CACzBnJ,KAAKiJ,iBAAmB5B,EAAmB6B,aAC3ClJ,KAAKmJ,oBAAqB,EACtBnJ,KAAKoL,iBACLpL,KAAKoL,eAAejF,SAAShD,QAAqCA,EAAQ,IAAI1D,MAAM,uBACpFO,KAAKoL,oBAAiBvE,GAEtB,KAASmD,WACTC,OAAOC,SAAS2F,oBAAoB,SAAU7P,KAAK8H,sBAEvD,IACI9H,KAAK4I,iBAAiBkH,SAASC,GAAMA,EAAE/N,MAAMhC,KAAM,CAACmD,KACxD,CACA,MAAOkH,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,0CAA0C0D,mBAAuBkH,MACtG,CACJ,CACJ,CACA,gBAAMuF,CAAWzM,GACb,MAAM6M,EAAqBvB,KAAKwB,MAChC,IAAIC,EAA4B,EAC5BC,OAAuBtJ,IAAV1D,EAAsBA,EAAQ,IAAI1D,MAAM,mDACrD2Q,EAAiBpQ,KAAKqQ,mBAAmBH,IAA6B,EAAGC,GAC7E,GAAuB,OAAnBC,EAGA,OAFApQ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,2GACjC9J,KAAK+L,eAAe5I,GAUxB,GAPAnD,KAAKiJ,iBAAmB5B,EAAmBoC,aACvCtG,EACAnD,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,6CAA6C7H,OAGpFnD,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,4BAEA,IAAvChL,KAAK6I,uBAAuBpG,OAAc,CAC1C,IACIzC,KAAK6I,uBAAuBiH,SAASC,GAAMA,EAAE/N,MAAMhC,KAAM,CAACmD,KAC9D,CACA,MAAOkH,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,iDAAiD0D,mBAAuBkH,MAC7G,CAEA,GAAIrK,KAAKiJ,mBAAqB5B,EAAmBoC,aAE7C,YADAzJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,wFAGzC,CACA,KAA0B,OAAnBsG,GAAyB,CAM5B,GALApQ,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,4BAA4BkF,mBAA2CE,eACxG,IAAI1L,SAASC,IACf3E,KAAK8L,sBAAwB/E,WAAWpC,EAASyL,EAAe,IAEpEpQ,KAAK8L,2BAAwBjF,EACzB7G,KAAKiJ,mBAAqB5B,EAAmBoC,aAE7C,YADAzJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,qFAGrC,IAII,SAHM9J,KAAK+J,iBACX/J,KAAKiJ,iBAAmB5B,EAAmB+C,UAC3CpK,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,2CACG,IAAtChL,KAAK8I,sBAAsBrG,OAC3B,IACIzC,KAAK8I,sBAAsBgH,SAASC,GAAMA,EAAE/N,MAAMhC,KAAM,CAACA,KAAK0D,WAAW4F,gBAC7E,CACA,MAAOe,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,uDAAuDO,KAAK0D,WAAW4F,8BAA8Be,MAC1I,CAEJ,MACJ,CACA,MAAOA,GAEH,GADArK,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,8CAA8CX,OACjFrK,KAAKiJ,mBAAqB5B,EAAmBoC,aAM7C,OALAzJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,4BAA4B9J,KAAKiJ,mGAE9DjJ,KAAKiJ,mBAAqB5B,EAAmBwE,eAC7C7L,KAAK+L,kBAIboE,EAAa9F,aAAa5K,MAAQ4K,EAAI,IAAI5K,MAAM4K,EAAEiG,YAClDF,EAAiBpQ,KAAKqQ,mBAAmBH,IAA6BzB,KAAKwB,MAAQD,EAAoBG,EAC3G,CACJ,CACAnQ,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,+CAA+CyD,KAAKwB,MAAQD,YAA6BE,gDAChIlQ,KAAK+L,gBACT,CACA,kBAAAsE,CAAmBE,EAAoBC,EAAqBC,GACxD,IACI,OAAOzQ,KAAKoI,iBAAiBsI,6BAA6B,CACtDF,sBACAD,qBACAE,eAER,CACA,MAAOpG,GAEH,OADArK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,6CAA6C8Q,MAAuBC,mBAAqCnG,OACnI,IACX,CACJ,CACA,yBAAAsF,CAA0BxM,GACtB,MAAMwN,EAAY3Q,KAAK0I,WACvB1I,KAAK0I,WAAa,CAAC,EACnBkI,OAAOC,KAAKF,GACPb,SAASgB,IACV,MAAM7C,EAAW0C,EAAUG,GAC3B,IACI7C,EAAS,KAAM9K,EACnB,CACA,MAAOkH,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,wCAAwC0D,oBAAuB,QAAekH,KACnH,IAER,CACA,iBAAAoB,GACQzL,KAAK6O,oBACL5H,aAAajH,KAAK6O,mBAClB7O,KAAK6O,uBAAoBhI,EAEjC,CACA,eAAAoE,GACQjL,KAAK2O,gBACL1H,aAAajH,KAAK2O,eAE1B,CACA,iBAAArB,CAAkBlB,EAAYC,EAAM0E,EAAaxE,GAC7C,GAAIwE,EACA,OAAyB,IAArBxE,EAAU9J,OACH,CACHiN,UAAWrD,EACXE,YACAyC,OAAQ5C,EACRvJ,KAAM,IAAYwD,YAIf,CACHqJ,UAAWrD,EACX2C,OAAQ5C,EACRvJ,KAAM,IAAYwD,YAIzB,CACD,MAAM2G,EAAehN,KAAK+I,cAE1B,OADA/I,KAAK+I,gBACoB,IAArBwD,EAAU9J,OACH,CACHiN,UAAWrD,EACXW,aAAcA,EAAasD,WAC3B/D,YACAyC,OAAQ5C,EACRvJ,KAAM,IAAYwD,YAIf,CACHqJ,UAAWrD,EACXW,aAAcA,EAAasD,WAC3BtB,OAAQ5C,EACRvJ,KAAM,IAAYwD,WAG9B,CACJ,CACA,cAAA+G,CAAed,EAASK,GACpB,GAAuB,IAAnBL,EAAQ7J,OAAZ,CAIKkK,IACDA,EAAejI,QAAQC,WAI3B,IAAK,MAAMqM,KAAY1E,EACnBA,EAAQ0E,GAAU1N,UAAU,CACxBD,SAAU,KACNsJ,EAAeA,EAAaM,MAAK,IAAMjN,KAAKiM,kBAAkBjM,KAAKkP,yBAAyB8B,KAAW,EAE3G7N,MAAQC,IACJ,IAAI/C,EAEAA,EADA+C,aAAe3D,MACL2D,EAAI/C,QAET+C,GAAOA,EAAIkN,SACNlN,EAAIkN,WAGJ,gBAEd3D,EAAeA,EAAaM,MAAK,IAAMjN,KAAKiM,kBAAkBjM,KAAKkP,yBAAyB8B,EAAU3Q,KAAU,EAEpH2C,KAAOC,IACH0J,EAAeA,EAAaM,MAAK,IAAMjN,KAAKiM,kBAAkBjM,KAAKiR,yBAAyBD,EAAU/N,KAAO,GA1BzH,CA8BJ,CACA,uBAAAuJ,CAAwBH,GACpB,MAAMC,EAAU,GACVC,EAAY,GAClB,IAAK,IAAI2E,EAAI,EAAGA,EAAI7E,EAAK5J,OAAQyO,IAAK,CAClC,MAAMC,EAAW9E,EAAK6E,GACtB,GAAIlR,KAAKoR,cAAcD,GAAW,CAC9B,MAAMH,EAAWhR,KAAK+I,cACtB/I,KAAK+I,gBAELuD,EAAQ0E,GAAYG,EACpB5E,EAAUhJ,KAAKyN,EAASV,YAExBjE,EAAK2B,OAAOkD,EAAG,EACnB,CACJ,CACA,MAAO,CAAC5E,EAASC,EACrB,CACA,aAAA6E,CAAcC,GAEV,OAAOA,GAAOA,EAAI/N,WAAsC,mBAAlB+N,EAAI/N,SAC9C,CACA,uBAAAoJ,CAAwBN,EAAYC,EAAME,GACtC,MAAMS,EAAehN,KAAK+I,cAE1B,OADA/I,KAAK+I,gBACoB,IAArBwD,EAAU9J,OACH,CACHiN,UAAWrD,EACXW,aAAcA,EAAasD,WAC3B/D,YACAyC,OAAQ5C,EACRvJ,KAAM,IAAY2D,kBAIf,CACHkJ,UAAWrD,EACXW,aAAcA,EAAasD,WAC3BtB,OAAQ5C,EACRvJ,KAAM,IAAY2D,iBAG9B,CACA,uBAAAuG,CAAwB7F,GACpB,MAAO,CACH8F,aAAc9F,EACdrE,KAAM,IAAY4D,iBAE1B,CACA,wBAAAwK,CAAyB/J,EAAIjE,GACzB,MAAO,CACH+J,aAAc9F,EACdjE,OACAJ,KAAM,IAAYyD,WAE1B,CACA,wBAAA4I,CAAyBhI,EAAI/D,EAAOqK,GAChC,OAAIrK,EACO,CACHA,QACA6J,aAAc9F,EACdrE,KAAM,IAAY0D,YAGnB,CACHyG,aAAc9F,EACdsG,SACA3K,KAAM,IAAY0D,WAE1B,CACA,mBAAA2F,GACI,MAAO,CAAErJ,KAAM,IAAY6D,MAC/B,E,oECr6BJ,MAAM4K,EAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,MAE9D,MAAMC,EACT,WAAA7R,CAAY8R,GACRxR,KAAKyR,kBAA+B5K,IAAhB2K,EAA4B,IAAIA,EAAa,MAAQF,CAC7E,CACA,4BAAAZ,CAA6BgB,GACzB,OAAO1R,KAAKyR,aAAaC,EAAanB,mBAC1C,ECTG,MAAMoB,GAEbA,EAAYC,cAAgB,gBAC5BD,EAAYE,OAAS,SCFd,MAAMC,EACT,WAAApS,CAAYE,EAAYmS,EAAYC,GAChChS,KAAKJ,WAAaA,EAClBI,KAAK+R,WAAaA,EAClB/R,KAAKgS,QAAUA,CACnB,EAMG,MAAMC,EACT,GAAAC,CAAI1I,EAAK2I,GACL,OAAOnS,KAAKiF,KAAK,IACVkN,EACHtE,OAAQ,MACRrE,OAER,CACA,IAAA4I,CAAK5I,EAAK2I,GACN,OAAOnS,KAAKiF,KAAK,IACVkN,EACHtE,OAAQ,OACRrE,OAER,CACA,OAAOA,EAAK2I,GACR,OAAOnS,KAAKiF,KAAK,IACVkN,EACHtE,OAAQ,SACRrE,OAER,CAOA,eAAA6I,CAAgB7I,GACZ,MAAO,EACX,ECvCG,MAAM8I,UAA8BL,EACvC,WAAAvS,CAAY6S,EAAaC,GACrBzS,QACAC,KAAKyS,aAAeF,EACpBvS,KAAK0S,oBAAsBF,CAC/B,CACA,UAAMvN,CAAK0N,GACP,IAAIC,GAAa,EACb5S,KAAK0S,uBAAyB1S,KAAK6S,cAAiBF,EAAQnJ,KAAOmJ,EAAQnJ,IAAI7H,QAAQ,eAAiB,KAExGiR,GAAa,EACb5S,KAAK6S,mBAAqB7S,KAAK0S,uBAEnC1S,KAAK8S,wBAAwBH,GAC7B,MAAM/P,QAAiB5C,KAAKyS,aAAaxN,KAAK0N,GAC9C,OAAIC,GAAsC,MAAxBhQ,EAAShD,YAAsBI,KAAK0S,qBAClD1S,KAAK6S,mBAAqB7S,KAAK0S,sBAC/B1S,KAAK8S,wBAAwBH,SAChB3S,KAAKyS,aAAaxN,KAAK0N,IAEjC/P,CACX,CACA,uBAAAkQ,CAAwBH,GACfA,EAAQI,UACTJ,EAAQI,QAAU,CAAC,GAEnB/S,KAAK6S,aACLF,EAAQI,QAAQpB,EAAYC,eAAiB,UAAU5R,KAAK6S,eAGvD7S,KAAK0S,qBACNC,EAAQI,QAAQpB,EAAYC,uBACrBe,EAAQI,QAAQpB,EAAYC,cAG/C,CACA,eAAAS,CAAgB7I,GACZ,OAAOxJ,KAAKyS,aAAaJ,gBAAgB7I,EAC7C,E,iCCrCG,MAAMwJ,UAAwBf,EACjC,WAAAvS,CAAY8H,GAKR,GAJAzH,QACAC,KAAK+H,QAAUP,EAGM,oBAAVyL,OAAyB,KAASC,OAAQ,CAGjD,MAAMC,EAA0D,QAEhEnT,KAAKoT,KAAO,IAAKD,EAAY,gBAAiBE,WACzB,oBAAVJ,MACPjT,KAAKsT,WAAaH,EAAY,cAI9BnT,KAAKsT,WAAaL,MAItBjT,KAAKsT,WAAaH,EAAY,eAAZA,CAA4BnT,KAAKsT,WAAYtT,KAAKoT,KACxE,MAEIpT,KAAKsT,WAAaL,MAAM3H,MAAK,WAEjC,GAA+B,oBAApBiI,gBAAiC,CAGxC,MAAMJ,EAA0D,QAEhEnT,KAAKwT,qBAAuBL,EAAY,mBAC5C,MAEInT,KAAKwT,qBAAuBD,eAEpC,CAEA,UAAMtO,CAAK0N,GAEP,GAAIA,EAAQc,aAAed,EAAQc,YAAYC,QAC3C,MAAM,IAAI,KAEd,IAAKf,EAAQ9E,OACT,MAAM,IAAIpO,MAAM,sBAEpB,IAAKkT,EAAQnJ,IACT,MAAM,IAAI/J,MAAM,mBAEpB,MAAMkU,EAAkB,IAAI3T,KAAKwT,qBACjC,IAAIrQ,EAEAwP,EAAQc,cACRd,EAAQc,YAAYG,QAAU,KAC1BD,EAAgBE,QAChB1Q,EAAQ,IAAI,IAAY,GAKhC,IAsBIP,EAtBAkR,EAAY,KAChB,GAAInB,EAAQoB,QAAS,CACjB,MAAMC,EAAYrB,EAAQoB,QAC1BD,EAAY/M,YAAW,KACnB4M,EAAgBE,QAChB7T,KAAK+H,QAAQC,IAAI,IAASC,QAAS,8BACnC9E,EAAQ,IAAI,IAAc,GAC3B6Q,EACP,CACwB,KAApBrB,EAAQX,UACRW,EAAQX,aAAUnL,GAElB8L,EAAQX,UAERW,EAAQI,QAAUJ,EAAQI,SAAW,CAAC,GAClC,QAAcJ,EAAQX,SACtBW,EAAQI,QAAQ,gBAAkB,2BAGlCJ,EAAQI,QAAQ,gBAAkB,4BAI1C,IACInQ,QAAiB5C,KAAKsT,WAAWX,EAAQnJ,IAAK,CAC1CyK,KAAMtB,EAAQX,QACdkC,MAAO,WACPC,aAAyC,IAA5BxB,EAAQyB,gBAA2B,UAAY,cAC5DrB,QAAS,CACL,mBAAoB,oBACjBJ,EAAQI,SAEflF,OAAQ8E,EAAQ9E,OAChBwG,KAAM,OACNC,SAAU,SACVC,OAAQZ,EAAgBY,QAEhC,CACA,MAAOlK,GACH,GAAIlH,EACA,MAAMA,EAGV,MADAnD,KAAK+H,QAAQC,IAAI,IAASC,QAAS,4BAA4BoC,MACzDA,CACV,CACA,QACQyJ,GACA7M,aAAa6M,GAEbnB,EAAQc,cACRd,EAAQc,YAAYG,QAAU,KAEtC,CACA,IAAKhR,EAAS4R,GAAI,CACd,MAAM7U,QAAqB8U,EAAmB7R,EAAU,QACxD,MAAM,IAAI,KAAUjD,GAAgBiD,EAASmP,WAAYnP,EAAS8R,OACtE,CACA,MAAM1C,EAAUyC,EAAmB7R,EAAU+P,EAAQgC,cAC/CC,QAAgB5C,EACtB,OAAO,IAAIF,EAAalP,EAAS8R,OAAQ9R,EAASmP,WAAY6C,EAClE,CACA,eAAAvC,CAAgB7I,GACZ,IAAIqL,EAAU,GAKd,OAJI,KAAS3B,QAAUlT,KAAKoT,MAExBpT,KAAKoT,KAAK0B,WAAWtL,GAAK,CAACa,EAAG0F,IAAM8E,EAAU9E,EAAEgF,KAAK,QAElDF,CACX,EAEJ,SAASJ,EAAmB7R,EAAU+R,GAClC,IAAI3C,EACJ,OAAQ2C,GACJ,IAAK,cACD3C,EAAUpP,EAASoS,cACnB,MACJ,IAAK,OAOL,QACIhD,EAAUpP,EAASqS,OACnB,MANJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAIxV,MAAM,GAAGkV,uBAK3B,OAAO3C,CACX,CCpJO,MAAMkD,UAAsBjD,EAC/B,WAAAvS,CAAY8H,GACRzH,QACAC,KAAK+H,QAAUP,CACnB,CAEA,IAAAvC,CAAK0N,GAED,OAAIA,EAAQc,aAAed,EAAQc,YAAYC,QACpChP,QAAQK,OAAO,IAAI,MAEzB4N,EAAQ9E,OAGR8E,EAAQnJ,IAGN,IAAI9E,SAAQ,CAACC,EAASI,KACzB,MAAMoQ,EAAM,IAAIC,eAChBD,EAAIE,KAAK1C,EAAQ9E,OAAQ8E,EAAQnJ,KAAK,GACtC2L,EAAIf,qBAA8CvN,IAA5B8L,EAAQyB,iBAAuCzB,EAAQyB,gBAC7Ee,EAAIG,iBAAiB,mBAAoB,kBACjB,KAApB3C,EAAQX,UACRW,EAAQX,aAAUnL,GAElB8L,EAAQX,WAEJ,QAAcW,EAAQX,SACtBmD,EAAIG,iBAAiB,eAAgB,4BAGrCH,EAAIG,iBAAiB,eAAgB,6BAG7C,MAAMvC,EAAUJ,EAAQI,QACpBA,GACAnC,OAAOC,KAAKkC,GACPjD,SAASyF,IACVJ,EAAIG,iBAAiBC,EAAQxC,EAAQwC,GAAQ,IAGjD5C,EAAQgC,eACRQ,EAAIR,aAAehC,EAAQgC,cAE3BhC,EAAQc,cACRd,EAAQc,YAAYG,QAAU,KAC1BuB,EAAItB,QACJ9O,EAAO,IAAI,KAAa,GAG5B4N,EAAQoB,UACRoB,EAAIpB,QAAUpB,EAAQoB,SAE1BoB,EAAIK,OAAS,KACL7C,EAAQc,cACRd,EAAQc,YAAYG,QAAU,MAE9BuB,EAAIT,QAAU,KAAOS,EAAIT,OAAS,IAClC/P,EAAQ,IAAImN,EAAaqD,EAAIT,OAAQS,EAAIpD,WAAYoD,EAAIvS,UAAYuS,EAAIM,eAGzE1Q,EAAO,IAAI,KAAUoQ,EAAIvS,UAAYuS,EAAIM,cAAgBN,EAAIpD,WAAYoD,EAAIT,QACjF,EAEJS,EAAIO,QAAU,KACV1V,KAAK+H,QAAQC,IAAI,IAASC,QAAS,4BAA4BkN,EAAIT,WAAWS,EAAIpD,eAClFhN,EAAO,IAAI,KAAUoQ,EAAIpD,WAAYoD,EAAIT,QAAQ,EAErDS,EAAIQ,UAAY,KACZ3V,KAAK+H,QAAQC,IAAI,IAASC,QAAS,8BACnClD,EAAO,IAAI,KAAe,EAE9BoQ,EAAIlQ,KAAK0N,EAAQX,QAAQ,IAzDlBtN,QAAQK,OAAO,IAAItF,MAAM,oBAHzBiF,QAAQK,OAAO,IAAItF,MAAM,sBA8DxC,ECxEG,MAAMmW,UAA0B3D,EAEnC,WAAAvS,CAAY8H,GAER,GADAzH,QACqB,oBAAVkT,OAAyB,KAASC,OACzClT,KAAK6V,YAAc,IAAI7C,EAAgBxL,OAEtC,IAA8B,oBAAnB4N,eAIZ,MAAM,IAAI3V,MAAM,+BAHhBO,KAAK6V,YAAc,IAAIX,EAAc1N,EAIzC,CACJ,CAEA,IAAAvC,CAAK0N,GAED,OAAIA,EAAQc,aAAed,EAAQc,YAAYC,QACpChP,QAAQK,OAAO,IAAI,MAEzB4N,EAAQ9E,OAGR8E,EAAQnJ,IAGNxJ,KAAK6V,YAAY5Q,KAAK0N,GAFlBjO,QAAQK,OAAO,IAAItF,MAAM,oBAHzBiF,QAAQK,OAAO,IAAItF,MAAM,sBAMxC,CACA,eAAA4S,CAAgB7I,GACZ,OAAOxJ,KAAK6V,YAAYxD,gBAAgB7I,EAC5C,E,cC/BG,MAAM,EACT,WAAA9J,GACIM,KAAK8V,YAAa,EAClB9V,KAAK4T,QAAU,IACnB,CACA,KAAAC,GACS7T,KAAK8V,aACN9V,KAAK8V,YAAa,EACd9V,KAAK4T,SACL5T,KAAK4T,UAGjB,CACA,UAAIW,GACA,OAAOvU,IACX,CACA,WAAI0T,GACA,OAAO1T,KAAK8V,UAChB,EChBG,MAAMC,EAET,eAAIC,GACA,OAAOhW,KAAKiW,WAAWvC,OAC3B,CACA,WAAAhU,CAAYwW,EAAY1O,EAAQ2K,GAC5BnS,KAAK6V,YAAcK,EACnBlW,KAAK+H,QAAUP,EACfxH,KAAKiW,WAAa,IAAI,EACtBjW,KAAKmW,SAAWhE,EAChBnS,KAAKoW,UAAW,EAChBpW,KAAKsI,UAAY,KACjBtI,KAAKwI,QAAU,IACnB,CACA,aAAM6N,CAAQ7M,EAAKkB,GAOf,GANA,KAAIxC,WAAWsB,EAAK,OACpB,KAAItB,WAAWwC,EAAgB,kBAC/B,KAAI4L,KAAK5L,EAAgB,IAAgB,kBACzC1K,KAAKuW,KAAO/M,EACZxJ,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,uCAE7B9L,IAAmB,IAAe+L,QACP,oBAAnBrB,gBAA+E,iBAAtC,IAAIA,gBAAiBT,aACtE,MAAM,IAAIlV,MAAM,8FAEpB,MAAOqL,EAAM4L,IAAS,UAChB3D,EAAU,CAAE,CAACjI,GAAO4L,KAAU1W,KAAKmW,SAASpD,SAC5C4D,EAAc,CAChBlD,YAAazT,KAAKiW,WAAW1B,OAC7BxB,UACAgB,QAAS,IACTK,gBAAiBpU,KAAKmW,SAAS/B,iBAE/B1J,IAAmB,IAAe+L,SAClCE,EAAYhC,aAAe,eAI/B,MAAMiC,EAAU,GAAGpN,OAASiF,KAAKwB,QACjCjQ,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,oCAAoCI,MACrE,MAAMhU,QAAiB5C,KAAK6V,YAAY3D,IAAI0E,EAASD,GACzB,MAAxB/T,EAAShD,YACTI,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,qDAAqDmD,EAAShD,eAE/FI,KAAK6W,YAAc,IAAI,KAAUjU,EAASmP,YAAc,GAAInP,EAAShD,YACrEI,KAAKoW,UAAW,GAGhBpW,KAAKoW,UAAW,EAEpBpW,KAAK8W,WAAa9W,KAAK+W,MAAM/W,KAAKuW,KAAMI,EAC5C,CACA,WAAMI,CAAMvN,EAAKmN,GACb,IACI,KAAO3W,KAAKoW,UACR,IACI,MAAMQ,EAAU,GAAGpN,OAASiF,KAAKwB,QACjCjQ,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,oCAAoCI,MACrE,MAAMhU,QAAiB5C,KAAK6V,YAAY3D,IAAI0E,EAASD,GACzB,MAAxB/T,EAAShD,YACTI,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,sDACvChL,KAAKoW,UAAW,GAEa,MAAxBxT,EAAShD,YACdI,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,qDAAqDmD,EAAShD,eAE/FI,KAAK6W,YAAc,IAAI,KAAUjU,EAASmP,YAAc,GAAInP,EAAShD,YACrEI,KAAKoW,UAAW,GAIZxT,EAASoP,SACThS,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,2CAA0C,QAAc5T,EAASoP,QAAShS,KAAKmW,SAASa,uBACrHhX,KAAKsI,WACLtI,KAAKsI,UAAU1F,EAASoP,UAK5BhS,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,qDAG7C,CACA,MAAOnM,GACErK,KAAKoW,SAKF/L,aAAa,KAEbrK,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,uDAIjCxW,KAAK6W,YAAcxM,EACnBrK,KAAKoW,UAAW,GAVpBpW,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,wDAAwDnM,EAAEhK,UAanG,CAER,CACA,QACIL,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,6CAG5BxW,KAAKgW,aACNhW,KAAKiX,eAEb,CACJ,CACA,UAAMhS,CAAK5D,GACP,OAAKrB,KAAKoW,UAGH,QAAYpW,KAAK+H,QAAS,cAAe/H,KAAK6V,YAAa7V,KAAKuW,KAAMlV,EAAMrB,KAAKmW,UAF7EzR,QAAQK,OAAO,IAAItF,MAAM,gDAGxC,CACA,UAAMwG,GACFjG,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,6CAEjCxW,KAAKoW,UAAW,EAChBpW,KAAKiW,WAAWpC,QAChB,UACU7T,KAAK8W,WAEX9W,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,qDAAqDxW,KAAKuW,SAC3F,MAAMxD,EAAU,CAAC,GACVjI,EAAM4L,IAAS,UACtB3D,EAAQjI,GAAQ4L,EAChB,MAAMQ,EAAgB,CAClBnE,QAAS,IAAKA,KAAY/S,KAAKmW,SAASpD,SACxCgB,QAAS/T,KAAKmW,SAASpC,QACvBK,gBAAiBpU,KAAKmW,SAAS/B,iBAEnC,IAAIjR,EACJ,UACUnD,KAAK6V,YAAYsB,OAAOnX,KAAKuW,KAAMW,EAC7C,CACA,MAAO9T,GACHD,EAAQC,CACZ,CACID,EACIA,aAAiB,OACQ,MAArBA,EAAMvD,WACNI,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,sFAGjCxW,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,2DAA2DrT,MAKpGnD,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,mDAEzC,CACA,QACIxW,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,0CAGjCxW,KAAKiX,eACT,CACJ,CACA,aAAAA,GACI,GAAIjX,KAAKwI,QAAS,CACd,IAAI4O,EAAa,gDACbpX,KAAK6W,cACLO,GAAc,WAAapX,KAAK6W,aAEpC7W,KAAK+H,QAAQC,IAAI,IAASwO,MAAOY,GACjCpX,KAAKwI,QAAQxI,KAAK6W,YACtB,CACJ,EC9KG,MAAMQ,EACT,WAAA3X,CAAYwW,EAAYoB,EAAa9P,EAAQ2K,GACzCnS,KAAK6V,YAAcK,EACnBlW,KAAK6S,aAAeyE,EACpBtX,KAAK+H,QAAUP,EACfxH,KAAKmW,SAAWhE,EAChBnS,KAAKsI,UAAY,KACjBtI,KAAKwI,QAAU,IACnB,CACA,aAAM6N,CAAQ7M,EAAKkB,GAUf,OATA,KAAIxC,WAAWsB,EAAK,OACpB,KAAItB,WAAWwC,EAAgB,kBAC/B,KAAI4L,KAAK5L,EAAgB,IAAgB,kBACzC1K,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,+BAEjCxW,KAAKuW,KAAO/M,EACRxJ,KAAK6S,eACLrJ,IAAQA,EAAI7H,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgB4V,mBAAmBvX,KAAK6S,iBAEjF,IAAInO,SAAQ,CAACC,EAASI,KACzB,IAKIyS,EALAC,GAAS,EACb,GAAI/M,IAAmB,IAAegN,KAAtC,CAKA,GAAI,KAAS1N,WAAa,KAAS2N,YAC/BH,EAAc,IAAIxX,KAAKmW,SAASyB,YAAYpO,EAAK,CAAE4K,gBAAiBpU,KAAKmW,SAAS/B,sBAEjF,CAED,MAAMS,EAAU7U,KAAK6V,YAAYxD,gBAAgB7I,GAC3CuJ,EAAU,CAAC,EACjBA,EAAQlB,OAASgD,EACjB,MAAO/J,EAAM4L,IAAS,UACtB3D,EAAQjI,GAAQ4L,EAChBc,EAAc,IAAIxX,KAAKmW,SAASyB,YAAYpO,EAAK,CAAE4K,gBAAiBpU,KAAKmW,SAAS/B,gBAAiBrB,QAAS,IAAKA,KAAY/S,KAAKmW,SAASpD,UAC/I,CACA,IACIyE,EAAYK,UAAaxN,IACrB,GAAIrK,KAAKsI,UACL,IACItI,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,mCAAkC,QAAcnM,EAAEhJ,KAAMrB,KAAKmW,SAASa,uBACvGhX,KAAKsI,UAAU+B,EAAEhJ,KACrB,CACA,MAAO8B,GAEH,YADAnD,KAAK8X,OAAO3U,EAEhB,CACJ,EAGJqU,EAAY9B,QAAWrL,IAEfoN,EACAzX,KAAK8X,SAGL/S,EAAO,IAAItF,MAAM,gQAGrB,EAEJ+X,EAAYO,OAAS,KACjB/X,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,oBAAoBhL,KAAKuW,QAChEvW,KAAKgY,aAAeR,EACpBC,GAAS,EACT9S,GAAS,CAEjB,CACA,MAAO0F,GAEH,YADAtF,EAAOsF,EAEX,CAjDA,MAFItF,EAAO,IAAItF,MAAM,6EAmDrB,GAER,CACA,UAAMwF,CAAK5D,GACP,OAAKrB,KAAKgY,cAGH,QAAYhY,KAAK+H,QAAS,MAAO/H,KAAK6V,YAAa7V,KAAKuW,KAAMlV,EAAMrB,KAAKmW,UAFrEzR,QAAQK,OAAO,IAAItF,MAAM,gDAGxC,CACA,IAAAwG,GAEI,OADAjG,KAAK8X,SACEpT,QAAQC,SACnB,CACA,MAAAmT,CAAOzN,GACCrK,KAAKgY,eACLhY,KAAKgY,aAAaC,QAClBjY,KAAKgY,kBAAenR,EAChB7G,KAAKwI,SACLxI,KAAKwI,QAAQ6B,GAGzB,EC7FG,MAAM6N,EACT,WAAAxY,CAAYwW,EAAY1D,EAAoBhL,EAAQwP,EAAmBmB,EAAsBpF,GACzF/S,KAAK+H,QAAUP,EACfxH,KAAK0S,oBAAsBF,EAC3BxS,KAAKoY,mBAAqBpB,EAC1BhX,KAAKqY,sBAAwBF,EAC7BnY,KAAK6V,YAAcK,EACnBlW,KAAKsI,UAAY,KACjBtI,KAAKwI,QAAU,KACfxI,KAAKsY,SAAWvF,CACpB,CACA,aAAMsD,CAAQ7M,EAAKkB,GAKf,IAAI6N,EAIJ,OARA,KAAIrQ,WAAWsB,EAAK,OACpB,KAAItB,WAAWwC,EAAgB,kBAC/B,KAAI4L,KAAK5L,EAAgB,IAAgB,kBACzC1K,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,sCAE7BxW,KAAK0S,sBACL6F,QAAcvY,KAAK0S,uBAEhB,IAAIhO,SAAQ,CAACC,EAASI,KAEzB,IAAIyT,EADJhP,EAAMA,EAAIiP,QAAQ,QAAS,MAE3B,MAAM5D,EAAU7U,KAAK6V,YAAYxD,gBAAgB7I,GACjD,IAAIiO,GAAS,EACb,GAAI,KAASvE,QAAU,KAASwF,cAAe,CAC3C,MAAM3F,EAAU,CAAC,GACVjI,EAAM4L,IAAS,UACtB3D,EAAQjI,GAAQ4L,EACZ6B,IACAxF,EAAQpB,EAAYC,eAAiB,UAAU2G,KAE/C1D,IACA9B,EAAQpB,EAAYE,QAAUgD,GAGlC2D,EAAY,IAAIxY,KAAKqY,sBAAsB7O,OAAK3C,EAAW,CACvDkM,QAAS,IAAKA,KAAY/S,KAAKsY,WAEvC,MAEQC,IACA/O,IAAQA,EAAI7H,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgB4V,mBAAmBgB,MAGlFC,IAEDA,EAAY,IAAIxY,KAAKqY,sBAAsB7O,IAE3CkB,IAAmB,IAAe+L,SAClC+B,EAAUG,WAAa,eAE3BH,EAAUT,OAAUa,IAChB5Y,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,0BAA0BxB,MACjExJ,KAAK6Y,WAAaL,EAClBf,GAAS,EACT9S,GAAS,EAEb6T,EAAU9C,QAAWoD,IACjB,IAAI3V,EAAQ,KAGRA,EADsB,oBAAf4V,YAA8BD,aAAiBC,WAC9CD,EAAM3V,MAGN,wCAEZnD,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,0BAA0B7H,KAAS,EAE9EqV,EAAUX,UAAaxX,IAEnB,GADAL,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,0CAAyC,QAAcnW,EAAQgB,KAAMrB,KAAKoY,wBACvGpY,KAAKsI,UACL,IACItI,KAAKsI,UAAUjI,EAAQgB,KAC3B,CACA,MAAO8B,GAEH,YADAnD,KAAK8X,OAAO3U,EAEhB,CACJ,EAEJqV,EAAUhQ,QAAWsQ,IAGjB,GAAIrB,EACAzX,KAAK8X,OAAOgB,OAEX,CACD,IAAI3V,EAAQ,KAGRA,EADsB,oBAAf4V,YAA8BD,aAAiBC,WAC9CD,EAAM3V,MAGN,iSAKZ4B,EAAO,IAAItF,MAAM0D,GACrB,EACH,GAET,CACA,IAAA8B,CAAK5D,GACD,OAAIrB,KAAK6Y,YAAc7Y,KAAK6Y,WAAWG,aAAehZ,KAAKqY,sBAAsBY,MAC7EjZ,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,yCAAwC,QAAcnV,EAAMrB,KAAKoY,wBAClGpY,KAAK6Y,WAAW5T,KAAK5D,GACdqD,QAAQC,WAEZD,QAAQK,OAAO,qCAC1B,CACA,IAAAkB,GAMI,OALIjG,KAAK6Y,YAGL7Y,KAAK8X,YAAOjR,GAETnC,QAAQC,SACnB,CACA,MAAAmT,CAAOgB,GAEC9Y,KAAK6Y,aAEL7Y,KAAK6Y,WAAWrQ,QAAU,OAC1BxI,KAAK6Y,WAAWhB,UAAY,OAC5B7X,KAAK6Y,WAAWnD,QAAU,OAC1B1V,KAAK6Y,WAAWZ,QAChBjY,KAAK6Y,gBAAahS,GAEtB7G,KAAK+H,QAAQC,IAAI,IAASwO,MAAO,yCAC7BxW,KAAKwI,WACDxI,KAAKkZ,cAAcJ,KAA8B,IAAnBA,EAAMK,UAAqC,MAAfL,EAAMM,KAG3DN,aAAiBrZ,MACtBO,KAAKwI,QAAQsQ,GAGb9Y,KAAKwI,UANLxI,KAAKwI,QAAQ,IAAI/I,MAAM,sCAAsCqZ,EAAMM,SAASN,EAAMO,QAAU,wBASxG,CACA,aAAAH,CAAcJ,GACV,OAAOA,GAAmC,kBAAnBA,EAAMK,UAAgD,iBAAfL,EAAMM,IACxE,EC3IG,MAAME,EACT,WAAA5Z,CAAY8J,EAAK2I,EAAU,CAAC,GASxB,GARAnS,KAAKuZ,qBAAuB,OAC5BvZ,KAAK4K,SAAW,CAAC,EACjB5K,KAAKwZ,kBAAoB,EACzB,KAAItR,WAAWsB,EAAK,OACpBxJ,KAAK+H,SAAU,OAAaoK,EAAQ3K,QACpCxH,KAAKuJ,QAAUvJ,KAAKyZ,YAAYjQ,IAChC2I,EAAUA,GAAW,CAAC,GACd6E,uBAAkDnQ,IAA9BsL,EAAQ6E,mBAA0C7E,EAAQ6E,kBAC/C,kBAA5B7E,EAAQiC,sBAA6DvN,IAA5BsL,EAAQiC,gBAIxD,MAAM,IAAI3U,MAAM,mEAHhB0S,EAAQiC,qBAA8CvN,IAA5BsL,EAAQiC,iBAAuCjC,EAAQiC,gBAKrFjC,EAAQ4B,aAA8BlN,IAApBsL,EAAQ4B,QAAwB,IAAa5B,EAAQ4B,QACvE,IAAI2F,EAAkB,KAClBC,EAAoB,KACxB,GAAI,KAASzG,OAA0C,CAGnD,MAAMC,EAA0D,QAChEuG,EAAkBvG,EAAY,MAC9BwG,EAAoBxG,EAAY,cACpC,CACK,KAASD,QAA+B,oBAAd0G,WAA8BzH,EAAQyH,UAG5D,KAAS1G,SAAWf,EAAQyH,WAC7BF,IACAvH,EAAQyH,UAAYF,GAJxBvH,EAAQyH,UAAYA,UAOnB,KAAS1G,QAAiC,oBAAhB0E,aAAgCzF,EAAQyF,YAG9D,KAAS1E,SAAWf,EAAQyF,kBACA,IAAtB+B,IACPxH,EAAQyF,YAAc+B,GAJ1BxH,EAAQyF,YAAcA,YAO1B5X,KAAK6V,YAAc,IAAIvD,EAAsBH,EAAQ+D,YAAc,IAAIN,EAAkB5V,KAAK+H,SAAUoK,EAAQK,oBAChHxS,KAAKiJ,iBAAmB,eACxBjJ,KAAKmJ,oBAAqB,EAC1BnJ,KAAKmW,SAAWhE,EAChBnS,KAAKsI,UAAY,KACjBtI,KAAKwI,QAAU,IACnB,CACA,WAAMkB,CAAMgB,GAIR,GAHAA,EAAiBA,GAAkB,IAAe+L,OAClD,KAAIH,KAAK5L,EAAgB,IAAgB,kBACzC1K,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,6CAA6C,IAAeY,QAC/D,iBAA1B1K,KAAKiJ,iBACL,OAAOvE,QAAQK,OAAO,IAAItF,MAAM,4EAMpC,GAJAO,KAAKiJ,iBAAmB,aACxBjJ,KAAK6Z,sBAAwB7Z,KAAK+J,eAAeW,SAC3C1K,KAAK6Z,sBAEmB,kBAA1B7Z,KAAKiJ,iBAA0E,CAE/E,MAAM5I,EAAU,+DAIhB,OAHAL,KAAK+H,QAAQC,IAAI,IAASvI,MAAOY,SAE3BL,KAAK2L,aACJjH,QAAQK,OAAO,IAAI,KAAW1E,GACzC,CACK,GAA8B,cAA1BL,KAAKiJ,iBAAkE,CAE5E,MAAM5I,EAAU,8GAEhB,OADAL,KAAK+H,QAAQC,IAAI,IAASvI,MAAOY,GAC1BqE,QAAQK,OAAO,IAAI,KAAW1E,GACzC,CACAL,KAAKmJ,oBAAqB,CAC9B,CACA,IAAAlE,CAAK5D,GACD,MAA8B,cAA1BrB,KAAKiJ,iBACEvE,QAAQK,OAAO,IAAItF,MAAM,yEAE/BO,KAAK8Z,aACN9Z,KAAK8Z,WAAa,IAAIC,EAAmB/Z,KAAKM,YAG3CN,KAAK8Z,WAAW7U,KAAK5D,GAChC,CACA,UAAM4E,CAAK9C,GACP,MAA8B,iBAA1BnD,KAAKiJ,kBACLjJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,+BAA+B3G,2EACzDuB,QAAQC,WAEW,kBAA1B3E,KAAKiJ,kBACLjJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,+BAA+B3G,4EACzDnD,KAAK2L,eAEhB3L,KAAKiJ,iBAAmB,gBACxBjJ,KAAK2L,aAAe,IAAIjH,SAASC,IAE7B3E,KAAKuZ,qBAAuB5U,CAAO,UAGjC3E,KAAK4L,cAAczI,cACnBnD,KAAK2L,aACf,CACA,mBAAMC,CAAczI,GAIhBnD,KAAKga,WAAa7W,EAClB,UACUnD,KAAK6Z,qBACf,CACA,MAAOxP,GAEP,CAIA,GAAIrK,KAAKM,UAAW,CAChB,UACUN,KAAKM,UAAU2F,MACzB,CACA,MAAOoE,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,gDAAgD4K,OACjFrK,KAAKia,iBACT,CACAja,KAAKM,eAAYuG,CACrB,MAEI7G,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,yFAEzC,CACA,oBAAMC,CAAeW,GAGjB,IAAIlB,EAAMxJ,KAAKuJ,QACfvJ,KAAK0S,oBAAsB1S,KAAKmW,SAAS3D,mBACzCxS,KAAK6V,YAAYnD,oBAAsB1S,KAAK0S,oBAC5C,IACI,GAAI1S,KAAKmW,SAAS+D,gBAAiB,CAC/B,GAAIla,KAAKmW,SAAS7V,YAAc,IAAkB6Z,WAQ9C,MAAM,IAAI1a,MAAM,gFANhBO,KAAKM,UAAYN,KAAKoa,oBAAoB,IAAkBD,kBAGtDna,KAAKqa,gBAAgB7Q,EAAKkB,EAKxC,KACK,CACD,IAAI4P,EAAoB,KACpBC,EAAY,EAChB,EAAG,CAGC,GAFAD,QAA0Bta,KAAKwa,wBAAwBhR,GAEzB,kBAA1BxJ,KAAKiJ,kBAAsG,iBAA1BjJ,KAAKiJ,iBACtF,MAAM,IAAI,KAAW,kDAEzB,GAAIqR,EAAkBnX,MAClB,MAAM,IAAI1D,MAAM6a,EAAkBnX,OAEtC,GAAImX,EAAkBG,gBAClB,MAAM,IAAIhb,MAAM,gMAKpB,GAHI6a,EAAkB9Q,MAClBA,EAAM8Q,EAAkB9Q,KAExB8Q,EAAkBhD,YAAa,CAG/B,MAAMA,EAAcgD,EAAkBhD,YACtCtX,KAAK0S,oBAAsB,IAAM4E,EAEjCtX,KAAK6V,YAAYhD,aAAeyE,EAChCtX,KAAK6V,YAAYnD,yBAAsB7L,CAC3C,CACA0T,GACJ,OAASD,EAAkB9Q,KAAO+Q,EArL5B,KAsLN,GAtLM,MAsLFA,GAA+BD,EAAkB9Q,IACjD,MAAM,IAAI/J,MAAM,+CAEdO,KAAK0a,iBAAiBlR,EAAKxJ,KAAKmW,SAAS7V,UAAWga,EAAmB5P,EACjF,CACI1K,KAAKM,qBAAqByV,IAC1B/V,KAAK4K,SAASY,mBAAoB,GAER,eAA1BxL,KAAKiJ,mBAGLjJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,8CACjC9J,KAAKiJ,iBAAmB,YAKhC,CACA,MAAOoB,GAMH,OALArK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,mCAAqC4K,GACtErK,KAAKiJ,iBAAmB,eACxBjJ,KAAKM,eAAYuG,EAEjB7G,KAAKuZ,uBACE7U,QAAQK,OAAOsF,EAC1B,CACJ,CACA,6BAAMmQ,CAAwBhR,GAC1B,MAAMuJ,EAAU,CAAC,GACVjI,EAAM4L,IAAS,UACtB3D,EAAQjI,GAAQ4L,EAChB,MAAMiE,EAAe3a,KAAK4a,qBAAqBpR,GAC/CxJ,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,gCAAgC6Q,MACjE,IACI,MAAM/X,QAAiB5C,KAAK6V,YAAYzD,KAAKuI,EAAc,CACvD3I,QAAS,GACTe,QAAS,IAAKA,KAAY/S,KAAKmW,SAASpD,SACxCgB,QAAS/T,KAAKmW,SAASpC,QACvBK,gBAAiBpU,KAAKmW,SAAS/B,kBAEnC,GAA4B,MAAxBxR,EAAShD,WACT,OAAO8E,QAAQK,OAAO,IAAItF,MAAM,mDAAmDmD,EAAShD,gBAEhG,MAAM0a,EAAoBpZ,KAAKyB,MAAMC,EAASoP,SAM9C,QALKsI,EAAkBO,kBAAoBP,EAAkBO,iBAAmB,KAG5EP,EAAkBQ,gBAAkBR,EAAkBhR,cAEtDgR,EAAkBS,uBAAgE,IAAxC/a,KAAKmW,SAAS6E,sBACjDtW,QAAQK,OAAO,IAAI,KAAiC,mEAExDuV,CACX,CACA,MAAOjQ,GACH,IAAI1K,EAAe,mDAAqD0K,EAOxE,OANIA,aAAa,MACQ,MAAjBA,EAAEzK,aACFD,GAA8B,uFAGtCK,KAAK+H,QAAQC,IAAI,IAASvI,MAAOE,GAC1B+E,QAAQK,OAAO,IAAI,KAAiCpF,GAC/D,CACJ,CACA,iBAAAsb,CAAkBzR,EAAKsR,GACnB,OAAKA,EAGEtR,IAA6B,IAAtBA,EAAI7H,QAAQ,KAAc,IAAM,KAAO,MAAMmZ,IAFhDtR,CAGf,CACA,sBAAMkR,CAAiBlR,EAAK0R,EAAoBZ,EAAmBa,GAC/D,IAAIC,EAAapb,KAAKib,kBAAkBzR,EAAK8Q,EAAkBQ,iBAC/D,GAAI9a,KAAKqb,cAAcH,GAKnB,OAJAlb,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,2EACjC9J,KAAKM,UAAY4a,QACXlb,KAAKqa,gBAAgBe,EAAYD,QACvCnb,KAAKsJ,aAAegR,EAAkBhR,cAG1C,MAAMgS,EAAsB,GACtBC,EAAajB,EAAkBkB,qBAAuB,GAC5D,IAAIC,EAAYnB,EAChB,IAAK,MAAMoB,KAAYH,EAAY,CAC/B,MAAMI,EAAmB3b,KAAK4b,yBAAyBF,EAAUR,EAAoBC,GAAoH,KAA1FM,aAA6C,EAASA,EAAUV,uBAC/K,GAAIY,aAA4Blc,MAE5B6b,EAAoB/X,KAAK,GAAGmY,EAASpb,qBACrCgb,EAAoB/X,KAAKoY,QAExB,GAAI3b,KAAKqb,cAAcM,GAAmB,CAE3C,GADA3b,KAAKM,UAAYqb,GACZF,EAAW,CACZ,IACIA,QAAkBzb,KAAKwa,wBAAwBhR,EACnD,CACA,MAAOqS,GACH,OAAOnX,QAAQK,OAAO8W,EAC1B,CACAT,EAAapb,KAAKib,kBAAkBzR,EAAKiS,EAAUX,gBACvD,CACA,IAGI,aAFM9a,KAAKqa,gBAAgBe,EAAYD,QACvCnb,KAAKsJ,aAAemS,EAAUnS,aAElC,CACA,MAAOuS,GAIH,GAHA7b,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,kCAAkCic,EAASpb,eAAeub,KAC3FJ,OAAY5U,EACZyU,EAAoB/X,KAAK,IAAI,KAA4B,GAAGmY,EAASpb,qBAAqBub,IAAM,IAAkBH,EAASpb,aAC7F,eAA1BN,KAAKiJ,iBAAoE,CACzE,MAAM5I,EAAU,uDAEhB,OADAL,KAAK+H,QAAQC,IAAI,IAAS8B,MAAOzJ,GAC1BqE,QAAQK,OAAO,IAAI,KAAW1E,GACzC,CACJ,CACJ,CACJ,CACA,OAAIib,EAAoB7Y,OAAS,EACtBiC,QAAQK,OAAO,IAAI,KAAgB,yEAAyEuW,EAAoBvG,KAAK,OAAQuG,IAEjJ5W,QAAQK,OAAO,IAAItF,MAAM,+EACpC,CACA,mBAAA2a,CAAoB9Z,GAChB,OAAQA,GACJ,KAAK,IAAkB6Z,WACnB,IAAKna,KAAKmW,SAASyD,UACf,MAAM,IAAIna,MAAM,qDAEpB,OAAO,IAAIyY,EAAmBlY,KAAK6V,YAAa7V,KAAK0S,oBAAqB1S,KAAK+H,QAAS/H,KAAKmW,SAASa,kBAAmBhX,KAAKmW,SAASyD,UAAW5Z,KAAKmW,SAASpD,SAAW,CAAC,GAChL,KAAK,IAAkB+I,iBACnB,IAAK9b,KAAKmW,SAASyB,YACf,MAAM,IAAInY,MAAM,uDAEpB,OAAO,IAAI4X,EAA0BrX,KAAK6V,YAAa7V,KAAK6V,YAAYhD,aAAc7S,KAAK+H,QAAS/H,KAAKmW,UAC7G,KAAK,IAAkB4F,YACnB,OAAO,IAAIhG,EAAqB/V,KAAK6V,YAAa7V,KAAK+H,QAAS/H,KAAKmW,UACzE,QACI,MAAM,IAAI1W,MAAM,sBAAsBa,MAElD,CACA,eAAA+Z,CAAgB7Q,EAAKkB,GA2BjB,OA1BA1K,KAAKM,UAAUgI,UAAYtI,KAAKsI,UAC5BtI,KAAK4K,SAASC,UACd7K,KAAKM,UAAUkI,QAAUxB,MAAOqD,IAC5B,IAAI2R,GAAW,EACf,GAAIhc,KAAK4K,SAASC,UAAlB,CACI,IACI7K,KAAK4K,SAASS,qBACRrL,KAAKM,UAAU+V,QAAQ7M,EAAKkB,SAC5B1K,KAAK4K,SAASW,QACxB,CACA,MACIyQ,GAAW,CACf,CAMAA,GACAhc,KAAKia,gBAAgB5P,EAFzB,MAFIrK,KAAKia,gBAAgB5P,EAKzB,EAIJrK,KAAKM,UAAUkI,QAAW6B,GAAMrK,KAAKia,gBAAgB5P,GAElDrK,KAAKM,UAAU+V,QAAQ7M,EAAKkB,EACvC,CACA,wBAAAkR,CAAyBF,EAAUR,EAAoBC,EAAyBJ,GAC5E,MAAMza,EAAY,IAAkBob,EAASpb,WAC7C,GAAIA,QAEA,OADAN,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,uBAAuB4R,EAASpb,0DAC1D,IAAIb,MAAM,uBAAuBic,EAASpb,0DAGjD,IAwHZ,SAA0B4a,EAAoBe,GAC1C,OAAQf,MAAwBe,EAAkBf,EACtD,CA1HgBgB,CAAiBhB,EAAoB5a,GA0BrC,OADAN,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,uBAAuB,IAAkBxJ,8CACnE,IAAI,KAAuB,IAAI,IAAkBA,iCAA0CA,GAxBlG,KADwBob,EAASS,gBAAgBC,KAAKC,GAAM,IAAeA,KACvD1a,QAAQwZ,IAA4B,GAmBpD,OADAnb,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,uBAAuB,IAAkBxJ,kEAA0E,IAAe6a,QAC5J,IAAI1b,MAAM,IAAI,IAAkBa,wBAAgC,IAAe6a,OAlBtF,GAAK7a,IAAc,IAAkB6Z,aAAena,KAAKmW,SAASyD,WAC7DtZ,IAAc,IAAkBwb,mBAAqB9b,KAAKmW,SAASyB,YAEpE,OADA5X,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,uBAAuB,IAAkBxJ,yDACnE,IAAI,KAA0B,IAAI,IAAkBA,4CAAqDA,GAGhHN,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,wBAAwB,IAAkBxJ,QAC3E,IAEI,OADAN,KAAK4K,SAASC,UAAYvK,IAAc,IAAkB6Z,WAAaY,OAAuBlU,EACvF7G,KAAKoa,oBAAoB9Z,EACpC,CACA,MAAOub,GACH,OAAOA,CACX,CAapB,CACA,aAAAR,CAAc/a,GACV,OAAOA,GAAoC,iBAAhB,GAA4B,YAAaA,CACxE,CACA,eAAA2Z,CAAgB9W,GAMZ,GALAnD,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,iCAAiC3G,4BAAgCnD,KAAKiJ,qBACvGjJ,KAAKM,eAAYuG,EAEjB1D,EAAQnD,KAAKga,YAAc7W,EAC3BnD,KAAKga,gBAAanT,EACY,iBAA1B7G,KAAKiJ,iBAAT,CAIA,GAA8B,eAA1BjJ,KAAKiJ,iBAEL,MADAjJ,KAAK+H,QAAQC,IAAI,IAASC,QAAS,yCAAyC9E,2EACtE,IAAI1D,MAAM,iCAAiC0D,wEAqBrD,GAnB8B,kBAA1BnD,KAAKiJ,kBAGLjJ,KAAKuZ,uBAELpW,EACAnD,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,uCAAuC0D,OAGxEnD,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,4BAEvChL,KAAK8Z,aACL9Z,KAAK8Z,WAAW7T,OAAOkH,OAAO9C,IAC1BrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,0CAA0C4K,MAAM,IAErFrK,KAAK8Z,gBAAajT,GAEtB7G,KAAKsJ,kBAAezC,EACpB7G,KAAKiJ,iBAAmB,eACpBjJ,KAAKmJ,mBAAoB,CACzBnJ,KAAKmJ,oBAAqB,EAC1B,IACQnJ,KAAKwI,SACLxI,KAAKwI,QAAQrF,EAErB,CACA,MAAOkH,GACHrK,KAAK+H,QAAQC,IAAI,IAASvI,MAAO,0BAA0B0D,mBAAuBkH,MACtF,CACJ,CAlCA,MAFIrK,KAAK+H,QAAQC,IAAI,IAAS8B,MAAO,yCAAyC3G,8EAqClF,CACA,WAAAsW,CAAYjQ,GAER,GAAuC,IAAnCA,EAAI8S,YAAY,WAAY,IAA8C,IAAlC9S,EAAI8S,YAAY,UAAW,GACnE,OAAO9S,EAEX,IAAK,KAASQ,UACV,MAAM,IAAIvK,MAAM,mBAAmB+J,OAOvC,MAAM+S,EAAOtS,OAAOC,SAASsS,cAAc,KAG3C,OAFAD,EAAKE,KAAOjT,EACZxJ,KAAK+H,QAAQC,IAAI,IAASgD,YAAa,gBAAgBxB,UAAY+S,EAAKE,UACjEF,EAAKE,IAChB,CACA,oBAAA7B,CAAqBpR,GACjB,MAAMmR,EAAe,IAAI+B,IAAIlT,GACzBmR,EAAagC,SAASC,SAAS,KAC/BjC,EAAagC,UAAY,YAGzBhC,EAAagC,UAAY,aAE7B,MAAME,EAAe,IAAIC,gBAAgBnC,EAAakC,cAatD,OAZKA,EAAaE,IAAI,qBAClBF,EAAaG,OAAO,mBAAoBhd,KAAKwZ,kBAAkBlJ,YAE/DuM,EAAaE,IAAI,wBACgC,SAA7CF,EAAa3K,IAAI,0BACjBlS,KAAKmW,SAAS6E,uBAAwB,IAGG,IAAxChb,KAAKmW,SAAS6E,uBACnB6B,EAAaG,OAAO,uBAAwB,QAEhDrC,EAAasC,OAASJ,EAAavM,WAC5BqK,EAAarK,UACxB,EAMG,MAAMyJ,EACT,WAAAra,CAAYwd,GACRld,KAAKkd,WAAaA,EAClBld,KAAKmd,QAAU,GACfnd,KAAKod,YAAa,EAClBpd,KAAKqd,kBAAoB,IAAIC,EAC7Btd,KAAKud,iBAAmB,IAAID,EAC5Btd,KAAKwd,iBAAmBxd,KAAKyd,WACjC,CACA,IAAAxY,CAAK5D,GAKD,OAJArB,KAAK0d,YAAYrc,GACZrB,KAAKud,mBACNvd,KAAKud,iBAAmB,IAAID,GAEzBtd,KAAKud,iBAAiBI,OACjC,CACA,IAAA1X,GAGI,OAFAjG,KAAKod,YAAa,EAClBpd,KAAKqd,kBAAkB1Y,UAChB3E,KAAKwd,gBAChB,CACA,WAAAE,CAAYrc,GACR,GAAIrB,KAAKmd,QAAQ1a,eAAkBzC,KAAKmd,QAAQ,WAAe,EAC3D,MAAM,IAAI1d,MAAM,sCAAuCO,KAAY,kCAA4B,KAEnGA,KAAKmd,QAAQ5Z,KAAKlC,GAClBrB,KAAKqd,kBAAkB1Y,SAC3B,CACA,eAAM8Y,GACF,OAAa,CAET,SADMzd,KAAKqd,kBAAkBM,SACxB3d,KAAKod,WAAY,CACdpd,KAAKud,kBACLvd,KAAKud,iBAAiBxY,OAAO,uBAEjC,KACJ,CACA/E,KAAKqd,kBAAoB,IAAIC,EAC7B,MAAMM,EAAkB5d,KAAKud,iBAC7Bvd,KAAKud,sBAAmB1W,EACxB,MAAMxF,EAAoC,iBAArBrB,KAAKmd,QAAQ,GAC9Bnd,KAAKmd,QAAQpI,KAAK,IAClBgF,EAAmB8D,eAAe7d,KAAKmd,SAC3Cnd,KAAKmd,QAAQ1a,OAAS,EACtB,UACUzC,KAAKkd,WAAWjY,KAAK5D,GAC3Buc,EAAgBjZ,SACpB,CACA,MAAOxB,GACHya,EAAgB7Y,OAAO5B,EAC3B,CACJ,CACJ,CACA,qBAAO0a,CAAeC,GAClB,MAAMC,EAAcD,EAAa1B,KAAK4B,GAAMA,EAAE5b,aAAY6b,QAAO,CAACC,EAAGF,IAAME,EAAIF,IACzExQ,EAAS,IAAI/L,WAAWsc,GAC9B,IAAII,EAAS,EACb,IAAK,MAAMlb,KAAQ6a,EACftQ,EAAO4Q,IAAI,IAAI3c,WAAWwB,GAAOkb,GACjCA,GAAUlb,EAAKb,WAEnB,OAAOoL,EAAOnL,MAClB,EAEJ,MAAMib,EACF,WAAA5d,GACIM,KAAK2d,QAAU,IAAIjZ,SAAQ,CAACC,EAASI,KAAY/E,KAAK2F,UAAW3F,KAAKqe,WAAa,CAAC1Z,EAASI,IACjG,CACA,OAAAJ,GACI3E,KAAK2F,WACT,CACA,MAAAZ,CAAOsU,GACHrZ,KAAKqe,UAAUhF,EACnB,E,4CC9iBG,MAAMiF,EACT,WAAA5e,GAEIM,KAAK8K,KALkB,OAOvB9K,KAAK2K,QAAU,EAEf3K,KAAK0K,eAAiB,IAAegN,IACzC,CAMA,aAAArJ,CAAckQ,EAAO/W,GAEjB,GAAqB,iBAAV+W,EACP,MAAM,IAAI9e,MAAM,2DAEpB,IAAK8e,EACD,MAAO,GAEI,OAAX/W,IACAA,EAAS,IAAWgX,UAGxB,MAAM9b,EAAW1B,EAAA,EAAkB2B,MAAM4b,GACnCE,EAAc,GACpB,IAAK,MAAMpe,KAAWqC,EAAU,CAC5B,MAAMgc,EAAgBxd,KAAKyB,MAAMtC,GACjC,GAAkC,iBAAvBqe,EAAc7b,KACrB,MAAM,IAAIpD,MAAM,oBAEpB,OAAQif,EAAc7b,MAClB,KAAK,IAAYwD,WACbrG,KAAK4E,qBAAqB8Z,GAC1B,MACJ,KAAK,IAAYpY,WACbtG,KAAK2e,qBAAqBD,GAC1B,MACJ,KAAK,IAAYnY,WACbvG,KAAK4e,qBAAqBF,GAC1B,MACJ,KAAK,IAAY/X,KAGjB,KAAK,IAAYD,MAEb,MACJ,KAAK,IAAYE,IACb5G,KAAK6e,cAAcH,GACnB,MACJ,KAAK,IAAY7Y,SACb7F,KAAK8e,mBAAmBJ,GACxB,MACJ,QAEIlX,EAAOQ,IAAI,IAASgD,YAAa,yBAA2B0T,EAAc7b,KAAO,cACjF,SAER4b,EAAYlb,KAAKmb,EACrB,CACA,OAAOD,CACX,CAMA,YAAAja,CAAanE,GACT,OAAOW,EAAA,EAAkBC,MAAMC,KAAKC,UAAUd,GAClD,CACA,oBAAAuE,CAAqBvE,GACjBL,KAAK+e,sBAAsB1e,EAAQ2O,OAAQ,gDACdnI,IAAzBxG,EAAQ2M,cACRhN,KAAK+e,sBAAsB1e,EAAQ2M,aAAc,0CAEzD,CACA,oBAAA2R,CAAqBte,GAEjB,GADAL,KAAK+e,sBAAsB1e,EAAQ2M,aAAc,gDAC5BnG,IAAjBxG,EAAQ4C,KACR,MAAM,IAAIxD,MAAM,0CAExB,CACA,oBAAAmf,CAAqBve,GACjB,GAAIA,EAAQmN,QAAUnN,EAAQ8C,MAC1B,MAAM,IAAI1D,MAAM,4CAEfY,EAAQmN,QAAUnN,EAAQ8C,OAC3BnD,KAAK+e,sBAAsB1e,EAAQ8C,MAAO,2CAE9CnD,KAAK+e,sBAAsB1e,EAAQ2M,aAAc,0CACrD,CACA,aAAA6R,CAAcxe,GACV,GAAkC,iBAAvBA,EAAQoF,WACf,MAAM,IAAIhG,MAAM,sCAExB,CACA,kBAAAqf,CAAmBze,GACf,GAAkC,iBAAvBA,EAAQoF,WACf,MAAM,IAAIhG,MAAM,2CAExB,CACA,qBAAAsf,CAAsBrI,EAAO/W,GACzB,GAAqB,iBAAV+W,GAAgC,KAAVA,EAC7B,MAAM,IAAIjX,MAAME,EAExB,EC3GJ,MAAMqf,EAAsB,CACxBC,MAAO,IAASzI,MAChB0I,MAAO,IAASpV,MAChBqV,KAAM,IAASnU,YACfoU,YAAa,IAASpU,YACtBqU,KAAM,IAASpX,QACfqX,QAAS,IAASrX,QAClB9E,MAAO,IAAS1D,MAChB8f,SAAU,IAASC,SACnBC,KAAM,IAASC,MAeZ,MAAMC,EACT,gBAAAC,CAAiBC,GAEb,GADA,KAAI3X,WAAW2X,EAAS,gBA0GNhZ,IAzGLgZ,EAyGH7X,IAxGNhI,KAAKwH,OAASqY,OAEb,GAAuB,iBAAZA,EAAsB,CAClC,MAAMC,EApBlB,SAAuBhV,GAInB,MAAMiV,EAAUf,EAAoBlU,EAAK6C,eACzC,QAAuB,IAAZoS,EACP,OAAOA,EAGP,MAAM,IAAItgB,MAAM,sBAAsBqL,IAE9C,CAS6BkV,CAAcH,GAC/B7f,KAAKwH,OAAS,IAAI,KAAcsY,EACpC,MAEI9f,KAAKwH,OAAS,IAAI,KAAcqY,GAEpC,OAAO7f,IACX,CACA,OAAAigB,CAAQzW,EAAK0W,GAeT,OAdA,KAAIhY,WAAWsB,EAAK,OACpB,KAAI2W,WAAW3W,EAAK,OACpBxJ,KAAKwJ,IAAMA,EAIPxJ,KAAKogB,sBAD6B,iBAA3BF,EACsB,IAAKlgB,KAAKogB,yBAA0BF,GAGpC,IACtBlgB,KAAKogB,sBACR9f,UAAW4f,GAGZlgB,IACX,CAKA,eAAAqgB,CAAgB5c,GAGZ,OAFA,KAAIyE,WAAWzE,EAAU,YACzBzD,KAAKyD,SAAWA,EACTzD,IACX,CACA,sBAAAsgB,CAAuBC,GACnB,GAAIvgB,KAAKyH,gBACL,MAAM,IAAIhI,MAAM,2CAWpB,OATK8gB,EAGIte,MAAMue,QAAQD,GACnBvgB,KAAKyH,gBAAkB,IAAI8J,EAAuBgP,GAGlDvgB,KAAKyH,gBAAkB8Y,EANvBvgB,KAAKyH,gBAAkB,IAAI8J,EAQxBvR,IACX,CAKA,iBAAAygB,CAAkBC,GAGd,OAFA,KAAIxY,WAAWwY,EAAc,gBAC7B1gB,KAAK2gB,6BAA+BD,EAC7B1gB,IACX,CAKA,qBAAA4gB,CAAsBF,GAGlB,OAFA,KAAIxY,WAAWwY,EAAc,gBAC7B1gB,KAAK6gB,iCAAmCH,EACjC1gB,IACX,CAKA,qBAAA8gB,CAAsB3O,GAMlB,YALmCtL,IAA/B7G,KAAKogB,wBACLpgB,KAAKogB,sBAAwB,CAAC,GAElCpgB,KAAKogB,sBAAsBpF,uBAAwB,EACnDhb,KAAKmI,6BAA+BgK,aAAyC,EAASA,EAAQxO,WACvF3D,IACX,CAKA,KAAA+gB,GAGI,MAAMX,EAAwBpgB,KAAKogB,uBAAyB,CAAC,EAO7D,QALqCvZ,IAAjCuZ,EAAsB5Y,SAEtB4Y,EAAsB5Y,OAASxH,KAAKwH,SAGnCxH,KAAKwJ,IACN,MAAM,IAAI/J,MAAM,4FAEpB,MAAMiE,EAAa,IAAI4V,EAAetZ,KAAKwJ,IAAK4W,GAChD,OAAO9Y,EAAA,EAAcC,OAAO7D,EAAY1D,KAAKwH,QAAU,IAAWgX,SAAUxe,KAAKyD,UAAY,IAAI6a,EAAmBte,KAAKyH,gBAAiBzH,KAAK2gB,6BAA8B3gB,KAAK6gB,iCAAkC7gB,KAAKmI,6BAC7N,E,oCCvIG,IAAI6Y,E,gCACX,SAAWA,GAEPA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAA8B,iBAAI,GAAK,mBAEnDA,EAAYA,EAA8B,iBAAI,GAAK,mBAEnDA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAiB,IAAI,GAAK,MACtCA,EAAYA,EAAsB,SAAI,GAAK,UAC9C,CAjBD,CAiBGA,IAAgBA,EAAc,CAAC,G,mCCd3B,IAAIC,E,gCACX,SAAWA,GAEPA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAsB,YAAI,GAAK,cAExCA,EAASA,EAAkB,QAAI,GAAK,UAEpCA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAmB,SAAI,GAAK,WAErCA,EAASA,EAAe,KAAI,GAAK,MACpC,CAfD,CAeGA,IAAaA,EAAW,CAAC,G,oCCnBrB,IAAIC,EAYAC,E,uDAXX,SAAWD,GAEPA,EAAkBA,EAAwB,KAAI,GAAK,OAEnDA,EAAkBA,EAA8B,WAAI,GAAK,aAEzDA,EAAkBA,EAAoC,iBAAI,GAAK,mBAE/DA,EAAkBA,EAA+B,YAAI,GAAK,aAC7D,CATD,CASGA,IAAsBA,EAAoB,CAAC,IAG9C,SAAWC,GAEPA,EAAeA,EAAqB,KAAI,GAAK,OAE7CA,EAAeA,EAAuB,OAAI,GAAK,QAClD,CALD,CAKGA,IAAmBA,EAAiB,CAAC,G,oECnBjC,MAAMC,EACT,WAAA1hB,GAAgB,CAGhB,GAAAsI,CAAIqZ,EAAW3b,GACf,EAGJ0b,EAAW5C,SAAW,IAAI4C,C,oECPnB,MAAMpgB,EACT,YAAOC,CAAMqgB,GACT,MAAO,GAAGA,IAAStgB,EAAkBuB,iBACzC,CACA,YAAOI,CAAM4b,GACT,GAAIA,EAAMA,EAAM9b,OAAS,KAAOzB,EAAkBuB,gBAC9C,MAAM,IAAI9C,MAAM,0BAEpB,MAAMiD,EAAW6b,EAAMgD,MAAMvgB,EAAkBuB,iBAE/C,OADAG,EAAS8e,MACF9e,CACX,EAEJ1B,EAAkBY,oBAAsB,GACxCZ,EAAkBuB,gBAAkBT,OAAOC,aAAaf,EAAkBY,oB,2UCZnE,MAAM6f,EAAU,QAEhB,MAAMC,EACT,iBAAOxZ,CAAWyZ,EAAK7W,GACnB,GAAI6W,QACA,MAAM,IAAIliB,MAAM,QAAQqL,2BAEhC,CACA,iBAAOqV,CAAWwB,EAAK7W,GACnB,IAAK6W,GAAOA,EAAIC,MAAM,SAClB,MAAM,IAAIniB,MAAM,QAAQqL,mCAEhC,CACA,WAAOwL,CAAKqL,EAAKE,EAAQ/W,GAErB,KAAM6W,KAAOE,GACT,MAAM,IAAIpiB,MAAM,WAAWqL,YAAe6W,KAElD,EAGG,MAAMG,EAET,oBAAW9X,GACP,OAAQ8X,EAAS5O,QAA4B,iBAAXjJ,QAAkD,iBAApBA,OAAOC,QAC3E,CAEA,sBAAWyN,GACP,OAAQmK,EAAS5O,QAA0B,iBAAT6O,MAAqB,kBAAmBA,IAC9E,CAEA,wBAAWrJ,GACP,OAAQoJ,EAAS5O,QAA4B,iBAAXjJ,aAAkD,IAApBA,OAAOC,QAC3E,CAGA,iBAAWgJ,GACP,MAA0B,oBAAZ8O,SAA2BA,QAAQC,SAAoC,SAAzBD,QAAQC,QAAQnX,IAChF,EAGG,SAASoX,EAAc7gB,EAAM8gB,GAChC,IAAIC,EAAS,GAab,OAZIC,EAAchhB,IACd+gB,EAAS,yBAAyB/gB,EAAKe,aACnC+f,IACAC,GAAU,eAYf,SAA2B/gB,GAC9B,MAAMihB,EAAO,IAAI7gB,WAAWJ,GAE5B,IAAIkhB,EAAM,GAMV,OALAD,EAAKxS,SAAS0S,IAEVD,GAAO,KADKC,EAAM,GAAK,IAAM,KACXA,EAAIlS,SAAS,MAAM,IAGlCiS,EAAIE,OAAO,EAAGF,EAAI9f,OAAS,EACtC,CAtBqCigB,CAAkBrhB,QAG1B,iBAATA,IACZ+gB,EAAS,yBAAyB/gB,EAAKoB,SACnC0f,IACAC,GAAU,eAAe/gB,OAG1B+gB,CACX,CAeO,SAASC,EAAcV,GAC1B,OAAOA,GAA8B,oBAAhBgB,cAChBhB,aAAegB,aAEXhB,EAAIjiB,aAAwC,gBAAzBiiB,EAAIjiB,YAAYoL,KAChD,CAEO9D,eAAe4b,EAAYpb,EAAQqb,EAAe3M,EAAY1M,EAAKwI,EAASG,GAC/E,MAAMY,EAAU,CAAC,GACVjI,EAAM4L,GAASoM,IACtB/P,EAAQjI,GAAQ4L,EAChBlP,EAAOQ,IAAI,IAASwO,MAAO,IAAIqM,8BAA0CX,EAAclQ,EAASG,EAAQ6E,uBACxG,MAAMrC,EAAe0N,EAAcrQ,GAAW,cAAgB,OACxDpP,QAAiBsT,EAAW9D,KAAK5I,EAAK,CACxCwI,UACAe,QAAS,IAAKA,KAAYZ,EAAQY,SAClC4B,eACAZ,QAAS5B,EAAQ4B,QACjBK,gBAAiBjC,EAAQiC,kBAE7B5M,EAAOQ,IAAI,IAASwO,MAAO,IAAIqM,mDAA+DjgB,EAAShD,cAC3G,CAEO,SAASmjB,EAAavb,GACzB,YAAeX,IAAXW,EACO,IAAIwb,EAAc,IAAShY,aAEvB,OAAXxD,EACO,IAAWgX,cAEH3X,IAAfW,EAAOQ,IACAR,EAEJ,IAAIwb,EAAcxb,EAC7B,CAEO,MAAMyb,EACT,WAAAvjB,CAAYkN,EAAS1J,GACjBlD,KAAKkjB,SAAWtW,EAChB5M,KAAKmjB,UAAYjgB,CACrB,CACA,OAAAkgB,GACI,MAAM9d,EAAQtF,KAAKkjB,SAASngB,UAAUpB,QAAQ3B,KAAKmjB,WAC/C7d,GAAS,GACTtF,KAAKkjB,SAASngB,UAAUiL,OAAO1I,EAAO,GAEH,IAAnCtF,KAAKkjB,SAASngB,UAAUN,QAAgBzC,KAAKkjB,SAASrW,gBACtD7M,KAAKkjB,SAASrW,iBAAiBM,OAAOkW,IAAD,GAE7C,EAGG,MAAML,EACT,WAAAtjB,CAAY4jB,GACRtjB,KAAKujB,UAAYD,EACjBtjB,KAAKwjB,IAAMC,OACf,CACA,GAAAzb,CAAI8X,EAAUzf,GACV,GAAIyf,GAAY9f,KAAKujB,UAAW,CAC5B,MAAMG,EAAM,KAAI,IAAIjV,MAAOkV,kBAAkB,IAAS7D,OAAczf,IACpE,OAAQyf,GACJ,KAAK,IAASN,SACd,KAAK,IAAS/f,MACVO,KAAKwjB,IAAIrgB,MAAMugB,GACf,MACJ,KAAK,IAASzb,QACVjI,KAAKwjB,IAAInE,KAAKqE,GACd,MACJ,KAAK,IAAS1Y,YACVhL,KAAKwjB,IAAIrE,KAAKuE,GACd,MACJ,QAEI1jB,KAAKwjB,IAAIxb,IAAI0b,GAGzB,CACJ,EAGG,SAASZ,IACZ,IAAIc,EAAsB,uBAI1B,OAHI9B,EAAS5O,SACT0Q,EAAsB,cAEnB,CAACA,EAAqBC,EAAmBpC,EAASqC,IAAaC,IAAcC,KACxF,CAEO,SAASH,EAAmBlZ,EAASsZ,EAAIC,EAASC,GAErD,IAAIC,EAAY,qBAChB,MAAMC,EAAgB1Z,EAAQ4W,MAAM,KAiBpC,OAhBA6C,GAAa,GAAGC,EAAc,MAAMA,EAAc,KAClDD,GAAa,KAAKzZ,MAEdyZ,GADAH,GAAa,KAAPA,EACO,GAAGA,MAGH,eAEjBG,GAAa,GAAGF,IAEZE,GADAD,EACa,KAAKA,IAGL,4BAEjBC,GAAa,IACNA,CACX,CAEc,SAASN,IACnB,IAAIhC,EAAS5O,OAaT,MAAO,GAZP,OAAQ8O,QAAQsC,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAOtC,QAAQsC,SAM/B,CAEc,SAASN,IACnB,GAAIlC,EAAS5O,OACT,OAAO8O,QAAQuC,SAASC,IAGhC,CACA,SAAST,IACL,OAAIjC,EAAS5O,OACF,SAGA,SAEf,CAEO,SAASuR,EAAepa,GAC3B,OAAIA,EAAEqa,MACKra,EAAEqa,MAEJra,EAAEhK,QACAgK,EAAEhK,QAEN,GAAGgK,GACd,CAEO,SAASsa,IAEZ,GAA0B,oBAAfC,WACP,OAAOA,WAEX,GAAoB,oBAAT7C,KACP,OAAOA,KAEX,GAAsB,oBAAX9X,OACP,OAAOA,OAEX,QAAsB,IAAX,EAAA4a,EACP,OAAO,EAAAA,EAEX,MAAM,IAAIplB,MAAM,wBACpB,C,uBCtPA,MAAMqlB,EAAMC,OAAO,cAEnB,MAAMC,EACJ,cAAWF,GACT,OAAOA,CACT,CAEA,WAAAplB,CAAaulB,EAAM9S,GAGjB,GAFAA,EAAU+S,EAAa/S,GAEnB8S,aAAgBD,EAAY,CAC9B,GAAIC,EAAKE,UAAYhT,EAAQgT,MAC3B,OAAOF,EAEPA,EAAOA,EAAKvO,KAEhB,CAEAuO,EAAOA,EAAKG,OAAO7D,MAAM,OAAOxM,KAAK,KACrCmK,EAAM,aAAc+F,EAAM9S,GAC1BnS,KAAKmS,QAAUA,EACfnS,KAAKmlB,QAAUhT,EAAQgT,MACvBnlB,KAAK2C,MAAMsiB,GAEPjlB,KAAKqlB,SAAWP,EAClB9kB,KAAK0W,MAAQ,GAEb1W,KAAK0W,MAAQ1W,KAAKslB,SAAWtlB,KAAKqlB,OAAO1a,QAG3CuU,EAAM,OAAQlf,KAChB,CAEA,KAAA2C,CAAOsiB,GACL,MAAMM,EAAIvlB,KAAKmS,QAAQgT,MAAQK,EAAGC,EAAEC,iBAAmBF,EAAGC,EAAEE,YACtDnW,EAAIyV,EAAKrD,MAAM2D,GAErB,IAAK/V,EACH,MAAM,IAAIoW,UAAU,uBAAuBX,KAG7CjlB,KAAKslB,cAAoBze,IAAT2I,EAAE,GAAmBA,EAAE,GAAK,GACtB,MAAlBxP,KAAKslB,WACPtlB,KAAKslB,SAAW,IAIb9V,EAAE,GAGLxP,KAAKqlB,OAAS,IAAIQ,EAAOrW,EAAE,GAAIxP,KAAKmS,QAAQgT,OAF5CnlB,KAAKqlB,OAASP,CAIlB,CAEA,QAAAxU,GACE,OAAOtQ,KAAK0W,KACd,CAEA,IAAAoP,CAAMnb,GAGJ,GAFAuU,EAAM,kBAAmBvU,EAAS3K,KAAKmS,QAAQgT,OAE3CnlB,KAAKqlB,SAAWP,GAAOna,IAAYma,EACrC,OAAO,EAGT,GAAuB,iBAAZna,EACT,IACEA,EAAU,IAAIkb,EAAOlb,EAAS3K,KAAKmS,QACrC,CAAE,MAAO4T,GACP,OAAO,CACT,CAGF,OAAOC,EAAIrb,EAAS3K,KAAKslB,SAAUtlB,KAAKqlB,OAAQrlB,KAAKmS,QACvD,CAEA,UAAA8T,CAAYhB,EAAM9S,GAChB,KAAM8S,aAAgBD,GACpB,MAAM,IAAIY,UAAU,4BAGtB,MAAsB,KAAlB5lB,KAAKslB,SACY,KAAftlB,KAAK0W,OAGF,IAAIwP,EAAMjB,EAAKvO,MAAOvE,GAAS2T,KAAK9lB,KAAK0W,OACrB,KAAlBuO,EAAKK,SACK,KAAfL,EAAKvO,OAGF,IAAIwP,EAAMlmB,KAAK0W,MAAOvE,GAAS2T,KAAKb,EAAKI,WAGlDlT,EAAU+S,EAAa/S,IAGXgU,mBACM,aAAfnmB,KAAK0W,OAAuC,aAAfuO,EAAKvO,YAGhCvE,EAAQgU,oBACVnmB,KAAK0W,MAAM0P,WAAW,WAAanB,EAAKvO,MAAM0P,WAAW,iBAKxDpmB,KAAKslB,SAASc,WAAW,OAAQnB,EAAKK,SAASc,WAAW,WAI1DpmB,KAAKslB,SAASc,WAAW,OAAQnB,EAAKK,SAASc,WAAW,UAK3DpmB,KAAKqlB,OAAO1a,UAAYsa,EAAKI,OAAO1a,UACrC3K,KAAKslB,SAASe,SAAS,OAAQpB,EAAKK,SAASe,SAAS,WAIpDL,EAAIhmB,KAAKqlB,OAAQ,IAAKJ,EAAKI,OAAQlT,IACrCnS,KAAKslB,SAASc,WAAW,MAAQnB,EAAKK,SAASc,WAAW,UAIxDJ,EAAIhmB,KAAKqlB,OAAQ,IAAKJ,EAAKI,OAAQlT,IACrCnS,KAAKslB,SAASc,WAAW,MAAQnB,EAAKK,SAASc,WAAW,UAI9D,EAGFE,EAAOC,QAAUvB,EAEjB,MAAME,EAAe,EAAQ,MACrBsB,OAAQhB,EAAE,EAAEC,GAAM,EAAQ,MAC5BO,EAAM,EAAQ,MACd9G,EAAQ,EAAQ,MAChB2G,EAAS,EAAQ,MACjBK,EAAQ,EAAQ,K,uBC5ItB,MAAMO,EAAmB,OAGzB,MAAMP,EACJ,WAAAxmB,CAAagnB,EAAOvU,GAGlB,GAFAA,EAAU+S,EAAa/S,GAEnBuU,aAAiBR,EACnB,OACEQ,EAAMvB,UAAYhT,EAAQgT,OAC1BuB,EAAMP,sBAAwBhU,EAAQgU,kBAE/BO,EAEA,IAAIR,EAAMQ,EAAMC,IAAKxU,GAIhC,GAAIuU,aAAiB1B,EAKnB,OAHAhlB,KAAK2mB,IAAMD,EAAMhQ,MACjB1W,KAAKoe,IAAM,CAAC,CAACsI,IACb1mB,KAAK4mB,eAAY/f,EACV7G,KAsBT,GAnBAA,KAAKmS,QAAUA,EACfnS,KAAKmlB,QAAUhT,EAAQgT,MACvBnlB,KAAKmmB,oBAAsBhU,EAAQgU,kBAKnCnmB,KAAK2mB,IAAMD,EAAMtB,OAAO3M,QAAQgO,EAAkB,KAGlDzmB,KAAKoe,IAAMpe,KAAK2mB,IACbpF,MAAM,MAENnF,KAAImJ,GAAKvlB,KAAK6mB,WAAWtB,EAAEH,UAI3B0B,QAAO/W,GAAKA,EAAEtN,UAEZzC,KAAKoe,IAAI3b,OACZ,MAAM,IAAImjB,UAAU,yBAAyB5lB,KAAK2mB,OAIpD,GAAI3mB,KAAKoe,IAAI3b,OAAS,EAAG,CAEvB,MAAMskB,EAAQ/mB,KAAKoe,IAAI,GAEvB,GADApe,KAAKoe,IAAMpe,KAAKoe,IAAI0I,QAAO/W,IAAMiX,EAAUjX,EAAE,MACrB,IAApB/P,KAAKoe,IAAI3b,OACXzC,KAAKoe,IAAM,CAAC2I,QACP,GAAI/mB,KAAKoe,IAAI3b,OAAS,EAE3B,IAAK,MAAMsN,KAAK/P,KAAKoe,IACnB,GAAiB,IAAbrO,EAAEtN,QAAgBwkB,EAAMlX,EAAE,IAAK,CACjC/P,KAAKoe,IAAM,CAACrO,GACZ,KACF,CAGN,CAEA/P,KAAK4mB,eAAY/f,CACnB,CAEA,SAAI6f,GACF,QAAuB7f,IAAnB7G,KAAK4mB,UAAyB,CAChC5mB,KAAK4mB,UAAY,GACjB,IAAK,IAAI1V,EAAI,EAAGA,EAAIlR,KAAKoe,IAAI3b,OAAQyO,IAAK,CACpCA,EAAI,IACNlR,KAAK4mB,WAAa,MAEpB,MAAMM,EAAQlnB,KAAKoe,IAAIlN,GACvB,IAAK,IAAIiW,EAAI,EAAGA,EAAID,EAAMzkB,OAAQ0kB,IAC5BA,EAAI,IACNnnB,KAAK4mB,WAAa,KAEpB5mB,KAAK4mB,WAAaM,EAAMC,GAAG7W,WAAW8U,MAE1C,CACF,CACA,OAAOplB,KAAK4mB,SACd,CAEA,MAAAQ,GACE,OAAOpnB,KAAK0mB,KACd,CAEA,QAAApW,GACE,OAAOtQ,KAAK0mB,KACd,CAEA,UAAAG,CAAYH,GAGV,MAGMW,IAFHrnB,KAAKmS,QAAQgU,mBAAqBmB,IAClCtnB,KAAKmS,QAAQgT,OAASoC,IACE,IAAMb,EAC3Bc,EAAStT,EAAMhC,IAAImV,GACzB,GAAIG,EACF,OAAOA,EAGT,MAAMrC,EAAQnlB,KAAKmS,QAAQgT,MAErBsC,EAAKtC,EAAQK,EAAGC,EAAEiC,kBAAoBlC,EAAGC,EAAEkC,aACjDjB,EAAQA,EAAMjO,QAAQgP,EAAIG,EAAc5nB,KAAKmS,QAAQgU,oBACrDjH,EAAM,iBAAkBwH,GAGxBA,EAAQA,EAAMjO,QAAQ+M,EAAGC,EAAEoC,gBAAiBC,GAC5C5I,EAAM,kBAAmBwH,GAGzBA,EAAQA,EAAMjO,QAAQ+M,EAAGC,EAAEsC,WAAYC,GACvC9I,EAAM,aAAcwH,GAGpBA,EAAQA,EAAMjO,QAAQ+M,EAAGC,EAAEwC,WAAYC,GACvChJ,EAAM,aAAcwH,GAKpB,IAAIyB,EAAYzB,EACbnF,MAAM,KACNnF,KAAI6I,GAAQmD,EAAgBnD,EAAMjlB,KAAKmS,WACvC4C,KAAK,KACLwM,MAAM,OAENnF,KAAI6I,GAAQoD,EAAYpD,EAAMjlB,KAAKmS,WAElCgT,IAEFgD,EAAYA,EAAUrB,QAAO7B,IAC3B/F,EAAM,uBAAwB+F,EAAMjlB,KAAKmS,WAChC8S,EAAKrD,MAAM4D,EAAGC,EAAEC,sBAG7BxG,EAAM,aAAciJ,GAKpB,MAAMG,EAAW,IAAIC,IACfC,EAAcL,EAAU/L,KAAI6I,GAAQ,IAAID,EAAWC,EAAMjlB,KAAKmS,WACpE,IAAK,MAAM8S,KAAQuD,EAAa,CAC9B,GAAIxB,EAAU/B,GACZ,MAAO,CAACA,GAEVqD,EAASlK,IAAI6G,EAAKvO,MAAOuO,EAC3B,CACIqD,EAASG,KAAO,GAAKH,EAASvL,IAAI,KACpCuL,EAASnR,OAAO,IAGlB,MAAM3J,EAAS,IAAI8a,EAASzG,UAE5B,OADA3N,EAAMkK,IAAIiJ,EAAS7Z,GACZA,CACT,CAEA,UAAAyY,CAAYS,EAAOvU,GACjB,KAAMuU,aAAiBR,GACrB,MAAM,IAAIN,UAAU,uBAGtB,OAAO5lB,KAAKoe,IAAIsK,MAAMC,GAElBC,EAAcD,EAAiBxW,IAC/BuU,EAAMtI,IAAIsK,MAAMG,GAEZD,EAAcC,EAAkB1W,IAChCwW,EAAgBG,OAAOC,GACdF,EAAiBC,OAAOE,GACtBD,EAAe9C,WAAW+C,EAAiB7W,UAOhE,CAGA,IAAA2T,CAAMnb,GACJ,IAAKA,EACH,OAAO,EAGT,GAAuB,iBAAZA,EACT,IACEA,EAAU,IAAIkb,EAAOlb,EAAS3K,KAAKmS,QACrC,CAAE,MAAO4T,GACP,OAAO,CACT,CAGF,IAAK,IAAI7U,EAAI,EAAGA,EAAIlR,KAAKoe,IAAI3b,OAAQyO,IACnC,GAAI+X,EAAQjpB,KAAKoe,IAAIlN,GAAIvG,EAAS3K,KAAKmS,SACrC,OAAO,EAGX,OAAO,CACT,EAGFmU,EAAOC,QAAUL,EAEjB,MACMhS,EAAQ,IADF,EAAQ,OAGdgR,EAAe,EAAQ,KACvBF,EAAa,EAAQ,MACrB9F,EAAQ,EAAQ,MAChB2G,EAAS,EAAQ,OAErBW,OAAQhB,EAAE,EACVC,EAAC,sBACDqC,EAAqB,iBACrBE,EAAgB,iBAChBE,GACE,EAAQ,OACN,wBAAEZ,EAAuB,WAAEC,GAAe,EAAQ,MAElDP,EAAYjX,GAAiB,aAAZA,EAAE2G,MACnBuQ,EAAQlX,GAAiB,KAAZA,EAAE2G,MAIfkS,EAAgB,CAACJ,EAAarW,KAClC,IAAI3E,GAAS,EACb,MAAM0b,EAAuBV,EAAYtmB,QACzC,IAAIinB,EAAiBD,EAAqB1H,MAE1C,KAAOhU,GAAU0b,EAAqBzmB,QACpC+K,EAAS0b,EAAqBJ,OAAOM,GAC5BD,EAAelD,WAAWmD,EAAiBjX,KAGpDgX,EAAiBD,EAAqB1H,MAGxC,OAAOhU,GAMH4a,EAAkB,CAACnD,EAAM9S,KAC7B+M,EAAM,OAAQ+F,EAAM9S,GACpB8S,EAAOoE,EAAcpE,EAAM9S,GAC3B+M,EAAM,QAAS+F,GACfA,EAAOqE,EAAcrE,EAAM9S,GAC3B+M,EAAM,SAAU+F,GAChBA,EAAOsE,EAAetE,EAAM9S,GAC5B+M,EAAM,SAAU+F,GAChBA,EAAOuE,EAAavE,EAAM9S,GAC1B+M,EAAM,QAAS+F,GACRA,GAGHwE,EAAMviB,IAAOA,GAA2B,MAArBA,EAAGyG,eAAgC,MAAPzG,EAS/CoiB,EAAgB,CAACrE,EAAM9S,IACpB8S,EACJG,OACA7D,MAAM,OACNnF,KAAKrM,GAAM2Z,EAAa3Z,EAAGoC,KAC3B4C,KAAK,KAGJ2U,EAAe,CAACzE,EAAM9S,KAC1B,MAAMoT,EAAIpT,EAAQgT,MAAQK,EAAGC,EAAEkE,YAAcnE,EAAGC,EAAEmE,OAClD,OAAO3E,EAAKxM,QAAQ8M,GAAG,CAAClC,EAAGwG,EAAGra,EAAGsa,EAAGC,KAElC,IAAIC,EAoBJ,OArBA9K,EAAM,QAAS+F,EAAM5B,EAAGwG,EAAGra,EAAGsa,EAAGC,GAG7BN,EAAII,GACNG,EAAM,GACGP,EAAIja,GACbwa,EAAM,KAAKH,WAAWA,EAAI,UACjBJ,EAAIK,GAEbE,EAAM,KAAKH,KAAKra,QAAQqa,MAAMra,EAAI,QACzBua,GACT7K,EAAM,kBAAmB6K,GACzBC,EAAM,KAAKH,KAAKra,KAAKsa,KAAKC,MACrBF,MAAMra,EAAI,SAGfwa,EAAM,KAAKH,KAAKra,KAAKsa,MAChBD,MAAMra,EAAI,QAGjB0P,EAAM,eAAgB8K,GACfA,IACR,EAWGX,EAAgB,CAACpE,EAAM9S,IACpB8S,EACJG,OACA7D,MAAM,OACNnF,KAAKrM,GAAMka,EAAala,EAAGoC,KAC3B4C,KAAK,KAGJkV,EAAe,CAAChF,EAAM9S,KAC1B+M,EAAM,QAAS+F,EAAM9S,GACrB,MAAMoT,EAAIpT,EAAQgT,MAAQK,EAAGC,EAAEyE,YAAc1E,EAAGC,EAAE0E,OAC5CC,EAAIjY,EAAQgU,kBAAoB,KAAO,GAC7C,OAAOlB,EAAKxM,QAAQ8M,GAAG,CAAClC,EAAGwG,EAAGra,EAAGsa,EAAGC,KAElC,IAAIC,EA2CJ,OA5CA9K,EAAM,QAAS+F,EAAM5B,EAAGwG,EAAGra,EAAGsa,EAAGC,GAG7BN,EAAII,GACNG,EAAM,GACGP,EAAIja,GACbwa,EAAM,KAAKH,QAAQO,OAAOP,EAAI,UACrBJ,EAAIK,GAEXE,EADQ,MAANH,EACI,KAAKA,KAAKra,MAAM4a,MAAMP,MAAMra,EAAI,QAEhC,KAAKqa,KAAKra,MAAM4a,OAAOP,EAAI,UAE1BE,GACT7K,EAAM,kBAAmB6K,GAGrBC,EAFM,MAANH,EACQ,MAANra,EACI,KAAKqa,KAAKra,KAAKsa,KAAKC,MACrBF,KAAKra,MAAMsa,EAAI,MAEd,KAAKD,KAAKra,KAAKsa,KAAKC,MACrBF,MAAMra,EAAI,QAGX,KAAKqa,KAAKra,KAAKsa,KAAKC,OACpBF,EAAI,YAGZ3K,EAAM,SAGF8K,EAFM,MAANH,EACQ,MAANra,EACI,KAAKqa,KAAKra,KAAKsa,IAClBM,MAAMP,KAAKra,MAAMsa,EAAI,MAElB,KAAKD,KAAKra,KAAKsa,IAClBM,MAAMP,MAAMra,EAAI,QAGf,KAAKqa,KAAKra,KAAKsa,OACfD,EAAI,WAId3K,EAAM,eAAgB8K,GACfA,IACR,EAGGT,EAAiB,CAACtE,EAAM9S,KAC5B+M,EAAM,iBAAkB+F,EAAM9S,GACvB8S,EACJ1D,MAAM,OACNnF,KAAKrM,GAAMsa,EAActa,EAAGoC,KAC5B4C,KAAK,MAGJsV,EAAgB,CAACpF,EAAM9S,KAC3B8S,EAAOA,EAAKG,OACZ,MAAMG,EAAIpT,EAAQgT,MAAQK,EAAGC,EAAE6E,aAAe9E,EAAGC,EAAE8E,QACnD,OAAOtF,EAAKxM,QAAQ8M,GAAG,CAACyE,EAAKQ,EAAMX,EAAGra,EAAGsa,EAAGC,KAC1C7K,EAAM,SAAU+F,EAAM+E,EAAKQ,EAAMX,EAAGra,EAAGsa,EAAGC,GAC1C,MAAMU,EAAKhB,EAAII,GACTa,EAAKD,GAAMhB,EAAIja,GACfmb,EAAKD,GAAMjB,EAAIK,GACfc,EAAOD,EA+Db,MA7Da,MAATH,GAAgBI,IAClBJ,EAAO,IAKTT,EAAK5X,EAAQgU,kBAAoB,KAAO,GAEpCsE,EAGAT,EAFW,MAATQ,GAAyB,MAATA,EAEZ,WAGA,IAECA,GAAQI,GAGbF,IACFlb,EAAI,GAENsa,EAAI,EAES,MAATU,GAGFA,EAAO,KACHE,GACFb,GAAKA,EAAI,EACTra,EAAI,EACJsa,EAAI,IAEJta,GAAKA,EAAI,EACTsa,EAAI,IAEY,OAATU,IAGTA,EAAO,IACHE,EACFb,GAAKA,EAAI,EAETra,GAAKA,EAAI,GAIA,MAATgb,IACFT,EAAK,MAGPC,EAAM,GAAGQ,EAAOX,KAAKra,KAAKsa,IAAIC,KACrBW,EACTV,EAAM,KAAKH,QAAQE,OAAQF,EAAI,UACtBc,IACTX,EAAM,KAAKH,KAAKra,MAAMua,MACjBF,MAAMra,EAAI,SAGjB0P,EAAM,gBAAiB8K,GAEhBA,IACR,EAKGR,EAAe,CAACvE,EAAM9S,KAC1B+M,EAAM,eAAgB+F,EAAM9S,GAErB8S,EACJG,OACA3M,QAAQ+M,EAAGC,EAAEoF,MAAO,KAGnBxC,EAAc,CAACpD,EAAM9S,KACzB+M,EAAM,cAAe+F,EAAM9S,GACpB8S,EACJG,OACA3M,QAAQ+M,EAAGrT,EAAQgU,kBAAoBV,EAAEqF,QAAUrF,EAAEsF,MAAO,KAS3DnD,EAAgBoD,GAAS,CAACC,EAC9BC,EAAMC,EAAIC,EAAIC,EAAIC,EAAKC,EACvBC,EAAIC,EAAIC,EAAIC,EAAIC,IA2BT,GAzBLV,EADEzB,EAAI0B,GACC,GACE1B,EAAI2B,GACN,KAAKD,QAASH,EAAQ,KAAO,KAC3BvB,EAAI4B,GACN,KAAKF,KAAMC,MAAOJ,EAAQ,KAAO,KAC/BM,EACF,KAAKJ,IAEL,KAAKA,IAAOF,EAAQ,KAAO,QAIlCQ,EADE/B,EAAIgC,GACD,GACIhC,EAAIiC,GACR,KAAKD,EAAK,UACNhC,EAAIkC,GACR,IAAIF,MAAOC,EAAK,QACZE,EACJ,KAAKH,KAAMC,KAAMC,KAAMC,IACnBZ,EACJ,IAAIS,KAAMC,MAAOC,EAAK,MAEtB,KAAKH,MAGWpG,OAGnB6D,EAAU,CAAC7K,EAAKzT,EAASwH,KAC7B,IAAK,IAAIjB,EAAI,EAAGA,EAAIkN,EAAI3b,OAAQyO,IAC9B,IAAKkN,EAAIlN,GAAG4U,KAAKnb,GACf,OAAO,EAIX,GAAIA,EAAQkhB,WAAWppB,SAAW0P,EAAQgU,kBAAmB,CAM3D,IAAK,IAAIjV,EAAI,EAAGA,EAAIkN,EAAI3b,OAAQyO,IAE9B,GADAgO,EAAMd,EAAIlN,GAAGmU,QACTjH,EAAIlN,GAAGmU,SAAWL,EAAWF,KAI7B1G,EAAIlN,GAAGmU,OAAOwG,WAAWppB,OAAS,EAAG,CACvC,MAAMqpB,EAAU1N,EAAIlN,GAAGmU,OACvB,GAAIyG,EAAQC,QAAUphB,EAAQohB,OAC1BD,EAAQE,QAAUrhB,EAAQqhB,OAC1BF,EAAQG,QAAUthB,EAAQshB,MAC5B,OAAO,CAEX,CAIF,OAAO,CACT,CAEA,OAAO,E,uBCxiBT,MAAM/M,EAAQ,EAAQ,OAChB,WAAEgN,EAAU,iBAAEC,GAAqB,EAAQ,OACzC3F,OAAQhB,EAAE,EAAEC,GAAM,EAAQ,MAE5BP,EAAe,EAAQ,MACvB,mBAAEkH,GAAuB,EAAQ,MACvC,MAAMvG,EACJ,WAAAnmB,CAAaiL,EAASwH,GAGpB,GAFAA,EAAU+S,EAAa/S,GAEnBxH,aAAmBkb,EAAQ,CAC7B,GAAIlb,EAAQwa,UAAYhT,EAAQgT,OAC5Bxa,EAAQwb,sBAAwBhU,EAAQgU,kBAC1C,OAAOxb,EAEPA,EAAUA,EAAQA,OAEtB,MAAO,GAAuB,iBAAZA,EAChB,MAAM,IAAIib,UAAU,uDAAuDjb,OAG7E,GAAIA,EAAQlI,OAASypB,EACnB,MAAM,IAAItG,UACR,0BAA0BsG,gBAI9BhN,EAAM,SAAUvU,EAASwH,GACzBnS,KAAKmS,QAAUA,EACfnS,KAAKmlB,QAAUhT,EAAQgT,MAGvBnlB,KAAKmmB,oBAAsBhU,EAAQgU,kBAEnC,MAAM3W,EAAI7E,EAAQya,OAAOxD,MAAMzP,EAAQgT,MAAQK,EAAGC,EAAE4G,OAAS7G,EAAGC,EAAE6G,OAElE,IAAK9c,EACH,MAAM,IAAIoW,UAAU,oBAAoBjb,KAU1C,GAPA3K,KAAK2mB,IAAMhc,EAGX3K,KAAK+rB,OAASvc,EAAE,GAChBxP,KAAKgsB,OAASxc,EAAE,GAChBxP,KAAKisB,OAASzc,EAAE,GAEZxP,KAAK+rB,MAAQI,GAAoBnsB,KAAK+rB,MAAQ,EAChD,MAAM,IAAInG,UAAU,yBAGtB,GAAI5lB,KAAKgsB,MAAQG,GAAoBnsB,KAAKgsB,MAAQ,EAChD,MAAM,IAAIpG,UAAU,yBAGtB,GAAI5lB,KAAKisB,MAAQE,GAAoBnsB,KAAKisB,MAAQ,EAChD,MAAM,IAAIrG,UAAU,yBAIjBpW,EAAE,GAGLxP,KAAK6rB,WAAarc,EAAE,GAAG+R,MAAM,KAAKnF,KAAKlV,IACrC,GAAI,WAAW4e,KAAK5e,GAAK,CACvB,MAAMsb,GAAOtb,EACb,GAAIsb,GAAO,GAAKA,EAAM2J,EACpB,OAAO3J,CAEX,CACA,OAAOtb,KATTlH,KAAK6rB,WAAa,GAapB7rB,KAAK+gB,MAAQvR,EAAE,GAAKA,EAAE,GAAG+R,MAAM,KAAO,GACtCvhB,KAAKonB,QACP,CAEA,MAAAA,GAKE,OAJApnB,KAAK2K,QAAU,GAAG3K,KAAK+rB,SAAS/rB,KAAKgsB,SAAShsB,KAAKisB,QAC/CjsB,KAAK6rB,WAAWppB,SAClBzC,KAAK2K,SAAW,IAAI3K,KAAK6rB,WAAW9W,KAAK,QAEpC/U,KAAK2K,OACd,CAEA,QAAA2F,GACE,OAAOtQ,KAAK2K,OACd,CAEA,OAAA4hB,CAASC,GAEP,GADAtN,EAAM,iBAAkBlf,KAAK2K,QAAS3K,KAAKmS,QAASqa,KAC9CA,aAAiB3G,GAAS,CAC9B,GAAqB,iBAAV2G,GAAsBA,IAAUxsB,KAAK2K,QAC9C,OAAO,EAET6hB,EAAQ,IAAI3G,EAAO2G,EAAOxsB,KAAKmS,QACjC,CAEA,OAAIqa,EAAM7hB,UAAY3K,KAAK2K,QAClB,EAGF3K,KAAKysB,YAAYD,IAAUxsB,KAAK0sB,WAAWF,EACpD,CAEA,WAAAC,CAAaD,GAKX,OAJMA,aAAiB3G,IACrB2G,EAAQ,IAAI3G,EAAO2G,EAAOxsB,KAAKmS,UAI/Bia,EAAmBpsB,KAAK+rB,MAAOS,EAAMT,QACrCK,EAAmBpsB,KAAKgsB,MAAOQ,EAAMR,QACrCI,EAAmBpsB,KAAKisB,MAAOO,EAAMP,MAEzC,CAEA,UAAAS,CAAYF,GAMV,GALMA,aAAiB3G,IACrB2G,EAAQ,IAAI3G,EAAO2G,EAAOxsB,KAAKmS,UAI7BnS,KAAK6rB,WAAWppB,SAAW+pB,EAAMX,WAAWppB,OAC9C,OAAQ,EACH,IAAKzC,KAAK6rB,WAAWppB,QAAU+pB,EAAMX,WAAWppB,OACrD,OAAO,EACF,IAAKzC,KAAK6rB,WAAWppB,SAAW+pB,EAAMX,WAAWppB,OACtD,OAAO,EAGT,IAAIyO,EAAI,EACR,EAAG,CACD,MAAMgN,EAAIle,KAAK6rB,WAAW3a,GACpB8M,EAAIwO,EAAMX,WAAW3a,GAE3B,GADAgO,EAAM,qBAAsBhO,EAAGgN,EAAGF,QACxBnX,IAANqX,QAAyBrX,IAANmX,EACrB,OAAO,EACF,QAAUnX,IAANmX,EACT,OAAO,EACF,QAAUnX,IAANqX,EACT,OAAQ,EACH,GAAIA,IAAMF,EAGf,OAAOoO,EAAmBlO,EAAGF,EAEjC,SAAW9M,EACb,CAEA,YAAAyb,CAAcH,GACNA,aAAiB3G,IACrB2G,EAAQ,IAAI3G,EAAO2G,EAAOxsB,KAAKmS,UAGjC,IAAIjB,EAAI,EACR,EAAG,CACD,MAAMgN,EAAIle,KAAK+gB,MAAM7P,GACf8M,EAAIwO,EAAMzL,MAAM7P,GAEtB,GADAgO,EAAM,gBAAiBhO,EAAGgN,EAAGF,QACnBnX,IAANqX,QAAyBrX,IAANmX,EACrB,OAAO,EACF,QAAUnX,IAANmX,EACT,OAAO,EACF,QAAUnX,IAANqX,EACT,OAAQ,EACH,GAAIA,IAAMF,EAGf,OAAOoO,EAAmBlO,EAAGF,EAEjC,SAAW9M,EACb,CAIA,GAAA0b,CAAK3K,EAAS4K,EAAYC,GACxB,OAAQ7K,GACN,IAAK,WACHjiB,KAAK6rB,WAAWppB,OAAS,EACzBzC,KAAKisB,MAAQ,EACbjsB,KAAKgsB,MAAQ,EACbhsB,KAAK+rB,QACL/rB,KAAK4sB,IAAI,MAAOC,EAAYC,GAC5B,MACF,IAAK,WACH9sB,KAAK6rB,WAAWppB,OAAS,EACzBzC,KAAKisB,MAAQ,EACbjsB,KAAKgsB,QACLhsB,KAAK4sB,IAAI,MAAOC,EAAYC,GAC5B,MACF,IAAK,WAIH9sB,KAAK6rB,WAAWppB,OAAS,EACzBzC,KAAK4sB,IAAI,QAASC,EAAYC,GAC9B9sB,KAAK4sB,IAAI,MAAOC,EAAYC,GAC5B,MAGF,IAAK,aAC4B,IAA3B9sB,KAAK6rB,WAAWppB,QAClBzC,KAAK4sB,IAAI,QAASC,EAAYC,GAEhC9sB,KAAK4sB,IAAI,MAAOC,EAAYC,GAC5B,MAEF,IAAK,QAMc,IAAf9sB,KAAKgsB,OACU,IAAfhsB,KAAKisB,OACsB,IAA3BjsB,KAAK6rB,WAAWppB,QAEhBzC,KAAK+rB,QAEP/rB,KAAKgsB,MAAQ,EACbhsB,KAAKisB,MAAQ,EACbjsB,KAAK6rB,WAAa,GAClB,MACF,IAAK,QAKgB,IAAf7rB,KAAKisB,OAA0C,IAA3BjsB,KAAK6rB,WAAWppB,QACtCzC,KAAKgsB,QAEPhsB,KAAKisB,MAAQ,EACbjsB,KAAK6rB,WAAa,GAClB,MACF,IAAK,QAK4B,IAA3B7rB,KAAK6rB,WAAWppB,QAClBzC,KAAKisB,QAEPjsB,KAAK6rB,WAAa,GAClB,MAGF,IAAK,MAAO,CACV,MAAMkB,EAAOC,OAAOF,GAAkB,EAAI,EAE1C,IAAKD,IAAiC,IAAnBC,EACjB,MAAM,IAAIrtB,MAAM,mDAGlB,GAA+B,IAA3BO,KAAK6rB,WAAWppB,OAClBzC,KAAK6rB,WAAa,CAACkB,OACd,CACL,IAAI7b,EAAIlR,KAAK6rB,WAAWppB,OACxB,OAASyO,GAAK,GACsB,iBAAvBlR,KAAK6rB,WAAW3a,KACzBlR,KAAK6rB,WAAW3a,KAChBA,GAAK,GAGT,IAAW,IAAPA,EAAU,CAEZ,GAAI2b,IAAe7sB,KAAK6rB,WAAW9W,KAAK,OAA2B,IAAnB+X,EAC9C,MAAM,IAAIrtB,MAAM,yDAElBO,KAAK6rB,WAAWtoB,KAAKwpB,EACvB,CACF,CACA,GAAIF,EAAY,CAGd,IAAIhB,EAAa,CAACgB,EAAYE,IACP,IAAnBD,IACFjB,EAAa,CAACgB,IAE2C,IAAvDT,EAAmBpsB,KAAK6rB,WAAW,GAAIgB,GACrCI,MAAMjtB,KAAK6rB,WAAW,MACxB7rB,KAAK6rB,WAAaA,GAGpB7rB,KAAK6rB,WAAaA,CAEtB,CACA,KACF,CACA,QACE,MAAM,IAAIpsB,MAAM,+BAA+BwiB,KAMnD,OAJAjiB,KAAK2mB,IAAM3mB,KAAKonB,SACZpnB,KAAK+gB,MAAMte,SACbzC,KAAK2mB,KAAO,IAAI3mB,KAAK+gB,MAAMhM,KAAK,QAE3B/U,IACT,EAGFsmB,EAAOC,QAAUV,C,uBC7SjB,MAAMljB,EAAQ,EAAQ,KAKtB2jB,EAAOC,QAJO,CAAC5b,EAASwH,KACtB,MAAMkK,EAAI1Z,EAAMgI,EAAQya,OAAO3M,QAAQ,SAAU,IAAKtG,GACtD,OAAOkK,EAAIA,EAAE1R,QAAU,K,uBCHzB,MAAMuiB,EAAK,EAAQ,MACbC,EAAM,EAAQ,MACdC,EAAK,EAAQ,MACbC,EAAM,EAAQ,MACdC,EAAK,EAAQ,MACbC,EAAM,EAAQ,MA8CpBjH,EAAOC,QA5CK,CAACrI,EAAGsP,EAAIxP,EAAGmH,KACrB,OAAQqI,GACN,IAAK,MAOH,MANiB,iBAANtP,IACTA,EAAIA,EAAEvT,SAES,iBAANqT,IACTA,EAAIA,EAAErT,SAEDuT,IAAMF,EAEf,IAAK,MAOH,MANiB,iBAANE,IACTA,EAAIA,EAAEvT,SAES,iBAANqT,IACTA,EAAIA,EAAErT,SAEDuT,IAAMF,EAEf,IAAK,GACL,IAAK,IACL,IAAK,KACH,OAAOkP,EAAGhP,EAAGF,EAAGmH,GAElB,IAAK,KACH,OAAOgI,EAAIjP,EAAGF,EAAGmH,GAEnB,IAAK,IACH,OAAOiI,EAAGlP,EAAGF,EAAGmH,GAElB,IAAK,KACH,OAAOkI,EAAInP,EAAGF,EAAGmH,GAEnB,IAAK,IACH,OAAOmI,EAAGpP,EAAGF,EAAGmH,GAElB,IAAK,KACH,OAAOoI,EAAIrP,EAAGF,EAAGmH,GAEnB,QACE,MAAM,IAAIS,UAAU,qBAAqB4H,KAC7C,C,uBCjDF,MAAM3H,EAAS,EAAQ,MACjBljB,EAAQ,EAAQ,MACd6jB,OAAQhB,EAAE,EAAEC,GAAM,EAAQ,MAyDlCa,EAAOC,QAvDQ,CAAC5b,EAASwH,KACvB,GAAIxH,aAAmBkb,EACrB,OAAOlb,EAOT,GAJuB,iBAAZA,IACTA,EAAU7I,OAAO6I,IAGI,iBAAZA,EACT,OAAO,KAKT,IAAIiX,EAAQ,KACZ,IAHAzP,EAAUA,GAAW,CAAC,GAGTsb,IAEN,CAUL,MAAMC,EAAiBvb,EAAQgU,kBAAoBX,EAAGC,EAAEkI,eAAiBnI,EAAGC,EAAEmI,WAC9E,IAAI5qB,EACJ,MAAQA,EAAO0qB,EAAeG,KAAKljB,OAC7BiX,GAASA,EAAMtc,MAAQsc,EAAM,GAAGnf,SAAWkI,EAAQlI,SAElDmf,GACC5e,EAAKsC,MAAQtC,EAAK,GAAGP,SAAWmf,EAAMtc,MAAQsc,EAAM,GAAGnf,SAC3Dmf,EAAQ5e,GAEV0qB,EAAeI,UAAY9qB,EAAKsC,MAAQtC,EAAK,GAAGP,OAASO,EAAK,GAAGP,OAGnEirB,EAAeI,WAAa,CAC9B,MAxBElM,EAAQjX,EAAQiX,MAAMzP,EAAQgU,kBAAoBX,EAAGC,EAAEsI,YAAcvI,EAAGC,EAAEuI,SA0B5E,GAAc,OAAVpM,EACF,OAAO,KAGT,MAAMmK,EAAQnK,EAAM,GACdoK,EAAQpK,EAAM,IAAM,IACpBqK,EAAQrK,EAAM,IAAM,IACpBiK,EAAa1Z,EAAQgU,mBAAqBvE,EAAM,GAAK,IAAIA,EAAM,KAAO,GACtEb,EAAQ5O,EAAQgU,mBAAqBvE,EAAM,GAAK,IAAIA,EAAM,KAAO,GAEvE,OAAOjf,EAAM,GAAGopB,KAASC,KAASC,IAAQJ,IAAa9K,IAAS5O,EAAO,C,sBCzDzE,MAAM0T,EAAS,EAAQ,MAMvBS,EAAOC,QALc,CAACrI,EAAGF,EAAGmH,KAC1B,MAAM8I,EAAW,IAAIpI,EAAO3H,EAAGiH,GACzB+I,EAAW,IAAIrI,EAAO7H,EAAGmH,GAC/B,OAAO8I,EAAS1B,QAAQ2B,IAAaD,EAAStB,aAAauB,EAAQ,C,uBCJrE,MAAM3B,EAAU,EAAQ,KAExBjG,EAAOC,QADc,CAACrI,EAAGF,IAAMuO,EAAQrO,EAAGF,GAAG,E,sBCD7C,MAAM6H,EAAS,EAAQ,MAIvBS,EAAOC,QAHS,CAACrI,EAAGF,EAAGmH,IACrB,IAAIU,EAAO3H,EAAGiH,GAAOoH,QAAQ,IAAI1G,EAAO7H,EAAGmH,G,uBCF7C,MAAMxiB,EAAQ,EAAQ,KAgEtB2jB,EAAOC,QA9DM,CAAC4H,EAAUC,KACtB,MAAMC,EAAK1rB,EAAMwrB,EAAU,MAAM,GAC3BG,EAAK3rB,EAAMyrB,EAAU,MAAM,GAC3BG,EAAaF,EAAG9B,QAAQ+B,GAE9B,GAAmB,IAAfC,EACF,OAAO,KAGT,MAAMC,EAAWD,EAAa,EACxBE,EAAcD,EAAWH,EAAKC,EAC9BI,EAAaF,EAAWF,EAAKD,EAC7BM,IAAeF,EAAY5C,WAAWppB,OAG5C,KAFoBisB,EAAW7C,WAAWppB,SAExBksB,EAQhB,OAAKD,EAAWzC,OAAUyC,EAAW1C,MAMjCyC,EAAYxC,MAEP,QAGLwC,EAAYzC,MAEP,QAIF,QAhBE,QAoBX,MAAM4C,EAASD,EAAa,MAAQ,GAEpC,OAAIN,EAAGtC,QAAUuC,EAAGvC,MACX6C,EAAS,QAGdP,EAAGrC,QAAUsC,EAAGtC,MACX4C,EAAS,QAGdP,EAAGpC,QAAUqC,EAAGrC,MACX2C,EAAS,QAIX,a,uBC7DT,MAAMrC,EAAU,EAAQ,KAExBjG,EAAOC,QADI,CAACrI,EAAGF,EAAGmH,IAAmC,IAAzBoH,EAAQrO,EAAGF,EAAGmH,E,uBCD1C,MAAMoH,EAAU,EAAQ,KAExBjG,EAAOC,QADI,CAACrI,EAAGF,EAAGmH,IAAUoH,EAAQrO,EAAGF,EAAGmH,GAAS,C,uBCDnD,MAAMoH,EAAU,EAAQ,KAExBjG,EAAOC,QADK,CAACrI,EAAGF,EAAGmH,IAAUoH,EAAQrO,EAAGF,EAAGmH,IAAU,C,uBCDrD,MAAMU,EAAS,EAAQ,MAkBvBS,EAAOC,QAhBK,CAAC5b,EAASsX,EAAS9P,EAAS0a,EAAYC,KACzB,iBAAd,IACTA,EAAiBD,EACjBA,EAAa1a,EACbA,OAAUtL,GAGZ,IACE,OAAO,IAAIgf,EACTlb,aAAmBkb,EAASlb,EAAQA,QAAUA,EAC9CwH,GACAya,IAAI3K,EAAS4K,EAAYC,GAAgBniB,OAC7C,CAAE,MAAOob,GACP,OAAO,IACT,E,uBChBF,MAAMwG,EAAU,EAAQ,KAExBjG,EAAOC,QADI,CAACrI,EAAGF,EAAGmH,IAAUoH,EAAQrO,EAAGF,EAAGmH,GAAS,C,uBCDnD,MAAMoH,EAAU,EAAQ,KAExBjG,EAAOC,QADK,CAACrI,EAAGF,EAAGmH,IAAUoH,EAAQrO,EAAGF,EAAGmH,IAAU,C,uBCDrD,MAAMU,EAAS,EAAQ,MAEvBS,EAAOC,QADO,CAACrI,EAAGiH,IAAU,IAAIU,EAAO3H,EAAGiH,GAAO4G,K,uBCDjD,MAAMlG,EAAS,EAAQ,MAEvBS,EAAOC,QADO,CAACrI,EAAGiH,IAAU,IAAIU,EAAO3H,EAAGiH,GAAO6G,K,uBCDjD,MAAMO,EAAU,EAAQ,KAExBjG,EAAOC,QADK,CAACrI,EAAGF,EAAGmH,IAAmC,IAAzBoH,EAAQrO,EAAGF,EAAGmH,E,sBCD3C,MAAMU,EAAS,EAAQ,MAevBS,EAAOC,QAdO,CAAC5b,EAASwH,EAAS0c,GAAc,KAC7C,GAAIlkB,aAAmBkb,EACrB,OAAOlb,EAET,IACE,OAAO,IAAIkb,EAAOlb,EAASwH,EAC7B,CAAE,MAAO4T,GACP,IAAK8I,EACH,OAAO,KAET,MAAM9I,CACR,E,uBCZF,MAAMF,EAAS,EAAQ,MAEvBS,EAAOC,QADO,CAACrI,EAAGiH,IAAU,IAAIU,EAAO3H,EAAGiH,GAAO8G,K,uBCDjD,MAAMtpB,EAAQ,EAAQ,KAKtB2jB,EAAOC,QAJY,CAAC5b,EAASwH,KAC3B,MAAM2c,EAASnsB,EAAMgI,EAASwH,GAC9B,OAAQ2c,GAAUA,EAAOjD,WAAWppB,OAAUqsB,EAAOjD,WAAa,K,uBCHpE,MAAMU,EAAU,EAAQ,KAExBjG,EAAOC,QADU,CAACrI,EAAGF,EAAGmH,IAAUoH,EAAQvO,EAAGE,EAAGiH,E,uBCDhD,MAAMwH,EAAe,EAAQ,KAE7BrG,EAAOC,QADO,CAACwI,EAAM5J,IAAU4J,EAAKC,MAAK,CAAC9Q,EAAGF,IAAM2O,EAAa3O,EAAGE,EAAGiH,I,uBCDtE,MAAMe,EAAQ,EAAQ,MAStBI,EAAOC,QARW,CAAC5b,EAAS+b,EAAOvU,KACjC,IACEuU,EAAQ,IAAIR,EAAMQ,EAAOvU,EAC3B,CAAE,MAAO4T,GACP,OAAO,CACT,CACA,OAAOW,EAAMZ,KAAKnb,EAAO,C,uBCP3B,MAAMgiB,EAAe,EAAQ,KAE7BrG,EAAOC,QADM,CAACwI,EAAM5J,IAAU4J,EAAKC,MAAK,CAAC9Q,EAAGF,IAAM2O,EAAazO,EAAGF,EAAGmH,I,uBCDrE,MAAMxiB,EAAQ,EAAQ,KAKtB2jB,EAAOC,QAJO,CAAC5b,EAASwH,KACtB,MAAM8c,EAAItsB,EAAMgI,EAASwH,GACzB,OAAO8c,EAAIA,EAAEtkB,QAAU,K,uBCFzB,MAAMukB,EAAa,EAAQ,MACrBC,EAAY,EAAQ,MACpBtJ,EAAS,EAAQ,MACjBuJ,EAAc,EAAQ,MACtBzsB,EAAQ,EAAQ,KAChB0sB,EAAQ,EAAQ,MAChBC,EAAQ,EAAQ,MAChB1C,EAAM,EAAQ,MACd2C,EAAO,EAAQ,MACfxD,EAAQ,EAAQ,MAChBC,EAAQ,EAAQ,MAChBC,EAAQ,EAAQ,MAChBJ,EAAa,EAAQ,MACrBU,EAAU,EAAQ,KAClBiD,EAAW,EAAQ,MACnBC,EAAe,EAAQ,MACvB9C,EAAe,EAAQ,KACvBqC,EAAO,EAAQ,MACfU,EAAQ,EAAQ,MAChBtC,EAAK,EAAQ,MACbE,EAAK,EAAQ,MACbJ,EAAK,EAAQ,MACbC,EAAM,EAAQ,MACdE,EAAM,EAAQ,MACdE,EAAM,EAAQ,MACdvH,EAAM,EAAQ,MACd2J,EAAS,EAAQ,MACjB3K,EAAa,EAAQ,MACrBkB,EAAQ,EAAQ,MAChB0J,EAAY,EAAQ,MACpBC,EAAgB,EAAQ,MACxBC,EAAgB,EAAQ,MACxBC,EAAgB,EAAQ,KACxBC,EAAa,EAAQ,MACrBC,EAAa,EAAQ,MACrBC,EAAU,EAAQ,MAClBC,EAAM,EAAQ,MACdC,EAAM,EAAQ,MACdnK,EAAa,EAAQ,MACrBoK,EAAgB,EAAQ,MACxBC,EAAS,EAAQ,MACvBhK,EAAOC,QAAU,CACf5jB,QACA0sB,QACAC,QACA1C,MACA2C,OACAxD,QACAC,QACAC,QACAJ,aACAU,UACAiD,WACAC,eACA9C,eACAqC,OACAU,QACAtC,KACAE,KACAJ,KACAC,MACAE,MACAE,MACAvH,MACA2J,SACA3K,aACAkB,QACA0J,YACAC,gBACAC,gBACAC,gBACAC,aACAC,aACAC,UACAC,MACAC,MACAnK,aACAoK,gBACAC,SACAzK,SACAL,GAAI0J,EAAW1J,GACf+K,IAAKrB,EAAWqB,IAChBC,OAAQtB,EAAWzJ,EACnBgL,oBAAqBtB,EAAUsB,oBAC/BC,cAAevB,EAAUuB,cACzBtE,mBAAoBgD,EAAYhD,mBAChCuE,oBAAqBvB,EAAYuB,oB,mBCrFnC,MAGMxE,EAAmBa,OAAOb,kBACL,iBAmB3B7F,EAAOC,QAAU,CACf2F,WAtBiB,IAuBjB0E,0BAlBgC,GAmBhCC,sBAf4B3E,IAgB5BC,mBACAuE,cAfoB,CACpB,QACA,WACA,QACA,WACA,QACA,WACA,cASAD,oBA7B0B,QA8B1BnJ,wBAAyB,EACzBC,WAAY,E,mBCjCd,MAAMrI,EACe,iBAAZ8C,SACPA,QAAQ8O,KACR9O,QAAQ8O,IAAIC,YACZ,cAAcjL,KAAK9D,QAAQ8O,IAAIC,YAC7B,IAAI1kB,IAASoX,QAAQtgB,MAAM,YAAakJ,GACxC,OAEJia,EAAOC,QAAUrH,C,mBCRjB,MAAM8R,EAAU,WACV5E,EAAqB,CAAClO,EAAGF,KAC7B,MAAMiT,EAAOD,EAAQlL,KAAK5H,GACpBgT,EAAOF,EAAQlL,KAAK9H,GAO1B,OALIiT,GAAQC,IACVhT,GAAKA,EACLF,GAAKA,GAGAE,IAAMF,EAAI,EACZiT,IAASC,GAAS,EAClBA,IAASD,EAAQ,EAClB/S,EAAIF,GAAK,EACT,GAKNsI,EAAOC,QAAU,CACf6F,qBACAuE,oBAJ0B,CAACzS,EAAGF,IAAMoO,EAAmBpO,EAAGE,G,mBCsB5DoI,EAAOC,QAvCP,MACE,WAAA7mB,GACEM,KAAKmxB,IAAM,IACXnxB,KAAKoc,IAAM,IAAImM,GACjB,CAEA,GAAArW,CAAKpB,GACH,MAAM4F,EAAQ1W,KAAKoc,IAAIlK,IAAIpB,GAC3B,YAAcjK,IAAV6P,OACF,GAGA1W,KAAKoc,IAAIjF,OAAOrG,GAChB9Q,KAAKoc,IAAIgC,IAAItN,EAAK4F,GACXA,EAEX,CAEA,OAAQ5F,GACN,OAAO9Q,KAAKoc,IAAIjF,OAAOrG,EACzB,CAEA,GAAAsN,CAAKtN,EAAK4F,GAGR,IAFgB1W,KAAKmX,OAAOrG,SAEFjK,IAAV6P,EAAqB,CAEnC,GAAI1W,KAAKoc,IAAIqM,MAAQzoB,KAAKmxB,IAAK,CAC7B,MAAMC,EAAWpxB,KAAKoc,IAAIvL,OAAO7N,OAAO0T,MACxC1W,KAAKmX,OAAOia,EACd,CAEApxB,KAAKoc,IAAIgC,IAAItN,EAAK4F,EACpB,CAEA,OAAO1W,IACT,E,kBCnCF,MAAMqxB,EAAczgB,OAAO0gB,OAAO,CAAEnM,OAAO,IACrCoM,EAAY3gB,OAAO0gB,OAAO,CAAE,GAYlChL,EAAOC,QAXcpU,GACdA,EAIkB,iBAAZA,EACFkf,EAGFlf,EAPEof,C,uBCLX,MAAM,0BACJX,EAAyB,sBACzBC,EAAqB,WACrB3E,GACE,EAAQ,MACNhN,EAAQ,EAAQ,MAIhBsG,GAHNe,EAAUD,EAAOC,QAAU,CAAC,GAGTf,GAAK,GAClBgB,EAASD,EAAQC,OAAS,GAC1B+J,EAAMhK,EAAQgK,IAAM,GACpB9K,EAAIc,EAAQd,EAAI,CAAC,EACvB,IAAI+L,EAAI,EAER,MAAMC,EAAmB,eAQnBC,EAAwB,CAC5B,CAAC,MAAO,GACR,CAAC,MAAOxF,GACR,CAACuF,EAAkBZ,IAYfc,EAAc,CAAC7mB,EAAM4L,EAAOkb,KAChC,MAAMC,EAVc,CAACnb,IACrB,IAAK,MAAO6B,EAAO4Y,KAAQO,EACzBhb,EAAQA,EACL6K,MAAM,GAAGhJ,MAAUxD,KAAK,GAAGwD,OAAW4Y,MACtC5P,MAAM,GAAGhJ,MAAUxD,KAAK,GAAGwD,OAAW4Y,MAE3C,OAAOza,GAIMob,CAAcpb,GACrBpR,EAAQksB,IACdtS,EAAMpU,EAAMxF,EAAOoR,GACnB+O,EAAE3a,GAAQxF,EACVirB,EAAIjrB,GAASoR,EACb8O,EAAGlgB,GAAS,IAAIysB,OAAOrb,EAAOkb,EAAW,SAAM/qB,GAC/C2f,EAAOlhB,GAAS,IAAIysB,OAAOF,EAAMD,EAAW,SAAM/qB,EAAS,EAS7D8qB,EAAY,oBAAqB,eACjCA,EAAY,yBAA0B,QAMtCA,EAAY,uBAAwB,gBAAgBF,MAKpDE,EAAY,cAAe,IAAIpB,EAAI9K,EAAEuM,0BACdzB,EAAI9K,EAAEuM,0BACNzB,EAAI9K,EAAEuM,uBAE7BL,EAAY,mBAAoB,IAAIpB,EAAI9K,EAAEwM,+BACd1B,EAAI9K,EAAEwM,+BACN1B,EAAI9K,EAAEwM,4BAKlCN,EAAY,uBAAwB,MAAMpB,EAAI9K,EAAEuM,sBAC5CzB,EAAI9K,EAAEyM,0BAEVP,EAAY,4BAA6B,MAAMpB,EAAI9K,EAAEwM,2BACjD1B,EAAI9K,EAAEyM,0BAMVP,EAAY,aAAc,QAAQpB,EAAI9K,EAAE0M,8BAC/B5B,EAAI9K,EAAE0M,6BAEfR,EAAY,kBAAmB,SAASpB,EAAI9K,EAAE2M,mCACrC7B,EAAI9K,EAAE2M,kCAKfT,EAAY,kBAAmB,GAAGF,MAMlCE,EAAY,QAAS,UAAUpB,EAAI9K,EAAE4M,yBAC5B9B,EAAI9K,EAAE4M,wBAWfV,EAAY,YAAa,KAAKpB,EAAI9K,EAAE6M,eACjC/B,EAAI9K,EAAE8M,eACPhC,EAAI9K,EAAE+M,WAERb,EAAY,OAAQ,IAAIpB,EAAI9K,EAAEgN,eAK9Bd,EAAY,aAAc,WAAWpB,EAAI9K,EAAEiN,oBACxCnC,EAAI9K,EAAEkN,oBACPpC,EAAI9K,EAAE+M,WAERb,EAAY,QAAS,IAAIpB,EAAI9K,EAAEmN,gBAE/BjB,EAAY,OAAQ,gBAKpBA,EAAY,wBAAyB,GAAGpB,EAAI9K,EAAEwM,mCAC9CN,EAAY,mBAAoB,GAAGpB,EAAI9K,EAAEuM,8BAEzCL,EAAY,cAAe,YAAYpB,EAAI9K,EAAEoN,4BAChBtC,EAAI9K,EAAEoN,4BACNtC,EAAI9K,EAAEoN,wBACVtC,EAAI9K,EAAE8M,gBACVhC,EAAI9K,EAAE+M,eAG3Bb,EAAY,mBAAoB,YAAYpB,EAAI9K,EAAEqN,iCAChBvC,EAAI9K,EAAEqN,iCACNvC,EAAI9K,EAAEqN,6BACVvC,EAAI9K,EAAEkN,qBACVpC,EAAI9K,EAAE+M,eAGhCb,EAAY,SAAU,IAAIpB,EAAI9K,EAAEsN,YAAYxC,EAAI9K,EAAEuN,iBAClDrB,EAAY,cAAe,IAAIpB,EAAI9K,EAAEsN,YAAYxC,EAAI9K,EAAEwN,sBAIvDtB,EAAY,cAAe,oBACDf,mBACIA,qBACAA,SAC9Be,EAAY,SAAU,GAAGpB,EAAI9K,EAAEyN,4BAC/BvB,EAAY,aAAcpB,EAAI9K,EAAEyN,aAClB,MAAM3C,EAAI9K,EAAE8M,gBACZ,MAAMhC,EAAI9K,EAAE+M,wBAE1Bb,EAAY,YAAapB,EAAI9K,EAAEuI,SAAS,GACxC2D,EAAY,gBAAiBpB,EAAI9K,EAAEsI,aAAa,GAIhD4D,EAAY,YAAa,WAEzBA,EAAY,YAAa,SAASpB,EAAI9K,EAAE0N,kBAAkB,GAC1D5M,EAAQyB,iBAAmB,MAE3B2J,EAAY,QAAS,IAAIpB,EAAI9K,EAAE0N,aAAa5C,EAAI9K,EAAEuN,iBAClDrB,EAAY,aAAc,IAAIpB,EAAI9K,EAAE0N,aAAa5C,EAAI9K,EAAEwN,sBAIvDtB,EAAY,YAAa,WAEzBA,EAAY,YAAa,SAASpB,EAAI9K,EAAE2N,kBAAkB,GAC1D7M,EAAQ2B,iBAAmB,MAE3ByJ,EAAY,QAAS,IAAIpB,EAAI9K,EAAE2N,aAAa7C,EAAI9K,EAAEuN,iBAClDrB,EAAY,aAAc,IAAIpB,EAAI9K,EAAE2N,aAAa7C,EAAI9K,EAAEwN,sBAGvDtB,EAAY,kBAAmB,IAAIpB,EAAI9K,EAAEsN,aAAaxC,EAAI9K,EAAEmN,oBAC5DjB,EAAY,aAAc,IAAIpB,EAAI9K,EAAEsN,aAAaxC,EAAI9K,EAAEgN,mBAIvDd,EAAY,iBAAkB,SAASpB,EAAI9K,EAAEsN,aACrCxC,EAAI9K,EAAEmN,eAAerC,EAAI9K,EAAEuN,iBAAiB,GACpDzM,EAAQuB,sBAAwB,SAMhC6J,EAAY,cAAe,SAASpB,EAAI9K,EAAEuN,0BAEnBzC,EAAI9K,EAAEuN,sBAG7BrB,EAAY,mBAAoB,SAASpB,EAAI9K,EAAEwN,+BAEnB1C,EAAI9K,EAAEwN,2BAIlCtB,EAAY,OAAQ,mBAEpBA,EAAY,OAAQ,6BACpBA,EAAY,UAAW,8B,uBCvNvB,MAAMzB,EAAU,EAAQ,MAExB5J,EAAOC,QADK,CAAC5b,EAAS+b,EAAOvU,IAAY+d,EAAQvlB,EAAS+b,EAAO,IAAKvU,E,uBCFtE,MAAM+T,EAAQ,EAAQ,MAMtBI,EAAOC,QALY,CAAC8M,EAAIC,EAAInhB,KAC1BkhB,EAAK,IAAInN,EAAMmN,EAAIlhB,GACnBmhB,EAAK,IAAIpN,EAAMoN,EAAInhB,GACZkhB,EAAGpN,WAAWqN,EAAInhB,G,uBCJ3B,MAAM+d,EAAU,EAAQ,MAGxB5J,EAAOC,QADK,CAAC5b,EAAS+b,EAAOvU,IAAY+d,EAAQvlB,EAAS+b,EAAO,IAAKvU,E,uBCFtE,MAAM0T,EAAS,EAAQ,MACjBK,EAAQ,EAAQ,MAuBtBI,EAAOC,QArBe,CAAChC,EAAUmC,EAAOvU,KACtC,IAAIgf,EAAM,KACNoC,EAAQ,KACRC,EAAW,KACf,IACEA,EAAW,IAAItN,EAAMQ,EAAOvU,EAC9B,CAAE,MAAO4T,GACP,OAAO,IACT,CAWA,OAVAxB,EAASzU,SAASmf,IACZuE,EAAS1N,KAAKmJ,KAEXkC,IAA6B,IAAtBoC,EAAMhH,QAAQ0C,KAExBkC,EAAMlC,EACNsE,EAAQ,IAAI1N,EAAOsL,EAAKhf,IAE5B,IAEKgf,E,sBCtBT,MAAMtL,EAAS,EAAQ,MACjBK,EAAQ,EAAQ,MAsBtBI,EAAOC,QArBe,CAAChC,EAAUmC,EAAOvU,KACtC,IAAIshB,EAAM,KACNC,EAAQ,KACRF,EAAW,KACf,IACEA,EAAW,IAAItN,EAAMQ,EAAOvU,EAC9B,CAAE,MAAO4T,GACP,OAAO,IACT,CAWA,OAVAxB,EAASzU,SAASmf,IACZuE,EAAS1N,KAAKmJ,KAEXwE,GAA4B,IAArBC,EAAMnH,QAAQ0C,KAExBwE,EAAMxE,EACNyE,EAAQ,IAAI7N,EAAO4N,EAAKthB,IAE5B,IAEKshB,E,uBCrBT,MAAM5N,EAAS,EAAQ,MACjBK,EAAQ,EAAQ,MAChBkH,EAAK,EAAQ,MA0DnB9G,EAAOC,QAxDY,CAACG,EAAOvB,KACzBuB,EAAQ,IAAIR,EAAMQ,EAAOvB,GAEzB,IAAIwO,EAAS,IAAI9N,EAAO,SACxB,GAAIa,EAAMZ,KAAK6N,GACb,OAAOA,EAIT,GADAA,EAAS,IAAI9N,EAAO,WAChBa,EAAMZ,KAAK6N,GACb,OAAOA,EAGTA,EAAS,KACT,IAAK,IAAIziB,EAAI,EAAGA,EAAIwV,EAAMtI,IAAI3b,SAAUyO,EAAG,CACzC,MAAMsX,EAAc9B,EAAMtI,IAAIlN,GAE9B,IAAI0iB,EAAS,KACbpL,EAAY1Y,SAAS+jB,IAEnB,MAAMC,EAAU,IAAIjO,EAAOgO,EAAWxO,OAAO1a,SAC7C,OAAQkpB,EAAWvO,UACjB,IAAK,IAC+B,IAA9BwO,EAAQjI,WAAWppB,OACrBqxB,EAAQ7H,QAER6H,EAAQjI,WAAWtoB,KAAK,GAE1BuwB,EAAQnN,IAAMmN,EAAQ1M,SAExB,IAAK,GACL,IAAK,KACEwM,IAAUxG,EAAG0G,EAASF,KACzBA,EAASE,GAEX,MACF,IAAK,IACL,IAAK,KAEH,MAEF,QACE,MAAM,IAAIr0B,MAAM,yBAAyBo0B,EAAWvO,YACxD,KAEEsO,GAAYD,IAAUvG,EAAGuG,EAAQC,KACnCD,EAASC,EAEb,CAEA,OAAID,GAAUjN,EAAMZ,KAAK6N,GAChBA,EAGF,K,uBC1DT,MAAM9N,EAAS,EAAQ,MACjBb,EAAa,EAAQ,OACrB,IAAEF,GAAQE,EACVkB,EAAQ,EAAQ,MAChB0J,EAAY,EAAQ,MACpBxC,EAAK,EAAQ,MACbE,EAAK,EAAQ,MACbC,EAAM,EAAQ,MACdF,EAAM,EAAQ,MAuEpB/G,EAAOC,QArES,CAAC5b,EAAS+b,EAAOqN,EAAM5hB,KAIrC,IAAI6hB,EAAMC,EAAOC,EAAMjP,EAAMkP,EAC7B,OAJAxpB,EAAU,IAAIkb,EAAOlb,EAASwH,GAC9BuU,EAAQ,IAAIR,EAAMQ,EAAOvU,GAGjB4hB,GACN,IAAK,IACHC,EAAO5G,EACP6G,EAAQ1G,EACR2G,EAAO5G,EACPrI,EAAO,IACPkP,EAAQ,KACR,MACF,IAAK,IACHH,EAAO1G,EACP2G,EAAQ5G,EACR6G,EAAO9G,EACPnI,EAAO,IACPkP,EAAQ,KACR,MACF,QACE,MAAM,IAAIvO,UAAU,yCAIxB,GAAIgK,EAAUjlB,EAAS+b,EAAOvU,GAC5B,OAAO,EAMT,IAAK,IAAIjB,EAAI,EAAGA,EAAIwV,EAAMtI,IAAI3b,SAAUyO,EAAG,CACzC,MAAMsX,EAAc9B,EAAMtI,IAAIlN,GAE9B,IAAIkjB,EAAO,KACPC,EAAM,KAiBV,GAfA7L,EAAY1Y,SAAS+jB,IACfA,EAAWxO,SAAWP,IACxB+O,EAAa,IAAI7O,EAAW,YAE9BoP,EAAOA,GAAQP,EACfQ,EAAMA,GAAOR,EACTG,EAAKH,EAAWxO,OAAQ+O,EAAK/O,OAAQlT,GACvCiiB,EAAOP,EACEK,EAAKL,EAAWxO,OAAQgP,EAAIhP,OAAQlT,KAC7CkiB,EAAMR,EACR,IAKEO,EAAK9O,WAAaL,GAAQmP,EAAK9O,WAAa6O,EAC9C,OAAO,EAKT,KAAME,EAAI/O,UAAY+O,EAAI/O,WAAaL,IACnCgP,EAAMtpB,EAAS0pB,EAAIhP,QACrB,OAAO,EACF,GAAIgP,EAAI/O,WAAa6O,GAASD,EAAKvpB,EAAS0pB,EAAIhP,QACrD,OAAO,CAEX,CACA,OAAO,E,uBCzET,MAAMuK,EAAY,EAAQ,MACpBrD,EAAU,EAAQ,KACxBjG,EAAOC,QAAU,CAAChC,EAAUmC,EAAOvU,KACjC,MAAMiM,EAAM,GACZ,IAAI2I,EAAQ,KACRuN,EAAO,KACX,MAAMrF,EAAI1K,EAASyK,MAAK,CAAC9Q,EAAGF,IAAMuO,EAAQrO,EAAGF,EAAG7L,KAChD,IAAK,MAAMxH,KAAWskB,EAAG,CACNW,EAAUjlB,EAAS+b,EAAOvU,IAEzCmiB,EAAO3pB,EACFoc,IACHA,EAAQpc,KAGN2pB,GACFlW,EAAI7a,KAAK,CAACwjB,EAAOuN,IAEnBA,EAAO,KACPvN,EAAQ,KAEZ,CACIA,GACF3I,EAAI7a,KAAK,CAACwjB,EAAO,OAGnB,MAAMwN,EAAS,GACf,IAAK,MAAOd,EAAKtC,KAAQ/S,EACnBqV,IAAQtC,EACVoD,EAAOhxB,KAAKkwB,GACFtC,GAAOsC,IAAQxE,EAAE,GAEjBkC,EAEDsC,IAAQxE,EAAE,GACnBsF,EAAOhxB,KAAK,KAAK4tB,KAEjBoD,EAAOhxB,KAAK,GAAGkwB,OAAStC,KAJxBoD,EAAOhxB,KAAK,KAAKkwB,KAFjBc,EAAOhxB,KAAK,KAShB,MAAMixB,EAAaD,EAAOxf,KAAK,QACzB0f,EAAgC,iBAAd/N,EAAMC,IAAmBD,EAAMC,IAAM7kB,OAAO4kB,GACpE,OAAO8N,EAAW/xB,OAASgyB,EAAShyB,OAAS+xB,EAAa9N,E,uBC7C5D,MAAMR,EAAQ,EAAQ,MAChBlB,EAAa,EAAQ,OACrB,IAAEF,GAAQE,EACV4K,EAAY,EAAQ,MACpBrD,EAAU,EAAQ,KAkElBmI,EAA+B,CAAC,IAAI1P,EAAW,cAC/C2P,EAAiB,CAAC,IAAI3P,EAAW,YAEjC4P,EAAe,CAACC,EAAKC,EAAK3iB,KAC9B,GAAI0iB,IAAQC,EACV,OAAO,EAGT,GAAmB,IAAfD,EAAIpyB,QAAgBoyB,EAAI,GAAGxP,SAAWP,EAAK,CAC7C,GAAmB,IAAfgQ,EAAIryB,QAAgBqyB,EAAI,GAAGzP,SAAWP,EACxC,OAAO,EAEP+P,EADS1iB,EAAQgU,kBACXuO,EAEAC,CAEV,CAEA,GAAmB,IAAfG,EAAIryB,QAAgBqyB,EAAI,GAAGzP,SAAWP,EAAK,CAC7C,GAAI3S,EAAQgU,kBACV,OAAO,EAEP2O,EAAMH,CAEV,CAEA,MAAMI,EAAQ,IAAIC,IAClB,IAAI5H,EAAIE,EAeJ2H,EA6BAC,EAAQC,EACRC,EAAUC,EA5Cd,IAAK,MAAMtlB,KAAK8kB,EACK,MAAf9kB,EAAEuV,UAAmC,OAAfvV,EAAEuV,SAC1B8H,EAAKkI,EAASlI,EAAIrd,EAAGoC,GACG,MAAfpC,EAAEuV,UAAmC,OAAfvV,EAAEuV,SACjCgI,EAAKiI,EAAQjI,EAAIvd,EAAGoC,GAEpB4iB,EAAMS,IAAIzlB,EAAEsV,QAIhB,GAAI0P,EAAMtM,KAAO,EACf,OAAO,KAIT,GAAI2E,GAAME,EAAI,CAEZ,GADA2H,EAAW1I,EAAQa,EAAG/H,OAAQiI,EAAGjI,OAAQlT,GACrC8iB,EAAW,EACb,OAAO,KACF,GAAiB,IAAbA,IAAmC,OAAhB7H,EAAG9H,UAAqC,OAAhBgI,EAAGhI,UACvD,OAAO,IAEX,CAGA,IAAK,MAAM4H,KAAM6H,EAAO,CACtB,GAAI3H,IAAOwC,EAAU1C,EAAIprB,OAAOsrB,GAAKjb,GACnC,OAAO,KAGT,GAAImb,IAAOsC,EAAU1C,EAAIprB,OAAOwrB,GAAKnb,GACnC,OAAO,KAGT,IAAK,MAAMpC,KAAK+kB,EACd,IAAKlF,EAAU1C,EAAIprB,OAAOiO,GAAIoC,GAC5B,OAAO,EAIX,OAAO,CACT,CAMA,IAAIsjB,KAAenI,GAChBnb,EAAQgU,oBACTmH,EAAGjI,OAAOwG,WAAWppB,SAAS6qB,EAAGjI,OAC/BqQ,KAAetI,GAChBjb,EAAQgU,oBACTiH,EAAG/H,OAAOwG,WAAWppB,SAAS2qB,EAAG/H,OAE/BoQ,GAAmD,IAAnCA,EAAa5J,WAAWppB,QACxB,MAAhB6qB,EAAGhI,UAAmD,IAA/BmQ,EAAa5J,WAAW,KACjD4J,GAAe,GAGjB,IAAK,MAAM1lB,KAAK+kB,EAAK,CAGnB,GAFAO,EAAWA,GAA2B,MAAftlB,EAAEuV,UAAmC,OAAfvV,EAAEuV,SAC/C8P,EAAWA,GAA2B,MAAfrlB,EAAEuV,UAAmC,OAAfvV,EAAEuV,SAC3C8H,EASF,GARIsI,GACE3lB,EAAEsV,OAAOwG,YAAc9b,EAAEsV,OAAOwG,WAAWppB,QAC3CsN,EAAEsV,OAAO0G,QAAU2J,EAAa3J,OAChChc,EAAEsV,OAAO2G,QAAU0J,EAAa1J,OAChCjc,EAAEsV,OAAO4G,QAAUyJ,EAAazJ,QAClCyJ,GAAe,GAGA,MAAf3lB,EAAEuV,UAAmC,OAAfvV,EAAEuV,UAE1B,GADA4P,EAASI,EAASlI,EAAIrd,EAAGoC,GACrB+iB,IAAWnlB,GAAKmlB,IAAW9H,EAC7B,OAAO,OAEJ,GAAoB,OAAhBA,EAAG9H,WAAsBsK,EAAUxC,EAAG/H,OAAQvjB,OAAOiO,GAAIoC,GAClE,OAAO,EAGX,GAAImb,EASF,GARImI,GACE1lB,EAAEsV,OAAOwG,YAAc9b,EAAEsV,OAAOwG,WAAWppB,QAC3CsN,EAAEsV,OAAO0G,QAAU0J,EAAa1J,OAChChc,EAAEsV,OAAO2G,QAAUyJ,EAAazJ,OAChCjc,EAAEsV,OAAO4G,QAAUwJ,EAAaxJ,QAClCwJ,GAAe,GAGA,MAAf1lB,EAAEuV,UAAmC,OAAfvV,EAAEuV,UAE1B,GADA6P,EAAQI,EAAQjI,EAAIvd,EAAGoC,GACnBgjB,IAAUplB,GAAKolB,IAAU7H,EAC3B,OAAO,OAEJ,GAAoB,OAAhBA,EAAGhI,WAAsBsK,EAAUtC,EAAGjI,OAAQvjB,OAAOiO,GAAIoC,GAClE,OAAO,EAGX,IAAKpC,EAAEuV,WAAagI,GAAMF,IAAoB,IAAb6H,EAC/B,OAAO,CAEX,CAKA,QAAI7H,GAAMgI,IAAa9H,GAAmB,IAAb2H,OAIzB3H,GAAM+H,IAAajI,GAAmB,IAAb6H,MAOzBS,IAAgBD,GAIb,EAIHH,EAAW,CAACpX,EAAGF,EAAG7L,KACtB,IAAK+L,EACH,OAAOF,EAET,MAAMiH,EAAOsH,EAAQrO,EAAEmH,OAAQrH,EAAEqH,OAAQlT,GACzC,OAAO8S,EAAO,EAAI/G,EACd+G,EAAO,GACQ,MAAfjH,EAAEsH,UAAmC,OAAfpH,EAAEoH,SADbtH,EAEXE,GAIAqX,EAAU,CAACrX,EAAGF,EAAG7L,KACrB,IAAK+L,EACH,OAAOF,EAET,MAAMiH,EAAOsH,EAAQrO,EAAEmH,OAAQrH,EAAEqH,OAAQlT,GACzC,OAAO8S,EAAO,EAAI/G,EACd+G,EAAO,GACQ,MAAfjH,EAAEsH,UAAmC,OAAfpH,EAAEoH,SADbtH,EAEXE,GAGNoI,EAAOC,QA5MQ,CAACsO,EAAKC,EAAK3iB,EAAU,CAAC,KACnC,GAAI0iB,IAAQC,EACV,OAAO,EAGTD,EAAM,IAAI3O,EAAM2O,EAAK1iB,GACrB2iB,EAAM,IAAI5O,EAAM4O,EAAK3iB,GACrB,IAAIwjB,GAAa,EAEjBC,EAAO,IAAK,MAAMC,KAAahB,EAAIzW,IAAK,CACtC,IAAK,MAAM0X,KAAahB,EAAI1W,IAAK,CAC/B,MAAM2X,EAAQnB,EAAaiB,EAAWC,EAAW3jB,GAEjD,GADAwjB,EAAaA,GAAwB,OAAVI,EACvBA,EACF,SAASH,CAEb,CAKA,GAAID,EACF,OAAO,CAEX,CACA,OAAO,E,uBCnET,MAAMzP,EAAQ,EAAQ,MAOtBI,EAAOC,QAJe,CAACG,EAAOvU,IAC5B,IAAI+T,EAAMQ,EAAOvU,GAASiM,IACvBhC,KAAI6I,GAAQA,EAAK7I,KAAIrM,GAAKA,EAAE2G,QAAO3B,KAAK,KAAKqQ,OAAO7D,MAAM,M,uBCL/D,MAAM2E,EAAQ,EAAQ,MAUtBI,EAAOC,QATY,CAACG,EAAOvU,KACzB,IAGE,OAAO,IAAI+T,EAAMQ,EAAOvU,GAASuU,OAAS,GAC5C,CAAE,MAAOX,GACP,OAAO,IACT,E","sources":["webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/Errors.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/Subject.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/ILogger.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/Loggers.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","webpack://tgstation-server-control-panel/./node_modules/@microsoft/signalr/dist/esm/Utils.js","webpack://tgstation-server-control-panel/./node_modules/semver/classes/comparator.js","webpack://tgstation-server-control-panel/./node_modules/semver/classes/range.js","webpack://tgstation-server-control-panel/./node_modules/semver/classes/semver.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/clean.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/cmp.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/coerce.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/compare-build.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/compare-loose.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/compare.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/diff.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/eq.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/gt.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/gte.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/inc.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/lt.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/lte.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/major.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/minor.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/neq.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/parse.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/patch.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/prerelease.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/rcompare.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/rsort.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/satisfies.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/sort.js","webpack://tgstation-server-control-panel/./node_modules/semver/functions/valid.js","webpack://tgstation-server-control-panel/./node_modules/semver/index.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/constants.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/debug.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/identifiers.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/lrucache.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/parse-options.js","webpack://tgstation-server-control-panel/./node_modules/semver/internal/re.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/gtr.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/intersects.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/ltr.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/max-satisfying.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/min-satisfying.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/min-version.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/outside.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/simplify.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/subset.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/to-comparators.js","webpack://tgstation-server-control-panel/./node_modules/semver/ranges/valid.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n//# sourceMappingURL=MessageBuffer.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n constructor(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds !== null && serverTimeoutInMilliseconds !== void 0 ? serverTimeoutInMilliseconds : DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds !== null && keepAliveIntervalInMilliseconds !== void 0 ? keepAliveIntervalInMilliseconds : DEFAULT_PING_INTERVAL_IN_MS;\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize !== null && statefulReconnectBufferSize !== void 0 ? statefulReconnectBufferSize : DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n };\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n }\r\n catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n }\r\n else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this._invokeClientMethod(message)\r\n .catch((e) => {\r\n this._logger.log(LogLevel.Error, `Invoke client method threw error: ${getErrorString(e)}`);\r\n });\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error !== null && error !== void 0 ? error : new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n _createCloseMessage() {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n this._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n MessageType[MessageType[\"Ack\"] = 8] = \"Ack\";\r\n MessageType[MessageType[\"Sequence\"] = 9] = \"Sequence\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"8.0.7\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n"],"names":["HttpError","Error","constructor","errorMessage","statusCode","trueProto","prototype","super","this","__proto__","TimeoutError","AbortError","UnsupportedTransportError","message","transport","errorType","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","TextMessageFormat","write","JSON","stringify","parseHandshakeResponse","data","messageData","remainingData","binaryData","Uint8Array","separatorIndex","indexOf","RecordSeparatorCode","responseLength","String","fromCharCode","apply","Array","slice","call","byteLength","buffer","textData","RecordSeparator","substring","length","messages","parse","response","type","Subject","observers","next","item","observer","error","err","complete","subscribe","push","MessageBuffer","protocol","connection","bufferSize","_bufferSize","_messages","_totalMessageCount","_waitForSequenceMessage","_nextReceivingSequenceId","_latestReceivedSequenceId","_bufferedByteCount","_reconnectInProgress","_protocol","_connection","_send","serializedMessage","writeMessage","backpressurePromise","Promise","resolve","_isInvocationMessage","backpressurePromiseResolver","backpressurePromiseRejector","reject","BufferedItem","send","_disconnected","_ack","ackMessage","newestAckedMessage","index","element","_id","sequenceId","_message","_resolver","_shouldProcessMessage","Sequence","currentId","_ackTimer","_resetSequence","stop","_resend","_dispose","_rejector","Invocation","StreamItem","Completion","StreamInvocation","CancelInvocation","Close","Ping","Ack","undefined","_ackTimerHandle","setTimeout","async","clearTimeout","id","resolver","rejector","HubConnectionState","HubConnection","create","logger","reconnectPolicy","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","statefulReconnectBufferSize","_nextKeepAlive","_freezeEventListener","_logger","log","Warning","isRequired","_statefulReconnectBufferSize","_reconnectPolicy","_handshakeProtocol","onreceive","_processIncomingData","onclose","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","_connectionState","Disconnected","_connectionStarted","_cachedPingMessage","state","connectionId","baseUrl","url","Reconnecting","start","_startPromise","_startWithStateTransitions","Connecting","Debug","_startInternal","isBrowser","window","document","addEventListener","Connected","e","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","transferFormat","version","features","reconnect","name","_sendMessage","Information","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_messageBuffer","disconnected","bind","resend","inherentKeepAlive","_cleanupPingTimer","startPromise","_stopPromise","_stopInternal","Disconnecting","_reconnectDelayHandle","_completeClose","_sendCloseMessage","_sendWithProtocol","_createCloseMessage","stream","methodName","args","streams","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","subject","cancelCallback","cancelInvocation","_createCancelInvocation","invocationId","then","invocationEvent","catch","_launchStreams","sendPromise","_createInvocation","invoke","result","on","newMethod","toLowerCase","off","method","handlers","removeIdx","splice","callback","onreconnecting","onreconnected","_processHandshakeResponse","parseMessages","_invokeClientMethod","allowReconnect","responseMessage","Date","getTime","_timeoutHandle","serverTimeout","_pingServerHandle","nextPing","invocationMessage","target","methods","_createCompletionMessage","methodsCopy","expectsResponse","res","exception","completionMessage","m","prevRes","arguments","_cancelCallbacksWithError","_reconnect","removeEventListener","forEach","c","reconnectStartTime","now","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","toString","previousRetryCount","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","callbacks","Object","keys","key","nonblocking","streamId","_createStreamItemMessage","i","argument","_isObservable","arg","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","retryContext","HeaderNames","Authorization","Cookie","HttpResponse","statusText","content","HttpClient","get","options","post","getCookieString","AccessTokenHttpClient","innerClient","accessTokenFactory","_innerClient","_accessTokenFactory","request","allowRetry","_accessToken","_setAuthorizationHeader","headers","FetchHttpClient","fetch","isNode","requireFunc","_jar","CookieJar","_fetchType","AbortController","_abortControllerType","abortSignal","aborted","abortController","onabort","abort","timeoutId","timeout","msTimeout","body","cache","credentials","withCredentials","mode","redirect","signal","ok","deserializeContent","status","responseType","payload","cookies","getCookies","join","arrayBuffer","text","XhrHttpClient","xhr","XMLHttpRequest","open","setRequestHeader","header","onload","responseText","onerror","ontimeout","DefaultHttpClient","_httpClient","_isAborted","LongPollingTransport","pollAborted","_pollAbort","httpClient","_options","_running","connect","isIn","_url","Trace","Binary","value","pollOptions","pollUrl","_closeError","_receiving","_poll","logMessageContent","_raiseOnClose","deleteOptions","delete","logMessage","ServerSentEventsTransport","accessToken","encodeURIComponent","eventSource","opened","Text","isWebWorker","EventSource","onmessage","_close","onopen","_eventSource","close","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","token","webSocket","replace","isReactNative","binaryType","_event","_webSocket","event","ErrorEvent","readyState","OPEN","_isCloseEvent","wasClean","code","reason","HttpConnection","_stopPromiseResolver","_negotiateVersion","_resolveUrl","webSocketModule","eventSourceModule","WebSocket","_startInternalPromise","_sendQueue","TransportSendQueue","_stopError","_stopConnection","skipNegotiation","WebSockets","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","useStatefulReconnect","_useStatefulReconnect","_createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","ex","ServerSentEvents","LongPolling","callStop","actualTransport","transportMatches","transferFormats","map","s","lastIndexOf","aTag","createElement","href","URL","pathname","endsWith","searchParams","URLSearchParams","has","append","search","_transport","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","promise","transportResult","_concatBuffers","arrayBuffers","totalLength","b","reduce","a","offset","set","_rejecter","JsonHubProtocol","input","instance","hubMessages","parsedMessage","_isStreamItemMessage","_isCompletionMessage","_isAckMessage","_isSequenceMessage","_assertNotEmptyString","LogLevelNameMapping","trace","debug","info","information","warn","warning","critical","Critical","none","None","HubConnectionBuilder","configureLogging","logging","logLevel","mapping","parseLogLevel","withUrl","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","isArray","withServerTimeout","milliseconds","_serverTimeoutInMilliseconds","withKeepAliveInterval","_keepAliveIntervalInMilliseconds","withStatefulReconnect","build","MessageType","LogLevel","HttpTransportType","TransferFormat","NullLogger","_logLevel","output","split","pop","VERSION","Arg","val","match","values","Platform","self","process","release","getDataDetail","includeContent","detail","isArrayBuffer","view","str","num","substr","formatArrayBuffer","ArrayBuffer","sendMessage","transportName","getUserAgentHeader","createLogger","ConsoleLogger","SubjectSubscription","_subject","_observer","dispose","_","minimumLogLevel","_minLevel","out","console","msg","toISOString","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtime","runtimeVersion","userAgent","majorAndMinor","platform","versions","node","getErrorString","stack","getGlobalThis","globalThis","g","ANY","Symbol","Comparator","comp","parseOptions","loose","trim","semver","operator","r","re","t","COMPARATORLOOSE","COMPARATOR","TypeError","SemVer","test","er","cmp","intersects","Range","includePrerelease","startsWith","includes","module","exports","safeRe","SPACE_CHARACTERS","range","raw","formatted","parseRange","filter","first","isNullSet","isAny","comps","k","format","memoKey","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","cached","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","rangeList","parseComparator","replaceGTE0","rangeMap","Map","comparators","size","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","M","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","prerelease","allowed","major","minor","patch","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","compare","other","compareMain","comparePre","compareBuild","inc","identifier","identifierBase","base","Number","isNaN","eq","neq","gt","gte","lt","lte","op","rtl","coerceRtlRegex","COERCERTLFULL","COERCERTL","exec","lastIndex","COERCEFULL","COERCE","versionA","versionB","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","prefix","throwErrors","parsed","list","sort","v","internalRe","constants","identifiers","valid","clean","diff","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","src","tokens","SEMVER_SPEC_VERSION","RELEASE_TYPES","rcompareIdentifiers","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","env","NODE_DEBUG","numeric","anum","bnum","max","firstKey","looseOption","freeze","emptyOpts","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","LONETILDE","LONECARET","r1","r2","maxSV","rangeObj","min","minSV","minver","setMin","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","high","low","prev","ranges","simplified","original","minimumVersionWithPreRelease","minimumVersion","simpleSubset","sub","dom","eqSet","Set","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","add","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js b/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js new file mode 100644 index 00000000..cc50b3b3 --- /dev/null +++ b/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5318,5727],{1723:function(e,t,n){n.d(t,{Ay:function(){return A},PU:function(){return m},gH:function(){return w}});var a=n(6188),r=n(6784),i=n(6540),o=n(5615),l=n(1208),s=n(5192),u=n(5038),c=n(3524),f=n(8065);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;te.onChange(t.target.value),disabled:e.disabled,ref:t})})),p=i.forwardRef((function(e){return i.createElement(l.A.Control,{as:"textarea",value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled})})),y=i.forwardRef((function(e,t){return i.createElement(l.A.Control,{value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled,type:"password",ref:t})})),v=i.forwardRef((function(e,t){const n=Math.random().toString();return i.createElement("label",{htmlFor:n,className:"d-flex m-0 flex-grow-1 justify-content-center align-content-center"},i.createElement(l.A.Check,{id:n,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:"switch",className:"m-auto",disabled:e.disabled,ref:t}))})),h=i.forwardRef((function(e,t){return i.createElement(l.A.Control,{value:e.value,onChange:t=>e.onChange(isNaN(t.target.valueAsNumber)?t.target.value:t.target.valueAsNumber),disabled:e.disabled,min:e.min,max:e.max,type:"number",ref:t})})),b=i.forwardRef((function(e,t){return i.createElement(l.A.Control,{value:e.value,onChange:t=>e.onChange(parseInt(t.target.value)),disabled:e.disabled,as:"select",custom:!0,ref:t},Object.entries(e.enum).filter((([e])=>isNaN(parseInt(e)))).map((([t,n])=>e.noLocalize?i.createElement("option",{key:n,value:n},t):i.createElement(f.A,{id:`${e.name}.${t}`,key:t},(e=>i.createElement("option",{key:n,value:n},e))))))})),w={[m.Enum]:0,[m.Number]:0,[m.Boolean]:!1,[m.String]:"",[m.Password]:"",[m.TextArea]:""};function A(e){const[t,n]=(0,i.useState)(e.defaultValue??w[e.type]),l=(0,i.useRef)(null);(0,i.useEffect)((()=>{n(e.defaultValue??w[e.type])}),[e.defaultValue]),(0,i.useEffect)((()=>{switch(l.current&&(l.current.checkValidity()?l.current.classList.remove("is-invalid"):l.current.classList.add("is-invalid")),e.type){case m.Boolean:case m.Enum:case m.Number:case m.String:case m.Password:case m.TextArea:return void e.onChange(t,l.current?.checkValidity()??!0)}}),[t]);const A={string:g,password:y,boolean:v,textarea:p,[m.Number]:void 0,[m.Enum]:void 0},E=t!=(e.defaultValue??w[e.type])||e.forceChanged;return i.createElement(s.A,null,i.createElement(u.A,{overlay:(U=e.tooltip,U?i.createElement(c.A,{id:U},i.createElement(f.A,{id:U})):i.createElement(i.Fragment,null)),show:!!e.tooltip&&void 0},(({ref:t,...n})=>i.createElement(s.A.Prepend,{className:"w-50 w-xl-40"},i.createElement(s.A.Text,d({className:"flex-grow-1"},n),i.createElement("span",{className:E?"font-weight-bold":""},i.createElement(f.A,{id:e.name})),i.createElement("div",{className:"ml-auto"},e.disabled&&!e.hideReadOnly?i.createElement(f.A,{id:"generic.readonly"}):null,i.createElement("div",{ref:t,className:"d-inline-block ml-2",style:{visibility:e.tooltip?"unset":"hidden"}},i.createElement(r.g,{icon:a.ktq}))))))),e.type===m.Number?i.createElement(h,{value:t,onChange:e=>n(e),name:e.name,disabled:e.disabled,max:e.max,min:e.min,ref:l}):e.type===m.Enum?i.createElement(b,{value:t,onChange:e=>n(e),name:e.name,enum:e.enum,noLocalize:e.noLocalize,disabled:e.disabled}):i.createElement(A[e.type],{value:t,onChange:e=>n(e),disabled:e.disabled,name:e.type,ref:l}),E&&!e.disabled||e.additionalAppend?i.createElement(s.A.Append,null,E&&!e.disabled?i.createElement(o.A,{variant:"danger",onClick:()=>n(e.defaultValue??w[e.type])},i.createElement(r.g,{icon:"undo"})):null,e.additionalAppend):null);var U}},6113:function(e,t,n){n.d(t,{A:function(){return c}});var a=n(6540),r=n(5615),i=n(5038),o=n(3524),l=n(8065),s=n(1723);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t{Object.keys(e.fields).forEach((e=>{f((t=>({...t,[e]:{}})))}))}),[]);for(const[r,i]of Object.entries(e.fields))n.set(r,i),t.set(i,(0,a.useState)(i.defaultValue??s.gH[i.type]));let d=e.alwaysAllowSave,m=!1;for(const[e,a]of n){const[n]=t.get(a),r=c[e];if((a.defaultValue??s.gH[a.type])!=n&&(d=!0),r?.invalid&&(m=!0),d&&m)break}return e.hideDisabled&&!Object.values(e.fields).some((e=>!e.disabled))?a.createElement(a.Fragment,null):a.createElement("div",null,Object.entries(e.fields).map((([n,r])=>{const{disabled:i,...o}=r;return e.hideDisabled&&i?null:a.createElement(s.Ay,u({key:n},o,{disabled:e.readOnly||i,onChange:(e,a)=>{t.get(r)[1](e),f((e=>({...e,[n]:{...e[n],invalid:!a}})))}}))})),a.createElement("div",{className:"text-center mt-2"},a.createElement(i.A,{overlay:a.createElement(o.A,{id:"form-invalid"},a.createElement(l.A,{id:"generic.invalid_form"})),show:!!m&&void 0},a.createElement(r.A,{variant:e.readOnly||m?"danger":"success",disabled:e.readOnly||!d||m,onClick:()=>{const a={};for(const[r,i]of n){const[n]=t.get(i);(i.alwaysInclude||n!=(i.defaultValue??s.gH[i.type])||e.includeAll)&&(a[r]=n)}e.onSave(a)}},a.createElement(l.A,{id:e.saveMessageId??"generic.save"})))))}},6795:function(e,t,n){n.d(t,{Q:function(){return s}});var a=n(6540),r=n(8785),i=n.n(r),o=n(8437);function l(e){return a.createElement(i(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function s(e){return o.Ay.showjson.value?a.createElement("div",{className:"text-left"},a.createElement(l,{obj:e.obj})):a.createElement(a.Fragment,null)}},7621:function(e,t,n){n.d(t,{z:function(){return a}});const a=n(6540).createContext(void 0)},616:function(e,t,n){var a=n(8168),r=n(8587),i=n(2485),o=n.n(i),l=n(6540),s=n(6519),u=["bsPrefix","size","toggle","vertical","className","as"],c=l.forwardRef((function(e,t){var n=e.bsPrefix,i=e.size,c=e.toggle,f=e.vertical,d=e.className,m=e.as,g=void 0===m?"div":m,p=(0,r.A)(e,u),y=(0,s.oU)(n,"btn-group"),v=y;return f&&(v=y+"-vertical"),l.createElement(g,(0,a.A)({},p,{ref:t,className:o()(d,v,i&&y+"-"+i,c&&y+"-toggle")}))}));c.displayName="ButtonGroup",c.defaultProps={vertical:!1,toggle:!1,role:"group"},t.A=c},5192:function(e,t,n){var a=n(8587),r=n(8168),i=n(2485),o=n.n(i),l=n(6540),s=n(6261),u=n(6519),c=["bsPrefix","size","hasValidation","className","as"],f=(0,s.A)("input-group-append"),d=(0,s.A)("input-group-prepend"),m=(0,s.A)("input-group-text",{Component:"span"}),g=l.forwardRef((function(e,t){var n=e.bsPrefix,i=e.size,s=e.hasValidation,f=e.className,d=e.as,m=void 0===d?"div":d,g=(0,a.A)(e,c);return n=(0,u.oU)(n,"input-group"),l.createElement(m,(0,r.A)({ref:t},g,{className:o()(f,n,i&&n+"-"+i,s&&"has-validation")}))}));g.displayName="InputGroup",g.Text=m,g.Radio=function(e){return l.createElement(m,null,l.createElement("input",(0,r.A)({type:"radio"},e)))},g.Checkbox=function(e){return l.createElement(m,null,l.createElement("input",(0,r.A)({type:"checkbox"},e)))},g.Append=f,g.Prepend=d,t.A=g},1941:function(e,t,n){n.d(t,{_6:function(){return C}}),"stream"in Blob.prototype||Object.defineProperty(Blob.prototype,"stream",{value(){return new Response(this).body}}),"setBigUint64"in DataView.prototype||Object.defineProperty(DataView.prototype,"setBigUint64",{value(e,t,n){const a=Number(0xffffffffn&t),r=Number(t>>32n);this.setUint32(e+(n?0:4),a,n),this.setUint32(e+(n?4:0),r,n)}});var a=e=>new DataView(new ArrayBuffer(e)),r=e=>new Uint8Array(e.buffer||e),i=e=>(new TextEncoder).encode(String(e)),o=e=>Math.min(4294967295,Number(e)),l=e=>Math.min(65535,Number(e));function s(e,t){if(void 0===t||t instanceof Date||(t=new Date(t)),e instanceof File)return{isFile:1,t:t||new Date(e.lastModified),i:e.stream()};if(e instanceof Response)return{isFile:1,t:t||new Date(e.headers.get("Last-Modified")||Date.now()),i:e.body};if(void 0===t)t=new Date;else if(isNaN(t))throw new Error("Invalid modification date.");if(void 0===e)return{isFile:0,t:t};if("string"==typeof e)return{isFile:1,t:t,i:i(e)};if(e instanceof Blob)return{isFile:1,t:t,i:e.stream()};if(e instanceof Uint8Array||e instanceof ReadableStream)return{isFile:1,t:t,i:e};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{isFile:1,t:t,i:r(e)};if(Symbol.asyncIterator in e)return{isFile:1,t:t,i:u(e[Symbol.asyncIterator]())};throw new TypeError("Unsupported input format.")}function u(e,t=e){return new ReadableStream({async pull(t){let n=0;for(;t.desiredSize>n;){const a=await e.next();if(!a.value){t.close();break}{const e=c(a.value);t.enqueue(e),n+=e.byteLength}}},cancel(e){t.throw?.(e)}})}function c(e){return"string"==typeof e?i(e):e instanceof Uint8Array?e:r(e)}function f(e,t,n){let[a,o]=function(e){return e?e instanceof Uint8Array?[e,1]:ArrayBuffer.isView(e)||e instanceof ArrayBuffer?[r(e),1]:[i(e),0]:[void 0,0]}(t);if(e instanceof File)return{o:m(a||i(e.name)),u:BigInt(e.size),l:o};if(e instanceof Response){const t=e.headers.get("content-disposition"),r=t&&t.match(/;\s*filename\*?=["']?(.*?)["']?$/i),l=r&&r[1]||e.url&&new URL(e.url).pathname.split("/").findLast(Boolean),s=l&&decodeURIComponent(l),u=n||+e.headers.get("content-length");return{o:m(a||i(s)),u:BigInt(u),l:o}}return a=m(a,void 0!==e||void 0!==n),"string"==typeof e?{o:a,u:BigInt(i(e).length),l:o}:e instanceof Blob?{o:a,u:BigInt(e.size),l:o}:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?{o:a,u:BigInt(e.byteLength),l:o}:{o:a,u:d(e,n),l:o}}function d(e,t){return t>-1?BigInt(t):e?void 0:0n}function m(e,t=1){if(!e||e.every((e=>47===e)))throw new Error("The file must have a name.");if(t)for(;47===e[e.length-1];)e=e.subarray(0,-1);else 47!==e[e.length-1]&&(e=new Uint8Array([...e,47]));return e}var g=new Uint32Array(256);for(let e=0;e<256;++e){let t=e;for(let e=0;e<8;++e)t=t>>>1^(1&t&&3988292384);g[e]=t}function p(e,t=0){t^=-1;for(var n=0,a=e.length;n>>8^g[255&t^e[n]];return~t>>>0}function y(e,t,n=0){const a=e.getSeconds()>>1|e.getMinutes()<<5|e.getHours()<<11,r=e.getDate()|e.getMonth()+1<<5|e.getFullYear()-1980<<9;t.setUint16(n,a,1),t.setUint16(n+2,r,1)}function v({o:e,l:t},n){return 8*(!t||(n??function(e){try{h.decode(e)}catch{return 0}return 1}(e)))}var h=new TextDecoder("utf8",{fatal:1});function b(e,t=0){const n=a(30);return n.setUint32(0,1347093252),n.setUint32(4,754976768|t),y(e.t,n,10),n.setUint16(26,e.o.length,1),r(n)}async function*w(e){let{i:t}=e;if("then"in t&&(t=await t),t instanceof Uint8Array)yield t,e.m=p(t,0),e.u=BigInt(t.length);else{e.u=0n;const n=t.getReader();for(;;){const{value:t,done:a}=await n.read();if(a)break;e.m=p(t,e.m),e.u+=BigInt(t.length),yield t}}}function A(e,t){const n=a(16+(t?8:0));return n.setUint32(0,1347094280),n.setUint32(4,e.isFile?e.m:0,1),t?(n.setBigUint64(8,e.u,1),n.setBigUint64(16,e.u,1)):(n.setUint32(8,o(e.u),1),n.setUint32(12,o(e.u),1)),r(n)}function E(e,t,n=0,i=0){const l=a(46);return l.setUint32(0,1347092738),l.setUint32(4,755182848),l.setUint16(8,2048|n),y(e.t,l,12),l.setUint32(16,e.isFile?e.m:0,1),l.setUint32(20,o(e.u),1),l.setUint32(24,o(e.u),1),l.setUint16(28,e.o.length,1),l.setUint16(30,i,1),l.setUint16(40,e.isFile?33204:16893,1),l.setUint32(42,o(t),1),r(l)}function U(e,t,n){const i=a(n);return i.setUint16(0,1,1),i.setUint16(2,n-4,1),16&n&&(i.setBigUint64(4,e.u,1),i.setBigUint64(12,e.u,1)),i.setBigUint64(n-8,t,1),r(i)}function B(e){return e instanceof File||e instanceof Response?[[e],[e]]:[[e.input,e.name,e.size],[e.input,e.lastModified]]}var x=e=>function(e){let t=BigInt(22),n=0n,a=0;for(const r of e){if(!r.o)throw new Error("Every file must have a non-empty name.");if(void 0===r.u)throw new Error(`Missing size for file "${(new TextDecoder).decode(r.o)}".`);const e=r.u>=0xffffffffn,i=n>=0xffffffffn;n+=BigInt(46+r.o.length+(e&&8))+r.u,t+=BigInt(r.o.length+46+(12*i|28*e)),a||(a=e)}return(a||n>=0xffffffffn)&&(t+=BigInt(76)),t+n}(function*(e){for(const t of e)yield f(...B(t)[0])}(e));function C(e,t={}){const n={"Content-Type":"application/zip","Content-Disposition":"attachment"};return("bigint"==typeof t.length||Number.isInteger(t.length))&&t.length>0&&(n["Content-Length"]=String(t.length)),t.metadata&&(n["Content-Length"]=String(x(t.metadata))),new Response(N(e,t),{headers:n})}function N(e,t={}){const n=function(e){const t=e[Symbol.iterator in e?Symbol.iterator:Symbol.asyncIterator]();return{async next(){const e=await t.next();if(e.done)return e;const[n,a]=B(e.value);return{done:0,value:Object.assign(s(...a),f(...n))}},throw:t.throw?.bind(t),[Symbol.asyncIterator](){return this}}}(e);return u(async function*(e,t){const n=[];let i=0n,s=0n,u=0;for await(const a of e){const e=v(a,t.buffersAreUTF8);yield b(a,e),yield new Uint8Array(a.o),a.isFile&&(yield*w(a));const r=a.u>=0xffffffffn,o=12*(i>=0xffffffffn)|28*r;yield A(a,r),n.push(E(a,i,e,o)),n.push(a.o),o&&n.push(U(a,i,o)),r&&(i+=8n),s++,i+=BigInt(46+a.o.length)+a.u,u||(u=r)}let c=0n;for(const e of n)yield e,c+=BigInt(e.length);if(u||i>=0xffffffffn){const e=a(76);e.setUint32(0,1347094022),e.setBigUint64(4,BigInt(44),1),e.setUint32(12,755182848),e.setBigUint64(24,s,1),e.setBigUint64(32,s,1),e.setBigUint64(40,c,1),e.setBigUint64(48,i,1),e.setUint32(56,1347094023),e.setBigUint64(64,i+c,1),e.setUint32(72,1,1),yield r(e)}const f=a(22);f.setUint32(0,1347093766),f.setUint16(8,l(s),1),f.setUint16(10,l(s),1),f.setUint32(12,o(c),1),f.setUint32(16,o(i),1),yield r(f)}(n,t),n)}}}]); +//# sourceMappingURL=5318.c8a8d57b8ab8cc30b9e7.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js.map b/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js.map new file mode 100644 index 00000000..0f1e04e8 --- /dev/null +++ b/webpanel/6.6.0/5318.c8a8d57b8ab8cc30b9e7.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5318.c8a8d57b8ab8cc30b9e7.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/utils/InputField.tsx","webpack://tgstation-server-control-panel/./src/components/utils/InputForm.tsx","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/contexts/InstanceEditContext.ts","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/ButtonGroup.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/InputGroup.js","webpack://tgstation-server-control-panel/./node_modules/client-zip/index.js"],"sourcesContent":["import { faInfo } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nexport type AnyEnum = {\n [key: string]: string | number;\n [index: number]: string;\n};\n\nexport enum FieldType {\n Boolean = \"boolean\",\n Number = \"number\",\n String = \"string\",\n TextArea = \"textarea\",\n Password = \"password\",\n Enum = \"enum\"\n}\n\nexport type InputFieldTypes = number | string | boolean;\n\nexport type InputFieldProps = {\n name: string;\n disabled?: boolean;\n tooltip?: string;\n type: FieldType;\n hideReadOnly?: boolean;\n additionalAppend?: React.ReactNode;\n forceChanged?: boolean;\n} & (\n | {\n defaultValue?: boolean | null;\n onChange: (newValue: boolean, isValid: boolean) => unknown;\n type: FieldType.Boolean;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Number;\n min?: number;\n max?: number;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.String;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.TextArea;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.Password;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Enum;\n noLocalize?: boolean;\n enum: AnyEnum;\n }\n);\n\ninterface ControlProps {\n value: InputFieldTypes;\n onChange: (newvalue: InputFieldTypes) => unknown;\n disabled?: boolean;\n name: string;\n}\n\nconst StringControl = React.forwardRef(\n function StringControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n ref={ref}\n />\n );\n }\n);\n\nconst TextAreaControl = React.forwardRef(\n function StringControl(props): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n />\n );\n }\n);\n\nconst PasswordControl = React.forwardRef(\n function PasswordControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n type=\"password\"\n ref={ref}\n />\n );\n }\n);\n\nconst BooleanControl = React.forwardRef(\n function BooleanControl(props, ref): JSX.Element {\n const rndId = Math.random().toString();\n return (\n \n props.onChange(e.target.checked)}\n type=\"switch\"\n className=\"m-auto\"\n disabled={props.disabled}\n ref={ref}\n />\n \n );\n }\n);\n\ntype NumberControlProps = ControlProps & {\n min?: number;\n max?: number;\n};\nconst NumberControl = React.forwardRef(\n function NumberControl(props, ref): JSX.Element {\n return (\n ) =>\n props.onChange(\n isNaN(e.target.valueAsNumber) ? e.target.value : e.target.valueAsNumber\n )\n }\n disabled={props.disabled}\n min={props.min}\n max={props.max}\n type=\"number\"\n ref={ref}\n />\n );\n }\n);\n\ntype EnumControlProps = ControlProps & {\n enum: AnyEnum;\n noLocalize?: boolean;\n};\nconst EnumControl = React.forwardRef(\n function EnumControl(props, ref): JSX.Element {\n return (\n props.onChange(parseInt(e.target.value))}\n disabled={props.disabled}\n as=\"select\"\n custom\n ref={ref}>\n {Object.entries(props.enum)\n //filters out reverse mapping\n .filter(([key]) => isNaN(parseInt(key)))\n .map(([key, value]) => {\n return props.noLocalize ? (\n \n ) : (\n \n {message => (\n \n )}\n \n );\n })}\n \n );\n }\n);\n\nexport const defaultValues: Record = {\n [FieldType.Enum]: 0,\n [FieldType.Number]: 0,\n [FieldType.Boolean]: false,\n [FieldType.String]: \"\",\n [FieldType.Password]: \"\",\n [FieldType.TextArea]: \"\"\n};\n\nexport default function InputField(props: InputFieldProps): JSX.Element {\n const [currentValue, setCurrentValue] = useState(\n props.defaultValue ?? defaultValues[props.type]\n );\n const controlRef = useRef(null);\n useEffect(() => {\n setCurrentValue(props.defaultValue ?? defaultValues[props.type]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.defaultValue]);\n\n useEffect(() => {\n if (controlRef.current) {\n if (controlRef.current.checkValidity()) {\n controlRef.current.classList.remove(\"is-invalid\");\n } else {\n controlRef.current.classList.add(\"is-invalid\");\n }\n }\n\n switch (props.type) {\n case FieldType.Boolean:\n props.onChange(\n currentValue as boolean,\n controlRef.current?.checkValidity() ?? true\n );\n return;\n case FieldType.Enum:\n case FieldType.Number:\n props.onChange(currentValue as number, controlRef.current?.checkValidity() ?? true);\n return;\n case FieldType.String:\n case FieldType.Password:\n case FieldType.TextArea:\n props.onChange(currentValue as string, controlRef.current?.checkValidity() ?? true);\n return;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue]);\n\n const tooltip = (innerid?: string) => {\n if (!innerid) return ;\n\n return (\n \n \n \n );\n };\n\n const basicControls: {\n [Property in typeof props.type]: Property extends FieldType.Enum | FieldType.Number\n ? undefined\n : React.FC;\n } = {\n string: StringControl,\n password: PasswordControl,\n boolean: BooleanControl,\n textarea: TextAreaControl,\n [FieldType.Number]: undefined,\n [FieldType.Enum]: undefined\n };\n\n const changed =\n currentValue != (props.defaultValue ?? defaultValues[props.type]) || props.forceChanged;\n\n return (\n \n \n {({ ref, ...triggerHandler }) => (\n \n \n \n \n \n
    \n {props.disabled && !props.hideReadOnly ? (\n \n ) : null}\n \n \n
    \n \n
    \n
    \n )}\n \n {props.type === FieldType.Number ? (\n setCurrentValue(newValue)}\n name={props.name}\n disabled={props.disabled}\n max={props.max}\n min={props.min}\n ref={controlRef}\n />\n ) : props.type === FieldType.Enum ? (\n setCurrentValue(newValue)}\n name={props.name}\n enum={props.enum}\n noLocalize={props.noLocalize}\n disabled={props.disabled}\n />\n ) : (\n React.createElement>(\n basicControls[props.type],\n {\n value: currentValue,\n onChange: newValue => setCurrentValue(newValue),\n disabled: props.disabled,\n name: props.type,\n ref: controlRef\n }\n )\n )}\n {!(!changed || props.disabled) || props.additionalAppend ? (\n \n {!(!changed || props.disabled) ? (\n \n setCurrentValue(props.defaultValue ?? defaultValues[props.type])\n }>\n \n \n ) : null}\n {props.additionalAppend}\n \n ) : null}\n
    \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { DistributiveOmit } from \"../../utils/misc\";\nimport InputField, {\n defaultValues,\n FieldType,\n InputFieldProps,\n InputFieldTypes\n} from \"./InputField\";\n\ntype ExtractValues = T extends T ? T[keyof T] : never;\n\ntype FieldsOutput> = {\n [Id in keyof Fields]: Fields[Id][\"type\"] extends FieldType.Number\n ? number\n : Fields[Id][\"type\"] extends FieldType.Enum\n ? // @ts-expect-error Typescript doesnt seem to support union descrimination in conditional types\n ExtractValues\n : Fields[Id][\"type\"] extends FieldType.Boolean\n ? boolean\n : Fields[Id][\"type\"] extends FieldType.String\n ? string\n : Fields[Id][\"type\"] extends FieldType.Password\n ? string\n : Fields[Id][\"type\"] extends FieldType.TextArea\n ? string\n : never;\n};\n\nexport type InputFormField = DistributiveOmit & {\n alwaysInclude?: boolean;\n};\ninterface IProps> {\n fields: Fields;\n onSave: (fields: FieldsOutput) => unknown;\n readOnly?: boolean;\n hideDisabled?: boolean;\n includeAll?: boolean;\n saveMessageId?: string;\n alwaysAllowSave?: boolean;\n}\n\ninterface FieldState {\n invalid?: boolean;\n}\n\nexport default function InputForm>(\n props: IProps\n): JSX.Element {\n const fieldValueStates = new Map<\n InputFormField,\n [InputFieldTypes, React.Dispatch>]\n >();\n const fieldStateIds = new Map();\n const [fieldStates, setFieldStates] = useState>({});\n\n useEffect(() => {\n Object.keys(props.fields).forEach(id => {\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {}\n }));\n });\n // It wants props.fields, but you really shouldnt ever change it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n for (const [id, field] of Object.entries(props.fields)) {\n fieldStateIds.set(id, field);\n fieldValueStates.set(\n field,\n // props.fields never changes, it will be\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useState(field.defaultValue ?? defaultValues[field.type])\n );\n }\n\n let anyDiff = props.alwaysAllowSave;\n let anyInvalid = false;\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n const fieldState = fieldStates[id];\n if ((fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) != fieldValue)\n anyDiff = true;\n if (fieldState?.invalid) anyInvalid = true;\n\n if (anyDiff && anyInvalid) break;\n }\n\n const save = () => {\n const outputObject: Record = {};\n\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n\n if (\n !fieldDescriptor.alwaysInclude &&\n fieldValue ==\n (fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) &&\n !props.includeAll\n )\n continue;\n\n outputObject[id] = fieldValue;\n }\n // @ts-expect-error I can't be assed to turn this generic object into the specially crafted output type, its mostly for public api sanity so i dont care\n props.onSave(outputObject);\n };\n\n //Don't show anything including the save button if we are hiding every single field\n if (props.hideDisabled) {\n if (!Object.values(props.fields).some(field => !field.disabled)) {\n return <>;\n }\n }\n\n return (\n
    \n {Object.entries(props.fields).map(([id, field]) => {\n const { disabled, ...innerProps } = field;\n if (props.hideDisabled && disabled) return null;\n\n return (\n {\n fieldValueStates.get(field)![1](newVal);\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {\n ...prevState[id],\n invalid: !isValid\n }\n }));\n }}\n />\n );\n })}\n
    \n \n \n \n }\n show={anyInvalid ? undefined : false}>\n \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\n\nimport type {\n InstancePermissionSetResponse,\n InstanceResponse,\n ServerInformationResponse,\n UserResponse\n} from \"../ApiClient/generatedcode/generated\";\nimport InternalError from \"../ApiClient/models/InternalComms/InternalError\";\n\nexport type InstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse;\n};\n\n//same as InstanceEditContext except used for components which arent loading under instanceedit so we cant guarentee that instance wont be null\nexport type UnsafeInstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse | null;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse | null;\n};\n\nexport const InstanceEditContext = React.createContext(\n undefined as unknown as InstanceEditContext\n);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"size\", \"toggle\", \"vertical\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n vertical: false,\n toggle: false,\n role: 'group'\n};\nvar ButtonGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n toggle = _ref.toggle,\n vertical = _ref.vertical,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n var baseClass = prefix;\n if (vertical) baseClass = prefix + \"-vertical\";\n return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n className: classNames(className, baseClass, size && prefix + \"-\" + size, toggle && prefix + \"-toggle\")\n }));\n});\nButtonGroup.displayName = 'ButtonGroup';\nButtonGroup.defaultProps = defaultProps;\nexport default ButtonGroup;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _excluded = [\"bsPrefix\", \"size\", \"hasValidation\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n hasValidation = _ref.hasValidation,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size, hasValidation && 'has-validation')\n }));\n});\nInputGroup.displayName = 'InputGroup';\nInputGroup.Text = InputGroupText;\nInputGroup.Radio = InputGroupRadio;\nInputGroup.Checkbox = InputGroupCheckbox;\nInputGroup.Append = InputGroupAppend;\nInputGroup.Prepend = InputGroupPrepend;\nexport default InputGroup;","\"stream\"in Blob.prototype||Object.defineProperty(Blob.prototype,\"stream\",{value(){return new Response(this).body}}),\"setBigUint64\"in DataView.prototype||Object.defineProperty(DataView.prototype,\"setBigUint64\",{value(e,n,t){const i=Number(0xffffffffn&n),r=Number(n>>32n);this.setUint32(e+(t?0:4),i,t),this.setUint32(e+(t?4:0),r,t)}});var e=e=>new DataView(new ArrayBuffer(e)),n=e=>new Uint8Array(e.buffer||e),t=e=>(new TextEncoder).encode(String(e)),i=e=>Math.min(4294967295,Number(e)),r=e=>Math.min(65535,Number(e));function f(e,i){if(void 0===i||i instanceof Date||(i=new Date(i)),e instanceof File)return{isFile:1,t:i||new Date(e.lastModified),i:e.stream()};if(e instanceof Response)return{isFile:1,t:i||new Date(e.headers.get(\"Last-Modified\")||Date.now()),i:e.body};if(void 0===i)i=new Date;else if(isNaN(i))throw new Error(\"Invalid modification date.\");if(void 0===e)return{isFile:0,t:i};if(\"string\"==typeof e)return{isFile:1,t:i,i:t(e)};if(e instanceof Blob)return{isFile:1,t:i,i:e.stream()};if(e instanceof Uint8Array||e instanceof ReadableStream)return{isFile:1,t:i,i:e};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{isFile:1,t:i,i:n(e)};if(Symbol.asyncIterator in e)return{isFile:1,t:i,i:o(e[Symbol.asyncIterator]())};throw new TypeError(\"Unsupported input format.\")}function o(e,n=e){return new ReadableStream({async pull(n){let t=0;for(;n.desiredSize>t;){const i=await e.next();if(!i.value){n.close();break}{const e=a(i.value);n.enqueue(e),t+=e.byteLength}}},cancel(e){n.throw?.(e)}})}function a(e){return\"string\"==typeof e?t(e):e instanceof Uint8Array?e:n(e)}function s(e,i,r){let[f,o]=function(e){return e?e instanceof Uint8Array?[e,1]:ArrayBuffer.isView(e)||e instanceof ArrayBuffer?[n(e),1]:[t(e),0]:[void 0,0]}(i);if(e instanceof File)return{o:d(f||t(e.name)),u:BigInt(e.size),l:o};if(e instanceof Response){const n=e.headers.get(\"content-disposition\"),i=n&&n.match(/;\\s*filename\\*?=[\"']?(.*?)[\"']?$/i),a=i&&i[1]||e.url&&new URL(e.url).pathname.split(\"/\").findLast(Boolean),s=a&&decodeURIComponent(a),u=r||+e.headers.get(\"content-length\");return{o:d(f||t(s)),u:BigInt(u),l:o}}return f=d(f,void 0!==e||void 0!==r),\"string\"==typeof e?{o:f,u:BigInt(t(e).length),l:o}:e instanceof Blob?{o:f,u:BigInt(e.size),l:o}:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?{o:f,u:BigInt(e.byteLength),l:o}:{o:f,u:u(e,r),l:o}}function u(e,n){return n>-1?BigInt(n):e?void 0:0n}function d(e,n=1){if(!e||e.every((c=>47===c)))throw new Error(\"The file must have a name.\");if(n)for(;47===e[e.length-1];)e=e.subarray(0,-1);else 47!==e[e.length-1]&&(e=new Uint8Array([...e,47]));return e}var l=new Uint32Array(256);for(let e=0;e<256;++e){let n=e;for(let e=0;e<8;++e)n=n>>>1^(1&n&&3988292384);l[e]=n}function y(e,n=0){n^=-1;for(var t=0,i=e.length;t>>8^l[255&n^e[t]];return(-1^n)>>>0}function w(e,n,t=0){const i=e.getSeconds()>>1|e.getMinutes()<<5|e.getHours()<<11,r=e.getDate()|e.getMonth()+1<<5|e.getFullYear()-1980<<9;n.setUint16(t,i,1),n.setUint16(t+2,r,1)}function B({o:e,l:n},t){return 8*(!n||(t??function(e){try{b.decode(e)}catch{return 0}return 1}(e)))}var b=new TextDecoder(\"utf8\",{fatal:1});function p(t,i=0){const r=e(30);return r.setUint32(0,1347093252),r.setUint32(4,754976768|i),w(t.t,r,10),r.setUint16(26,t.o.length,1),n(r)}async function*g(e){let{i:n}=e;if(\"then\"in n&&(n=await n),n instanceof Uint8Array)yield n,e.m=y(n,0),e.u=BigInt(n.length);else{e.u=0n;const t=n.getReader();for(;;){const{value:n,done:i}=await t.read();if(i)break;e.m=y(n,e.m),e.u+=BigInt(n.length),yield n}}}function I(t,r){const f=e(16+(r?8:0));return f.setUint32(0,1347094280),f.setUint32(4,t.isFile?t.m:0,1),r?(f.setBigUint64(8,t.u,1),f.setBigUint64(16,t.u,1)):(f.setUint32(8,i(t.u),1),f.setUint32(12,i(t.u),1)),n(f)}function v(t,r,f=0,o=0){const a=e(46);return a.setUint32(0,1347092738),a.setUint32(4,755182848),a.setUint16(8,2048|f),w(t.t,a,12),a.setUint32(16,t.isFile?t.m:0,1),a.setUint32(20,i(t.u),1),a.setUint32(24,i(t.u),1),a.setUint16(28,t.o.length,1),a.setUint16(30,o,1),a.setUint16(40,t.isFile?33204:16893,1),a.setUint32(42,i(r),1),n(a)}function h(t,i,r){const f=e(r);return f.setUint16(0,1,1),f.setUint16(2,r-4,1),16&r&&(f.setBigUint64(4,t.u,1),f.setBigUint64(12,t.u,1)),f.setBigUint64(r-8,i,1),n(f)}function D(e){return e instanceof File||e instanceof Response?[[e],[e]]:[[e.input,e.name,e.size],[e.input,e.lastModified]]}var S=e=>function(e){let n=BigInt(22),t=0n,i=0;for(const r of e){if(!r.o)throw new Error(\"Every file must have a non-empty name.\");if(void 0===r.u)throw new Error(`Missing size for file \"${(new TextDecoder).decode(r.o)}\".`);const e=r.u>=0xffffffffn,f=t>=0xffffffffn;t+=BigInt(46+r.o.length+(e&&8))+r.u,n+=BigInt(r.o.length+46+(12*f|28*e)),i||(i=e)}return(i||t>=0xffffffffn)&&(n+=BigInt(76)),n+t}(function*(e){for(const n of e)yield s(...D(n)[0])}(e));function A(e,n={}){const t={\"Content-Type\":\"application/zip\",\"Content-Disposition\":\"attachment\"};return(\"bigint\"==typeof n.length||Number.isInteger(n.length))&&n.length>0&&(t[\"Content-Length\"]=String(n.length)),n.metadata&&(t[\"Content-Length\"]=String(S(n.metadata))),new Response(N(e,n),{headers:t})}function N(t,a={}){const u=function(e){const n=e[Symbol.iterator in e?Symbol.iterator:Symbol.asyncIterator]();return{async next(){const e=await n.next();if(e.done)return e;const[t,i]=D(e.value);return{done:0,value:Object.assign(f(...i),s(...t))}},throw:n.throw?.bind(n),[Symbol.asyncIterator](){return this}}}(t);return o(async function*(t,f){const o=[];let a=0n,s=0n,u=0;for await(const e of t){const n=B(e,f.buffersAreUTF8);yield p(e,n),yield new Uint8Array(e.o),e.isFile&&(yield*g(e));const t=e.u>=0xffffffffn,i=12*(a>=0xffffffffn)|28*t;yield I(e,t),o.push(v(e,a,n,i)),o.push(e.o),i&&o.push(h(e,a,i)),t&&(a+=8n),s++,a+=BigInt(46+e.o.length)+e.u,u||(u=t)}let d=0n;for(const e of o)yield e,d+=BigInt(e.length);if(u||a>=0xffffffffn){const t=e(76);t.setUint32(0,1347094022),t.setBigUint64(4,BigInt(44),1),t.setUint32(12,755182848),t.setBigUint64(24,s,1),t.setBigUint64(32,s,1),t.setBigUint64(40,d,1),t.setBigUint64(48,a,1),t.setUint32(56,1347094023),t.setBigUint64(64,a+d,1),t.setUint32(72,1,1),yield n(t)}const l=e(22);l.setUint32(0,1347093766),l.setUint16(8,r(s),1),l.setUint16(10,r(s),1),l.setUint32(12,i(d),1),l.setUint32(16,i(a),1),yield n(l)}(u,a),u)}export{A as downloadZip,N as makeZip,S as predictLength};"],"names":["FieldType","StringControl","React","props","ref","Form","Control","value","onChange","e","target","disabled","TextAreaControl","as","PasswordControl","type","BooleanControl","rndId","Math","random","toString","htmlFor","className","Check","id","checked","NumberControl","isNaN","valueAsNumber","min","max","EnumControl","parseInt","custom","Object","entries","enum","filter","key","map","noLocalize","FormattedMessage","name","message","defaultValues","Enum","Number","Boolean","String","Password","TextArea","InputField","currentValue","setCurrentValue","useState","defaultValue","controlRef","useRef","useEffect","current","checkValidity","classList","remove","add","basicControls","string","password","boolean","textarea","undefined","changed","forceChanged","InputGroup","OverlayTrigger","overlay","innerid","tooltip","Tooltip","show","triggerHandler","Prepend","Text","_extends","hideReadOnly","style","visibility","FontAwesomeIcon","icon","faInfo","newValue","additionalAppend","Append","Button","variant","onClick","InputForm","fieldValueStates","Map","fieldStateIds","fieldStates","setFieldStates","keys","fields","forEach","prevState","field","set","anyDiff","alwaysAllowSave","anyInvalid","fieldDescriptor","fieldValue","get","fieldState","invalid","hideDisabled","values","some","innerProps","readOnly","newVal","isValid","save","outputObject","alwaysInclude","includeAll","onSave","saveMessageId","JsonViewer","ReactJson","src","obj","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","InstanceEditContext","_excluded","ButtonGroup","_ref","bsPrefix","size","toggle","vertical","_ref$as","Component","rest","prefix","baseClass","displayName","defaultProps","role","InputGroupAppend","InputGroupPrepend","InputGroupText","hasValidation","Radio","Checkbox","Blob","prototype","defineProperty","Response","this","body","DataView","n","t","i","r","setUint32","ArrayBuffer","Uint8Array","buffer","TextEncoder","encode","f","Date","File","isFile","lastModified","stream","headers","now","Error","ReadableStream","isView","Symbol","asyncIterator","o","TypeError","pull","desiredSize","next","close","a","enqueue","byteLength","cancel","throw","s","d","u","BigInt","l","match","url","URL","pathname","split","findLast","decodeURIComponent","length","every","c","subarray","Uint32Array","y","w","getSeconds","getMinutes","getHours","getDate","getMonth","getFullYear","setUint16","B","b","decode","TextDecoder","fatal","p","async","g","m","getReader","done","read","I","setBigUint64","v","h","D","input","S","A","isInteger","metadata","N","iterator","assign","bind","buffersAreUTF8","push"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js b/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js new file mode 100644 index 00000000..200f190a --- /dev/null +++ b/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5330],{6411:function(c,i){var a="git-alt",e=[],n="f841",s="M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z";i.mw={prefix:"fab",iconName:a,icon:[448,512,e,n,s]},i.b0=i.mw},2862:function(c,i){var a="angle-right",e=[8250],n="f105",s="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z";i.mw={prefix:"fas",iconName:a,icon:[320,512,e,n,s]},i.vm=i.mw},1626:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="arrow-rotate-left",e=[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],n="f0e2",s="M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faArrowRotateLeft=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},2148:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="arrows-rotate",e=[128472,"refresh","sync"],n="f021",s="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faArrowsRotate=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},5429:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="bars-staggered",e=["reorder","stream"],n="f550",s="M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faBarsStaggered=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},1617:function(c,i){var a="check",e=[10003,10004],n="f00c",s="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,n,s]},i.e6=i.mw},5044:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="circle-exclamation",e=["exclamation-circle"],n="f06a",s="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faCircleExclamation=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},3569:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="circle-info",e=["info-circle"],n="f05a",s="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faCircleInfo=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},8152:function(c,i){var a="code-branch",e=[],n="f126",s="M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,n,s]},i.Xb=i.mw},6229:function(c,i,a){var e=a(8185);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.Ub=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},3847:function(c,i){var a="comments",e=[128490,61670],n="f086",s="M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z";i.mw={prefix:"fas",iconName:a,icon:[640,512,e,n,s]},i.q9=i.mw},8436:function(c,i,a){var e=a(5044);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.tU=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},2017:function(c,i){var a="folder-open",e=[128194,128449,61717],n="f07c",s="M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z";i.mw={prefix:"fas",iconName:a,icon:[576,512,e,n,s]},i.Uj=i.mw},8185:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="gears",e=["cogs"],n="f085",s="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";i.definition={prefix:"fas",iconName:a,icon:[640,512,e,n,s]},i.faGears=i.definition,i.prefix="fas",i.iconName=a,i.width=640,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},8092:function(c,i){var a="grip-lines-vertical",e=[],n="f7a5",s="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z";i.mw={prefix:"fas",iconName:a,icon:[192,512,e,n,s]},i.Z4=i.mw},3519:function(c,i){var a="hammer",e=[128296],n="f6e3",s="M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z";i.mw={prefix:"fas",iconName:a,icon:[576,512,e,n,s]},i.Qe=i.mw},8726:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="hard-drive",e=[128436,"hdd"],n="f0a0",s="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faHardDrive=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},8613:function(c,i,a){var e=a(8726);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.MB=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},2378:function(c,i,a){var e=a(3425);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.v0=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},3425:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="house",e=[127968,63498,63500,"home","home-alt","home-lg-alt"],n="f015",s="M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z";i.definition={prefix:"fas",iconName:a,icon:[576,512,e,n,s]},i.faHouse=i.definition,i.prefix="fas",i.iconName=a,i.width=576,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},4777:function(c,i){var a="info",e=[],n="f129",s="M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z";i.mw={prefix:"fas",iconName:a,icon:[192,512,e,n,s]},i.kt=i.mw},6913:function(c,i,a){var e=a(3569);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.iW=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},2110:function(c,i){var a=[128273],e="f084",n="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z";i.mw={prefix:"fas",iconName:"key",icon:[512,512,a,e,n]},i.bM=i.mw},2944:function(c,i){var a="list-ul",e=["list-dots"],n="f0ca",s="M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z";i.mw={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.pc=i.mw},9997:function(c,i){var a="lock",e=[128274],n="f023",s="M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,n,s]},i.DW=i.mw},4350:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="magnifying-glass",e=[128269,"search"],n="f002",s="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faMagnifyingGlass=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},8066:function(c,i){var a=[128394],e="f304",n="M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z";i.mw={prefix:"fas",iconName:"pen",icon:[512,512,a,e,n]},i.hp=i.mw},8045:function(c,i){var a="plus",e=[10133,61543,"add"],n="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,"2b",n]},i.QL=i.mw},2169:function(c,i){var a="question",e=[10067,10068,61736],n="M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z";i.mw={prefix:"fas",iconName:a,icon:[320,512,e,"3f",n]},i.Ev=i.mw},8642:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="screwdriver-wrench",e=["tools"],n="f7d9",s="M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z";i.definition={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.faScrewdriverWrench=i.definition,i.prefix="fas",i.iconName=a,i.width=512,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},1145:function(c,i,a){var e=a(4350);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.Mj=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},5074:function(c,i){var a="server",e=[],n="f233",s="M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z";i.mw={prefix:"fas",iconName:a,icon:[512,512,e,n,s]},i.D6=i.mw},2505:function(c,i,a){var e=a(5429);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.GK=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},990:function(c,i,a){var e=a(2148);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.VN=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},9179:function(c,i,a){var e=a(5976);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.GR=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},4522:function(c,i,a){var e=a(8642);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.ns=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},8275:function(c,i){var a="trash",e=[],n="f1f8",s="M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,n,s]},i.yL=i.mw},4123:function(c,i,a){var e=a(1626);i.mw={prefix:e.prefix,iconName:e.iconName,icon:[e.width,e.height,e.aliases,e.unicode,e.svgPathData]},i.U2=i.mw,e.prefix,e.iconName,e.width,e.height,e.aliases,e.unicode,e.svgPathData,e.aliases},4850:function(c,i){var a="user",e=[128100,62144],n="f007",s="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z";i.mw={prefix:"fas",iconName:a,icon:[448,512,e,n,s]},i.X4=i.mw},6249:function(c,i){var a="user-slash",e=[],n="f506",s="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z";i.mw={prefix:"fas",iconName:a,icon:[640,512,e,n,s]},i.c7=i.mw},9281:function(c,i){var a="users",e=[],n="f0c0",s="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z";i.mw={prefix:"fas",iconName:a,icon:[640,512,e,n,s]},i.gd=i.mw},5976:function(c,i){Object.defineProperty(i,"__esModule",{value:!0});var a="xmark",e=[128473,10005,10006,10060,215,"close","multiply","remove","times"],n="f00d",s="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z";i.definition={prefix:"fas",iconName:a,icon:[384,512,e,n,s]},i.faXmark=i.definition,i.prefix="fas",i.iconName=a,i.width=384,i.height=512,i.ligatures=e,i.unicode=n,i.svgPathData=s,i.aliases=e},5330:function(c,i,a){a.r(i),a.d(i,{default:function(){return W}});var e=a(7107),n=a(7875),s=a(6411),t=a(6188),o=a(2862),l=a(1617),f=a(8152),r=a(6229),m=a(3847),h=a(8436),d=a(2017),u=a(8092),w=a(3519),v=a(8613),p=a(2378),g=a(4777),x=a(6913),z=a(2110),M=a(2944),N=a(9997),L=a(8066),C=a(8045),P=a(2169),D=a(1145),b=a(5074),_=a(2505),y=a(990),j=a(9179),k=a(4522),S=a(8275),O=a(4123),A=a(4850),U=a(9281),G=a(6249);function W(){e.Yv.add(l.e6,j.GR,h.tU,A.X4,G.c7,v.MB,y.VN,C.QL,P.Ev,p.v0,k.ns,r.Ub,O.U2,g.kt,u.Z4,o.vm,z.bM,L.hp,n.Vz1,n._2G,S.yL,x.iW,s.b0,w.Qe,M.pc,m.q9,d.Uj,U.gd,f.Xb,D.Mj,b.D6,_.GK,N.DW,t.EZy,t.KKb,N.DW,t.fU5,t.xBV,t.DN2,t.CYF,t.E5r,t.WkZ,t.A4h,t.h8M,t.zpE,t.KTq,t.CeG,o.vm,t.JmV,t.Rbk)}}}]); +//# sourceMappingURL=5330.b229757bca0aa85557ba.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js.map b/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js.map new file mode 100644 index 00000000..1b371f68 --- /dev/null +++ b/webpanel/6.6.0/5330.b229757bca0aa85557ba.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5330.b229757bca0aa85557ba.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faGitAlt.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faArrowRotateLeft.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faArrowsRotate.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faBarsStaggered.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faCheck.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faCircleExclamation.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faCircleInfo.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faCogs.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faComments.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faGears.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faHammer.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faHardDrive.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faHdd.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faHome.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faHouse.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faInfo.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faKey.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faListUl.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faLock.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faMagnifyingGlass.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faPen.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faPlus.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faQuestion.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faScrewdriverWrench.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faSearch.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faServer.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faStream.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faSync.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faTimes.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faTools.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faTrash.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faUndo.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faUser.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faUsers.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faXmark.js","webpack://tgstation-server-control-panel/./src/utils/icolibrary.ts"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'git-alt';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f841';\nvar svgPathData = 'M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faGitAlt = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'angle-right';\nvar width = 320;\nvar height = 512;\nvar aliases = [8250];\nvar unicode = 'f105';\nvar svgPathData = 'M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faAngleRight = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'arrow-rotate-left';\nvar width = 512;\nvar height = 512;\nvar aliases = [8634,\"arrow-left-rotate\",\"arrow-rotate-back\",\"arrow-rotate-backward\",\"undo\"];\nvar unicode = 'f0e2';\nvar svgPathData = 'M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faArrowRotateLeft = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'arrows-rotate';\nvar width = 512;\nvar height = 512;\nvar aliases = [128472,\"refresh\",\"sync\"];\nvar unicode = 'f021';\nvar svgPathData = 'M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faArrowsRotate = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'bars-staggered';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"reorder\",\"stream\"];\nvar unicode = 'f550';\nvar svgPathData = 'M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faBarsStaggered = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'check';\nvar width = 448;\nvar height = 512;\nvar aliases = [10003,10004];\nvar unicode = 'f00c';\nvar svgPathData = 'M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faCheck = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'circle-exclamation';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"exclamation-circle\"];\nvar unicode = 'f06a';\nvar svgPathData = 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faCircleExclamation = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'circle-info';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"info-circle\"];\nvar unicode = 'f05a';\nvar svgPathData = 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faCircleInfo = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'code-branch';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f126';\nvar svgPathData = 'M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faCodeBranch = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faGears');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faCogs = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'comments';\nvar width = 640;\nvar height = 512;\nvar aliases = [128490,61670];\nvar unicode = 'f086';\nvar svgPathData = 'M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faComments = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faCircleExclamation');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faExclamationCircle = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'folder-open';\nvar width = 576;\nvar height = 512;\nvar aliases = [128194,128449,61717];\nvar unicode = 'f07c';\nvar svgPathData = 'M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faFolderOpen = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'gears';\nvar width = 640;\nvar height = 512;\nvar aliases = [\"cogs\"];\nvar unicode = 'f085';\nvar svgPathData = 'M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faGears = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'grip-lines-vertical';\nvar width = 192;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f7a5';\nvar svgPathData = 'M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faGripLinesVertical = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'hammer';\nvar width = 576;\nvar height = 512;\nvar aliases = [128296];\nvar unicode = 'f6e3';\nvar svgPathData = 'M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faHammer = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'hard-drive';\nvar width = 512;\nvar height = 512;\nvar aliases = [128436,\"hdd\"];\nvar unicode = 'f0a0';\nvar svgPathData = 'M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faHardDrive = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faHardDrive');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faHdd = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faHouse');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faHome = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'house';\nvar width = 576;\nvar height = 512;\nvar aliases = [127968,63498,63500,\"home\",\"home-alt\",\"home-lg-alt\"];\nvar unicode = 'f015';\nvar svgPathData = 'M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faHouse = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'info';\nvar width = 192;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f129';\nvar svgPathData = 'M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faInfo = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faCircleInfo');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faInfoCircle = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'key';\nvar width = 512;\nvar height = 512;\nvar aliases = [128273];\nvar unicode = 'f084';\nvar svgPathData = 'M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faKey = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'list-ul';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"list-dots\"];\nvar unicode = 'f0ca';\nvar svgPathData = 'M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faListUl = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'lock';\nvar width = 448;\nvar height = 512;\nvar aliases = [128274];\nvar unicode = 'f023';\nvar svgPathData = 'M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faLock = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'magnifying-glass';\nvar width = 512;\nvar height = 512;\nvar aliases = [128269,\"search\"];\nvar unicode = 'f002';\nvar svgPathData = 'M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faMagnifyingGlass = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'pen';\nvar width = 512;\nvar height = 512;\nvar aliases = [128394];\nvar unicode = 'f304';\nvar svgPathData = 'M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faPen = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'plus';\nvar width = 448;\nvar height = 512;\nvar aliases = [10133,61543,\"add\"];\nvar unicode = '2b';\nvar svgPathData = 'M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faPlus = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'question';\nvar width = 320;\nvar height = 512;\nvar aliases = [10067,10068,61736];\nvar unicode = '3f';\nvar svgPathData = 'M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faQuestion = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'screwdriver-wrench';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"tools\"];\nvar unicode = 'f7d9';\nvar svgPathData = 'M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faScrewdriverWrench = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faMagnifyingGlass');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faSearch = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'server';\nvar width = 512;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f233';\nvar svgPathData = 'M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faServer = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faBarsStaggered');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faStream = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faArrowsRotate');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faSync = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faXmark');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faTimes = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faScrewdriverWrench');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faTools = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'trash';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f1f8';\nvar svgPathData = 'M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faTrash = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar source = require('./faArrowRotateLeft');\nexports.definition = {\n prefix: source.prefix,\n iconName: source.iconName,\n icon: [\n source.width,\n source.height,\n source.aliases,\n source.unicode,\n source.svgPathData\n ]};\n\nexports.faUndo = exports.definition;\nexports.prefix = source.prefix;\nexports.iconName = source.iconName;\nexports.width = source.width;\nexports.height = source.height;\nexports.ligatures = source.aliases;\nexports.unicode = source.unicode;\nexports.svgPathData = source.svgPathData;\nexports.aliases = source.aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'user';\nvar width = 448;\nvar height = 512;\nvar aliases = [128100,62144];\nvar unicode = 'f007';\nvar svgPathData = 'M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faUser = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'user-slash';\nvar width = 640;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f506';\nvar svgPathData = 'M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faUserSlash = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'users';\nvar width = 640;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f0c0';\nvar svgPathData = 'M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faUsers = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'xmark';\nvar width = 384;\nvar height = 512;\nvar aliases = [128473,10005,10006,10060,215,\"close\",\"multiply\",\"remove\",\"times\"];\nvar unicode = 'f00d';\nvar svgPathData = 'M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faXmark = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { faDiscord, faGithub } from \"@fortawesome/free-brands-svg-icons\";\nimport { faGitAlt } from \"@fortawesome/free-brands-svg-icons/faGitAlt\";\nimport {\n faArrowLeft,\n faCaretDown,\n faCaretRight,\n faClipboard,\n faComment,\n faExclamationTriangle,\n faFile,\n faFileAlt,\n faFolderMinus,\n faFolderPlus,\n faGamepad,\n faHashtag,\n faMinus,\n faUnlock,\n faUpload\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faAngleRight } from \"@fortawesome/free-solid-svg-icons/faAngleRight\";\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { faCodeBranch } from \"@fortawesome/free-solid-svg-icons/faCodeBranch\";\nimport { faCogs } from \"@fortawesome/free-solid-svg-icons/faCogs\";\nimport { faComments } from \"@fortawesome/free-solid-svg-icons/faComments\";\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons/faExclamationCircle\";\nimport { faFolderOpen } from \"@fortawesome/free-solid-svg-icons/faFolderOpen\";\nimport { faGripLinesVertical } from \"@fortawesome/free-solid-svg-icons/faGripLinesVertical\";\nimport { faHammer } from \"@fortawesome/free-solid-svg-icons/faHammer\";\nimport { faHdd } from \"@fortawesome/free-solid-svg-icons/faHdd\";\nimport { faHome } from \"@fortawesome/free-solid-svg-icons/faHome\";\nimport { faInfo } from \"@fortawesome/free-solid-svg-icons/faInfo\";\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons/faInfoCircle\";\nimport { faKey } from \"@fortawesome/free-solid-svg-icons/faKey\";\nimport { faListUl } from \"@fortawesome/free-solid-svg-icons/faListUl\";\nimport { faLock } from \"@fortawesome/free-solid-svg-icons/faLock\";\nimport { faPen } from \"@fortawesome/free-solid-svg-icons/faPen\";\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons/faPlus\";\nimport { faQuestion } from \"@fortawesome/free-solid-svg-icons/faQuestion\";\nimport { faSearch } from \"@fortawesome/free-solid-svg-icons/faSearch\";\nimport { faServer } from \"@fortawesome/free-solid-svg-icons/faServer\";\nimport { faStream } from \"@fortawesome/free-solid-svg-icons/faStream\";\nimport { faSync } from \"@fortawesome/free-solid-svg-icons/faSync\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\nimport { faTools } from \"@fortawesome/free-solid-svg-icons/faTools\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons/faTrash\";\nimport { faUndo } from \"@fortawesome/free-solid-svg-icons/faUndo\";\nimport { faUser } from \"@fortawesome/free-solid-svg-icons/faUser\";\nimport { faUsers } from \"@fortawesome/free-solid-svg-icons/faUsers\";\nimport { faUserSlash } from \"@fortawesome/free-solid-svg-icons/faUserSlash\";\n\nexport default function (): void {\n library.add(\n faCheck,\n faTimes,\n faExclamationCircle,\n faUser,\n faUserSlash,\n faHdd,\n faSync,\n faPlus,\n faQuestion,\n faHome,\n faTools,\n faCogs,\n faUndo,\n faInfo,\n faGripLinesVertical,\n faAngleRight,\n faKey,\n faPen,\n faGithub,\n faDiscord,\n faTrash,\n faInfoCircle,\n faGitAlt,\n faHammer,\n faListUl,\n faComments,\n faFolderOpen,\n faUsers,\n faCodeBranch,\n faSearch,\n faServer,\n faStream,\n faLock,\n faMinus,\n faUnlock,\n faLock,\n faCaretRight,\n faCaretDown,\n faComment,\n faHashtag,\n faFolderPlus,\n faFolderMinus,\n faFile,\n faFileAlt,\n faExclamationTriangle,\n faClipboard,\n faArrowLeft,\n faAngleRight,\n faUpload,\n faGamepad\n );\n}\n"],"names":["iconName","aliases","unicode","svgPathData","exports","prefix","icon","Object","defineProperty","value","definition","faArrowRotateLeft","width","height","ligatures","faArrowsRotate","faBarsStaggered","faCircleExclamation","faCircleInfo","source","faGears","faHardDrive","faHouse","faMagnifyingGlass","faScrewdriverWrench","faXmark","library","add","faCheck","faTimes","faExclamationCircle","faUser","faUserSlash","faHdd","faSync","faPlus","faQuestion","faHome","faTools","faCogs","faUndo","faInfo","faGripLinesVertical","faAngleRight","faKey","faPen","faGithub","faDiscord","faTrash","faInfoCircle","faGitAlt","faHammer","faListUl","faComments","faFolderOpen","faUsers","faCodeBranch","faSearch","faServer","faStream","faLock","faMinus","faUnlock","faCaretRight","faCaretDown","faComment","faHashtag","faFolderPlus","faFolderMinus","faFile","faFileAlt","faExclamationTriangle","faClipboard","faArrowLeft","faUpload","faGamepad"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5331.e4658ef086b2b096132f.bundle.js b/webpanel/6.6.0/5331.e4658ef086b2b096132f.bundle.js new file mode 100644 index 00000000..8c9b22f2 --- /dev/null +++ b/webpanel/6.6.0/5331.e4658ef086b2b096132f.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5331],{8385:function(e){"use strict";e.exports=function(e){if(e)throw e}},2849:function(e){"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},u=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,i=t.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!o)return!1;for(r in e);return void 0===r||t.call(e,r)},c=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(i)return i(e,n).value}return e[n]};e.exports=function e(){var t,n,r,i,a,l,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},6873:function(e,t,n){var r=n(6311);e.exports=function(){return function(e){return r(e,"list",(function(e,t){var n,r,i=0;for(n=0,r=t.length;n-1&&(M.call(this,e),L.call(this,e))}function R(){h("atHardBreak",!0)}function q(){var e=this.resume();this.stack[this.stack.length-1].value=e}function U(){var e=this.resume();this.stack[this.stack.length-1].value=e}function N(){var e=this.resume();this.stack[this.stack.length-1].value=e}function V(){var e=this.stack[this.stack.length-1];m("inReference")?(e.type+="Reference",e.referenceType=m("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),h("referenceType")}function Q(){var e=this.stack[this.stack.length-1];m("inReference")?(e.type+="Reference",e.referenceType=m("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),h("referenceType")}function W(e){this.stack[this.stack.length-2].identifier=u(this.sliceSerialize(e)).toLowerCase()}function K(){var e=this.stack[this.stack.length-1],t=this.resume();this.stack[this.stack.length-1].label=t,h("inReference",!0),"link"===this.stack[this.stack.length-1].type?this.stack[this.stack.length-1].children=e.children:this.stack[this.stack.length-1].alt=t}function $(){var e=this.resume();this.stack[this.stack.length-1].url=e}function X(){var e=this.resume();this.stack[this.stack.length-1].title=e}function Z(){h("inReference")}function J(){h("referenceType","collapsed")}function G(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=u(this.sliceSerialize(e)).toLowerCase(),h("referenceType","full")}function Y(e){h("characterReferenceType",e.type)}function ee(e){var t,n,r=this.sliceSerialize(e),i=m("characterReferenceType");i?(t=c(r,"characterReferenceMarkerNumeric"===i?10:16),h("characterReferenceType")):t=f(r),(n=this.stack.pop()).value+=t,n.position.end=g(e.end)}function te(e){L.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function ne(e){L.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function re(){return{type:"blockquote",children:[]}}function ie(){return{type:"code",lang:null,meta:null,value:""}}function oe(){return{type:"inlineCode",value:""}}function ue(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ce(){return{type:"emphasis",children:[]}}function se(){return{type:"heading",depth:void 0,children:[]}}function ae(){return{type:"break"}}function le(){return{type:"html",value:""}}function fe(){return{type:"image",title:null,url:"",alt:null}}function pe(){return{type:"link",title:null,url:"",children:[]}}function de(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function he(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function me(){return{type:"paragraph",children:[]}}function ge(){return{type:"strong",children:[]}}function xe(){return{type:"text",value:""}}function ve(){return{type:"thematicBreak"}}}(n)(l(s(n).document().write(a()(e,t,!0))))};var r=n(9027),i=n(6891),o=n(2519),u=n(1303),c=n(440),s=n(8915),a=n(9061),l=n(7192),f=n(1979),p=n(9112);function d(e,t){var n,r;for(n in t)r=o.call(e,n)?e[n]:e[n]={},"canContainEols"===n||"transforms"===n?e[n]=[].concat(r,t[n]):Object.assign(r,t[n])}},6064:function(e,t,n){"use strict";e.exports=n(5230)},9027:function(e){"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&n(e.children)||"length"in e&&n(e))||""}function n(e){for(var n=[],r=-1;++rt;)u.containerState=a[o][1],a[o][0].exit.call(u,e);a.length=t}},c={tokenize:function(e,t,n){return i(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},s={tokenize:function(e,t,n){return i(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=u},5848:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4952),i=n(5524),o=n(7774),u=function(e){var t=this,n=e.attempt(o,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,u,i(e,e.attempt(this.parser.constructs.flow,u,e.attempt(r,u)),"linePrefix")));return n;function u(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}};t.tokenize=u},8359:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6891),i=n(4896),o=s("text"),u=s("string"),c={resolveAll:a()};function s(e){return{tokenize:function(t){var n=this,r=this.parser.constructs[e],i=t.attempt(r,o,u);return o;function o(e){return s(e)?i(e):u(e)}function u(e){if(null!==e)return t.enter("data"),t.consume(e),c;t.consume(e)}function c(e){return s(e)?(t.exit("data"),i(e)):(t.consume(e),c)}function s(e){var t=r[e],i=-1;if(null===e)return!0;if(t)for(;++i1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:u(s(e[n][1].end),-p),end:s(e[n][1].end)},f={type:p>1?"strongSequence":"emphasisSequence",start:s(e[m][1].start),end:u(s(e[m][1].start),p)},a={type:p>1?"strongText":"emphasisText",start:s(e[n][1].end),end:s(e[m][1].start)},o={type:p>1?"strong":"emphasis",start:s(l.start),end:s(f.end)},e[n][1].end=s(l.start),e[m][1].start=s(f.end),d=[],e[n][1].end.offset-e[n][1].start.offset&&(d=r(d,[["enter",e[n][1],t],["exit",e[n][1],t]])),d=r(d,[["enter",o,t],["enter",l,t],["exit",l,t],["enter",a,t]]),d=r(d,c(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),d=r(d,[["exit",a,t],["enter",f,t],["exit",f,t],["exit",o,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,d=r(d,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,i(e,n-1,m-n+3,d),m=n+d.length-h-2;break}m=-1;for(;++m-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=o},6744:function(e,t,n){"use strict";var r=n(6429),i={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),i};function i(i){return r(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}};e.exports=i},9414:function(e,t,n){"use strict";var r=n(1979),i=n(2778),o=n(1584),u=n(8144);function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=c(r),a={name:"characterReference",tokenize:function(e,t,n){var r,c,a=this,l=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),f};function f(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),p):(e.enter("characterReferenceValue"),r=31,c=i,d(t))}function p(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,c=u,d):(e.enter("characterReferenceValue"),r=7,c=o,d(t))}function d(o){var u;return 59===o&&l?(u=e.exit("characterReferenceValue"),c!==i||s.default(a.sliceSerialize(u))?(e.enter("characterReferenceMarker"),e.consume(o),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(o)):c(o)&&l++-1?void 0:4);function o(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}function s(t){return t===c?(e.consume(t),i++,s):i-1||i(o.events,"linePrefix")<4?e.interrupt(o.parser.constructs.flow,n,t)(u):t(u)}},partial:!0};e.exports=c},8032:function(e,t,n){"use strict";var r=n(1073),i=n(4056),o=n(1303),u=n(9658),c=n(8488),s=n(5524),a=n(9565),l=n(7816),f={name:"definition",tokenize:function(e,t,n){var i,l=this;return function(t){return e.enter("definition"),c.call(l,e,f,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function f(t){return i=o(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a(e,u(e,e.attempt(p,s(e,d,"whitespace"),s(e,d,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function d(o){return null===o||r(o)?(e.exit("definition"),l.parser.defined.indexOf(i)<0&&l.parser.defined.push(i),t(o)):n(o)}}},p={tokenize:function(e,t,n){return function(t){return i(t)?a(e,o)(t):n(t)};function o(t){return 34===t||39===t||40===t?l(e,s(e,u,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function u(e){return null===e||r(e)?t(e):n(e)}},partial:!0};e.exports=f},9658:function(e,t,n){"use strict";var r=n(1016),i=n(4056),o=n(1073);e.exports=function(e,t,n,u,c,s,a,l,f){var p=f||1/0,d=0;return function(t){if(60===t)return e.enter(u),e.enter(c),e.enter(s),e.consume(t),e.exit(s),h;if(r(t)||41===t)return n(t);return e.enter(u),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),x(t)};function h(n){return 62===n?(e.enter(s),e.consume(n),e.exit(s),e.exit(c),e.exit(u),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),m(n))}function m(t){return 62===t?(e.exit("chunkString"),e.exit(l),h(t)):null===t||60===t||o(t)?n(t):(e.consume(t),92===t?g:m)}function g(t){return 60===t||62===t||92===t?(e.consume(t),m):m(t)}function x(o){return 40===o?++d>p?n(o):(e.consume(o),x):41===o?d--?(e.consume(o),x):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(o)):null===o||i(o)?d?n(o):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(o)):r(o)?n(o):(e.consume(o),92===o?v:x)}function v(t){return 40===t||41===t||92===t?(e.consume(t),x):x(t)}}},8488:function(e,t,n){"use strict";var r=n(1073),i=n(5009);e.exports=function(e,t,n,o,u,c){var s,a=this,l=0;return function(t){return e.enter(o),e.enter(u),e.consume(t),e.exit(u),e.enter(c),f};function f(i){return null===i||91===i||93===i&&!s||94===i&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs||l>999?n(i):93===i?(e.exit(c),e.enter(u),e.consume(i),e.exit(u),e.exit(o),t):r(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),p(i))}function p(t){return null===t||91===t||93===t||r(t)||l++>999?(e.exit("chunkString"),f(t)):(e.consume(t),s=s||!i(t),92===t?d:p)}function d(t){return 91===t||92===t||93===t?(e.consume(t),l++,p):p(t)}}},5524:function(e,t,n){"use strict";var r=n(5009);e.exports=function(e,t,n,i){var o=i?i-1:1/0,u=0;return function(i){if(r(i))return e.enter(n),c(i);return t(i)};function c(i){return r(i)&&u++o&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4);i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},u(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};e.exports=s},3085:function(e,t,n){"use strict";var r=n(8177),i=n(2778),o=n(1073),u=n(4056),c=n(5009),s=n(7325),a=n(2486),l=n(4765),f=n(7774),p={name:"htmlFlow",tokenize:function(e,t,n){var f,p,h,m,g,x=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),v};function v(i){return 33===i?(e.consume(i),k):47===i?(e.consume(i),F):63===i?(e.consume(i),f=3,x.interrupt?t:U):r(i)?(e.consume(i),h=s(i),p=!0,w):n(i)}function k(i){return 45===i?(e.consume(i),f=2,y):91===i?(e.consume(i),f=5,h="CDATA[",m=0,b):r(i)?(e.consume(i),f=4,x.interrupt?t:U):n(i)}function y(r){return 45===r?(e.consume(r),x.interrupt?t:U):n(r)}function b(r){return r===h.charCodeAt(m++)?(e.consume(r),m===h.length?x.interrupt?t:B:b):n(r)}function F(t){return r(t)?(e.consume(t),h=s(t),w):n(t)}function w(r){return null===r||47===r||62===r||u(r)?47!==r&&p&&l.indexOf(h.toLowerCase())>-1?(f=1,x.interrupt?t(r):B(r)):a.indexOf(h.toLowerCase())>-1?(f=6,47===r?(e.consume(r),E):x.interrupt?t(r):B(r)):(f=7,x.interrupt?n(r):p?A(r):S(r)):45===r||i(r)?(e.consume(r),h+=s(r),w):n(r)}function E(r){return 62===r?(e.consume(r),x.interrupt?t:B):n(r)}function S(t){return c(t)?(e.consume(t),S):z(t)}function A(t){return 47===t?(e.consume(t),z):58===t||95===t||r(t)?(e.consume(t),C):c(t)?(e.consume(t),A):z(t)}function C(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),C):T(t)}function T(t){return 61===t?(e.consume(t),I):c(t)?(e.consume(t),T):A(t)}function I(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),g=t,P):c(t)?(e.consume(t),I):(g=void 0,_(t))}function P(t){return t===g?(e.consume(t),O):null===t||o(t)?n(t):(e.consume(t),P)}function _(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||u(t)?T(t):(e.consume(t),_)}function O(e){return 47===e||62===e||c(e)?A(e):n(e)}function z(t){return 62===t?(e.consume(t),D):n(t)}function D(t){return c(t)?(e.consume(t),D):null===t||o(t)?B(t):n(t)}function B(t){return 45===t&&2===f?(e.consume(t),L):60===t&&1===f?(e.consume(t),j):62===t&&4===f?(e.consume(t),N):63===t&&3===f?(e.consume(t),U):93===t&&5===f?(e.consume(t),q):!o(t)||6!==f&&7!==f?null===t||o(t)?H(t):(e.consume(t),B):e.check(d,N,H)(t)}function H(t){return e.exit("htmlFlowData"),M(t)}function M(t){return null===t?V(t):o(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),M):(e.enter("htmlFlowData"),B(t))}function L(t){return 45===t?(e.consume(t),U):B(t)}function j(t){return 47===t?(e.consume(t),h="",R):B(t)}function R(t){return 62===t&&l.indexOf(h.toLowerCase())>-1?(e.consume(t),N):r(t)&&h.length<8?(e.consume(t),h+=s(t),R):B(t)}function q(t){return 93===t?(e.consume(t),U):B(t)}function U(t){return 62===t?(e.consume(t),N):B(t)}function N(t){return null===t||o(t)?(e.exit("htmlFlowData"),V(t)):(e.consume(t),N)}function V(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},d={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(f,t,n)}},partial:!0};e.exports=p},2678:function(e,t,n){"use strict";var r=n(8177),i=n(2778),o=n(1073),u=n(4056),c=n(5009),s=n(5524),a={name:"htmlText",tokenize:function(e,t,n){var a,l,f,p,d=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),h};function h(t){return 33===t?(e.consume(t),m):47===t?(e.consume(t),T):63===t?(e.consume(t),A):r(t)?(e.consume(t),_):n(t)}function m(t){return 45===t?(e.consume(t),g):91===t?(e.consume(t),l="CDATA[",f=0,b):r(t)?(e.consume(t),S):n(t)}function g(t){return 45===t?(e.consume(t),x):n(t)}function x(t){return null===t||62===t?n(t):45===t?(e.consume(t),v):k(t)}function v(e){return null===e||62===e?n(e):k(e)}function k(t){return null===t?n(t):45===t?(e.consume(t),y):o(t)?(p=k,j(t)):(e.consume(t),k)}function y(t){return 45===t?(e.consume(t),q):k(t)}function b(t){return t===l.charCodeAt(f++)?(e.consume(t),f===l.length?F:b):n(t)}function F(t){return null===t?n(t):93===t?(e.consume(t),w):o(t)?(p=F,j(t)):(e.consume(t),F)}function w(t){return 93===t?(e.consume(t),E):F(t)}function E(t){return 62===t?q(t):93===t?(e.consume(t),E):F(t)}function S(t){return null===t||62===t?q(t):o(t)?(p=S,j(t)):(e.consume(t),S)}function A(t){return null===t?n(t):63===t?(e.consume(t),C):o(t)?(p=A,j(t)):(e.consume(t),A)}function C(e){return 62===e?q(e):A(e)}function T(t){return r(t)?(e.consume(t),I):n(t)}function I(t){return 45===t||i(t)?(e.consume(t),I):P(t)}function P(t){return o(t)?(p=P,j(t)):c(t)?(e.consume(t),P):q(t)}function _(t){return 45===t||i(t)?(e.consume(t),_):47===t||62===t||u(t)?O(t):n(t)}function O(t){return 47===t?(e.consume(t),q):58===t||95===t||r(t)?(e.consume(t),z):o(t)?(p=O,j(t)):c(t)?(e.consume(t),O):q(t)}function z(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),z):D(t)}function D(t){return 61===t?(e.consume(t),B):o(t)?(p=D,j(t)):c(t)?(e.consume(t),D):O(t)}function B(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),a=t,H):o(t)?(p=B,j(t)):c(t)?(e.consume(t),B):(e.consume(t),a=void 0,L)}function H(t){return t===a?(e.consume(t),M):null===t?n(t):o(t)?(p=H,j(t)):(e.consume(t),H)}function M(e){return 62===e||47===e||u(e)?O(e):n(e)}function L(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||u(t)?O(t):(e.consume(t),L)}function j(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s(e,R,"linePrefix",d.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function R(t){return e.enter("htmlTextData"),p(t)}function q(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};e.exports=a},6611:function(e,t,n){"use strict";var r=n(4056),i=n(6109),o=n(9653),u=n(1303),c=n(1154),s=n(4896),a=n(9658),l=n(8488),f=n(7816),p=n(9565),d={name:"labelEnd",tokenize:function(e,t,n){var r,i,o=this,c=o.events.length;for(;c--;)if(("labelImage"===o.events[c][1].type||"labelLink"===o.events[c][1].type)&&!o.events[c][1]._balanced){r=o.events[c][1];break}return function(t){if(!r)return n(t);return r._inactive?a(t):(i=o.parser.defined.indexOf(u(o.sliceSerialize({start:r.end,end:o.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s)};function s(n){return 40===n?e.attempt(h,t,i?t:a)(n):91===n?e.attempt(m,t,i?e.attempt(g,t,a):a)(n):i?t(n):a(n)}function a(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,r,u,a,l,f,p,d=e.length,h=0;for(;d--;)if(a=e[d][1],l){if("link"===a.type||"labelLink"===a.type&&a._inactive)break;"enter"===e[d][0]&&"labelLink"===a.type&&(a._inactive=!0)}else if(f){if("enter"===e[d][0]&&("labelImage"===a.type||"labelLink"===a.type)&&!a._balanced&&(l=d,"labelLink"!==a.type)){h=2;break}}else"labelEnd"===a.type&&(f=d);return n={type:"labelLink"===e[l][1].type?"link":"image",start:s(e[l][1].start),end:s(e[e.length-1][1].end)},r={type:"label",start:s(e[l][1].start),end:s(e[f][1].end)},u={type:"labelText",start:s(e[l+h+2][1].end),end:s(e[f-2][1].start)},p=i(p=[["enter",n,t],["enter",r,t]],e.slice(l+1,l+h+3)),p=i(p,[["enter",u,t]]),p=i(p,c(t.parser.constructs.insideSpan.null,e.slice(l+h+4,f-3),t)),p=i(p,[["exit",u,t],e[f-2],e[f-1],["exit",r,t]]),p=i(p,e.slice(f+1)),p=i(p,[["exit",n,t]]),o(e,l,e.length,p),e},resolveAll:function(e){var t,n=-1;for(;++n-1?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var r=this;return c(e,(function(e){return i(e)||!o(r.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,n){var r=this;return c(e,(function(e){return o(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=l},7774:function(e,t,n){"use strict";var r=n(1073),i=n(5524),o={tokenize:function(e,t,n){return i(e,(function(e){return null===e||r(e)?t(e):n(e)}),"linePrefix")},partial:!0};e.exports=o},823:function(e,t,n){"use strict";var r=n(1073),i=n(4896),o=n(5524),u={name:"setextUnderline",tokenize:function(e,t,n){var i,u,c=this,s=c.events.length;for(;s--;)if("lineEnding"!==c.events[s][1].type&&"linePrefix"!==c.events[s][1].type&&"content"!==c.events[s][1].type){u="paragraph"===c.events[s][1].type;break}return function(t){if(!c.lazy&&(c.interrupt||u))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),i=t,a(t);return n(t)};function a(t){return t===i?(e.consume(t),a):(e.exit("setextHeadingLineSequence"),o(e,l,"lineSuffix")(t))}function l(i){return null===i||r(i)?(e.exit("setextHeadingLine"),t(i)):n(i)}},resolveTo:function(e,t){var n,r,o,u,c=e.length;for(;c--;)if("enter"===e[c][0]){if("content"===e[c][1].type){n=c;break}"paragraph"===e[c][1].type&&(r=c)}else"content"===e[c][1].type&&e.splice(c,1),o||"definition"!==e[c][1].type||(o=c);u={type:"setextHeading",start:i(e[r][1].start),end:i(e[e.length-1][1].end)},e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",u,t]),e.splice(o+1,0,["exit",e[n][1],t]),e[n][1].end=i(e[o][1].end)):e[n][1]=u;return e.push(["exit",u,t]),e}};e.exports=u},4104:function(e,t,n){"use strict";var r=n(1073),i=n(5009),o=n(5524),u={name:"thematicBreak",tokenize:function(e,t,n){var u,c=0;return function(t){return e.enter("thematicBreak"),u=t,s(t)};function s(l){return l===u?(e.enter("thematicBreakSequence"),a(l)):i(l)?o(e,s,"whitespace")(l):c<3||null!==l&&!r(l)?n(l):(e.exit("thematicBreak"),t(l))}function a(t){return t===u?(e.consume(t),c++,a):(e.exit("thematicBreakSequence"),s(t))}}};e.exports=u},6109:function(e,t,n){"use strict";var r=n(9653);e.exports=function(e,t){return e.length?(r(e,e.length,0,t),e):t}},9653:function(e,t,n){"use strict";var r=n(9086);e.exports=function(e,t,n,i){var o,u=e.length,c=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,i.length<1e4)(o=Array.from(i)).unshift(t,n),r.apply(e,o);else for(n&&r.apply(e,[t,n]);c-1)return m();return e.tokenize.call(t?r({},v,t):v,x,h,m)(n)}}function h(t){return e(a,l),i}function m(e){return l.restore(),++s13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||!(65535&~n)||65534==(65535&n)||n>1114111?"\ufffd":r(n)}},1129:function(e,t,n){"use strict";var r=n(7325);e.exports=function(e){for(var t,n,i,o=-1,u=[];++o-1&&(n[0]=n[0].slice(i)),u>0&&n.push(e[o].slice(0,u))),n}},7227:function(e,t,n){"use strict";var r=n(6891),i=n(9653),o=n(4896);function u(e,t){for(var n,r,o,u,c,s,a=e[t][1],l=e[t][2],f=t-1,p=[],d=a._tokenizer||l.parser[a.contentType](a.start),h=d.events,m=[],g={};a;){for(;e[++f][1]!==a;);p.push(f),a._tokenizer||(n=l.sliceStream(a),a.next||n.push(null),r&&d.defineSkip(a.start),a.isInFirstContentOfListItem&&(d._gfmTasklistFirstContentOfListItem=!0),d.write(n),a.isInFirstContentOfListItem&&(d._gfmTasklistFirstContentOfListItem=void 0)),r=a,a=a.next}for(a=r,o=h.length;o--;)"enter"===h[o][0]?u=!0:u&&h[o][1].type===h[o-1][1].type&&h[o][1].start.line!==h[o][1].end.line&&(x(h.slice(o+1,c)),a._tokenizer=a.next=void 0,a=a.previous,c=o+1);for(d.events=a._tokenizer=a.next=void 0,x(h.slice(0,c)),o=-1,s=0;++o2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var f=e.position.start,p=[e.type,f.line,f.column,a].join("-");if(!o.isValidElementType(l))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var d=function(e,t,n,o,a,l){var f={key:t},p="string"==typeof o||o===r.Fragment;n.sourcePos&&e.position&&(f["data-sourcepos"]=function(e){return[e.start.line,":",e.start.column,"-",e.end.line,":",e.end.column].map(String).join("")}(e.position));n.rawSourcePos&&!p&&(f.sourcePosition=e.position);n.includeNodeIndex&&a.node&&a.node.children&&!p&&(f.index=a.node.children.indexOf(e),f.parentChildCount=a.node.children.length);var d=null!==e.identifier&&void 0!==e.identifier?n.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":c(f,{className:n.className});break;case"text":f.nodeKey=t,f.children=e.value;break;case"heading":f.level=e.depth;break;case"list":f.start=e.start,f.ordered=e.ordered,f.spread=e.spread,f.depth=e.depth;break;case"listItem":f.checked=e.checked,f.spread=e.spread,f.ordered=e.ordered,f.index=e.index,f.children=function(e,t){var n=t&&t.node?function(e){var t=e.children,n=e.spread,r=-1;for(;!n&&++r1:t}e.exports=u},781:function(e,t,n){"use strict";var r=n(5223);e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r(e,"definition",(function(e){var n=e.identifier.toUpperCase();n in t||(t[n]={href:e.url,title:e.title})})),t}},3677:function(e,t,n){"use strict";var r=n(5223),i=[].splice;function o(e,t){return function(e){return r(e,n),e};function n(n,r,o){if(o&&!e(n,r,o)){var u=[r,1];return"unwrap"===t&&n.children&&(u=u.concat(n.children)),i.apply(o.children,u),r}}}t.ofType=function(e,t){return o((function(t,n,r){return!e.includes(t.type)}),t)},t.ifNotMatch=o},3056:function(e,t,n){"use strict";var r=n(5223),i="virtualHtml",o=/^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\s*\/?>$/i,u=/^<(\/?)([a-z]+)\s*>$/;e.exports=function(e){var t,n;return r(e,"html",(function(e,r,c){n!==c&&(t=[],n=c);var s=function(e){var t=e.value.match(o);return!!t&&t[1]}(e);if(s)return c.children.splice(r,1,{type:i,tag:s,position:e.position}),!0;var a=function(e){var t=e.value.match(u);return!!t&&{tag:t[2],opening:!t[1],node:e}}(e);if(!a)return!0;var l=function(e,t){var n=e.length;for(;n--;)if(e[n].tag===t)return e.splice(n,1)[0];return!1}(t,a.tag);return l?c.children.splice(r,0,function(e,t,n){var r=n.children.indexOf(e.node),o=n.children.indexOf(t.node),u=n.children.splice(r,o-r+1),c=u.slice(1,-1);return{type:i,children:c,tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}(a,l,c)):a.opening||t.push(a),!0}),!0),e}},5331:function(e,t,n){"use strict";var r=n(7510),i=n(7301),o=n(5815),u=n(5556),c=n(6873),s=n(3056),a=n(3677),l=n(3976),f=n(4239),p=n(781),d=n(5562),h=n(7466),m=n(8091),g=Object.keys(h),x=function(e){var t=e.source||e.children||"";if(e.allowedTypes&&e.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=r(h,e.renderers),u=i().use(o).use(e.plugins||[]),d=u.runSync(u.parse(t)),x=r(e,{renderers:n,definitions:p(d)});return function(e){var t=[f,c()],n=e.disallowedTypes;e.allowedTypes&&(n=g.filter((function(t){return"root"!==t&&-1===e.allowedTypes.indexOf(t)})));var r=e.unwrapDisallowed?"unwrap":"remove";n&&n.length>0&&t.push(a.ofType(n,r));e.allowNode&&t.push(a.ifNotMatch(e.allowNode,r));var i=(e.allowDangerousHtml||!1===e.escapeHtml)&&!e.skipHtml,o=(e.astPlugins||[]).some((function(e){return e.identity===m.HtmlParser}));i&&!o&&t.push(s);e.astPlugins&&(t=t.concat(e.astPlugins));return t.push(l),t}(e).forEach((function(e){d=e(d,x)})),d};x.defaultProps={transformLinkUri:d},x.propTypes={className:u.string,source:u.string,children:u.string,sourcePos:u.bool,rawSourcePos:u.bool,escapeHtml:u.bool,allowDangerousHtml:u.bool,skipHtml:u.bool,allowNode:u.func,allowedTypes:u.arrayOf(u.oneOf(g)),disallowedTypes:u.arrayOf(u.oneOf(g)),transformLinkUri:u.oneOfType([u.func,u.bool]),linkTarget:u.oneOfType([u.func,u.string]),transformImageUri:u.func,astPlugins:u.arrayOf(u.func),unwrapDisallowed:u.bool,renderers:u.object,plugins:u.array},x.types=g,x.renderers=h,x.uriTransformer=d,e.exports=x},7466:function(e,t,n){"use strict";var r=n(7510),i=n(6540),o=parseInt((i.version||"16").slice(0,2),10)>=16,u=i.createElement;function c(e,t){return u(e,s(t),t.children)}function s(e){var t=e["data-sourcepos"];return t?{"data-sourcepos":t}:{}}e.exports={break:"br",paragraph:"p",emphasis:"em",strong:"strong",thematicBreak:"hr",blockquote:"blockquote",delete:"del",link:"a",image:"img",linkReference:"a",imageReference:"img",table:c.bind(null,"table"),tableHead:c.bind(null,"thead"),tableBody:c.bind(null,"tbody"),tableRow:c.bind(null,"tr"),tableCell:function(e){var t=e.align?{textAlign:e.align}:void 0,n=s(e);return u(e.isHeader?"th":"td",t?r({style:t},n):n,e.children)},root:function(e){var t=e.className,n=!t&&i.Fragment||"div";return u(n,t?{className:t}:null,e.children)},text:function(e){var t=e.children||"";return o?t:u("span",null,t)},list:function(e){var t=s(e);null!==e.start&&1!==e.start&&void 0!==e.start&&(t.start=e.start.toString());return u(e.ordered?"ol":"ul",t,e.children)},listItem:function(e){var t=null;if(null!==e.checked&&void 0!==e.checked){var n=e.checked;t=u("input",{type:"checkbox",checked:n,readOnly:!0})}return u("li",s(e),t,e.children)},definition:function(){return null},heading:function(e){return u("h".concat(e.level),s(e),e.children)},inlineCode:function(e){return u("code",s(e),e.children)},code:function(e){var t=e.language&&"language-".concat(e.language),n=u("code",t?{className:t}:null,e.value);return u("pre",s(e),n)},html:function(e){if(e.skipHtml)return null;var t=e.allowDangerousHtml||!1===e.escapeHtml,n=e.isBlock?"div":"span";if(!t)return u(i.Fragment||n,null,e.value);var r={dangerouslySetInnerHTML:{__html:e.value}};return u(n,r)},virtualHtml:function(e){return u(e.tag,s(e),e.children)},parsedHtml:function(e){return e["data-sourcepos"]?i.cloneElement(e.element,{"data-sourcepos":e["data-sourcepos"]}):e.element}}},8091:function(e,t){"use strict";var n="__RMD_HTML_PARSER__";t.HtmlParser="undefined"==typeof Symbol?n:Symbol(n)},5562:function(e){"use strict";var t=["http","https","mailto","tel"];e.exports=function(e){var n=(e||"").trim(),r=n.charAt(0);if("#"===r||"/"===r)return n;var i=n.indexOf(":");if(-1===i)return n;for(var o=t.length,u=-1;++uu||-1!==(u=n.indexOf("#"))&&i>u?n:"javascript:void(0)"}},4239:function(e,t,n){"use strict";var r=n(5223);function i(e){var t=e.children;e.children=[{type:"tableHead",align:e.align,children:[t[0]],position:t[0].position}],t.length>1&&e.children.push({type:"tableBody",align:e.align,children:t.slice(1),position:{start:t[1].position.start,end:t[t.length-1].position.end}})}e.exports=function(e){return r(e,"table",i),e}},5815:function(e,t,n){"use strict";e.exports=function(e){var t=this;this.Parser=function(n){return r(n,Object.assign({},t.data("settings"),e,{extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]}))}};var r=n(6064)},7412:function(e,t,n){"use strict";var r=n(3418);e.exports=o,o.wrap=r;var i=[].slice;function o(){var e=[],t={run:function(){var t=-1,n=i.call(arguments,0,-1),o=arguments[arguments.length-1];if("function"!=typeof o)throw new Error("Expected function as last argument, not "+o);(function u(c){var s=e[++t],a=i.call(arguments,0).slice(1),l=n.length,f=-1;if(c)o(c);else{for(;++fu.length;c&&u.push(i);try{n=e.apply(null,u)}catch(e){if(c&&r)throw e;return i(e)}c||(n&&"function"==typeof n.then?n.then(o,i):n instanceof Error?i(n):o(n))};function i(){r||(r=!0,n.apply(null,arguments))}function o(e){i(null,e)}}},7301:function(e,t,n){"use strict";var r=n(8385),i=n(7206),o=n(2849),u=n(6368),c=n(7412),s=n(1459);e.exports=function e(){var t,n=[],i=c(),v={},k=-1;return y.data=function(e,n){if("string"==typeof e)return 2===arguments.length?(m("data",t),v[e]=n,y):l.call(v,e)&&v[e]||null;if(e)return m("data",t),v=e,y;return v},y.freeze=b,y.attachers=n,y.use=function(e){var r;if(m("use",t),null==e);else if("function"==typeof e)l.apply(null,arguments);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?s(e):i(e)}r&&(v.settings=o(v.settings||{},r));return y;function i(e){s(e.plugins),e.settings&&(r=o(r||{},e.settings))}function c(e){if("function"==typeof e)l(e);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?l.apply(null,e):i(e)}}function s(e){var t=-1;if(null==e);else{if("object"!=typeof e||!("length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(;++t":""))+")");return m;function m(){var i,d,h=p.concat(r),m=[];if((!t||l(r,f,p[p.length-1]||null))&&(m=function(e){if(null!==e&&"object"==typeof e&&"length"in e)return e;if("number"==typeof e)return[o,e];return[e]}(n(r,p)),m[0]===c))return m;if(r.children&&m[0]!==u)for(d=(s?r.children.length:-1)+a;d>-1&&d-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+r.sep+"`")}function l(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function f(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}s.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(s.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){l(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(s.prototype,"dirname",{get:function(){return"string"==typeof this.path?r.dirname(this.path):void 0},set:function(e){f(this.path,"dirname"),this.path=r.join(e||"",this.basename)}}),Object.defineProperty(s.prototype,"basename",{get:function(){return"string"==typeof this.path?r.basename(this.path):void 0},set:function(e){l(e,"basename"),a(e,"basename"),this.path=r.join(this.dirname||"",e)}}),Object.defineProperty(s.prototype,"extname",{get:function(){return"string"==typeof this.path?r.extname(this.path):void 0},set:function(e){if(a(e,"extname"),f(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=r.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(s.prototype,"stem",{get:function(){return"string"==typeof this.path?r.basename(this.path,this.extname):void 0},set:function(e){l(e,"stem"),a(e,"stem"),this.path=r.join(this.dirname||"",e+(this.extname||""))}})},7331:function(e,t,n){"use strict";var r=n(3450),i=n(972);e.exports=i,i.prototype.message=function(e,t,n){var i=new r(e,t,n);this.path&&(i.name=this.path+":"+i.name,i.file=this.path);return i.fatal=!1,this.messages.push(i),i},i.prototype.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},i.prototype.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}},3430:function(e,t){"use strict";function n(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}t.basename=function(e,t){var r,i,o,u,c=0,s=-1;if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');if(n(e),r=e.length,void 0===t||!t.length||t.length>e.length){for(;r--;)if(47===e.charCodeAt(r)){if(o){c=r+1;break}}else s<0&&(o=!0,s=r+1);return s<0?"":e.slice(c,s)}if(t===e)return"";i=-1,u=t.length-1;for(;r--;)if(47===e.charCodeAt(r)){if(o){c=r+1;break}}else i<0&&(o=!0,i=r+1),u>-1&&(e.charCodeAt(r)===t.charCodeAt(u--)?u<0&&(s=r):(u=-1,s=i));c===s?s=i:s<0&&(s=e.length);return e.slice(c,s)},t.dirname=function(e){var t,r,i;if(n(e),!e.length)return".";t=-1,i=e.length;for(;--i;)if(47===e.charCodeAt(i)){if(r){t=i;break}}else r||(r=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},t.extname=function(e){var t,r,i,o=-1,u=0,c=-1,s=0;n(e),i=e.length;for(;i--;)if(47!==(r=e.charCodeAt(i)))c<0&&(t=!0,c=i+1),46===r?o<0?o=i:1!==s&&(s=1):o>-1&&(s=-1);else if(t){u=i+1;break}if(o<0||c<0||0===s||1===s&&o===c-1&&o===u+1)return"";return e.slice(o,c)},t.join=function(){var e,t=-1;for(;++t2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",o=0):o=(i=i.slice(0,r)).length-1-i.lastIndexOf("/"),u=s,c=0;continue}}else if(i.length){i="",o=0,u=s,c=0;continue}t&&(i=i.length?i+"/..":"..",o=2)}else i.length?i+="/"+e.slice(u+1,s):i=e.slice(u+1,s),o=s-u-1;u=s,c=0}else 46===n&&c>-1?c++:c=-1}return i}(e,!t),r.length||t||(r=".");r.length&&47===e.charCodeAt(e.length-1)&&(r+="/");return t?"/"+r:r}(e)},t.sep="/"},5885:function(e,t){"use strict";t.cwd=function(){return"/"}},7510:function(e){e.exports=function(){for(var e={},n=0;n\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(error, tree, file) {\n if (error) {\n next(error)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n if ('value' in ctx.file) {\n ctx.file.value = result\n }\n\n ctx.file.contents = result\n } else {\n ctx.file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var freezeIndex = -1\n var frozen\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var index = -1\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n\n if (values[1] === false) {\n continue\n }\n\n if (values[1] === true) {\n values[1] = undefined\n }\n\n transformer = values[0].apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var index = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index]\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var result\n var complete\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(error, tree) {\n complete = true\n result = tree\n bail(error)\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(error) {\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var file\n var complete\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n"],"names":["module","exports","err","hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","isBuffer","getPrototypeOf","visitWithParents","ast","listNode","parents","n","depth","type","children","child","index","ordered","encoding","undefined","settings","config","extensions","extension","configure","transforms","canContainEols","enter","autolink","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","buffer","codeFencedFenceMeta","codeIndented","codeText","codeTextData","data","codeFlowValue","definition","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","html","htmlFlowData","htmlText","htmlTextData","image","label","listItem","listItemValue","onenterlistitemvalue","listOrdered","list","onenterlistordered","listUnordered","paragraph","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","exit","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","compile","events","handler","tree","tokenStack","listStack","context","stack","resume","setData","getData","push","prepareList","pop","own","assign","sliceSerialize","Error","stringifyPosition","start","end","position","point","line","column","offset","tailIndex","lineIndex","tailEvent","event","firstBlankLineIndex","atMarker","containerBalance","listSpread","_spread","splice","d","create","and","open","token","this","node","close","parseInt","lang","meta","replace","identifier","normalizeIdentifier","toLowerCase","title","url","charCodeAt","siblings","tail","text","indexOf","referenceType","fragment","alt","safeFromInt","decode","spread","checked","compiler","postprocess","parser","document","write","preprocessor","left","concat","all","values","result","join","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","code","asciiDigit","asciiHexDigit","asciiPunctuation","unicodePunctuationRegex","unicodePunctuation","unicodeWhitespace","fromCharCode","String","text$1","attention","headingAtx","labelEnd","labelStartImage","labelStartLink","setextUnderline","contentInitial","flowInitial","flow","string","insideSpan","null","resolver","disable","markdownLineEnding","factorySpace","tokenize","effects","previous","contentStart","attempt","constructs","consume","lineStart","contentType","next","partialBlankLine","inspectResult","childFlow","childToken","self","continued","inspectConstruct","ok","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","interruptible","containerConstruct","inspectFlowEnd","_closeFlow","lazy","lazyFlowConstruct","check","inspectLazy","flowEnd","partial","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","now","_tokenizer","continueFlow","documentAfterPeek","defineSkip","sliceStream","size","nok","content","initial","afterConstruct","shallow","initializeFactory","resolveAll","createResolver","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","chunk","bufferIndex","tabs","eventIndex","_index","_bufferIndex","combineExtensions","createTokenizer","miniflat","defined","initializer","from","subtokenize","search","atCarriageReturn","match","startPosition","endPosition","lastIndex","exec","slice","Math","ceil","chunkedPush","chunkedSplice","classifyCharacter","movePoint","marker","before","sequence","after","_open","_close","group","openingSequence","closingSequence","use","nextEvents","asciiControl","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","markdownSpace","_container","decodeEntity","_interopDefaultLegacy","e","default","decodeEntity__default","max","test","numeric","markdownLineEndingOrSpace","prefixSize","closingFenceConstruct","closingSequenceStart","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","info","infoAfter","contentContinue","indentedContentConstruct","afterPrefix","resolve","gap","tailExitIndex","headEnterIndex","contentEnd","continuationConstruct","prefixed","factoryDestination","factoryLabel","factoryWhitespace","factoryTitle","labelAfter","titleConstruct","literalType","literalMarkerType","rawType","stringType","limit","Infinity","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","prefix","atFirstTitleBreak","atTitleBreak","titleEscape","seen","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","tagName","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","done","continuationRawEndTag","resolveTo","returnState","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","media","_used","destinationAfter","between","afterLabel","sizeChunks","initialSize","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","items","remove","parameters","chunkStart","unshift","apply","hook","right","existing","add","serializeChunks","sliceChunks","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","main","state","chunkIndex","go","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","toUpperCase","regex","called","base","atTab","object","view","startIndex","startBufferIndex","endIndex","endBufferIndex","subcontent","stream","entered","adjust","startPositions","tokenizer","childEvents","jumps","gaps","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","otherIndex","otherEvent","subevents","more","_movePreviousLineEndings","el","characters","char","entity","createElement","innerHTML","textContent","React","xtend","ReactIs","astToReact","parent","renderer","renderers","pos","isValidElementType","nodeProps","opts","props","isSimpleRenderer","Fragment","sourcePos","map","flattenPosition","rawSourcePos","sourcePosition","includeNodeIndex","parentChildCount","ref","definitions","assignDefined","className","nodeKey","level","loose","listItemLoose","listLoose","reduce","array","unwrapParagraphs","getListItemChildren","childNode","language","split","inline","linkTarget","href","transformLinkUri","transformImageUri","columnAlignment","align","isHeader","tag","isBlock","allowDangerousHtml","escapeHtml","skipHtml","parsedChildren","element","Children","toArray","cloneElement","mergeNodeChildren","getNodeProps","attrs","visit","ifNotMatch","allow","mode","filter","ofType","types","includes","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","current","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","fromIndex","toIndex","extracted","indent","virtual","unified","parse","PropTypes","addListMetadata","naiveHtml","disallowNode","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","symbols","allTypes","keys","ReactMarkdown","source","allowedTypes","disallowedTypes","processor","plugins","runSync","renderProps","removalMethod","unwrapDisallowed","allowNode","renderHtml","hasHtmlParser","astPlugins","some","transform","identity","HtmlParser","determineAstToReactTransforms","forEach","defaultProps","propTypes","bool","func","arrayOf","oneOf","oneOfType","supportsStringRender","version","SimpleRenderer","getCoreProps","break","blockquote","delete","linkReference","imageReference","table","bind","tableHead","tableBody","tableRow","tableCell","style","textAlign","coreProps","root","checkbox","readOnly","inlineCode","dangerous","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","Symbol","protocols","uri","trim","first","charAt","colon","protocol","wrap","Parser","doc","fromMarkdown","trough","fns","middleware","input","fn","callback","invoked","params","error","then","bail","plain","vfile","frozen","attachers","transformers","namespace","freezeIndex","assertUnfrozen","freeze","addPlugin","addList","addPreset","plugin","entry","find","file","assertParser","newable","stringify","Compiler","assertCompiler","assertNode","run","complete","assertDone","process","processSync","destination","transformer","cb","Promise","executor","reject","pipeline","p","ctx","contents","asyncName","convert","Boolean","typeFactory","tests","checks","any","anyFactory","allFactory","visitor","one","visitParents","CONTINUE","SKIP","EXIT","reverse","color","step","is","factory","displayName","subresult","grandparents","toResult","VMessagePrototype","VMessage","proto","reason","origin","parts","range","location","parseOrigin","message","ruleId","fatal","proc","VFile","order","prop","messages","history","cwd","assertPart","part","sep","assertNonEmpty","assertPath","path","get","set","dirname","basename","extname","stem","fail","TypeError","JSON","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","normalize"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js b/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js new file mode 100644 index 00000000..92852c46 --- /dev/null +++ b/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5393],{829:function(e,t,n){"use strict";function r(e){return Intl.getCanonicalLocales(e)}function a(e,t){var n=t.zoneNames,r=t.uppercaseLinks,a=e.toUpperCase(),i=n.reduce((function(e,t){return e[t.toUpperCase()]=t,e}),{}),o=r[a]||i[a];return"Etc/UTC"===o||"Etc/GMT"===o?"UTC":o}function i(e){if("symbol"==typeof e)throw TypeError("Cannot convert a Symbol value to a string");return String(e)}function o(e){if(void 0===e)return NaN;if(null===e)return 0;if("boolean"==typeof e)return e?1:0;if("number"==typeof e)return e;if("symbol"==typeof e||"bigint"==typeof e)throw new TypeError("Cannot convert symbol/bigint to number");return Number(e)}function u(e){return isFinite(e)?Math.abs(e)>8640000000000001?NaN:function(e){var t=o(e);if(isNaN(t)||c(t,-0))return 0;if(isFinite(t))return t;var n=Math.floor(Math.abs(t));return t<0&&(n=-n),c(n,-0)?0:n}(e):NaN}function s(e){if(null==e)throw new TypeError("undefined/null cannot be converted to object");return Object(e)}function c(e,t){return Object.is?Object.is(e,t):e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(e){return new Array(e)}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e){return null===e?"Null":void 0===e?"Undefined":"function"==typeof e||"object"==typeof e?"Object":"number"==typeof e?"Number":"boolean"==typeof e?"Boolean":"string"==typeof e?"String":"symbol"==typeof e?"Symbol":"bigint"==typeof e?"BigInt":void 0}n.r(t),n.d(t,{ApplyUnsignedRoundingMode:function(){return J},ArrayCreate:function(){return d},CanonicalizeLocaleList:function(){return r},CanonicalizeTimeZoneName:function(){return a},CoerceOptionsToObject:function(){return R},CollapseNumberRange:function(){return Q},ComputeExponent:function(){return re},ComputeExponentForMagnitude:function(){return X},CurrencyDigits:function(){return ae},DateFromTime:function(){return E},Day:function(){return p},DayFromYear:function(){return h},DayWithinYear:function(){return b},DaysInYear:function(){return v},FormatApproximately:function(){return ye},FormatNumericRange:function(){return he},FormatNumericRangeToParts:function(){return ge},FormatNumericToParts:function(){return we},FormatNumericToString:function(){return ne},GetNumberOption:function(){return k},GetOption:function(){return j},GetOptionsObject:function(){return x},GetStringOrBooleanOption:function(){return K},GetUnsignedRoundingMode:function(){return De},HasOwnProperty:function(){return l},HourFromTime:function(){return A},InLeapYear:function(){return D},InitializeNumberFormat:function(){return Me},IsSanctionedSimpleUnitIdentifier:function(){return H},IsValidTimeZoneName:function(){return V},IsWellFormedCurrencyCode:function(){return W},IsWellFormedUnitIdentifier:function(){return Y},MinFromTime:function(){return I},MonthFromTime:function(){return S},OrdinaryHasInstance:function(){return G},PartitionNumberPattern:function(){return pe},PartitionNumberRangePattern:function(){return me},PartitionPattern:function(){return Te},RangePatternType:function(){return Oe},SANCTIONED_UNITS:function(){return q},SIMPLE_UNITS:function(){return U},SameValue:function(){return c},SecFromTime:function(){return P},SetNumberFormatDigitOptions:function(){return Ee},SetNumberFormatUnitOptions:function(){return Fe},SupportedLocales:function(){return Le},TimeClip:function(){return u},TimeFromYear:function(){return g},ToNumber:function(){return o},ToObject:function(){return s},ToRawFixed:function(){return te},ToRawPrecision:function(){return ee},ToString:function(){return i},Type:function(){return _},WeekDay:function(){return m},YearFromTime:function(){return w},_formatToParts:function(){return de},createDataProperty:function(){return $.cL},createMemoizedDateTimeFormat:function(){return $.Xm},createMemoizedListFormat:function(){return $.A4},createMemoizedLocale:function(){return $.$O},createMemoizedNumberFormat:function(){return $.Nt},createMemoizedPluralRules:function(){return $.oE},defineProperty:function(){return $.n8},getInternalSlot:function(){return $.Kp},getMagnitude:function(){return $.Vp},getMultiInternalSlots:function(){return $.Cp},invariant:function(){return $.V1},isLiteralPart:function(){return $.pM},isMissingLocaleDataError:function(){return Ie},msFromTime:function(){return N},removeUnitNamespace:function(){return z},setInternalSlot:function(){return $._T},setMultiInternalSlots:function(){return $.yB}});var f=864e5;function y(e,t){return e-Math.floor(e/t)*t}function p(e){return Math.floor(e/f)}function m(e){return y(p(e)+4,7)}function h(e){return Date.UTC(e,0)/f}function g(e){return Date.UTC(e,0)}function w(e){return new Date(e).getUTCFullYear()}function v(e){return e%4!=0?365:e%100!=0?366:e%400!=0?365:366}function b(e){return p(e)-h(w(e))}function D(e){return 365===v(w(e))?0:1}function S(e){var t=b(e),n=D(e);if(t>=0&&t<31)return 0;if(t<59+n)return 1;if(t<90+n)return 2;if(t<120+n)return 3;if(t<151+n)return 4;if(t<181+n)return 5;if(t<212+n)return 6;if(t<243+n)return 7;if(t<273+n)return 8;if(t<304+n)return 9;if(t<334+n)return 10;if(t<365+n)return 11;throw new Error("Invalid time")}function E(e){var t=b(e),n=S(e),r=D(e);if(0===n)return t+1;if(1===n)return t-30;if(2===n)return t-58-r;if(3===n)return t-89-r;if(4===n)return t-119-r;if(5===n)return t-150-r;if(6===n)return t-180-r;if(7===n)return t-211-r;if(8===n)return t-242-r;if(9===n)return t-272-r;if(10===n)return t-303-r;if(11===n)return t-333-r;throw new Error("Invalid time")}var F=24,C=60,M=60,T=1e3,L=T*M,O=L*C;function A(e){return y(Math.floor(e/O),F)}function I(e){return y(Math.floor(e/L),C)}function P(e){return y(Math.floor(e/T),M)}function G(e,t,n){if("function"!=typeof e)return!1;if(null==n?void 0:n.boundTargetFunction)return t instanceof(null==n?void 0:n.boundTargetFunction);if("object"!=typeof t)return!1;var r=e.prototype;if("object"!=typeof r)throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");return Object.prototype.isPrototypeOf.call(r,t)}function N(e){return y(e,T)}function R(e){return void 0===e?Object.create(null):s(e)}function B(e,t,n,r){if(void 0===e)return r;var a=Number(e);if(isNaN(a)||an)throw new RangeError("".concat(a," is outside of range [").concat(t,", ").concat(n,"]"));return Math.floor(a)}function k(e,t,n,r,a){return B(e[t],n,r,a)}function j(e,t,n,r,a){if("object"!=typeof e)throw new TypeError("Options must be an object");var o=e[t];if(void 0!==o){if("boolean"!==n&&"string"!==n)throw new TypeError("invalid type");if("boolean"===n&&(o=Boolean(o)),"string"===n&&(o=i(o)),void 0!==r&&!r.filter((function(e){return e==o})).length)throw new RangeError("".concat(o," is not within ").concat(r.join(", ")));return o}return a}function x(e){if(void 0===e)return Object.create(null);if("object"==typeof e)return e;throw new TypeError("Options must be an object")}function K(e,t,n,r,a,o){var u=e[t];if(void 0===u)return o;if(!0===u)return r;if(!1===Boolean(u))return a;if("true"===(u=i(u))||"false"===u)return o;if(-1===(n||[]).indexOf(u))throw new RangeError("Invalid value ".concat(u));return u}var q=["angle-degree","area-acre","area-hectare","concentr-percent","digital-bit","digital-byte","digital-gigabit","digital-gigabyte","digital-kilobit","digital-kilobyte","digital-megabit","digital-megabyte","digital-petabyte","digital-terabit","digital-terabyte","duration-day","duration-hour","duration-millisecond","duration-minute","duration-month","duration-second","duration-week","duration-year","length-centimeter","length-foot","length-inch","length-kilometer","length-meter","length-mile-scandinavian","length-mile","length-millimeter","length-yard","mass-gram","mass-kilogram","mass-ounce","mass-pound","mass-stone","temperature-celsius","temperature-fahrenheit","volume-fluid-ounce","volume-gallon","volume-liter","volume-milliliter"];function z(e){return e.slice(e.indexOf("-")+1)}var U=q.map(z);function H(e){return U.indexOf(e)>-1}function V(e,t){var n=t.zoneNamesFromData,r=t.uppercaseLinks,a=e.toUpperCase(),i=new Set,o=new Set;return n.map((function(e){return e.toUpperCase()})).forEach((function(e){return i.add(e)})),Object.keys(r).forEach((function(e){o.add(e.toUpperCase()),i.add(r[e].toUpperCase())})),i.has(a)||o.has(a)}var Z=/[^A-Z]/;function W(e){return 3===(e=e.replace(/([a-z])/g,(function(e,t){return t.toUpperCase()}))).length&&!Z.test(e)}function Y(e){if(H(e=e.replace(/([A-Z])/g,(function(e,t){return t.toLowerCase()}))))return!0;var t=e.split("-per-");if(2!==t.length)return!1;var n=t[0],r=t[1];return!(!H(n)||!H(r))}function J(e,t,n,r){if(e===t)return t;if(void 0===r)throw new Error("unsignedRoundingMode is mandatory");if("zero"===r)return t;if("infinity"===r)return n;var a=e-t,i=n-e;if(af[f.length-1])return f[f.length-1].length-1;var y=f.indexOf(_);if(-1===y)return 0;var p=f[y];return"0"===d[p].other?0:p.length-d[p].other.match(/0+/)[0].length}}function ee(e,t,n){var r,a,i,o,u=n;if(0===e)r=(0,$.ux)("0",u),a=0,i=0;else{var s=e.toString(),c=s.indexOf("e"),d=s.split("e"),l=d[0],_=d[1],f=l.replace(".","");if(c>=0&&f.length<=u)a=+_,r=f+(0,$.ux)("0",u-f.length),i=e;else{var y=(a=(0,$.Vp)(e))-u+1,p=Math.round(h(e,y));h(p,u-1)>=10&&(a+=1,p=Math.floor(p/10)),r=p.toString(),i=h(p,u-1-a)}}if(a>=u-1?(r+=(0,$.ux)("0",a-u+1),o=a+1):a>=0?(r="".concat(r.slice(0,a+1),".").concat(r.slice(a+1)),o=a+1):(r="0.".concat((0,$.ux)("0",-a-1)).concat(r),o=1),r.indexOf(".")>=0&&n>t){for(var m=n-t;m>0&&"0"===r[r.length-1];)r=r.slice(0,-1),m--;"."===r[r.length-1]&&(r=r.slice(0,-1))}return{formattedString:r,roundedNumber:i,integerDigitsCount:o};function h(e,t){return t<0?e*Math.pow(10,-t):e/Math.pow(10,t)}}function te(e,t,n){var r,a,i=n,o=Math.round(e*Math.pow(10,i)),u=o/Math.pow(10,i);if(o<1e21)r=o.toString();else{var s=(r=o.toString()).split("e"),c=s[0],d=s[1];r=c.replace(".",""),r+=(0,$.ux)("0",Math.max(+d-r.length+1,0))}if(0!==i){var l=r.length;if(l<=i)r=(0,$.ux)("0",i+1-l)+r,l=i+1;var _=r.slice(0,l-i),f=r.slice(l-i);r="".concat(_,".").concat(f),a=_.length}else a=r.length;for(var y=n-t;y>0&&"0"===r[r.length-1];)r=r.slice(0,-1),y--;return"."===r[r.length-1]&&(r=r.slice(0,-1)),{formattedString:r,roundedNumber:u,integerDigitsCount:a}}function ne(e,t){var n,r=t<0||c(t,-0);switch(r&&(t=-t),e.roundingType){case"significantDigits":n=ee(t,e.minimumSignificantDigits,e.maximumSignificantDigits);break;case"fractionDigits":n=te(t,e.minimumFractionDigits,e.maximumFractionDigits);break;default:(n=ee(t,1,2)).integerDigitsCount>1&&(n=te(t,0,0))}t=n.roundedNumber;var a=n.formattedString,i=n.integerDigitsCount,o=e.minimumIntegerDigits;i\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/,oe={adlm:["\ud83a\udd50","\ud83a\udd51","\ud83a\udd52","\ud83a\udd53","\ud83a\udd54","\ud83a\udd55","\ud83a\udd56","\ud83a\udd57","\ud83a\udd58","\ud83a\udd59"],ahom:["\ud805\udf30","\ud805\udf31","\ud805\udf32","\ud805\udf33","\ud805\udf34","\ud805\udf35","\ud805\udf36","\ud805\udf37","\ud805\udf38","\ud805\udf39"],arab:["\u0660","\u0661","\u0662","\u0663","\u0664","\u0665","\u0666","\u0667","\u0668","\u0669"],arabext:["\u06f0","\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9"],bali:["\u1b50","\u1b51","\u1b52","\u1b53","\u1b54","\u1b55","\u1b56","\u1b57","\u1b58","\u1b59"],beng:["\u09e6","\u09e7","\u09e8","\u09e9","\u09ea","\u09eb","\u09ec","\u09ed","\u09ee","\u09ef"],bhks:["\ud807\udc50","\ud807\udc51","\ud807\udc52","\ud807\udc53","\ud807\udc54","\ud807\udc55","\ud807\udc56","\ud807\udc57","\ud807\udc58","\ud807\udc59"],brah:["\ud804\udc66","\ud804\udc67","\ud804\udc68","\ud804\udc69","\ud804\udc6a","\ud804\udc6b","\ud804\udc6c","\ud804\udc6d","\ud804\udc6e","\ud804\udc6f"],cakm:["\ud804\udd36","\ud804\udd37","\ud804\udd38","\ud804\udd39","\ud804\udd3a","\ud804\udd3b","\ud804\udd3c","\ud804\udd3d","\ud804\udd3e","\ud804\udd3f"],cham:["\uaa50","\uaa51","\uaa52","\uaa53","\uaa54","\uaa55","\uaa56","\uaa57","\uaa58","\uaa59"],deva:["\u0966","\u0967","\u0968","\u0969","\u096a","\u096b","\u096c","\u096d","\u096e","\u096f"],diak:["\ud806\udd50","\ud806\udd51","\ud806\udd52","\ud806\udd53","\ud806\udd54","\ud806\udd55","\ud806\udd56","\ud806\udd57","\ud806\udd58","\ud806\udd59"],fullwide:["\uff10","\uff11","\uff12","\uff13","\uff14","\uff15","\uff16","\uff17","\uff18","\uff19"],gong:["\ud807\udda0","\ud807\udda1","\ud807\udda2","\ud807\udda3","\ud807\udda4","\ud807\udda5","\ud807\udda6","\ud807\udda7","\ud807\udda8","\ud807\udda9"],gonm:["\ud807\udd50","\ud807\udd51","\ud807\udd52","\ud807\udd53","\ud807\udd54","\ud807\udd55","\ud807\udd56","\ud807\udd57","\ud807\udd58","\ud807\udd59"],gujr:["\u0ae6","\u0ae7","\u0ae8","\u0ae9","\u0aea","\u0aeb","\u0aec","\u0aed","\u0aee","\u0aef"],guru:["\u0a66","\u0a67","\u0a68","\u0a69","\u0a6a","\u0a6b","\u0a6c","\u0a6d","\u0a6e","\u0a6f"],hanidec:["\u3007","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d"],hmng:["\ud81a\udf50","\ud81a\udf51","\ud81a\udf52","\ud81a\udf53","\ud81a\udf54","\ud81a\udf55","\ud81a\udf56","\ud81a\udf57","\ud81a\udf58","\ud81a\udf59"],hmnp:["\ud838\udd40","\ud838\udd41","\ud838\udd42","\ud838\udd43","\ud838\udd44","\ud838\udd45","\ud838\udd46","\ud838\udd47","\ud838\udd48","\ud838\udd49"],java:["\ua9d0","\ua9d1","\ua9d2","\ua9d3","\ua9d4","\ua9d5","\ua9d6","\ua9d7","\ua9d8","\ua9d9"],kali:["\ua900","\ua901","\ua902","\ua903","\ua904","\ua905","\ua906","\ua907","\ua908","\ua909"],khmr:["\u17e0","\u17e1","\u17e2","\u17e3","\u17e4","\u17e5","\u17e6","\u17e7","\u17e8","\u17e9"],knda:["\u0ce6","\u0ce7","\u0ce8","\u0ce9","\u0cea","\u0ceb","\u0cec","\u0ced","\u0cee","\u0cef"],lana:["\u1a80","\u1a81","\u1a82","\u1a83","\u1a84","\u1a85","\u1a86","\u1a87","\u1a88","\u1a89"],lanatham:["\u1a90","\u1a91","\u1a92","\u1a93","\u1a94","\u1a95","\u1a96","\u1a97","\u1a98","\u1a99"],laoo:["\u0ed0","\u0ed1","\u0ed2","\u0ed3","\u0ed4","\u0ed5","\u0ed6","\u0ed7","\u0ed8","\u0ed9"],lepc:["\u1a90","\u1a91","\u1a92","\u1a93","\u1a94","\u1a95","\u1a96","\u1a97","\u1a98","\u1a99"],limb:["\u1946","\u1947","\u1948","\u1949","\u194a","\u194b","\u194c","\u194d","\u194e","\u194f"],mathbold:["\ud835\udfce","\ud835\udfcf","\ud835\udfd0","\ud835\udfd1","\ud835\udfd2","\ud835\udfd3","\ud835\udfd4","\ud835\udfd5","\ud835\udfd6","\ud835\udfd7"],mathdbl:["\ud835\udfd8","\ud835\udfd9","\ud835\udfda","\ud835\udfdb","\ud835\udfdc","\ud835\udfdd","\ud835\udfde","\ud835\udfdf","\ud835\udfe0","\ud835\udfe1"],mathmono:["\ud835\udff6","\ud835\udff7","\ud835\udff8","\ud835\udff9","\ud835\udffa","\ud835\udffb","\ud835\udffc","\ud835\udffd","\ud835\udffe","\ud835\udfff"],mathsanb:["\ud835\udfec","\ud835\udfed","\ud835\udfee","\ud835\udfef","\ud835\udff0","\ud835\udff1","\ud835\udff2","\ud835\udff3","\ud835\udff4","\ud835\udff5"],mathsans:["\ud835\udfe2","\ud835\udfe3","\ud835\udfe4","\ud835\udfe5","\ud835\udfe6","\ud835\udfe7","\ud835\udfe8","\ud835\udfe9","\ud835\udfea","\ud835\udfeb"],mlym:["\u0d66","\u0d67","\u0d68","\u0d69","\u0d6a","\u0d6b","\u0d6c","\u0d6d","\u0d6e","\u0d6f"],modi:["\ud805\ude50","\ud805\ude51","\ud805\ude52","\ud805\ude53","\ud805\ude54","\ud805\ude55","\ud805\ude56","\ud805\ude57","\ud805\ude58","\ud805\ude59"],mong:["\u1810","\u1811","\u1812","\u1813","\u1814","\u1815","\u1816","\u1817","\u1818","\u1819"],mroo:["\ud81a\ude60","\ud81a\ude61","\ud81a\ude62","\ud81a\ude63","\ud81a\ude64","\ud81a\ude65","\ud81a\ude66","\ud81a\ude67","\ud81a\ude68","\ud81a\ude69"],mtei:["\uabf0","\uabf1","\uabf2","\uabf3","\uabf4","\uabf5","\uabf6","\uabf7","\uabf8","\uabf9"],mymr:["\u1040","\u1041","\u1042","\u1043","\u1044","\u1045","\u1046","\u1047","\u1048","\u1049"],mymrshan:["\u1090","\u1091","\u1092","\u1093","\u1094","\u1095","\u1096","\u1097","\u1098","\u1099"],mymrtlng:["\ua9f0","\ua9f1","\ua9f2","\ua9f3","\ua9f4","\ua9f5","\ua9f6","\ua9f7","\ua9f8","\ua9f9"],newa:["\ud805\udc50","\ud805\udc51","\ud805\udc52","\ud805\udc53","\ud805\udc54","\ud805\udc55","\ud805\udc56","\ud805\udc57","\ud805\udc58","\ud805\udc59"],nkoo:["\u07c0","\u07c1","\u07c2","\u07c3","\u07c4","\u07c5","\u07c6","\u07c7","\u07c8","\u07c9"],olck:["\u1c50","\u1c51","\u1c52","\u1c53","\u1c54","\u1c55","\u1c56","\u1c57","\u1c58","\u1c59"],orya:["\u0b66","\u0b67","\u0b68","\u0b69","\u0b6a","\u0b6b","\u0b6c","\u0b6d","\u0b6e","\u0b6f"],osma:["\ud801\udca0","\ud801\udca1","\ud801\udca2","\ud801\udca3","\ud801\udca4","\ud801\udca5","\ud801\udca6","\ud801\udca7","\ud801\udca8","\ud801\udca9"],rohg:["\ud803\udd30","\ud803\udd31","\ud803\udd32","\ud803\udd33","\ud803\udd34","\ud803\udd35","\ud803\udd36","\ud803\udd37","\ud803\udd38","\ud803\udd39"],saur:["\ua8d0","\ua8d1","\ua8d2","\ua8d3","\ua8d4","\ua8d5","\ua8d6","\ua8d7","\ua8d8","\ua8d9"],segment:["\ud83e\udff0","\ud83e\udff1","\ud83e\udff2","\ud83e\udff3","\ud83e\udff4","\ud83e\udff5","\ud83e\udff6","\ud83e\udff7","\ud83e\udff8","\ud83e\udff9"],shrd:["\ud804\uddd0","\ud804\uddd1","\ud804\uddd2","\ud804\uddd3","\ud804\uddd4","\ud804\uddd5","\ud804\uddd6","\ud804\uddd7","\ud804\uddd8","\ud804\uddd9"],sind:["\ud804\udef0","\ud804\udef1","\ud804\udef2","\ud804\udef3","\ud804\udef4","\ud804\udef5","\ud804\udef6","\ud804\udef7","\ud804\udef8","\ud804\udef9"],sinh:["\u0de6","\u0de7","\u0de8","\u0de9","\u0dea","\u0deb","\u0dec","\u0ded","\u0dee","\u0def"],sora:["\ud804\udcf0","\ud804\udcf1","\ud804\udcf2","\ud804\udcf3","\ud804\udcf4","\ud804\udcf5","\ud804\udcf6","\ud804\udcf7","\ud804\udcf8","\ud804\udcf9"],sund:["\u1bb0","\u1bb1","\u1bb2","\u1bb3","\u1bb4","\u1bb5","\u1bb6","\u1bb7","\u1bb8","\u1bb9"],takr:["\ud805\udec0","\ud805\udec1","\ud805\udec2","\ud805\udec3","\ud805\udec4","\ud805\udec5","\ud805\udec6","\ud805\udec7","\ud805\udec8","\ud805\udec9"],talu:["\u19d0","\u19d1","\u19d2","\u19d3","\u19d4","\u19d5","\u19d6","\u19d7","\u19d8","\u19d9"],tamldec:["\u0be6","\u0be7","\u0be8","\u0be9","\u0bea","\u0beb","\u0bec","\u0bed","\u0bee","\u0bef"],telu:["\u0c66","\u0c67","\u0c68","\u0c69","\u0c6a","\u0c6b","\u0c6c","\u0c6d","\u0c6e","\u0c6f"],thai:["\u0e50","\u0e51","\u0e52","\u0e53","\u0e54","\u0e55","\u0e56","\u0e57","\u0e58","\u0e59"],tibt:["\u0f20","\u0f21","\u0f22","\u0f23","\u0f24","\u0f25","\u0f26","\u0f27","\u0f28","\u0f29"],tirh:["\ud805\udcd0","\ud805\udcd1","\ud805\udcd2","\ud805\udcd3","\ud805\udcd4","\ud805\udcd5","\ud805\udcd6","\ud805\udcd7","\ud805\udcd8","\ud805\udcd9"],vaii:["\u1620","\u1621","\u1622","\u1623","\u1624","\u1625","\u1626","\u1627","\u1628","\u1629"],wara:["\ud806\udce0","\ud806\udce1","\ud806\udce2","\ud806\udce3","\ud806\udce4","\ud806\udce5","\ud806\udce6","\ud806\udce7","\ud806\udce8","\ud806\udce9"],wcho:["\ud838\udef0","\ud838\udef1","\ud838\udef2","\ud838\udef3","\ud838\udef4","\ud838\udef5","\ud838\udef6","\ud838\udef7","\ud838\udef8","\ud838\udef9"]},ue=new RegExp("^".concat(ie.source)),se=new RegExp("".concat(ie.source,"$")),ce=/[#0](?:[\.,][#0]+)*/g;function de(e,t,n,r){var a,i,o=e.sign,u=e.exponent,s=e.magnitude,c=r.notation,d=r.style,l=r.numberingSystem,_=t.numbers.nu[0],f=null;if("compact"===c&&s&&(f=function(e,t,n,r,a,i,o){var u,s,c=e.roundedNumber,d=e.sign,l=e.magnitude,_=String(Math.pow(10,l)),f=n.numbers.nu[0];if("currency"===r&&"name"!==i){var y=null===(u=((p=n.numbers.currency)[o]||p[f]).short)||void 0===u?void 0:u[_];if(!y)return null;s=fe(t,c,y)}else{var p,m=((p=n.numbers.decimal)[o]||p[f])[a][_];if(!m)return null;s=fe(t,c,m)}if("0"===s)return null;return s=_e(s,d).replace(/([^\s;\-\+\d\xa4]+)/g,"{c:$1}").replace(/0+/,"0"),s}(e,n,t,d,r.compactDisplay,r.currencyDisplay,l)),"currency"===d&&"name"!==r.currencyDisplay){var y=t.currencies[r.currency];if(y)switch(r.currencyDisplay){case"code":a=r.currency;break;case"symbol":a=y.symbol;break;default:a=y.narrow}else a=r.currency}if(f)i=f;else if("decimal"===d||"unit"===d||"currency"===d&&"name"===r.currencyDisplay)i=_e((t.numbers.decimal[l]||t.numbers.decimal[_]).standard,o);else if("currency"===d){i=_e((m=t.numbers.currency[l]||t.numbers.currency[_])[r.currencySign],o)}else{i=_e(t.numbers.percent[l]||t.numbers.percent[_],o)}var p=ce.exec(i)[0];if(i=i.replace(ce,"{0}").replace(/'(.)'/g,"$1"),"currency"===d&&"name"!==r.currencyDisplay){var m,h=(m=t.numbers.currency[l]||t.numbers.currency[_]).currencySpacing.afterInsertBetween;h&&!se.test(a)&&(i=i.replace("\xa4{0}","\xa4".concat(h,"{0}")));var g=m.currencySpacing.beforeInsertBetween;g&&!ue.test(a)&&(i=i.replace("{0}\xa4","{0}".concat(g,"\xa4")))}for(var w=i.split(/({c:[^}]+}|\{0\}|[\xa4%\-\+])/g),v=[],b=t.numbers.symbols[l]||t.numbers.symbols[_],D=0,S=w;D0?(_=c.slice(0,y),f=c.slice(y+1)):_=c,i&&("compact"!==n||d>=1e4)){var p="currency"===u&&null!=e.currencyGroup?e.currencyGroup:e.group,m=[],h=o.split(".")[0].split(","),g=3,w=3;h.length>1&&(g=h[h.length-1].length),h.length>2&&(w=h[h.length-2].length);var v=_.length-g;if(v>0){for(m.push(_.slice(v,v+g)),v-=w;v>0;v-=w)m.push(_.slice(v,v+w));m.push(_.slice(0,v+w))}else m.push(_);for(;m.length>0;){var b=m.pop();s.push({type:"integer",value:b}),m.length>0&&s.push({type:"group",value:p})}}else s.push({type:"integer",value:_});if(void 0!==f){var D="currency"===u&&null!=e.currencyDecimal?e.currencyDecimal:e.decimal;s.push({type:"decimal",value:D},{type:"fraction",value:f})}if(("scientific"===n||"engineering"===n)&&isFinite(d)){s.push({type:"exponentSeparator",value:e.exponential}),r<0&&(s.push({type:"exponentMinusSign",value:e.minusSign}),r=-r);var S=te(r,0,0);s.push({type:"exponentInteger",value:S.formattedString})}return s}function _e(e,t){e.indexOf(";")<0&&(e="".concat(e,";-").concat(e));var n=e.split(";"),r=n[0],a=n[1];switch(t){case 0:return r;case-1:return a;default:return a.indexOf("-")>=0?a.replace(/-/g,"+"):"+".concat(r)}}function fe(e,t,n){return n[e.select(t)]||n.other}function ye(e,t,n){var r=(0,n.getInternalSlots)(e),a=r.dataLocaleData.numbers.symbols[r.numberingSystem].approximatelySign;return t.push({type:"approximatelySign",value:a}),t}function pe(e,t,n){var r,a,i,o=n.getInternalSlots,u=o(e),s=u.pl,d=u.dataLocaleData,l=u.numberingSystem,_=d.numbers.symbols[l]||d.numbers.symbols[d.numbers.nu[0]],f=0,y=0;if(isNaN(t))a=_.nan;else if(t==Number.POSITIVE_INFINITY||t==Number.NEGATIVE_INFINITY)a=_.infinity;else{if(!c(t,-0)){if(!isFinite(t))throw new Error("Input must be a mathematical value");"percent"==u.style&&(t*=100),y=(r=re(e,t,{getInternalSlots:o}))[0],f=r[1],t=y<0?t*Math.pow(10,-y):t/Math.pow(10,y)}var p=ne(u,t);a=p.formattedString,t=p.roundedNumber}switch(u.signDisplay){case"never":i=0;break;case"auto":i=c(t,0)||t>0||isNaN(t)?0:-1;break;case"always":i=c(t,0)||t>0||isNaN(t)?1:-1;break;default:i=0===t||isNaN(t)?0:t>0?1:-1}return de({roundedNumber:t,formattedString:a,exponent:y,magnitude:f,sign:i},u.dataLocaleData,s,u)}function me(e,t,n,r){var a=r.getInternalSlots;if(isNaN(t)||isNaN(n))throw new RangeError("Input must be a number");var i=[],o=pe(e,t,{getInternalSlots:a}),u=pe(e,n,{getInternalSlots:a});if(o===u)return ye(e,o,{getInternalSlots:a});for(var s=0,c=o;su)throw new RangeError("Invalid range, ".concat(o," > ").concat(u));e.minimumFractionDigits=o,e.maximumFractionDigits=u}else e.minimumFractionDigits=n,e.maximumFractionDigits=r;f||y?e.roundingType="morePrecision"===d?"morePrecision":"lessPrecision"===d?"lessPrecision":l?"significantDigits":"fractionDigits":(e.roundingType="morePrecision",e.minimumFractionDigits=0,e.maximumFractionDigits=0,e.minimumSignificantDigits=1,e.maximumSignificantDigits=2)}function Fe(e,t,n){void 0===t&&(t=Object.create(null));var r=(0,n.getInternalSlots)(e),a=j(t,"style","string",["decimal","percent","currency","unit"],"decimal");r.style=a;var i=j(t,"currency","string",void 0,void 0);if(void 0!==i&&!W(i))throw RangeError("Malformed currency code");if("currency"===a&&void 0===i)throw TypeError("currency cannot be undefined");var o=j(t,"currencyDisplay","string",["code","symbol","narrowSymbol","name"],"symbol"),u=j(t,"currencySign","string",["standard","accounting"],"standard"),s=j(t,"unit","string",void 0,void 0);if(void 0!==s&&!Y(s))throw RangeError("Invalid unit argument for Intl.NumberFormat()");if("unit"===a&&void 0===s)throw TypeError("unit cannot be undefined");var c=j(t,"unitDisplay","string",["short","narrow","long"],"short");"currency"===a&&(r.currency=i.toUpperCase(),r.currencyDisplay=o,r.currencySign=u),"unit"===a&&(r.unit=s,r.unitDisplay=c)}var Ce=[1,2,5,10,20,25,50,100,200,250,500,1e3,2e3];function Me(e,t,n,a){var i=a.getInternalSlots,o=a.localeData,u=a.availableLocales,s=a.numberingSystemNames,c=a.getDefaultLocale,d=a.currencyDigitsData,l=r(t),_=R(n),f=Object.create(null),y=j(_,"localeMatcher","string",["lookup","best fit"],"best fit");f.localeMatcher=y;var p=j(_,"numberingSystem","string",void 0,void 0);if(void 0!==p&&s.indexOf(p)<0)throw RangeError("Invalid numberingSystems: ".concat(p));f.nu=p;var m=(0,Se.ResolveLocale)(Array.from(u),l,f,["nu"],o,c),h=o[m.dataLocale];(0,$.V1)(!!h,"Missing locale data for ".concat(m.dataLocale));var g=i(e);g.locale=m.locale,g.dataLocale=m.dataLocale,g.numberingSystem=m.nu,g.dataLocaleData=h,Fe(e,_,{getInternalSlots:i});var w,v,b=g.style;if("currency"===b){var D=ae(g.currency,{currencyDigitsData:d});w=D,v=D}else w=0,v="percent"===b?0:3;var S=j(_,"notation","string",["standard","scientific","engineering","compact"],"standard");g.notation=S,Ee(g,_,w,v,S);var E=k(_,"roundingIncrement",1,5e3,1);if(-1===Ce.indexOf(E))throw new RangeError("Invalid rounding increment value: ".concat(E,".\nValid values are ").concat(Ce,"."));if(1!==E&&"fractionDigits"!==g.roundingType)throw new TypeError("For roundingIncrement > 1 only fractionDigits is a valid roundingType");if(1!==E&&g.maximumFractionDigits!==g.minimumFractionDigits)throw new RangeError("With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.");g.roundingIncrement=E;var F=j(_,"trailingZeroDisplay","string",["auto","stripIfInteger"],"auto");g.trailingZeroDisplay=F;var C=j(_,"compactDisplay","string",["short","long"],"short"),M="auto";return"compact"===S&&(g.compactDisplay=C,M="min2"),g.useGrouping=K(_,"useGrouping",["min2","auto","always"],"always",!1,M),g.signDisplay=j(_,"signDisplay","string",["auto","never","always","exceptZero","negative"],"auto"),g.roundingMode=j(_,"roundingMode","string",["ceil","floor","expand","trunc","halfCeil","halfFloor","halfExpand","halfTrunc","halfEven"],"halfExpand"),e}function Te(e){for(var t=[],n=e.indexOf("{"),r=0,a=0,i=e.length;n-1;)r=e.indexOf("}",n),(0,$.V1)(r>n,"Invalid pattern ".concat(e)),n>a&&t.push({type:"literal",value:e.substring(a,n)}),t.push({type:e.substring(n+1,r),value:void 0}),a=r+1,n=e.indexOf("{",a);return a1!=d))}else c&&(c=!e.region||("*"===s||s===e.region));return c&&(c=!e.script||("*"===u||u===e.script)),c&&(c=!e.language||("*"===o||o===e.language)),c}function l(e){return[e.language,e.script,e.region].filter(Boolean).join("-")}function _(e,t,n){for(var r=0,a=n.matches;r-1!=n.paradigmLocales.indexOf(l(t))>-1?u-1:u}}throw new Error("No matching distance found")}function f(e,t){var n=new Intl.Locale(e).maximize(),i=new Intl.Locale(t).maximize(),o={language:n.language,script:n.script||"",region:n.region||""},u={language:i.language,script:i.script||"",region:i.region||""},c=0,d=function(){var e,t;if(!s){var n=null===(t=null===(e=a.supplemental.languageMatching["written-new"][0])||void 0===e?void 0:e.paradigmLocales)||void 0===t?void 0:t._locales.split(" "),i=a.supplemental.languageMatching["written-new"].slice(1,5),o=a.supplemental.languageMatching["written-new"].slice(5).map((function(e){var t=Object.keys(e)[0],n=e[t];return{supported:t,desired:n._desired,distance:+n._distance,oneway:"true"===n.oneway}}),{});s={matches:o,matchVariables:i.reduce((function(e,t){var n=Object.keys(t)[0],r=t[n];return e[n.slice(1)]=r._value.split("+"),e}),{}),paradigmLocales:r(r([],n,!0),n.map((function(e){return new Intl.Locale(e.replace(/_/g,"-")).maximize().toString()})),!0)}}return s}();return o.language!==u.language&&(c+=_({language:n.language,script:"",region:""},{language:i.language,script:"",region:""},d)),o.script!==u.script&&(c+=_({language:n.language,script:o.script,region:""},{language:i.language,script:o.script,region:""},d)),o.region!==u.region&&(c+=_(o,u,d)),c}function y(e,t,n){var r,a,i=[],u=t.reduce((function(e,t){var n=t.replace(o,"");return i.push(n),e[n]=t,e}),{}),s=function(e,t,n){void 0===n&&(n=c);var r=1/0,a={matchedDesiredLocale:"",distances:{}};return e.forEach((function(e,n){a.distances[e]||(a.distances[e]={}),t.forEach((function(t){var i=f(e,t)+0+40*n;a.distances[e][t]=i,i=n&&(a.matchedDesiredLocale=void 0,a.matchedSupportedLocale=void 0),a}(i,e);return s.matchedSupportedLocale&&s.matchedDesiredLocale&&(r=s.matchedSupportedLocale,a=u[s.matchedDesiredLocale].slice(s.matchedDesiredLocale.length)||void 0),r?{locale:r,extension:a}:{locale:n()}}function p(e,t){for(var n=t;;){if(e.indexOf(n)>-1)return n;var r=n.lastIndexOf("-");if(!~r)return;r>=2&&"-"===n[r-2]&&(r-=2),n=n.slice(0,r)}}function m(e,t){u(2===t.length,"key must have 2 elements");var n=e.length,r="-".concat(t,"-"),a=e.indexOf(r);if(-1!==a){for(var i=a+4,o=i,s=i,c=!1;!c;){var d=e.indexOf("-",s);2===(-1===d?n-s:d-s)?c=!0:-1===d?(o=n,c=!0):(o=d,s=d+1)}return e.slice(i,o)}if(r="-".concat(t),-1!==(a=e.indexOf(r))&&a+3===n)return""}function h(e,t,n,r,a,i){var s;s="lookup"===n.localeMatcher?function(e,t,n){for(var r={locale:""},a=0,i=t;a2){var E=c.indexOf("-x-");if(-1===E)c+=l;else{var F=c.slice(0,E),C=c.slice(E,c.length);c=F+l+C}c=Intl.getCanonicalLocales(c)[0]}return d.locale=c,d}function g(e,t){for(var n=[],r=0,a=t;r=0;u--)(a=e[u])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function s(e,t){return function(n,r){t(n,r,e)}}function c(e,t,n,r,a,i){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var u,s=r.kind,c="getter"===s?"get":"setter"===s?"set":"value",d=!t&&e?r.static?e:e.prototype:null,l=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),_=!1,f=n.length-1;f>=0;f--){var y={};for(var p in r)y[p]="access"===p?{}:r[p];for(var p in r.access)y.access[p]=r.access[p];y.addInitializer=function(e){if(_)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(e||null))};var m=(0,n[f])("accessor"===s?{get:l.get,set:l.set}:l[c],y);if("accessor"===s){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(u=o(m.get))&&(l.get=u),(u=o(m.set))&&(l.set=u),(u=o(m.init))&&a.unshift(u)}else(u=o(m))&&("field"===s?a.unshift(u):l[c]=u)}d&&Object.defineProperty(d,r.name,l),_=!0}function d(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return o}function v(){for(var e=[],t=0;t1||u(e,t)}))},t&&(r[e]=t(r[e])))}function u(e,t){try{(n=a[e](t)).value instanceof S?Promise.resolve(n.value.v).then(s,c):d(i[0][2],n)}catch(e){d(i[0][3],e)}var n}function s(e){u("next",e)}function c(e){u("throw",e)}function d(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function F(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:S(e[r](t)),done:!1}:a?a(t):t}:a}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=g(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function L(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&m(t,e,n);return T(t,e),t}function O(e){return e&&e.__esModule?e:{default:e}}function A(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function P(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function G(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,a;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var N="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function R(e){function t(t){e.error=e.hasError?new N(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var i=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(i).then(a,(function(e){return t(e),a()}))}else r|=1}catch(e){t(e)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function B(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,n,r,a,i){return n?t?".jsx":".js":!r||a&&i?r+a+"."+i.toLowerCase()+"js":e})):e}t.default={__extends:a,__assign:i,__rest:o,__decorate:u,__param:s,__esDecorate:c,__runInitializers:d,__propKey:l,__setFunctionName:_,__metadata:f,__awaiter:y,__generator:p,__createBinding:m,__exportStar:h,__values:g,__read:w,__spread:v,__spreadArrays:b,__spreadArray:D,__await:S,__asyncGenerator:E,__asyncDelegator:F,__asyncValues:C,__makeTemplateObject:M,__importStar:L,__importDefault:O,__classPrivateFieldGet:A,__classPrivateFieldSet:I,__classPrivateFieldIn:P,__addDisposableResource:G,__disposeResources:R,__rewriteRelativeImportExtension:B}},9384:function(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:function(){return G},__assign:function(){return i},__asyncDelegator:function(){return F},__asyncGenerator:function(){return E},__asyncValues:function(){return C},__await:function(){return S},__awaiter:function(){return y},__classPrivateFieldGet:function(){return A},__classPrivateFieldIn:function(){return P},__classPrivateFieldSet:function(){return I},__createBinding:function(){return m},__decorate:function(){return u},__disposeResources:function(){return R},__esDecorate:function(){return c},__exportStar:function(){return h},__extends:function(){return a},__generator:function(){return p},__importDefault:function(){return O},__importStar:function(){return L},__makeTemplateObject:function(){return M},__metadata:function(){return f},__param:function(){return s},__propKey:function(){return l},__read:function(){return w},__rest:function(){return o},__rewriteRelativeImportExtension:function(){return B},__runInitializers:function(){return d},__setFunctionName:function(){return _},__spread:function(){return v},__spreadArray:function(){return D},__spreadArrays:function(){return b},__values:function(){return g}});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;u--)(a=e[u])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function s(e,t){return function(n,r){t(n,r,e)}}function c(e,t,n,r,a,i){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var u,s=r.kind,c="getter"===s?"get":"setter"===s?"set":"value",d=!t&&e?r.static?e:e.prototype:null,l=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),_=!1,f=n.length-1;f>=0;f--){var y={};for(var p in r)y[p]="access"===p?{}:r[p];for(var p in r.access)y.access[p]=r.access[p];y.addInitializer=function(e){if(_)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(e||null))};var m=(0,n[f])("accessor"===s?{get:l.get,set:l.set}:l[c],y);if("accessor"===s){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(u=o(m.get))&&(l.get=u),(u=o(m.set))&&(l.set=u),(u=o(m.init))&&a.unshift(u)}else(u=o(m))&&("field"===s?a.unshift(u):l[c]=u)}d&&Object.defineProperty(d,r.name,l),_=!0}function d(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return o}function v(){for(var e=[],t=0;t1||u(e,t)}))},t&&(r[e]=t(r[e])))}function u(e,t){try{(n=a[e](t)).value instanceof S?Promise.resolve(n.value.v).then(s,c):d(i[0][2],n)}catch(e){d(i[0][3],e)}var n}function s(e){u("next",e)}function c(e){u("throw",e)}function d(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function F(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:S(e[r](t)),done:!1}:a?a(t):t}:a}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=g(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function L(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&m(t,e,n);return T(t,e),t}function O(e){return e&&e.__esModule?e:{default:e}}function A(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function P(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function G(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,a;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var N="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function R(e){function t(t){e.error=e.hasError?new N(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var i=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(i).then(a,(function(e){return t(e),a()}))}else r|=1}catch(e){t(e)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function B(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,n,r,a,i){return n?t?".jsx":".js":!r||a&&i?r+a+"."+i.toLowerCase()+"js":e})):e}t.default={__extends:a,__assign:i,__rest:o,__decorate:u,__param:s,__esDecorate:c,__runInitializers:d,__propKey:l,__setFunctionName:_,__metadata:f,__awaiter:y,__generator:p,__createBinding:m,__exportStar:h,__values:g,__read:w,__spread:v,__spreadArrays:b,__spreadArray:D,__await:S,__asyncGenerator:E,__asyncDelegator:F,__asyncValues:C,__makeTemplateObject:M,__importStar:L,__importDefault:O,__classPrivateFieldGet:A,__classPrivateFieldSet:I,__classPrivateFieldIn:P,__addDisposableResource:G,__disposeResources:R,__rewriteRelativeImportExtension:B}}}]); +//# sourceMappingURL=5393.228288bbf54d1183bfb1.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js.map b/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js.map new file mode 100644 index 00000000..149aeed6 --- /dev/null +++ b/webpanel/6.6.0/5393.228288bbf54d1183bfb1.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5393.228288bbf54d1183bfb1.bundle.js","mappings":"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/C,GAMf,CACHF,EAA4BC,EAAcC,EAAY,EAAG,CACrDC,iBAAkBA,IAEtBD,EAAY,EAEpB,CClCO,SAASgE,GAAelF,EAAGrI,GAC9B,IAAIwN,EAAqBxN,EAAGwN,mBAC5B,OAAOhL,EAAegL,EAAoBnF,GACpCmF,EAAmBnF,GACnB,CACV,CCRO,IAAIoF,GAAkB,u8ECDlBC,GAAe,CACtB,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,QAAW,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,SAAY,CACR,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,QAAW,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,SAAY,CACR,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,SAAY,CACR,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,QAAW,CACP,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,SAAY,CACR,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,SAAY,CACR,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,SAAY,CACR,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,SAAY,CACR,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,SAAY,CACR,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,QAAW,CACP,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAEJ,KAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEJ,KAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gB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S,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SA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,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,MAAO,CACHP,SAAU,MACVC,UAAW,OAGnB,CACI,gBAAiB,CACbD,SAAU,gBACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,aAAc,CACVD,SAAU,aACVC,UAAW,MAGnB,CACI,UAAW,CACPD,SAAU,cACVC,UAAW,MAGnB,CACI,cAAe,CACXD,SAAU,cACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,YAAa,CACTD,SAAU,YACVC,UAAW,MAGnB,CACI,QAAS,CACLD,SAAU,QACVC,UAAW,UCpjFxB6C,EAAU,CACjB,MAAO,CACH,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,sBACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OChzCGC,EAAmC,0BACvC,SAASC,EAAUC,EAAWC,EAASC,GAE1C,QADY,IAARA,IAAkBA,EAAM3Y,QACvByY,EACD,MAAM,IAAIE,EAAID,EAEtB,CAEA,IACIE,EADAC,EAA6B,IAiCjC,SAASC,EAAUxF,EAAQyF,EAAyBC,GAChD,IAAI/c,EAAK8c,EAAwBpU,MAAM,KAAMsU,EAAWhd,EAAG,GAAIid,EAASjd,EAAG,GAAIkd,EAASld,EAAG,GACvFmd,GAAU,EACd,GAAID,GAAwB,MAAdA,EAAO,GAAY,CAC7B,IAAIE,EAA8B,MAAdF,EAAO,GAIvBG,GAHeD,EACbL,EAAeG,EAAOhW,MAAM,IAC5B6V,EAAeG,EAAOhW,MAAM,KAE7BE,KAAI,SAAU6P,GAAK,OAAOoF,EAAQpF,IAAM,CAACA,EAAI,IAC7C3W,QAAO,SAAUC,EAAK+c,GAAQ,OAAO/E,EAAcA,EAAc,GAAIhY,GAAK,GAAO+c,GAAM,EAAO,GAAG,IACtGH,IAAYA,IAAYE,EAAuBvW,QAAQuQ,EAAO6F,QAAU,IAAM,GAC1EE,GACR,MAEID,IAAYA,GAAU9F,EAAO6F,SACZ,MAAXA,GAAkBA,IAAW7F,EAAO6F,SAO9C,OAJAC,IAAYA,GAAU9F,EAAO4F,SAAoB,MAAXA,GAAkBA,IAAW5F,EAAO4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AM,KAAM,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,MAAO,KAAM,UAAW,UAAW,MAAO,KAAM,YAAa,MAAO,MAAO,KAAM,KAAM,KAAM,QAAS,KAAM,QAAS,KAAM,MAAO,KAAM,UAAW,UAAW,KAAM,QAAS,iBAAkB,QAAS,QAAS,MAAO,SAAU,KAAM,MAAO,MAAO,MAAO,MAAO,SAAU,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,KAAM,QAAS,KAAM,QAAS,KAAM,SAAU,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,KAAM,QAAS,KAAM,UAAW,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,KAAM,MAAO,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,KAAM,KAAM,QAAS,KAAM,KAAM,MAAO,SAAU,SAAU,KAAM,MAAO,KAAM,KAAM,QAAS,QAAS,MAAO,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,UAAW,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,SAAU,KAAM,KAAM,MAAO,MAAO,KAAM,MAAO,MAAO,SAAU,MAAO,MAAO,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,WAAY,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,SAAU,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,KAAM,QAAS,KAAM,UAAW,UAAW,MAAO,KAAM,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,MAAO,MAAO,MAAO,WAAY,MAAO,KAAM,KAAM,UAAW,UAAW,KAAM,QAAS,QAAS,MAAO,MAAO,KAAM,MAAO,WAAY,WAAY,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,UAAW,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,KAAM,UAAW,KAAM,QAAS,QAAS,KAAM,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,SAAU,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,KAAM,QAAS,KAAM,UAAW,UAAW,UAAW,MAAO,WAAY,WAAY,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,QAAS,MAAO,SAAU,SAAU,MAAO,WAAY,WAAY,MAAO,KAAM,UAAW,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,K,0qCCajvJ,IAAImI,EAAgB,SAAStJ,EAAGnR,GAI9B,OAHAya,EAAgBjlB,OAAOklB,gBAClB,CAAEC,UAAW,cAAgB7kB,OAAS,SAAUqb,EAAGnR,GAAKmR,EAAEwJ,UAAY3a,CAAG,GAC1E,SAAUmR,EAAGnR,GAAK,IAAK,IAAItB,KAAKsB,EAAOxK,OAAOS,UAAUC,eAAeC,KAAK6J,EAAGtB,KAAIyS,EAAEzS,GAAKsB,EAAEtB,GAAI,EAC7F+b,EAActJ,EAAGnR,EAC1B,EAEO,SAAS4a,EAAUzJ,EAAGnR,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7L,UAAU,uBAAyBC,OAAO4L,GAAK,iCAE7D,SAAS6a,IAAOlP,KAAKqL,YAAc7F,CAAG,CADtCsJ,EAActJ,EAAGnR,GAEjBmR,EAAElb,UAAkB,OAAN+J,EAAaxK,OAAOoD,OAAOoH,IAAM6a,EAAG5kB,UAAY+J,EAAE/J,UAAW,IAAI4kB,EACjF,CAEO,IAAIC,EAAW,WAQpB,OAPAA,EAAWtlB,OAAOulB,QAAU,SAAkBvkB,GAC1C,IAAK,IAAIqe,EAAG9W,EAAI,EAAGhJ,EAAI6W,UAAU7R,OAAQgE,EAAIhJ,EAAGgJ,IAE5C,IAAK,IAAIW,KADTmW,EAAIjJ,UAAU7N,GACOvI,OAAOS,UAAUC,eAAeC,KAAK0e,EAAGnW,KAAIlI,EAAEkI,GAAKmW,EAAEnW,IAE9E,OAAOlI,CACX,EACOskB,EAASjX,MAAM8H,KAAMC,UAC9B,EAEO,SAASoP,EAAOnG,EAAGtW,GACxB,IAAI/H,EAAI,CAAC,EACT,IAAK,IAAIkI,KAAKmW,EAAOrf,OAAOS,UAAUC,eAAeC,KAAK0e,EAAGnW,IAAMH,EAAElE,QAAQqE,GAAK,IAC9ElI,EAAEkI,GAAKmW,EAAEnW,IACb,GAAS,MAALmW,GAAqD,mBAAjCrf,OAAOylB,sBACtB,KAAIld,EAAI,EAAb,IAAgBW,EAAIlJ,OAAOylB,sBAAsBpG,GAAI9W,EAAIW,EAAE3E,OAAQgE,IAC3DQ,EAAElE,QAAQqE,EAAEX,IAAM,GAAKvI,OAAOS,UAAUilB,qBAAqB/kB,KAAK0e,EAAGnW,EAAEX,MACvEvH,EAAEkI,EAAEX,IAAM8W,EAAEnW,EAAEX,IAF4B,CAItD,OAAOvH,CACT,CAEO,SAAS2kB,EAAWC,EAAYC,EAAQvJ,EAAKwJ,GAClD,IAA2HnK,EAAvHvV,EAAIgQ,UAAU7R,OAAQyQ,EAAI5O,EAAI,EAAIyf,EAAkB,OAATC,EAAgBA,EAAO9lB,OAAO+lB,yBAAyBF,EAAQvJ,GAAOwJ,EACrH,GAAuB,iBAAZE,SAAoD,mBAArBA,QAAQC,SAAyBjR,EAAIgR,QAAQC,SAASL,EAAYC,EAAQvJ,EAAKwJ,QACpH,IAAK,IAAIvd,EAAIqd,EAAWrhB,OAAS,EAAGgE,GAAK,EAAGA,KAASoT,EAAIiK,EAAWrd,MAAIyM,GAAK5O,EAAI,EAAIuV,EAAE3G,GAAK5O,EAAI,EAAIuV,EAAEkK,EAAQvJ,EAAKtH,GAAK2G,EAAEkK,EAAQvJ,KAAStH,GAChJ,OAAO5O,EAAI,GAAK4O,GAAKhV,OAAOkf,eAAe2G,EAAQvJ,EAAKtH,GAAIA,CAC9D,CAEO,SAASkR,EAAQC,EAAYC,GAClC,OAAO,SAAUP,EAAQvJ,GAAO8J,EAAUP,EAAQvJ,EAAK6J,EAAa,CACtE,CAEO,SAASE,EAAaC,EAAMC,EAAcX,EAAYY,EAAWC,EAAcC,GACpF,SAASC,EAAOxc,GAAK,QAAU,IAANA,GAA6B,mBAANA,EAAkB,MAAM,IAAIxL,UAAU,qBAAsB,OAAOwL,CAAG,CAKtH,IAJA,IAGIhE,EAHAygB,EAAOJ,EAAUI,KAAMtK,EAAe,WAATsK,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrFf,GAAUU,GAAgBD,EAAOE,EAAkB,OAAIF,EAAOA,EAAK7lB,UAAY,KAC/EomB,EAAaN,IAAiBV,EAAS7lB,OAAO+lB,yBAAyBF,EAAQW,EAAUM,MAAQ,CAAC,GAC/F/I,GAAO,EACLxV,EAAIqd,EAAWrhB,OAAS,EAAGgE,GAAK,EAAGA,IAAK,CAC7C,IAAIwe,EAAU,CAAC,EACf,IAAK,IAAI7d,KAAKsd,EAAWO,EAAQ7d,GAAW,WAANA,EAAiB,CAAC,EAAIsd,EAAUtd,GACtE,IAAK,IAAIA,KAAKsd,EAAUQ,OAAQD,EAAQC,OAAO9d,GAAKsd,EAAUQ,OAAO9d,GACrE6d,EAAQE,eAAiB,SAAU9c,GAAK,GAAI4T,EAAM,MAAM,IAAIpf,UAAU,0DAA2D+nB,EAAkBtY,KAAKuY,EAAOxc,GAAK,MAAQ,EAC5K,IAAIhD,GAAS,EAAIye,EAAWrd,IAAa,aAATqe,EAAsB,CAAElG,IAAKmG,EAAWnG,IAAKC,IAAKkG,EAAWlG,KAAQkG,EAAWvK,GAAMyK,GACtH,GAAa,aAATH,EAAqB,CACrB,QAAe,IAAXzf,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAIxI,UAAU,oBACnEwH,EAAIwgB,EAAOxf,EAAOuZ,QAAMmG,EAAWnG,IAAMva,IACzCA,EAAIwgB,EAAOxf,EAAOwZ,QAAMkG,EAAWlG,IAAMxa,IACzCA,EAAIwgB,EAAOxf,EAAO+f,QAAOT,EAAaU,QAAQhhB,EACtD,MACSA,EAAIwgB,EAAOxf,MACH,UAATyf,EAAkBH,EAAaU,QAAQhhB,GACtC0gB,EAAWvK,GAAOnW,EAE/B,CACI0f,GAAQ7lB,OAAOkf,eAAe2G,EAAQW,EAAUM,KAAMD,GAC1D9I,GAAO,CACT,CAEO,SAASqJ,EAAkBC,EAASZ,EAAcriB,GAEvD,IADA,IAAIkjB,EAAWlR,UAAU7R,OAAS,EACzBgE,EAAI,EAAGA,EAAIke,EAAaliB,OAAQgE,IACrCnE,EAAQkjB,EAAWb,EAAale,GAAG5H,KAAK0mB,EAASjjB,GAASqiB,EAAale,GAAG5H,KAAK0mB,GAEnF,OAAOC,EAAWljB,OAAQ,CAC5B,CAEO,SAASmjB,EAAUtnB,GACxB,MAAoB,iBAANA,EAAiBA,EAAI,GAAG0D,OAAO1D,EAC/C,CAEO,SAASunB,EAAkBrd,EAAG2c,EAAMW,GAEzC,MADoB,iBAATX,IAAmBA,EAAOA,EAAKY,YAAc,IAAI/jB,OAAOmjB,EAAKY,YAAa,KAAO,IACrF1nB,OAAOkf,eAAe/U,EAAG,OAAQ,CAAEoY,cAAc,EAAMne,MAAOqjB,EAAS,GAAG9jB,OAAO8jB,EAAQ,IAAKX,GAAQA,GAC/G,CAEO,SAASa,EAAWC,EAAaC,GACtC,GAAuB,iBAAZ7B,SAAoD,mBAArBA,QAAQ8B,SAAyB,OAAO9B,QAAQ8B,SAASF,EAAaC,EAClH,CAEO,SAASE,EAAUV,EAASW,EAAYjlB,EAAGklB,GAEhD,OAAO,IAAKllB,IAAMA,EAAImlB,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUjkB,GAAS,IAAMkkB,EAAKL,EAAUM,KAAKnkB,GAAS,CAAE,MAAO2E,GAAKqf,EAAOrf,EAAI,CAAE,CAC1F,SAASyf,EAASpkB,GAAS,IAAMkkB,EAAKL,EAAiB,MAAE7jB,GAAS,CAAE,MAAO2E,GAAKqf,EAAOrf,EAAI,CAAE,CAC7F,SAASuf,EAAKnhB,GAJlB,IAAe/C,EAIa+C,EAAO4W,KAAOoK,EAAQhhB,EAAO/C,QAJ1CA,EAIyD+C,EAAO/C,MAJhDA,aAAiBrB,EAAIqB,EAAQ,IAAIrB,GAAE,SAAUolB,GAAWA,EAAQ/jB,EAAQ,KAIjBqkB,KAAKJ,EAAWG,EAAW,CAC7GF,GAAML,EAAYA,EAAU5Z,MAAMgZ,EAASW,GAAc,KAAKO,OAClE,GACF,CAEO,SAASG,EAAYrB,EAASsB,GACnC,IAAsGxe,EAAGjK,EAAGc,EAAxGmF,EAAI,CAAEyiB,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP7nB,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG8nB,KAAM,GAAIC,IAAK,IAAeC,EAAIhpB,OAAOoD,QAA4B,mBAAb6lB,SAA0BA,SAAWjpB,QAAQS,WACtL,OAAOuoB,EAAET,KAAOW,EAAK,GAAIF,EAAS,MAAIE,EAAK,GAAIF,EAAU,OAAIE,EAAK,GAAsB,mBAAX/G,SAA0B6G,EAAE7G,OAAOgH,UAAY,WAAa,OAAOhT,IAAM,GAAI6S,EAC1J,SAASE,EAAK3pB,GAAK,OAAO,SAAUigB,GAAK,OACzC,SAAc4J,GACV,GAAIjf,EAAG,MAAM,IAAIxL,UAAU,mCAC3B,KAAOqqB,IAAMA,EAAI,EAAGI,EAAG,KAAOjjB,EAAI,IAAKA,OACnC,GAAIgE,EAAI,EAAGjK,IAAMc,EAAY,EAARooB,EAAG,GAASlpB,EAAU,OAAIkpB,EAAG,GAAKlpB,EAAS,SAAOc,EAAId,EAAU,SAAMc,EAAEL,KAAKT,GAAI,GAAKA,EAAEqoB,SAAWvnB,EAAIA,EAAEL,KAAKT,EAAGkpB,EAAG,KAAKrL,KAAM,OAAO/c,EAE3J,OADId,EAAI,EAAGc,IAAGooB,EAAK,CAAS,EAARA,EAAG,GAAQpoB,EAAEoD,QACzBglB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGpoB,EAAIooB,EAAI,MACxB,KAAK,EAAc,OAAXjjB,EAAEyiB,QAAgB,CAAExkB,MAAOglB,EAAG,GAAIrL,MAAM,GAChD,KAAK,EAAG5X,EAAEyiB,QAAS1oB,EAAIkpB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKjjB,EAAE4iB,IAAIlY,MAAO1K,EAAE2iB,KAAKjY,MAAO,SACxC,QACI,KAAM7P,EAAImF,EAAE2iB,MAAM9nB,EAAIA,EAAEuD,OAAS,GAAKvD,EAAEA,EAAEuD,OAAS,KAAkB,IAAV6kB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEjjB,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVijB,EAAG,MAAcpoB,GAAMooB,EAAG,GAAKpoB,EAAE,IAAMooB,EAAG,GAAKpoB,EAAE,IAAM,CAAEmF,EAAEyiB,MAAQQ,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYjjB,EAAEyiB,MAAQ5nB,EAAE,GAAI,CAAEmF,EAAEyiB,MAAQ5nB,EAAE,GAAIA,EAAIooB,EAAI,KAAO,CACpE,GAAIpoB,GAAKmF,EAAEyiB,MAAQ5nB,EAAE,GAAI,CAAEmF,EAAEyiB,MAAQ5nB,EAAE,GAAImF,EAAE4iB,IAAI3a,KAAKgb,GAAK,KAAO,CAC9DpoB,EAAE,IAAImF,EAAE4iB,IAAIlY,MAChB1K,EAAE2iB,KAAKjY,MAAO,SAEtBuY,EAAKT,EAAKhoB,KAAK0mB,EAASlhB,EAC5B,CAAE,MAAO4C,GAAKqgB,EAAK,CAAC,EAAGrgB,GAAI7I,EAAI,CAAG,CAAE,QAAUiK,EAAInJ,EAAI,CAAG,CACzD,GAAY,EAARooB,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhlB,MAAOglB,EAAG,GAAKA,EAAG,QAAK,EAAQrL,MAAM,EAC9E,CAtBgDuK,CAAK,CAAC/oB,EAAGigB,GAAK,CAAG,CAuBnE,CAEO,IAAI6J,EAAkBrpB,OAAOoD,OAAS,SAAU1E,EAAGoK,EAAGwB,EAAGgf,QACnDvqB,IAAPuqB,IAAkBA,EAAKhf,GAC3B,IAAIwb,EAAO9lB,OAAO+lB,yBAAyBjd,EAAGwB,GACzCwb,KAAS,QAASA,GAAQhd,EAAEygB,WAAazD,EAAKzD,UAAYyD,EAAKvD,gBAChEuD,EAAO,CAAExD,YAAY,EAAM5B,IAAK,WAAa,OAAO5X,EAAEwB,EAAI,IAE9DtK,OAAOkf,eAAexgB,EAAG4qB,EAAIxD,EAC9B,EAAI,SAAUpnB,EAAGoK,EAAGwB,EAAGgf,QACXvqB,IAAPuqB,IAAkBA,EAAKhf,GAC3B5L,EAAE4qB,GAAMxgB,EAAEwB,EACX,EAEM,SAASkf,EAAa1gB,EAAGpK,GAC9B,IAAK,IAAIwK,KAAKJ,EAAa,YAANI,GAAoBlJ,OAAOS,UAAUC,eAAeC,KAAKjC,EAAGwK,IAAImgB,EAAgB3qB,EAAGoK,EAAGI,EAC7G,CAEO,SAASugB,EAAS/qB,GACvB,IAAI2gB,EAAsB,mBAAX8C,QAAyBA,OAAOgH,SAAUrgB,EAAIuW,GAAK3gB,EAAE2gB,GAAI9W,EAAI,EAC5E,GAAIO,EAAG,OAAOA,EAAEnI,KAAKjC,GACrB,GAAIA,GAAyB,iBAAbA,EAAE6F,OAAqB,MAAO,CAC1CgkB,KAAM,WAEF,OADI7pB,GAAK6J,GAAK7J,EAAE6F,SAAQ7F,OAAI,GACrB,CAAE0F,MAAO1F,GAAKA,EAAE6J,KAAMwV,MAAOrf,EACxC,GAEJ,MAAM,IAAIC,UAAU0gB,EAAI,0BAA4B,kCACtD,CAEO,SAASqK,EAAOhrB,EAAGa,GACxB,IAAIuJ,EAAsB,mBAAXqZ,QAAyBzjB,EAAEyjB,OAAOgH,UACjD,IAAKrgB,EAAG,OAAOpK,EACf,IAAmBsW,EAAYjM,EAA3BR,EAAIO,EAAEnI,KAAKjC,GAAO+X,EAAK,GAC3B,IACI,WAAc,IAANlX,GAAgBA,KAAM,MAAQyV,EAAIzM,EAAEggB,QAAQxK,MAAMtH,EAAGrI,KAAK4G,EAAE5Q,MACxE,CACA,MAAOoe,GAASzZ,EAAI,CAAEyZ,MAAOA,EAAS,CACtC,QACI,IACQxN,IAAMA,EAAE+I,OAASjV,EAAIP,EAAU,SAAIO,EAAEnI,KAAK4H,EAClD,CACA,QAAU,GAAIQ,EAAG,MAAMA,EAAEyZ,KAAO,CACpC,CACA,OAAO/L,CACT,CAGO,SAASkT,IACd,IAAK,IAAIlT,EAAK,GAAIlO,EAAI,EAAGA,EAAI6N,UAAU7R,OAAQgE,IAC3CkO,EAAKA,EAAG9S,OAAO+lB,EAAOtT,UAAU7N,KACpC,OAAOkO,CACT,CAGO,SAASmT,IACd,IAAK,IAAIvK,EAAI,EAAG9W,EAAI,EAAGshB,EAAKzT,UAAU7R,OAAQgE,EAAIshB,EAAIthB,IAAK8W,GAAKjJ,UAAU7N,GAAGhE,OACxE,IAAIyQ,EAAI1U,MAAM+e,GAAI/U,EAAI,EAA3B,IAA8B/B,EAAI,EAAGA,EAAIshB,EAAIthB,IACzC,IAAK,IAAIgC,EAAI6L,UAAU7N,GAAIuhB,EAAI,EAAGC,EAAKxf,EAAEhG,OAAQulB,EAAIC,EAAID,IAAKxf,IAC1D0K,EAAE1K,GAAKC,EAAEuf,GACjB,OAAO9U,CACT,CAEO,SAASsB,EAAcC,EAAIrB,EAAMsB,GACtC,GAAIA,GAA6B,IAArBJ,UAAU7R,OAAc,IAAK,IAA4BkS,EAAxBlO,EAAI,EAAGmO,EAAIxB,EAAK3Q,OAAYgE,EAAImO,EAAGnO,KACxEkO,GAAQlO,KAAK2M,IACRuB,IAAIA,EAAKnW,MAAMG,UAAUwE,MAAMtE,KAAKuU,EAAM,EAAG3M,IAClDkO,EAAGlO,GAAK2M,EAAK3M,IAGrB,OAAOgO,EAAG5S,OAAO8S,GAAMnW,MAAMG,UAAUwE,MAAMtE,KAAKuU,GACpD,CAEO,SAAS8U,EAAQxK,GACtB,OAAOrJ,gBAAgB6T,GAAW7T,KAAKqJ,EAAIA,EAAGrJ,MAAQ,IAAI6T,EAAQxK,EACpE,CAEO,SAASyK,EAAiB5C,EAASW,EAAYC,GACpD,IAAK9F,OAAO+H,cAAe,MAAM,IAAIvrB,UAAU,wCAC/C,IAAoD4J,EAAhDygB,EAAIf,EAAU5Z,MAAMgZ,EAASW,GAAc,IAAQmC,EAAI,GAC3D,OAAO5hB,EAAIvI,OAAOoD,QAAiC,mBAAlBgnB,cAA+BA,cAAgBpqB,QAAQS,WAAYyoB,EAAK,QAASA,EAAK,SAAUA,EAAK,UACtI,SAAqB/e,GAAK,OAAO,SAAUqV,GAAK,OAAO0I,QAAQC,QAAQ3I,GAAGiJ,KAAKte,EAAGie,EAAS,CAAG,IADgE7f,EAAE4Z,OAAO+H,eAAiB,WAAc,OAAO/T,IAAM,EAAG5N,EAEtN,SAAS2gB,EAAK3pB,EAAG4K,GAAS6e,EAAEzpB,KAAMgJ,EAAEhJ,GAAK,SAAUigB,GAAK,OAAO,IAAI0I,SAAQ,SAAU3d,EAAGC,GAAK2f,EAAE/b,KAAK,CAAC7O,EAAGigB,EAAGjV,EAAGC,IAAM,GAAK6f,EAAO9qB,EAAGigB,EAAI,GAAI,EAAOrV,IAAG5B,EAAEhJ,GAAK4K,EAAE5B,EAAEhJ,KAAO,CACvK,SAAS8qB,EAAO9qB,EAAGigB,GAAK,KACVxK,EADqBgU,EAAEzpB,GAAGigB,IACnBpb,iBAAiB4lB,EAAU9B,QAAQC,QAAQnT,EAAE5Q,MAAMob,GAAGiJ,KAAK6B,EAASlC,GAAUmC,EAAOJ,EAAE,GAAG,GAAInV,EADtE,CAAE,MAAOjM,GAAKwhB,EAAOJ,EAAE,GAAG,GAAIphB,EAAI,CAC/E,IAAciM,CADmE,CAEjF,SAASsV,EAAQlmB,GAASimB,EAAO,OAAQjmB,EAAQ,CACjD,SAASgkB,EAAOhkB,GAASimB,EAAO,QAASjmB,EAAQ,CACjD,SAASmmB,EAAOpgB,EAAGqV,GAASrV,EAAEqV,GAAI2K,EAAEK,QAASL,EAAE5lB,QAAQ8lB,EAAOF,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACnF,CAEO,SAASM,EAAiB/rB,GAC/B,IAAI6J,EAAGW,EACP,OAAOX,EAAI,CAAC,EAAG2gB,EAAK,QAASA,EAAK,SAAS,SAAUngB,GAAK,MAAMA,CAAG,IAAImgB,EAAK,UAAW3gB,EAAE4Z,OAAOgH,UAAY,WAAc,OAAOhT,IAAM,EAAG5N,EAC1I,SAAS2gB,EAAK3pB,EAAG4K,GAAK5B,EAAEhJ,GAAKb,EAAEa,GAAK,SAAUigB,GAAK,OAAQtW,GAAKA,GAAK,CAAE9E,MAAO4lB,EAAQtrB,EAAEa,GAAGigB,IAAKzB,MAAM,GAAU5T,EAAIA,EAAEqV,GAAKA,CAAG,EAAIrV,CAAG,CACvI,CAEO,SAASugB,EAAchsB,GAC5B,IAAKyjB,OAAO+H,cAAe,MAAM,IAAIvrB,UAAU,wCAC/C,IAAiC4J,EAA7BO,EAAIpK,EAAEyjB,OAAO+H,eACjB,OAAOphB,EAAIA,EAAEnI,KAAKjC,IAAMA,EAAqC+qB,EAAS/qB,GAA2B6J,EAAI,CAAC,EAAG2gB,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW3gB,EAAE4Z,OAAO+H,eAAiB,WAAc,OAAO/T,IAAM,EAAG5N,GAC9M,SAAS2gB,EAAK3pB,GAAKgJ,EAAEhJ,GAAKb,EAAEa,IAAM,SAAUigB,GAAK,OAAO,IAAI0I,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQzM,EAAG6D,GAAK0I,QAAQC,QAAQ3I,GAAGiJ,MAAK,SAASjJ,GAAK2I,EAAQ,CAAE/jB,MAAOob,EAAGzB,KAAMpC,GAAM,GAAGyM,EAAS,EADbmC,CAAOpC,EAASC,GAA7B5I,EAAI9gB,EAAEa,GAAGigB,IAA8BzB,KAAMyB,EAAEpb,MAAQ,GAAI,CAAG,CAEjK,CAEO,SAASumB,EAAqBC,EAAQC,GAE3C,OADI7qB,OAAOkf,eAAkBlf,OAAOkf,eAAe0L,EAAQ,MAAO,CAAExmB,MAAOymB,IAAiBD,EAAOC,IAAMA,EAClGD,CACT,CAEA,IAAIE,EAAqB9qB,OAAOoD,OAAS,SAAU1E,EAAG8gB,GACpDxf,OAAOkf,eAAexgB,EAAG,UAAW,CAAE4jB,YAAY,EAAMle,MAAOob,GAChE,EAAI,SAAS9gB,EAAG8gB,GACf9gB,EAAW,QAAI8gB,CACjB,EAEO,SAASuL,EAAajqB,GAC3B,GAAIA,GAAOA,EAAIyoB,WAAY,OAAOzoB,EAClC,IAAIqG,EAAS,CAAC,EACd,GAAW,MAAPrG,EAAa,IAAK,IAAIwJ,KAAKxJ,EAAe,YAANwJ,GAAmBtK,OAAOS,UAAUC,eAAeC,KAAKG,EAAKwJ,IAAI+e,EAAgBliB,EAAQrG,EAAKwJ,GAEtI,OADAwgB,EAAmB3jB,EAAQrG,GACpBqG,CACT,CAEO,SAAS+Z,EAAgBpgB,GAC9B,OAAQA,GAAOA,EAAIyoB,WAAczoB,EAAM,CAAE2gB,QAAS3gB,EACpD,CAEO,SAASkqB,EAAuBC,EAAUC,EAAOtE,EAAMzc,GAC5D,GAAa,MAATyc,IAAiBzc,EAAG,MAAM,IAAIxL,UAAU,iDAC5C,GAAqB,mBAAVusB,EAAuBD,IAAaC,IAAU/gB,GAAK+gB,EAAMplB,IAAImlB,GAAW,MAAM,IAAItsB,UAAU,4EACvG,MAAgB,MAATioB,EAAezc,EAAa,MAATyc,EAAezc,EAAExJ,KAAKsqB,GAAY9gB,EAAIA,EAAE/F,MAAQ8mB,EAAMxK,IAAIuK,EACtF,CAEO,SAASE,EAAuBF,EAAUC,EAAO9mB,EAAOwiB,EAAMzc,GACnE,GAAa,MAATyc,EAAc,MAAM,IAAIjoB,UAAU,kCACtC,GAAa,MAATioB,IAAiBzc,EAAG,MAAM,IAAIxL,UAAU,iDAC5C,GAAqB,mBAAVusB,EAAuBD,IAAaC,IAAU/gB,GAAK+gB,EAAMplB,IAAImlB,GAAW,MAAM,IAAItsB,UAAU,2EACvG,MAAiB,MAATioB,EAAezc,EAAExJ,KAAKsqB,EAAU7mB,GAAS+F,EAAIA,EAAE/F,MAAQA,EAAQ8mB,EAAMvK,IAAIsK,EAAU7mB,GAASA,CACtG,CAEO,SAASgnB,EAAsBF,EAAOD,GAC3C,GAAiB,OAAbA,GAA0C,iBAAbA,GAA6C,mBAAbA,EAA0B,MAAM,IAAItsB,UAAU,0CAC/G,MAAwB,mBAAVusB,EAAuBD,IAAaC,EAAQA,EAAMplB,IAAImlB,EACtE,CAEO,SAASI,EAAwBC,EAAKlnB,EAAOmnB,GAClD,GAAInnB,QAAoC,CACtC,GAAqB,iBAAVA,GAAuC,mBAAVA,EAAsB,MAAM,IAAIzF,UAAU,oBAClF,IAAI6sB,EAASC,EACb,GAAIF,EAAO,CACT,IAAKpJ,OAAOuJ,aAAc,MAAM,IAAI/sB,UAAU,uCAC9C6sB,EAAUpnB,EAAM+d,OAAOuJ,aACzB,CACA,QAAgB,IAAZF,EAAoB,CACtB,IAAKrJ,OAAOqJ,QAAS,MAAM,IAAI7sB,UAAU,kCACzC6sB,EAAUpnB,EAAM+d,OAAOqJ,SACnBD,IAAOE,EAAQD,EACrB,CACA,GAAuB,mBAAZA,EAAwB,MAAM,IAAI7sB,UAAU,0BACnD8sB,IAAOD,EAAU,WAAa,IAAMC,EAAM9qB,KAAKwV,KAAO,CAAE,MAAOpN,GAAK,OAAOmf,QAAQE,OAAOrf,EAAI,CAAE,GACpGuiB,EAAIK,MAAMvd,KAAK,CAAEhK,MAAOA,EAAOonB,QAASA,EAASD,MAAOA,GAC1D,MACSA,GACPD,EAAIK,MAAMvd,KAAK,CAAEmd,OAAO,IAE1B,OAAOnnB,CACT,CAEA,IAAIwnB,EAA8C,mBAApBjV,gBAAiCA,gBAAkB,SAAU6L,EAAOqJ,EAAYrR,GAC5G,IAAIzR,EAAI,IAAIjH,MAAM0Y,GAClB,OAAOzR,EAAE+d,KAAO,kBAAmB/d,EAAEyZ,MAAQA,EAAOzZ,EAAE8iB,WAAaA,EAAY9iB,CACjF,EAEO,SAAS+iB,EAAmBR,GACjC,SAASS,EAAKhjB,GACZuiB,EAAI9I,MAAQ8I,EAAIU,SAAW,IAAIJ,EAAiB7iB,EAAGuiB,EAAI9I,MAAO,4CAA8CzZ,EAC5GuiB,EAAIU,UAAW,CACjB,CACA,IAAIhX,EAAGqK,EAAI,EAkBX,OAjBA,SAASkJ,IACP,KAAOvT,EAAIsW,EAAIK,MAAM9a,OACnB,IACE,IAAKmE,EAAEuW,OAAe,IAANlM,EAAS,OAAOA,EAAI,EAAGiM,EAAIK,MAAMvd,KAAK4G,GAAIkT,QAAQC,UAAUM,KAAKF,GACjF,GAAIvT,EAAEwW,QAAS,CACb,IAAIrkB,EAAS6N,EAAEwW,QAAQ7qB,KAAKqU,EAAE5Q,OAC9B,GAAI4Q,EAAEuW,MAAO,OAAOlM,GAAK,EAAG6I,QAAQC,QAAQhhB,GAAQshB,KAAKF,GAAM,SAASxf,GAAc,OAATgjB,EAAKhjB,GAAWwf,GAAQ,GACvG,MACKlJ,GAAK,CACZ,CACA,MAAOtW,GACLgjB,EAAKhjB,EACP,CAEF,GAAU,IAANsW,EAAS,OAAOiM,EAAIU,SAAW9D,QAAQE,OAAOkD,EAAI9I,OAAS0F,QAAQC,UACvE,GAAImD,EAAIU,SAAU,MAAMV,EAAI9I,KAC9B,CACO+F,EACT,CAEO,SAAS0D,EAAiCC,EAAMC,GACrD,MAAoB,iBAATD,GAAqB,WAAW7lB,KAAK6lB,GACrCA,EAAKhmB,QAAQ,oDAAoD,SAAU4C,EAAGsjB,EAAKzQ,EAAG0Q,EAAKC,GAC9F,OAAOF,EAAMD,EAAc,OAAS,OAAQxQ,GAAO0Q,GAAQC,EAAW3Q,EAAI0Q,EAAM,IAAMC,EAAG/lB,cAAgB,KAAxCuC,CACrE,IAEGojB,CACT,CAEA,WACE9G,YACAE,WACAE,SACAG,aACAO,UACAG,eACAe,oBACAG,YACAC,oBACAG,aACAI,YACAW,cACAW,kBACAG,eACAC,WACAC,SACAC,WACAC,iBACAtT,gBACA0T,UACAC,mBACAQ,mBACAC,gBACAC,uBACAI,eACA7J,kBACA8J,yBACAG,yBACAC,wBACAC,0BACAS,qBACAG,mC,0qCCtXF,IAAIhH,EAAgB,SAAStJ,EAAGnR,GAI9B,OAHAya,EAAgBjlB,OAAOklB,gBAClB,CAAEC,UAAW,cAAgB7kB,OAAS,SAAUqb,EAAGnR,GAAKmR,EAAEwJ,UAAY3a,CAAG,GAC1E,SAAUmR,EAAGnR,GAAK,IAAK,IAAItB,KAAKsB,EAAOxK,OAAOS,UAAUC,eAAeC,KAAK6J,EAAGtB,KAAIyS,EAAEzS,GAAKsB,EAAEtB,GAAI,EAC7F+b,EAActJ,EAAGnR,EAC1B,EAEO,SAAS4a,EAAUzJ,EAAGnR,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7L,UAAU,uBAAyBC,OAAO4L,GAAK,iCAE7D,SAAS6a,IAAOlP,KAAKqL,YAAc7F,CAAG,CADtCsJ,EAActJ,EAAGnR,GAEjBmR,EAAElb,UAAkB,OAAN+J,EAAaxK,OAAOoD,OAAOoH,IAAM6a,EAAG5kB,UAAY+J,EAAE/J,UAAW,IAAI4kB,EACjF,CAEO,IAAIC,EAAW,WAQpB,OAPAA,EAAWtlB,OAAOulB,QAAU,SAAkBvkB,GAC1C,IAAK,IAAIqe,EAAG9W,EAAI,EAAGhJ,EAAI6W,UAAU7R,OAAQgE,EAAIhJ,EAAGgJ,IAE5C,IAAK,IAAIW,KADTmW,EAAIjJ,UAAU7N,GACOvI,OAAOS,UAAUC,eAAeC,KAAK0e,EAAGnW,KAAIlI,EAAEkI,GAAKmW,EAAEnW,IAE9E,OAAOlI,CACX,EACOskB,EAASjX,MAAM8H,KAAMC,UAC9B,EAEO,SAASoP,EAAOnG,EAAGtW,GACxB,IAAI/H,EAAI,CAAC,EACT,IAAK,IAAIkI,KAAKmW,EAAOrf,OAAOS,UAAUC,eAAeC,KAAK0e,EAAGnW,IAAMH,EAAElE,QAAQqE,GAAK,IAC9ElI,EAAEkI,GAAKmW,EAAEnW,IACb,GAAS,MAALmW,GAAqD,mBAAjCrf,OAAOylB,sBACtB,KAAIld,EAAI,EAAb,IAAgBW,EAAIlJ,OAAOylB,sBAAsBpG,GAAI9W,EAAIW,EAAE3E,OAAQgE,IAC3DQ,EAAElE,QAAQqE,EAAEX,IAAM,GAAKvI,OAAOS,UAAUilB,qBAAqB/kB,KAAK0e,EAAGnW,EAAEX,MACvEvH,EAAEkI,EAAEX,IAAM8W,EAAEnW,EAAEX,IAF4B,CAItD,OAAOvH,CACT,CAEO,SAAS2kB,EAAWC,EAAYC,EAAQvJ,EAAKwJ,GAClD,IAA2HnK,EAAvHvV,EAAIgQ,UAAU7R,OAAQyQ,EAAI5O,EAAI,EAAIyf,EAAkB,OAATC,EAAgBA,EAAO9lB,OAAO+lB,yBAAyBF,EAAQvJ,GAAOwJ,EACrH,GAAuB,iBAAZE,SAAoD,mBAArBA,QAAQC,SAAyBjR,EAAIgR,QAAQC,SAASL,EAAYC,EAAQvJ,EAAKwJ,QACpH,IAAK,IAAIvd,EAAIqd,EAAWrhB,OAAS,EAAGgE,GAAK,EAAGA,KAASoT,EAAIiK,EAAWrd,MAAIyM,GAAK5O,EAAI,EAAIuV,EAAE3G,GAAK5O,EAAI,EAAIuV,EAAEkK,EAAQvJ,EAAKtH,GAAK2G,EAAEkK,EAAQvJ,KAAStH,GAChJ,OAAO5O,EAAI,GAAK4O,GAAKhV,OAAOkf,eAAe2G,EAAQvJ,EAAKtH,GAAIA,CAC9D,CAEO,SAASkR,EAAQC,EAAYC,GAClC,OAAO,SAAUP,EAAQvJ,GAAO8J,EAAUP,EAAQvJ,EAAK6J,EAAa,CACtE,CAEO,SAASE,EAAaC,EAAMC,EAAcX,EAAYY,EAAWC,EAAcC,GACpF,SAASC,EAAOxc,GAAK,QAAU,IAANA,GAA6B,mBAANA,EAAkB,MAAM,IAAIxL,UAAU,qBAAsB,OAAOwL,CAAG,CAKtH,IAJA,IAGIhE,EAHAygB,EAAOJ,EAAUI,KAAMtK,EAAe,WAATsK,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrFf,GAAUU,GAAgBD,EAAOE,EAAkB,OAAIF,EAAOA,EAAK7lB,UAAY,KAC/EomB,EAAaN,IAAiBV,EAAS7lB,OAAO+lB,yBAAyBF,EAAQW,EAAUM,MAAQ,CAAC,GAC/F/I,GAAO,EACLxV,EAAIqd,EAAWrhB,OAAS,EAAGgE,GAAK,EAAGA,IAAK,CAC7C,IAAIwe,EAAU,CAAC,EACf,IAAK,IAAI7d,KAAKsd,EAAWO,EAAQ7d,GAAW,WAANA,EAAiB,CAAC,EAAIsd,EAAUtd,GACtE,IAAK,IAAIA,KAAKsd,EAAUQ,OAAQD,EAAQC,OAAO9d,GAAKsd,EAAUQ,OAAO9d,GACrE6d,EAAQE,eAAiB,SAAU9c,GAAK,GAAI4T,EAAM,MAAM,IAAIpf,UAAU,0DAA2D+nB,EAAkBtY,KAAKuY,EAAOxc,GAAK,MAAQ,EAC5K,IAAIhD,GAAS,EAAIye,EAAWrd,IAAa,aAATqe,EAAsB,CAAElG,IAAKmG,EAAWnG,IAAKC,IAAKkG,EAAWlG,KAAQkG,EAAWvK,GAAMyK,GACtH,GAAa,aAATH,EAAqB,CACrB,QAAe,IAAXzf,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAIxI,UAAU,oBACnEwH,EAAIwgB,EAAOxf,EAAOuZ,QAAMmG,EAAWnG,IAAMva,IACzCA,EAAIwgB,EAAOxf,EAAOwZ,QAAMkG,EAAWlG,IAAMxa,IACzCA,EAAIwgB,EAAOxf,EAAO+f,QAAOT,EAAaU,QAAQhhB,EACtD,MACSA,EAAIwgB,EAAOxf,MACH,UAATyf,EAAkBH,EAAaU,QAAQhhB,GACtC0gB,EAAWvK,GAAOnW,EAE/B,CACI0f,GAAQ7lB,OAAOkf,eAAe2G,EAAQW,EAAUM,KAAMD,GAC1D9I,GAAO,CACT,CAEO,SAASqJ,EAAkBC,EAASZ,EAAcriB,GAEvD,IADA,IAAIkjB,EAAWlR,UAAU7R,OAAS,EACzBgE,EAAI,EAAGA,EAAIke,EAAaliB,OAAQgE,IACrCnE,EAAQkjB,EAAWb,EAAale,GAAG5H,KAAK0mB,EAASjjB,GAASqiB,EAAale,GAAG5H,KAAK0mB,GAEnF,OAAOC,EAAWljB,OAAQ,CAC5B,CAEO,SAASmjB,EAAUtnB,GACxB,MAAoB,iBAANA,EAAiBA,EAAI,GAAG0D,OAAO1D,EAC/C,CAEO,SAASunB,EAAkBrd,EAAG2c,EAAMW,GAEzC,MADoB,iBAATX,IAAmBA,EAAOA,EAAKY,YAAc,IAAI/jB,OAAOmjB,EAAKY,YAAa,KAAO,IACrF1nB,OAAOkf,eAAe/U,EAAG,OAAQ,CAAEoY,cAAc,EAAMne,MAAOqjB,EAAS,GAAG9jB,OAAO8jB,EAAQ,IAAKX,GAAQA,GAC/G,CAEO,SAASa,EAAWC,EAAaC,GACtC,GAAuB,iBAAZ7B,SAAoD,mBAArBA,QAAQ8B,SAAyB,OAAO9B,QAAQ8B,SAASF,EAAaC,EAClH,CAEO,SAASE,EAAUV,EAASW,EAAYjlB,EAAGklB,GAEhD,OAAO,IAAKllB,IAAMA,EAAImlB,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUjkB,GAAS,IAAMkkB,EAAKL,EAAUM,KAAKnkB,GAAS,CAAE,MAAO2E,GAAKqf,EAAOrf,EAAI,CAAE,CAC1F,SAASyf,EAASpkB,GAAS,IAAMkkB,EAAKL,EAAiB,MAAE7jB,GAAS,CAAE,MAAO2E,GAAKqf,EAAOrf,EAAI,CAAE,CAC7F,SAASuf,EAAKnhB,GAJlB,IAAe/C,EAIa+C,EAAO4W,KAAOoK,EAAQhhB,EAAO/C,QAJ1CA,EAIyD+C,EAAO/C,MAJhDA,aAAiBrB,EAAIqB,EAAQ,IAAIrB,GAAE,SAAUolB,GAAWA,EAAQ/jB,EAAQ,KAIjBqkB,KAAKJ,EAAWG,EAAW,CAC7GF,GAAML,EAAYA,EAAU5Z,MAAMgZ,EAASW,GAAc,KAAKO,OAClE,GACF,CAEO,SAASG,EAAYrB,EAASsB,GACnC,IAAsGxe,EAAGjK,EAAGc,EAAxGmF,EAAI,CAAEyiB,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP7nB,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG8nB,KAAM,GAAIC,IAAK,IAAeC,EAAIhpB,OAAOoD,QAA4B,mBAAb6lB,SAA0BA,SAAWjpB,QAAQS,WACtL,OAAOuoB,EAAET,KAAOW,EAAK,GAAIF,EAAS,MAAIE,EAAK,GAAIF,EAAU,OAAIE,EAAK,GAAsB,mBAAX/G,SAA0B6G,EAAE7G,OAAOgH,UAAY,WAAa,OAAOhT,IAAM,GAAI6S,EAC1J,SAASE,EAAK3pB,GAAK,OAAO,SAAUigB,GAAK,OACzC,SAAc4J,GACV,GAAIjf,EAAG,MAAM,IAAIxL,UAAU,mCAC3B,KAAOqqB,IAAMA,EAAI,EAAGI,EAAG,KAAOjjB,EAAI,IAAKA,OACnC,GAAIgE,EAAI,EAAGjK,IAAMc,EAAY,EAARooB,EAAG,GAASlpB,EAAU,OAAIkpB,EAAG,GAAKlpB,EAAS,SAAOc,EAAId,EAAU,SAAMc,EAAEL,KAAKT,GAAI,GAAKA,EAAEqoB,SAAWvnB,EAAIA,EAAEL,KAAKT,EAAGkpB,EAAG,KAAKrL,KAAM,OAAO/c,EAE3J,OADId,EAAI,EAAGc,IAAGooB,EAAK,CAAS,EAARA,EAAG,GAAQpoB,EAAEoD,QACzBglB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGpoB,EAAIooB,EAAI,MACxB,KAAK,EAAc,OAAXjjB,EAAEyiB,QAAgB,CAAExkB,MAAOglB,EAAG,GAAIrL,MAAM,GAChD,KAAK,EAAG5X,EAAEyiB,QAAS1oB,EAAIkpB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKjjB,EAAE4iB,IAAIlY,MAAO1K,EAAE2iB,KAAKjY,MAAO,SACxC,QACI,KAAM7P,EAAImF,EAAE2iB,MAAM9nB,EAAIA,EAAEuD,OAAS,GAAKvD,EAAEA,EAAEuD,OAAS,KAAkB,IAAV6kB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEjjB,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVijB,EAAG,MAAcpoB,GAAMooB,EAAG,GAAKpoB,EAAE,IAAMooB,EAAG,GAAKpoB,EAAE,IAAM,CAAEmF,EAAEyiB,MAAQQ,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYjjB,EAAEyiB,MAAQ5nB,EAAE,GAAI,CAAEmF,EAAEyiB,MAAQ5nB,EAAE,GAAIA,EAAIooB,EAAI,KAAO,CACpE,GAAIpoB,GAAKmF,EAAEyiB,MAAQ5nB,EAAE,GAAI,CAAEmF,EAAEyiB,MAAQ5nB,EAAE,GAAImF,EAAE4iB,IAAI3a,KAAKgb,GAAK,KAAO,CAC9DpoB,EAAE,IAAImF,EAAE4iB,IAAIlY,MAChB1K,EAAE2iB,KAAKjY,MAAO,SAEtBuY,EAAKT,EAAKhoB,KAAK0mB,EAASlhB,EAC5B,CAAE,MAAO4C,GAAKqgB,EAAK,CAAC,EAAGrgB,GAAI7I,EAAI,CAAG,CAAE,QAAUiK,EAAInJ,EAAI,CAAG,CACzD,GAAY,EAARooB,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhlB,MAAOglB,EAAG,GAAKA,EAAG,QAAK,EAAQrL,MAAM,EAC9E,CAtBgDuK,CAAK,CAAC/oB,EAAGigB,GAAK,CAAG,CAuBnE,CAEO,IAAI6J,EAAkBrpB,OAAOoD,OAAS,SAAU1E,EAAGoK,EAAGwB,EAAGgf,QACnDvqB,IAAPuqB,IAAkBA,EAAKhf,GAC3B,IAAIwb,EAAO9lB,OAAO+lB,yBAAyBjd,EAAGwB,GACzCwb,KAAS,QAASA,GAAQhd,EAAEygB,WAAazD,EAAKzD,UAAYyD,EAAKvD,gBAChEuD,EAAO,CAAExD,YAAY,EAAM5B,IAAK,WAAa,OAAO5X,EAAEwB,EAAI,IAE9DtK,OAAOkf,eAAexgB,EAAG4qB,EAAIxD,EAC9B,EAAI,SAAUpnB,EAAGoK,EAAGwB,EAAGgf,QACXvqB,IAAPuqB,IAAkBA,EAAKhf,GAC3B5L,EAAE4qB,GAAMxgB,EAAEwB,EACX,EAEM,SAASkf,EAAa1gB,EAAGpK,GAC9B,IAAK,IAAIwK,KAAKJ,EAAa,YAANI,GAAoBlJ,OAAOS,UAAUC,eAAeC,KAAKjC,EAAGwK,IAAImgB,EAAgB3qB,EAAGoK,EAAGI,EAC7G,CAEO,SAASugB,EAAS/qB,GACvB,IAAI2gB,EAAsB,mBAAX8C,QAAyBA,OAAOgH,SAAUrgB,EAAIuW,GAAK3gB,EAAE2gB,GAAI9W,EAAI,EAC5E,GAAIO,EAAG,OAAOA,EAAEnI,KAAKjC,GACrB,GAAIA,GAAyB,iBAAbA,EAAE6F,OAAqB,MAAO,CAC1CgkB,KAAM,WAEF,OADI7pB,GAAK6J,GAAK7J,EAAE6F,SAAQ7F,OAAI,GACrB,CAAE0F,MAAO1F,GAAKA,EAAE6J,KAAMwV,MAAOrf,EACxC,GAEJ,MAAM,IAAIC,UAAU0gB,EAAI,0BAA4B,kCACtD,CAEO,SAASqK,EAAOhrB,EAAGa,GACxB,IAAIuJ,EAAsB,mBAAXqZ,QAAyBzjB,EAAEyjB,OAAOgH,UACjD,IAAKrgB,EAAG,OAAOpK,EACf,IAAmBsW,EAAYjM,EAA3BR,EAAIO,EAAEnI,KAAKjC,GAAO+X,EAAK,GAC3B,IACI,WAAc,IAANlX,GAAgBA,KAAM,MAAQyV,EAAIzM,EAAEggB,QAAQxK,MAAMtH,EAAGrI,KAAK4G,EAAE5Q,MACxE,CACA,MAAOoe,GAASzZ,EAAI,CAAEyZ,MAAOA,EAAS,CACtC,QACI,IACQxN,IAAMA,EAAE+I,OAASjV,EAAIP,EAAU,SAAIO,EAAEnI,KAAK4H,EAClD,CACA,QAAU,GAAIQ,EAAG,MAAMA,EAAEyZ,KAAO,CACpC,CACA,OAAO/L,CACT,CAGO,SAASkT,IACd,IAAK,IAAIlT,EAAK,GAAIlO,EAAI,EAAGA,EAAI6N,UAAU7R,OAAQgE,IAC3CkO,EAAKA,EAAG9S,OAAO+lB,EAAOtT,UAAU7N,KACpC,OAAOkO,CACT,CAGO,SAASmT,IACd,IAAK,IAAIvK,EAAI,EAAG9W,EAAI,EAAGshB,EAAKzT,UAAU7R,OAAQgE,EAAIshB,EAAIthB,IAAK8W,GAAKjJ,UAAU7N,GAAGhE,OACxE,IAAIyQ,EAAI1U,MAAM+e,GAAI/U,EAAI,EAA3B,IAA8B/B,EAAI,EAAGA,EAAIshB,EAAIthB,IACzC,IAAK,IAAIgC,EAAI6L,UAAU7N,GAAIuhB,EAAI,EAAGC,EAAKxf,EAAEhG,OAAQulB,EAAIC,EAAID,IAAKxf,IAC1D0K,EAAE1K,GAAKC,EAAEuf,GACjB,OAAO9U,CACT,CAEO,SAASsB,EAAcC,EAAIrB,EAAMsB,GACtC,GAAIA,GAA6B,IAArBJ,UAAU7R,OAAc,IAAK,IAA4BkS,EAAxBlO,EAAI,EAAGmO,EAAIxB,EAAK3Q,OAAYgE,EAAImO,EAAGnO,KACxEkO,GAAQlO,KAAK2M,IACRuB,IAAIA,EAAKnW,MAAMG,UAAUwE,MAAMtE,KAAKuU,EAAM,EAAG3M,IAClDkO,EAAGlO,GAAK2M,EAAK3M,IAGrB,OAAOgO,EAAG5S,OAAO8S,GAAMnW,MAAMG,UAAUwE,MAAMtE,KAAKuU,GACpD,CAEO,SAAS8U,EAAQxK,GACtB,OAAOrJ,gBAAgB6T,GAAW7T,KAAKqJ,EAAIA,EAAGrJ,MAAQ,IAAI6T,EAAQxK,EACpE,CAEO,SAASyK,EAAiB5C,EAASW,EAAYC,GACpD,IAAK9F,OAAO+H,cAAe,MAAM,IAAIvrB,UAAU,wCAC/C,IAAoD4J,EAAhDygB,EAAIf,EAAU5Z,MAAMgZ,EAASW,GAAc,IAAQmC,EAAI,GAC3D,OAAO5hB,EAAIvI,OAAOoD,QAAiC,mBAAlBgnB,cAA+BA,cAAgBpqB,QAAQS,WAAYyoB,EAAK,QAASA,EAAK,SAAUA,EAAK,UACtI,SAAqB/e,GAAK,OAAO,SAAUqV,GAAK,OAAO0I,QAAQC,QAAQ3I,GAAGiJ,KAAKte,EAAGie,EAAS,CAAG,IADgE7f,EAAE4Z,OAAO+H,eAAiB,WAAc,OAAO/T,IAAM,EAAG5N,EAEtN,SAAS2gB,EAAK3pB,EAAG4K,GAAS6e,EAAEzpB,KAAMgJ,EAAEhJ,GAAK,SAAUigB,GAAK,OAAO,IAAI0I,SAAQ,SAAU3d,EAAGC,GAAK2f,EAAE/b,KAAK,CAAC7O,EAAGigB,EAAGjV,EAAGC,IAAM,GAAK6f,EAAO9qB,EAAGigB,EAAI,GAAI,EAAOrV,IAAG5B,EAAEhJ,GAAK4K,EAAE5B,EAAEhJ,KAAO,CACvK,SAAS8qB,EAAO9qB,EAAGigB,GAAK,KACVxK,EADqBgU,EAAEzpB,GAAGigB,IACnBpb,iBAAiB4lB,EAAU9B,QAAQC,QAAQnT,EAAE5Q,MAAMob,GAAGiJ,KAAK6B,EAASlC,GAAUmC,EAAOJ,EAAE,GAAG,GAAInV,EADtE,CAAE,MAAOjM,GAAKwhB,EAAOJ,EAAE,GAAG,GAAIphB,EAAI,CAC/E,IAAciM,CADmE,CAEjF,SAASsV,EAAQlmB,GAASimB,EAAO,OAAQjmB,EAAQ,CACjD,SAASgkB,EAAOhkB,GAASimB,EAAO,QAASjmB,EAAQ,CACjD,SAASmmB,EAAOpgB,EAAGqV,GAASrV,EAAEqV,GAAI2K,EAAEK,QAASL,EAAE5lB,QAAQ8lB,EAAOF,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACnF,CAEO,SAASM,EAAiB/rB,GAC/B,IAAI6J,EAAGW,EACP,OAAOX,EAAI,CAAC,EAAG2gB,EAAK,QAASA,EAAK,SAAS,SAAUngB,GAAK,MAAMA,CAAG,IAAImgB,EAAK,UAAW3gB,EAAE4Z,OAAOgH,UAAY,WAAc,OAAOhT,IAAM,EAAG5N,EAC1I,SAAS2gB,EAAK3pB,EAAG4K,GAAK5B,EAAEhJ,GAAKb,EAAEa,GAAK,SAAUigB,GAAK,OAAQtW,GAAKA,GAAK,CAAE9E,MAAO4lB,EAAQtrB,EAAEa,GAAGigB,IAAKzB,MAAM,GAAU5T,EAAIA,EAAEqV,GAAKA,CAAG,EAAIrV,CAAG,CACvI,CAEO,SAASugB,EAAchsB,GAC5B,IAAKyjB,OAAO+H,cAAe,MAAM,IAAIvrB,UAAU,wCAC/C,IAAiC4J,EAA7BO,EAAIpK,EAAEyjB,OAAO+H,eACjB,OAAOphB,EAAIA,EAAEnI,KAAKjC,IAAMA,EAAqC+qB,EAAS/qB,GAA2B6J,EAAI,CAAC,EAAG2gB,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW3gB,EAAE4Z,OAAO+H,eAAiB,WAAc,OAAO/T,IAAM,EAAG5N,GAC9M,SAAS2gB,EAAK3pB,GAAKgJ,EAAEhJ,GAAKb,EAAEa,IAAM,SAAUigB,GAAK,OAAO,IAAI0I,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQzM,EAAG6D,GAAK0I,QAAQC,QAAQ3I,GAAGiJ,MAAK,SAASjJ,GAAK2I,EAAQ,CAAE/jB,MAAOob,EAAGzB,KAAMpC,GAAM,GAAGyM,EAAS,EADbmC,CAAOpC,EAASC,GAA7B5I,EAAI9gB,EAAEa,GAAGigB,IAA8BzB,KAAMyB,EAAEpb,MAAQ,GAAI,CAAG,CAEjK,CAEO,SAASumB,EAAqBC,EAAQC,GAE3C,OADI7qB,OAAOkf,eAAkBlf,OAAOkf,eAAe0L,EAAQ,MAAO,CAAExmB,MAAOymB,IAAiBD,EAAOC,IAAMA,EAClGD,CACT,CAEA,IAAIE,EAAqB9qB,OAAOoD,OAAS,SAAU1E,EAAG8gB,GACpDxf,OAAOkf,eAAexgB,EAAG,UAAW,CAAE4jB,YAAY,EAAMle,MAAOob,GAChE,EAAI,SAAS9gB,EAAG8gB,GACf9gB,EAAW,QAAI8gB,CACjB,EAEO,SAASuL,EAAajqB,GAC3B,GAAIA,GAAOA,EAAIyoB,WAAY,OAAOzoB,EAClC,IAAIqG,EAAS,CAAC,EACd,GAAW,MAAPrG,EAAa,IAAK,IAAIwJ,KAAKxJ,EAAe,YAANwJ,GAAmBtK,OAAOS,UAAUC,eAAeC,KAAKG,EAAKwJ,IAAI+e,EAAgBliB,EAAQrG,EAAKwJ,GAEtI,OADAwgB,EAAmB3jB,EAAQrG,GACpBqG,CACT,CAEO,SAAS+Z,EAAgBpgB,GAC9B,OAAQA,GAAOA,EAAIyoB,WAAczoB,EAAM,CAAE2gB,QAAS3gB,EACpD,CAEO,SAASkqB,EAAuBC,EAAUC,EAAOtE,EAAMzc,GAC5D,GAAa,MAATyc,IAAiBzc,EAAG,MAAM,IAAIxL,UAAU,iDAC5C,GAAqB,mBAAVusB,EAAuBD,IAAaC,IAAU/gB,GAAK+gB,EAAMplB,IAAImlB,GAAW,MAAM,IAAItsB,UAAU,4EACvG,MAAgB,MAATioB,EAAezc,EAAa,MAATyc,EAAezc,EAAExJ,KAAKsqB,GAAY9gB,EAAIA,EAAE/F,MAAQ8mB,EAAMxK,IAAIuK,EACtF,CAEO,SAASE,EAAuBF,EAAUC,EAAO9mB,EAAOwiB,EAAMzc,GACnE,GAAa,MAATyc,EAAc,MAAM,IAAIjoB,UAAU,kCACtC,GAAa,MAATioB,IAAiBzc,EAAG,MAAM,IAAIxL,UAAU,iDAC5C,GAAqB,mBAAVusB,EAAuBD,IAAaC,IAAU/gB,GAAK+gB,EAAMplB,IAAImlB,GAAW,MAAM,IAAItsB,UAAU,2EACvG,MAAiB,MAATioB,EAAezc,EAAExJ,KAAKsqB,EAAU7mB,GAAS+F,EAAIA,EAAE/F,MAAQA,EAAQ8mB,EAAMvK,IAAIsK,EAAU7mB,GAASA,CACtG,CAEO,SAASgnB,EAAsBF,EAAOD,GAC3C,GAAiB,OAAbA,GAA0C,iBAAbA,GAA6C,mBAAbA,EAA0B,MAAM,IAAItsB,UAAU,0CAC/G,MAAwB,mBAAVusB,EAAuBD,IAAaC,EAAQA,EAAMplB,IAAImlB,EACtE,CAEO,SAASI,EAAwBC,EAAKlnB,EAAOmnB,GAClD,GAAInnB,QAAoC,CACtC,GAAqB,iBAAVA,GAAuC,mBAAVA,EAAsB,MAAM,IAAIzF,UAAU,oBAClF,IAAI6sB,EAASC,EACb,GAAIF,EAAO,CACT,IAAKpJ,OAAOuJ,aAAc,MAAM,IAAI/sB,UAAU,uCAC9C6sB,EAAUpnB,EAAM+d,OAAOuJ,aACzB,CACA,QAAgB,IAAZF,EAAoB,CACtB,IAAKrJ,OAAOqJ,QAAS,MAAM,IAAI7sB,UAAU,kCACzC6sB,EAAUpnB,EAAM+d,OAAOqJ,SACnBD,IAAOE,EAAQD,EACrB,CACA,GAAuB,mBAAZA,EAAwB,MAAM,IAAI7sB,UAAU,0BACnD8sB,IAAOD,EAAU,WAAa,IAAMC,EAAM9qB,KAAKwV,KAAO,CAAE,MAAOpN,GAAK,OAAOmf,QAAQE,OAAOrf,EAAI,CAAE,GACpGuiB,EAAIK,MAAMvd,KAAK,CAAEhK,MAAOA,EAAOonB,QAASA,EAASD,MAAOA,GAC1D,MACSA,GACPD,EAAIK,MAAMvd,KAAK,CAAEmd,OAAO,IAE1B,OAAOnnB,CACT,CAEA,IAAIwnB,EAA8C,mBAApBjV,gBAAiCA,gBAAkB,SAAU6L,EAAOqJ,EAAYrR,GAC5G,IAAIzR,EAAI,IAAIjH,MAAM0Y,GAClB,OAAOzR,EAAE+d,KAAO,kBAAmB/d,EAAEyZ,MAAQA,EAAOzZ,EAAE8iB,WAAaA,EAAY9iB,CACjF,EAEO,SAAS+iB,EAAmBR,GACjC,SAASS,EAAKhjB,GACZuiB,EAAI9I,MAAQ8I,EAAIU,SAAW,IAAIJ,EAAiB7iB,EAAGuiB,EAAI9I,MAAO,4CAA8CzZ,EAC5GuiB,EAAIU,UAAW,CACjB,CACA,IAAIhX,EAAGqK,EAAI,EAkBX,OAjBA,SAASkJ,IACP,KAAOvT,EAAIsW,EAAIK,MAAM9a,OACnB,IACE,IAAKmE,EAAEuW,OAAe,IAANlM,EAAS,OAAOA,EAAI,EAAGiM,EAAIK,MAAMvd,KAAK4G,GAAIkT,QAAQC,UAAUM,KAAKF,GACjF,GAAIvT,EAAEwW,QAAS,CACb,IAAIrkB,EAAS6N,EAAEwW,QAAQ7qB,KAAKqU,EAAE5Q,OAC9B,GAAI4Q,EAAEuW,MAAO,OAAOlM,GAAK,EAAG6I,QAAQC,QAAQhhB,GAAQshB,KAAKF,GAAM,SAASxf,GAAc,OAATgjB,EAAKhjB,GAAWwf,GAAQ,GACvG,MACKlJ,GAAK,CACZ,CACA,MAAOtW,GACLgjB,EAAKhjB,EACP,CAEF,GAAU,IAANsW,EAAS,OAAOiM,EAAIU,SAAW9D,QAAQE,OAAOkD,EAAI9I,OAAS0F,QAAQC,UACvE,GAAImD,EAAIU,SAAU,MAAMV,EAAI9I,KAC9B,CACO+F,EACT,CAEO,SAAS0D,EAAiCC,EAAMC,GACrD,MAAoB,iBAATD,GAAqB,WAAW7lB,KAAK6lB,GACrCA,EAAKhmB,QAAQ,oDAAoD,SAAU4C,EAAGsjB,EAAKzQ,EAAG0Q,EAAKC,GAC9F,OAAOF,EAAMD,EAAc,OAAS,OAAQxQ,GAAO0Q,GAAQC,EAAW3Q,EAAI0Q,EAAM,IAAMC,EAAG/lB,cAAgB,KAAxCuC,CACrE,IAEGojB,CACT,CAEA,WACE9G,YACAE,WACAE,SACAG,aACAO,UACAG,eACAe,oBACAG,YACAC,oBACAG,aACAI,YACAW,cACAW,kBACAG,eACAC,WACAC,SACAC,WACAC,iBACAtT,gBACA0T,UACAC,mBACAQ,mBACAC,gBACAC,uBACAI,eACA7J,kBACA8J,yBACAG,yBACAC,wBACAC,0BACAS,qBACAG,mC","sources":["webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/262.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/CoerceOptionsToObject.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/GetOptionsObject.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/GetStringOrBooleanOption.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ApplyUnsignedRoundingMode.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CollapseNumberRange.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/regex.generated.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/digit-mapping.generated.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatApproximately.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberRangePattern.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRange.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRangeToParts.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/GetUnsignedRoundingMode.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/ecma402-abstract/lib/data.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/node_modules/tslib/tslib.es6.mjs","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/languageMatching.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/regions.generated.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/utils.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/BestFitMatcher.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/BestAvailableLocale.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/UnicodeExtensionValue.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/ResolveLocale.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/LookupMatcher.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/LookupSupportedLocales.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/index.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeLocaleList.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/abstract/GetOperands.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/abstract/InitializePluralRules.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/abstract/ResolvePlural.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/get_internal_slots.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/index.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/locale-data/en.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/polyfill.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/should-polyfill.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/supported-locales.generated.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/abstract/InitializeRelativeTimeFormat.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/abstract/MakePartsList.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/abstract/PartitionRelativeTimePattern.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/abstract/SingularRelativeTimeUnit.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/get_internal_slots.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/index.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/locale-data/en.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/polyfill.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/should-polyfill.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/supported-locales.generated.js","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-pluralrules/node_modules/tslib/tslib.es6.mjs","webpack://tgstation-server-control-panel/./node_modules/@formatjs/intl-relativetimeformat/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var zoneNames = _a.zoneNames, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = zoneNames.reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (isNaN(number) || SameValue(number, -0)) {\n return 0;\n }\n if (isFinite(number)) {\n return number;\n }\n var integer = Math.floor(Math.abs(number));\n if (number < 0) {\n integer = -integer;\n }\n if (SameValue(integer, -0)) {\n return 0;\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!isFinite(time)) {\n return NaN;\n }\n if (Math.abs(time) > 8.64 * 1e15) {\n return NaN;\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return Date.UTC(y, 0);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n return new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n return typeof fn === 'function';\n}\n/**\n * The abstract operation OrdinaryHasInstance implements\n * the default algorithm for determining if an object O\n * inherits from the instance object inheritance path\n * provided by constructor C.\n * @param C class\n * @param O object\n * @param internalSlots internalSlots\n */\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n if (!IsCallable(C)) {\n return false;\n }\n if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {\n var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;\n return O instanceof BC;\n }\n if (typeof O !== 'object') {\n return false;\n }\n var P = C.prototype;\n if (typeof P !== 'object') {\n throw new TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');\n }\n return Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n return mod(t, MS_PER_SECOND);\n}\n","import { ToObject } from './262';\n/**\n * https://tc39.es/ecma402/#sec-coerceoptionstoobject\n * @param options\n * @returns\n */\nexport function CoerceOptionsToObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n return ToObject(options);\n}\n","/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n if (inputVal === undefined) {\n // @ts-expect-error\n return fallback;\n }\n var val = Number(inputVal);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(\"\".concat(val, \" is outside of range [\").concat(min, \", \").concat(max, \"]\"));\n }\n return Math.floor(val);\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n if (typeof opts !== 'object') {\n throw new TypeError('Options must be an object');\n }\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(\"\".concat(value, \" is not within \").concat(values.join(', ')));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getoptionsobject\n * @param options\n * @returns\n */\nexport function GetOptionsObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n if (typeof options === 'object') {\n return options;\n }\n throw new TypeError('Options must be an object');\n}\n","/**\n * https://tc39.es/ecma402/#sec-getstringorbooleanoption\n * @param opts\n * @param prop\n * @param values\n * @param trueValue\n * @param falsyValue\n * @param fallback\n */\nimport { ToString } from './262';\nexport function GetStringOrBooleanOption(opts, prop, values, trueValue, falsyValue, fallback) {\n var value = opts[prop];\n if (value === undefined) {\n return fallback;\n }\n if (value === true) {\n return trueValue;\n }\n var valueBoolean = Boolean(value);\n if (valueBoolean === false) {\n return falsyValue;\n }\n value = ToString(value);\n if (value === 'true' || value === 'false') {\n return fallback;\n }\n if ((values || []).indexOf(value) === -1) {\n throw new RangeError(\"Invalid value \".concat(value));\n }\n return value;\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var zoneNamesFromData = _a.zoneNamesFromData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set();\n var linkNames = new Set();\n zoneNamesFromData.map(function (z) { return z.toUpperCase(); }).forEach(function (z) { return zoneNames.add(z); });\n Object.keys(uppercaseLinks).forEach(function (linkName) {\n linkNames.add(linkName.toUpperCase());\n zoneNames.add(uppercaseLinks[linkName].toUpperCase());\n });\n return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","export function ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode) {\n if (x === r1)\n return r1;\n if (unsignedRoundingMode === undefined) {\n throw new Error('unsignedRoundingMode is mandatory');\n }\n if (unsignedRoundingMode === 'zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'infinity') {\n return r2;\n }\n var d1 = x - r1;\n var d2 = r2 - x;\n if (d1 < d2) {\n return r1;\n }\n if (d2 < d1) {\n return r2;\n }\n if (d1 !== d2) {\n throw new Error('Unexpected error');\n }\n if (unsignedRoundingMode === 'half-zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'half-infinity') {\n return r2;\n }\n if (unsignedRoundingMode !== 'half-even') {\n throw new Error(\"Unexpected value for unsignedRoundingMode: \".concat(unsignedRoundingMode));\n }\n var cardinality = (r1 / (r2 - r1)) % 2;\n if (cardinality === 0) {\n return r1;\n }\n return r2;\n}\n","/**\n * https://tc39.es/ecma402/#sec-collapsenumberrange\n */\nexport function CollapseNumberRange(result) {\n return result;\n}\n","/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n default: {\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","import { repeat, getMagnitude } from '../utils';\nexport function ToRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n var xToString = x.toString();\n // If xToString is formatted as scientific notation, the number is either very small or very\n // large. If the precision of the formatted string is lower that requested max precision, we\n // should still infer them from the formatted string, otherwise the formatted result might have\n // precision loss (e.g. 1e41 will not have 0 in every trailing digits).\n var xToStringExponentIndex = xToString.indexOf('e');\n var _a = xToString.split('e'), xToStringMantissa = _a[0], xToStringExponent = _a[1];\n var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace('.', '');\n if (xToStringExponentIndex >= 0 &&\n xToStringMantissaWithoutDecimalPoint.length <= p) {\n e = +xToStringExponent;\n m =\n xToStringMantissaWithoutDecimalPoint +\n repeat('0', p - xToStringMantissaWithoutDecimalPoint.length);\n xFinal = x;\n }\n else {\n e = getMagnitude(x);\n var decimalPlaceOffset = e - p + 1;\n // n is the integer containing the required precision digits. To derive the formatted string,\n // we will adjust its decimal place in the logic below.\n var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));\n // The rounding caused the change of magnitude, so we should increment `e` by 1.\n if (adjustDecimalPlace(n, p - 1) >= 10) {\n e = e + 1;\n // Divide n by 10 to swallow one precision.\n n = Math.floor(n / 10);\n }\n m = n.toString();\n // Equivalent of n * 10 ** (e - p + 1)\n xFinal = adjustDecimalPlace(n, p - 1 - e);\n }\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = \"\".concat(m.slice(0, e + 1), \".\").concat(m.slice(e + 1));\n int = e + 1;\n }\n else {\n m = \"0.\".concat(repeat('0', -e - 1)).concat(m);\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n // x / (10 ** magnitude), but try to preserve as much floating point precision as possible.\n function adjustDecimalPlace(x, magnitude) {\n return magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n }\n}\n","import { repeat } from '../utils';\n/**\n * TODO: dedup with intl-pluralrules and support BigInt\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction and integer between 0 and 20\n * @param maxFraction and integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n = Math.round(x * Math.pow(10, f));\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var _a = m.split('e'), mantissa = _a[0], exponent = _a[1];\n m = mantissa.replace('.', '');\n m = m + repeat('0', Math.max(+exponent - m.length + 1, 0));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = \"\".concat(a, \".\").concat(b);\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n","import { SameValue } from '../262';\nimport { ToRawPrecision } from './ToRawPrecision';\nimport { repeat } from '../utils';\nimport { ToRawFixed } from './ToRawFixed';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, x) {\n var isNegative = x < 0 || SameValue(x, -0);\n if (isNegative) {\n x = -x;\n }\n var result;\n var rourndingType = intlObject.roundingType;\n switch (rourndingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);\n break;\n default:\n result = ToRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = ToRawFixed(x, 0, 0);\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import { getMagnitude } from '../utils';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(numberFormat, x, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (x === 0) {\n return [0, 0];\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {\n getInternalSlots: getInternalSlots,\n });\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(getInternalSlots(numberFormat), x);\n if (formatNumberResult.roundedNumber === 0) {\n return [exponent, magnitude];\n }\n var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);\n if (newMagnitude === magnitude - exponent) {\n return [exponent, magnitude];\n }\n return [\n ComputeExponentForMagnitude(numberFormat, magnitude + 1, {\n getInternalSlots: getInternalSlots,\n }),\n magnitude + 1,\n ];\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","// @generated from regex-gen.ts\nexport var S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEE0-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n","export var digitMapping = {\n \"adlm\": [\n \"𞥐\",\n \"𞥑\",\n \"𞥒\",\n \"𞥓\",\n \"𞥔\",\n \"𞥕\",\n \"𞥖\",\n \"𞥗\",\n \"𞥘\",\n \"𞥙\"\n ],\n \"ahom\": [\n \"𑜰\",\n \"𑜱\",\n \"𑜲\",\n \"𑜳\",\n \"𑜴\",\n \"𑜵\",\n \"𑜶\",\n \"𑜷\",\n \"𑜸\",\n \"𑜹\"\n ],\n \"arab\": [\n \"٠\",\n \"١\",\n \"٢\",\n \"٣\",\n \"٤\",\n \"٥\",\n \"٦\",\n \"٧\",\n \"٨\",\n \"٩\"\n ],\n \"arabext\": [\n \"۰\",\n \"۱\",\n \"۲\",\n \"۳\",\n \"۴\",\n \"۵\",\n \"۶\",\n \"۷\",\n \"۸\",\n \"۹\"\n ],\n \"bali\": [\n \"᭐\",\n \"᭑\",\n \"᭒\",\n \"᭓\",\n \"᭔\",\n \"᭕\",\n \"᭖\",\n \"᭗\",\n \"᭘\",\n \"᭙\"\n ],\n \"beng\": [\n \"০\",\n \"১\",\n \"২\",\n \"৩\",\n \"৪\",\n \"৫\",\n \"৬\",\n \"৭\",\n \"৮\",\n \"৯\"\n ],\n \"bhks\": [\n \"𑱐\",\n \"𑱑\",\n \"𑱒\",\n \"𑱓\",\n \"𑱔\",\n \"𑱕\",\n \"𑱖\",\n \"𑱗\",\n \"𑱘\",\n \"𑱙\"\n ],\n \"brah\": [\n \"𑁦\",\n \"𑁧\",\n \"𑁨\",\n \"𑁩\",\n \"𑁪\",\n \"𑁫\",\n \"𑁬\",\n \"𑁭\",\n \"𑁮\",\n \"𑁯\"\n ],\n \"cakm\": [\n \"𑄶\",\n \"𑄷\",\n \"𑄸\",\n \"𑄹\",\n \"𑄺\",\n \"𑄻\",\n \"𑄼\",\n \"𑄽\",\n \"𑄾\",\n \"𑄿\"\n ],\n \"cham\": [\n \"꩐\",\n \"꩑\",\n \"꩒\",\n \"꩓\",\n \"꩔\",\n \"꩕\",\n \"꩖\",\n \"꩗\",\n \"꩘\",\n \"꩙\"\n ],\n \"deva\": [\n \"०\",\n \"१\",\n \"२\",\n \"३\",\n \"४\",\n \"५\",\n \"६\",\n \"७\",\n \"८\",\n \"९\"\n ],\n \"diak\": [\n \"𑥐\",\n \"𑥑\",\n \"𑥒\",\n \"𑥓\",\n \"𑥔\",\n \"𑥕\",\n \"𑥖\",\n \"𑥗\",\n \"𑥘\",\n \"𑥙\"\n ],\n \"fullwide\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\"\n ],\n \"gong\": [\n \"𑶠\",\n \"𑶡\",\n \"𑶢\",\n \"𑶣\",\n \"𑶤\",\n \"𑶥\",\n \"𑶦\",\n \"𑶧\",\n \"𑶨\",\n \"𑶩\"\n ],\n \"gonm\": [\n \"𑵐\",\n \"𑵑\",\n \"𑵒\",\n \"𑵓\",\n \"𑵔\",\n \"𑵕\",\n \"𑵖\",\n \"𑵗\",\n \"𑵘\",\n \"𑵙\"\n ],\n \"gujr\": [\n \"૦\",\n \"૧\",\n \"૨\",\n \"૩\",\n \"૪\",\n \"૫\",\n \"૬\",\n \"૭\",\n \"૮\",\n \"૯\"\n ],\n \"guru\": [\n \"੦\",\n \"੧\",\n \"੨\",\n \"੩\",\n \"੪\",\n \"੫\",\n \"੬\",\n \"੭\",\n \"੮\",\n \"੯\"\n ],\n \"hanidec\": [\n \"〇\",\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\"\n ],\n \"hmng\": [\n \"𖭐\",\n \"𖭑\",\n \"𖭒\",\n \"𖭓\",\n \"𖭔\",\n \"𖭕\",\n \"𖭖\",\n \"𖭗\",\n \"𖭘\",\n \"𖭙\"\n ],\n \"hmnp\": [\n \"𞅀\",\n \"𞅁\",\n \"𞅂\",\n \"𞅃\",\n \"𞅄\",\n \"𞅅\",\n \"𞅆\",\n \"𞅇\",\n \"𞅈\",\n \"𞅉\"\n ],\n \"java\": [\n \"꧐\",\n \"꧑\",\n \"꧒\",\n \"꧓\",\n \"꧔\",\n \"꧕\",\n \"꧖\",\n \"꧗\",\n \"꧘\",\n \"꧙\"\n ],\n \"kali\": [\n \"꤀\",\n \"꤁\",\n \"꤂\",\n \"꤃\",\n \"꤄\",\n \"꤅\",\n \"꤆\",\n \"꤇\",\n \"꤈\",\n \"꤉\"\n ],\n \"khmr\": [\n \"០\",\n \"១\",\n \"២\",\n \"៣\",\n \"៤\",\n \"៥\",\n \"៦\",\n \"៧\",\n \"៨\",\n \"៩\"\n ],\n \"knda\": [\n \"೦\",\n \"೧\",\n \"೨\",\n \"೩\",\n \"೪\",\n \"೫\",\n \"೬\",\n \"೭\",\n \"೮\",\n \"೯\"\n ],\n \"lana\": [\n \"᪀\",\n \"᪁\",\n \"᪂\",\n \"᪃\",\n \"᪄\",\n \"᪅\",\n \"᪆\",\n \"᪇\",\n \"᪈\",\n \"᪉\"\n ],\n \"lanatham\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"laoo\": [\n \"໐\",\n \"໑\",\n \"໒\",\n \"໓\",\n \"໔\",\n \"໕\",\n \"໖\",\n \"໗\",\n \"໘\",\n \"໙\"\n ],\n \"lepc\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"limb\": [\n \"᥆\",\n \"᥇\",\n \"᥈\",\n \"᥉\",\n \"᥊\",\n \"᥋\",\n \"᥌\",\n \"᥍\",\n \"᥎\",\n \"᥏\"\n ],\n \"mathbold\": [\n \"𝟎\",\n \"𝟏\",\n \"𝟐\",\n \"𝟑\",\n \"𝟒\",\n \"𝟓\",\n \"𝟔\",\n \"𝟕\",\n \"𝟖\",\n \"𝟗\"\n ],\n \"mathdbl\": [\n \"𝟘\",\n \"𝟙\",\n \"𝟚\",\n \"𝟛\",\n \"𝟜\",\n \"𝟝\",\n \"𝟞\",\n \"𝟟\",\n \"𝟠\",\n \"𝟡\"\n ],\n \"mathmono\": [\n \"𝟶\",\n \"𝟷\",\n \"𝟸\",\n \"𝟹\",\n \"𝟺\",\n \"𝟻\",\n \"𝟼\",\n \"𝟽\",\n \"𝟾\",\n \"𝟿\"\n ],\n \"mathsanb\": [\n \"𝟬\",\n \"𝟭\",\n \"𝟮\",\n \"𝟯\",\n \"𝟰\",\n \"𝟱\",\n \"𝟲\",\n \"𝟳\",\n \"𝟴\",\n \"𝟵\"\n ],\n \"mathsans\": [\n \"𝟢\",\n \"𝟣\",\n \"𝟤\",\n \"𝟥\",\n \"𝟦\",\n \"𝟧\",\n \"𝟨\",\n \"𝟩\",\n \"𝟪\",\n \"𝟫\"\n ],\n \"mlym\": [\n \"൦\",\n \"൧\",\n \"൨\",\n \"൩\",\n \"൪\",\n \"൫\",\n \"൬\",\n \"൭\",\n \"൮\",\n \"൯\"\n ],\n \"modi\": [\n \"𑙐\",\n \"𑙑\",\n \"𑙒\",\n \"𑙓\",\n \"𑙔\",\n \"𑙕\",\n \"𑙖\",\n \"𑙗\",\n \"𑙘\",\n \"𑙙\"\n ],\n \"mong\": [\n \"᠐\",\n \"᠑\",\n \"᠒\",\n \"᠓\",\n \"᠔\",\n \"᠕\",\n \"᠖\",\n \"᠗\",\n \"᠘\",\n \"᠙\"\n ],\n \"mroo\": [\n \"𖩠\",\n \"𖩡\",\n \"𖩢\",\n \"𖩣\",\n \"𖩤\",\n \"𖩥\",\n \"𖩦\",\n \"𖩧\",\n \"𖩨\",\n \"𖩩\"\n ],\n \"mtei\": [\n \"꯰\",\n \"꯱\",\n \"꯲\",\n \"꯳\",\n \"꯴\",\n \"꯵\",\n \"꯶\",\n \"꯷\",\n \"꯸\",\n \"꯹\"\n ],\n \"mymr\": [\n \"၀\",\n \"၁\",\n \"၂\",\n \"၃\",\n \"၄\",\n \"၅\",\n \"၆\",\n \"၇\",\n \"၈\",\n \"၉\"\n ],\n \"mymrshan\": [\n \"႐\",\n \"႑\",\n \"႒\",\n \"႓\",\n \"႔\",\n \"႕\",\n \"႖\",\n \"႗\",\n \"႘\",\n \"႙\"\n ],\n \"mymrtlng\": [\n \"꧰\",\n \"꧱\",\n \"꧲\",\n \"꧳\",\n \"꧴\",\n \"꧵\",\n \"꧶\",\n \"꧷\",\n \"꧸\",\n \"꧹\"\n ],\n \"newa\": [\n \"𑑐\",\n \"𑑑\",\n \"𑑒\",\n \"𑑓\",\n \"𑑔\",\n \"𑑕\",\n \"𑑖\",\n \"𑑗\",\n \"𑑘\",\n \"𑑙\"\n ],\n \"nkoo\": [\n \"߀\",\n \"߁\",\n \"߂\",\n \"߃\",\n \"߄\",\n \"߅\",\n \"߆\",\n \"߇\",\n \"߈\",\n \"߉\"\n ],\n \"olck\": [\n \"᱐\",\n \"᱑\",\n \"᱒\",\n \"᱓\",\n \"᱔\",\n \"᱕\",\n \"᱖\",\n \"᱗\",\n \"᱘\",\n \"᱙\"\n ],\n \"orya\": [\n \"୦\",\n \"୧\",\n \"୨\",\n \"୩\",\n \"୪\",\n \"୫\",\n \"୬\",\n \"୭\",\n \"୮\",\n \"୯\"\n ],\n \"osma\": [\n \"𐒠\",\n \"𐒡\",\n \"𐒢\",\n \"𐒣\",\n \"𐒤\",\n \"𐒥\",\n \"𐒦\",\n \"𐒧\",\n \"𐒨\",\n \"𐒩\"\n ],\n \"rohg\": [\n \"𐴰\",\n \"𐴱\",\n \"𐴲\",\n \"𐴳\",\n \"𐴴\",\n \"𐴵\",\n \"𐴶\",\n \"𐴷\",\n \"𐴸\",\n \"𐴹\"\n ],\n \"saur\": [\n \"꣐\",\n \"꣑\",\n \"꣒\",\n \"꣓\",\n \"꣔\",\n \"꣕\",\n \"꣖\",\n \"꣗\",\n \"꣘\",\n \"꣙\"\n ],\n \"segment\": [\n \"🯰\",\n \"🯱\",\n \"🯲\",\n \"🯳\",\n \"🯴\",\n \"🯵\",\n \"🯶\",\n \"🯷\",\n \"🯸\",\n \"🯹\"\n ],\n \"shrd\": [\n \"𑇐\",\n \"𑇑\",\n \"𑇒\",\n \"𑇓\",\n \"𑇔\",\n \"𑇕\",\n \"𑇖\",\n \"𑇗\",\n \"𑇘\",\n \"𑇙\"\n ],\n \"sind\": [\n \"𑋰\",\n \"𑋱\",\n \"𑋲\",\n \"𑋳\",\n \"𑋴\",\n \"𑋵\",\n \"𑋶\",\n \"𑋷\",\n \"𑋸\",\n \"𑋹\"\n ],\n \"sinh\": [\n \"෦\",\n \"෧\",\n \"෨\",\n \"෩\",\n \"෪\",\n \"෫\",\n \"෬\",\n \"෭\",\n \"෮\",\n \"෯\"\n ],\n \"sora\": [\n \"𑃰\",\n \"𑃱\",\n \"𑃲\",\n \"𑃳\",\n \"𑃴\",\n \"𑃵\",\n \"𑃶\",\n \"𑃷\",\n \"𑃸\",\n \"𑃹\"\n ],\n \"sund\": [\n \"᮰\",\n \"᮱\",\n \"᮲\",\n \"᮳\",\n \"᮴\",\n \"᮵\",\n \"᮶\",\n \"᮷\",\n \"᮸\",\n \"᮹\"\n ],\n \"takr\": [\n \"𑛀\",\n \"𑛁\",\n \"𑛂\",\n \"𑛃\",\n \"𑛄\",\n \"𑛅\",\n \"𑛆\",\n \"𑛇\",\n \"𑛈\",\n \"𑛉\"\n ],\n \"talu\": [\n \"᧐\",\n \"᧑\",\n \"᧒\",\n \"᧓\",\n \"᧔\",\n \"᧕\",\n \"᧖\",\n \"᧗\",\n \"᧘\",\n \"᧙\"\n ],\n \"tamldec\": [\n \"௦\",\n \"௧\",\n \"௨\",\n \"௩\",\n \"௪\",\n \"௫\",\n \"௬\",\n \"௭\",\n \"௮\",\n \"௯\"\n ],\n \"telu\": [\n \"౦\",\n \"౧\",\n \"౨\",\n \"౩\",\n \"౪\",\n \"౫\",\n \"౬\",\n \"౭\",\n \"౮\",\n \"౯\"\n ],\n \"thai\": [\n \"๐\",\n \"๑\",\n \"๒\",\n \"๓\",\n \"๔\",\n \"๕\",\n \"๖\",\n \"๗\",\n \"๘\",\n \"๙\"\n ],\n \"tibt\": [\n \"༠\",\n \"༡\",\n \"༢\",\n \"༣\",\n \"༤\",\n \"༥\",\n \"༦\",\n \"༧\",\n \"༨\",\n \"༩\"\n ],\n \"tirh\": [\n \"𑓐\",\n \"𑓑\",\n \"𑓒\",\n \"𑓓\",\n \"𑓔\",\n \"𑓕\",\n \"𑓖\",\n \"𑓗\",\n \"𑓘\",\n \"𑓙\"\n ],\n \"vaii\": [\n \"ᘠ\",\n \"ᘡ\",\n \"ᘢ\",\n \"ᘣ\",\n \"ᘤ\",\n \"ᘥ\",\n \"ᘦ\",\n \"ᘧ\",\n \"ᘨ\",\n \"ᘩ\"\n ],\n \"wara\": [\n \"𑣠\",\n \"𑣡\",\n \"𑣢\",\n \"𑣣\",\n \"𑣤\",\n \"𑣥\",\n \"𑣦\",\n \"𑣧\",\n \"𑣨\",\n \"𑣩\"\n ],\n \"wcho\": [\n \"𞋰\",\n \"𞋱\",\n \"𞋲\",\n \"𞋳\",\n \"𞋴\",\n \"𞋵\",\n \"𞋶\",\n \"𞋷\",\n \"𞋸\",\n \"𞋹\"\n ]\n};\n","import { S_UNICODE_REGEX } from '../regex.generated';\nimport { ToRawFixed } from './ToRawFixed';\nimport { digitMapping } from './digit-mapping.generated';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\".concat(S_UNICODE_REGEX.source));\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(\"\".concat(S_UNICODE_REGEX.source, \"$\"));\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\".concat(afterCurrency, \"{0}\"));\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\".concat(beforeCurrency, \"\\u00A4\"));\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && Boolean(options.useGrouping), decimalNumberPattern, style));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {\n var part = unitPatternParts_1[_a];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _b = unit.split('-per-'), numeratorUnit = _b[0], denominatorUnit = _b[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _c = 0, _d = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _c < _d.length; _c++) {\n var part = _d[_c];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern, style) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (isNaN(x)) {\n return [{ type: 'nan', value: n }];\n }\n else if (!isFinite(x)) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n if (useGrouping && (notation !== 'compact' || x >= 10000)) {\n // a. Let groupSepSymbol be the implementation-, locale-, and numbering system-dependent (ILND) String representing the grouping separator.\n // For currency we should use `currencyGroup` instead of generic `group`\n var groupSepSymbol = style === 'currency' && symbols.currencyGroup != null\n ? symbols.currencyGroup\n : symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n var decimalSepSymbol = style === 'currency' && symbols.currencyDecimal != null\n ? symbols.currencyDecimal\n : symbols.decimal;\n result.push({ type: 'decimal', value: decimalSepSymbol }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n isFinite(x)) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(exponent, 0, 0);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = \"\".concat(pattern, \";-\").concat(pattern);\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\".concat(zeroPattern);\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","/**\n * https://tc39.es/ecma402/#sec-formatapproximately\n */\nexport function FormatApproximately(numberFormat, result, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n var approximatelySign = symbols.approximatelySign;\n result.push({ type: 'approximatelySign', value: approximatelySign });\n return result;\n}\n","import { FormatNumericToString } from './FormatNumericToString';\nimport { SameValue } from '../262';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function PartitionNumberPattern(numberFormat, x, _a) {\n var _b;\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n var magnitude = 0;\n var exponent = 0;\n var n;\n if (isNaN(x)) {\n n = symbols.nan;\n }\n else if (x == Number.POSITIVE_INFINITY || x == Number.NEGATIVE_INFINITY) {\n n = symbols.infinity;\n }\n else {\n if (!SameValue(x, -0)) {\n if (!isFinite(x)) {\n throw new Error('Input must be a mathematical value');\n }\n if (internalSlots.style == 'percent') {\n x *= 100;\n }\n ;\n _b = ComputeExponent(numberFormat, x, {\n getInternalSlots: getInternalSlots,\n }), exponent = _b[0], magnitude = _b[1];\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n }\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n n = formatNumberResult.formattedString;\n x = formatNumberResult.roundedNumber;\n }\n // Based on https://tc39.es/ecma402/#sec-getnumberformatpattern\n // We need to do this before `x` is rounded.\n var sign;\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n sign = 0;\n break;\n case 'auto':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 0;\n }\n else {\n sign = -1;\n }\n break;\n case 'always':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n break;\n default:\n // x === 0 -> x is 0 or x is -0\n if (x === 0 || isNaN(x)) {\n sign = 0;\n }\n else if (x > 0) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n }\n return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { CollapseNumberRange } from './CollapseNumberRange';\nimport { FormatApproximately } from './FormatApproximately';\n/**\n * https://tc39.es/ecma402/#sec-partitionnumberrangepattern\n */\nexport function PartitionNumberRangePattern(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (isNaN(x) || isNaN(y)) {\n throw new RangeError('Input must be a number');\n }\n var result = [];\n var xResult = PartitionNumberPattern(numberFormat, x, { getInternalSlots: getInternalSlots });\n var yResult = PartitionNumberPattern(numberFormat, y, { getInternalSlots: getInternalSlots });\n if (xResult === yResult) {\n return FormatApproximately(numberFormat, xResult, { getInternalSlots: getInternalSlots });\n }\n for (var _i = 0, xResult_1 = xResult; _i < xResult_1.length; _i++) {\n var r = xResult_1[_i];\n r.source = 'startRange';\n }\n result = result.concat(xResult);\n var internalSlots = getInternalSlots(numberFormat);\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n result.push({ type: 'literal', value: symbols.rangeSign, source: 'shared' });\n for (var _b = 0, yResult_1 = yResult; _b < yResult_1.length; _b++) {\n var r = yResult_1[_b];\n r.source = 'endRange';\n }\n result = result.concat(yResult);\n return CollapseNumberRange(result);\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrange\n */\nexport function FormatNumericRange(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part) { return part.value; }).join('');\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrangetoparts\n */\nexport function FormatNumericRangeToParts(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part, index) { return ({\n type: part.type,\n value: part.value,\n source: part.source,\n result: index.toString(),\n }); });\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { ArrayCreate } from '../262';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(nf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","var negativeMapping = {\n ceil: 'zero',\n floor: 'infinity',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-zero',\n halfFloor: 'half-infinity',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nvar positiveMapping = {\n ceil: 'infinity',\n floor: 'zero',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-infinity',\n halfFloor: 'half-zero',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nexport function GetUnsignedRoundingMode(roundingMode, isNegative) {\n if (isNegative) {\n return negativeMapping[roundingMode];\n }\n return positiveMapping[roundingMode];\n}\n","import { DefaultNumberOption } from '../DefaultNumberOption';\nimport { GetNumberOption } from '../GetNumberOption';\nimport { GetOption } from '../GetOption';\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n internalSlots.minimumIntegerDigits = mnid;\n var roundingPriority = GetOption(opts, 'roundingPriority', 'string', ['auto', 'morePrecision', 'lessPrecision'], 'auto');\n var hasSd = mnsd !== undefined || mxsd !== undefined;\n var hasFd = mnfd !== undefined || mxfd !== undefined;\n var needSd = true;\n var needFd = true;\n if (roundingPriority === 'auto') {\n needSd = hasSd;\n if (hasSd || (!hasFd && notation === 'compact')) {\n needFd = false;\n }\n }\n if (needSd) {\n if (hasSd) {\n mnsd = DefaultNumberOption(mnsd, 1, 21, 1);\n mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);\n internalSlots.minimumSignificantDigits = mnsd;\n internalSlots.maximumSignificantDigits = mxsd;\n }\n else {\n internalSlots.minimumSignificantDigits = 1;\n internalSlots.maximumSignificantDigits = 21;\n }\n }\n if (needFd) {\n if (hasFd) {\n mnfd = DefaultNumberOption(mnfd, 0, 20, undefined);\n mxfd = DefaultNumberOption(mxfd, 0, 20, undefined);\n if (mnfd === undefined) {\n // @ts-expect-error\n mnfd = Math.min(mnfdDefault, mxfd);\n }\n else if (mxfd === undefined) {\n mxfd = Math.max(mxfdDefault, mnfd);\n }\n else if (mnfd > mxfd) {\n throw new RangeError(\"Invalid range, \".concat(mnfd, \" > \").concat(mxfd));\n }\n internalSlots.minimumFractionDigits = mnfd;\n internalSlots.maximumFractionDigits = mxfd;\n }\n else {\n internalSlots.minimumFractionDigits = mnfdDefault;\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n }\n if (needSd || needFd) {\n if (roundingPriority === 'morePrecision') {\n internalSlots.roundingType = 'morePrecision';\n }\n else if (roundingPriority === 'lessPrecision') {\n internalSlots.roundingType = 'lessPrecision';\n }\n else if (hasSd) {\n internalSlots.roundingType = 'significantDigits';\n }\n else {\n internalSlots.roundingType = 'fractionDigits';\n }\n }\n else {\n internalSlots.roundingType = 'morePrecision';\n internalSlots.minimumFractionDigits = 0;\n internalSlots.maximumFractionDigits = 0;\n internalSlots.minimumSignificantDigits = 1;\n internalSlots.maximumSignificantDigits = 2;\n }\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(nf, options, _a) {\n if (options === void 0) { options = Object.create(null); }\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(nf);\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n internalSlots.style = style;\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !IsWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n if (style === 'currency' && currency === undefined) {\n throw TypeError('currency cannot be undefined');\n }\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !IsWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n if (style === 'unit' && unit === undefined) {\n throw TypeError('unit cannot be undefined');\n }\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n internalSlots.currency = currency.toUpperCase();\n internalSlots.currencyDisplay = currencyDisplay;\n internalSlots.currencySign = currencySign;\n }\n if (style === 'unit') {\n internalSlots.unit = unit;\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { ResolveLocale } from '@formatjs/intl-localematcher';\nimport { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { CoerceOptionsToObject } from '../CoerceOptionsToObject';\nimport { GetNumberOption } from '../GetNumberOption';\nimport { GetOption } from '../GetOption';\nimport { GetStringOrBooleanOption } from '../GetStringOrBooleanOption';\nimport { invariant } from '../utils';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\nvar VALID_ROUND_INCREMENT_VALUES = [\n 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000,\n];\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = CoerceOptionsToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \".concat(numberingSystem));\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(Array.from(availableLocales), requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \".concat(r.dataLocale));\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots });\n var style = internalSlots.style;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var roundingIncrement = GetNumberOption(options, 'roundingIncrement', 1, 5000, 1);\n if (VALID_ROUND_INCREMENT_VALUES.indexOf(roundingIncrement) === -1) {\n throw new RangeError(\"Invalid rounding increment value: \".concat(roundingIncrement, \".\\nValid values are \").concat(VALID_ROUND_INCREMENT_VALUES, \".\"));\n }\n if (roundingIncrement !== 1 &&\n internalSlots.roundingType !== 'fractionDigits') {\n throw new TypeError(\"For roundingIncrement > 1 only fractionDigits is a valid roundingType\");\n }\n if (roundingIncrement !== 1 &&\n internalSlots.maximumFractionDigits !== internalSlots.minimumFractionDigits) {\n throw new RangeError('With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.');\n }\n internalSlots.roundingIncrement = roundingIncrement;\n var trailingZeroDisplay = GetOption(options, 'trailingZeroDisplay', 'string', ['auto', 'stripIfInteger'], 'auto');\n internalSlots.trailingZeroDisplay = trailingZeroDisplay;\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n var defaultUseGrouping = 'auto';\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n defaultUseGrouping = 'min2';\n }\n internalSlots.useGrouping = GetStringOrBooleanOption(options, 'useGrouping', ['min2', 'auto', 'always'], 'always', false, defaultUseGrouping);\n internalSlots.signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero', 'negative'], 'auto');\n internalSlots.roundingMode = GetOption(options, 'roundingMode', 'string', [\n 'ceil',\n 'floor',\n 'expand',\n 'trunc',\n 'halfCeil',\n 'halfFloor',\n 'halfExpand',\n 'halfTrunc',\n 'halfEven',\n ], 'halfExpand');\n return nf;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \".concat(pattern));\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { LookupSupportedLocales } from '@formatjs/intl-localematcher';\nimport { ToObject } from './262';\nimport { GetOption } from './GetOption';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n }\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var data = {\n supplemental: {\n languageMatching: {\n 'written-new': [\n {\n paradigmLocales: {\n _locales: 'en en_GB es es_419 pt_BR pt_PT',\n },\n },\n {\n $enUS: {\n _value: 'AS+CA+GU+MH+MP+PH+PR+UM+US+VI',\n },\n },\n {\n $cnsar: {\n _value: 'HK+MO',\n },\n },\n {\n $americas: {\n _value: '019',\n },\n },\n {\n $maghreb: {\n _value: 'MA+DZ+TN+LY+MR+EH',\n },\n },\n {\n no: {\n _desired: 'nb',\n _distance: '1',\n },\n },\n {\n bs: {\n _desired: 'hr',\n _distance: '4',\n },\n },\n {\n bs: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n hr: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n sr: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n aa: {\n _desired: 'ssy',\n _distance: '4',\n },\n },\n {\n de: {\n _desired: 'gsw',\n _distance: '4',\n _oneway: 'true',\n },\n },\n {\n de: {\n _desired: 'lb',\n _distance: '4',\n _oneway: 'true',\n },\n },\n {\n no: {\n _desired: 'da',\n _distance: '8',\n },\n },\n {\n nb: {\n _desired: 'da',\n _distance: '8',\n },\n },\n {\n ru: {\n _desired: 'ab',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ach',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n nl: {\n _desired: 'af',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ak',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'am',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'ay',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'az',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ur: {\n _desired: 'bal',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'be',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'bem',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'bh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'bn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'bo',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'br',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'ca',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fil: {\n _desired: 'ceb',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'chr',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ckb',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'co',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'crs',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n sk: {\n _desired: 'cs',\n _distance: '20',\n },\n },\n {\n en: {\n _desired: 'cy',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ee',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'eo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'eu',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n da: {\n _desired: 'fo',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n nl: {\n _desired: 'fy',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ga',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'gaa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'gd',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'gl',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'gn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'gu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ha',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'haw',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'ht',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'hy',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ia',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ig',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'is',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'jv',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ka',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'kg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'kk',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'km',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'kn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'kri',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n tr: {\n _desired: 'ku',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'ky',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n it: {\n _desired: 'la',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'lg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'ln',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'lo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'loz',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'lua',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'mai',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mfe',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'mg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mi',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ml',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'mn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'mr',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'ms',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mt',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'my',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ne',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n nb: {\n _desired: 'nn',\n _distance: '20',\n },\n },\n {\n no: {\n _desired: 'nn',\n _distance: '20',\n },\n },\n {\n en: {\n _desired: 'nso',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ny',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'nyn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'oc',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'om',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'or',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'pa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'pcm',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ps',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'qu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n de: {\n _desired: 'rm',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'rn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'rw',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'sa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sd',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'si',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'so',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sq',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'st',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'su',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sw',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ta',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'te',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ti',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tk',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tlh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'to',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tt',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tum',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'ug',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'uk',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ur',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'uz',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'wo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'xh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'yi',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'yo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'za',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'zu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aao',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'abh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'abv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'adf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aeb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aec',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'afb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ajp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'apc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'apd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'arq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ars',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ary',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'arz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'auz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'avl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'bbz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'pga',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'shu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ssh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n az: {\n _desired: 'azb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n et: {\n _desired: 'vro',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'ffm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fub',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fue',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gnw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gun',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'nhd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n iu: {\n _desired: 'ikt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'enb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'eyo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'niq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'oki',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'pko',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'sgc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'tec',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'tuy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kok: {\n _desired: 'gom',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kpe: {\n _desired: 'gkp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'ida',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lkb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lko',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lks',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lri',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lrm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lsm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lto',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lts',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lwg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'nle',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'nyd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'rag',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n lv: {\n _desired: 'ltg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bhr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bjq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bmm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bzc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'msh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'skg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'tdx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'tkg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'txy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'xmv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'xmw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mn: {\n _desired: 'mvf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bjn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'btj',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bve',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bvu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'coa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'dup',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'hji',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'id',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'jak',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'jax',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kvb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kvr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kxd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'lce',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'lcf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'liw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'max',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'meo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mfa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mfb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'min',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mqg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'msi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'orn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'ors',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'pel',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'pse',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'tmw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'urk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'vkk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'vkt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'xmm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'zlm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'zmi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ne: {\n _desired: 'dty',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'gax',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'hae',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'orc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n or: {\n _desired: 'spv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ps: {\n _desired: 'pbt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ps: {\n _desired: 'pst',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qub',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qud',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qug',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qul',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qup',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qur',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qus',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qux',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qva',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qve',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvj',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvs',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qws',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sdc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sdn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sro',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aae',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aat',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aln',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n syr: {\n _desired: 'aii',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n uz: {\n _desired: 'uzs',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n yi: {\n _desired: 'yih',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cdo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cjy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cpx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'czh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'czo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'gan',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'hak',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'hsn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'lzh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'mnp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'nan',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'wuu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'yue',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n '*': {\n _desired: '*',\n _distance: '80',\n },\n },\n {\n 'en-Latn': {\n _desired: 'am-Ethi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'az-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'bn-Beng',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'bo-Tibt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'hy-Armn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ka-Geor',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'km-Khmr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'kn-Knda',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'lo-Laoo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ml-Mlym',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'my-Mymr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ne-Deva',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'or-Orya',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'pa-Guru',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ps-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'sd-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'si-Sinh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ta-Taml',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'te-Telu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ti-Ethi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'tk-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ur-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'uz-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'yi-Hebr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'sr-Cyrl': {\n _desired: 'sr-Latn',\n _distance: '5',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'za-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'zh-Hani',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hant': {\n _desired: 'zh-Hani',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ar-Arab': {\n _desired: 'ar-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'bn-Beng': {\n _desired: 'bn-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'gu-Gujr': {\n _desired: 'gu-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'hi-Deva': {\n _desired: 'hi-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'kn-Knda': {\n _desired: 'kn-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ml-Mlym': {\n _desired: 'ml-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'mr-Deva': {\n _desired: 'mr-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ta-Taml': {\n _desired: 'ta-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'te-Telu': {\n _desired: 'te-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'zh-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Latn',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hani',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hira',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Kana',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hrkt',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Hrkt': {\n _desired: 'ja-Hira',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Hrkt': {\n _desired: 'ja-Kana',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Hani',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Hang',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Jamo',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Hang': {\n _desired: 'ko-Jamo',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n '*-*': {\n _desired: '*-*',\n _distance: '50',\n },\n },\n {\n 'ar-*-$maghreb': {\n _desired: 'ar-*-$maghreb',\n _distance: '4',\n },\n },\n {\n 'ar-*-$!maghreb': {\n _desired: 'ar-*-$!maghreb',\n _distance: '4',\n },\n },\n {\n 'ar-*-*': {\n _desired: 'ar-*-*',\n _distance: '5',\n },\n },\n {\n 'en-*-$enUS': {\n _desired: 'en-*-$enUS',\n _distance: '4',\n },\n },\n {\n 'en-*-GB': {\n _desired: 'en-*-$!enUS',\n _distance: '3',\n },\n },\n {\n 'en-*-$!enUS': {\n _desired: 'en-*-$!enUS',\n _distance: '4',\n },\n },\n {\n 'en-*-*': {\n _desired: 'en-*-*',\n _distance: '5',\n },\n },\n {\n 'es-*-$americas': {\n _desired: 'es-*-$americas',\n _distance: '4',\n },\n },\n {\n 'es-*-$!americas': {\n _desired: 'es-*-$!americas',\n _distance: '4',\n },\n },\n {\n 'es-*-*': {\n _desired: 'es-*-*',\n _distance: '5',\n },\n },\n {\n 'pt-*-$americas': {\n _desired: 'pt-*-$americas',\n _distance: '4',\n },\n },\n {\n 'pt-*-$!americas': {\n _desired: 'pt-*-$!americas',\n _distance: '4',\n },\n },\n {\n 'pt-*-*': {\n _desired: 'pt-*-*',\n _distance: '5',\n },\n },\n {\n 'zh-Hant-$cnsar': {\n _desired: 'zh-Hant-$cnsar',\n _distance: '4',\n },\n },\n {\n 'zh-Hant-$!cnsar': {\n _desired: 'zh-Hant-$!cnsar',\n _distance: '4',\n },\n },\n {\n 'zh-Hant-*': {\n _desired: 'zh-Hant-*',\n _distance: '5',\n },\n },\n {\n '*-*-*': {\n _desired: '*-*-*',\n _distance: '4',\n },\n },\n ],\n },\n },\n};\n","// This file is generated from regions-gen.ts\nexport var regions = {\n \"001\": [\n \"001\",\n \"001-status-grouping\",\n \"002\",\n \"005\",\n \"009\",\n \"011\",\n \"013\",\n \"014\",\n \"015\",\n \"017\",\n \"018\",\n \"019\",\n \"021\",\n \"029\",\n \"030\",\n \"034\",\n \"035\",\n \"039\",\n \"053\",\n \"054\",\n \"057\",\n \"061\",\n \"142\",\n \"143\",\n \"145\",\n \"150\",\n \"151\",\n \"154\",\n \"155\",\n \"AC\",\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CP\",\n \"CQ\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DG\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EA\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"EU\",\n \"EZ\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"IC\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"QO\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TA\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"UN\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"XK\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"002\": [\n \"002\",\n \"002-status-grouping\",\n \"011\",\n \"014\",\n \"015\",\n \"017\",\n \"018\",\n \"202\",\n \"AO\",\n \"BF\",\n \"BI\",\n \"BJ\",\n \"BW\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CI\",\n \"CM\",\n \"CV\",\n \"DJ\",\n \"DZ\",\n \"EA\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ET\",\n \"GA\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GW\",\n \"IC\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"LR\",\n \"LS\",\n \"LY\",\n \"MA\",\n \"MG\",\n \"ML\",\n \"MR\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SD\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"SO\",\n \"SS\",\n \"ST\",\n \"SZ\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TN\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"003\": [\n \"003\",\n \"013\",\n \"021\",\n \"029\",\n \"AG\",\n \"AI\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BM\",\n \"BQ\",\n \"BS\",\n \"BZ\",\n \"CA\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"GD\",\n \"GL\",\n \"GP\",\n \"GT\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PM\",\n \"PR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"US\",\n \"VC\",\n \"VG\",\n \"VI\"\n ],\n \"005\": [\n \"005\",\n \"AR\",\n \"BO\",\n \"BR\",\n \"BV\",\n \"CL\",\n \"CO\",\n \"EC\",\n \"FK\",\n \"GF\",\n \"GS\",\n \"GY\",\n \"PE\",\n \"PY\",\n \"SR\",\n \"UY\",\n \"VE\"\n ],\n \"009\": [\n \"009\",\n \"053\",\n \"054\",\n \"057\",\n \"061\",\n \"AC\",\n \"AQ\",\n \"AS\",\n \"AU\",\n \"CC\",\n \"CK\",\n \"CP\",\n \"CX\",\n \"DG\",\n \"FJ\",\n \"FM\",\n \"GU\",\n \"HM\",\n \"KI\",\n \"MH\",\n \"MP\",\n \"NC\",\n \"NF\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"PF\",\n \"PG\",\n \"PN\",\n \"PW\",\n \"QO\",\n \"SB\",\n \"TA\",\n \"TK\",\n \"TO\",\n \"TV\",\n \"UM\",\n \"VU\",\n \"WF\",\n \"WS\"\n ],\n \"011\": [\n \"011\",\n \"BF\",\n \"BJ\",\n \"CI\",\n \"CV\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GW\",\n \"LR\",\n \"ML\",\n \"MR\",\n \"NE\",\n \"NG\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"TG\"\n ],\n \"013\": [\n \"013\",\n \"BZ\",\n \"CR\",\n \"GT\",\n \"HN\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"SV\"\n ],\n \"014\": [\n \"014\",\n \"BI\",\n \"DJ\",\n \"ER\",\n \"ET\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"MG\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SO\",\n \"SS\",\n \"TF\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZM\",\n \"ZW\"\n ],\n \"015\": [\n \"015\",\n \"DZ\",\n \"EA\",\n \"EG\",\n \"EH\",\n \"IC\",\n \"LY\",\n \"MA\",\n \"SD\",\n \"TN\"\n ],\n \"017\": [\n \"017\",\n \"AO\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CM\",\n \"GA\",\n \"GQ\",\n \"ST\",\n \"TD\"\n ],\n \"018\": [\n \"018\",\n \"BW\",\n \"LS\",\n \"NA\",\n \"SZ\",\n \"ZA\"\n ],\n \"019\": [\n \"003\",\n \"005\",\n \"013\",\n \"019\",\n \"019-status-grouping\",\n \"021\",\n \"029\",\n \"419\",\n \"AG\",\n \"AI\",\n \"AR\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BM\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BV\",\n \"BZ\",\n \"CA\",\n \"CL\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"EC\",\n \"FK\",\n \"GD\",\n \"GF\",\n \"GL\",\n \"GP\",\n \"GS\",\n \"GT\",\n \"GY\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PE\",\n \"PM\",\n \"PR\",\n \"PY\",\n \"SR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"US\",\n \"UY\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\"\n ],\n \"021\": [\n \"021\",\n \"BM\",\n \"CA\",\n \"GL\",\n \"PM\",\n \"US\"\n ],\n \"029\": [\n \"029\",\n \"AG\",\n \"AI\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BQ\",\n \"BS\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"GD\",\n \"GP\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"PR\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"VC\",\n \"VG\",\n \"VI\"\n ],\n \"030\": [\n \"030\",\n \"CN\",\n \"HK\",\n \"JP\",\n \"KP\",\n \"KR\",\n \"MN\",\n \"MO\",\n \"TW\"\n ],\n \"034\": [\n \"034\",\n \"AF\",\n \"BD\",\n \"BT\",\n \"IN\",\n \"IR\",\n \"LK\",\n \"MV\",\n \"NP\",\n \"PK\"\n ],\n \"035\": [\n \"035\",\n \"BN\",\n \"ID\",\n \"KH\",\n \"LA\",\n \"MM\",\n \"MY\",\n \"PH\",\n \"SG\",\n \"TH\",\n \"TL\",\n \"VN\"\n ],\n \"039\": [\n \"039\",\n \"AD\",\n \"AL\",\n \"BA\",\n \"ES\",\n \"GI\",\n \"GR\",\n \"HR\",\n \"IT\",\n \"ME\",\n \"MK\",\n \"MT\",\n \"PT\",\n \"RS\",\n \"SI\",\n \"SM\",\n \"VA\",\n \"XK\"\n ],\n \"053\": [\n \"053\",\n \"AU\",\n \"CC\",\n \"CX\",\n \"HM\",\n \"NF\",\n \"NZ\"\n ],\n \"054\": [\n \"054\",\n \"FJ\",\n \"NC\",\n \"PG\",\n \"SB\",\n \"VU\"\n ],\n \"057\": [\n \"057\",\n \"FM\",\n \"GU\",\n \"KI\",\n \"MH\",\n \"MP\",\n \"NR\",\n \"PW\",\n \"UM\"\n ],\n \"061\": [\n \"061\",\n \"AS\",\n \"CK\",\n \"NU\",\n \"PF\",\n \"PN\",\n \"TK\",\n \"TO\",\n \"TV\",\n \"WF\",\n \"WS\"\n ],\n \"142\": [\n \"030\",\n \"034\",\n \"035\",\n \"142\",\n \"143\",\n \"145\",\n \"AE\",\n \"AF\",\n \"AM\",\n \"AZ\",\n \"BD\",\n \"BH\",\n \"BN\",\n \"BT\",\n \"CN\",\n \"CY\",\n \"GE\",\n \"HK\",\n \"ID\",\n \"IL\",\n \"IN\",\n \"IQ\",\n \"IR\",\n \"JO\",\n \"JP\",\n \"KG\",\n \"KH\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LK\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MV\",\n \"MY\",\n \"NP\",\n \"OM\",\n \"PH\",\n \"PK\",\n \"PS\",\n \"QA\",\n \"SA\",\n \"SG\",\n \"SY\",\n \"TH\",\n \"TJ\",\n \"TL\",\n \"TM\",\n \"TR\",\n \"TW\",\n \"UZ\",\n \"VN\",\n \"YE\"\n ],\n \"143\": [\n \"143\",\n \"KG\",\n \"KZ\",\n \"TJ\",\n \"TM\",\n \"UZ\"\n ],\n \"145\": [\n \"145\",\n \"AE\",\n \"AM\",\n \"AZ\",\n \"BH\",\n \"CY\",\n \"GE\",\n \"IL\",\n \"IQ\",\n \"JO\",\n \"KW\",\n \"LB\",\n \"OM\",\n \"PS\",\n \"QA\",\n \"SA\",\n \"SY\",\n \"TR\",\n \"YE\"\n ],\n \"150\": [\n \"039\",\n \"150\",\n \"151\",\n \"154\",\n \"155\",\n \"AD\",\n \"AL\",\n \"AT\",\n \"AX\",\n \"BA\",\n \"BE\",\n \"BG\",\n \"BY\",\n \"CH\",\n \"CQ\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"EE\",\n \"ES\",\n \"FI\",\n \"FO\",\n \"FR\",\n \"GB\",\n \"GG\",\n \"GI\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IM\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"LI\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MK\",\n \"MT\",\n \"NL\",\n \"NO\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"SE\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SM\",\n \"UA\",\n \"VA\",\n \"XK\"\n ],\n \"151\": [\n \"151\",\n \"BG\",\n \"BY\",\n \"CZ\",\n \"HU\",\n \"MD\",\n \"PL\",\n \"RO\",\n \"RU\",\n \"SK\",\n \"UA\"\n ],\n \"154\": [\n \"154\",\n \"AX\",\n \"CQ\",\n \"DK\",\n \"EE\",\n \"FI\",\n \"FO\",\n \"GB\",\n \"GG\",\n \"IE\",\n \"IM\",\n \"IS\",\n \"JE\",\n \"LT\",\n \"LV\",\n \"NO\",\n \"SE\",\n \"SJ\"\n ],\n \"155\": [\n \"155\",\n \"AT\",\n \"BE\",\n \"CH\",\n \"DE\",\n \"FR\",\n \"LI\",\n \"LU\",\n \"MC\",\n \"NL\"\n ],\n \"202\": [\n \"011\",\n \"014\",\n \"017\",\n \"018\",\n \"202\",\n \"AO\",\n \"BF\",\n \"BI\",\n \"BJ\",\n \"BW\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CI\",\n \"CM\",\n \"CV\",\n \"DJ\",\n \"ER\",\n \"ET\",\n \"GA\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GW\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"LR\",\n \"LS\",\n \"MG\",\n \"ML\",\n \"MR\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"SO\",\n \"SS\",\n \"ST\",\n \"SZ\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"419\": [\n \"005\",\n \"013\",\n \"029\",\n \"419\",\n \"AG\",\n \"AI\",\n \"AR\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BV\",\n \"BZ\",\n \"CL\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"EC\",\n \"FK\",\n \"GD\",\n \"GF\",\n \"GP\",\n \"GS\",\n \"GT\",\n \"GY\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PE\",\n \"PR\",\n \"PY\",\n \"SR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"UY\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\"\n ],\n \"EU\": [\n \"AT\",\n \"BE\",\n \"BG\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"EE\",\n \"ES\",\n \"EU\",\n \"FI\",\n \"FR\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IT\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MT\",\n \"NL\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"SE\",\n \"SI\",\n \"SK\"\n ],\n \"EZ\": [\n \"AT\",\n \"BE\",\n \"CY\",\n \"DE\",\n \"EE\",\n \"ES\",\n \"EZ\",\n \"FI\",\n \"FR\",\n \"GR\",\n \"IE\",\n \"IT\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MT\",\n \"NL\",\n \"PT\",\n \"SI\",\n \"SK\"\n ],\n \"QO\": [\n \"AC\",\n \"AQ\",\n \"CP\",\n \"DG\",\n \"QO\",\n \"TA\"\n ],\n \"UN\": [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AR\",\n \"AT\",\n \"AU\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BN\",\n \"BO\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FM\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GR\",\n \"GT\",\n \"GW\",\n \"GY\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IN\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MR\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SI\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SY\",\n \"SZ\",\n \"TD\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UN\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VC\",\n \"VE\",\n \"VN\",\n \"VU\",\n \"WS\",\n \"YE\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ]\n};\n","import { __spreadArray } from \"tslib\";\nimport { data as jsonData } from './languageMatching';\nimport { regions } from './regions.generated';\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n// This is effectively 2 languages in 2 different regions in the same cluster\nvar DEFAULT_MATCHING_THRESHOLD = 838;\nvar PROCESSED_DATA;\nfunction processData() {\n var _a, _b;\n if (!PROCESSED_DATA) {\n var paradigmLocales = (_b = (_a = jsonData.supplemental.languageMatching['written-new'][0]) === null || _a === void 0 ? void 0 : _a.paradigmLocales) === null || _b === void 0 ? void 0 : _b._locales.split(' ');\n var matchVariables = jsonData.supplemental.languageMatching['written-new'].slice(1, 5);\n var data = jsonData.supplemental.languageMatching['written-new'].slice(5);\n var matches = data.map(function (d) {\n var key = Object.keys(d)[0];\n var value = d[key];\n return {\n supported: key,\n desired: value._desired,\n distance: +value._distance,\n oneway: value.oneway === 'true' ? true : false,\n };\n }, {});\n PROCESSED_DATA = {\n matches: matches,\n matchVariables: matchVariables.reduce(function (all, d) {\n var key = Object.keys(d)[0];\n var value = d[key];\n all[key.slice(1)] = value._value.split('+');\n return all;\n }, {}),\n paradigmLocales: __spreadArray(__spreadArray([], paradigmLocales, true), paradigmLocales.map(function (l) {\n return new Intl.Locale(l.replace(/_/g, '-')).maximize().toString();\n }), true),\n };\n }\n return PROCESSED_DATA;\n}\nfunction isMatched(locale, languageMatchInfoLocale, matchVariables) {\n var _a = languageMatchInfoLocale.split('-'), language = _a[0], script = _a[1], region = _a[2];\n var matches = true;\n if (region && region[0] === '$') {\n var shouldInclude = region[1] !== '!';\n var matchRegions = shouldInclude\n ? matchVariables[region.slice(1)]\n : matchVariables[region.slice(2)];\n var expandedMatchedRegions = matchRegions\n .map(function (r) { return regions[r] || [r]; })\n .reduce(function (all, list) { return __spreadArray(__spreadArray([], all, true), list, true); }, []);\n matches && (matches = !(expandedMatchedRegions.indexOf(locale.region || '') > 1 !=\n shouldInclude));\n }\n else {\n matches && (matches = locale.region\n ? region === '*' || region === locale.region\n : true);\n }\n matches && (matches = locale.script ? script === '*' || script === locale.script : true);\n matches && (matches = locale.language\n ? language === '*' || language === locale.language\n : true);\n return matches;\n}\nfunction serializeLSR(lsr) {\n return [lsr.language, lsr.script, lsr.region].filter(Boolean).join('-');\n}\nfunction findMatchingDistanceForLSR(desired, supported, data) {\n for (var _i = 0, _a = data.matches; _i < _a.length; _i++) {\n var d = _a[_i];\n var matches = isMatched(desired, d.desired, data.matchVariables) &&\n isMatched(supported, d.supported, data.matchVariables);\n if (!d.oneway && !matches) {\n matches =\n isMatched(desired, d.supported, data.matchVariables) &&\n isMatched(supported, d.desired, data.matchVariables);\n }\n if (matches) {\n var distance = d.distance * 10;\n if (data.paradigmLocales.indexOf(serializeLSR(desired)) > -1 !=\n data.paradigmLocales.indexOf(serializeLSR(supported)) > -1) {\n return distance - 1;\n }\n return distance;\n }\n }\n throw new Error('No matching distance found');\n}\nexport function findMatchingDistance(desired, supported) {\n var desiredLocale = new Intl.Locale(desired).maximize();\n var supportedLocale = new Intl.Locale(supported).maximize();\n var desiredLSR = {\n language: desiredLocale.language,\n script: desiredLocale.script || '',\n region: desiredLocale.region || '',\n };\n var supportedLSR = {\n language: supportedLocale.language,\n script: supportedLocale.script || '',\n region: supportedLocale.region || '',\n };\n var matchingDistance = 0;\n var data = processData();\n if (desiredLSR.language !== supportedLSR.language) {\n matchingDistance += findMatchingDistanceForLSR({\n language: desiredLocale.language,\n script: '',\n region: '',\n }, {\n language: supportedLocale.language,\n script: '',\n region: '',\n }, data);\n }\n if (desiredLSR.script !== supportedLSR.script) {\n matchingDistance += findMatchingDistanceForLSR({\n language: desiredLocale.language,\n script: desiredLSR.script,\n region: '',\n }, {\n language: supportedLocale.language,\n script: desiredLSR.script,\n region: '',\n }, data);\n }\n if (desiredLSR.region !== supportedLSR.region) {\n matchingDistance += findMatchingDistanceForLSR(desiredLSR, supportedLSR, data);\n }\n return matchingDistance;\n}\nexport function findBestMatch(requestedLocales, supportedLocales, threshold) {\n if (threshold === void 0) { threshold = DEFAULT_MATCHING_THRESHOLD; }\n var lowestDistance = Infinity;\n var result = {\n matchedDesiredLocale: '',\n distances: {},\n };\n requestedLocales.forEach(function (desired, i) {\n if (!result.distances[desired]) {\n result.distances[desired] = {};\n }\n supportedLocales.forEach(function (supported) {\n // Add some weight to the distance based on the order of the supported locales\n // Add penalty for the order of the requested locales, which currently is 0 since ECMA-402\n // doesn't really have room for weighted locales like `en; q=0.1`\n var distance = findMatchingDistance(desired, supported) + 0 + i * 40;\n result.distances[desired][supported] = distance;\n if (distance < lowestDistance) {\n lowestDistance = distance;\n result.matchedDesiredLocale = desired;\n result.matchedSupportedLocale = supported;\n }\n });\n });\n if (lowestDistance >= threshold) {\n result.matchedDesiredLocale = undefined;\n result.matchedSupportedLocale = undefined;\n }\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX, findBestMatch } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var foundLocale;\n var extension;\n var noExtensionLocales = [];\n var noExtensionLocaleMap = requestedLocales.reduce(function (all, l) {\n var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n noExtensionLocales.push(noExtensionLocale);\n all[noExtensionLocale] = l;\n return all;\n }, {});\n var result = findBestMatch(noExtensionLocales, availableLocales);\n if (result.matchedSupportedLocale && result.matchedDesiredLocale) {\n foundLocale = result.matchedSupportedLocale;\n extension =\n noExtensionLocaleMap[result.matchedDesiredLocale].slice(result.matchedDesiredLocale.length) || undefined;\n }\n if (!foundLocale) {\n return { locale: getDefaultLocale() };\n }\n return {\n locale: foundLocale,\n extension: extension,\n };\n}\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (availableLocales.indexOf(candidate) > -1) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nexport function UnicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\".concat(key, \"-\");\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\".concat(key);\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\n","import { BestFitMatcher } from './BestFitMatcher';\nimport { LookupMatcher } from './LookupMatcher';\nimport { UnicodeExtensionValue } from './UnicodeExtensionValue';\nimport { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = LookupMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n }\n else {\n r = BestFitMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n invariant(foundLocale in localeData, \"Missing locale data for \".concat(foundLocale));\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \".concat(key, \" must be an object\"));\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \".concat(key, \" must be an array\"));\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, \"value must be string or null but got \".concat(typeof value, \" in key \").concat(key));\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = UnicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\".concat(key, \"-\").concat(value);\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\".concat(key);\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = Intl.getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\n","import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';\nimport { ResolveLocale } from './abstract/ResolveLocale';\nexport function match(requestedLocales, availableLocales, defaultLocale, opts) {\n return ResolveLocale(availableLocales, CanonicalizeLocaleList(requestedLocales), {\n localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',\n }, [], {}, function () { return defaultLocale; }).locale;\n}\nexport { LookupSupportedLocales } from './abstract/LookupSupportedLocales';\nexport { ResolveLocale } from './abstract/ResolveLocale';\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetOperands = GetOperands;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-getoperands\n * @param s\n */\nfunction GetOperands(s) {\n (0, ecma402_abstract_1.invariant)(typeof s === 'string', \"GetOperands should have been called with a string\");\n var n = (0, ecma402_abstract_1.ToNumber)(s);\n (0, ecma402_abstract_1.invariant)(isFinite(n), 'n should be finite');\n var dp = s.indexOf('.');\n var iv;\n var f;\n var v;\n var fv = '';\n if (dp === -1) {\n iv = n;\n f = 0;\n v = 0;\n }\n else {\n iv = s.slice(0, dp);\n fv = s.slice(dp, s.length);\n f = (0, ecma402_abstract_1.ToNumber)(fv);\n v = fv.length;\n }\n var i = Math.abs((0, ecma402_abstract_1.ToNumber)(iv));\n var w;\n var t;\n if (f !== 0) {\n var ft = fv.replace(/0+$/, '');\n w = ft.length;\n t = (0, ecma402_abstract_1.ToNumber)(ft);\n }\n else {\n w = 0;\n t = 0;\n }\n return {\n Number: n,\n IntegerDigits: i,\n NumberOfFractionDigits: v,\n NumberOfFractionDigitsWithoutTrailing: w,\n FractionDigits: f,\n FractionDigitsWithoutTrailing: t,\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InitializePluralRules = InitializePluralRules;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nfunction InitializePluralRules(pl, locales, options, _a) {\n var availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getInternalSlots = _a.getInternalSlots;\n var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);\n var opt = Object.create(null);\n var opts = (0, ecma402_abstract_1.CoerceOptionsToObject)(options);\n var internalSlots = getInternalSlots(pl);\n internalSlots.initializedPluralRules = true;\n var matcher = (0, ecma402_abstract_1.GetOption)(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n internalSlots.type = (0, ecma402_abstract_1.GetOption)(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal');\n (0, ecma402_abstract_1.SetNumberFormatDigitOptions)(internalSlots, opts, 0, 3, 'standard');\n var r = (0, intl_localematcher_1.ResolveLocale)(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n internalSlots.locale = r.locale;\n return pl;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResolvePlural = ResolvePlural;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar GetOperands_1 = require(\"./GetOperands\");\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural\n * @param pl\n * @param n\n * @param PluralRuleSelect Has to pass in bc it's implementation-specific\n */\nfunction ResolvePlural(pl, n, _a) {\n var getInternalSlots = _a.getInternalSlots, PluralRuleSelect = _a.PluralRuleSelect;\n var internalSlots = getInternalSlots(pl);\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(internalSlots) === 'Object', 'pl has to be an object');\n (0, ecma402_abstract_1.invariant)('initializedPluralRules' in internalSlots, 'pluralrules must be initialized');\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(n) === 'Number', 'n must be a number');\n if (!isFinite(n)) {\n return 'other';\n }\n var locale = internalSlots.locale, type = internalSlots.type;\n var res = (0, ecma402_abstract_1.FormatNumericToString)(internalSlots, n);\n var s = res.formattedString;\n var operands = (0, GetOperands_1.GetOperands)(s);\n return PluralRuleSelect(locale, type, n, operands);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getInternalSlots;\nvar internalSlotMap = new WeakMap();\nfunction getInternalSlots(x) {\n var internalSlots = internalSlotMap.get(x);\n if (!internalSlots) {\n internalSlots = Object.create(null);\n internalSlotMap.set(x, internalSlots);\n }\n return internalSlots;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PluralRules = void 0;\nvar tslib_1 = require(\"tslib\");\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar InitializePluralRules_1 = require(\"./abstract/InitializePluralRules\");\nvar ResolvePlural_1 = require(\"./abstract/ResolvePlural\");\nvar get_internal_slots_1 = tslib_1.__importDefault(require(\"./get_internal_slots\"));\nfunction validateInstance(instance, method) {\n if (!(instance instanceof PluralRules)) {\n throw new TypeError(\"Method Intl.PluralRules.prototype.\".concat(method, \" called on incompatible receiver \").concat(String(instance)));\n }\n}\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-pluralruleselect\n * @param locale\n * @param type\n * @param _n\n * @param param3\n */\nfunction PluralRuleSelect(locale, type, _n, _a) {\n var IntegerDigits = _a.IntegerDigits, NumberOfFractionDigits = _a.NumberOfFractionDigits, FractionDigits = _a.FractionDigits;\n return PluralRules.localeData[locale].fn(NumberOfFractionDigits\n ? \"\".concat(IntegerDigits, \".\").concat(FractionDigits)\n : IntegerDigits, type === 'ordinal');\n}\nvar PluralRules = /** @class */ (function () {\n function PluralRules(locales, options) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof PluralRules ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.PluralRules must be called with 'new'\");\n }\n return (0, InitializePluralRules_1.InitializePluralRules)(this, locales, options, {\n availableLocales: PluralRules.availableLocales,\n relevantExtensionKeys: PluralRules.relevantExtensionKeys,\n localeData: PluralRules.localeData,\n getDefaultLocale: PluralRules.getDefaultLocale,\n getInternalSlots: get_internal_slots_1.default,\n });\n }\n PluralRules.prototype.resolvedOptions = function () {\n validateInstance(this, 'resolvedOptions');\n var opts = Object.create(null);\n var internalSlots = (0, get_internal_slots_1.default)(this);\n opts.locale = internalSlots.locale;\n opts.type = internalSlots.type;\n [\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n ].forEach(function (field) {\n var val = internalSlots[field];\n if (val !== undefined) {\n opts[field] = val;\n }\n });\n opts.pluralCategories = tslib_1.__spreadArray([], PluralRules.localeData[opts.locale].categories[opts.type], true);\n return opts;\n };\n PluralRules.prototype.select = function (val) {\n var pr = this;\n validateInstance(pr, 'select');\n var n = (0, ecma402_abstract_1.ToNumber)(val);\n return (0, ResolvePlural_1.ResolvePlural)(pr, n, { getInternalSlots: get_internal_slots_1.default, PluralRuleSelect: PluralRuleSelect });\n };\n PluralRules.prototype.toString = function () {\n return '[object Intl.PluralRules]';\n };\n PluralRules.supportedLocalesOf = function (locales, options) {\n return (0, ecma402_abstract_1.SupportedLocales)(PluralRules.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);\n };\n PluralRules.__addLocaleData = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var _b = data_1[_a], d = _b.data, locale = _b.locale;\n PluralRules.localeData[locale] = d;\n PluralRules.availableLocales.add(locale);\n if (!PluralRules.__defaultLocale) {\n PluralRules.__defaultLocale = locale;\n }\n }\n };\n PluralRules.getDefaultLocale = function () {\n return PluralRules.__defaultLocale;\n };\n PluralRules.localeData = {};\n PluralRules.availableLocales = new Set();\n PluralRules.__defaultLocale = '';\n PluralRules.relevantExtensionKeys = [];\n PluralRules.polyfilled = true;\n return PluralRules;\n}());\nexports.PluralRules = PluralRules;\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(PluralRules.prototype, Symbol.toStringTag, {\n value: 'Intl.PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n try {\n // https://github.com/tc39/test262/blob/master/test/intl402/PluralRules/length.js\n Object.defineProperty(PluralRules, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n catch (error) {\n // IE 11 sets Function.prototype.length to be non-configurable which will cause the\n // above Object.defineProperty to throw an error.\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(PluralRules.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(PluralRules.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(PluralRules, 'name', {\n value: 'PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (ex) {\n // Meta fixes for test262\n}\n","/* @generated */\n// prettier-ignore\nif (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {\n Intl.PluralRules.__addLocaleData({\"data\":{\"categories\":{\"cardinal\":[\"one\",\"other\"],\"ordinal\":[\"one\",\"two\",\"few\",\"other\"]},\"fn\":function(n, ord) {\n var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return n10 == 1 && n100 != 11 ? 'one'\n : n10 == 2 && n100 != 12 ? 'two'\n : n10 == 3 && n100 != 13 ? 'few'\n : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n}},\"locale\":\"en\"})\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _1 = require(\"./\");\nvar should_polyfill_1 = require(\"./should-polyfill\");\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n Object.defineProperty(Intl, 'PluralRules', {\n value: _1.PluralRules,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldPolyfill = shouldPolyfill;\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar supported_locales_generated_1 = require(\"./supported-locales.generated\");\nfunction supportedLocalesOf(locale) {\n if (!locale) {\n return true;\n }\n var locales = Array.isArray(locale) ? locale : [locale];\n return Intl.PluralRules.supportedLocalesOf(locales).length === locales.length;\n}\nfunction shouldPolyfill(locale) {\n if (locale === void 0) { locale = 'en'; }\n if (!('PluralRules' in Intl) ||\n new Intl.PluralRules('en', { minimumFractionDigits: 2 }).select(1) ===\n 'one' ||\n !supportedLocalesOf(locale)) {\n return locale ? (0, intl_localematcher_1.match)([locale], supported_locales_generated_1.supportedLocales, 'en') : undefined;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedLocales = void 0;\nexports.supportedLocales = [\"af\", \"ak\", \"am\", \"an\", \"ar\", \"ars\", \"as\", \"asa\", \"ast\", \"az\", \"bal\", \"be\", \"bem\", \"bez\", \"bg\", \"bho\", \"bm\", \"bn\", \"bo\", \"br\", \"brx\", \"bs\", \"ca\", \"ce\", \"ceb\", \"cgg\", \"chr\", \"ckb\", \"cs\", \"cy\", \"da\", \"de\", \"doi\", \"dsb\", \"dv\", \"dz\", \"ee\", \"el\", \"en\", \"eo\", \"es\", \"et\", \"eu\", \"fa\", \"ff\", \"fi\", \"fil\", \"fo\", \"fr\", \"fur\", \"fy\", \"ga\", \"gd\", \"gl\", \"gsw\", \"gu\", \"guw\", \"gv\", \"ha\", \"haw\", \"he\", \"hi\", \"hnj\", \"hr\", \"hsb\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"io\", \"is\", \"it\", \"iu\", \"ja\", \"jbo\", \"jgo\", \"jmc\", \"jv\", \"jw\", \"ka\", \"kab\", \"kaj\", \"kcg\", \"kde\", \"kea\", \"kk\", \"kkj\", \"kl\", \"km\", \"kn\", \"ko\", \"ks\", \"ksb\", \"ksh\", \"ku\", \"kw\", \"ky\", \"lag\", \"lb\", \"lg\", \"lij\", \"lkt\", \"ln\", \"lo\", \"lt\", \"lv\", \"mas\", \"mg\", \"mgo\", \"mk\", \"ml\", \"mn\", \"mo\", \"mr\", \"ms\", \"mt\", \"my\", \"nah\", \"naq\", \"nb\", \"nd\", \"ne\", \"nl\", \"nn\", \"nnh\", \"no\", \"nqo\", \"nr\", \"nso\", \"ny\", \"nyn\", \"om\", \"or\", \"os\", \"osa\", \"pa\", \"pap\", \"pcm\", \"pl\", \"prg\", \"ps\", \"pt\", \"pt-PT\", \"rm\", \"ro\", \"rof\", \"ru\", \"rwk\", \"sah\", \"saq\", \"sat\", \"sc\", \"scn\", \"sd\", \"sdh\", \"se\", \"seh\", \"ses\", \"sg\", \"sh\", \"shi\", \"si\", \"sk\", \"sl\", \"sma\", \"smi\", \"smj\", \"smn\", \"sms\", \"sn\", \"so\", \"sq\", \"sr\", \"ss\", \"ssy\", \"st\", \"su\", \"sv\", \"sw\", \"syr\", \"ta\", \"te\", \"teo\", \"th\", \"ti\", \"tig\", \"tk\", \"tl\", \"tn\", \"to\", \"tpi\", \"tr\", \"ts\", \"tzm\", \"ug\", \"uk\", \"und\", \"ur\", \"uz\", \"ve\", \"vi\", \"vo\", \"vun\", \"wa\", \"wae\", \"wo\", \"xh\", \"xog\", \"yi\", \"yo\", \"yue\", \"zh\", \"zu\"];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InitializeRelativeTimeFormat = InitializeRelativeTimeFormat;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;\nfunction InitializeRelativeTimeFormat(rtf, locales, options, _a) {\n var getInternalSlots = _a.getInternalSlots, availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale;\n var internalSlots = getInternalSlots(rtf);\n internalSlots.initializedRelativeTimeFormat = true;\n var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);\n var opt = Object.create(null);\n var opts = (0, ecma402_abstract_1.CoerceOptionsToObject)(options);\n var matcher = (0, ecma402_abstract_1.GetOption)(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = (0, ecma402_abstract_1.GetOption)(opts, \n // @ts-expect-error TS option is wack\n 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined) {\n if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {\n throw new RangeError(\"Invalid numbering system \".concat(numberingSystem));\n }\n }\n opt.nu = numberingSystem;\n var r = (0, intl_localematcher_1.ResolveLocale)(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n var locale = r.locale, nu = r.nu;\n internalSlots.locale = locale;\n internalSlots.style = (0, ecma402_abstract_1.GetOption)(opts, 'style', 'string', ['long', 'narrow', 'short'], 'long');\n internalSlots.numeric = (0, ecma402_abstract_1.GetOption)(opts, 'numeric', 'string', ['always', 'auto'], 'always');\n var fields = localeData[r.dataLocale];\n (0, ecma402_abstract_1.invariant)(!!fields, \"Missing locale data for \".concat(r.dataLocale));\n internalSlots.fields = fields;\n internalSlots.numberFormat = (0, ecma402_abstract_1.createMemoizedNumberFormat)(locales);\n internalSlots.pluralRules = (0, ecma402_abstract_1.createMemoizedPluralRules)(locales);\n internalSlots.numberingSystem = nu;\n return rtf;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MakePartsList = MakePartsList;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nfunction MakePartsList(pattern, unit, parts) {\n var patternParts = (0, ecma402_abstract_1.PartitionPattern)(pattern);\n var result = [];\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var patternPart = patternParts_1[_i];\n if (patternPart.type === 'literal') {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else {\n (0, ecma402_abstract_1.invariant)(patternPart.type === '0', \"Malformed pattern \".concat(pattern));\n for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {\n var part = parts_1[_a];\n result.push({\n type: part.type,\n value: part.value,\n unit: unit,\n });\n }\n }\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartitionRelativeTimePattern = PartitionRelativeTimePattern;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar SingularRelativeTimeUnit_1 = require(\"./SingularRelativeTimeUnit\");\nvar MakePartsList_1 = require(\"./MakePartsList\");\nfunction PartitionRelativeTimePattern(rtf, value, unit, _a) {\n var getInternalSlots = _a.getInternalSlots;\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(value) === 'Number', \"value must be number, instead got \".concat(typeof value), TypeError);\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(unit) === 'String', \"unit must be number, instead got \".concat(typeof value), TypeError);\n if (isNaN(value) || !isFinite(value)) {\n throw new RangeError(\"Invalid value \".concat(value));\n }\n var resolvedUnit = (0, SingularRelativeTimeUnit_1.SingularRelativeTimeUnit)(unit);\n var _b = getInternalSlots(rtf), fields = _b.fields, style = _b.style, numeric = _b.numeric, pluralRules = _b.pluralRules, numberFormat = _b.numberFormat;\n var entry = resolvedUnit;\n if (style === 'short') {\n entry = \"\".concat(resolvedUnit, \"-short\");\n }\n else if (style === 'narrow') {\n entry = \"\".concat(resolvedUnit, \"-narrow\");\n }\n if (!(entry in fields)) {\n entry = resolvedUnit;\n }\n var patterns = fields[entry];\n if (numeric === 'auto') {\n if ((0, ecma402_abstract_1.ToString)(value) in patterns) {\n return [\n {\n type: 'literal',\n value: patterns[(0, ecma402_abstract_1.ToString)(value)],\n },\n ];\n }\n }\n var tl = 'future';\n if ((0, ecma402_abstract_1.SameValue)(value, -0) || value < 0) {\n tl = 'past';\n }\n var po = patterns[tl];\n var fv = typeof numberFormat.formatToParts === 'function'\n ? numberFormat.formatToParts(Math.abs(value))\n : // TODO: If formatToParts is not supported, we assume the whole formatted\n // number is a part\n [\n {\n type: 'literal',\n value: numberFormat.format(Math.abs(value)),\n unit: unit,\n },\n ];\n var pr = pluralRules.select(value);\n var pattern = po[pr];\n return (0, MakePartsList_1.MakePartsList)(pattern, resolvedUnit, fv);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingularRelativeTimeUnit = SingularRelativeTimeUnit;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\n/**\n * https://tc39.es/proposal-intl-relative-time/#sec-singularrelativetimeunit\n * @param unit\n */\nfunction SingularRelativeTimeUnit(unit) {\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(unit) === 'String', 'unit must be a string');\n if (unit === 'seconds')\n return 'second';\n if (unit === 'minutes')\n return 'minute';\n if (unit === 'hours')\n return 'hour';\n if (unit === 'days')\n return 'day';\n if (unit === 'weeks')\n return 'week';\n if (unit === 'months')\n return 'month';\n if (unit === 'quarters')\n return 'quarter';\n if (unit === 'years')\n return 'year';\n if (unit !== 'second' &&\n unit !== 'minute' &&\n unit !== 'hour' &&\n unit !== 'day' &&\n unit !== 'week' &&\n unit !== 'month' &&\n unit !== 'quarter' &&\n unit !== 'year') {\n throw new RangeError('invalid unit');\n }\n return unit;\n}\n","\"use strict\";\n// Type-only circular import\n// eslint-disable-next-line import/no-cycle\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getInternalSlots;\nvar internalSlotMap = new WeakMap();\nfunction getInternalSlots(x) {\n var internalSlots = internalSlotMap.get(x);\n if (!internalSlots) {\n internalSlots = Object.create(null);\n internalSlotMap.set(x, internalSlots);\n }\n return internalSlots;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar InitializeRelativeTimeFormat_1 = require(\"./abstract/InitializeRelativeTimeFormat\");\nvar PartitionRelativeTimePattern_1 = require(\"./abstract/PartitionRelativeTimePattern\");\nvar get_internal_slots_1 = tslib_1.__importDefault(require(\"./get_internal_slots\"));\nvar RelativeTimeFormat = /** @class */ (function () {\n function RelativeTimeFormat(locales, options) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof RelativeTimeFormat ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.RelativeTimeFormat must be called with 'new'\");\n }\n return (0, InitializeRelativeTimeFormat_1.InitializeRelativeTimeFormat)(this, locales, options, {\n getInternalSlots: get_internal_slots_1.default,\n availableLocales: RelativeTimeFormat.availableLocales,\n relevantExtensionKeys: RelativeTimeFormat.relevantExtensionKeys,\n localeData: RelativeTimeFormat.localeData,\n getDefaultLocale: RelativeTimeFormat.getDefaultLocale,\n });\n }\n RelativeTimeFormat.prototype.format = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('format was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('format was called on a invalid context');\n }\n return (0, PartitionRelativeTimePattern_1.PartitionRelativeTimePattern)(this, Number(value), (0, ecma402_abstract_1.ToString)(unit), {\n getInternalSlots: get_internal_slots_1.default,\n })\n .map(function (el) { return el.value; })\n .join('');\n };\n RelativeTimeFormat.prototype.formatToParts = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('formatToParts was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('formatToParts was called on a invalid context');\n }\n return (0, PartitionRelativeTimePattern_1.PartitionRelativeTimePattern)(this, Number(value), (0, ecma402_abstract_1.ToString)(unit), { getInternalSlots: get_internal_slots_1.default });\n };\n RelativeTimeFormat.prototype.resolvedOptions = function () {\n if (typeof this !== 'object') {\n throw new TypeError('resolvedOptions was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('resolvedOptions was called on a invalid context');\n }\n // test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/type.js\n return {\n locale: internalSlots.locale,\n style: internalSlots.style,\n numeric: internalSlots.numeric,\n numberingSystem: internalSlots.numberingSystem,\n };\n };\n RelativeTimeFormat.supportedLocalesOf = function (locales, options) {\n return (0, ecma402_abstract_1.SupportedLocales)(RelativeTimeFormat.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);\n };\n RelativeTimeFormat.__addLocaleData = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var _b = data_1[_a], d = _b.data, locale = _b.locale;\n var minimizedLocale = new Intl.Locale(locale)\n .minimize()\n .toString();\n RelativeTimeFormat.localeData[locale] = RelativeTimeFormat.localeData[minimizedLocale] = d;\n RelativeTimeFormat.availableLocales.add(minimizedLocale);\n RelativeTimeFormat.availableLocales.add(locale);\n if (!RelativeTimeFormat.__defaultLocale) {\n RelativeTimeFormat.__defaultLocale = minimizedLocale;\n }\n }\n };\n RelativeTimeFormat.getDefaultLocale = function () {\n return RelativeTimeFormat.__defaultLocale;\n };\n RelativeTimeFormat.localeData = {};\n RelativeTimeFormat.availableLocales = new Set();\n RelativeTimeFormat.__defaultLocale = '';\n RelativeTimeFormat.relevantExtensionKeys = ['nu'];\n RelativeTimeFormat.polyfilled = true;\n return RelativeTimeFormat;\n}());\nexports.default = RelativeTimeFormat;\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {\n value: 'Intl.RelativeTimeFormat',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(RelativeTimeFormat.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n","/* @generated */\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\n \"data\": {\n \"day\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0} day\",\n \"other\": \"in {0} days\"\n },\n \"past\": {\n \"one\": \"{0} day ago\",\n \"other\": \"{0} days ago\"\n }\n },\n \"day-narrow\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0}d\",\n \"other\": \"in {0}d\"\n },\n \"past\": {\n \"one\": \"{0}d ago\",\n \"other\": \"{0}d ago\"\n }\n },\n \"day-short\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0} day\",\n \"other\": \"in {0} days\"\n },\n \"past\": {\n \"one\": \"{0} day ago\",\n \"other\": \"{0} days ago\"\n }\n },\n \"hour\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0} hour\",\n \"other\": \"in {0} hours\"\n },\n \"past\": {\n \"one\": \"{0} hour ago\",\n \"other\": \"{0} hours ago\"\n }\n },\n \"hour-narrow\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0}h\",\n \"other\": \"in {0}h\"\n },\n \"past\": {\n \"one\": \"{0}h ago\",\n \"other\": \"{0}h ago\"\n }\n },\n \"hour-short\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0} hr.\",\n \"other\": \"in {0} hr.\"\n },\n \"past\": {\n \"one\": \"{0} hr. ago\",\n \"other\": \"{0} hr. ago\"\n }\n },\n \"minute\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0} minute\",\n \"other\": \"in {0} minutes\"\n },\n \"past\": {\n \"one\": \"{0} minute ago\",\n \"other\": \"{0} minutes ago\"\n }\n },\n \"minute-narrow\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0}m\",\n \"other\": \"in {0}m\"\n },\n \"past\": {\n \"one\": \"{0}m ago\",\n \"other\": \"{0}m ago\"\n }\n },\n \"minute-short\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0} min.\",\n \"other\": \"in {0} min.\"\n },\n \"past\": {\n \"one\": \"{0} min. ago\",\n \"other\": \"{0} min. ago\"\n }\n },\n \"month\": {\n \"-1\": \"last month\",\n \"0\": \"this month\",\n \"1\": \"next month\",\n \"future\": {\n \"one\": \"in {0} month\",\n \"other\": \"in {0} months\"\n },\n \"past\": {\n \"one\": \"{0} month ago\",\n \"other\": \"{0} months ago\"\n }\n },\n \"month-narrow\": {\n \"-1\": \"last mo.\",\n \"0\": \"this mo.\",\n \"1\": \"next mo.\",\n \"future\": {\n \"one\": \"in {0}mo\",\n \"other\": \"in {0}mo\"\n },\n \"past\": {\n \"one\": \"{0}mo ago\",\n \"other\": \"{0}mo ago\"\n }\n },\n \"month-short\": {\n \"-1\": \"last mo.\",\n \"0\": \"this mo.\",\n \"1\": \"next mo.\",\n \"future\": {\n \"one\": \"in {0} mo.\",\n \"other\": \"in {0} mo.\"\n },\n \"past\": {\n \"one\": \"{0} mo. ago\",\n \"other\": \"{0} mo. ago\"\n }\n },\n \"nu\": [\n \"latn\"\n ],\n \"quarter\": {\n \"-1\": \"last quarter\",\n \"0\": \"this quarter\",\n \"1\": \"next quarter\",\n \"future\": {\n \"one\": \"in {0} quarter\",\n \"other\": \"in {0} quarters\"\n },\n \"past\": {\n \"one\": \"{0} quarter ago\",\n \"other\": \"{0} quarters ago\"\n }\n },\n \"quarter-narrow\": {\n \"-1\": \"last qtr.\",\n \"0\": \"this qtr.\",\n \"1\": \"next qtr.\",\n \"future\": {\n \"one\": \"in {0}q\",\n \"other\": \"in {0}q\"\n },\n \"past\": {\n \"one\": \"{0}q ago\",\n \"other\": \"{0}q ago\"\n }\n },\n \"quarter-short\": {\n \"-1\": \"last qtr.\",\n \"0\": \"this qtr.\",\n \"1\": \"next qtr.\",\n \"future\": {\n \"one\": \"in {0} qtr.\",\n \"other\": \"in {0} qtrs.\"\n },\n \"past\": {\n \"one\": \"{0} qtr. ago\",\n \"other\": \"{0} qtrs. ago\"\n }\n },\n \"second\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0} second\",\n \"other\": \"in {0} seconds\"\n },\n \"past\": {\n \"one\": \"{0} second ago\",\n \"other\": \"{0} seconds ago\"\n }\n },\n \"second-narrow\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0}s\",\n \"other\": \"in {0}s\"\n },\n \"past\": {\n \"one\": \"{0}s ago\",\n \"other\": \"{0}s ago\"\n }\n },\n \"second-short\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0} sec.\",\n \"other\": \"in {0} sec.\"\n },\n \"past\": {\n \"one\": \"{0} sec. ago\",\n \"other\": \"{0} sec. ago\"\n }\n },\n \"week\": {\n \"-1\": \"last week\",\n \"0\": \"this week\",\n \"1\": \"next week\",\n \"future\": {\n \"one\": \"in {0} week\",\n \"other\": \"in {0} weeks\"\n },\n \"past\": {\n \"one\": \"{0} week ago\",\n \"other\": \"{0} weeks ago\"\n }\n },\n \"week-narrow\": {\n \"-1\": \"last wk.\",\n \"0\": \"this wk.\",\n \"1\": \"next wk.\",\n \"future\": {\n \"one\": \"in {0}w\",\n \"other\": \"in {0}w\"\n },\n \"past\": {\n \"one\": \"{0}w ago\",\n \"other\": \"{0}w ago\"\n }\n },\n \"week-short\": {\n \"-1\": \"last wk.\",\n \"0\": \"this wk.\",\n \"1\": \"next wk.\",\n \"future\": {\n \"one\": \"in {0} wk.\",\n \"other\": \"in {0} wk.\"\n },\n \"past\": {\n \"one\": \"{0} wk. ago\",\n \"other\": \"{0} wk. ago\"\n }\n },\n \"year\": {\n \"-1\": \"last year\",\n \"0\": \"this year\",\n \"1\": \"next year\",\n \"future\": {\n \"one\": \"in {0} year\",\n \"other\": \"in {0} years\"\n },\n \"past\": {\n \"one\": \"{0} year ago\",\n \"other\": \"{0} years ago\"\n }\n },\n \"year-narrow\": {\n \"-1\": \"last yr.\",\n \"0\": \"this yr.\",\n \"1\": \"next yr.\",\n \"future\": {\n \"one\": \"in {0}y\",\n \"other\": \"in {0}y\"\n },\n \"past\": {\n \"one\": \"{0}y ago\",\n \"other\": \"{0}y ago\"\n }\n },\n \"year-short\": {\n \"-1\": \"last yr.\",\n \"0\": \"this yr.\",\n \"1\": \"next yr.\",\n \"future\": {\n \"one\": \"in {0} yr.\",\n \"other\": \"in {0} yr.\"\n },\n \"past\": {\n \"one\": \"{0} yr. ago\",\n \"other\": \"{0} yr. ago\"\n }\n }\n },\n \"locale\": \"en\"\n})\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar _1 = tslib_1.__importDefault(require(\"./\"));\nvar should_polyfill_1 = require(\"./should-polyfill\");\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n Object.defineProperty(Intl, 'RelativeTimeFormat', {\n value: _1.default,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldPolyfill = shouldPolyfill;\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar supported_locales_generated_1 = require(\"./supported-locales.generated\");\nfunction supportedLocalesOf(locale) {\n if (!locale) {\n return true;\n }\n var locales = Array.isArray(locale) ? locale : [locale];\n return (Intl.RelativeTimeFormat.supportedLocalesOf(locales).length ===\n locales.length);\n}\nfunction hasResolvedOptionsNumberingSystem(locale) {\n try {\n return ('numberingSystem' in\n new Intl.RelativeTimeFormat(locale || 'en', {\n numeric: 'auto',\n }).resolvedOptions());\n }\n catch (_) {\n return false;\n }\n}\nfunction shouldPolyfill(locale) {\n if (locale === void 0) { locale = 'en'; }\n if (!('RelativeTimeFormat' in Intl) ||\n !supportedLocalesOf(locale) ||\n !hasResolvedOptionsNumberingSystem(locale)) {\n return (0, intl_localematcher_1.match)([locale], supported_locales_generated_1.supportedLocales, 'en');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedLocales = void 0;\nexports.supportedLocales = [\"af\", \"af-NA\", \"agq\", \"ak\", \"am\", \"ar\", \"ar-AE\", \"ar-BH\", \"ar-DJ\", \"ar-DZ\", \"ar-EG\", \"ar-EH\", \"ar-ER\", \"ar-IL\", \"ar-IQ\", \"ar-JO\", \"ar-KM\", \"ar-KW\", \"ar-LB\", \"ar-LY\", \"ar-MA\", \"ar-MR\", \"ar-OM\", \"ar-PS\", \"ar-QA\", \"ar-SA\", \"ar-SD\", \"ar-SO\", \"ar-SS\", \"ar-SY\", \"ar-TD\", \"ar-TN\", \"ar-YE\", \"as\", \"asa\", \"ast\", \"az\", \"az-Cyrl\", \"az-Latn\", \"bas\", \"be\", \"be-tarask\", \"bem\", \"bez\", \"bg\", \"bm\", \"bn\", \"bn-IN\", \"bo\", \"bo-IN\", \"br\", \"brx\", \"bs\", \"bs-Cyrl\", \"bs-Latn\", \"ca\", \"ca-AD\", \"ca-ES-valencia\", \"ca-FR\", \"ca-IT\", \"ccp\", \"ccp-IN\", \"ce\", \"ceb\", \"cgg\", \"chr\", \"ckb\", \"ckb-IR\", \"cs\", \"cy\", \"da\", \"da-GL\", \"dav\", \"de\", \"de-AT\", \"de-BE\", \"de-CH\", \"de-IT\", \"de-LI\", \"de-LU\", \"dje\", \"doi\", \"dsb\", \"dua\", \"dyo\", \"dz\", \"ebu\", \"ee\", \"ee-TG\", \"el\", \"el-CY\", \"en\", \"en-001\", \"en-150\", \"en-AE\", \"en-AG\", \"en-AI\", \"en-AS\", \"en-AT\", \"en-AU\", \"en-BB\", \"en-BE\", \"en-BI\", \"en-BM\", \"en-BS\", \"en-BW\", \"en-BZ\", \"en-CA\", \"en-CC\", \"en-CH\", \"en-CK\", \"en-CM\", \"en-CX\", \"en-CY\", \"en-DE\", \"en-DG\", \"en-DK\", \"en-DM\", \"en-ER\", \"en-FI\", \"en-FJ\", \"en-FK\", \"en-FM\", \"en-GB\", \"en-GD\", \"en-GG\", \"en-GH\", \"en-GI\", \"en-GM\", \"en-GU\", \"en-GY\", \"en-HK\", \"en-IE\", \"en-IL\", \"en-IM\", \"en-IN\", \"en-IO\", \"en-JE\", \"en-JM\", \"en-KE\", \"en-KI\", \"en-KN\", \"en-KY\", \"en-LC\", \"en-LR\", \"en-LS\", \"en-MG\", \"en-MH\", \"en-MO\", \"en-MP\", \"en-MS\", \"en-MT\", \"en-MU\", \"en-MW\", \"en-MY\", \"en-NA\", \"en-NF\", \"en-NG\", \"en-NL\", \"en-NR\", \"en-NU\", \"en-NZ\", \"en-PG\", \"en-PH\", \"en-PK\", \"en-PN\", \"en-PR\", \"en-PW\", \"en-RW\", \"en-SB\", \"en-SC\", \"en-SD\", \"en-SE\", \"en-SG\", \"en-SH\", \"en-SI\", \"en-SL\", \"en-SS\", \"en-SX\", \"en-SZ\", \"en-TC\", \"en-TK\", \"en-TO\", \"en-TT\", \"en-TV\", \"en-TZ\", \"en-UG\", \"en-UM\", \"en-VC\", \"en-VG\", \"en-VI\", \"en-VU\", \"en-WS\", \"en-ZA\", \"en-ZM\", \"en-ZW\", \"eo\", \"es\", \"es-419\", \"es-AR\", \"es-BO\", \"es-BR\", \"es-BZ\", \"es-CL\", \"es-CO\", \"es-CR\", \"es-CU\", \"es-DO\", \"es-EA\", \"es-EC\", \"es-GQ\", \"es-GT\", \"es-HN\", \"es-IC\", \"es-MX\", \"es-NI\", \"es-PA\", \"es-PE\", \"es-PH\", \"es-PR\", \"es-PY\", \"es-SV\", \"es-US\", \"es-UY\", \"es-VE\", \"et\", \"eu\", \"ewo\", \"fa\", \"fa-AF\", \"ff\", \"ff-Adlm\", \"ff-Adlm-BF\", \"ff-Adlm-CM\", \"ff-Adlm-GH\", \"ff-Adlm-GM\", \"ff-Adlm-GW\", \"ff-Adlm-LR\", \"ff-Adlm-MR\", \"ff-Adlm-NE\", \"ff-Adlm-NG\", \"ff-Adlm-SL\", \"ff-Adlm-SN\", \"ff-Latn\", \"ff-Latn-BF\", \"ff-Latn-CM\", \"ff-Latn-GH\", \"ff-Latn-GM\", \"ff-Latn-GN\", \"ff-Latn-GW\", \"ff-Latn-LR\", \"ff-Latn-MR\", \"ff-Latn-NE\", \"ff-Latn-NG\", \"ff-Latn-SL\", \"fi\", \"fil\", \"fo\", \"fo-DK\", \"fr\", \"fr-BE\", \"fr-BF\", \"fr-BI\", \"fr-BJ\", \"fr-BL\", \"fr-CA\", \"fr-CD\", \"fr-CF\", \"fr-CG\", \"fr-CH\", \"fr-CI\", \"fr-CM\", \"fr-DJ\", \"fr-DZ\", \"fr-GA\", \"fr-GF\", \"fr-GN\", \"fr-GP\", \"fr-GQ\", \"fr-HT\", \"fr-KM\", \"fr-LU\", \"fr-MA\", \"fr-MC\", \"fr-MF\", \"fr-MG\", \"fr-ML\", \"fr-MQ\", \"fr-MR\", \"fr-MU\", \"fr-NC\", \"fr-NE\", \"fr-PF\", \"fr-PM\", \"fr-RE\", \"fr-RW\", \"fr-SC\", \"fr-SN\", \"fr-SY\", \"fr-TD\", \"fr-TG\", \"fr-TN\", \"fr-VU\", \"fr-WF\", \"fr-YT\", \"fur\", \"fy\", \"ga\", \"ga-GB\", \"gd\", \"gl\", \"gsw\", \"gsw-FR\", \"gsw-LI\", \"gu\", \"guz\", \"gv\", \"ha\", \"ha-GH\", \"ha-NE\", \"haw\", \"he\", \"hi\", \"hr\", \"hr-BA\", \"hsb\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"is\", \"it\", \"it-CH\", \"it-SM\", \"it-VA\", \"ja\", \"jgo\", \"jmc\", \"jv\", \"ka\", \"kab\", \"kam\", \"kde\", \"kea\", \"kgp\", \"khq\", \"ki\", \"kk\", \"kkj\", \"kl\", \"kln\", \"km\", \"kn\", \"ko\", \"ko-KP\", \"kok\", \"ks\", \"ks-Arab\", \"ksb\", \"ksf\", \"ksh\", \"ku\", \"kw\", \"ky\", \"lag\", \"lb\", \"lg\", \"lkt\", \"ln\", \"ln-AO\", \"ln-CF\", \"ln-CG\", \"lo\", \"lrc\", \"lrc-IQ\", \"lt\", \"lu\", \"luo\", \"luy\", \"lv\", \"mai\", \"mas\", \"mas-TZ\", \"mer\", \"mfe\", \"mg\", \"mgh\", \"mgo\", \"mi\", \"mk\", \"ml\", \"mn\", \"mni\", \"mni-Beng\", \"mr\", \"ms\", \"ms-BN\", \"ms-ID\", \"ms-SG\", \"mt\", \"mua\", \"my\", \"mzn\", \"naq\", \"nb\", \"nb-SJ\", \"nd\", \"nds\", \"nds-NL\", \"ne\", \"ne-IN\", \"nl\", \"nl-AW\", \"nl-BE\", \"nl-BQ\", \"nl-CW\", \"nl-SR\", \"nl-SX\", \"nmg\", \"nn\", \"nnh\", \"no\", \"nus\", \"nyn\", \"om\", \"om-KE\", \"or\", \"os\", \"os-RU\", \"pa\", \"pa-Arab\", \"pa-Guru\", \"pcm\", \"pl\", \"ps\", \"ps-PK\", \"pt\", \"pt-AO\", \"pt-CH\", \"pt-CV\", \"pt-GQ\", \"pt-GW\", \"pt-LU\", \"pt-MO\", \"pt-MZ\", \"pt-PT\", \"pt-ST\", \"pt-TL\", \"qu\", \"qu-BO\", \"qu-EC\", \"rm\", \"rn\", \"ro\", \"ro-MD\", \"rof\", \"ru\", \"ru-BY\", \"ru-KG\", \"ru-KZ\", \"ru-MD\", \"ru-UA\", \"rw\", \"rwk\", \"sa\", \"sah\", \"saq\", \"sat\", \"sat-Olck\", \"sbp\", \"sc\", \"sd\", \"sd-Arab\", \"sd-Deva\", \"se\", \"se-FI\", \"se-SE\", \"seh\", \"ses\", \"sg\", \"shi\", \"shi-Latn\", \"shi-Tfng\", \"si\", \"sk\", \"sl\", \"smn\", \"sn\", \"so\", \"so-DJ\", \"so-ET\", \"so-KE\", \"sq\", \"sq-MK\", \"sq-XK\", \"sr\", \"sr-Cyrl\", \"sr-Cyrl-BA\", \"sr-Cyrl-ME\", \"sr-Cyrl-XK\", \"sr-Latn\", \"sr-Latn-BA\", \"sr-Latn-ME\", \"sr-Latn-XK\", \"su\", \"su-Latn\", \"sv\", \"sv-AX\", \"sv-FI\", \"sw\", \"sw-CD\", \"sw-KE\", \"sw-UG\", \"ta\", \"ta-LK\", \"ta-MY\", \"ta-SG\", \"te\", \"teo\", \"teo-KE\", \"tg\", \"th\", \"ti\", \"ti-ER\", \"tk\", \"to\", \"tr\", \"tr-CY\", \"tt\", \"twq\", \"tzm\", \"ug\", \"uk\", \"und\", \"ur\", \"ur-IN\", \"uz\", \"uz-Arab\", \"uz-Cyrl\", \"uz-Latn\", \"vai\", \"vai-Latn\", \"vai-Vaii\", \"vi\", \"vun\", \"wae\", \"wo\", \"xh\", \"xog\", \"yav\", \"yi\", \"yo\", \"yo-BJ\", \"yrl\", \"yrl-CO\", \"yrl-VE\", \"yue\", \"yue-Hans\", \"yue-Hant\", \"zgh\", \"zh\", \"zh-Hans\", \"zh-Hans-HK\", \"zh-Hans-MO\", \"zh-Hans-SG\", \"zh-Hant\", \"zh-Hant-HK\", \"zh-Hant-MO\", \"zu\"];\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n"],"names":["CanonicalizeLocaleList","locales","Intl","getCanonicalLocales","CanonicalizeTimeZoneName","tz","_a","zoneNames","uppercaseLinks","uppercasedTz","toUpperCase","uppercasedZones","reduce","all","z","ianaTimeZone","ToString","o","TypeError","String","ToNumber","val","undefined","NaN","Number","TimeClip","time","isFinite","Math","abs","n","number","isNaN","SameValue","integer","floor","ToInteger","ToObject","arg","Object","x","y","is","ArrayCreate","len","Array","HasOwnProperty","prop","prototype","hasOwnProperty","call","Type","MS_PER_DAY","mod","Day","t","WeekDay","DayFromYear","Date","UTC","TimeFromYear","YearFromTime","getUTCFullYear","DaysInYear","DayWithinYear","InLeapYear","MonthFromTime","dwy","leap","Error","DateFromTime","mft","HOURS_PER_DAY","MINUTES_PER_HOUR","SECONDS_PER_MINUTE","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","HourFromTime","MinFromTime","SecFromTime","OrdinaryHasInstance","C","O","internalSlots","boundTargetFunction","P","isPrototypeOf","msFromTime","CoerceOptionsToObject","options","create","DefaultNumberOption","inputVal","min","max","fallback","RangeError","concat","GetNumberOption","property","minimum","maximum","GetOption","opts","type","values","value","Boolean","filter","length","join","GetOptionsObject","GetStringOrBooleanOption","trueValue","falsyValue","indexOf","SANCTIONED_UNITS","removeUnitNamespace","unit","slice","SIMPLE_UNITS","map","IsSanctionedSimpleUnitIdentifier","unitIdentifier","IsValidTimeZoneName","zoneNamesFromData","Set","linkNames","forEach","add","keys","linkName","has","NOT_A_Z_REGEX","IsWellFormedCurrencyCode","currency","replace","_","c","test","IsWellFormedUnitIdentifier","toLowerCase","units","split","numerator","denominator","ApplyUnsignedRoundingMode","r1","r2","unsignedRoundingMode","d1","d2","CollapseNumberRange","result","ComputeExponentForMagnitude","numberFormat","magnitude","getInternalSlots","notation","dataLocaleData","numberingSystem","compactDisplay","style","currencyDisplay","thresholdMap","numbers","nu","short","decimal","long","num","pow","thresholds","i","magnitudeKey","other","match","ToRawPrecision","minPrecision","maxPrecision","m","e","xFinal","int","p","xToString","toString","xToStringExponentIndex","xToStringMantissa","xToStringExponent","xToStringMantissaWithoutDecimalPoint","decimalPlaceOffset","round","adjustDecimalPlace","cut","formattedString","roundedNumber","integerDigitsCount","ToRawFixed","minFraction","maxFraction","f","mantissa","exponent","k","a","b","FormatNumericToString","intlObject","isNegative","roundingType","minimumSignificantDigits","maximumSignificantDigits","minimumFractionDigits","maximumFractionDigits","string","minInteger","minimumIntegerDigits","ComputeExponent","formatNumberResult","CurrencyDigits","currencyDigitsData","S_UNICODE_REGEX","digitMapping","CARET_S_UNICODE_REGEX","RegExp","source","S_DOLLAR_UNICODE_REGEX","CLDR_NUMBER_PATTERN","formatToParts","numberResult","data","pl","nonNameCurrencyPart","numberPattern","sign","defaultNumberingSystem","compactNumberPattern","pattern","compactPluralRules","byNumberingSystem","selectPlural","compactPlaralRule","getPatternForSign","getCompactDisplayPattern","byCurrencyDisplay","currencies","symbol","narrow","standard","currencyData","currencySign","percent","decimalNumberPattern","exec","afterCurrency","currencySpacing","afterInsertBetween","beforeCurrency","beforeInsertBetween","numberPatternParts","numberParts","symbols","_i","numberPatternParts_1","part","push","apply","paritionNumberIntoParts","useGrouping","minusSign","plusSign","percentSign","substring","unitPattern","unitName","currencyNameData","displayName","unitPatternParts_1","unitDisplay","unitData","simple","_b","numeratorUnit","denominatorUnit","numeratorUnitPattern","perUnitPattern","perUnit","perPattern","compound","per","denominatorPattern","_c","_d","interpolateMatch","digitReplacementTable","digit","fraction","decimalSepIndex","groupSepSymbol","currencyGroup","group","groups","patternGroups","primaryGroupingSize","secondaryGroupingSize","integerGroup","pop","decimalSepSymbol","currencyDecimal","exponential","exponentResult","zeroPattern","negativePattern","rules","select","FormatApproximately","approximatelySign","PartitionNumberPattern","nan","POSITIVE_INFINITY","NEGATIVE_INFINITY","infinity","signDisplay","PartitionNumberRangePattern","xResult","yResult","xResult_1","rangeSign","yResult_1","FormatNumericRange","FormatNumericRangeToParts","index","FormatNumericToParts","nf","implDetails","parts","parts_1","negativeMapping","ceil","expand","trunc","halfCeil","halfFloor","halfExpand","halfTrunc","halfEven","positiveMapping","GetUnsignedRoundingMode","roundingMode","SetNumberFormatDigitOptions","mnfdDefault","mxfdDefault","mnid","mnfd","mxfd","mnsd","mxsd","roundingPriority","hasSd","hasFd","needSd","needFd","SetNumberFormatUnitOptions","VALID_ROUND_INCREMENT_VALUES","InitializeNumberFormat","localeData","availableLocales","numberingSystemNames","getDefaultLocale","requestedLocales","opt","matcher","localeMatcher","r","ResolveLocale","from","dataLocale","locale","cDigits","roundingIncrement","trailingZeroDisplay","defaultUseGrouping","PartitionPattern","beginIndex","endIndex","nextIndex","SupportedLocales","LookupSupportedLocales","RangePatternType","_super","MissingLocaleDataError","_this","this","arguments","isMissingLocaleDataError","__spreadArray","to","pack","ar","l","SuppressedError","supplemental","languageMatching","paradigmLocales","_locales","$enUS","_value","$cnsar","$americas","$maghreb","no","_desired","_distance","bs","hr","sr","aa","de","_oneway","nb","ru","en","nl","es","ur","hi","zh","fr","fil","sk","da","id","tr","it","az","et","ff","gn","iu","kln","kok","kpe","luy","lv","mg","mn","ms","ne","om","or","ps","qu","sc","sq","syr","uz","yi","regions","UNICODE_EXTENSION_SEQUENCE_REGEX","invariant","condition","message","Err","PROCESSED_DATA","DEFAULT_MATCHING_THRESHOLD","isMatched","languageMatchInfoLocale","matchVariables","language","script","region","matches","shouldInclude","expandedMatchedRegions","list","serializeLSR","lsr","findMatchingDistanceForLSR","desired","supported","d","oneway","distance","findMatchingDistance","desiredLocale","Locale","maximize","supportedLocale","desiredLSR","supportedLSR","matchingDistance","key","processData","BestFitMatcher","foundLocale","extension","noExtensionLocales","noExtensionLocaleMap","noExtensionLocale","supportedLocales","threshold","lowestDistance","Infinity","matchedDesiredLocale","distances","matchedSupportedLocale","findBestMatch","BestAvailableLocale","candidate","pos","lastIndexOf","UnicodeExtensionValue","size","searchValue","start","end","done","relevantExtensionKeys","requestedLocales_1","availableLocale","LookupMatcher","supportedExtension","relevantExtensionKeys_1","foundLocaleData","keyLocaleData","isArray","supportedExtensionAddition","requestedValue","optionsValue","privateIndex","preExtension","postExtension","subset","defaultLocale","algorithm","defineProperty","exports","GetOperands","s","ecma402_abstract_1","iv","v","dp","fv","w","ft","IntegerDigits","NumberOfFractionDigits","NumberOfFractionDigitsWithoutTrailing","FractionDigits","FractionDigitsWithoutTrailing","InitializePluralRules","initializedPluralRules","intl_localematcher_1","ResolvePlural","PluralRuleSelect","operands","GetOperands_1","internalSlotMap","get","set","WeakMap","PluralRules","tslib_1","InitializePluralRules_1","ResolvePlural_1","get_internal_slots_1","__importDefault","validateInstance","instance","method","_n","fn","constructor","default","resolvedOptions","field","pluralCategories","categories","supportedLocalesOf","__addLocaleData","data_1","__defaultLocale","polyfilled","Symbol","toStringTag","writable","enumerable","configurable","error","ex","ord","v0","t0","n10","n100","_1","shouldPolyfill","supported_locales_generated_1","InitializeRelativeTimeFormat","rtf","initializedRelativeTimeFormat","NUMBERING_SYSTEM_REGEX","numeric","fields","createMemoizedNumberFormat","pluralRules","createMemoizedPluralRules","MakePartsList","patternParts","patternParts_1","patternPart","PartitionRelativeTimePattern","resolvedUnit","SingularRelativeTimeUnit_1","SingularRelativeTimeUnit","entry","patterns","tl","po","format","pr","MakePartsList_1","InitializeRelativeTimeFormat_1","PartitionRelativeTimePattern_1","RelativeTimeFormat","el","minimizedLocale","minimize","hasResolvedOptionsNumberingSystem","extendStatics","setPrototypeOf","__proto__","__extends","__","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","kind","descriptor","name","context","access","addInitializer","init","unshift","__runInitializers","thisArg","useValue","__propKey","__setFunctionName","prefix","description","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","body","label","sent","trys","ops","g","Iterator","verb","iterator","op","__createBinding","k2","__esModule","__exportStar","__values","__read","__spread","__spreadArrays","il","j","jl","__await","__asyncGenerator","asyncIterator","q","AsyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","__classPrivateFieldGet","receiver","state","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","inner","asyncDispose","stack","_SuppressedError","suppressed","__disposeResources","fail","hasError","__rewriteRelativeImportExtension","path","preserveJsx","tsx","ext","cm"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js b/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js new file mode 100644 index 00000000..6255d675 --- /dev/null +++ b/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5727],{1723:function(e,t,n){n.d(t,{Ay:function(){return A},PU:function(){return f},gH:function(){return y}});var a=n(6188),r=n(6784),l=n(6540),i=n(5615),o=n(1208),c=n(5192),s=n(5038),u=n(3524),d=n(8065);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;te.onChange(t.target.value),disabled:e.disabled,ref:t})})),v=l.forwardRef((function(e){return l.createElement(o.A.Control,{as:"textarea",value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled})})),g=l.forwardRef((function(e,t){return l.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(t.target.value),disabled:e.disabled,type:"password",ref:t})})),b=l.forwardRef((function(e,t){const n=Math.random().toString();return l.createElement("label",{htmlFor:n,className:"d-flex m-0 flex-grow-1 justify-content-center align-content-center"},l.createElement(o.A.Check,{id:n,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:"switch",className:"m-auto",disabled:e.disabled,ref:t}))})),E=l.forwardRef((function(e,t){return l.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(isNaN(t.target.valueAsNumber)?t.target.value:t.target.valueAsNumber),disabled:e.disabled,min:e.min,max:e.max,type:"number",ref:t})})),h=l.forwardRef((function(e,t){return l.createElement(o.A.Control,{value:e.value,onChange:t=>e.onChange(parseInt(t.target.value)),disabled:e.disabled,as:"select",custom:!0,ref:t},Object.entries(e.enum).filter((([e])=>isNaN(parseInt(e)))).map((([t,n])=>e.noLocalize?l.createElement("option",{key:n,value:n},t):l.createElement(d.A,{id:`${e.name}.${t}`,key:t},(e=>l.createElement("option",{key:n,value:n},e))))))})),y={[f.Enum]:0,[f.Number]:0,[f.Boolean]:!1,[f.String]:"",[f.Password]:"",[f.TextArea]:""};function A(e){const[t,n]=(0,l.useState)(e.defaultValue??y[e.type]),o=(0,l.useRef)(null);(0,l.useEffect)((()=>{n(e.defaultValue??y[e.type])}),[e.defaultValue]),(0,l.useEffect)((()=>{switch(o.current&&(o.current.checkValidity()?o.current.classList.remove("is-invalid"):o.current.classList.add("is-invalid")),e.type){case f.Boolean:case f.Enum:case f.Number:case f.String:case f.Password:case f.TextArea:return void e.onChange(t,o.current?.checkValidity()??!0)}}),[t]);const A={string:p,password:g,boolean:b,textarea:v,[f.Number]:void 0,[f.Enum]:void 0},w=t!=(e.defaultValue??y[e.type])||e.forceChanged;return l.createElement(c.A,null,l.createElement(s.A,{overlay:(C=e.tooltip,C?l.createElement(u.A,{id:C},l.createElement(d.A,{id:C})):l.createElement(l.Fragment,null)),show:!!e.tooltip&&void 0},(({ref:t,...n})=>l.createElement(c.A.Prepend,{className:"w-50 w-xl-40"},l.createElement(c.A.Text,m({className:"flex-grow-1"},n),l.createElement("span",{className:w?"font-weight-bold":""},l.createElement(d.A,{id:e.name})),l.createElement("div",{className:"ml-auto"},e.disabled&&!e.hideReadOnly?l.createElement(d.A,{id:"generic.readonly"}):null,l.createElement("div",{ref:t,className:"d-inline-block ml-2",style:{visibility:e.tooltip?"unset":"hidden"}},l.createElement(r.g,{icon:a.ktq}))))))),e.type===f.Number?l.createElement(E,{value:t,onChange:e=>n(e),name:e.name,disabled:e.disabled,max:e.max,min:e.min,ref:o}):e.type===f.Enum?l.createElement(h,{value:t,onChange:e=>n(e),name:e.name,enum:e.enum,noLocalize:e.noLocalize,disabled:e.disabled}):l.createElement(A[e.type],{value:t,onChange:e=>n(e),disabled:e.disabled,name:e.type,ref:o}),w&&!e.disabled||e.additionalAppend?l.createElement(c.A.Append,null,w&&!e.disabled?l.createElement(i.A,{variant:"danger",onClick:()=>n(e.defaultValue??y[e.type])},l.createElement(r.g,{icon:"undo"})):null,e.additionalAppend):null);var C}},6113:function(e,t,n){n.d(t,{A:function(){return u}});var a=n(6540),r=n(5615),l=n(5038),i=n(3524),o=n(8065),c=n(1723);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t{Object.keys(e.fields).forEach((e=>{d((t=>({...t,[e]:{}})))}))}),[]);for(const[r,l]of Object.entries(e.fields))n.set(r,l),t.set(l,(0,a.useState)(l.defaultValue??c.gH[l.type]));let m=e.alwaysAllowSave,f=!1;for(const[e,a]of n){const[n]=t.get(a),r=u[e];if((a.defaultValue??c.gH[a.type])!=n&&(m=!0),r?.invalid&&(f=!0),m&&f)break}return e.hideDisabled&&!Object.values(e.fields).some((e=>!e.disabled))?a.createElement(a.Fragment,null):a.createElement("div",null,Object.entries(e.fields).map((([n,r])=>{const{disabled:l,...i}=r;return e.hideDisabled&&l?null:a.createElement(c.Ay,s({key:n},i,{disabled:e.readOnly||l,onChange:(e,a)=>{t.get(r)[1](e),d((e=>({...e,[n]:{...e[n],invalid:!a}})))}}))})),a.createElement("div",{className:"text-center mt-2"},a.createElement(l.A,{overlay:a.createElement(i.A,{id:"form-invalid"},a.createElement(o.A,{id:"generic.invalid_form"})),show:!!f&&void 0},a.createElement(r.A,{variant:e.readOnly||f?"danger":"success",disabled:e.readOnly||!m||f,onClick:()=>{const a={};for(const[r,l]of n){const[n]=t.get(l);(l.alwaysInclude||n!=(l.defaultValue??c.gH[l.type])||e.includeAll)&&(a[r]=n)}e.onSave(a)}},a.createElement(o.A,{id:e.saveMessageId??"generic.save"})))))}},6795:function(e,t,n){n.d(t,{Q:function(){return c}});var a=n(6540),r=n(8785),l=n.n(r),i=n(8437);function o(e){return a.createElement(l(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function c(e){return i.Ay.showjson.value?a.createElement("div",{className:"text-left"},a.createElement(o,{obj:e.obj})):a.createElement(a.Fragment,null)}},7621:function(e,t,n){n.d(t,{z:function(){return a}});const a=n(6540).createContext(void 0)},5192:function(e,t,n){var a=n(8587),r=n(8168),l=n(2485),i=n.n(l),o=n(6540),c=n(6261),s=n(6519),u=["bsPrefix","size","hasValidation","className","as"],d=(0,c.A)("input-group-append"),m=(0,c.A)("input-group-prepend"),f=(0,c.A)("input-group-text",{Component:"span"}),p=o.forwardRef((function(e,t){var n=e.bsPrefix,l=e.size,c=e.hasValidation,d=e.className,m=e.as,f=void 0===m?"div":m,p=(0,a.A)(e,u);return n=(0,s.oU)(n,"input-group"),o.createElement(f,(0,r.A)({ref:t},p,{className:i()(d,n,l&&n+"-"+l,c&&"has-validation")}))}));p.displayName="InputGroup",p.Text=f,p.Radio=function(e){return o.createElement(f,null,o.createElement("input",(0,r.A)({type:"radio"},e)))},p.Checkbox=function(e){return o.createElement(f,null,o.createElement("input",(0,r.A)({type:"checkbox"},e)))},p.Append=d,p.Prepend=m,t.A=p}}]); +//# sourceMappingURL=5727.ef582c641ff89a5e639f.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js.map b/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js.map new file mode 100644 index 00000000..f6d26187 --- /dev/null +++ b/webpanel/6.6.0/5727.ef582c641ff89a5e639f.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5727.ef582c641ff89a5e639f.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/utils/InputField.tsx","webpack://tgstation-server-control-panel/./src/components/utils/InputForm.tsx","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/contexts/InstanceEditContext.ts","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/InputGroup.js"],"sourcesContent":["import { faInfo } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nexport type AnyEnum = {\n [key: string]: string | number;\n [index: number]: string;\n};\n\nexport enum FieldType {\n Boolean = \"boolean\",\n Number = \"number\",\n String = \"string\",\n TextArea = \"textarea\",\n Password = \"password\",\n Enum = \"enum\"\n}\n\nexport type InputFieldTypes = number | string | boolean;\n\nexport type InputFieldProps = {\n name: string;\n disabled?: boolean;\n tooltip?: string;\n type: FieldType;\n hideReadOnly?: boolean;\n additionalAppend?: React.ReactNode;\n forceChanged?: boolean;\n} & (\n | {\n defaultValue?: boolean | null;\n onChange: (newValue: boolean, isValid: boolean) => unknown;\n type: FieldType.Boolean;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Number;\n min?: number;\n max?: number;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.String;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.TextArea;\n }\n | {\n defaultValue?: string | null;\n onChange: (newValue: string, isValid: boolean) => unknown;\n type: FieldType.Password;\n }\n | {\n defaultValue?: number | null;\n onChange: (newValue: number, isValid: boolean) => unknown;\n type: FieldType.Enum;\n noLocalize?: boolean;\n enum: AnyEnum;\n }\n);\n\ninterface ControlProps {\n value: InputFieldTypes;\n onChange: (newvalue: InputFieldTypes) => unknown;\n disabled?: boolean;\n name: string;\n}\n\nconst StringControl = React.forwardRef(\n function StringControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n ref={ref}\n />\n );\n }\n);\n\nconst TextAreaControl = React.forwardRef(\n function StringControl(props): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n />\n );\n }\n);\n\nconst PasswordControl = React.forwardRef(\n function PasswordControl(props, ref): JSX.Element {\n return (\n props.onChange(e.target.value)}\n disabled={props.disabled}\n type=\"password\"\n ref={ref}\n />\n );\n }\n);\n\nconst BooleanControl = React.forwardRef(\n function BooleanControl(props, ref): JSX.Element {\n const rndId = Math.random().toString();\n return (\n \n props.onChange(e.target.checked)}\n type=\"switch\"\n className=\"m-auto\"\n disabled={props.disabled}\n ref={ref}\n />\n \n );\n }\n);\n\ntype NumberControlProps = ControlProps & {\n min?: number;\n max?: number;\n};\nconst NumberControl = React.forwardRef(\n function NumberControl(props, ref): JSX.Element {\n return (\n ) =>\n props.onChange(\n isNaN(e.target.valueAsNumber) ? e.target.value : e.target.valueAsNumber\n )\n }\n disabled={props.disabled}\n min={props.min}\n max={props.max}\n type=\"number\"\n ref={ref}\n />\n );\n }\n);\n\ntype EnumControlProps = ControlProps & {\n enum: AnyEnum;\n noLocalize?: boolean;\n};\nconst EnumControl = React.forwardRef(\n function EnumControl(props, ref): JSX.Element {\n return (\n props.onChange(parseInt(e.target.value))}\n disabled={props.disabled}\n as=\"select\"\n custom\n ref={ref}>\n {Object.entries(props.enum)\n //filters out reverse mapping\n .filter(([key]) => isNaN(parseInt(key)))\n .map(([key, value]) => {\n return props.noLocalize ? (\n \n ) : (\n \n {message => (\n \n )}\n \n );\n })}\n \n );\n }\n);\n\nexport const defaultValues: Record = {\n [FieldType.Enum]: 0,\n [FieldType.Number]: 0,\n [FieldType.Boolean]: false,\n [FieldType.String]: \"\",\n [FieldType.Password]: \"\",\n [FieldType.TextArea]: \"\"\n};\n\nexport default function InputField(props: InputFieldProps): JSX.Element {\n const [currentValue, setCurrentValue] = useState(\n props.defaultValue ?? defaultValues[props.type]\n );\n const controlRef = useRef(null);\n useEffect(() => {\n setCurrentValue(props.defaultValue ?? defaultValues[props.type]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.defaultValue]);\n\n useEffect(() => {\n if (controlRef.current) {\n if (controlRef.current.checkValidity()) {\n controlRef.current.classList.remove(\"is-invalid\");\n } else {\n controlRef.current.classList.add(\"is-invalid\");\n }\n }\n\n switch (props.type) {\n case FieldType.Boolean:\n props.onChange(\n currentValue as boolean,\n controlRef.current?.checkValidity() ?? true\n );\n return;\n case FieldType.Enum:\n case FieldType.Number:\n props.onChange(currentValue as number, controlRef.current?.checkValidity() ?? true);\n return;\n case FieldType.String:\n case FieldType.Password:\n case FieldType.TextArea:\n props.onChange(currentValue as string, controlRef.current?.checkValidity() ?? true);\n return;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue]);\n\n const tooltip = (innerid?: string) => {\n if (!innerid) return ;\n\n return (\n \n \n \n );\n };\n\n const basicControls: {\n [Property in typeof props.type]: Property extends FieldType.Enum | FieldType.Number\n ? undefined\n : React.FC;\n } = {\n string: StringControl,\n password: PasswordControl,\n boolean: BooleanControl,\n textarea: TextAreaControl,\n [FieldType.Number]: undefined,\n [FieldType.Enum]: undefined\n };\n\n const changed =\n currentValue != (props.defaultValue ?? defaultValues[props.type]) || props.forceChanged;\n\n return (\n \n \n {({ ref, ...triggerHandler }) => (\n \n \n \n \n \n
    \n {props.disabled && !props.hideReadOnly ? (\n \n ) : null}\n \n \n
    \n \n
    \n
    \n )}\n \n {props.type === FieldType.Number ? (\n setCurrentValue(newValue)}\n name={props.name}\n disabled={props.disabled}\n max={props.max}\n min={props.min}\n ref={controlRef}\n />\n ) : props.type === FieldType.Enum ? (\n setCurrentValue(newValue)}\n name={props.name}\n enum={props.enum}\n noLocalize={props.noLocalize}\n disabled={props.disabled}\n />\n ) : (\n React.createElement>(\n basicControls[props.type],\n {\n value: currentValue,\n onChange: newValue => setCurrentValue(newValue),\n disabled: props.disabled,\n name: props.type,\n ref: controlRef\n }\n )\n )}\n {!(!changed || props.disabled) || props.additionalAppend ? (\n \n {!(!changed || props.disabled) ? (\n \n setCurrentValue(props.defaultValue ?? defaultValues[props.type])\n }>\n \n \n ) : null}\n {props.additionalAppend}\n \n ) : null}\n
    \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { DistributiveOmit } from \"../../utils/misc\";\nimport InputField, {\n defaultValues,\n FieldType,\n InputFieldProps,\n InputFieldTypes\n} from \"./InputField\";\n\ntype ExtractValues = T extends T ? T[keyof T] : never;\n\ntype FieldsOutput> = {\n [Id in keyof Fields]: Fields[Id][\"type\"] extends FieldType.Number\n ? number\n : Fields[Id][\"type\"] extends FieldType.Enum\n ? // @ts-expect-error Typescript doesnt seem to support union descrimination in conditional types\n ExtractValues\n : Fields[Id][\"type\"] extends FieldType.Boolean\n ? boolean\n : Fields[Id][\"type\"] extends FieldType.String\n ? string\n : Fields[Id][\"type\"] extends FieldType.Password\n ? string\n : Fields[Id][\"type\"] extends FieldType.TextArea\n ? string\n : never;\n};\n\nexport type InputFormField = DistributiveOmit & {\n alwaysInclude?: boolean;\n};\ninterface IProps> {\n fields: Fields;\n onSave: (fields: FieldsOutput) => unknown;\n readOnly?: boolean;\n hideDisabled?: boolean;\n includeAll?: boolean;\n saveMessageId?: string;\n alwaysAllowSave?: boolean;\n}\n\ninterface FieldState {\n invalid?: boolean;\n}\n\nexport default function InputForm>(\n props: IProps\n): JSX.Element {\n const fieldValueStates = new Map<\n InputFormField,\n [InputFieldTypes, React.Dispatch>]\n >();\n const fieldStateIds = new Map();\n const [fieldStates, setFieldStates] = useState>({});\n\n useEffect(() => {\n Object.keys(props.fields).forEach(id => {\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {}\n }));\n });\n // It wants props.fields, but you really shouldnt ever change it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n for (const [id, field] of Object.entries(props.fields)) {\n fieldStateIds.set(id, field);\n fieldValueStates.set(\n field,\n // props.fields never changes, it will be\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useState(field.defaultValue ?? defaultValues[field.type])\n );\n }\n\n let anyDiff = props.alwaysAllowSave;\n let anyInvalid = false;\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n const fieldState = fieldStates[id];\n if ((fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) != fieldValue)\n anyDiff = true;\n if (fieldState?.invalid) anyInvalid = true;\n\n if (anyDiff && anyInvalid) break;\n }\n\n const save = () => {\n const outputObject: Record = {};\n\n for (const [id, fieldDescriptor] of fieldStateIds) {\n const [fieldValue] = fieldValueStates.get(fieldDescriptor)!;\n\n if (\n !fieldDescriptor.alwaysInclude &&\n fieldValue ==\n (fieldDescriptor.defaultValue ?? defaultValues[fieldDescriptor.type]) &&\n !props.includeAll\n )\n continue;\n\n outputObject[id] = fieldValue;\n }\n // @ts-expect-error I can't be assed to turn this generic object into the specially crafted output type, its mostly for public api sanity so i dont care\n props.onSave(outputObject);\n };\n\n //Don't show anything including the save button if we are hiding every single field\n if (props.hideDisabled) {\n if (!Object.values(props.fields).some(field => !field.disabled)) {\n return <>;\n }\n }\n\n return (\n
    \n {Object.entries(props.fields).map(([id, field]) => {\n const { disabled, ...innerProps } = field;\n if (props.hideDisabled && disabled) return null;\n\n return (\n {\n fieldValueStates.get(field)![1](newVal);\n setFieldStates(prevState => ({\n ...prevState,\n [id]: {\n ...prevState[id],\n invalid: !isValid\n }\n }));\n }}\n />\n );\n })}\n
    \n \n \n \n }\n show={anyInvalid ? undefined : false}>\n \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\n\nimport type {\n InstancePermissionSetResponse,\n InstanceResponse,\n ServerInformationResponse,\n UserResponse\n} from \"../ApiClient/generatedcode/generated\";\nimport InternalError from \"../ApiClient/models/InternalComms/InternalError\";\n\nexport type InstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse;\n};\n\n//same as InstanceEditContext except used for components which arent loading under instanceedit so we cant guarentee that instance wont be null\nexport type UnsafeInstanceEditContext = {\n deleteError: (error: InternalError) => void;\n errors: Set;\n reloadInstance: () => Promise;\n instance: InstanceResponse | null;\n user: UserResponse;\n serverInfo: ServerInformationResponse;\n instancePermissionSet: InstancePermissionSetResponse | null;\n};\n\nexport const InstanceEditContext = React.createContext(\n undefined as unknown as InstanceEditContext\n);\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _excluded = [\"bsPrefix\", \"size\", \"hasValidation\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n hasValidation = _ref.hasValidation,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size, hasValidation && 'has-validation')\n }));\n});\nInputGroup.displayName = 'InputGroup';\nInputGroup.Text = InputGroupText;\nInputGroup.Radio = InputGroupRadio;\nInputGroup.Checkbox = InputGroupCheckbox;\nInputGroup.Append = InputGroupAppend;\nInputGroup.Prepend = InputGroupPrepend;\nexport default InputGroup;"],"names":["FieldType","StringControl","React","props","ref","Form","Control","value","onChange","e","target","disabled","TextAreaControl","as","PasswordControl","type","BooleanControl","rndId","Math","random","toString","htmlFor","className","Check","id","checked","NumberControl","isNaN","valueAsNumber","min","max","EnumControl","parseInt","custom","Object","entries","enum","filter","key","map","noLocalize","FormattedMessage","name","message","defaultValues","Enum","Number","Boolean","String","Password","TextArea","InputField","currentValue","setCurrentValue","useState","defaultValue","controlRef","useRef","useEffect","current","checkValidity","classList","remove","add","basicControls","string","password","boolean","textarea","undefined","changed","forceChanged","InputGroup","OverlayTrigger","overlay","innerid","tooltip","Tooltip","show","triggerHandler","Prepend","Text","_extends","hideReadOnly","style","visibility","FontAwesomeIcon","icon","faInfo","newValue","additionalAppend","Append","Button","variant","onClick","InputForm","fieldValueStates","Map","fieldStateIds","fieldStates","setFieldStates","keys","fields","forEach","prevState","field","set","anyDiff","alwaysAllowSave","anyInvalid","fieldDescriptor","fieldValue","get","fieldState","invalid","hideDisabled","values","some","innerProps","readOnly","newVal","isValid","save","outputObject","alwaysInclude","includeAll","onSave","saveMessageId","JsonViewer","ReactJson","src","obj","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","showjson","InstanceEditContext","_excluded","InputGroupAppend","InputGroupPrepend","InputGroupText","Component","_ref","bsPrefix","size","hasValidation","_ref$as","displayName","Radio","Checkbox"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/5846.c2bffae7833ec32371a0.bundle.js b/webpanel/6.6.0/5846.c2bffae7833ec32371a0.bundle.js new file mode 100644 index 00000000..771cc2be --- /dev/null +++ b/webpanel/6.6.0/5846.c2bffae7833ec32371a0.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[5846,6983],{6052:function(e,r,a){var t=a(8168),n=a(8587),s=a(2485),i=a.n(s),o=a(6540),l=a(6519),c=["bsPrefix","variant","pill","className","as"],d=o.forwardRef((function(e,r){var a=e.bsPrefix,s=e.variant,d=e.pill,u=e.className,f=e.as,m=void 0===f?"span":f,p=(0,n.A)(e,c),v=(0,l.oU)(a,"badge");return o.createElement(m,(0,t.A)({ref:r},p,{className:i()(u,v,d&&v+"-pill",s&&v+"-"+s)}))}));d.displayName="Badge",d.defaultProps={pill:!1},r.A=d},1069:function(e,r,a){a.d(r,{A:function(){return g}});var t=a(8168),n=a(8587),s=a(2485),i=a.n(s),o=a(6540),l=a(6519),c=a(9703),d=["active","disabled","className","style","activeLabel","children"],u=["children"],f=o.forwardRef((function(e,r){var a=e.active,s=e.disabled,l=e.className,u=e.style,f=e.activeLabel,m=e.children,p=(0,n.A)(e,d),v=a||s?"span":c.A;return o.createElement("li",{ref:r,style:u,className:i()(l,"page-item",{active:a,disabled:s})},o.createElement(v,(0,t.A)({className:"page-link",disabled:s},p),m,a&&f&&o.createElement("span",{className:"sr-only"},f)))}));f.defaultProps={active:!1,disabled:!1,activeLabel:"(current)"},f.displayName="PageItem";var m=f;function p(e,r,a){function t(e){var t=e.children,s=(0,n.A)(e,u);return o.createElement(f,s,o.createElement("span",{"aria-hidden":"true"},t||r),o.createElement("span",{className:"sr-only"},a))}return void 0===a&&(a=e),t.displayName=e,t}var v=p("First","\xab"),h=p("Prev","\u2039","Previous"),b=p("Ellipsis","\u2026","More"),N=p("Next","\u203a"),P=p("Last","\xbb"),w=["bsPrefix","className","children","size"],A=o.forwardRef((function(e,r){var a=e.bsPrefix,s=e.className,c=e.children,d=e.size,u=(0,n.A)(e,w),f=(0,l.oU)(a,"pagination");return o.createElement("ul",(0,t.A)({ref:r},u,{className:i()(s,f,d&&f+"-"+d)}),c)}));A.First=v,A.Prev=h,A.Ellipsis=b,A.Item=m,A.Next=N,A.Last=P;var g=A},3899:function(e,r,a){a.d(r,{A:function(){return v}});var t=a(8168),n=a(8587),s=a(2485),i=a.n(s),o=a(6540),l=(a(8239),a(6519)),c=["as","bsPrefix","className","children"],d=o.forwardRef((function(e,r){var a=e.as,s=void 0===a?"div":a,d=e.bsPrefix,u=e.className,f=e.children,m=(0,n.A)(e,c);return d=(0,l.oU)(d,"popover-header"),o.createElement(s,(0,t.A)({ref:r},m,{className:i()(d,u)}),f)})),u=["as","bsPrefix","className","children"],f=o.forwardRef((function(e,r){var a=e.as,s=void 0===a?"div":a,c=e.bsPrefix,d=e.className,f=e.children,m=(0,n.A)(e,u);return c=(0,l.oU)(c,"popover-body"),o.createElement(s,(0,t.A)({ref:r},m,{className:i()(d,c)}),f)})),m=["bsPrefix","placement","className","style","children","content","arrowProps","popper","show"],p=o.forwardRef((function(e,r){var a=e.bsPrefix,s=e.placement,c=e.className,d=e.style,u=e.children,p=e.content,v=e.arrowProps,h=(e.popper,e.show,(0,n.A)(e,m)),b=(0,l.oU)(a,"popover"),N=((null==s?void 0:s.split("-"))||[])[0];return o.createElement("div",(0,t.A)({ref:r,role:"tooltip",style:d,"x-placement":N,className:i()(c,b,N&&"bs-popover-"+N)},h),o.createElement("div",(0,t.A)({className:"arrow"},v)),p?o.createElement(f,null,u):u)}));p.defaultProps={placement:"right"},p.Title=d,p.Content=f;var v=p},2431:function(e,r,a){var t=a(8168),n=a(8587),s=a(2485),i=a.n(s),o=a(6540),l=a(6519),c=["bsPrefix","className","striped","bordered","borderless","hover","size","variant","responsive"],d=o.forwardRef((function(e,r){var a=e.bsPrefix,s=e.className,d=e.striped,u=e.bordered,f=e.borderless,m=e.hover,p=e.size,v=e.variant,h=e.responsive,b=(0,n.A)(e,c),N=(0,l.oU)(a,"table"),P=i()(s,N,v&&N+"-"+v,p&&N+"-"+p,d&&N+"-striped",u&&N+"-bordered",f&&N+"-borderless",m&&N+"-hover"),w=o.createElement("table",(0,t.A)({},b,{className:P,ref:r}));if(h){var A=N+"-responsive";return"string"==typeof h&&(A=A+"-"+h),o.createElement("div",{className:A},w)}return w}));r.A=d},1683:function(e,r,a){a.d(r,{A:function(){return p}});var t=a(6540);function n(e){const r=new Date(e);if(!Number.isNaN(r.valueOf()))return r;const a=String(e).match(/\d+/g);if(null==a||a.length<=2)return r;{const[e,r,...t]=a.map((e=>parseInt(e))),n=[e,r-1,...t];return new Date(Date.UTC(...n))}}function s(e,r,a){return e+" "+(1!==e?r+"s":r)+" "+a}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var r=1;rDate.now();function p({date:e,formatter:r=s,component:a="time",live:p=!0,minPeriod:v=0,maxPeriod:h=d,title:b,now:N=m,...P}){const[w,A]=(0,t.useState)(N());(0,t.useEffect)((()=>{if(!p)return;const r=(()=>{const r=n(e).valueOf();if(!r)return console.warn("[react-timeago] Invalid Date provided"),0;const a=Math.round(Math.abs(w-r)/1e3),t=a{A(N())}),s):0})();return()=>{r&&clearTimeout(r)}}),[e,p,h,v,N,w]);const g=a,y=n(e).valueOf();if(!y)return null;const E=Math.round(Math.abs(w-y)/1e3),x=y parseInt(x));\n const correctedParts = [firstP, secondP - 1, ...restPs];\n const isoDate = new Date(Date.UTC(...correctedParts));\n return isoDate;\n }\n}","export default function defaultFormatter(value, _unit, suffix) {\n const unit = value !== 1 ? _unit + 's' : _unit;\n return value + ' ' + unit + ' ' + suffix;\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport dateParser from './dateParser';\nimport defaultFormatter from './defaultFormatter';\n// Just some simple constants for readability\nconst MINUTE = 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = DAY * 30;\nconst YEAR = DAY * 365;\nconst defaultNow = () => Date.now();\nexport default function TimeAgo({\n date,\n formatter = defaultFormatter,\n component = 'time',\n live = true,\n minPeriod = 0,\n maxPeriod = WEEK,\n title,\n now = defaultNow,\n ...passDownProps\n}) {\n const [timeNow, setTimeNow] = useState(now());\n useEffect(() => {\n if (!live) {\n return;\n }\n const tick = () => {\n const then = dateParser(date).valueOf();\n if (!then) {\n console.warn('[react-timeago] Invalid Date provided');\n return 0;\n }\n const seconds = Math.round(Math.abs(timeNow - then) / 1000);\n const unboundPeriod = seconds < MINUTE ? 1000 : seconds < HOUR ? 1000 * MINUTE : seconds < DAY ? 1000 * HOUR : 1000 * WEEK;\n const period = Math.min(Math.max(unboundPeriod, minPeriod * 1000), maxPeriod * 1000);\n if (period) {\n return setTimeout(() => {\n setTimeNow(now());\n }, period);\n }\n return 0;\n };\n const timeoutId = tick();\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [date, live, maxPeriod, minPeriod, now, timeNow]);\n const Komponent = component;\n const then = dateParser(date).valueOf();\n if (!then) {\n return null;\n }\n const seconds = Math.round(Math.abs(timeNow - then) / 1000);\n const suffix = then < timeNow ? 'ago' : 'from now';\n const [value, unit] = seconds < MINUTE ? [Math.round(seconds), 'second'] : seconds < HOUR ? [Math.round(seconds / MINUTE), 'minute'] : seconds < DAY ? [Math.round(seconds / HOUR), 'hour'] : seconds < WEEK ? [Math.round(seconds / DAY), 'day'] : seconds < MONTH ? [Math.round(seconds / WEEK), 'week'] : seconds < YEAR ? [Math.round(seconds / MONTH), 'month'] : [Math.round(seconds / YEAR), 'year'];\n const passDownTitle = typeof title === 'undefined' ? typeof date === 'string' ? date : dateParser(date).toISOString().substr(0, 16).replace('T', ' ') : title;\n const spreadProps = Komponent === 'time' ? {\n ...passDownProps,\n dateTime: dateParser(date).toISOString()\n } : passDownProps;\n const nextFormatter = defaultFormatter.bind(null, value, unit, suffix);\n return /*#__PURE__*/React.createElement(Komponent, _extends({}, spreadProps, {\n title: passDownTitle\n }), formatter(value, unit, suffix, then, nextFormatter, now));\n}"],"names":["_excluded","Badge","_ref","ref","bsPrefix","variant","pill","className","_ref$as","as","Component","props","prefix","displayName","defaultProps","_excluded2","PageItem","active","disabled","style","activeLabel","children","SafeAnchor","createButton","name","defaultValue","label","Button","_ref2","First","Prev","Ellipsis","Next","Last","Pagination","size","decoratedBsPrefix","Item","Popover","placement","content","arrowProps","popper","show","primaryPlacement","split","role","Title","Content","Table","striped","bordered","borderless","hover","responsive","classes","table","responsiveClass","dateParser","date","parsed","Date","Number","isNaN","valueOf","parts","String","match","length","firstP","secondP","restPs","map","x","parseInt","correctedParts","UTC","defaultFormatter","value","_unit","suffix","_extends","Object","assign","bind","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","MINUTE","HOUR","DAY","WEEK","MONTH","YEAR","defaultNow","now","TimeAgo","formatter","component","live","minPeriod","maxPeriod","title","passDownProps","timeNow","setTimeNow","useState","useEffect","timeoutId","then","console","warn","seconds","Math","round","abs","unboundPeriod","period","min","max","setTimeout","tick","clearTimeout","Komponent","unit","passDownTitle","toISOString","substr","replace","spreadProps","dateTime","nextFormatter"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js b/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js new file mode 100644 index 00000000..50111c28 --- /dev/null +++ b/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6105],{6105:function(e,t,r){var a=r(4354),n=r(4173),o=r(5301),s=r(3728),i=r(1972),c=r(8437);t.A=new class extends a.O{async addDirectory(e,t){let r;await s.A.wait4Init();try{r=await s.A.apiClient.api.configurationControllerCreateDirectory(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(r.status){case 200:case 201:return new o.A({code:o.s.OK,payload:null});default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}}async writeConfigFile(e,t,r){let a;await s.A.wait4Init();try{a=await s.A.apiClient.api.configurationControllerUpdate(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(a.status){case 200:case 202:{const e=a.data,t=await i.A.Upload(e.fileTicket,r);return t.code===o.s.OK?new o.A({code:o.s.OK,payload:e}):new o.A({code:o.s.ERROR,error:t.error})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}async getConfigFile(e,t,r){let a;await s.A.wait4Init();try{a=await s.A.apiClient.api.configurationControllerFile(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(a.status){case 200:if(r){const e=a.data,t=await i.A.Download(e.fileTicket,r);if(t.code===o.s.OK){const r=Object.assign({content:t.payload},e);return new o.A({code:o.s.OK,payload:r})}return new o.A({code:o.s.ERROR,error:t.error})}return new o.A({code:o.s.OK,payload:a.data});case 410:{const e=a.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.CONFIG_FILE_NOT_FOUND,{errorMessage:e},a)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}}async getDirectory(e,t,{page:r=1,pageSize:a=c.Ay.itemsperpage.value}){let i;await s.A.wait4Init();try{i=await s.A.apiClient.api.configurationControllerDirectory({directoryPath:t,pageSize:a,page:r},{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}switch(i.status){case 200:return new o.A({code:o.s.OK,payload:i.data});case 410:{const e=i.data;return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.CONFIG_FILE_DIRECTORY_NOT_FOUND,{errorMessage:e},i)})}default:return new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:i},i)})}}async getRootDirectory(e,{page:t=1,pageSize:r=c.Ay.itemsperpage.value}){let a;await s.A.wait4Init();try{a=await s.A.apiClient.api.configurationControllerList({pageSize:r,page:t},{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}return 200===a.status?new o.A({code:o.s.OK,payload:a.data}):new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:a},a)})}async deleteDirectory(e,t){let r;await s.A.wait4Init();try{r=await s.A.apiClient.api.configurationControllerDeleteDirectory(t,{headers:{Instance:e.toString()}})}catch(e){return new o.A({code:o.s.ERROR,error:e})}return 204===r.status?new o.A({code:o.s.OK,payload:null}):new o.A({code:o.s.ERROR,error:new n.Ay(n.O4.UNHANDLED_RESPONSE,{axiosResponse:r},r)})}}}}]); +//# sourceMappingURL=6105.f7f6090b8ac9391d5d35.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js.map b/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js.map new file mode 100644 index 00000000..dc873899 --- /dev/null +++ b/webpanel/6.6.0/6105.f7f6090b8ac9391d5d35.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6105.f7f6090b8ac9391d5d35.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/ApiClient/ConfigurationFileClient.ts"],"sourcesContent":["import { ApiClient } from \"./_base\";\r\nimport {\r\n ConfigurationFileRequest,\r\n ConfigurationFileResponse,\r\n ErrorMessageResponse,\r\n PaginatedConfigurationFileResponse\r\n} from \"./generatedcode/generated\";\r\nimport { DownloadedConfigFile } from \"./models/DownloadedConfigFile\";\r\nimport InternalError, { ErrorCode, GenericErrors } from \"./models/InternalComms/InternalError\";\r\nimport InternalStatus, { StatusCode } from \"./models/InternalComms/InternalStatus\";\r\nimport ServerClient from \"./ServerClient\";\r\nimport TransferClient, { DownloadErrors, ProgressEvent, UploadErrors } from \"./TransferClient\";\r\nimport configOptions from \"./util/config\";\r\n\r\nexport type ConfigErrors =\r\n | GenericErrors\r\n | ErrorCode.CONFIG_FILE_IO_ERROR\r\n | ErrorCode.CONFIG_FILE_NOT_FOUND;\r\n\r\nexport type ConfigDirectoryErrors = GenericErrors | ErrorCode.CONFIG_FILE_DIRECTORY_NOT_FOUND;\r\n\r\nexport default new (class ConfigurationFileClient extends ApiClient {\r\n public async addDirectory(\r\n instance: number,\r\n path: ConfigurationFileRequest\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerCreateDirectory(\r\n path,\r\n {\r\n headers: {\r\n Instance: instance.toString()\r\n }\r\n }\r\n );\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n\r\n switch (response.status) {\r\n case 200:\r\n case 201: {\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: null\r\n });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async writeConfigFile(\r\n instance: number,\r\n fileRequest: ConfigurationFileRequest,\r\n file: ArrayBuffer\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerUpdate(\r\n fileRequest,\r\n {\r\n headers: { Instance: instance.toString() }\r\n }\r\n );\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n switch (response.status) {\r\n case 200:\r\n case 202: {\r\n const payload = response.data as ConfigurationFileResponse;\r\n const upload = await TransferClient.Upload(payload.fileTicket, file);\r\n if (upload.code === StatusCode.OK) {\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload\r\n });\r\n }\r\n return new InternalStatus({ code: StatusCode.ERROR, error: upload.error });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async getConfigFile(\r\n instance: number,\r\n filePath: string,\r\n getContentProgressHandler: ((progressEvent: ProgressEvent) => void) | null\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerFile(filePath, {\r\n headers: { Instance: instance.toString() }\r\n });\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n\r\n switch (response.status) {\r\n case 200: {\r\n if (getContentProgressHandler) {\r\n const payload = response.data as ConfigurationFileResponse;\r\n const contents = await TransferClient.Download(\r\n payload.fileTicket,\r\n getContentProgressHandler\r\n );\r\n\r\n if (contents.code === StatusCode.OK) {\r\n const temp: DownloadedConfigFile = Object.assign(\r\n { content: contents.payload },\r\n payload\r\n );\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: temp\r\n });\r\n }\r\n return new InternalStatus({ code: StatusCode.ERROR, error: contents.error });\r\n }\r\n\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: response.data as ConfigurationFileResponse\r\n });\r\n }\r\n case 410: {\r\n const errorMessage = response.data as ErrorMessageResponse;\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.CONFIG_FILE_NOT_FOUND,\r\n { errorMessage },\r\n response\r\n )\r\n });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async getDirectory(\r\n instance: number,\r\n directoryPath: string,\r\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerDirectory(\r\n {\r\n directoryPath,\r\n pageSize: pageSize,\r\n page: page\r\n },\r\n { headers: { Instance: instance.toString() } }\r\n );\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n\r\n switch (response.status) {\r\n case 200: {\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: response.data as PaginatedConfigurationFileResponse\r\n });\r\n }\r\n\r\n case 410: {\r\n const errorMessage = response.data as ErrorMessageResponse;\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.CONFIG_FILE_DIRECTORY_NOT_FOUND,\r\n { errorMessage },\r\n response\r\n )\r\n });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async getRootDirectory(\r\n instance: number,\r\n { page = 1, pageSize = configOptions.itemsperpage.value as number }\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerList(\r\n {\r\n pageSize: pageSize,\r\n page: page\r\n },\r\n { headers: { Instance: instance.toString() } }\r\n );\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n\r\n switch (response.status) {\r\n case 200: {\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: response.data as PaginatedConfigurationFileResponse\r\n });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async deleteDirectory(\r\n instance: number,\r\n directory: ConfigurationFileRequest\r\n ): Promise> {\r\n await ServerClient.wait4Init();\r\n\r\n let response;\r\n try {\r\n response = await ServerClient.apiClient!.api.configurationControllerDeleteDirectory(\r\n directory,\r\n { headers: { Instance: instance.toString() } }\r\n );\r\n } catch (stat) {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: stat as InternalError\r\n });\r\n }\r\n\r\n switch (response.status) {\r\n case 204: {\r\n return new InternalStatus({\r\n code: StatusCode.OK,\r\n payload: null\r\n });\r\n }\r\n default: {\r\n return new InternalStatus({\r\n code: StatusCode.ERROR,\r\n error: new InternalError(\r\n ErrorCode.UNHANDLED_RESPONSE,\r\n { axiosResponse: response },\r\n response\r\n )\r\n });\r\n }\r\n }\r\n }\r\n})();\r\n"],"names":["ApiClient","addDirectory","instance","path","response","ServerClient","wait4Init","apiClient","api","configurationControllerCreateDirectory","headers","Instance","toString","stat","InternalStatus","code","StatusCode","ERROR","error","status","OK","payload","InternalError","ErrorCode","UNHANDLED_RESPONSE","axiosResponse","writeConfigFile","fileRequest","file","configurationControllerUpdate","data","upload","TransferClient","Upload","fileTicket","getConfigFile","filePath","getContentProgressHandler","configurationControllerFile","contents","Download","temp","Object","assign","content","errorMessage","CONFIG_FILE_NOT_FOUND","getDirectory","directoryPath","page","pageSize","configOptions","itemsperpage","value","configurationControllerDirectory","CONFIG_FILE_DIRECTORY_NOT_FOUND","getRootDirectory","configurationControllerList","deleteDirectory","directory","configurationControllerDeleteDirectory"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6394.cd49f01340921b5b48f7.bundle.js b/webpanel/6.6.0/6394.cd49f01340921b5b48f7.bundle.js new file mode 100644 index 00000000..cab4c3b9 --- /dev/null +++ b/webpanel/6.6.0/6394.cd49f01340921b5b48f7.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6394],{3672:function(t,e,r){"use strict";r.d(e,{$O:function(){return b},A4:function(){return d},Cp:function(){return h},Kp:function(){return c},Nt:function(){return y},V1:function(){return m},Vp:function(){return i},Xm:function(){return g},_T:function(){return s},cL:function(){return p},n8:function(){return f},oE:function(){return E},pM:function(){return l},ux:function(){return a},yB:function(){return u}});var n=r(7927),o=r(4819);function i(t){return Math.floor(Math.log(t)*Math.LOG10E)}function a(t,e){if("function"==typeof t.repeat)return t.repeat(e);for(var r=new Array(e),n=0;n1)throw new RangeError("integer-width stems only accept a single optional option");o.options[0].replace(B,(function(t,r,n,o,i,a){if(r)e.minimumIntegerDigits=n.length;else{if(o&&i)throw new Error("We currently do not support maximum integer digits");if(a)throw new Error("We currently do not support exact integer digits")}return""}));continue}if(S.test(o.stem))e.minimumIntegerDigits=o.stem.length;else if(H.test(o.stem)){if(o.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");o.stem.replace(H,(function(t,r,n,o,i,a){return"*"===n?e.minimumFractionDigits=r.length:o&&"#"===o[0]?e.maximumFractionDigits=o.length:i&&a?(e.minimumFractionDigits=i.length,e.maximumFractionDigits=i.length+a.length):(e.minimumFractionDigits=r.length,e.maximumFractionDigits=r.length),""}));var i=o.options[0];"w"===i?e=T(T({},e),{trailingZeroDisplay:"stripIfInteger"}):i&&(e=T(T({},e),O(i)))}else if(A.test(o.stem))e=T(T({},e),O(o.stem));else{var a=P(o.stem);a&&(e=T(T({},e),a));var s=N(o.stem);s&&(e=T(T({},e),s))}}return e}var L,R={"001":["H","h"],419:["h","H","hB","hb"],AC:["H","h","hb","hB"],AD:["H","hB"],AE:["h","hB","hb","H"],AF:["H","hb","hB","h"],AG:["h","hb","H","hB"],AI:["H","h","hb","hB"],AL:["h","H","hB"],AM:["H","hB"],AO:["H","hB"],AR:["h","H","hB","hb"],AS:["h","H"],AT:["H","hB"],AU:["h","hb","H","hB"],AW:["H","hB"],AX:["H"],AZ:["H","hB","h"],BA:["H","hB","h"],BB:["h","hb","H","hB"],BD:["h","hB","H"],BE:["H","hB"],BF:["H","hB"],BG:["H","hB","h"],BH:["h","hB","hb","H"],BI:["H","h"],BJ:["H","hB"],BL:["H","hB"],BM:["h","hb","H","hB"],BN:["hb","hB","h","H"],BO:["h","H","hB","hb"],BQ:["H"],BR:["H","hB"],BS:["h","hb","H","hB"],BT:["h","H"],BW:["H","h","hb","hB"],BY:["H","h"],BZ:["H","h","hb","hB"],CA:["h","hb","H","hB"],CC:["H","h","hb","hB"],CD:["hB","H"],CF:["H","h","hB"],CG:["H","hB"],CH:["H","hB","h"],CI:["H","hB"],CK:["H","h","hb","hB"],CL:["h","H","hB","hb"],CM:["H","h","hB"],CN:["H","hB","hb","h"],CO:["h","H","hB","hb"],CP:["H"],CR:["h","H","hB","hb"],CU:["h","H","hB","hb"],CV:["H","hB"],CW:["H","hB"],CX:["H","h","hb","hB"],CY:["h","H","hb","hB"],CZ:["H"],DE:["H","hB"],DG:["H","h","hb","hB"],DJ:["h","H"],DK:["H"],DM:["h","hb","H","hB"],DO:["h","H","hB","hb"],DZ:["h","hB","hb","H"],EA:["H","h","hB","hb"],EC:["h","H","hB","hb"],EE:["H","hB"],EG:["h","hB","hb","H"],EH:["h","hB","hb","H"],ER:["h","H"],ES:["H","hB","h","hb"],ET:["hB","hb","h","H"],FI:["H"],FJ:["h","hb","H","hB"],FK:["H","h","hb","hB"],FM:["h","hb","H","hB"],FO:["H","h"],FR:["H","hB"],GA:["H","hB"],GB:["H","h","hb","hB"],GD:["h","hb","H","hB"],GE:["H","hB","h"],GF:["H","hB"],GG:["H","h","hb","hB"],GH:["h","H"],GI:["H","h","hb","hB"],GL:["H","h"],GM:["h","hb","H","hB"],GN:["H","hB"],GP:["H","hB"],GQ:["H","hB","h","hb"],GR:["h","H","hb","hB"],GT:["h","H","hB","hb"],GU:["h","hb","H","hB"],GW:["H","hB"],GY:["h","hb","H","hB"],HK:["h","hB","hb","H"],HN:["h","H","hB","hb"],HR:["H","hB"],HU:["H","h"],IC:["H","h","hB","hb"],ID:["H"],IE:["H","h","hb","hB"],IL:["H","hB"],IM:["H","h","hb","hB"],IN:["h","H"],IO:["H","h","hb","hB"],IQ:["h","hB","hb","H"],IR:["hB","H"],IS:["H"],IT:["H","hB"],JE:["H","h","hb","hB"],JM:["h","hb","H","hB"],JO:["h","hB","hb","H"],JP:["H","K","h"],KE:["hB","hb","H","h"],KG:["H","h","hB","hb"],KH:["hB","h","H","hb"],KI:["h","hb","H","hB"],KM:["H","h","hB","hb"],KN:["h","hb","H","hB"],KP:["h","H","hB","hb"],KR:["h","H","hB","hb"],KW:["h","hB","hb","H"],KY:["h","hb","H","hB"],KZ:["H","hB"],LA:["H","hb","hB","h"],LB:["h","hB","hb","H"],LC:["h","hb","H","hB"],LI:["H","hB","h"],LK:["H","h","hB","hb"],LR:["h","hb","H","hB"],LS:["h","H"],LT:["H","h","hb","hB"],LU:["H","h","hB"],LV:["H","hB","hb","h"],LY:["h","hB","hb","H"],MA:["H","h","hB","hb"],MC:["H","hB"],MD:["H","hB"],ME:["H","hB","h"],MF:["H","hB"],MG:["H","h"],MH:["h","hb","H","hB"],MK:["H","h","hb","hB"],ML:["H"],MM:["hB","hb","H","h"],MN:["H","h","hb","hB"],MO:["h","hB","hb","H"],MP:["h","hb","H","hB"],MQ:["H","hB"],MR:["h","hB","hb","H"],MS:["H","h","hb","hB"],MT:["H","h"],MU:["H","h"],MV:["H","h"],MW:["h","hb","H","hB"],MX:["h","H","hB","hb"],MY:["hb","hB","h","H"],MZ:["H","hB"],NA:["h","H","hB","hb"],NC:["H","hB"],NE:["H"],NF:["H","h","hb","hB"],NG:["H","h","hb","hB"],NI:["h","H","hB","hb"],NL:["H","hB"],NO:["H","h"],NP:["H","h","hB"],NR:["H","h","hb","hB"],NU:["H","h","hb","hB"],NZ:["h","hb","H","hB"],OM:["h","hB","hb","H"],PA:["h","H","hB","hb"],PE:["h","H","hB","hb"],PF:["H","h","hB"],PG:["h","H"],PH:["h","hB","hb","H"],PK:["h","hB","H"],PL:["H","h"],PM:["H","hB"],PN:["H","h","hb","hB"],PR:["h","H","hB","hb"],PS:["h","hB","hb","H"],PT:["H","hB"],PW:["h","H"],PY:["h","H","hB","hb"],QA:["h","hB","hb","H"],RE:["H","hB"],RO:["H","hB"],RS:["H","hB","h"],RU:["H"],RW:["H","h"],SA:["h","hB","hb","H"],SB:["h","hb","H","hB"],SC:["H","h","hB"],SD:["h","hB","hb","H"],SE:["H"],SG:["h","hb","H","hB"],SH:["H","h","hb","hB"],SI:["H","hB"],SJ:["H"],SK:["H"],SL:["h","hb","H","hB"],SM:["H","h","hB"],SN:["H","h","hB"],SO:["h","H"],SR:["H","hB"],SS:["h","hb","H","hB"],ST:["H","hB"],SV:["h","H","hB","hb"],SX:["H","h","hb","hB"],SY:["h","hB","hb","H"],SZ:["h","hb","H","hB"],TA:["H","h","hb","hB"],TC:["h","hb","H","hB"],TD:["h","H","hB"],TF:["H","h","hB"],TG:["H","hB"],TH:["H","h"],TJ:["H","h"],TL:["H","hB","hb","h"],TM:["H","h"],TN:["h","hB","hb","H"],TO:["h","H"],TR:["H","hB"],TT:["h","hb","H","hB"],TW:["hB","hb","h","H"],TZ:["hB","hb","H","h"],UA:["H","hB","h"],UG:["hB","hb","H","h"],UM:["h","hb","H","hB"],US:["h","hb","H","hB"],UY:["h","H","hB","hb"],UZ:["H","hB","h"],VA:["H","h","hB"],VC:["h","hb","H","hB"],VE:["h","H","hB","hb"],VG:["h","hb","H","hB"],VI:["h","hb","H","hB"],VN:["H","h"],VU:["h","H"],WF:["H","hB"],WS:["h","H"],XK:["H","hB","h"],YE:["h","hB","hb","H"],YT:["H","hB"],ZA:["H","h","hb","hB"],ZM:["h","hb","H","hB"],ZW:["H","h"],"af-ZA":["H","h","hB","hb"],"ar-001":["h","hB","hb","H"],"ca-ES":["H","h","hB"],"en-001":["h","hb","H","hB"],"en-HK":["h","hb","H","hB"],"en-IL":["H","h","hb","hB"],"en-MY":["h","hb","H","hB"],"es-BR":["H","h","hB","hb"],"es-ES":["H","h","hB","hb"],"es-GQ":["H","h","hB","hb"],"fr-CA":["H","h","hB"],"gl-ES":["H","h","hB"],"gu-IN":["hB","hb","h","H"],"hi-IN":["hB","h","H"],"it-CH":["H","h","hB"],"it-IT":["H","h","hB"],"kn-IN":["hB","h","H"],"ml-IN":["hB","h","H"],"mr-IN":["hB","hb","h","H"],"pa-IN":["hB","hb","h","H"],"ta-IN":["hB","h","hb","H"],"te-IN":["hB","h","H"],"zu-ZA":["H","hB","hb","h"]};function M(t){var e=t.hourCycle;if(void 0===e&&t.hourCycles&&t.hourCycles.length&&(e=t.hourCycles[0]),e)switch(e){case"h24":return"k";case"h23":return"H";case"h12":return"h";case"h11":return"K";default:throw new Error("Invalid hourCycle")}var r,n=t.language;return"root"!==n&&(r=t.maximize().region),(R[r||""]||R[n||""]||R["".concat(n,"-001")]||R["001"])[0]}var w=new RegExp("^".concat(b.source,"*")),U=new RegExp("".concat(b.source,"*$"));function G(t,e){return{start:t,end:e}}var D=!!String.prototype.startsWith&&"_a".startsWith("a",1),F=!!String.fromCodePoint,j=!!Object.fromEntries,k=!!String.prototype.codePointAt,x=!!String.prototype.trimStart,X=!!String.prototype.trimEnd,V=!!Number.isSafeInteger?Number.isSafeInteger:function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t&&Math.abs(t)<=9007199254740991},W=!0;try{W="a"===(null===(L=q("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu").exec("a"))||void 0===L?void 0:L[0])}catch(t){W=!1}var K,$=D?function(t,e,r){return t.startsWith(e,r)}:function(t,e,r){return t.slice(r,r+e.length)===e},Y=F?String.fromCodePoint:function(){for(var t=[],e=0;ei;){if((r=t[i++])>1114111)throw RangeError(r+" is not a valid code point");n+=r<65536?String.fromCharCode(r):String.fromCharCode(55296+((r-=65536)>>10),r%1024+56320)}return n},Z=j?Object.fromEntries:function(t){for(var e={},r=0,n=t;r=r)){var n,o=t.charCodeAt(e);return o<55296||o>56319||e+1===r||(n=t.charCodeAt(e+1))<56320||n>57343?o:n-56320+(o-55296<<10)+65536}},J=x?function(t){return t.trimStart()}:function(t){return t.replace(w,"")},Q=X?function(t){return t.trimEnd()}:function(t){return t.replace(U,"")};function q(t,e){return new RegExp(t,e)}if(W){var tt=q("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");K=function(t,e){var r;return tt.lastIndex=e,null!==(r=tt.exec(t)[1])&&void 0!==r?r:""}}else K=function(t,e){for(var r=[];;){var n=z(t,e);if(void 0===n||nt(n)||ot(n))break;r.push(n),e+=n>=65536?2:1}return Y.apply(void 0,r)};var et=function(){function t(t,e){void 0===e&&(e={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!e.ignoreTag,this.locale=e.locale,this.requiresOtherClause=!!e.requiresOtherClause,this.shouldParseSkeletons=!!e.shouldParseSkeletons}return t.prototype.parse=function(){if(0!==this.offset())throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},t.prototype.parseMessage=function(t,e,r){for(var n=[];!this.isEOF();){var a=this.char();if(123===a){if((s=this.parseArgument(t,r)).err)return s;n.push(s.val)}else{if(125===a&&t>0)break;if(35!==a||"plural"!==e&&"selectordinal"!==e){if(60===a&&!this.ignoreTag&&47===this.peek()){if(r)break;return this.error(o.UNMATCHED_CLOSING_TAG,G(this.clonePosition(),this.clonePosition()))}if(60===a&&!this.ignoreTag&&rt(this.peek()||0)){if((s=this.parseTag(t,e)).err)return s;n.push(s.val)}else{var s;if((s=this.parseLiteral(t,e)).err)return s;n.push(s.val)}}else{var u=this.clonePosition();this.bump(),n.push({type:i.pound,location:G(u,this.clonePosition())})}}}return{val:n,err:null}},t.prototype.parseTag=function(t,e){var r=this.clonePosition();this.bump();var n=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:i.literal,value:"<".concat(n,"/>"),location:G(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var a=this.parseMessage(t+1,e,!0);if(a.err)return a;var s=a.val,u=this.clonePosition();if(this.bumpIf("")?{val:{type:i.tag,value:n,children:s,location:G(r,this.clonePosition())},err:null}:this.error(o.INVALID_TAG,G(u,this.clonePosition())))}return this.error(o.UNCLOSED_TAG,G(r,this.clonePosition()))}return this.error(o.INVALID_TAG,G(r,this.clonePosition()))},t.prototype.parseTagName=function(){var t,e=this.offset();for(this.bump();!this.isEOF()&&(45===(t=this.char())||46===t||t>=48&&t<=57||95===t||t>=97&&t<=122||t>=65&&t<=90||183==t||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=893||t>=895&&t<=8191||t>=8204&&t<=8205||t>=8255&&t<=8256||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039);)this.bump();return this.message.slice(e,this.offset())},t.prototype.parseLiteral=function(t,e){for(var r=this.clonePosition(),n="";;){var o=this.tryParseQuote(e);if(o)n+=o;else{var a=this.tryParseUnquoted(t,e);if(a)n+=a;else{var s=this.tryParseLeftAngleBracket();if(!s)break;n+=s}}}var u=G(r,this.clonePosition());return{val:{type:i.literal,value:n,location:u},err:null}},t.prototype.tryParseLeftAngleBracket=function(){return this.isEOF()||60!==this.char()||!this.ignoreTag&&(rt(t=this.peek()||0)||47===t)?null:(this.bump(),"<");var t},t.prototype.tryParseQuote=function(t){if(this.isEOF()||39!==this.char())return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if("plural"===t||"selectordinal"===t)break;return null;default:return null}this.bump();var e=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(39===r){if(39!==this.peek()){this.bump();break}e.push(39),this.bump()}else e.push(r);this.bump()}return Y.apply(void 0,e)},t.prototype.tryParseUnquoted=function(t,e){if(this.isEOF())return null;var r=this.char();return 60===r||123===r||35===r&&("plural"===e||"selectordinal"===e)||125===r&&t>0?null:(this.bump(),Y(r))},t.prototype.parseArgument=function(t,e){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(o.EXPECT_ARGUMENT_CLOSING_BRACE,G(r,this.clonePosition()));if(125===this.char())return this.bump(),this.error(o.EMPTY_ARGUMENT,G(r,this.clonePosition()));var n=this.parseIdentifierIfPossible().value;if(!n)return this.error(o.MALFORMED_ARGUMENT,G(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(o.EXPECT_ARGUMENT_CLOSING_BRACE,G(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:i.argument,value:n,location:G(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(o.EXPECT_ARGUMENT_CLOSING_BRACE,G(r,this.clonePosition())):this.parseArgumentOptions(t,e,n,r);default:return this.error(o.MALFORMED_ARGUMENT,G(r,this.clonePosition()))}},t.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),e=this.offset(),r=K(this.message,e),n=e+r.length;return this.bumpTo(n),{value:r,location:G(t,this.clonePosition())}},t.prototype.parseArgumentOptions=function(t,e,r,s){var u,c=this.clonePosition(),h=this.parseIdentifierIfPossible().value,l=this.clonePosition();switch(h){case"":return this.error(o.EXPECT_ARGUMENT_TYPE,G(c,l));case"number":case"date":case"time":this.bumpSpace();var f=null;if(this.bumpIf(",")){this.bumpSpace();var p=this.clonePosition();if((_=this.parseSimpleArgStyleIfPossible()).err)return _;if(0===(E=Q(_.val)).length)return this.error(o.EXPECT_ARGUMENT_STYLE,G(this.clonePosition(),this.clonePosition()));f={style:E,styleLocation:G(p,this.clonePosition())}}if((H=this.tryParseArgumentClose(s)).err)return H;var m=G(s,this.clonePosition());if(f&&$(null==f?void 0:f.style,"::",0)){var y=J(f.style.slice(2));if("number"===h)return(_=this.parseNumberSkeletonFromString(y,f.styleLocation)).err?_:{val:{type:i.number,value:r,location:m,style:_.val},err:null};if(0===y.length)return this.error(o.EXPECT_DATE_TIME_SKELETON,m);var g=y;this.locale&&(g=function(t,e){for(var r="",n=0;n>1),u=M(e);for("H"!=u&&"k"!=u||(s=0);s-- >0;)r+="a";for(;a-- >0;)r=u+r}else r+="J"===o?"H":o}return r}(y,this.locale));var E={type:a.dateTime,pattern:g,location:f.styleLocation,parsedOptions:this.shouldParseSkeletons?v(g):{}};return{val:{type:"date"===h?i.date:i.time,value:r,location:m,style:E},err:null}}return{val:{type:"number"===h?i.number:"date"===h?i.date:i.time,value:r,location:m,style:null!==(u=null==f?void 0:f.style)&&void 0!==u?u:null},err:null};case"plural":case"selectordinal":case"select":var b=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(o.EXPECT_SELECT_ARGUMENT_OPTIONS,G(b,n({},b)));this.bumpSpace();var d=this.parseIdentifierIfPossible(),T=0;if("select"!==h&&"offset"===d.value){if(!this.bumpIf(":"))return this.error(o.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,G(this.clonePosition(),this.clonePosition()));var _;if(this.bumpSpace(),(_=this.tryParseDecimalInteger(o.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,o.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE)).err)return _;this.bumpSpace(),d=this.parseIdentifierIfPossible(),T=_.val}var H,A=this.tryParsePluralOrSelectOptions(t,h,e,d);if(A.err)return A;if((H=this.tryParseArgumentClose(s)).err)return H;var B=G(s,this.clonePosition());return"select"===h?{val:{type:i.select,value:r,options:Z(A.val),location:B},err:null}:{val:{type:i.plural,value:r,options:Z(A.val),offset:T,pluralType:"plural"===h?"cardinal":"ordinal",location:B},err:null};default:return this.error(o.INVALID_ARGUMENT_TYPE,G(c,l))}},t.prototype.tryParseArgumentClose=function(t){return this.isEOF()||125!==this.char()?this.error(o.EXPECT_ARGUMENT_CLOSING_BRACE,G(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},t.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,e=this.clonePosition();!this.isEOF();){switch(this.char()){case 39:this.bump();var r=this.clonePosition();if(!this.bumpUntil("'"))return this.error(o.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,G(r,this.clonePosition()));this.bump();break;case 123:t+=1,this.bump();break;case 125:if(!(t>0))return{val:this.message.slice(e.offset,this.offset()),err:null};t-=1;break;default:this.bump()}}return{val:this.message.slice(e.offset,this.offset()),err:null}},t.prototype.parseNumberSkeletonFromString=function(t,e){var r=[];try{r=function(t){if(0===t.length)throw new Error("Number skeleton cannot be empty");for(var e=[],r=0,n=t.split(_).filter((function(t){return t.length>0}));r=48&&a<=57))break;o=!0,i=10*i+(a-48),this.bump()}var s=G(n,this.clonePosition());return o?V(i*=r)?{val:i,err:null}:this.error(e,s):this.error(t,s)},t.prototype.offset=function(){return this.position.offset},t.prototype.isEOF=function(){return this.offset()===this.message.length},t.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},t.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var e=z(this.message,t);if(void 0===e)throw Error("Offset ".concat(t," is at invalid UTF-16 code unit boundary"));return e},t.prototype.error=function(t,e){return{val:null,err:{kind:t,message:this.message,location:e}}},t.prototype.bump=function(){if(!this.isEOF()){var t=this.char();10===t?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},t.prototype.bumpIf=function(t){if($(this.message,t,this.offset())){for(var e=0;e=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},t.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset ".concat(t," must be greater than or equal to the current offset ").concat(this.offset()));for(t=Math.min(t,this.message.length);;){var e=this.offset();if(e===t)break;if(e>t)throw Error("targetOffset ".concat(t," is at invalid UTF-16 code unit boundary"));if(this.bump(),this.isEOF())break}},t.prototype.bumpSpace=function(){for(;!this.isEOF()&&nt(this.char());)this.bump()},t.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),e=this.offset(),r=this.message.charCodeAt(e+(t>=65536?2:1));return null!=r?r:null},t}();function rt(t){return t>=97&&t<=122||t>=65&&t<=90}function nt(t){return t>=9&&t<=13||32===t||133===t||t>=8206&&t<=8207||8232===t||8233===t}function ot(t){return t>=33&&t<=35||36===t||t>=37&&t<=39||40===t||41===t||42===t||43===t||44===t||45===t||t>=46&&t<=47||t>=58&&t<=59||t>=60&&t<=62||t>=63&&t<=64||91===t||92===t||93===t||94===t||96===t||123===t||124===t||125===t||126===t||161===t||t>=162&&t<=165||166===t||167===t||169===t||171===t||172===t||174===t||176===t||177===t||182===t||187===t||191===t||215===t||247===t||t>=8208&&t<=8213||t>=8214&&t<=8215||8216===t||8217===t||8218===t||t>=8219&&t<=8220||8221===t||8222===t||8223===t||t>=8224&&t<=8231||t>=8240&&t<=8248||8249===t||8250===t||t>=8251&&t<=8254||t>=8257&&t<=8259||8260===t||8261===t||8262===t||t>=8263&&t<=8273||8274===t||8275===t||t>=8277&&t<=8286||t>=8592&&t<=8596||t>=8597&&t<=8601||t>=8602&&t<=8603||t>=8604&&t<=8607||8608===t||t>=8609&&t<=8610||8611===t||t>=8612&&t<=8613||8614===t||t>=8615&&t<=8621||8622===t||t>=8623&&t<=8653||t>=8654&&t<=8655||t>=8656&&t<=8657||8658===t||8659===t||8660===t||t>=8661&&t<=8691||t>=8692&&t<=8959||t>=8960&&t<=8967||8968===t||8969===t||8970===t||8971===t||t>=8972&&t<=8991||t>=8992&&t<=8993||t>=8994&&t<=9e3||9001===t||9002===t||t>=9003&&t<=9083||9084===t||t>=9085&&t<=9114||t>=9115&&t<=9139||t>=9140&&t<=9179||t>=9180&&t<=9185||t>=9186&&t<=9254||t>=9255&&t<=9279||t>=9280&&t<=9290||t>=9291&&t<=9311||t>=9472&&t<=9654||9655===t||t>=9656&&t<=9664||9665===t||t>=9666&&t<=9719||t>=9720&&t<=9727||t>=9728&&t<=9838||9839===t||t>=9840&&t<=10087||10088===t||10089===t||10090===t||10091===t||10092===t||10093===t||10094===t||10095===t||10096===t||10097===t||10098===t||10099===t||10100===t||10101===t||t>=10132&&t<=10175||t>=10176&&t<=10180||10181===t||10182===t||t>=10183&&t<=10213||10214===t||10215===t||10216===t||10217===t||10218===t||10219===t||10220===t||10221===t||10222===t||10223===t||t>=10224&&t<=10239||t>=10240&&t<=10495||t>=10496&&t<=10626||10627===t||10628===t||10629===t||10630===t||10631===t||10632===t||10633===t||10634===t||10635===t||10636===t||10637===t||10638===t||10639===t||10640===t||10641===t||10642===t||10643===t||10644===t||10645===t||10646===t||10647===t||10648===t||t>=10649&&t<=10711||10712===t||10713===t||10714===t||10715===t||t>=10716&&t<=10747||10748===t||10749===t||t>=10750&&t<=11007||t>=11008&&t<=11055||t>=11056&&t<=11076||t>=11077&&t<=11078||t>=11079&&t<=11084||t>=11085&&t<=11123||t>=11124&&t<=11125||t>=11126&&t<=11157||11158===t||t>=11159&&t<=11263||t>=11776&&t<=11777||11778===t||11779===t||11780===t||11781===t||t>=11782&&t<=11784||11785===t||11786===t||11787===t||11788===t||11789===t||t>=11790&&t<=11798||11799===t||t>=11800&&t<=11801||11802===t||11803===t||11804===t||11805===t||t>=11806&&t<=11807||11808===t||11809===t||11810===t||11811===t||11812===t||11813===t||11814===t||11815===t||11816===t||11817===t||t>=11818&&t<=11822||11823===t||t>=11824&&t<=11833||t>=11834&&t<=11835||t>=11836&&t<=11839||11840===t||11841===t||11842===t||t>=11843&&t<=11855||t>=11856&&t<=11857||11858===t||t>=11859&&t<=11903||t>=12289&&t<=12291||12296===t||12297===t||12298===t||12299===t||12300===t||12301===t||12302===t||12303===t||12304===t||12305===t||t>=12306&&t<=12307||12308===t||12309===t||12310===t||12311===t||12312===t||12313===t||12314===t||12315===t||12316===t||12317===t||t>=12318&&t<=12319||12320===t||12336===t||64830===t||64831===t||t>=65093&&t<=65094}function it(t){t.forEach((function(t){if(delete t.location,f(t)||p(t))for(var e in t.options)delete t.options[e].location,it(t.options[e].value);else c(t)&&g(t.style)||(h(t)||l(t))&&E(t.style)?delete t.style.location:y(t)&&it(t.children)}))}function at(t,e){void 0===e&&(e={}),e=n({shouldParseSkeletons:!0,requiresOtherClause:!0},e);var r=new et(t,e).parse();if(r.err){var i=SyntaxError(o[r.err.kind]);throw i.location=r.err.location,i.originalMessage=r.err.message,i}return(null==e?void 0:e.captureLocation)||it(r.val),r.val}},9160:function(t,e,r){"use strict";r.d(e,{Ho:function(){return h},OC:function(){return a},hr:function(){return u},pg:function(){return c},sb:function(){return l},uo:function(){return s}});var n,o=r(1293);!function(t){t.FORMAT_ERROR="FORMAT_ERROR",t.UNSUPPORTED_FORMATTER="UNSUPPORTED_FORMATTER",t.INVALID_CONFIG="INVALID_CONFIG",t.MISSING_DATA="MISSING_DATA",t.MISSING_TRANSLATION="MISSING_TRANSLATION"}(n||(n={}));var i=function(t){function e(r,n,o){var i=this,a=o?o instanceof Error?o:new Error(String(o)):void 0;return(i=t.call(this,"[@formatjs/intl Error ".concat(r,"] ").concat(n,"\n").concat(a?"\n".concat(a.message,"\n").concat(a.stack):""))||this).code=r,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(i,e),i}return(0,o.C6)(e,t),e}(Error),a=function(t){function e(e,r){return t.call(this,n.UNSUPPORTED_FORMATTER,e,r)||this}return(0,o.C6)(e,t),e}(i),s=function(t){function e(e,r){return t.call(this,n.INVALID_CONFIG,e,r)||this}return(0,o.C6)(e,t),e}(i),u=function(t){function e(e,r){return t.call(this,n.MISSING_DATA,e,r)||this}return(0,o.C6)(e,t),e}(i),c=function(t){function e(e,r,o){var i=t.call(this,n.FORMAT_ERROR,"".concat(e,"\nLocale: ").concat(r,"\n"),o)||this;return i.locale=r,i}return(0,o.C6)(e,t),e}(i),h=function(t){function e(e,r,n,o){var i=t.call(this,"".concat(e,"\nMessageID: ").concat(null==n?void 0:n.id,"\nDefault Message: ").concat(null==n?void 0:n.defaultMessage,"\nDescription: ").concat(null==n?void 0:n.description,"\n"),r,o)||this;return i.descriptor=n,i.locale=r,i}return(0,o.C6)(e,t),e}(c),l=function(t){function e(e,r){var o=t.call(this,n.MISSING_TRANSLATION,'Missing message: "'.concat(e.id,'" for locale "').concat(r,'", using ').concat(e.defaultMessage?"default message (".concat("string"==typeof e.defaultMessage?e.defaultMessage:e.defaultMessage.map((function(t){var e;return null!==(e=t.value)&&void 0!==e?e:JSON.stringify(t)})).join(),")"):"id"," as fallback."))||this;return o.descriptor=e,o}return(0,o.C6)(e,t),e}(i)},7683:function(t,e,r){"use strict";r.d(e,{F3:function(){return f},GT:function(){return l},J9:function(){return s},JF:function(){return u},MT:function(){return c}});var n=r(1293),o=r(2587),i=r(4819),a=r(9160);function s(t,e,r){return void 0===r&&(r={}),e.reduce((function(e,n){return n in t?e[n]=t[n]:n in r&&(e[n]=r[n]),e}),{})}var u={formats:{},messages:{},timeZone:void 0,defaultLocale:"en",defaultFormats:{},fallbackOnEmptyString:!0,onError:function(t){0},onWarn:function(t){0}};function c(){return{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}}}function h(t){return{create:function(){return{get:function(e){return t[e]},set:function(e,r){t[e]=r}}}}}function l(t){void 0===t&&(t={dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}});var e=Intl.RelativeTimeFormat,r=Intl.ListFormat,a=Intl.DisplayNames,s=(0,i.B)((function(){for(var t,e=[],r=0;r0?new Intl.Locale(e[0]):new Intl.Locale("string"==typeof t?t:t[0])}},t.__parse=i.qg,t.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},t}()},1732:function(t,e,r){"use strict";r.d(e,{$x:function(){return a},Ei:function(){return u},IF:function(){return i},O4:function(){return n},Zo:function(){return s}});var n,o=r(7801);!function(t){t.MISSING_VALUE="MISSING_VALUE",t.INVALID_VALUE="INVALID_VALUE",t.MISSING_INTL_API="MISSING_INTL_API"}(n||(n={}));var i=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.code=r,o.originalMessage=n,o}return(0,o.C6)(e,t),e.prototype.toString=function(){return"[formatjs Error: ".concat(this.code,"] ").concat(this.message)},e}(Error),a=function(t){function e(e,r,o,i){return t.call(this,'Invalid values for "'.concat(e,'": "').concat(r,'". Options are "').concat(Object.keys(o).join('", "'),'"'),n.INVALID_VALUE,i)||this}return(0,o.C6)(e,t),e}(i),s=function(t){function e(e,r,o){return t.call(this,'Value for "'.concat(e,'" must be of type ').concat(r),n.INVALID_VALUE,o)||this}return(0,o.C6)(e,t),e}(i),u=function(t){function e(e,r){return t.call(this,'The intl string context variable "'.concat(e,'" was not provided to the string "').concat(r,'"'),n.MISSING_VALUE,r)||this}return(0,o.C6)(e,t),e}(i)},1071:function(t,e,r){"use strict";r.d(e,{RK:function(){return a},TT:function(){return n},hN:function(){return s}});var n,o=r(7175),i=r(1732);function a(t){return"function"==typeof t}function s(t,e,r,u,c,h,l){if(1===t.length&&(0,o.eW)(t[0]))return[{type:n.literal,value:t[0].value}];for(var f=[],p=0,m=t;p needs to exist in the component ancestry.")}var u=(0,n.Cl)((0,n.Cl)({},a.JF),{textComponent:o.Fragment});function c(t){return function(e){return t(o.Children.toArray(e))}}function h(t,e){if(t===e)return!0;if(!t||!e)return!1;var r=Object.keys(t),n=Object.keys(e),o=r.length;if(n.length!==o)return!1;for(var i=0;i=0||(o[r]=t[r]);return o}r.d(e,{A:function(){return n}})},7927:function(t,e,r){"use strict";r.d(e,{C6:function(){return o},fX:function(){return i}});var n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)};function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}Object.create;function i(t,e,r){if(r||2===arguments.length)for(var n,o=0,i=e.length;o= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"variant\", \"animation\", \"size\", \"children\", \"as\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar Spinner = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n animation = _ref.animation,\n size = _ref.size,\n children = _ref.children,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n var bsSpinnerPrefix = bsPrefix + \"-\" + animation;\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsSpinnerPrefix, size && bsSpinnerPrefix + \"-\" + size, variant && \"text-\" + variant)\n }), children);\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = /*#__PURE__*/React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\" + (Component.displayName || Component.name) + \")\";\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import { __assign } from \"tslib\";\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(\n // @ts-expect-error\n React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n"],"names":["getMagnitude","x","Math","floor","log","LOG10E","repeat","s","times","arr","Array","i","length","join","setInternalSlot","map","pl","field","value","get","set","Object","create","setMultiInternalSlots","props","_i","_a","keys","k","getInternalSlot","getMultiInternalSlots","fields","arguments","slots","TypeError","concat","reduce","all","f","isLiteralPart","patternPart","type","defineProperty","target","name","configurable","enumerable","writable","createDataProperty","invariant","condition","message","Err","Error","createMemoizedNumberFormat","args","Intl","NumberFormat","bind","apply","strategy","variadic","createMemoizedDateTimeFormat","DateTimeFormat","createMemoizedPluralRules","PluralRules","createMemoizedLocale","Locale","createMemoizedListFormat","ListFormat","memoize","fn","options","cache","cacheDefault","serializer","serializerDefault","strategyDefault","monadic","arg","cacheKey","computedValue","call","this","prototype","slice","assemble","context","serialize","JSON","stringify","ObjectWithoutPrototypeCache","key","strategies","__assign","assign","t","n","p","hasOwnProperty","SuppressedError","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","result","replace","match","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","roundingPriority","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","style","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","roundingMode","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","timeData","getDefaultHourSymbolFromLocale","locale","undefined","hourCycles","regionTag","languageTag","language","maximize","region","SPACE_SEPARATOR_START_REGEX","RegExp","source","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","String","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","abs","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","position","codePoints","code","elements","fromCharCode","entries","obj","entries_1","v","index","size","first","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","c","_isWhiteSpace","_isPatternSyntax","push","Parser","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parse","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","err","val","peek","error","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","location","startPosition","tagName","parseTagName","bumpSpace","bumpIf","childrenResult","children","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","dateTimePattern","skeletonCopy","patternPos","patternChar","charAt","extraLength","hourLen","dayPeriodLen","hourChar","getBestPattern","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","split","filter","stemAndOptions","options_1","e","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","Set","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","has","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","add","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","kind","prefix","currentOffset","indexOf","targetOffset","min","nextCode","pruneLocation","els","forEach","opts","SyntaxError","originalMessage","captureLocation","IntlErrorCode","IntlError","_super","exception","_this","stack","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","FORMAT_ERROR","MessageFormatError","descriptor","id","defaultMessage","description","MissingTranslationError","MISSING_TRANSLATION","filterProps","allowlist","defaults","filtered","DEFAULT_INTL_CONFIG","formats","messages","timeZone","defaultLocale","defaultFormats","fallbackOnEmptyString","onError","onWarn","warning","createIntlCache","relativeTime","pluralRules","list","displayNames","createFastMemoizeCache","store","createFormatters","RelativeTimeFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getMessageFormat","locales","overrideFormats","formatters","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","format","formatType","hasOwn","classNames","classes","isArray","inner","toString","module","exports","default","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","mergeConfigs","defaultConfig","configs","c1","c2","IntlMessageFormat","formatterCache","values","parts","formatToParts","part","ast","resolvedOptions","resolvedLocale","supportedLocalesOf","getAst","resolveLocale","__parse","parseOpts","memoizedDefaultLocale","supportedLocales","integer","percent","short","medium","long","full","ErrorCode","FormatError","msg","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","PART_TYPE","isFormatXMLElementFn","currentPluralValue","els_1","varName","object","value_1","formatFn","chunks","other","MISSING_INTL_API","rule","lastPart","mergeLiteral","_excluded","Spinner","_ref","ref","bsPrefix","variant","animation","_ref$as","as","Component","className","bsSpinnerPrefix","ThemeContext","Consumer","Provider","useBootstrapPrefix","defaultPrefix","prefixes","useContext","IntlContext","window","__REACT_INTL_BYPASS_GLOBAL_CONTEXT__","__REACT_INTL_CONTEXT__","IntlConsumer","Context","injectIntl","WrappedComponent","_b","intlPropName","_c","forwardRef","_d","enforceContext","WithIntl","intl","intlProp","forwardedRef","FormattedMessage","formatMessage","textComponent","Text","nodes","toArray","MemoizedFormattedMessage","prevProps","nextProps","otherProps","nextValues","nextOtherProps","useIntl","invariantIntlContext","assignUniqueKeysToParts","formatXMLElementFn","shallowEqual","objA","objB","aKeys","bKeys","b","Symbol","for","d","g","h","l","m","q","r","w","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","extendStatics","setPrototypeOf","__proto__","__extends","__","constructor","__spreadArray","to","from","pack","ar","__rest","propertyIsEnumerable"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6558.bc6ce40c4916fa9be3d8.bundle.js b/webpanel/6.6.0/6558.bc6ce40c4916fa9be3d8.bundle.js new file mode 100644 index 00000000..6afe0470 --- /dev/null +++ b/webpanel/6.6.0/6558.bc6ce40c4916fa9be3d8.bundle.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6558],{6558:function(){}}]); \ No newline at end of file diff --git a/webpanel/6.6.0/6558.css b/webpanel/6.6.0/6558.css new file mode 100644 index 00000000..ae7c75c8 --- /dev/null +++ b/webpanel/6.6.0/6558.css @@ -0,0 +1,2 @@ +@charset "UTF-8";.navbar{font-weight:600;z-index:4}.vmin-50{height:50vmin!important;width:50vmin!important}.navbar-dark>.navbar-nav>.nav-link.active{font-weight:700}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#02549a;--secondary:#2576bc;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--transparent:transparent;--background:#212529;--darker:#16181b;--darkblue:#02437b;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{background-color:#212529;color:#e9ecef;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;margin-top:0}p{margin-bottom:1rem;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{background-color:transparent;color:#88bbe8}a,a:hover{text-decoration:underline}a:hover{color:#4897db}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-bottom:1rem;margin-top:0;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{caption-side:bottom;color:#6c757d;padding-bottom:.75rem;padding-top:.75rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{cursor:pointer;display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{border:0;border-top:1px solid hsla(0,0%,100%,.2);margin-bottom:1rem;margin-top:1rem}.small,small{font-size:.875em;font-weight:400}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote-footer{color:#6c757d;display:block;font-size:.875em}.blockquote-footer:before{content:"— "}code{font-size:87.5%;word-wrap:break-word}a>code,code{color:inherit}kbd{background-color:#212529;border-radius:.2rem;box-shadow:inset 0 -.1rem 0 rgba(0,0,0,.25);color:#fff;font-size:87.5%;padding:.2rem .4rem}kbd kbd{box-shadow:none;font-size:100%;font-weight:700;padding:0}pre{display:block;font-size:87.5%}pre,pre code{color:inherit}pre code{font-size:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1240px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.no-gutters{margin-left:0;margin-right:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-left:0;padding-right:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-1{-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-sm-1{-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-md-1{-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-lg-1{-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-xl-1{-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{color:#e9ecef;margin-bottom:1rem;width:100%}.table td,.table th{border-top:1px solid #343a40;padding:.75rem;vertical-align:top}.table thead th{border-bottom:2px solid #343a40;vertical-align:bottom}.table tbody+tbody{border-top:2px solid #343a40}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #343a40}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075);color:#e9ecef}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8cfe3}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7ba6ca}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a6c3db}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#c2d9ec}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#8eb8dc}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#aecce6}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe7a0}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b1b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#eef1f3}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbd}.table-transparent,.table-transparent>td,.table-transparent>th{background-color:hsla(0,0%,100%,.72)}.table-transparent tbody+tbody,.table-transparent td,.table-transparent th,.table-transparent thead th{border-color:hsla(0,0%,100%,.48)}.table-hover .table-transparent:hover,.table-hover .table-transparent:hover>td,.table-hover .table-transparent:hover>th{background-color:hsla(0,0%,95%,.72)}.table-background,.table-background>td,.table-background>th{background-color:#c1c2c3}.table-background tbody+tbody,.table-background td,.table-background th,.table-background thead th{border-color:#8c8e90}.table-hover .table-background:hover,.table-hover .table-background:hover>td,.table-hover .table-background:hover>th{background-color:#b4b5b7}.table-darker,.table-darker>td,.table-darker>th{background-color:#bebebf}.table-darker tbody+tbody,.table-darker td,.table-darker th,.table-darker thead th{border-color:#868788}.table-hover .table-darker:hover,.table-hover .table-darker:hover>td,.table-hover .table-darker:hover>th{background-color:#b1b2b3}.table-darkblue,.table-darkblue>td,.table-darkblue>th{background-color:#b8cada}.table-darkblue tbody+tbody,.table-darkblue td,.table-darkblue th,.table-darkblue thead th{border-color:#7b9dba}.table-hover .table-darkblue:hover,.table-hover .table-darkblue:hover>td,.table-hover .table-darkblue:hover>th{background-color:#a7bed1}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{background-color:#343a40;border-color:#454d55;color:#fff}.table .thead-light th{background-color:#e9ecef;border-color:#343a40;color:#495057}.table-dark{background-color:#343a40;color:#fff}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{background-color:hsla(0,0%,100%,.075);color:#fff}@media (max-width:575.98px){.table-responsive-sm{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#495057;display:block;font-size:1rem;font-weight:400;height:calc(1.5em + .75rem + 2px);line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{background-color:#fff;border-color:#1f96fc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(2,84,154,.25);color:#495057;outline:0}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{background-color:#fff;color:#495057}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{font-size:inherit;line-height:1.5;margin-bottom:0;padding-bottom:calc(.375rem + 1px);padding-top:calc(.375rem + 1px)}.col-form-label-lg{font-size:1.25rem;line-height:1.5;padding-bottom:calc(.5rem + 1px);padding-top:calc(.5rem + 1px)}.col-form-label-sm{font-size:.875rem;line-height:1.5;padding-bottom:calc(.25rem + 1px);padding-top:calc(.25rem + 1px)}.form-control-plaintext{background-color:transparent;border:solid transparent;border-width:1px 0;color:#e9ecef;display:block;font-size:1rem;line-height:1.5;margin-bottom:0;padding:.375rem 0;width:100%}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:.2rem;font-size:.875rem;height:calc(1.5em + .5rem + 2px);line-height:1.5;padding:.25rem .5rem}.form-control-lg{border-radius:.3rem;font-size:1.25rem;height:calc(1.5em + 1rem + 2px);line-height:1.5;padding:.5rem 1rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-5px;margin-right:-5px}.form-row>.col,.form-row>[class*=col-]{padding-left:5px;padding-right:5px}.form-check{display:block;padding-left:1.25rem;position:relative}.form-check-input{margin-left:-1.25rem;margin-top:.3rem;position:absolute}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;margin-right:.75rem;padding-left:0}.form-check-inline .form-check-input{margin-left:0;margin-right:.3125rem;margin-top:0;position:static}.valid-feedback{color:#28a745;display:none;font-size:.875em;margin-top:.25rem;width:100%}.valid-tooltip{background-color:rgba(40,167,69,.9);border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#28a745;padding-right:calc(1.5em + .75rem)!important}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-valid,.was-validated .custom-select:valid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background:#34ce57 linear-gradient(180deg,#31b550,#34ce57) repeat-x;border-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{color:#dc3545;display:none;font-size:.875em;margin-top:.25rem;width:100%}.invalid-tooltip{background-color:rgba(220,53,69,.9);border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem);padding-right:calc(1.5em + .75rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat;border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background:#e4606d linear-gradient(180deg,#c65863,#e4606d) repeat-x;border-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-ms-flex-align:center;-ms-flex-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{align-items:center;display:-ms-flexbox;display:flex;margin-bottom:0}.form-inline .form-group{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center}.form-inline .form-control{display:inline-block;vertical-align:middle;width:auto}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding-left:0;width:auto}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-left:0;margin-right:.25rem;margin-top:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;color:#e9ecef;display:inline-block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#e9ecef;text-decoration:none}.btn.focus,.btn:focus{box-shadow:0 0 0 .2rem rgba(2,84,154,.25);outline:0}.btn.disabled,.btn:disabled{box-shadow:none;opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(2,84,154,.25),inset 0 3px 5px rgba(0,0,0,.125)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border-color:#02549a;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{background:#023f74 linear-gradient(180deg,#063b69,#023f74) repeat-x;border-color:#013968;color:#fff}.btn-primary.focus,.btn-primary:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(40,110,169,.5)}.btn-primary.disabled,.btn-primary:disabled{background-color:#02549a;background-image:none;border-color:#02549a;color:#fff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{background-color:#013968;background-image:none;border-color:#01325b;color:#fff}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(40,110,169,.5)}.btn-secondary{background:#2576bc linear-gradient(180deg,#246aa6,#2576bc) repeat-x;border-color:#2576bc;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{background:#1f629c linear-gradient(180deg,#1f598b,#1f629c) repeat-x;border-color:#1d5b91;color:#fff}.btn-secondary.focus,.btn-secondary:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(70,139,198,.5)}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#2576bc;background-image:none;border-color:#2576bc;color:#fff}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#1d5b91;background-image:none;border-color:#1b5587;color:#fff}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(70,139,198,.5)}.btn-success{background:#28a745 linear-gradient(180deg,#279441,#28a745) repeat-x;border-color:#28a745;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-success.focus,.btn-success:focus,.btn-success:hover{background:#218838 linear-gradient(180deg,#217936,#218838) repeat-x;border-color:#1e7e34;color:#fff}.btn-success.focus,.btn-success:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{background-color:#28a745;background-image:none;border-color:#28a745;color:#fff}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{background-color:#1e7e34;background-image:none;border-color:#1c7430;color:#fff}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{background:#17a2b8 linear-gradient(180deg,#198fa3,#17a2b8) repeat-x;border-color:#17a2b8;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-info.focus,.btn-info:focus,.btn-info:hover{background:#138496 linear-gradient(180deg,#157686,#138496) repeat-x;border-color:#117a8b;color:#fff}.btn-info.focus,.btn-info:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{background-color:#17a2b8;background-image:none;border-color:#17a2b8;color:#fff}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{background-color:#117a8b;background-image:none;border-color:#10707f;color:#fff}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{background:#ffc107 linear-gradient(180deg,#deaa0c,#ffc107) repeat-x;border-color:#ffc107;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#212529}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{background:#e0a800 linear-gradient(180deg,#c39406,#e0a800) repeat-x;border-color:#d39e00;color:#212529}.btn-warning.focus,.btn-warning:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#ffc107;background-image:none;border-color:#ffc107;color:#212529}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{background-color:#d39e00;background-image:none;border-color:#c69500;color:#212529}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{background:#dc3545 linear-gradient(180deg,#c03341,#dc3545) repeat-x;border-color:#dc3545;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{background:#c82333 linear-gradient(180deg,#af2331,#c82333) repeat-x;border-color:#bd2130;color:#fff}.btn-danger.focus,.btn-danger:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#dc3545;background-image:none;border-color:#dc3545;color:#fff}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{background-color:#bd2130;background-image:none;border-color:#b21f2d;color:#fff}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{background:#f8f9fa linear-gradient(180deg,#d8d9db,#f8f9fa) repeat-x;border-color:#f8f9fa;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#212529}.btn-light.focus,.btn-light:focus,.btn-light:hover{background:#e2e6ea linear-gradient(180deg,#c5c9cd,#e2e6ea) repeat-x;border-color:#dae0e5;color:#212529}.btn-light.focus,.btn-light:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem hsla(210,4%,85%,.5)}.btn-light.disabled,.btn-light:disabled{background-color:#f8f9fa;background-image:none;border-color:#f8f9fa;color:#212529}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{background-color:#dae0e5;background-image:none;border-color:#d3d9df;color:#212529}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem hsla(210,4%,85%,.5)}.btn-dark{background:#343a40 linear-gradient(180deg,#31373d,#343a40) repeat-x;border-color:#343a40;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{background:#23272b linear-gradient(180deg,#23272b,#23272b) repeat-x;border-color:#1d2124;color:#fff}.btn-dark.focus,.btn-dark:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{background-color:#343a40;background-image:none;border-color:#343a40;color:#fff}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{background-color:#1d2124;background-image:none;border-color:#171a1d;color:#fff}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(82,88,93,.5)}.btn-transparent{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075)}.btn-transparent,.btn-transparent.focus,.btn-transparent:focus,.btn-transparent:hover{background:transparent linear-gradient(180deg,rgba(33,37,41,.15),transparent) repeat-x;border-color:transparent;color:#fff}.btn-transparent.focus,.btn-transparent:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem hsla(0,0%,100%,.5)}.btn-transparent.disabled,.btn-transparent:disabled,.btn-transparent:not(:disabled):not(.disabled).active,.btn-transparent:not(:disabled):not(.disabled):active,.show>.btn-transparent.dropdown-toggle{background-color:transparent;background-image:none;border-color:transparent;color:#fff}.btn-transparent:not(:disabled):not(.disabled).active:focus,.btn-transparent:not(:disabled):not(.disabled):active:focus,.show>.btn-transparent.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem hsla(0,0%,100%,.5)}.btn-background{background:#212529 linear-gradient(180deg,#212529,#212529) repeat-x;border-color:#212529;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-background.focus,.btn-background:focus,.btn-background:hover{background:#101214 linear-gradient(180deg,#131517,#101214) repeat-x;border-color:#0a0c0d;color:#fff}.btn-background.focus,.btn-background:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(66,70,73,.5)}.btn-background.disabled,.btn-background:disabled{background-color:#212529;background-image:none;border-color:#212529;color:#fff}.btn-background:not(:disabled):not(.disabled).active,.btn-background:not(:disabled):not(.disabled):active,.show>.btn-background.dropdown-toggle{background-color:#0a0c0d;background-image:none;border-color:#050506;color:#fff}.btn-background:not(:disabled):not(.disabled).active:focus,.btn-background:not(:disabled):not(.disabled):active:focus,.show>.btn-background.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(66,70,73,.5)}.btn-darker{background:#16181b linear-gradient(180deg,#171a1d,#16181b) repeat-x;border-color:#16181b;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-darker.focus,.btn-darker:focus,.btn-darker:hover{background:#050506 linear-gradient(180deg,#090a0b,#050506) repeat-x;border-color:#000;color:#fff}.btn-darker.focus,.btn-darker:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(57,59,61,.5)}.btn-darker.disabled,.btn-darker:disabled{background-color:#16181b;background-image:none;border-color:#16181b;color:#fff}.btn-darker:not(:disabled):not(.disabled).active,.btn-darker:not(:disabled):not(.disabled):active,.show>.btn-darker.dropdown-toggle{background-color:#000;background-image:none;border-color:#000;color:#fff}.btn-darker:not(:disabled):not(.disabled).active:focus,.btn-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-darker.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(57,59,61,.5)}.btn-darkblue{background:#02437b linear-gradient(180deg,#063f6f,#02437b) repeat-x;border-color:#02437b;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);color:#fff}.btn-darkblue.focus,.btn-darkblue:focus,.btn-darkblue:hover{background:#012f55 linear-gradient(180deg,#062d4f,#012f55) repeat-x;border-color:#012849;color:#fff}.btn-darkblue.focus,.btn-darkblue:focus{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(40,95,143,.5)}.btn-darkblue.disabled,.btn-darkblue:disabled{background-color:#02437b;background-image:none;border-color:#02437b;color:#fff}.btn-darkblue:not(:disabled):not(.disabled).active,.btn-darkblue:not(:disabled):not(.disabled):active,.show>.btn-darkblue.dropdown-toggle{background-color:#012849;background-image:none;border-color:#01213c;color:#fff}.btn-darkblue:not(:disabled):not(.disabled).active:focus,.btn-darkblue:not(:disabled):not(.disabled):active:focus,.show>.btn-darkblue.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(40,95,143,.5)}.btn-outline-primary{border-color:#02549a;color:#02549a}.btn-outline-primary:hover{background-color:#02549a;border-color:#02549a;color:#fff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(2,84,154,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{background-color:transparent;color:#02549a}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{background-color:#02549a;border-color:#02549a;color:#fff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(2,84,154,.5)}.btn-outline-secondary{border-color:#2576bc;color:#2576bc}.btn-outline-secondary:hover{background-color:#2576bc;border-color:#2576bc;color:#fff}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(37,118,188,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{background-color:transparent;color:#2576bc}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{background-color:#2576bc;border-color:#2576bc;color:#fff}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(37,118,188,.5)}.btn-outline-success{border-color:#28a745;color:#28a745}.btn-outline-success:hover{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{background-color:transparent;color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{border-color:#17a2b8;color:#17a2b8}.btn-outline-info:hover{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{background-color:transparent;color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{border-color:#ffc107;color:#ffc107}.btn-outline-warning:hover{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{background-color:transparent;color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{border-color:#dc3545;color:#dc3545}.btn-outline-danger:hover{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{background-color:transparent;color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{border-color:#f8f9fa;color:#f8f9fa}.btn-outline-light:hover{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{background-color:transparent;color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{border-color:#343a40;color:#343a40}.btn-outline-dark:hover{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{background-color:transparent;color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-transparent{border-color:transparent;color:transparent}.btn-outline-transparent:hover{background-color:transparent;border-color:transparent;color:#fff}.btn-outline-transparent.focus,.btn-outline-transparent:focus{box-shadow:0 0 0 .2rem rgba(0,0,0,.5)}.btn-outline-transparent.disabled,.btn-outline-transparent:disabled{background-color:transparent;color:transparent}.btn-outline-transparent:not(:disabled):not(.disabled).active,.btn-outline-transparent:not(:disabled):not(.disabled):active,.show>.btn-outline-transparent.dropdown-toggle{background-color:transparent;border-color:transparent;color:#fff}.btn-outline-transparent:not(:disabled):not(.disabled).active:focus,.btn-outline-transparent:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-transparent.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(0,0,0,.5)}.btn-outline-background{border-color:#212529;color:#212529}.btn-outline-background:hover{background-color:#212529;border-color:#212529;color:#fff}.btn-outline-background.focus,.btn-outline-background:focus{box-shadow:0 0 0 .2rem rgba(33,37,41,.5)}.btn-outline-background.disabled,.btn-outline-background:disabled{background-color:transparent;color:#212529}.btn-outline-background:not(:disabled):not(.disabled).active,.btn-outline-background:not(:disabled):not(.disabled):active,.show>.btn-outline-background.dropdown-toggle{background-color:#212529;border-color:#212529;color:#fff}.btn-outline-background:not(:disabled):not(.disabled).active:focus,.btn-outline-background:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-background.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(33,37,41,.5)}.btn-outline-darker{border-color:#16181b;color:#16181b}.btn-outline-darker:hover{background-color:#16181b;border-color:#16181b;color:#fff}.btn-outline-darker.focus,.btn-outline-darker:focus{box-shadow:0 0 0 .2rem rgba(22,24,27,.5)}.btn-outline-darker.disabled,.btn-outline-darker:disabled{background-color:transparent;color:#16181b}.btn-outline-darker:not(:disabled):not(.disabled).active,.btn-outline-darker:not(:disabled):not(.disabled):active,.show>.btn-outline-darker.dropdown-toggle{background-color:#16181b;border-color:#16181b;color:#fff}.btn-outline-darker:not(:disabled):not(.disabled).active:focus,.btn-outline-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-darker.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(22,24,27,.5)}.btn-outline-darkblue{border-color:#02437b;color:#02437b}.btn-outline-darkblue:hover{background-color:#02437b;border-color:#02437b;color:#fff}.btn-outline-darkblue.focus,.btn-outline-darkblue:focus{box-shadow:0 0 0 .2rem rgba(2,67,123,.5)}.btn-outline-darkblue.disabled,.btn-outline-darkblue:disabled{background-color:transparent;color:#02437b}.btn-outline-darkblue:not(:disabled):not(.disabled).active,.btn-outline-darkblue:not(:disabled):not(.disabled):active,.show>.btn-outline-darkblue.dropdown-toggle{background-color:#02437b;border-color:#02437b;color:#fff}.btn-outline-darkblue:not(:disabled):not(.disabled).active:focus,.btn-outline-darkblue:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-darkblue.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .2rem rgba(2,67,123,.5)}.btn-link{color:#88bbe8;font-weight:400;text-decoration:underline}.btn-link:hover{color:#4897db}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-lg{border-radius:.3rem;font-size:1.25rem;line-height:1.5;padding:.5rem 1rem}.btn-sm{border-radius:.2rem;font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;position:relative;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{background-clip:padding-box;background-color:#495057;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.175);color:#000;display:none;float:left;font-size:1rem;left:0;list-style:none;margin:.125rem 0 0;min-width:10rem;padding:.5rem 0;position:absolute;text-align:left;top:100%;z-index:1000}.dropdown-menu-left{left:0;right:auto}.dropdown-menu-right{left:auto;right:0}@media (min-width:576px){.dropdown-menu-sm-left{left:0;right:auto}.dropdown-menu-sm-right{left:auto;right:0}}@media (min-width:768px){.dropdown-menu-md-left{left:0;right:auto}.dropdown-menu-md-right{left:auto;right:0}}@media (min-width:992px){.dropdown-menu-lg-left{left:0;right:auto}.dropdown-menu-lg-right{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-left{left:0;right:auto}.dropdown-menu-xl-right{left:auto;right:0}}.dropup .dropdown-menu{bottom:100%;margin-bottom:.125rem;margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:0;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{left:100%;margin-left:.125rem;margin-top:0;right:auto;top:0}.dropright .dropdown-toggle:after{border-bottom:.3em solid transparent;border-left:.3em solid;border-right:0;border-top:.3em solid transparent;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{left:auto;margin-right:.125rem;margin-top:0;right:100%;top:0}.dropleft .dropdown-toggle:after{content:"";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:before{border-bottom:.3em solid transparent;border-right:.3em solid;border-top:.3em solid transparent;content:"";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{bottom:auto;right:auto}.dropdown-divider{border-top:1px solid #e9ecef;height:0;margin:.5rem 0;overflow:hidden}.dropdown-item{background-color:transparent;border:0;clear:both;color:#fff;display:block;font-weight:400;padding:.25rem 1.5rem;text-align:inherit;text-decoration:none;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background:#3d4349 linear-gradient(180deg,#393f44,#3d4349) repeat-x;color:#fff;text-decoration:none}.dropdown-item.active,.dropdown-item:active{background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;color:#fff;text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:transparent;background-image:none;color:#adb5bd;pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:#6c757d;display:block;font-size:.875rem;margin-bottom:0;padding:.5rem 1.5rem;white-space:nowrap}.dropdown-item-text{color:#fff;display:block;padding:.25rem 1.5rem}.input-group{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:0;min-width:0;position:relative;width:1%}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-bottom-left-radius:0;border-top-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem;color:#495057;font-size:1rem;font-weight:400;line-height:1.5;margin-bottom:0;padding:.375rem .75rem;text-align:center;white-space:nowrap}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{border-radius:.3rem;font-size:1.25rem;line-height:1.5;padding:.5rem 1rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{border-radius:.2rem;font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.custom-control{display:block;min-height:1.5rem;padding-left:1.5rem;position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact;z-index:1}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{height:1.25rem;left:0;opacity:0;position:absolute;width:1rem;z-index:-1}.custom-control-input:checked~.custom-control-label:before{background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border-color:#02549a;color:#fff}.custom-control-input:focus~.custom-control-label:before{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 0 .2rem rgba(2,84,154,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#1f96fc}.custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#52aefd;border-color:#52aefd;color:#fff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{margin-bottom:0;position:relative;vertical-align:top}.custom-control-label:before{background-color:#fff;border:1px solid #adb5bd;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);pointer-events:none}.custom-control-label:after,.custom-control-label:before{content:"";display:block;height:1rem;left:-1.5rem;position:absolute;top:.25rem;width:1rem}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='m6.564.75-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border-color:#02549a}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background:rgba(2,84,154,.5) linear-gradient(180deg,rgba(13,68,115,.575),rgba(2,84,154,.5)) repeat-x}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background:rgba(2,84,154,.5) linear-gradient(180deg,rgba(13,68,115,.575),rgba(2,84,154,.5)) repeat-x}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background:rgba(2,84,154,.5) linear-gradient(180deg,rgba(13,68,115,.575),rgba(2,84,154,.5)) repeat-x}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{border-radius:.5rem;left:-2.25rem;pointer-events:all;width:1.75rem}.custom-switch .custom-control-label:after{background-color:#adb5bd;border-radius:.5rem;height:calc(1rem - 4px);left:calc(-2.25rem + 2px);top:calc(.25rem + 2px);transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:calc(1rem - 4px)}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background:rgba(2,84,154,.5) linear-gradient(180deg,rgba(13,68,115,.575),rgba(2,84,154,.5)) repeat-x}.custom-select{appearance:none;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);color:#495057;display:inline-block;font-size:1rem;font-weight:400;height:calc(1.5em + .75rem + 2px);line-height:1.5;padding:.375rem 1.75rem .375rem .75rem;vertical-align:middle;width:100%}.custom-select:focus{border-color:#1f96fc;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(2,84,154,.25);outline:0}.custom-select:focus::-ms-value{background-color:#fff;color:#495057}.custom-select[multiple],.custom-select[size]:not([size="1"]){background-image:none;height:auto;padding-right:.75rem}.custom-select:disabled{background-color:#e9ecef;color:#6c757d}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{font-size:.875rem;height:calc(1.5em + .5rem + 2px);padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}.custom-select-lg{font-size:1.25rem;height:calc(1.5em + 1rem + 2px);padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{height:calc(1.5em + .75rem + 2px);position:relative;width:100%}.custom-file-input{margin:0;opacity:0;overflow:hidden;z-index:2}.custom-file-input:focus~.custom-file-label{border-color:#1f96fc;box-shadow:0 0 0 .2rem rgba(2,84,154,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);font-weight:400;height:calc(1.5em + .75rem + 2px);left:0;overflow:hidden;z-index:1}.custom-file-label,.custom-file-label:after{color:#495057;line-height:1.5;padding:.375rem .75rem;position:absolute;right:0;top:0}.custom-file-label:after{background:#e9ecef linear-gradient(180deg,#cbced1,#e9ecef) repeat-x;border-left:inherit;border-radius:0 .25rem .25rem 0;bottom:0;content:"Browse";display:block;height:calc(1.5em + .75rem);z-index:3}.custom-range{appearance:none;background-color:transparent;height:1.4rem;padding:0;width:100%}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #212529,0 0 0 .2rem rgba(2,84,154,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #212529,0 0 0 .2rem rgba(2,84,154,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #212529,0 0 0 .2rem rgba(2,84,154,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{appearance:none;background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);height:1rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background:#52aefd linear-gradient(180deg,#4a99dd,#52aefd) repeat-x}.custom-range::-webkit-slider-runnable-track{background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1);color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-moz-range-thumb{appearance:none;background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);height:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background:#52aefd linear-gradient(180deg,#4a99dd,#52aefd) repeat-x}.custom-range::-moz-range-track{background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1);color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-thumb{appearance:none;background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);height:1rem;margin-left:.2rem;margin-right:.2rem;margin-top:0;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background:#52aefd linear-gradient(180deg,#4a99dd,#52aefd) repeat-x}.custom-range::-ms-track{background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1);color:transparent;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{display:block;padding:.5rem 1rem}.nav-link,.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;cursor:default;pointer-events:none}.nav-tabs{border-bottom:1px solid #495057}.nav-tabs .nav-link{background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;margin-bottom:-1px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#495057;isolation:isolate}.nav-tabs .nav-link.disabled{background-color:transparent;border-color:transparent;color:#6c757d}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:#212529;border-color:#adb5bd #adb5bd #212529;color:#2576bc}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#02549a;color:#fff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{padding:.5rem 1rem;position:relative}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;font-size:1.25rem;line-height:inherit;margin-right:1rem;padding-bottom:.3125rem;padding-top:.3125rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{float:none;position:static}.navbar-text{display:inline-block;padding-bottom:.5rem;padding-top:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{background-color:transparent;border:1px solid transparent;border-radius:.25rem;font-size:1.25rem;line-height:1;padding:.25rem .75rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{background:50%/100% 100% no-repeat;content:"";display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-left:0;padding-right:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-left:0;padding-right:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-left:0;padding-right:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-left:0;padding-right:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-left:0;padding-right:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.5)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{border-color:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word;background-clip:border-box;background-color:#495057;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px);border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{background-color:#474e54;border-bottom:1px solid rgba(0,0,0,.125);color:#fff;margin-bottom:0;padding:.75rem 1.25rem}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{background-color:#474e54;border-top:1px solid rgba(0,0,0,.125);color:#fff;padding:.75rem 1.25rem}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{border-bottom:0;margin-bottom:-.75rem}.card-header-pills,.card-header-tabs{margin-left:-.625rem;margin-right:-.625rem}.card-img-overlay{border-radius:calc(.25rem - 1px);bottom:0;left:0;padding:1.25rem;position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-left:-15px;margin-right:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0;margin-left:15px;margin-right:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.pagination{border-radius:.25rem;display:-ms-flexbox;display:flex;list-style:none;padding-left:0}.page-link{background-color:#fff;border:1px solid #dee2e6;color:#88bbe8;display:block;line-height:1.25;margin-left:-1px;padding:.5rem .75rem;position:relative;text-decoration:none}.page-link:hover{background-color:#e9ecef;border-color:#dee2e6;color:#4897db;text-decoration:none;z-index:2}.page-link:focus{box-shadow:0 0 0 .2rem rgba(2,84,154,.25);outline:0;z-index:3}.page-item:first-child .page-link{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem;margin-left:0}.page-item:last-child .page-link{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.page-item.active .page-link{background-color:#02549a;border-color:#02549a;color:#fff;z-index:3}.page-item.disabled .page-link{background-color:#fff;border-color:#dee2e6;color:#6c757d;cursor:auto;pointer-events:none}.pagination-lg .page-link{font-size:1.25rem;line-height:1.5;padding:.75rem 1.5rem}.pagination-lg .page-item:first-child .page-link{border-bottom-left-radius:.3rem;border-top-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-bottom-right-radius:.3rem;border-top-right-radius:.3rem}.pagination-sm .page-link{font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.badge{border-radius:.25rem;display:inline-block;font-size:75%;font-weight:700;line-height:1;padding:.25em .4em;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:baseline;white-space:nowrap}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{border-radius:10rem;padding-left:.6em;padding-right:.6em}.badge-primary{background-color:#02549a;color:#fff}a.badge-primary:focus,a.badge-primary:hover{background-color:#013968;color:#fff}a.badge-primary.focus,a.badge-primary:focus{box-shadow:0 0 0 .2rem rgba(2,84,154,.5);outline:0}.badge-secondary{background-color:#2576bc;color:#fff}a.badge-secondary:focus,a.badge-secondary:hover{background-color:#1d5b91;color:#fff}a.badge-secondary.focus,a.badge-secondary:focus{box-shadow:0 0 0 .2rem rgba(37,118,188,.5);outline:0}.badge-success{background-color:#28a745;color:#fff}a.badge-success:focus,a.badge-success:hover{background-color:#1e7e34;color:#fff}a.badge-success.focus,a.badge-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5);outline:0}.badge-info{background-color:#17a2b8;color:#fff}a.badge-info:focus,a.badge-info:hover{background-color:#117a8b;color:#fff}a.badge-info.focus,a.badge-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5);outline:0}.badge-warning{background-color:#ffc107;color:#212529}a.badge-warning:focus,a.badge-warning:hover{background-color:#d39e00;color:#212529}a.badge-warning.focus,a.badge-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5);outline:0}.badge-danger{background-color:#dc3545;color:#fff}a.badge-danger:focus,a.badge-danger:hover{background-color:#bd2130;color:#fff}a.badge-danger.focus,a.badge-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5);outline:0}.badge-light{background-color:#f8f9fa;color:#212529}a.badge-light:focus,a.badge-light:hover{background-color:#dae0e5;color:#212529}a.badge-light.focus,a.badge-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5);outline:0}.badge-dark{background-color:#343a40;color:#fff}a.badge-dark:focus,a.badge-dark:hover{background-color:#1d2124;color:#fff}a.badge-dark.focus,a.badge-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5);outline:0}.badge-transparent,a.badge-transparent:focus,a.badge-transparent:hover{background-color:transparent;color:#fff}a.badge-transparent.focus,a.badge-transparent:focus{box-shadow:0 0 0 .2rem rgba(0,0,0,.5);outline:0}.badge-background{background-color:#212529;color:#fff}a.badge-background:focus,a.badge-background:hover{background-color:#0a0c0d;color:#fff}a.badge-background.focus,a.badge-background:focus{box-shadow:0 0 0 .2rem rgba(33,37,41,.5);outline:0}.badge-darker{background-color:#16181b;color:#fff}a.badge-darker:focus,a.badge-darker:hover{background-color:#000;color:#fff}a.badge-darker.focus,a.badge-darker:focus{box-shadow:0 0 0 .2rem rgba(22,24,27,.5);outline:0}.badge-darkblue{background-color:#02437b;color:#fff}a.badge-darkblue:focus,a.badge-darkblue:hover{background-color:#012849;color:#fff}a.badge-darkblue.focus,a.badge-darkblue:focus{box-shadow:0 0 0 .2rem rgba(2,67,123,.5);outline:0}.alert{border:1px solid transparent;border-radius:3px;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{color:inherit;padding:.75rem 1.25rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{background:#ccddeb linear-gradient(180deg,#b3c1ce,#ccddeb) repeat-x;border-color:#b8cfe3;color:#012c50}.alert-primary hr{border-top-color:#a6c3db}.alert-primary .alert-link{color:#00101e}.alert-secondary{background:#d3e4f2 linear-gradient(180deg,#b9c7d4,#d3e4f2) repeat-x;border-color:#c2d9ec;color:#133d62}.alert-secondary hr{border-top-color:#aecce6}.alert-secondary .alert-link{color:#0b2337}.alert-success{background:#d4edda linear-gradient(180deg,#b9cfbf,#d4edda) repeat-x;border-color:#c3e6cb;color:#155724}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{background:#d1ecf1 linear-gradient(180deg,#b6ced3,#d1ecf1) repeat-x;border-color:#bee5eb;color:#0c5460}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c32}.alert-warning{background:#fff3cd linear-gradient(180deg,#ded4b5,#fff3cd) repeat-x;border-color:#ffeeba;color:#856404}.alert-warning hr{border-top-color:#ffe7a0}.alert-warning .alert-link{color:#533f02}.alert-danger{background:#f8d7da linear-gradient(180deg,#d8bcbf,#f8d7da) repeat-x;border-color:#f5c6cb;color:#721c24}.alert-danger hr{border-top-color:#f1b1b7}.alert-danger .alert-link{color:#491217}.alert-light{background:#fefefe linear-gradient(180deg,#ddddde,#fefefe) repeat-x;border-color:#fdfdfe;color:#818182}.alert-light hr{border-top-color:#eef1f3}.alert-light .alert-link{color:#686868}.alert-dark{background:#d6d8d9 linear-gradient(180deg,#bbbdbe,#d6d8d9) repeat-x;border-color:#c6c8ca;color:#1b1e21}.alert-dark hr{border-top-color:#b9bbbd}.alert-dark .alert-link{color:#040505}.alert-transparent{background:hsla(0,0%,100%,.8) linear-gradient(180deg,hsla(210,2%,82%,.83),hsla(0,0%,100%,.8)) repeat-x;border-color:hsla(0,0%,100%,.72);color:rgba(0,0,0,.48)}.alert-transparent hr{border-top-color:hsla(0,0%,95%,.72)}.alert-transparent .alert-link{color:rgba(0,0,0,.48)}.alert-background{background:#d3d3d4 linear-gradient(180deg,#b8b9bb,#d3d3d4) repeat-x;border-color:#c1c2c3;color:#111315}.alert-background hr{border-top-color:#b4b5b7}.alert-background .alert-link{color:#000}.alert-darker{background:#d0d1d1 linear-gradient(180deg,#b6b7b8,#d0d1d1) repeat-x;border-color:#bebebf;color:#0b0d0e}.alert-darker hr{border-top-color:#b1b2b3}.alert-darker .alert-link{color:#000}.alert-darkblue{background:#ccd9e5 linear-gradient(180deg,#b3bec8,#ccd9e5) repeat-x;border-color:#b8cada;color:#012340}.alert-darkblue hr{border-top-color:#a7bed1}.alert-darkblue .alert-link{color:#00070e}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{background-color:#e9ecef;border-radius:.25rem;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1);font-size:.75rem;height:1rem;line-height:0}.progress,.progress-bar{display:-ms-flexbox;display:flex;overflow:hidden}.progress-bar{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;background-color:#02549a;color:#000;justify-content:center;text-align:center;transition:width .6s ease;white-space:nowrap}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.close{color:#000;float:right;font-size:1.5rem;font-weight:700;line-height:1;opacity:.5;text-shadow:0 1px 0 #fff}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{background-color:transparent;border:0;padding:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;background-clip:padding-box;background-color:#495057;border:1px solid rgba(0,0,0,.1);border-radius:.25rem;box-shadow:0 .25rem .75rem rgba(0,0,0,.1);color:#000;flex-basis:350px;font-size:.875rem;max-width:350px;opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-clip:padding-box;background-color:#6c757d;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);color:#000;padding:.25rem .75rem}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{display:none;height:100%;left:0;outline:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:1050}.modal-dialog{margin:.5rem;pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{content:"";display:block;height:calc(100vh - 1rem);height:min-content}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;height:100%;justify-content:center}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{background-clip:padding-box;background-color:#343a40;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;border-bottom:1px solid #343a40;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);justify-content:space-between;padding:1rem}.modal-header .close{margin:-1rem -1rem -1rem auto;padding:1rem}.modal-title{line-height:1.5;margin-bottom:0}.modal-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem;position:relative}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;border-bottom-left-radius:calc(.3rem - 1px);border-bottom-right-radius:calc(.3rem - 1px);border-top:1px solid #343a40;justify-content:flex-end;padding:.75rem}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}@media (min-width:576px){.modal-dialog{margin:1.75rem auto;max-width:500px}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:min-content}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;margin:0;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1070;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{display:block;height:.4rem;position:absolute;width:.8rem}.tooltip .arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{border-top-color:#000;border-width:.4rem .4rem 0;top:0}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{height:.8rem;left:0;width:.4rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{border-right-color:#000;border-width:.4rem .4rem .4rem 0;right:0}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{border-bottom-color:#000;border-width:0 .4rem .4rem;bottom:0}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{height:.8rem;right:0;width:.4rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{border-left-color:#000;border-width:.4rem 0 .4rem .4rem;left:0}.tooltip-inner{background-color:#000;border-radius:.25rem;color:#fff;max-width:200px;padding:.25rem .5rem;text-align:center}.popover{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;left:0;letter-spacing:normal;line-break:auto;line-height:1.5;max-width:276px;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;top:0;white-space:normal;word-break:normal;word-spacing:normal;z-index:1060;word-wrap:break-word;background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover,.popover .arrow{display:block;position:absolute}.popover .arrow{height:.5rem;margin:0 .3rem;width:1rem}.popover .arrow:after,.popover .arrow:before{border-color:transparent;border-style:solid;content:"";display:block;position:absolute}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{border-top-color:rgba(0,0,0,.25);border-width:.5rem .5rem 0;bottom:0}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{border-top-color:#fff;border-width:.5rem .5rem 0;bottom:1px}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{height:1rem;left:calc(-.5rem - 1px);margin:.3rem 0;width:.5rem}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{border-right-color:rgba(0,0,0,.25);border-width:.5rem .5rem .5rem 0;left:0}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{border-right-color:#fff;border-width:.5rem .5rem .5rem 0;left:1px}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{border-bottom-color:rgba(0,0,0,.25);border-width:0 .5rem .5rem;top:0}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{border-bottom-color:#fff;border-width:0 .5rem .5rem;top:1px}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:1px solid #f7f7f7;content:"";display:block;left:50%;margin-left:-.5rem;position:absolute;top:0;width:1rem}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{height:1rem;margin:.3rem 0;right:calc(-.5rem - 1px);width:.5rem}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{border-left-color:rgba(0,0,0,.25);border-width:.5rem 0 .5rem .5rem;right:0}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{border-left-color:#fff;border-width:.5rem 0 .5rem .5rem;right:1px}.popover-header{background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);color:#000;font-size:1rem;margin-bottom:0;padding:.5rem .75rem}.popover-header:empty{display:none}.popover-body{color:#000;padding:.5rem .75rem}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{animation:spinner-border .75s linear infinite;border:.25em solid;border-radius:50%;border-right:.25em solid transparent;display:inline-block;height:2rem;vertical-align:-.125em;width:2rem}.spinner-border-sm{border-width:.2em;height:1rem;width:1rem}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{animation:spinner-grow .75s linear infinite;background-color:currentcolor;border-radius:50%;display:inline-block;height:2rem;opacity:0;vertical-align:-.125em;width:2rem}.spinner-grow-sm{height:1rem;width:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#02549a!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#013968!important}.bg-secondary{background-color:#2576bc!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#1d5b91!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}a.bg-transparent:focus,a.bg-transparent:hover,button.bg-transparent:focus,button.bg-transparent:hover{background-color:transparent!important}.bg-background{background-color:#212529!important}a.bg-background:focus,a.bg-background:hover,button.bg-background:focus,button.bg-background:hover{background-color:#0a0c0d!important}.bg-darker{background-color:#16181b!important}a.bg-darker:focus,a.bg-darker:hover,button.bg-darker:focus,button.bg-darker:hover{background-color:#000!important}.bg-darkblue{background-color:#02437b!important}a.bg-darkblue:focus,a.bg-darkblue:hover,button.bg-darkblue:focus,button.bg-darkblue:hover{background-color:#012849!important}.bg-gradient-primary{background:#02549a linear-gradient(180deg,#074d89,#02549a) repeat-x!important}.bg-gradient-secondary{background:#2576bc linear-gradient(180deg,#246aa6,#2576bc) repeat-x!important}.bg-gradient-success{background:#28a745 linear-gradient(180deg,#279441,#28a745) repeat-x!important}.bg-gradient-info{background:#17a2b8 linear-gradient(180deg,#198fa3,#17a2b8) repeat-x!important}.bg-gradient-warning{background:#ffc107 linear-gradient(180deg,#deaa0c,#ffc107) repeat-x!important}.bg-gradient-danger{background:#dc3545 linear-gradient(180deg,#c03341,#dc3545) repeat-x!important}.bg-gradient-light{background:#f8f9fa linear-gradient(180deg,#d8d9db,#f8f9fa) repeat-x!important}.bg-gradient-dark{background:#343a40 linear-gradient(180deg,#31373d,#343a40) repeat-x!important}.bg-gradient-transparent{background:transparent linear-gradient(180deg,rgba(33,37,41,.15),transparent) repeat-x!important}.bg-gradient-background{background:#212529 linear-gradient(180deg,#212529,#212529) repeat-x!important}.bg-gradient-darker{background:#16181b linear-gradient(180deg,#171a1d,#16181b) repeat-x!important}.bg-gradient-darkblue{background:#02437b linear-gradient(180deg,#063f6f,#02437b) repeat-x!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #343a40!important}.border-top{border-top:1px solid #343a40!important}.border-right{border-right:1px solid #343a40!important}.border-bottom{border-bottom:1px solid #343a40!important}.border-left{border-left:1px solid #343a40!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#02549a!important}.border-secondary{border-color:#2576bc!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-transparent{border-color:transparent!important}.border-background{border-color:#212529!important}.border-darker{border-color:#16181b!important}.border-darkblue{border-color:#02437b!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{clear:both;content:"";display:block}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{display:block;overflow:hidden;padding:0;position:relative;width:100%}.embed-responsive:before{content:"";display:block}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{border:0;bottom:0;height:100%;left:0;position:absolute;top:0;width:100%}.embed-responsive-21by9:before{padding-top:42.85714286%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.sr-only-focusable:active,.sr-only-focusable:focus{height:auto;overflow:visible;position:static;width:auto;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{background-color:transparent;bottom:0;content:"";left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#02549a!important}a.text-primary:focus,a.text-primary:hover{color:#012b4e!important}.text-secondary{color:#2576bc!important}a.text-secondary:focus,a.text-secondary:hover{color:#184e7c!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-transparent,a.text-transparent:focus,a.text-transparent:hover{color:transparent!important}.text-background{color:#212529!important}a.text-background:focus,a.text-background:hover{color:#000!important}.text-darker{color:#16181b!important}a.text-darker:focus,a.text-darker:hover{color:#000!important}.text-darkblue{color:#02437b!important}a.text-darkblue:focus,a.text-darkblue:hover{color:#011a30!important}.text-body{color:#e9ecef!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{background-color:transparent;border:0;color:transparent;font:0/0 a;text-shadow:none}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.text-secondary{color:#3b93de!important}.bg-body{background-color:#212529}.nav-tabs .nav-link{border:1px solid #495057;color:#e9ecef;margin-left:.1rem;margin-right:.1rem}@media (max-width:767.98px){.nav-tabs .nav-link{margin-bottom:0}}.alert-warning{background:rgba(255,193,7,.5) linear-gradient(180deg,rgba(178,139,19,.575),rgba(255,193,7,.5)) repeat-x;border-color:#ffc107;color:#000;font-weight:600}.alert-warning hr{border-top-color:#edb100}.alert-warning .alert-link{color:#000}.alert-error{background:#343a40 linear-gradient(180deg,#31373d,#343a40) repeat-x;border-color:#dc3545;color:#fff}.alert-error hr{border-top-color:#d32535}.alert-error .alert-link{color:#e6e6e6}.alert-dismissible{padding-right:1.25rem!important}.pre-wrap{white-space:pre-wrap}.h-unset{height:unset!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.w-0{width:0!important}.w-40{width:40%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.h-0{height:0!important}.h-40{height:40%!important}@media (min-width:576px){.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.w-sm-0{width:0!important}.w-sm-40{width:40%!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.h-sm-auto{height:auto!important}.h-sm-0{height:0!important}.h-sm-40{height:40%!important}}@media (min-width:768px){.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.w-md-0{width:0!important}.w-md-40{width:40%!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.h-md-auto{height:auto!important}.h-md-0{height:0!important}.h-md-40{height:40%!important}}@media (min-width:992px){.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.w-lg-0{width:0!important}.w-lg-40{width:40%!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.h-lg-auto{height:auto!important}.h-lg-0{height:0!important}.h-lg-40{height:40%!important}}@media (min-width:1200px){.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.w-xl-0{width:0!important}.w-xl-40{width:40%!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.h-xl-auto{height:auto!important}.h-xl-0{height:0!important}.h-xl-40{height:40%!important}}@media (max-width:575.98px){.text-break{word-wrap:break-word!important}}@media (max-width:767.98px){.text-sm-break{word-wrap:break-word!important}}@media (max-width:991.98px){.text-md-break{word-wrap:break-word!important}}@media (max-width:1199.98px){.text-lg-break{word-wrap:break-word!important}}.text-xl-break{word-wrap:break-word!important}.toast-header .close{margin-left:auto!important}.toast-header .close span{margin-left:.5rem!important}.anim-fade-appear{opacity:0}.anim-fade-appear-active,.anim-fade-exit{opacity:1}.anim-fade-exit-active{opacity:0}.anim-fade-appear-active,.anim-fade-exit-active{transition:opacity .6s}.anim-collapse-all{display:none}.anim-collapse-enter{-ms-flex-positive:0;flex-grow:0;-ms-flex-preferred-size:0;display:unset!important;flex-basis:0;min-width:0;overflow:hidden}.anim-collapse-enter-active,.anim-collapse-enter-done,.anim-collapse-exit{-ms-flex-positive:1;display:unset!important;flex-grow:1}.anim-collapse-exit-active,.anim-collapse-exit-done{-ms-flex-positive:0;flex-grow:0;-ms-flex-preferred-size:0;flex-basis:0;overflow:hidden}.anim-collapse-enter-active,.anim-collapse-exit-active{transition:flex-grow .2s;transition:flex-grow .2s,-ms-flex-positive .2s}.nowrap{white-space:nowrap}.fancyscroll{scrollbar-color:#343a40 hsla(208,7%,46%,.5);scrollbar-width:thin}.fancyscroll::-webkit-scrollbar{height:8px;width:8px}.fancyscroll::-webkit-scrollbar-track{background:hsla(208,7%,46%,.5)}.fancyscroll::-webkit-scrollbar-thumb{background-color:#343a40}.jobswidget{background:hsla(208,7%,46%,.5);border:double #6c757d}.jobswidget h5{background:rgba(52,58,64,.2)}.home svg path{stroke:#3c3c3c;stroke-width:3px}.nav-item:not(:first-of-type)>.instanceedittab{border-top-left-radius:0!important;border-top-right-radius:0!important}.nav-item:not(:last-of-type)>.instanceedittab{border-bottom:1px solid #6c757d;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.instanceedittab{background-color:#02549a;color:#fff}.instanceedittab.no-access{background-color:#dc3545}.instanceedittab:hover{color:#ccc}.instanceedittab.active{background-color:#01335e!important;box-shadow:inset 0 2px 8px -2px #000;color:#87cefa!important}.instanceedittab.active.no-access{background-color:#b51f2e!important;color:#fff!important}.hover-bar:not(.pin-open) .tab-text{overflow:clip;transition:max-width 1s,padding 1s}@media (min-width:992px){.hover-bar:not(.pin-open) .tab-text{max-width:0}.hover-bar:not(.pin-close):hover .tab-text{max-width:300px}.hover-bar:not(:hover) .tab-text{padding-left:0!important}}.reset-table tr{background-color:initial!important}.reset-table td,.reset-table th{border-color:initial!important;border-top:initial!important;padding:initial!important;vertical-align:initial!important}.browser-ul{list-style:none;margin-left:0;padding-left:1em}.browser-li,.browser-ul{margin-top:4px}.report-issue{left:0;margin-left:5px}.corner-logo,.report-issue{bottom:0;margin-bottom:5px;position:fixed}.corner-logo{margin-right:5px;right:0}.behind-nav{z-index:3}*{line-height:inherit}@media (max-width:991px){.container,.container-md,.container-sm{max-width:unset!important}}.select-search{box-sizing:border-box;font-family:Nunito Sans,sans-serif;position:relative;width:100%}.select-search *,.select-search :after,.select-search :before{box-sizing:inherit}.select-search__value{position:relative;z-index:1}.select-search__value:after{content:"";display:inline-block;height:11px;position:absolute;right:19px;top:calc(50% - 9px);width:11px}.select-search__input{appearance:none;background:#fff;border:1px solid transparent;border-radius:3px;box-shadow:0 .0625rem .125rem rgba(0,0,0,.15);display:block;font-family:Noto Sans,sans-serif;font-size:14px;height:36px;line-height:36px;outline:none;padding:0 40px 0 16px;text-align:left;text-overflow:ellipsis;width:100%}.select-search__input::-webkit-search-cancel-button,.select-search__input::-webkit-search-decoration,.select-search__input::-webkit-search-results-button,.select-search__input::-webkit-search-results-decoration{-webkit-appearance:none}.select-search__input:not([readonly]):focus{cursor:auto}.select-search__select{background:#fff;box-shadow:0 .0625rem .125rem rgba(0,0,0,.15)}.select-search__options{list-style:none;padding-left:0}.select-search__row:not(:first-child){border-top:1px solid #eee}.select-search__not-found,.select-search__option{background:#fff;border:none;cursor:pointer;display:block;font-family:Noto Sans,sans-serif;font-size:15px;min-height:36px;outline:none;padding:0 16px;text-align:left;width:100%}.select-search--multiple .select-search__option{height:48px}.select-search__option.is-selected{background:#2576bc;color:#fff}.select-search__option.is-highlighted,.select-search__option:not(.is-selected):hover{background:rgba(47,204,139,.1)}.select-search__option.is-highlighted.is-selected,.select-search__option.is-selected:hover{background:#1e5e96;color:#fff}.select-search__group-header{background:#eee;font-size:10px;padding:8px 16px;text-transform:uppercase}.select-search.is-disabled{opacity:.5}.select-search.is-loading .select-search__value:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 50 50'%3E%3Cpath fill='%232F2D37' d='M25 5a20.14 20.14 0 0 1 20 17.88 2.51 2.51 0 0 0 2.49 2.26A2.52 2.52 0 0 0 50 22.33a25.14 25.14 0 0 0-50 0 2.52 2.52 0 0 0 2.5 2.81A2.51 2.51 0 0 0 5 22.88 20.14 20.14 0 0 1 25 5'%3E%3CanimateTransform attributeName='transform' dur='0.6s' from='0 25 25' repeatCount='indefinite' to='360 25 25' type='rotate'/%3E%3C/path%3E%3C/svg%3E");background-size:11px}.select-search:not(.is-disabled) .select-search__input{cursor:pointer}.select-search--multiple{border-radius:3px;overflow:hidden}.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value:after{border-bottom:1px solid #000;border-right:1px solid #000;pointer-events:none;transform:rotate(45deg)}.select-search--multiple .select-search__input{border-radius:3px 3px 0 0;cursor:auto}.select-search--multiple:not(.select-search--search) .select-search__input{cursor:default}.select-search:not(.select-search--multiple) .select-search__input:hover{border-color:#2fcc8b}.select-search:not(.select-search--multiple) .select-search__select{border-radius:3px;left:0;max-height:360px;overflow:auto;position:absolute;right:0;top:44px;z-index:2}.select-search--multiple .select-search__select{border-radius:0 0 3px 3px;border-top:1px solid #eee;max-height:260px;overflow:auto;position:relative}.select-search__not-found{color:#888;height:auto;padding:16px;text-align:center}.status-badge{margin-left:5px} +/*# sourceMappingURL=6558.css.map*/ \ No newline at end of file diff --git a/webpanel/6.6.0/6558.css.map b/webpanel/6.6.0/6558.css.map new file mode 100644 index 00000000..7a46056c --- /dev/null +++ b/webpanel/6.6.0/6558.css.map @@ -0,0 +1 @@ +{"version":3,"file":"6558.css","mappings":"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E,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,aACE,iBAAc,CAAd,aAAc,CAEd,cAAe,CADf,UAEF,CACA,UACE,wBAAqB,CAArB,oBAAqB,CACrB,qBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,gBACE,iBAAS,CAAT,QACF,CACA,eACE,iBAAS,CAAT,QACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,aACF,CACA,aACE,uBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,cACE,wBACF,CACA,cACE,wBACF,CACF,CACA,yBACE,QACE,yBAAa,CAAb,YAAa,CACb,mBAAY,CAAZ,WAAY,CACZ,cACF,CACA,iBACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,aACE,iBAAc,CAAd,aAAc,CAEd,cAAe,CADf,UAEF,CACA,UACE,wBAAqB,CAArB,oBAAqB,CACrB,qBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,gBACE,iBAAS,CAAT,QACF,CACA,eACE,iBAAS,CAAT,QACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,aACF,CACA,aACE,uBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,cACE,wBACF,CACA,cACE,wBACF,CACF,CACA,yBACE,QACE,yBAAa,CAAb,YAAa,CACb,mBAAY,CAAZ,WAAY,CACZ,cACF,CACA,iBACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,aACE,iBAAc,CAAd,aAAc,CAEd,cAAe,CADf,UAEF,CACA,UACE,wBAAqB,CAArB,oBAAqB,CACrB,qBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,gBACE,iBAAS,CAAT,QACF,CACA,eACE,iBAAS,CAAT,QACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,aACF,CACA,aACE,uBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,cACE,wBACF,CACA,cACE,wBACF,CACF,CACA,0BACE,QACE,yBAAa,CAAb,YAAa,CACb,mBAAY,CAAZ,WAAY,CACZ,cACF,CACA,iBACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,iBACE,2BAAwB,CAAxB,uBAAwB,CACxB,wBACF,CACA,aACE,iBAAc,CAAd,aAAc,CAEd,cAAe,CADf,UAEF,CACA,UACE,wBAAqB,CAArB,oBAAqB,CACrB,qBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,UACE,gBAAa,CAAb,YAAa,CACb,aACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,yBAAsB,CAAtB,qBAAsB,CACtB,sBACF,CACA,WACE,iBAAc,CAAd,aAAc,CACd,cACF,CACA,gBACE,iBAAS,CAAT,QACF,CACA,eACE,iBAAS,CAAT,QACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,YACE,gBAAQ,CAAR,OACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,iBAAS,CAAT,QACF,CACA,aACE,aACF,CACA,aACE,uBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,aACE,wBACF,CACA,aACE,wBACF,CACA,aACE,eACF,CACA,cACE,wBACF,CACA,cACE,wBACF,CACF,CACA,OAGE,aAAc,CADd,kBAAmB,CADnB,UAGF,CACA,oBAIE,4BAA6B,CAF7B,cAAgB,CAChB,kBAEF,CACA,gBAEE,+BAAgC,CADhC,qBAEF,CACA,mBACE,4BACF,CAEA,0BAEE,aACF,CAKA,sDAEE,wBACF,CACA,kDAEE,uBACF,CAEA,mGAIE,QACF,CAEA,yCACE,gCACF,CAEA,4BAEE,iCAAsC,CADtC,aAEF,CAEA,mDAGE,wBACF,CACA,uFAIE,oBACF,CAKA,4GAEE,wBACF,CAEA,yDAGE,wBACF,CACA,+FAIE,oBACF,CAKA,kHAEE,wBACF,CAEA,mDAGE,wBACF,CACA,uFAIE,oBACF,CAKA,4GAEE,wBACF,CAEA,0CAGE,wBACF,CACA,2EAIE,oBACF,CAKA,mGAEE,wBACF,CAEA,mDAGE,wBACF,CACA,uFAIE,oBACF,CAKA,4GAEE,wBACF,CAEA,gDAGE,wBACF,CACA,mFAIE,oBACF,CAKA,yGAEE,wBACF,CAEA,6CAGE,wBACF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BAAsB,CAJtB,iBAAkB,CAClB,aAAc,CAFd,qBAMF,CACA,4CACE,oBACF,CAEA,qBAME,kCAAmC,CADnC,UAAW,CAJX,oBAAqB,CAErB,YAAa,CACb,qBAAsB,CAFtB,WAKF,CAEA,mBACE,eAAgB,CAChB,eACF,CAEA,4BACE,gMAOE,cAAe,CADf,eAEF,CACF,CACA,yBACE,kBACE,wBAAqB,CAArB,oBAAqB,CACrB,mBAA2B,CAA3B,0BACF,CACA,8BACE,sBAAmB,CAAnB,kBACF,CACA,6CACE,iBACF,CACA,wCAEE,kBAAoB,CADpB,mBAEF,CACA,gMAME,oBAAiB,CAAjB,gBACF,CACA,qCACE,gBACF,CACA,mCACE,6BAAwB,CAAxB,sBAAwB,CACxB,4BAAgB,CAAhB,eACF,CACA,kCACE,YACF,CACF,CACA,4BACE,gMAOE,cAAe,CADf,eAEF,CACF,CACA,yBACE,kBACE,wBAAqB,CAArB,oBAAqB,CACrB,mBAA2B,CAA3B,0BACF,CACA,8BACE,sBAAmB,CAAnB,kBACF,CACA,6CACE,iBACF,CACA,wCAEE,kBAAoB,CADpB,mBAEF,CACA,gMAME,oBAAiB,CAAjB,gBACF,CACA,qCACE,gBACF,CACA,mCACE,6BAAwB,CAAxB,sBAAwB,CACxB,4BAAgB,CAAhB,eACF,CACA,kCACE,YACF,CACF,CACA,4BACE,gMAOE,cAAe,CADf,eAEF,CACF,CACA,yBACE,kBACE,wBAAqB,CAArB,oBAAqB,CACrB,mBAA2B,CAA3B,0BACF,CACA,8BACE,sBAAmB,CAAnB,kBACF,CACA,6CACE,iBACF,CACA,wCAEE,kBAAoB,CADpB,mBAEF,CACA,gMAME,oBAAiB,CAAjB,gBACF,CACA,qCACE,gBACF,CACA,mCACE,6BAAwB,CAAxB,sBAAwB,CACxB,4BAAgB,CAAhB,eACF,CACA,kCACE,YACF,CACF,CACA,6BACE,gMAOE,cAAe,CADf,eAEF,CACF,CACA,0BACE,kBACE,wBAAqB,CAArB,oBAAqB,CACrB,mBAA2B,CAA3B,0BACF,CACA,8BACE,sBAAmB,CAAnB,kBACF,CACA,6CACE,iBACF,CACA,wCAEE,kBAAoB,CADpB,mBAEF,CACA,gMAME,oBAAiB,CAAjB,gBACF,CACA,qCACE,gBACF,CACA,mCACE,6BAAwB,CAAxB,sBAAwB,CACxB,4BAAgB,CAAhB,eACF,CACA,kCACE,YACF,CACF,CACA,eACE,wBAAqB,CAArB,oBAAqB,CACrB,mBAA2B,CAA3B,0BACF,CACA,8KAOE,cAAe,CADf,eAEF,CACA,2BACE,sBAAmB,CAAnB,kBACF,CACA,0CACE,iBACF,CACA,qCAEE,kBAAoB,CADpB,mBAEF,CACA,8KAME,oBAAiB,CAAjB,gBACF,CACA,kCACE,gBACF,CACA,gCACE,6BAAwB,CAAxB,sBAAwB,CACxB,4BAAgB,CAAhB,eACF,CACA,+BACE,YACF,CAKA,gGACE,oBACF,CACA,oCACE,oBACF,CACA,oFACE,oBACF,CACA,6CACE,oBACF,CACA,0KAIE,oBACF,CACA,8BAEE,2BAAgC,CADhC,oBAEF,CACA,mCACE,4RACF,CACA,2BACE,oBACF,CAIA,mGACE,oBACF,CAKA,6FACE,UACF,CAIA,qHACE,yBACF,CACA,4CACE,yBACF,CACA,sKAIE,UACF,CACA,6BAEE,+BAAsC,CADtC,yBAEF,CACA,kCACE,mSACF,CACA,0BACE,yBACF,CAIA,gGACE,UACF,CAEA,MAEE,mBAAa,CAAb,YAAa,CACb,yBAAsB,CAAtB,qBAAsB,CACtB,WAAY,CAHZ,iBAAkB,CAIlB,oBAAqB,CAErB,0BAA2B,CAD3B,wBAAyB,CAEzB,iCAAsC,CACtC,oBACF,CACA,SAEE,aAAc,CADd,cAEF,CACA,kBAEE,qBAAsB,CADtB,kBAEF,CACA,8BAEE,yCAA2C,CAC3C,0CAA4C,CAF5C,kBAGF,CACA,6BAGE,4CAA8C,CAD9C,6CAA+C,CAD/C,qBAGF,CACA,8DAEE,YACF,CAEA,WACE,iBAAc,CAAd,aAAc,CACd,cAAe,CACf,eACF,CAEA,YACE,oBACF,CAEA,eACE,mBAEF,CAEA,qCAHE,eAKF,CAEA,iBACE,oBACF,CACA,sBACE,mBACF,CAEA,aAIE,wBAAyB,CACzB,wCAA6C,CA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ACE,sCACF,CAEA,QACE,kCACF,CAEA,YACE,sCACF,CAEA,cACE,wCACF,CAEA,eACE,yCACF,CAEA,aACE,uCACF,CAEA,UACE,kBACF,CAEA,cACE,sBACF,CAEA,gBACE,wBACF,CAEA,iBACE,yBACF,CAEA,eACE,uBACF,CAEA,gBACE,8BACF,CAEA,kBACE,8BACF,CAEA,gBACE,8BACF,CAEA,aACE,8BACF,CAEA,gBACE,8BACF,CAEA,eACE,8BACF,CAEA,cACE,8BACF,CAEA,aACE,8BACF,CAEA,oBACE,kCACF,CAEA,mBACE,8BACF,CAEA,eACE,8BACF,CAEA,iBACE,8BACF,CAEA,cACE,2BACF,CAEA,YACE,6BACF,CAEA,SACE,8BACF,CAEA,aACE,uCAEF,CAEA,4BAHE,wCAMF,CAEA,+BAHE,2CAMF,CAEA,8BAHE,0CAMF,CAHA,cACE,uCAEF,CAEA,YACE,6BACF,CAEA,gBACE,2BACF,CAEA,cACE,6BACF,CAEA,WACE,yBACF,CAEA,gBAEE,UAAW,CACX,UAAW,CAFX,aAGF,CAEA,QACE,sBACF,CAEA,UACE,wBACF,CAEA,gBACE,8BACF,CAEA,SACE,uBACF,CAEA,SACE,uBACF,CAEA,aACE,2BACF,CAEA,cACE,4BACF,CAEA,QACE,6BAAwB,CAAxB,sBACF,CAEA,eACE,oCAA+B,CAA/B,6BACF,CAEA,yBACE,WACE,sBACF,CACA,aACE,wBACF,CACA,mBACE,8BACF,CACA,YACE,uBACF,CACA,YACE,uBACF,CACA,gBACE,2BACF,CACA,iBACE,4BACF,CACA,WACE,6BAAwB,CAAxB,sBACF,CACA,kBACE,oCAA+B,CAA/B,6BACF,CACF,CACA,yBACE,WACE,sBACF,CACA,aACE,wBACF,CACA,mBACE,8BACF,CACA,YACE,uBACF,CACA,YACE,uBACF,CACA,gBACE,2BACF,CACA,iBACE,4BACF,CACA,WACE,6BAAwB,CAAxB,sBACF,CACA,kBACE,oCAA+B,CAA/B,6BACF,CACF,CACA,yBACE,WACE,sBACF,CACA,aACE,wBACF,CACA,mBACE,8BACF,CACA,YACE,uBACF,CACA,YACE,uBACF,CACA,gBACE,2BACF,CACA,iBACE,4BACF,CACA,WACE,6BAAwB,CAAxB,sBACF,CACA,kBACE,oCAA+B,CAA/B,6BACF,CACF,CACA,0BACE,WACE,sBACF,CACA,aACE,wBACF,CACA,mBACE,8BACF,CACA,YACE,uBACF,CACA,YACE,uBACF,CACA,gBACE,2BACF,CACA,iBACE,4BACF,CACA,WACE,6BAAwB,CAAxB,sBACF,CACA,kBACE,oCAA+B,CAA/B,6BACF,CACF,CACA,aACE,cACE,sBACF,CACA,gBACE,wBACF,CACA,sBACE,8BACF,CACA,eACE,uBACF,CACA,eACE,uBACF,CACA,mBACE,2BACF,CACA,oBACE,4BACF,CACA,cACE,6BAAwB,CAAxB,sBACF,CACA,qBACE,oCAA+B,CAA/B,6BACF,CACF,CACA,kBAEE,aAAc,CAGd,eAAgB,CADhB,SAAU,CAHV,iBAAkB,CAElB,UAGF,CACA,yBAEE,UAAW,CADX,aAEF,CACA,2IAWE,QAAS,CAJT,QAAS,CAGT,WAAY,CAFZ,MAAO,CAHP,iBAAkB,CAClB,KAAM,CAGN,UAGF,CAEA,+BACE,wBACF,CAEA,+BACE,kBACF,CAEA,8BACE,eACF,CAEA,8BACE,gBACF,CAEA,UACE,gCAA8B,CAA9B,4BACF,CAEA,aACE,mCAAiC,CAAjC,+BACF,CAEA,kBACE,wCAAsC,CAAtC,oCACF,CAEA,qBACE,2CAAyC,CAAzC,uCACF,CAEA,WACE,4BAA0B,CAA1B,wBACF,CAEA,aACE,8BAA4B,CAA5B,0BACF,CAEA,mBACE,oCAAkC,CAAlC,gCACF,CAEA,WACE,2BAAyB,CAAzB,uBACF,CAEA,aACE,6BAAuB,CAAvB,qBACF,CAEA,aACE,6BAAuB,CAAvB,qBACF,CAEA,eACE,6BAAyB,CAAzB,uBACF,CAEA,eACE,6BAAyB,CAAzB,uBACF,CAEA,uBACE,6BAAsC,CAAtC,oCACF,CAEA,qBACE,2BAAoC,CAApC,kCACF,CAEA,wBACE,8BAAkC,CAAlC,gCACF,CAEA,yBACE,+BAAyC,CAAzC,uCACF,CAEA,wBACE,kCAAwC,CAAxC,sCACF,CAEA,mBACE,8BAAkC,CAAlC,gCACF,CAEA,iBACE,4BAAgC,CAAhC,8BACF,CAEA,oBACE,+BAA8B,CAA9B,4BACF,CAEA,sBACE,iCAAgC,CAAhC,8BACF,CAEA,qBACE,gCAA+B,CAA/B,6BACF,CAEA,qBACE,kCAAoC,CAApC,kCACF,CAEA,mBACE,gCAAkC,CAAlC,gCACF,CAEA,sBACE,mCAAgC,CAAhC,8BACF,CAEA,uBACE,oCAAuC,CAAvC,qCACF,CAEA,sBACE,uCAAsC,CAAtC,oCACF,CAEA,uBACE,oCAAiC,CAAjC,+BACF,CAEA,iBACE,kCAA2B,CAA3B,yBACF,CAEA,kBACE,mCAAiC,CAAjC,+BACF,CAEA,gBACE,iCAA+B,CAA/B,6BACF,CAEA,mBACE,oCAA6B,CAA7B,2BACF,CAEA,qBACE,sCAA+B,CAA/B,6BACF,CAEA,oBACE,qCAA8B,CAA9B,4BACF,CAEA,yBACE,aACE,gCAA8B,CAA9B,4BACF,CACA,gBACE,mCAAiC,CAAjC,+BACF,CACA,qBACE,wCAAsC,CAAtC,oCACF,CACA,wBACE,2CAAyC,CAAzC,uCACF,CACA,cACE,4BAA0B,CAA1B,wBACF,CACA,gBACE,8BAA4B,CAA5B,0BACF,CACA,sBACE,oCAAkC,CAAlC,gCACF,CACA,cACE,2BAAyB,CAAzB,uBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,0BACE,6BAAsC,CAAtC,oCACF,CACA,wBACE,2BAAoC,CAApC,kCACF,CACA,2BACE,8BAAkC,CAAlC,gCACF,CACA,4BACE,+BAAyC,CAAzC,uCACF,CACA,2BACE,kCAAwC,CAAxC,sCACF,CACA,sBACE,8BAAkC,CAAlC,gCACF,CACA,oBACE,4BAAgC,CAAhC,8BACF,CACA,uBACE,+BAA8B,CAA9B,4BACF,CACA,yBACE,iCAAgC,CAAhC,8BACF,CACA,wBACE,gCAA+B,CAA/B,6BACF,CACA,wBACE,kCAAoC,CAApC,kCACF,CACA,sBACE,gCAAkC,CAAlC,gCACF,CACA,yBACE,mCAAgC,CAAhC,8BACF,CACA,0BACE,oCAAuC,CAAvC,qCACF,CACA,yBACE,uCAAsC,CAAtC,oCACF,CACA,0BACE,oCAAiC,CAAjC,+BACF,CACA,oBACE,kCAA2B,CAA3B,yBACF,CACA,qBACE,mCAAiC,CAAjC,+BACF,CACA,mBACE,iCAA+B,CAA/B,6BACF,CACA,sBACE,oCAA6B,CAA7B,2BACF,CACA,wBACE,sCAA+B,CAA/B,6BACF,CACA,uBACE,qCAA8B,CAA9B,4BACF,CACF,CACA,yBACE,aACE,gCAA8B,CAA9B,4BACF,CACA,gBACE,mCAAiC,CAAjC,+BACF,CACA,qBACE,wCAAsC,CAAtC,oCACF,CACA,wBACE,2CAAyC,CAAzC,uCACF,CACA,cACE,4BAA0B,CAA1B,wBACF,CACA,gBACE,8BAA4B,CAA5B,0BACF,CACA,sBACE,oCAAkC,CAAlC,gCACF,CACA,cACE,2BAAyB,CAAzB,uBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,0BACE,6BAAsC,CAAtC,oCACF,CACA,wBACE,2BAAoC,CAApC,kCACF,CACA,2BACE,8BAAkC,CAAlC,gCACF,CACA,4BACE,+BAAyC,CAAzC,uCACF,CACA,2BACE,kCAAwC,CAAxC,sCACF,CACA,sBACE,8BAAkC,CAAlC,gCACF,CACA,oBACE,4BAAgC,CAAhC,8BACF,CACA,uBACE,+BAA8B,CAA9B,4BACF,CACA,yBACE,iCAAgC,CAAhC,8BACF,CACA,wBACE,gCAA+B,CAA/B,6BACF,CACA,wBACE,kCAAoC,CAApC,kCACF,CACA,sBACE,gCAAkC,CAAlC,gCACF,CACA,yBACE,mCAAgC,CAAhC,8BACF,CACA,0BACE,oCAAuC,CAAvC,qCACF,CACA,yBACE,uCAAsC,CAAtC,oCACF,CACA,0BACE,oCAAiC,CAAjC,+BACF,CACA,oBACE,kCAA2B,CAA3B,yBACF,CACA,qBACE,mCAAiC,CAAjC,+BACF,CACA,mBACE,iCAA+B,CAA/B,6BACF,CACA,sBACE,oCAA6B,CAA7B,2BACF,CACA,wBACE,sCAA+B,CAA/B,6BACF,CACA,uBACE,qCAA8B,CAA9B,4BACF,CACF,CACA,yBACE,aACE,gCAA8B,CAA9B,4BACF,CACA,gBACE,mCAAiC,CAAjC,+BACF,CACA,qBACE,wCAAsC,CAAtC,oCACF,CACA,wBACE,2CAAyC,CAAzC,uCACF,CACA,cACE,4BAA0B,CAA1B,wBACF,CACA,gBACE,8BAA4B,CAA5B,0BACF,CACA,sBACE,oCAAkC,CAAlC,gCACF,CACA,cACE,2BAAyB,CAAzB,uBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,0BACE,6BAAsC,CAAtC,oCACF,CACA,wBACE,2BAAoC,CAApC,kCACF,CACA,2BACE,8BAAkC,CAAlC,gCACF,CACA,4BACE,+BAAyC,CAAzC,uCACF,CACA,2BACE,kCAAwC,CAAxC,sCACF,CACA,sBACE,8BAAkC,CAAlC,gCACF,CACA,oBACE,4BAAgC,CAAhC,8BACF,CACA,uBACE,+BAA8B,CAA9B,4BACF,CACA,yBACE,iCAAgC,CAAhC,8BACF,CACA,wBACE,gCAA+B,CAA/B,6BACF,CACA,wBACE,kCAAoC,CAApC,kCACF,CACA,sBACE,gCAAkC,CAAlC,gCACF,CACA,yBACE,mCAAgC,CAAhC,8BACF,CACA,0BACE,oCAAuC,CAAvC,qCACF,CACA,yBACE,uCAAsC,CAAtC,oCACF,CACA,0BACE,oCAAiC,CAAjC,+BACF,CACA,oBACE,kCAA2B,CAA3B,yBACF,CACA,qBACE,mCAAiC,CAAjC,+BACF,CACA,mBACE,iCAA+B,CAA/B,6BACF,CACA,sBACE,oCAA6B,CAA7B,2BACF,CACA,wBACE,sCAA+B,CAA/B,6BACF,CACA,uBACE,qCAA8B,CAA9B,4BACF,CACF,CACA,0BACE,aACE,gCAA8B,CAA9B,4BACF,CACA,gBACE,mCAAiC,CAAjC,+BACF,CACA,qBACE,wCAAsC,CAAtC,oCACF,CACA,wBACE,2CAAyC,CAAzC,uCACF,CACA,cACE,4BAA0B,CAA1B,wBACF,CACA,gBACE,8BAA4B,CAA5B,0BACF,CACA,sBACE,oCAAkC,CAAlC,gCACF,CACA,cACE,2BAAyB,CAAzB,uBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,gBACE,6BAAuB,CAAvB,qBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,kBACE,6BAAyB,CAAzB,uBACF,CACA,0BACE,6BAAsC,CAAtC,oCACF,CACA,wBACE,2BAAoC,CAApC,kCACF,CACA,2BACE,8BAAkC,CAAlC,gCACF,CACA,4BACE,+BAAyC,CAAzC,uCACF,CACA,2BACE,kCAAwC,CAAxC,sCACF,CACA,sBACE,8BAAkC,CAAlC,gCACF,CACA,oBACE,4BAAgC,CAAhC,8BACF,CACA,uBACE,+BAA8B,CAA9B,4BACF,CACA,yBACE,iCAAgC,CAAhC,8BACF,CACA,wBACE,gCAA+B,CAA/B,6BACF,CACA,wBACE,kCAAoC,CAApC,kCACF,CACA,sBACE,gCAAkC,CAAlC,gCACF,CACA,yBACE,mCAAgC,CAAhC,8BACF,CACA,0BACE,oCAAuC,CAAvC,qCACF,CACA,yBACE,uCAAsC,CAAtC,oCACF,CACA,0BACE,oCAAiC,CAAjC,+BACF,CACA,oBACE,kCAA2B,CAA3B,yBACF,CACA,qBACE,mCAAiC,CAAjC,+BACF,CACA,mBACE,iCAA+B,CAA/B,6BACF,CACA,sBACE,oCAA6B,CAA7B,2BACF,CACA,wBACE,sCAA+B,CAA/B,6BACF,CACA,uBACE,qCAA8B,CAA9B,4BACF,CACF,CACA,YACE,oBACF,CAEA,aACE,qBACF,CAEA,YACE,oBACF,CAEA,yBACE,eACE,oBACF,CACA,gBACE,qBACF,CACA,eACE,oBACF,CACF,CACA,yBACE,eACE,oBACF,CACA,gBACE,qBAC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BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,mBACF,CACA,kBAEE,uBACF,CACA,kBAEE,yBACF,CACA,kBAEE,0BACF,CACA,kBAEE,wBACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,uBACF,CACA,oBAEE,2BACF,CACA,oBAEE,6BACF,CACA,oBAEE,8BACF,CACA,oBAEE,4BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,WACE,qBACF,CACA,wBAEE,yBACF,CACA,wBAEE,2BACF,CACA,wBAEE,4BACF,CACA,wBAEE,0BACF,CACF,CACA,yBACE,QACE,kBACF,CACA,kBAEE,sBACF,CACA,kBAEE,wBACF,CACA,kBAEE,yBACF,CACA,kBAEE,uBACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,mBACF,CACA,kBAEE,uBACF,CACA,kBAEE,yBACF,CACA,kBAEE,0BACF,CACA,kBAEE,wBACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,uBACF,CACA,oBAEE,2BACF,CACA,oBAEE,6BACF,CACA,oBAEE,8BACF,CACA,oBAEE,4BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,WACE,qBACF,CACA,wBAEE,yBACF,CACA,wBAEE,2BACF,CACA,wBAEE,4BACF,CACA,wBAEE,0BACF,CACF,CACA,yBACE,QACE,kBACF,CACA,kBAEE,sBACF,CACA,kBAEE,wBACF,CACA,kBAEE,yBACF,CACA,kBAEE,uBACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,mBACF,CACA,kBAEE,uBACF,CACA,kBAEE,yBACF,CACA,kBAEE,0BACF,CACA,kBAEE,wBACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,uBACF,CACA,oBAEE,2BACF,CACA,oBAEE,6BACF,CACA,oBAEE,8BACF,CACA,oBAEE,4BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,WACE,qBACF,CACA,wBAEE,yBACF,CACA,wBAEE,2BACF,CACA,wBAEE,4BACF,CACA,wBAEE,0BACF,CACF,CACA,0BACE,QACE,kBACF,CACA,kBAEE,sBACF,CACA,kBAEE,wBACF,CACA,kBAEE,yBACF,CACA,kBAEE,uBACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,qBACF,CACA,kBAEE,yBACF,CACA,kBAEE,2BACF,CACA,kBAEE,4BACF,CACA,kBAEE,0BACF,CACA,QACE,mBACF,CACA,kBAEE,uBACF,CACA,kBAEE,yBACF,CACA,kBAEE,0BACF,CACA,kBAEE,wBACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,uBACF,CACA,kBAEE,2BACF,CACA,kBAEE,6BACF,CACA,kBAEE,8BACF,CACA,kBAEE,4BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,QACE,wBACF,CACA,kBAEE,4BACF,CACA,kBAEE,8BACF,CACA,kBAEE,+BACF,CACA,kBAEE,6BACF,CACA,QACE,sBACF,CACA,kBAEE,0BACF,CACA,kBAEE,4BACF,CACA,kBAEE,6BACF,CACA,kBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,uBACF,CACA,oBAEE,2BACF,CACA,oBAEE,6BACF,CACA,oBAEE,8BACF,CACA,oBAEE,4BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,SACE,wBACF,CACA,oBAEE,4BACF,CACA,oBAEE,8BACF,CACA,oBAEE,+BACF,CACA,oBAEE,6BACF,CACA,SACE,sBACF,CACA,oBAEE,0BACF,CACA,oBAEE,4BACF,CACA,oBAEE,6BACF,CACA,oBAEE,2BACF,CACA,WACE,qBACF,CACA,wBAEE,yBACF,CACA,wBAEE,2BACF,CACA,wBAEE,4BACF,CACA,wBAEE,0BACF,CACF,CACA,sBASE,4BAAkC,CALlC,QAAS,CAIT,UAAW,CAHX,MAAO,CAEP,mBAAoB,CANpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,SAIF,CAEA,gBACE,gGACF,CAEA,cACE,4BACF,CAEA,WACE,4BACF,CAEA,aACE,4BACF,CAEA,eACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,WACE,yBACF,CAEA,YACE,0BACF,CAEA,aACE,2BACF,CAEA,yBACE,cACE,yBACF,CACA,eACE,0BACF,CACA,gBACE,2BACF,CACF,CACA,yBACE,cACE,yBACF,CACA,eACE,0BACF,CACA,gBACE,2BACF,CACF,CACA,yBACE,cACE,yBACF,CACA,eACE,0BACF,CACA,gBACE,2BACF,CACF,CACA,0BACE,cACE,yBACF,CACA,eACE,0BACF,CACA,gBACE,2BACF,CACF,CACA,gBACE,kCACF,CAEA,gBACE,kCACF,CAEA,iBACE,mCACF,CAEA,mBACE,yBACF,CAEA,qBACE,6BACF,CAEA,oBACE,yBACF,CAEA,kBACE,yBACF,CAEA,oBACE,4BACF,CAEA,aACE,2BACF,CAEA,YACE,oBACF,CAEA,cACE,uBACF,CAEA,0CACE,uBACF,CAEA,gBACE,uBACF,CAEA,8CACE,uBACF,CAEA,cACE,uBACF,CAEA,0CACE,uBACF,CAEA,WACE,uBACF,CAEA,oCACE,uBACF,CAEA,cACE,uBACF,CAEA,0CACE,uBACF,CAEA,aACE,uBACF,CAEA,wCACE,uBACF,CAEA,YACE,uBACF,CAEA,sCACE,uBACF,CAEA,WACE,uBACF,CAEA,oCACE,uBACF,CAMA,oEACE,2BACF,CAEA,iBACE,uBACF,CAEA,gDACE,oBACF,CAEA,aACE,uBACF,CAEA,wCACE,oBACF,CAEA,eACE,uBACF,CAEA,4CACE,uBACF,CAEA,WACE,uBACF,CAEA,YACE,uBACF,CAEA,eACE,8BACF,CAEA,eACE,kCACF,CAEA,WAIE,4BAA6B,CAC7B,QAAS,CAHT,iBAAkB,CADlB,UAAW,CAEX,gBAGF,CAEA,sBACE,8BACF,CAEA,YACE,+BAAiC,CACjC,8BACF,CAEA,YACE,uBACF,CAEA,SACE,4BACF,CAEA,WACE,2BACF,CAEA,gBACE,uBACF,CAEA,SACE,wBACF,CAEA,oBAEE,wBAAyB,CADzB,aAAc,CAGd,iBAAmB,CADnB,kBAEF,CAEA,4BACE,oBACE,eACF,CACF,CACA,eAGE,uGAA4I,CAC5I,oBAAqB,CAFrB,UAAW,CADX,eAIF,CACA,kBACE,wBACF,CACA,2BACE,UACF,CAEA,aAEE,mEAAuF,CACvF,oBAAqB,CAFrB,UAGF,CACA,gBACE,wBACF,CACA,yBACE,aACF,CAEA,mBACE,+BACF,CAEA,UACE,oBACF,CAEA,SACE,sBACF,CAEA,MACE,mBACF,CAEA,MACE,mBACF,CAEA,MACE,mBACF,CAEA,OACE,oBACF,CAEA,QACE,oBACF,CAEA,KACE,iBACF,CAEA,MACE,mBACF,CAEA,MACE,oBACF,CAEA,MACE,oBACF,CAEA,MACE,oBACF,CAEA,OACE,qBACF,CAEA,QACE,qBACF,CAEA,KACE,kBACF,CAEA,MACE,oBACF,CAEA,yBACE,SACE,mBACF,CACA,SACE,mBACF,CACA,SACE,mBACF,CACA,UACE,oBACF,CACA,WACE,oBACF,CACA,QACE,iBACF,CACA,SACE,mBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,UACE,qBACF,CACA,WACE,qBACF,CACA,QACE,kBACF,CACA,SACE,oBACF,CACF,CACA,yBACE,SACE,mBACF,CACA,SACE,mBACF,CACA,SACE,mBACF,CACA,UACE,oBACF,CACA,WACE,oBACF,CACA,QACE,iBACF,CACA,SACE,mBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,UACE,qBACF,CACA,WACE,qBACF,CACA,QACE,kBACF,CACA,SACE,oBACF,CACF,CACA,yBACE,SACE,mBACF,CACA,SACE,mBACF,CACA,SACE,mBACF,CACA,UACE,oBACF,CACA,WACE,oBACF,CACA,QACE,iBACF,CACA,SACE,mBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,UACE,qBACF,CACA,WACE,qBACF,CACA,QACE,kBACF,CACA,SACE,oBACF,CACF,CACA,0BACE,SACE,mBACF,CACA,SACE,mBACF,CACA,SACE,mBACF,CACA,UACE,oBACF,CACA,WACE,oBACF,CACA,QACE,iBACF,CACA,SACE,mBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,SACE,oBACF,CACA,UACE,qBACF,CACA,WACE,qBACF,CACA,QACE,kBACF,CACA,SACE,oBACF,CACF,CACA,4BACE,YACE,8BACF,CACF,CACA,4BACE,eACE,8BACF,CACF,CACA,4BACE,eACE,8BACF,CACF,CACA,6BACE,eACE,8BACF,CACF,CACA,eACE,8BACF,CAEA,qBACE,0BACF,CACA,0BACE,2BACF,CAEA,kBACE,SACF,CAMA,yCACE,SACF,CAEA,uBACE,SACF,CAEA,gDAEE,sBACF,CAEA,mBACE,YACF,CAEA,qBACE,mBAAY,CAAZ,WAAY,CACZ,yBAAa,CAGb,uBAAyB,CAHzB,YAAa,CACb,WAAY,CACZ,eAEF,CAYA,0EACE,mBAAY,CACZ,uBAAyB,CADzB,WAEF,CAQA,oDACE,mBAAY,CAAZ,WAAY,CACZ,yBAAa,CAAb,YAAa,CACb,eACF,CAEA,uDAEE,wBAA2B,CAA3B,8CACF,CAEA,QACE,kBACF,CAEA,aAEE,2CAAiD,CADjD,oBAEF,CAEA,gCACE,UAAW,CACX,SACF,CAEA,sCACE,8BACF,CAEA,sCACE,wBACF,CAEA,YAEE,8BAAoC,CADpC,qBAEF,CACA,eACE,4BACF,CAEA,eACE,cAAe,CACf,gBACF,CAEA,+CAEE,kCAAoC,CADpC,mCAEF,CACA,8CAGE,+BAAgC,CADhC,qCAAuC,CADvC,sCAGF,CAEA,iBACE,wBAAyB,CACzB,UACF,CACA,2BACE,wBACF,CACA,uBACE,UACF,CACA,wBACE,kCAA4E,CAE5E,oCAAsC,CADtC,uBAGF,CACA,kCACE,kCAA8E,CAC9E,oBACF,CAEA,oCAEE,aAAc,CADd,kCAEF,CACA,yBACE,oCACE,WACF,CAIA,2CACE,eACF,CACA,iCACE,wBACF,CARF,CAUA,gBACE,kCACF,CACA,gCACE,8BAAgC,CAGhC,4BAA8B,CAF9B,yBAA2B,CAC3B,gCAEF,CAEA,YACE,eAAgB,CAChB,aAAc,CAEd,gBACF,CAEA,wBAJE,cAMF,CAEA,cAGE,MAAS,CACT,eAEF,CAEA,2BANE,QAAW,CAGX,iBAAkB,CAJlB,cAaF,CANA,aAIE,gBAAiB,CADjB,OAGF,CAEA,YACE,SACF,CAEA,EACE,mBACF,CAEA,yBACE,uCACE,yBACF,CACF,CAIA,eAIE,qBAAsB,CADtB,kCAAsC,CADtC,iBAAkB,CADlB,UAIF,CAEA,8DAGE,kBACF,CAKA,sBACE,iBAAkB,CAClB,SACF,CAEA,4BACE,UAAW,CACX,oBAAqB,CAKrB,WAAY,CAJZ,iBAAkB,CAElB,UAAW,CADX,mBAAoB,CAEpB,UAEF,CAKA,sBAgBE,eAAgB,CAXhB,eAAgB,CAChB,4BAA6B,CAE7B,iBAAkB,CADlB,6CAAoD,CANpD,aAAc,CASd,gCAAoC,CACpC,cAAe,CATf,WAAY,CAYZ,gBAAiB,CALjB,YAAa,CALb,qBAAsB,CAQtB,eAAgB,CAChB,sBAAuB,CAVvB,UAcF,CAEA,mNAIE,uBACF,CAEA,4CACE,WACF,CAKA,uBACE,eAAgB,CAChB,6CACF,CAKA,wBACE,eAAgB,CAChB,cACF,CAKA,sCACE,yBACF,CAKA,iDAME,eAAgB,CAChB,WAAY,CAKZ,cAAe,CAVf,aAAc,CAOd,gCAAoC,CACpC,cAAe,CAPf,eAAgB,CAKhB,YAAa,CAHb,cAAe,CAMf,eAAgB,CAPhB,UASF,CAEA,gDACE,WACF,CAEA,mCACE,kBAAmB,CACnB,UACF,CAEA,qFAEE,8BACF,CAEA,2FAEE,kBAAkC,CAClC,UACF,CAKA,6BAGE,eAAgB,CAFhB,cAAe,CAGf,gBAAiB,CAFjB,wBAGF,CAKA,2BACE,UACF,CAEA,sDACE,wfAAgf,CAChf,oBACF,CAEA,uDACE,cACF,CAKA,yBACE,iBAAkB,CAClB,eACF,CAEA,0FAGE,4BAA6B,CAD7B,2BAA4B,CAE5B,mBAAoB,CAHpB,uBAIF,CAEA,+CAKE,yBAA0B,CAJ1B,WACF,CAMA,2EACE,cACF,CAEA,yEACE,oBACF,CAEA,oEAME,iBAAkB,CADlB,MAAO,CAGP,gBAAiB,CADjB,aAAc,CANd,iBAAkB,CAGlB,OAAQ,CADR,QAAS,CADT,SAOF,CAEA,gDAKE,yBAA0B,CAD1B,yBAA0B,CAD1B,gBAAiB,CADjB,aAAc,CADd,iBAKF,CAEA,0BAIE,UAAW,CAHX,WAAY,CACZ,YAAa,CACb,iBAEF,CAEA,cACE,eACF","sources":["webpack://tgstation-server-control-panel/./src/styles/dark.scss"],"sourcesContent":["@charset \"UTF-8\";\n.navbar {\n font-weight: 600;\n z-index: 4;\n}\n\n.vmin-50 {\n width: 50vmin !important;\n height: 50vmin !important;\n}\n\n.navbar-dark > .navbar-nav > .nav-link.active {\n font-weight: bold;\n}\n\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #02549a;\n --secondary: #2576bc;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --transparent: transparent;\n --background: #212529;\n --darker: rgb(21.6283783784, 24.25, 26.8716216216);\n --darkblue: rgb(1.6, 67.2, 123.2);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #e9ecef;\n text-align: left;\n background-color: #212529;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgb(135.9333333333, 187.2333333333, 231.5666666667);\n text-decoration: underline;\n background-color: transparent;\n}\na:hover {\n color: rgb(72.0133333333, 150.8533333333, 218.9866666667);\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=radio],\ninput[type=checkbox] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(255, 255, 255, 0.2);\n}\n\nsmall,\n.small {\n font-size: 0.875em;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\ncode {\n font-size: 87.5%;\n color: inherit;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: inherit;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1240px;\n }\n}\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.no-gutters > .col,\n.no-gutters > [class*=col-] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-xl,\n.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,\n.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,\n.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,\n.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,\n.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.33333333%;\n max-width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.66666667%;\n max-width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.33333333%;\n max-width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.66666667%;\n max-width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.33333333%;\n max-width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.66666667%;\n max-width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.33333333%;\n max-width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.66666667%;\n max-width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n}\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #e9ecef;\n}\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #343a40;\n}\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #343a40;\n}\n.table tbody + tbody {\n border-top: 2px solid #343a40;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #343a40;\n}\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #343a40;\n}\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #e9ecef;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: rgb(184.16, 207.12, 226.72);\n}\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: rgb(123.44, 166.08, 202.48);\n}\n\n.table-hover .table-primary:hover {\n background-color: rgb(165.9354237288, 194.8022033898, 219.4445762712);\n}\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: rgb(165.9354237288, 194.8022033898, 219.4445762712);\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: rgb(193.96, 216.64, 236.24);\n}\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: rgb(141.64, 183.76, 220.16);\n}\n\n.table-hover .table-secondary:hover {\n background-color: rgb(174.4547368421, 204.3821052632, 230.2452631579);\n}\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: rgb(174.4547368421, 204.3821052632, 230.2452631579);\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: rgb(194.8, 230.36, 202.92);\n}\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: rgb(143.2, 209.24, 158.28);\n}\n\n.table-hover .table-success:hover {\n background-color: rgb(176.7059405941, 222.9540594059, 187.2665346535);\n}\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: rgb(176.7059405941, 222.9540594059, 187.2665346535);\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: rgb(190.04, 228.96, 235.12);\n}\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: rgb(134.36, 206.64, 218.08);\n}\n\n.table-hover .table-info:hover {\n background-color: rgb(170.5152475248, 221.1332673267, 229.1447524752);\n}\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: rgb(170.5152475248, 221.1332673267, 229.1447524752);\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: rgb(255, 237.64, 185.56);\n}\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: rgb(255, 222.76, 126.04);\n}\n\n.table-hover .table-warning:hover {\n background-color: rgb(255, 231.265, 160.06);\n}\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: rgb(255, 231.265, 160.06);\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: rgb(245.2, 198.44, 202.92);\n}\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: rgb(236.8, 149.96, 158.28);\n}\n\n.table-hover .table-danger:hover {\n background-color: rgb(241.4341772152, 176.7058227848, 182.9073417722);\n}\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: rgb(241.4341772152, 176.7058227848, 182.9073417722);\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: rgb(253.04, 253.32, 253.6);\n}\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: rgb(251.36, 251.88, 252.4);\n}\n\n.table-hover .table-light:hover {\n background-color: rgb(238.165, 240.57, 242.975);\n}\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: rgb(238.165, 240.57, 242.975);\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: rgb(198.16, 199.84, 201.52);\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: rgb(149.44, 152.56, 155.68);\n}\n\n.table-hover .table-dark:hover {\n background-color: rgb(185.0216751269, 187.09, 189.1583248731);\n}\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: rgb(185.0216751269, 187.09, 189.1583248731);\n}\n\n.table-transparent,\n.table-transparent > th,\n.table-transparent > td {\n background-color: rgba(255, 255, 255, 0.72);\n}\n.table-transparent th,\n.table-transparent td,\n.table-transparent thead th,\n.table-transparent tbody + tbody {\n border-color: rgba(255, 255, 255, 0.48);\n}\n\n.table-hover .table-transparent:hover {\n background-color: rgba(242.25, 242.25, 242.25, 0.72);\n}\n.table-hover .table-transparent:hover > td,\n.table-hover .table-transparent:hover > th {\n background-color: rgba(242.25, 242.25, 242.25, 0.72);\n}\n\n.table-background,\n.table-background > th,\n.table-background > td {\n background-color: rgb(192.84, 193.96, 195.08);\n}\n.table-background th,\n.table-background td,\n.table-background thead th,\n.table-background tbody + tbody {\n border-color: rgb(139.56, 141.64, 143.72);\n}\n\n.table-hover .table-background:hover {\n background-color: rgb(179.8560550459, 181.21, 182.5639449541);\n}\n.table-hover .table-background:hover > td,\n.table-hover .table-background:hover > th {\n background-color: rgb(179.8560550459, 181.21, 182.5639449541);\n}\n\n.table-darker,\n.table-darker > th,\n.table-darker > td {\n background-color: rgb(189.6559459459, 190.39, 191.1240540541);\n}\n.table-darker th,\n.table-darker td,\n.table-darker thead th,\n.table-darker tbody + tbody {\n border-color: rgb(133.6467567568, 135.01, 136.3732432432);\n}\n\n.table-hover .table-darker:hover {\n background-color: rgb(176.76108928, 177.64, 178.51891072);\n}\n.table-hover .table-darker:hover > td,\n.table-hover .table-darker:hover > th {\n background-color: rgb(176.76108928, 177.64, 178.51891072);\n}\n\n.table-darkblue,\n.table-darkblue > th,\n.table-darkblue > td {\n background-color: rgb(184.048, 202.416, 218.096);\n}\n.table-darkblue th,\n.table-darkblue td,\n.table-darkblue thead th,\n.table-darkblue tbody + tbody {\n border-color: rgb(123.232, 157.344, 186.464);\n}\n\n.table-hover .table-darkblue:hover {\n background-color: rgb(167.2730778816, 189.9837570093, 209.3709221184);\n}\n.table-hover .table-darkblue:hover > td,\n.table-hover .table-darkblue:hover > th {\n background-color: rgb(167.2730778816, 189.9837570093, 209.3709221184);\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: rgb(69.1465517241, 77.125, 85.1034482759);\n}\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #343a40;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: rgb(69.1465517241, 77.125, 85.1034482759);\n}\n.table-dark.table-bordered {\n border: 0;\n}\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: rgb(31.4038461538, 150.4615384615, 252.0961538462);\n outline: 0;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=date].form-control,\ninput[type=time].form-control,\ninput[type=datetime-local].form-control,\ninput[type=month].form-control {\n appearance: none;\n}\n\nselect.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #e9ecef;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n.form-row > .col,\n.form-row > [class*=col-] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n.form-row > .col > .valid-tooltip, .form-row > [class*=col-] > .valid-tooltip {\n left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated select.form-control:valid, select.form-control.is-valid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: rgb(51.6956521739, 206.3043478261, 87);\n background: rgb(51.6956521739, 206.3043478261, 87) linear-gradient(180deg, rgb(48.8913043478, 180.9086956522, 80.1), rgb(51.6956521739, 206.3043478261, 87)) repeat-x;\n}\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n.form-row > .col > .invalid-tooltip, .form-row > [class*=col-] > .invalid-tooltip {\n left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated select.form-control:invalid, select.form-control.is-invalid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: rgb(227.5316455696, 96.4683544304, 109.0253164557);\n background: rgb(227.5316455696, 96.4683544304, 109.0253164557) linear-gradient(180deg, rgb(198.3518987342, 87.5481012658, 98.8215189873), rgb(227.5316455696, 96.4683544304, 109.0253164557)) repeat-x;\n}\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n.form-inline .form-check {\n width: 100%;\n}\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #e9ecef;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: #e9ecef;\n text-decoration: none;\n}\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n box-shadow: none;\n}\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn:not(:disabled):not(.disabled):active:focus, .btn:not(:disabled):not(.disabled).active:focus {\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.25), inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n border-color: #02549a;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-primary:hover {\n color: #fff;\n background: rgb(1.5096153846, 63.4038461538, 116.2403846154) linear-gradient(180deg, rgb(6.2331730769, 59.4432692308, 104.9543269231), rgb(1.5096153846, 63.4038461538, 116.2403846154)) repeat-x;\n border-color: rgb(1.3461538462, 56.5384615385, 103.6538461538);\n}\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background: rgb(1.5096153846, 63.4038461538, 116.2403846154) linear-gradient(180deg, rgb(6.2331730769, 59.4432692308, 104.9543269231), rgb(1.5096153846, 63.4038461538, 116.2403846154)) repeat-x;\n border-color: rgb(1.3461538462, 56.5384615385, 103.6538461538);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(39.95, 109.65, 169.15, 0.5);\n}\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #02549a;\n border-color: #02549a;\n background-image: none;\n}\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: rgb(1.3461538462, 56.5384615385, 103.6538461538);\n background-image: none;\n border-color: rgb(1.1826923077, 49.6730769231, 91.0673076923);\n}\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(39.95, 109.65, 169.15, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background: #2576bc linear-gradient(180deg, rgb(36.4, 105.85, 165.95), #2576bc) repeat-x;\n border-color: #2576bc;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-secondary:hover {\n color: #fff;\n background: rgb(30.71, 97.94, 156.04) linear-gradient(180deg, rgb(31.0535, 88.799, 138.784), rgb(30.71, 97.94, 156.04)) repeat-x;\n border-color: rgb(28.6133333333, 91.2533333333, 145.3866666667);\n}\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background: rgb(30.71, 97.94, 156.04) linear-gradient(180deg, rgb(31.0535, 88.799, 138.784), rgb(30.71, 97.94, 156.04)) repeat-x;\n border-color: rgb(28.6133333333, 91.2533333333, 145.3866666667);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(69.7, 138.55, 198.05, 0.5);\n}\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #2576bc;\n border-color: #2576bc;\n background-image: none;\n}\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: rgb(28.6133333333, 91.2533333333, 145.3866666667);\n background-image: none;\n border-color: rgb(26.5166666667, 84.5666666667, 134.7333333333);\n}\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(69.7, 138.55, 198.05, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background: #28a745 linear-gradient(180deg, rgb(38.95, 147.5, 64.8), #28a745) repeat-x;\n border-color: #28a745;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-success:hover {\n color: #fff;\n background: rgb(32.6086956522, 136.1413043478, 56.25) linear-gradient(180deg, rgb(32.6673913043, 121.2701086957, 53.9625), rgb(32.6086956522, 136.1413043478, 56.25)) repeat-x;\n border-color: rgb(30.1449275362, 125.8550724638, 52);\n}\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background: rgb(32.6086956522, 136.1413043478, 56.25) linear-gradient(180deg, rgb(32.6673913043, 121.2701086957, 53.9625), rgb(32.6086956522, 136.1413043478, 56.25)) repeat-x;\n border-color: rgb(30.1449275362, 125.8550724638, 52);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(72.25, 180.2, 96.9, 0.5);\n}\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n background-image: none;\n}\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: rgb(30.1449275362, 125.8550724638, 52);\n background-image: none;\n border-color: rgb(27.6811594203, 115.5688405797, 47.75);\n}\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(72.25, 180.2, 96.9, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background: #17a2b8 linear-gradient(180deg, rgb(24.5, 143.25, 162.55), #17a2b8) repeat-x;\n border-color: #17a2b8;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-info:hover {\n color: #fff;\n background: rgb(18.75, 132.0652173913, 150) linear-gradient(180deg, rgb(20.8875, 117.8054347826, 133.65), rgb(18.75, 132.0652173913, 150)) repeat-x;\n border-color: rgb(17.3333333333, 122.0869565217, 138.6666666667);\n}\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background: rgb(18.75, 132.0652173913, 150) linear-gradient(180deg, rgb(20.8875, 117.8054347826, 133.65), rgb(18.75, 132.0652173913, 150)) repeat-x;\n border-color: rgb(17.3333333333, 122.0869565217, 138.6666666667);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(57.8, 175.95, 194.65, 0.5);\n}\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n background-image: none;\n}\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: rgb(17.3333333333, 122.0869565217, 138.6666666667);\n background-image: none;\n border-color: rgb(15.9166666667, 112.1086956522, 127.3333333333);\n}\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(57.8, 175.95, 194.65, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background: #ffc107 linear-gradient(180deg, rgb(221.7, 169.6, 12.1), #ffc107) repeat-x;\n border-color: #ffc107;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-warning:hover {\n color: #212529;\n background: rgb(223.75, 167.8125, 0) linear-gradient(180deg, rgb(195.1375, 148.190625, 6.15), rgb(223.75, 167.8125, 0)) repeat-x;\n border-color: rgb(211, 158.25, 0);\n}\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background: rgb(223.75, 167.8125, 0) linear-gradient(180deg, rgb(195.1375, 148.190625, 6.15), rgb(223.75, 167.8125, 0)) repeat-x;\n border-color: rgb(211, 158.25, 0);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(221.7, 169.6, 12.1, 0.5);\n}\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n background-image: none;\n}\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: rgb(211, 158.25, 0);\n background-image: none;\n border-color: rgb(198.25, 148.6875, 0);\n}\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(221.7, 169.6, 12.1, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background: #dc3545 linear-gradient(180deg, rgb(191.95, 50.6, 64.8), #dc3545) repeat-x;\n border-color: #dc3545;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-danger:hover {\n color: #fff;\n background: rgb(200.082278481, 34.667721519, 50.5158227848) linear-gradient(180deg, rgb(175.0199367089, 35.0175632911, 49.0884493671), rgb(200.082278481, 34.667721519, 50.5158227848)) repeat-x;\n border-color: rgb(189.2151898734, 32.7848101266, 47.7721518987);\n}\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background: rgb(200.082278481, 34.667721519, 50.5158227848) linear-gradient(180deg, rgb(175.0199367089, 35.0175632911, 49.0884493671), rgb(200.082278481, 34.667721519, 50.5158227848)) repeat-x;\n border-color: rgb(189.2151898734, 32.7848101266, 47.7721518987);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(225.25, 83.3, 96.9, 0.5);\n}\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n background-image: none;\n}\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: rgb(189.2151898734, 32.7848101266, 47.7721518987);\n background-image: none;\n border-color: rgb(178.3481012658, 30.9018987342, 45.0284810127);\n}\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(225.25, 83.3, 96.9, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background: #f8f9fa linear-gradient(180deg, rgb(215.75, 217.2, 218.65), #f8f9fa) repeat-x;\n border-color: #f8f9fa;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-light:hover {\n color: #212529;\n background: rgb(225.6875, 229.875, 234.0625) linear-gradient(180deg, rgb(196.784375, 200.94375, 205.103125), rgb(225.6875, 229.875, 234.0625)) repeat-x;\n border-color: rgb(218.25, 223.5, 228.75);\n}\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background: rgb(225.6875, 229.875, 234.0625) linear-gradient(180deg, rgb(196.784375, 200.94375, 205.103125), rgb(225.6875, 229.875, 234.0625)) repeat-x;\n border-color: rgb(218.25, 223.5, 228.75);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(215.75, 217.2, 218.65, 0.5);\n}\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n background-image: none;\n}\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: rgb(218.25, 223.5, 228.75);\n background-image: none;\n border-color: rgb(210.8125, 217.125, 223.4375);\n}\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(215.75, 217.2, 218.65, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background: #343a40 linear-gradient(180deg, rgb(49.15, 54.85, 60.55), #343a40) repeat-x;\n border-color: #343a40;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-dark:hover {\n color: #fff;\n background: rgb(34.8534482759, 38.875, 42.8965517241) linear-gradient(180deg, rgb(34.5754310345, 38.59375, 42.6120689655), rgb(34.8534482759, 38.875, 42.8965517241)) repeat-x;\n border-color: rgb(29.1379310345, 32.5, 35.8620689655);\n}\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background: rgb(34.8534482759, 38.875, 42.8965517241) linear-gradient(180deg, rgb(34.5754310345, 38.59375, 42.6120689655), rgb(34.8534482759, 38.875, 42.8965517241)) repeat-x;\n border-color: rgb(29.1379310345, 32.5, 35.8620689655);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(82.45, 87.55, 92.65, 0.5);\n}\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n background-image: none;\n}\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: rgb(29.1379310345, 32.5, 35.8620689655);\n background-image: none;\n border-color: rgb(23.4224137931, 26.125, 28.8275862069);\n}\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(82.45, 87.55, 92.65, 0.5);\n}\n\n.btn-transparent {\n color: #fff;\n background: transparent linear-gradient(180deg, rgba(33, 37, 41, 0.15), transparent) repeat-x;\n border-color: transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-transparent:hover {\n color: #fff;\n background: rgba(0, 0, 0, 0) linear-gradient(180deg, rgba(33, 37, 41, 0.15), rgba(0, 0, 0, 0)) repeat-x;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-transparent:focus, .btn-transparent.focus {\n color: #fff;\n background: rgba(0, 0, 0, 0) linear-gradient(180deg, rgba(33, 37, 41, 0.15), rgba(0, 0, 0, 0)) repeat-x;\n border-color: rgba(0, 0, 0, 0);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(255, 255, 255, 0.5);\n}\n.btn-transparent.disabled, .btn-transparent:disabled {\n color: #fff;\n background-color: transparent;\n border-color: transparent;\n background-image: none;\n}\n.btn-transparent:not(:disabled):not(.disabled):active, .btn-transparent:not(:disabled):not(.disabled).active, .show > .btn-transparent.dropdown-toggle {\n color: #fff;\n background-color: rgba(0, 0, 0, 0);\n background-image: none;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-transparent:not(:disabled):not(.disabled):active:focus, .btn-transparent:not(:disabled):not(.disabled).active:focus, .show > .btn-transparent.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(255, 255, 255, 0.5);\n}\n\n.btn-background {\n color: #fff;\n background: #212529 linear-gradient(180deg, #212529, #212529) repeat-x;\n border-color: #212529;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-background:hover {\n color: #fff;\n background: rgb(15.9425675676, 17.875, 19.8074324324) linear-gradient(180deg, rgb(18.5011824324, 20.74375, 22.9863175676), rgb(15.9425675676, 17.875, 19.8074324324)) repeat-x;\n border-color: rgb(10.2567567568, 11.5, 12.7432432432);\n}\n.btn-background:focus, .btn-background.focus {\n color: #fff;\n background: rgb(15.9425675676, 17.875, 19.8074324324) linear-gradient(180deg, rgb(18.5011824324, 20.74375, 22.9863175676), rgb(15.9425675676, 17.875, 19.8074324324)) repeat-x;\n border-color: rgb(10.2567567568, 11.5, 12.7432432432);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(66.3, 69.7, 73.1, 0.5);\n}\n.btn-background.disabled, .btn-background:disabled {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n background-image: none;\n}\n.btn-background:not(:disabled):not(.disabled):active, .btn-background:not(:disabled):not(.disabled).active, .show > .btn-background.dropdown-toggle {\n color: #fff;\n background-color: rgb(10.2567567568, 11.5, 12.7432432432);\n background-image: none;\n border-color: rgb(4.5709459459, 5.125, 5.6790540541);\n}\n.btn-background:not(:disabled):not(.disabled):active:focus, .btn-background:not(:disabled):not(.disabled).active:focus, .show > .btn-background.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(66.3, 69.7, 73.1, 0.5);\n}\n\n.btn-darker {\n color: #fff;\n background: rgb(21.6283783784, 24.25, 26.8716216216) linear-gradient(180deg, rgb(23.3341216216, 26.1625, 28.9908783784), rgb(21.6283783784, 24.25, 26.8716216216)) repeat-x;\n border-color: rgb(21.6283783784, 24.25, 26.8716216216);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-darker:hover {\n color: #fff;\n background: rgb(4.5709459459, 5.125, 5.6790540541) linear-gradient(180deg, rgb(8.8353040541, 9.90625, 10.9771959459), rgb(4.5709459459, 5.125, 5.6790540541)) repeat-x;\n border-color: black;\n}\n.btn-darker:focus, .btn-darker.focus {\n color: #fff;\n background: rgb(4.5709459459, 5.125, 5.6790540541) linear-gradient(180deg, rgb(8.8353040541, 9.90625, 10.9771959459), rgb(4.5709459459, 5.125, 5.6790540541)) repeat-x;\n border-color: black;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(56.6341216216, 58.8625, 61.0908783784, 0.5);\n}\n.btn-darker.disabled, .btn-darker:disabled {\n color: #fff;\n background-color: rgb(21.6283783784, 24.25, 26.8716216216);\n border-color: rgb(21.6283783784, 24.25, 26.8716216216);\n background-image: none;\n}\n.btn-darker:not(:disabled):not(.disabled):active, .btn-darker:not(:disabled):not(.disabled).active, .show > .btn-darker.dropdown-toggle {\n color: #fff;\n background-color: black;\n background-image: none;\n border-color: black;\n}\n.btn-darker:not(:disabled):not(.disabled):active:focus, .btn-darker:not(:disabled):not(.disabled).active:focus, .show > .btn-darker.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(56.6341216216, 58.8625, 61.0908783784, 0.5);\n}\n\n.btn-darkblue {\n color: #fff;\n background: rgb(1.6, 67.2, 123.2) linear-gradient(180deg, rgb(6.31, 62.67, 110.87), rgb(1.6, 67.2, 123.2)) repeat-x;\n border-color: rgb(1.6, 67.2, 123.2);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-darkblue:hover {\n color: #fff;\n background: rgb(1.1096153846, 46.6038461538, 85.4403846154) linear-gradient(180deg, rgb(5.8931730769, 45.1632692308, 78.7743269231), rgb(1.1096153846, 46.6038461538, 85.4403846154)) repeat-x;\n border-color: rgb(0.9461538462, 39.7384615385, 72.8538461538);\n}\n.btn-darkblue:focus, .btn-darkblue.focus {\n color: #fff;\n background: rgb(1.1096153846, 46.6038461538, 85.4403846154) linear-gradient(180deg, rgb(5.8931730769, 45.1632692308, 78.7743269231), rgb(1.1096153846, 46.6038461538, 85.4403846154)) repeat-x;\n border-color: rgb(0.9461538462, 39.7384615385, 72.8538461538);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(39.61, 95.37, 142.97, 0.5);\n}\n.btn-darkblue.disabled, .btn-darkblue:disabled {\n color: #fff;\n background-color: rgb(1.6, 67.2, 123.2);\n border-color: rgb(1.6, 67.2, 123.2);\n background-image: none;\n}\n.btn-darkblue:not(:disabled):not(.disabled):active, .btn-darkblue:not(:disabled):not(.disabled).active, .show > .btn-darkblue.dropdown-toggle {\n color: #fff;\n background-color: rgb(0.9461538462, 39.7384615385, 72.8538461538);\n background-image: none;\n border-color: rgb(0.7826923077, 32.8730769231, 60.2673076923);\n}\n.btn-darkblue:not(:disabled):not(.disabled):active:focus, .btn-darkblue:not(:disabled):not(.disabled).active:focus, .show > .btn-darkblue.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(39.61, 95.37, 142.97, 0.5);\n}\n\n.btn-outline-primary {\n color: #02549a;\n border-color: #02549a;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #02549a;\n border-color: #02549a;\n}\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.5);\n}\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #02549a;\n background-color: transparent;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #02549a;\n border-color: #02549a;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(2, 84, 154, 0.5);\n}\n\n.btn-outline-secondary {\n color: #2576bc;\n border-color: #2576bc;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #2576bc;\n border-color: #2576bc;\n}\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(37, 118, 188, 0.5);\n}\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #2576bc;\n background-color: transparent;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #2576bc;\n border-color: #2576bc;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(37, 118, 188, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-transparent {\n color: transparent;\n border-color: transparent;\n}\n.btn-outline-transparent:hover {\n color: #fff;\n background-color: transparent;\n border-color: transparent;\n}\n.btn-outline-transparent:focus, .btn-outline-transparent.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.5);\n}\n.btn-outline-transparent.disabled, .btn-outline-transparent:disabled {\n color: transparent;\n background-color: transparent;\n}\n.btn-outline-transparent:not(:disabled):not(.disabled):active, .btn-outline-transparent:not(:disabled):not(.disabled).active, .show > .btn-outline-transparent.dropdown-toggle {\n color: #fff;\n background-color: transparent;\n border-color: transparent;\n}\n.btn-outline-transparent:not(:disabled):not(.disabled):active:focus, .btn-outline-transparent:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-transparent.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(0, 0, 0, 0.5);\n}\n\n.btn-outline-background {\n color: #212529;\n border-color: #212529;\n}\n.btn-outline-background:hover {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n.btn-outline-background:focus, .btn-outline-background.focus {\n box-shadow: 0 0 0 0.2rem rgba(33, 37, 41, 0.5);\n}\n.btn-outline-background.disabled, .btn-outline-background:disabled {\n color: #212529;\n background-color: transparent;\n}\n.btn-outline-background:not(:disabled):not(.disabled):active, .btn-outline-background:not(:disabled):not(.disabled).active, .show > .btn-outline-background.dropdown-toggle {\n color: #fff;\n background-color: #212529;\n border-color: #212529;\n}\n.btn-outline-background:not(:disabled):not(.disabled):active:focus, .btn-outline-background:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-background.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(33, 37, 41, 0.5);\n}\n\n.btn-outline-darker {\n color: rgb(21.6283783784, 24.25, 26.8716216216);\n border-color: rgb(21.6283783784, 24.25, 26.8716216216);\n}\n.btn-outline-darker:hover {\n color: #fff;\n background-color: rgb(21.6283783784, 24.25, 26.8716216216);\n border-color: rgb(21.6283783784, 24.25, 26.8716216216);\n}\n.btn-outline-darker:focus, .btn-outline-darker.focus {\n box-shadow: 0 0 0 0.2rem rgba(21.6283783784, 24.25, 26.8716216216, 0.5);\n}\n.btn-outline-darker.disabled, .btn-outline-darker:disabled {\n color: rgb(21.6283783784, 24.25, 26.8716216216);\n background-color: transparent;\n}\n.btn-outline-darker:not(:disabled):not(.disabled):active, .btn-outline-darker:not(:disabled):not(.disabled).active, .show > .btn-outline-darker.dropdown-toggle {\n color: #fff;\n background-color: rgb(21.6283783784, 24.25, 26.8716216216);\n border-color: rgb(21.6283783784, 24.25, 26.8716216216);\n}\n.btn-outline-darker:not(:disabled):not(.disabled):active:focus, .btn-outline-darker:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-darker.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(21.6283783784, 24.25, 26.8716216216, 0.5);\n}\n\n.btn-outline-darkblue {\n color: rgb(1.6, 67.2, 123.2);\n border-color: rgb(1.6, 67.2, 123.2);\n}\n.btn-outline-darkblue:hover {\n color: #fff;\n background-color: rgb(1.6, 67.2, 123.2);\n border-color: rgb(1.6, 67.2, 123.2);\n}\n.btn-outline-darkblue:focus, .btn-outline-darkblue.focus {\n box-shadow: 0 0 0 0.2rem rgba(1.6, 67.2, 123.2, 0.5);\n}\n.btn-outline-darkblue.disabled, .btn-outline-darkblue:disabled {\n color: rgb(1.6, 67.2, 123.2);\n background-color: transparent;\n}\n.btn-outline-darkblue:not(:disabled):not(.disabled):active, .btn-outline-darkblue:not(:disabled):not(.disabled).active, .show > .btn-outline-darkblue.dropdown-toggle {\n color: #fff;\n background-color: rgb(1.6, 67.2, 123.2);\n border-color: rgb(1.6, 67.2, 123.2);\n}\n.btn-outline-darkblue:not(:disabled):not(.disabled):active:focus, .btn-outline-darkblue:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-darkblue.dropdown-toggle:focus {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(1.6, 67.2, 123.2, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: rgb(135.9333333333, 187.2333333333, 231.5666666667);\n text-decoration: underline;\n}\n.btn-link:hover {\n color: rgb(72.0133333333, 150.8533333333, 218.9866666667);\n text-decoration: underline;\n}\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=submit].btn-block,\ninput[type=reset].btn-block,\ninput[type=button].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.width {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.width {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #000;\n text-align: left;\n list-style: none;\n background-color: #495057;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #fff;\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: #fff;\n text-decoration: none;\n background: rgb(61.365625, 67.25, 73.134375) linear-gradient(180deg, rgb(57.11078125, 62.7125, 68.31421875), rgb(61.365625, 67.25, 73.134375)) repeat-x;\n}\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n background-image: none;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #fff;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > .form-control:nth-last-child(n+3),\n.input-group.has-validation > .custom-select:nth-last-child(n+3),\n.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label,\n.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n.input-group-text input[type=radio],\n.input-group-text input[type=checkbox] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n print-color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #02549a;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n}\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: rgb(31.4038461538, 150.4615384615, 252.0961538462);\n}\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: rgb(81.75, 174, 252.75);\n border-color: rgb(81.75, 174, 252.75);\n}\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: 1px solid #adb5bd;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: 50%/50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #02549a;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background: rgba(2, 84, 154, 0.5) linear-gradient(180deg, rgba(12.7307692308, 67.7307692308, 114.8846153846, 0.575), rgba(2, 84, 154, 0.5)) repeat-x;\n}\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background: rgba(2, 84, 154, 0.5) linear-gradient(180deg, rgba(12.7307692308, 67.7307692308, 114.8846153846, 0.575), rgba(2, 84, 154, 0.5)) repeat-x;\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background: rgba(2, 84, 154, 0.5) linear-gradient(180deg, rgba(12.7307692308, 67.7307692308, 114.8846153846, 0.575), rgba(2, 84, 154, 0.5)) repeat-x;\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background: rgba(2, 84, 154, 0.5) linear-gradient(180deg, rgba(12.7307692308, 67.7307692308, 114.8846153846, 0.575), rgba(2, 84, 154, 0.5)) repeat-x;\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n appearance: none;\n}\n.custom-select:focus {\n border-color: rgb(31.4038461538, 150.4615384615, 252.0961538462);\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n.custom-select::-ms-expand {\n display: none;\n}\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0;\n}\n.custom-file-input:focus ~ .custom-file-label {\n border-color: rgb(31.4038461538, 150.4615384615, 252.0961538462);\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background: #e9ecef linear-gradient(180deg, rgb(203, 206.15, 209.3), #e9ecef) repeat-x;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n.custom-range:focus {\n outline: 0;\n}\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #212529, 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #212529, 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #212529, 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n border: 0;\n border-radius: 1rem;\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.custom-range::-webkit-slider-thumb:active {\n background: rgb(81.75, 174, 252.75) linear-gradient(180deg, rgb(74.4375, 153.45, 220.9875), rgb(81.75, 174, 252.75)) repeat-x;\n}\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n border: 0;\n border-radius: 1rem;\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n.custom-range::-moz-range-thumb:active {\n background: rgb(81.75, 174, 252.75) linear-gradient(180deg, rgb(74.4375, 153.45, 220.9875), rgb(81.75, 174, 252.75)) repeat-x;\n}\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x;\n border: 0;\n border-radius: 1rem;\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n.custom-range::-ms-thumb:active {\n background: rgb(81.75, 174, 252.75) linear-gradient(180deg, rgb(74.4375, 153.45, 220.9875), rgb(81.75, 174, 252.75)) repeat-x;\n}\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n text-decoration: none;\n}\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #495057;\n}\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n background-color: transparent;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: #495057 #495057 #495057;\n}\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #2576bc;\n background-color: #212529;\n border-color: #adb5bd #adb5bd #212529;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n background: none;\n border: 0;\n border-radius: 0.25rem;\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #02549a;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n.navbar .container,\n.navbar .container-fluid,\n.navbar .container-sm,\n.navbar .container-md,\n.navbar .container-lg,\n.navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: 50%/100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid,\n .navbar-expand-sm > .container-sm,\n .navbar-expand-sm > .container-md,\n .navbar-expand-sm > .container-lg,\n .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid,\n .navbar-expand-sm > .container-sm,\n .navbar-expand-sm > .container-md,\n .navbar-expand-sm > .container-lg,\n .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid,\n .navbar-expand-md > .container-sm,\n .navbar-expand-md > .container-md,\n .navbar-expand-md > .container-lg,\n .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid,\n .navbar-expand-md > .container-sm,\n .navbar-expand-md > .container-md,\n .navbar-expand-md > .container-lg,\n .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid,\n .navbar-expand-lg > .container-sm,\n .navbar-expand-lg > .container-md,\n .navbar-expand-lg > .container-lg,\n .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid,\n .navbar-expand-lg > .container-sm,\n .navbar-expand-lg > .container-md,\n .navbar-expand-lg > .container-lg,\n .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid,\n .navbar-expand-xl > .container-sm,\n .navbar-expand-xl > .container-md,\n .navbar-expand-xl > .container-lg,\n .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid,\n .navbar-expand-xl > .container-sm,\n .navbar-expand-xl > .container-md,\n .navbar-expand-xl > .container-lg,\n .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.75);\n border-color: rgba(255, 255, 255, 0.1);\n}\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #495057;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n color: #fff;\n background-color: #474e54;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n color: #fff;\n background-color: #474e54;\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n.accordion > .card {\n overflow: hidden;\n}\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: rgb(135.9333333333, 187.2333333333, 231.5666666667);\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n.page-link:hover {\n z-index: 2;\n color: rgb(72.0133333333, 150.8533333333, 218.9866666667);\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #02549a;\n border-color: #02549a;\n}\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #02549a;\n}\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: rgb(1.3461538462, 56.5384615385, 103.6538461538);\n}\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(2, 84, 154, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #2576bc;\n}\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: rgb(28.6133333333, 91.2533333333, 145.3866666667);\n}\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(37, 118, 188, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: rgb(30.1449275362, 125.8550724638, 52);\n}\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: rgb(17.3333333333, 122.0869565217, 138.6666666667);\n}\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: rgb(211, 158.25, 0);\n}\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: rgb(189.2151898734, 32.7848101266, 47.7721518987);\n}\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: rgb(218.25, 223.5, 228.75);\n}\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: rgb(29.1379310345, 32.5, 35.8620689655);\n}\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.badge-transparent {\n color: #fff;\n background-color: transparent;\n}\na.badge-transparent:hover, a.badge-transparent:focus {\n color: #fff;\n background-color: rgba(0, 0, 0, 0);\n}\na.badge-transparent:focus, a.badge-transparent.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.5);\n}\n\n.badge-background {\n color: #fff;\n background-color: #212529;\n}\na.badge-background:hover, a.badge-background:focus {\n color: #fff;\n background-color: rgb(10.2567567568, 11.5, 12.7432432432);\n}\na.badge-background:focus, a.badge-background.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(33, 37, 41, 0.5);\n}\n\n.badge-darker {\n color: #fff;\n background-color: rgb(21.6283783784, 24.25, 26.8716216216);\n}\na.badge-darker:hover, a.badge-darker:focus {\n color: #fff;\n background-color: black;\n}\na.badge-darker:focus, a.badge-darker.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(21.6283783784, 24.25, 26.8716216216, 0.5);\n}\n\n.badge-darkblue {\n color: #fff;\n background-color: rgb(1.6, 67.2, 123.2);\n}\na.badge-darkblue:hover, a.badge-darkblue:focus {\n color: #fff;\n background-color: rgb(0.9461538462, 39.7384615385, 72.8538461538);\n}\na.badge-darkblue:focus, a.badge-darkblue.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(1.6, 67.2, 123.2, 0.5);\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 3px;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: rgb(1.04, 43.68, 80.08);\n background: rgb(204.4, 220.8, 234.8) linear-gradient(180deg, rgb(178.69, 193.23, 205.73), rgb(204.4, 220.8, 234.8)) repeat-x;\n border-color: rgb(184.16, 207.12, 226.72);\n}\n.alert-primary hr {\n border-top-color: rgb(165.9354237288, 194.8022033898, 219.4445762712);\n}\n.alert-primary .alert-link {\n color: rgb(0.3861538462, 16.2184615385, 29.7338461538);\n}\n\n.alert-secondary {\n color: rgb(19.24, 61.36, 97.76);\n background: rgb(211.4, 227.6, 241.6) linear-gradient(180deg, rgb(184.64, 199.01, 211.51), rgb(211.4, 227.6, 241.6)) repeat-x;\n border-color: rgb(193.96, 216.64, 236.24);\n}\n.alert-secondary hr {\n border-top-color: rgb(174.4547368421, 204.3821052632, 230.2452631579);\n}\n.alert-secondary .alert-link {\n color: rgb(10.8533333333, 34.6133333333, 55.1466666667);\n}\n\n.alert-success {\n color: rgb(20.8, 86.84, 35.88);\n background: rgb(212, 237.4, 217.8) linear-gradient(180deg, rgb(185.15, 207.34, 191.28), rgb(212, 237.4, 217.8)) repeat-x;\n border-color: rgb(194.8, 230.36, 202.92);\n}\n.alert-success hr {\n border-top-color: rgb(176.7059405941, 222.9540594059, 187.2665346535);\n}\n.alert-success .alert-link {\n color: rgb(10.9449275362, 45.6950724638, 18.88);\n}\n\n.alert-info {\n color: rgb(11.96, 84.24, 95.68);\n background: rgb(208.6, 236.4, 240.8) linear-gradient(180deg, rgb(182.26, 206.49, 210.83), rgb(208.6, 236.4, 240.8)) repeat-x;\n border-color: rgb(190.04, 228.96, 235.12);\n}\n.alert-info hr {\n border-top-color: rgb(170.5152475248, 221.1332673267, 229.1447524752);\n}\n.alert-info .alert-link {\n color: rgb(6.2933333333, 44.3269565217, 50.3466666667);\n}\n\n.alert-warning {\n color: rgb(132.6, 100.36, 3.64);\n background: rgb(255, 242.6, 205.4) linear-gradient(180deg, rgb(221.7, 211.76, 180.74), rgb(255, 242.6, 205.4)) repeat-x;\n border-color: rgb(255, 237.64, 185.56);\n}\n.alert-warning hr {\n border-top-color: rgb(255, 231.265, 160.06);\n}\n.alert-warning .alert-link {\n color: rgb(82.9625954198, 62.7912977099, 2.2774045802);\n}\n\n.alert-danger {\n color: rgb(114.4, 27.56, 35.88);\n background: rgb(248, 214.6, 217.8) linear-gradient(180deg, rgb(215.75, 187.96, 191.28), rgb(248, 214.6, 217.8)) repeat-x;\n border-color: rgb(245.2, 198.44, 202.92);\n}\n.alert-danger hr {\n border-top-color: rgb(241.4341772152, 176.7058227848, 182.9073417722);\n}\n.alert-danger .alert-link {\n color: rgb(73.3010989011, 17.6589010989, 22.9898901099);\n}\n\n.alert-light {\n color: rgb(128.96, 129.48, 130);\n background: rgb(253.6, 253.8, 254) linear-gradient(180deg, rgb(220.51, 221.28, 222.05), rgb(253.6, 253.8, 254)) repeat-x;\n border-color: rgb(253.04, 253.32, 253.6);\n}\n.alert-light hr {\n border-top-color: rgb(238.165, 240.57, 242.975);\n}\n.alert-light .alert-link {\n color: rgb(103.5492351816, 103.98, 104.4107648184);\n}\n\n.alert-dark {\n color: rgb(27.04, 30.16, 33.28);\n background: rgb(214.4, 215.6, 216.8) linear-gradient(180deg, rgb(187.19, 188.81, 190.43), rgb(214.4, 215.6, 216.8)) repeat-x;\n border-color: rgb(198.16, 199.84, 201.52);\n}\n.alert-dark hr {\n border-top-color: rgb(185.0216751269, 187.09, 189.1583248731);\n}\n.alert-dark .alert-link {\n color: rgb(4.1779310345, 4.66, 5.1420689655);\n}\n\n.alert-transparent {\n color: rgba(0, 0, 0, 0.48);\n background: rgba(255, 255, 255, 0.8) linear-gradient(180deg, rgba(208.5348837209, 209.3720930233, 210.2093023256, 0.83), rgba(255, 255, 255, 0.8)) repeat-x;\n border-color: rgba(255, 255, 255, 0.72);\n}\n.alert-transparent hr {\n border-top-color: rgba(242.25, 242.25, 242.25, 0.72);\n}\n.alert-transparent .alert-link {\n color: rgba(0, 0, 0, 0.48);\n}\n\n.alert-background {\n color: rgb(17.16, 19.24, 21.32);\n background: rgb(210.6, 211.4, 212.2) linear-gradient(180deg, rgb(183.96, 185.24, 186.52), rgb(210.6, 211.4, 212.2)) repeat-x;\n border-color: rgb(192.84, 193.96, 195.08);\n}\n.alert-background hr {\n border-top-color: rgb(179.8560550459, 181.21, 182.5639449541);\n}\n.alert-background .alert-link {\n color: black;\n}\n\n.alert-darker {\n color: rgb(11.2467567568, 12.61, 13.9732432432);\n background: rgb(208.3256756757, 208.85, 209.3743243243) linear-gradient(180deg, rgb(182.0268243243, 183.0725, 184.1181756757), rgb(208.3256756757, 208.85, 209.3743243243)) repeat-x;\n border-color: rgb(189.6559459459, 190.39, 191.1240540541);\n}\n.alert-darker hr {\n border-top-color: rgb(176.76108928, 177.64, 178.51891072);\n}\n.alert-darker .alert-link {\n color: black;\n}\n\n.alert-darkblue {\n color: rgb(0.832, 34.944, 64.064);\n background: rgb(204.32, 217.44, 228.64) linear-gradient(180deg, rgb(178.622, 190.374, 200.494), rgb(204.32, 217.44, 228.64)) repeat-x;\n border-color: rgb(184.048, 202.416, 218.096);\n}\n.alert-darkblue hr {\n border-top-color: rgb(167.2730778816, 189.9837570093, 209.3709221184);\n}\n.alert-darkblue .alert-link {\n color: rgb(0.1781538462, 7.4824615385, 13.7178461538);\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #000;\n text-align: center;\n white-space: nowrap;\n background-color: #02549a;\n transition: width 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.5;\n}\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: 0.75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n color: #000;\n background-color: #495057;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n.toast.showing {\n opacity: 1;\n}\n.toast.show {\n display: block;\n opacity: 1;\n}\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #000;\n background-color: #6c757d;\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #343a40;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #343a40;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #343a40;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-content {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: 0.9;\n}\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {\n bottom: 0;\n}\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {\n top: 0;\n}\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=top] {\n margin-bottom: 0.5rem;\n}\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=right] {\n margin-left: 0.5rem;\n}\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {\n margin-top: 0.5rem;\n}\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid rgb(247.35, 247.35, 247.35);\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=left] {\n margin-right: 0.5rem;\n}\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: #000;\n background-color: rgb(247.35, 247.35, 247.35);\n border-bottom: 1px solid rgb(234.6, 234.6, 234.6);\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #000;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n border: 0.25em solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n background-color: currentcolor;\n border-radius: 50%;\n opacity: 0;\n animation: 0.75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s;\n }\n}\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #02549a !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: rgb(1.3461538462, 56.5384615385, 103.6538461538) !important;\n}\n\n.bg-secondary {\n background-color: #2576bc !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: rgb(28.6133333333, 91.2533333333, 145.3866666667) !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: rgb(30.1449275362, 125.8550724638, 52) !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: rgb(17.3333333333, 122.0869565217, 138.6666666667) !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: rgb(211, 158.25, 0) !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: rgb(189.2151898734, 32.7848101266, 47.7721518987) !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: rgb(218.25, 223.5, 228.75) !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: rgb(29.1379310345, 32.5, 35.8620689655) !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\na.bg-transparent:hover, a.bg-transparent:focus,\nbutton.bg-transparent:hover,\nbutton.bg-transparent:focus {\n background-color: rgba(0, 0, 0, 0) !important;\n}\n\n.bg-background {\n background-color: #212529 !important;\n}\n\na.bg-background:hover, a.bg-background:focus,\nbutton.bg-background:hover,\nbutton.bg-background:focus {\n background-color: rgb(10.2567567568, 11.5, 12.7432432432) !important;\n}\n\n.bg-darker {\n background-color: rgb(21.6283783784, 24.25, 26.8716216216) !important;\n}\n\na.bg-darker:hover, a.bg-darker:focus,\nbutton.bg-darker:hover,\nbutton.bg-darker:focus {\n background-color: black !important;\n}\n\n.bg-darkblue {\n background-color: rgb(1.6, 67.2, 123.2) !important;\n}\n\na.bg-darkblue:hover, a.bg-darkblue:focus,\nbutton.bg-darkblue:hover,\nbutton.bg-darkblue:focus {\n background-color: rgb(0.9461538462, 39.7384615385, 72.8538461538) !important;\n}\n\n.bg-gradient-primary {\n background: #02549a linear-gradient(180deg, rgb(6.65, 76.95, 137.05), #02549a) repeat-x !important;\n}\n\n.bg-gradient-secondary {\n background: #2576bc linear-gradient(180deg, rgb(36.4, 105.85, 165.95), #2576bc) repeat-x !important;\n}\n\n.bg-gradient-success {\n background: #28a745 linear-gradient(180deg, rgb(38.95, 147.5, 64.8), #28a745) repeat-x !important;\n}\n\n.bg-gradient-info {\n background: #17a2b8 linear-gradient(180deg, rgb(24.5, 143.25, 162.55), #17a2b8) repeat-x !important;\n}\n\n.bg-gradient-warning {\n background: #ffc107 linear-gradient(180deg, rgb(221.7, 169.6, 12.1), #ffc107) repeat-x !important;\n}\n\n.bg-gradient-danger {\n background: #dc3545 linear-gradient(180deg, rgb(191.95, 50.6, 64.8), #dc3545) repeat-x !important;\n}\n\n.bg-gradient-light {\n background: #f8f9fa linear-gradient(180deg, rgb(215.75, 217.2, 218.65), #f8f9fa) repeat-x !important;\n}\n\n.bg-gradient-dark {\n background: #343a40 linear-gradient(180deg, rgb(49.15, 54.85, 60.55), #343a40) repeat-x !important;\n}\n\n.bg-gradient-transparent {\n background: transparent linear-gradient(180deg, rgba(33, 37, 41, 0.15), transparent) repeat-x !important;\n}\n\n.bg-gradient-background {\n background: #212529 linear-gradient(180deg, #212529, #212529) repeat-x !important;\n}\n\n.bg-gradient-darker {\n background: rgb(21.6283783784, 24.25, 26.8716216216) linear-gradient(180deg, rgb(23.3341216216, 26.1625, 28.9908783784), rgb(21.6283783784, 24.25, 26.8716216216)) repeat-x !important;\n}\n\n.bg-gradient-darkblue {\n background: rgb(1.6, 67.2, 123.2) linear-gradient(180deg, rgb(6.31, 62.67, 110.87), rgb(1.6, 67.2, 123.2)) repeat-x !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #343a40 !important;\n}\n\n.border-top {\n border-top: 1px solid #343a40 !important;\n}\n\n.border-right {\n border-right: 1px solid #343a40 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #343a40 !important;\n}\n\n.border-left {\n border-left: 1px solid #343a40 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #02549a !important;\n}\n\n.border-secondary {\n border-color: #2576bc !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-transparent {\n border-color: transparent !important;\n}\n\n.border-background {\n border-color: #212529 !important;\n}\n\n.border-darker {\n border-color: rgb(21.6283783784, 24.25, 26.8716216216) !important;\n}\n\n.border-darkblue {\n border-color: rgb(1.6, 67.2, 123.2) !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714286%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.w-0 {\n width: 0 !important;\n}\n\n.w-40 {\n width: 40% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.h-0 {\n height: 0 !important;\n}\n\n.h-40 {\n height: 40% !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #02549a !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: rgb(1.0192307692, 42.8076923077, 78.4807692308) !important;\n}\n\n.text-secondary {\n color: #2576bc !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: rgb(24.42, 77.88, 124.08) !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: rgb(25.2173913043, 105.2826086957, 43.5) !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: rgb(14.5, 102.1304347826, 116) !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: rgb(185.5, 139.125, 0) !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: rgb(167.4810126582, 29.0189873418, 42.2848101266) !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: rgb(203.375, 210.75, 218.125) !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: rgb(17.7068965517, 19.75, 21.7931034483) !important;\n}\n\n.text-transparent {\n color: transparent !important;\n}\n\na.text-transparent:hover, a.text-transparent:focus {\n color: rgba(0, 0, 0, 0) !important;\n}\n\n.text-background {\n color: #212529 !important;\n}\n\na.text-background:hover, a.text-background:focus {\n color: black !important;\n}\n\n.text-darker {\n color: rgb(21.6283783784, 24.25, 26.8716216216) !important;\n}\n\na.text-darker:hover, a.text-darker:focus {\n color: black !important;\n}\n\n.text-darkblue {\n color: rgb(1.6, 67.2, 123.2) !important;\n}\n\na.text-darkblue:hover, a.text-darkblue:focus {\n color: rgb(0.6192307692, 26.0076923077, 47.6807692308) !important;\n}\n\n.text-body {\n color: #e9ecef !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n.text-secondary {\n color: #3b93de !important;\n}\n\n.bg-body {\n background-color: #212529;\n}\n\n.nav-tabs .nav-link {\n color: #e9ecef;\n border: 1px solid #495057;\n margin-right: 0.1rem;\n margin-left: 0.1rem;\n}\n\n@media (max-width: 767.98px) {\n .nav-tabs .nav-link {\n margin-bottom: 0;\n }\n}\n.alert-warning {\n font-weight: 600;\n color: #000;\n background: rgba(255, 193, 7, 0.5) linear-gradient(180deg, rgba(178.1538461538, 139, 18.7692307692, 0.575), rgba(255, 193, 7, 0.5)) repeat-x;\n border-color: #ffc107;\n}\n.alert-warning hr {\n border-top-color: rgb(236.5, 177.375, 0);\n}\n.alert-warning .alert-link {\n color: black;\n}\n\n.alert-error {\n color: #fff;\n background: #343a40 linear-gradient(180deg, rgb(49.15, 54.85, 60.55), #343a40) repeat-x;\n border-color: #dc3545;\n}\n.alert-error hr {\n border-top-color: rgb(210.9493670886, 36.5506329114, 53.2594936709);\n}\n.alert-error .alert-link {\n color: rgb(229.5, 229.5, 229.5);\n}\n\n.alert-dismissible {\n padding-right: 1.25rem !important;\n}\n\n.pre-wrap {\n white-space: pre-wrap;\n}\n\n.h-unset {\n height: unset !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.w-0 {\n width: 0 !important;\n}\n\n.w-40 {\n width: 40% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.h-0 {\n height: 0 !important;\n}\n\n.h-40 {\n height: 40% !important;\n}\n\n@media (min-width: 576px) {\n .w-sm-25 {\n width: 25% !important;\n }\n .w-sm-50 {\n width: 50% !important;\n }\n .w-sm-75 {\n width: 75% !important;\n }\n .w-sm-100 {\n width: 100% !important;\n }\n .w-sm-auto {\n width: auto !important;\n }\n .w-sm-0 {\n width: 0 !important;\n }\n .w-sm-40 {\n width: 40% !important;\n }\n .h-sm-25 {\n height: 25% !important;\n }\n .h-sm-50 {\n height: 50% !important;\n }\n .h-sm-75 {\n height: 75% !important;\n }\n .h-sm-100 {\n height: 100% !important;\n }\n .h-sm-auto {\n height: auto !important;\n }\n .h-sm-0 {\n height: 0 !important;\n }\n .h-sm-40 {\n height: 40% !important;\n }\n}\n@media (min-width: 768px) {\n .w-md-25 {\n width: 25% !important;\n }\n .w-md-50 {\n width: 50% !important;\n }\n .w-md-75 {\n width: 75% !important;\n }\n .w-md-100 {\n width: 100% !important;\n }\n .w-md-auto {\n width: auto !important;\n }\n .w-md-0 {\n width: 0 !important;\n }\n .w-md-40 {\n width: 40% !important;\n }\n .h-md-25 {\n height: 25% !important;\n }\n .h-md-50 {\n height: 50% !important;\n }\n .h-md-75 {\n height: 75% !important;\n }\n .h-md-100 {\n height: 100% !important;\n }\n .h-md-auto {\n height: auto !important;\n }\n .h-md-0 {\n height: 0 !important;\n }\n .h-md-40 {\n height: 40% !important;\n }\n}\n@media (min-width: 992px) {\n .w-lg-25 {\n width: 25% !important;\n }\n .w-lg-50 {\n width: 50% !important;\n }\n .w-lg-75 {\n width: 75% !important;\n }\n .w-lg-100 {\n width: 100% !important;\n }\n .w-lg-auto {\n width: auto !important;\n }\n .w-lg-0 {\n width: 0 !important;\n }\n .w-lg-40 {\n width: 40% !important;\n }\n .h-lg-25 {\n height: 25% !important;\n }\n .h-lg-50 {\n height: 50% !important;\n }\n .h-lg-75 {\n height: 75% !important;\n }\n .h-lg-100 {\n height: 100% !important;\n }\n .h-lg-auto {\n height: auto !important;\n }\n .h-lg-0 {\n height: 0 !important;\n }\n .h-lg-40 {\n height: 40% !important;\n }\n}\n@media (min-width: 1200px) {\n .w-xl-25 {\n width: 25% !important;\n }\n .w-xl-50 {\n width: 50% !important;\n }\n .w-xl-75 {\n width: 75% !important;\n }\n .w-xl-100 {\n width: 100% !important;\n }\n .w-xl-auto {\n width: auto !important;\n }\n .w-xl-0 {\n width: 0 !important;\n }\n .w-xl-40 {\n width: 40% !important;\n }\n .h-xl-25 {\n height: 25% !important;\n }\n .h-xl-50 {\n height: 50% !important;\n }\n .h-xl-75 {\n height: 75% !important;\n }\n .h-xl-100 {\n height: 100% !important;\n }\n .h-xl-auto {\n height: auto !important;\n }\n .h-xl-0 {\n height: 0 !important;\n }\n .h-xl-40 {\n height: 40% !important;\n }\n}\n@media (max-width: 575.98px) {\n .text-break {\n word-wrap: break-word !important;\n }\n}\n@media (max-width: 767.98px) {\n .text-sm-break {\n word-wrap: break-word !important;\n }\n}\n@media (max-width: 991.98px) {\n .text-md-break {\n word-wrap: break-word !important;\n }\n}\n@media (max-width: 1199.98px) {\n .text-lg-break {\n word-wrap: break-word !important;\n }\n}\n.text-xl-break {\n word-wrap: break-word !important;\n}\n\n.toast-header .close {\n margin-left: auto !important;\n}\n.toast-header .close span {\n margin-left: 0.5rem !important;\n}\n\n.anim-fade-appear {\n opacity: 0;\n}\n\n.anim-fade-appear-active {\n opacity: 1;\n}\n\n.anim-fade-exit {\n opacity: 1;\n}\n\n.anim-fade-exit-active {\n opacity: 0;\n}\n\n.anim-fade-appear-active,\n.anim-fade-exit-active {\n transition: opacity 600ms;\n}\n\n.anim-collapse-all {\n display: none;\n}\n\n.anim-collapse-enter {\n flex-grow: 0;\n flex-basis: 0;\n min-width: 0;\n overflow: hidden;\n display: unset !important;\n}\n\n.anim-collapse-enter-active {\n flex-grow: 1;\n display: unset !important;\n}\n\n.anim-collapse-enter-done {\n flex-grow: 1;\n display: unset !important;\n}\n\n.anim-collapse-exit {\n flex-grow: 1;\n display: unset !important;\n}\n\n.anim-collapse-exit-active {\n flex-grow: 0;\n flex-basis: 0;\n overflow: hidden;\n}\n\n.anim-collapse-exit-done {\n flex-grow: 0;\n flex-basis: 0;\n overflow: hidden;\n}\n\n.anim-collapse-enter-active,\n.anim-collapse-exit-active {\n transition: flex-grow 200ms;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n\n.fancyscroll {\n scrollbar-width: thin;\n scrollbar-color: #343a40 rgba(108, 117, 125, 0.5);\n}\n\n.fancyscroll::-webkit-scrollbar {\n height: 8px;\n width: 8px;\n}\n\n.fancyscroll::-webkit-scrollbar-track {\n background: rgba(108, 117, 125, 0.5);\n}\n\n.fancyscroll::-webkit-scrollbar-thumb {\n background-color: #343a40;\n}\n\n.jobswidget {\n border: #6c757d double;\n background: rgba(108, 117, 125, 0.5);\n}\n.jobswidget h5 {\n background: rgba(52, 58, 64, 0.2);\n}\n\n.home svg path {\n stroke: #3c3c3c;\n stroke-width: 3px;\n}\n\n.nav-item:not(:first-of-type) > .instanceedittab {\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n.nav-item:not(:last-of-type) > .instanceedittab {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n border-bottom: #6c757d solid 1px;\n}\n\n.instanceedittab {\n background-color: #02549a;\n color: white;\n}\n.instanceedittab.no-access {\n background-color: #dc3545;\n}\n.instanceedittab:hover {\n color: #cccccc;\n}\n.instanceedittab.active {\n background-color: rgb(1.2153846154, 51.0461538462, 93.5846153846) !important;\n color: lightskyblue !important;\n box-shadow: inset 0 2px 8px -2px black;\n /*border: 1px solid $gray-600 !important;*/\n}\n.instanceedittab.active.no-access {\n background-color: rgb(180.5215189873, 31.2784810127, 45.5772151899) !important;\n color: white !important;\n}\n\n.hover-bar:not(.pin-open) .tab-text {\n transition: max-width 1s, padding 1s;\n overflow: clip;\n}\n@media (min-width: 992px) {\n .hover-bar:not(.pin-open) .tab-text {\n max-width: 0;\n }\n}\n\n@media (min-width: 992px) {\n .hover-bar:not(.pin-close):hover .tab-text {\n max-width: 300px;\n }\n .hover-bar:not(:hover) .tab-text {\n padding-left: 0 !important;\n }\n}\n.reset-table tr {\n background-color: initial !important;\n}\n.reset-table th, .reset-table td {\n border-color: initial !important;\n padding: initial !important;\n vertical-align: initial !important;\n border-top: initial !important;\n}\n\n.browser-ul {\n list-style: none;\n margin-left: 0;\n margin-top: 4px;\n padding-left: 1em;\n}\n\n.browser-li {\n margin-top: 4px;\n}\n\n.report-issue {\n position: fixed;\n bottom: 0px;\n left: 0px;\n margin-left: 5px;\n margin-bottom: 5px;\n}\n\n.corner-logo {\n position: fixed;\n bottom: 0px;\n right: 0px;\n margin-right: 5px;\n margin-bottom: 5px;\n}\n\n.behind-nav {\n z-index: 3;\n}\n\n* {\n line-height: inherit;\n}\n\n@media (max-width: 991px) {\n .container-md, .container-sm, .container {\n max-width: unset !important;\n }\n}\n/**\n * Main wrapper\n */\n.select-search {\n width: 100%;\n position: relative;\n font-family: \"Nunito Sans\", sans-serif;\n box-sizing: border-box;\n}\n\n.select-search *,\n.select-search *::after,\n.select-search *::before {\n box-sizing: inherit;\n}\n\n/**\n * Value wrapper\n */\n.select-search__value {\n position: relative;\n z-index: 1;\n}\n\n.select-search__value::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: calc(50% - 9px);\n right: 19px;\n width: 11px;\n height: 11px;\n}\n\n/**\n * Input\n */\n.select-search__input {\n display: block;\n height: 36px;\n width: 100%;\n padding: 0 40px 0 16px;\n background: #fff;\n border: 1px solid transparent;\n box-shadow: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.15);\n border-radius: 3px;\n outline: none;\n font-family: \"Noto Sans\", sans-serif;\n font-size: 14px;\n text-align: left;\n text-overflow: ellipsis;\n line-height: 36px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.select-search__input::-webkit-search-decoration,\n.select-search__input::-webkit-search-cancel-button,\n.select-search__input::-webkit-search-results-button,\n.select-search__input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n}\n\n.select-search__input:not([readonly]):focus {\n cursor: initial;\n}\n\n/**\n * Options wrapper\n */\n.select-search__select {\n background: #fff;\n box-shadow: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.15);\n}\n\n/**\n * Options\n */\n.select-search__options {\n list-style: none;\n padding-left: 0;\n}\n\n/**\n * Option row\n */\n.select-search__row:not(:first-child) {\n border-top: 1px solid #eee;\n}\n\n/**\n * Option\n */\n.select-search__option,\n.select-search__not-found {\n display: block;\n min-height: 36px;\n width: 100%;\n padding: 0 16px;\n background: #fff;\n border: none;\n outline: none;\n font-family: \"Noto Sans\", sans-serif;\n font-size: 15px;\n text-align: left;\n cursor: pointer;\n}\n\n.select-search--multiple .select-search__option {\n height: 48px;\n}\n\n.select-search__option.is-selected {\n background: #2576bc;\n color: #fff;\n}\n\n.select-search__option.is-highlighted,\n.select-search__option:not(.is-selected):hover {\n background: rgba(47, 204, 139, 0.1);\n}\n\n.select-search__option.is-highlighted.is-selected,\n.select-search__option.is-selected:hover {\n background: rgb(29.6, 94.4, 150.4);\n color: #fff;\n}\n\n/**\n * Group\n */\n.select-search__group-header {\n font-size: 10px;\n text-transform: uppercase;\n background: #eee;\n padding: 8px 16px;\n}\n\n/**\n * States\n */\n.select-search.is-disabled {\n opacity: 0.5;\n}\n\n.select-search.is-loading .select-search__value::after {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 50 50'%3E%3Cpath fill='%232F2D37' d='M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E\");\n background-size: 11px;\n}\n\n.select-search:not(.is-disabled) .select-search__input {\n cursor: pointer;\n}\n\n/**\n * Modifiers\n */\n.select-search--multiple {\n border-radius: 3px;\n overflow: hidden;\n}\n\n.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value::after {\n transform: rotate(45deg);\n border-right: 1px solid #000;\n border-bottom: 1px solid #000;\n pointer-events: none;\n}\n\n.select-search--multiple .select-search__input {\n cursor: initial;\n}\n\n.select-search--multiple .select-search__input {\n border-radius: 3px 3px 0 0;\n}\n\n.select-search--multiple:not(.select-search--search) .select-search__input {\n cursor: default;\n}\n\n.select-search:not(.select-search--multiple) .select-search__input:hover {\n border-color: #2FCC8B;\n}\n\n.select-search:not(.select-search--multiple) .select-search__select {\n position: absolute;\n z-index: 2;\n top: 44px;\n right: 0;\n left: 0;\n border-radius: 3px;\n overflow: auto;\n max-height: 360px;\n}\n\n.select-search--multiple .select-search__select {\n position: relative;\n overflow: auto;\n max-height: 260px;\n border-top: 1px solid #eee;\n border-radius: 0 0 3px 3px;\n}\n\n.select-search__not-found {\n height: auto;\n padding: 16px;\n text-align: center;\n color: #888;\n}\n\n.status-badge {\n margin-left: 5px;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js b/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js new file mode 100644 index 00000000..043fffec --- /dev/null +++ b/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6643],{6643:function(t,e,s){s.r(e);var r=s(6540),a=s(5615),o=s(1105),n=s(1208),i=s(8065),l=s(4180),d=s(6382),h=s(4173),c=s(5301),u=s(3728),m=s(1552),p=s(7864),E=s(7567),w=s(7255);class g extends r.Component{constructor(t,e){if(super(t),!e?.user)throw Error("ChangePassword: this.context?.user is null!");let s;s=t.match.params.id?parseInt(t.match.params.id):e.user.id,this.state={errors:[],password1:"",password2:"",userId:s,currentUser:e.user.id===s,loading:!0},this.submit=this.submit.bind(this)}componentDidMount(){(async()=>{const t=await m.A.getUser(this.state.userId);t.code==c.s.OK?this.setState({user:t.payload}):this.addError(t.error),this.setState({loading:!1})})()}addError(t){this.setState((e=>{const s=Array.from(e.errors);return s.push(t),{errors:s}}))}async submit(t){if(!this.state.user)return void this.addError(new h.Ay(h.O4.APP_FAIL,{jsError:Error("changepassword submit: this.user is falsy")}));t.preventDefault();let e=!1;if(this.state.password1.length{this.submit(t)}},r.createElement(o.A,{className:"mx-auto",lg:5,md:8},this.state.errors.map(((t,e)=>{if(t)return r.createElement(E.Ay,{key:e,error:t,onClose:()=>this.setState((t=>{const s=Array.from(t.errors);return s[e]=void 0,{errors:s}}))})})),this.state.user?r.createElement(r.Fragment,null,r.createElement("h3",null,r.createElement(i.A,{id:"view.user.passwd.title"}),this.state.user.name,"(",this.state.user.id,")"),r.createElement("hr",null),r.createElement(n.A.Group,{controlId:"password1"},r.createElement(n.A.Label,null,r.createElement(i.A,{id:"login.password"})),r.createElement(n.A.Control,{type:"password",onChange:t=>this.setState({password1:t.target.value}),value:this.state.password1,isInvalid:this.state.matchError||this.state.lengthError}),r.createElement(n.A.Control.Feedback,{type:"invalid"},this.state.lengthError?r.createElement(r.Fragment,null,r.createElement(i.A,{id:"login.password.repeat.short"}),this.context.serverInfo.minimumPasswordLength):"")),r.createElement(n.A.Group,{controlId:"password2"},r.createElement(n.A.Label,null,r.createElement(i.A,{id:"login.password.repeat"})),r.createElement(n.A.Control,{type:"password",onChange:t=>this.setState({password2:t.target.value}),value:this.state.password2,isInvalid:this.state.matchError||this.state.lengthError}),r.createElement(n.A.Control.Feedback,{type:"invalid"},this.state.matchError?r.createElement(i.A,{id:"login.password.repeat.match"}):"")),r.createElement(a.A,{type:"submit"},r.createElement(i.A,{id:"routes.passwd"}))):""))}}g.contextType=p.U,e.default=(0,l.y)(g)}}]); +//# sourceMappingURL=6643.7e43d44f5d3f24e9f135.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js.map b/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js.map new file mode 100644 index 00000000..213f0bd4 --- /dev/null +++ b/webpanel/6.6.0/6643.7e43d44f5d3f24e9f135.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6643.7e43d44f5d3f24e9f135.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/views/ChangePassword.tsx"],"sourcesContent":["import React, { ChangeEvent, FormEvent } from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport { FormattedMessage } from \"react-intl\";\nimport { RouteComponentProps } from \"react-router\";\nimport { withRouter } from \"react-router-dom\";\n\nimport type { UserResponse } from \"../../ApiClient/generatedcode/generated\";\nimport { CredentialsType } from \"../../ApiClient/models/ICredentials\";\nimport InternalError, { ErrorCode } from \"../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../ApiClient/models/InternalComms/InternalStatus\";\nimport ServerClient from \"../../ApiClient/ServerClient\";\nimport UserClient from \"../../ApiClient/UserClient\";\nimport { GeneralContext } from \"../../contexts/GeneralContext\";\nimport ErrorAlert from \"../utils/ErrorAlert\";\nimport Loading from \"../utils/Loading\";\n\ntype IProps = RouteComponentProps<{ id: string }>;\n\ninterface IState {\n errors: Array | undefined>;\n password1: string;\n password2: string;\n matchError?: boolean;\n lengthError?: boolean;\n loading: boolean;\n pwdload?: boolean;\n user?: UserResponse;\n userId: number;\n currentUser: boolean;\n}\n\nclass ChangePassword extends React.Component {\n public declare context: GeneralContext;\n\n public constructor(props: IProps, context: GeneralContext) {\n super(props);\n\n if (!context?.user) {\n throw Error(\"ChangePassword: this.context?.user is null!\");\n }\n\n let id: number;\n if (props.match.params.id) {\n id = parseInt(props.match.params.id);\n } else {\n id = context.user.id;\n }\n\n this.state = {\n errors: [],\n password1: \"\",\n password2: \"\",\n userId: id,\n currentUser: context.user.id === id,\n loading: true\n };\n\n this.submit = this.submit.bind(this);\n }\n\n public componentDidMount(): void {\n void (async () => {\n const user = await UserClient.getUser(this.state.userId);\n if (user.code == StatusCode.OK) {\n this.setState({\n user: user.payload\n });\n } else {\n this.addError(user.error);\n }\n\n this.setState({\n loading: false\n });\n })();\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n // noinspection DuplicatedCode\n private async submit(event: FormEvent): Promise {\n if (!this.state.user) {\n this.addError(\n new InternalError(ErrorCode.APP_FAIL, {\n jsError: Error(\"changepassword submit: this.user is falsy\")\n })\n );\n return;\n }\n\n event.preventDefault();\n let err = false;\n if (this.state.password1.length < this.context.serverInfo.minimumPasswordLength) {\n err = true;\n this.setState({\n lengthError: true\n });\n } else {\n this.setState({\n lengthError: false\n });\n }\n if (this.state.password2 !== this.state.password1) {\n err = true;\n this.setState({\n matchError: true\n });\n } else {\n this.setState({\n matchError: false\n });\n }\n if (err) return;\n\n this.setState({\n pwdload: true\n });\n\n const res = await UserClient.editUser({\n password: this.state.password1,\n id: this.state.user.id\n });\n switch (res.code) {\n case StatusCode.OK: {\n if (this.state.currentUser) {\n // noinspection ES6MissingAwait //we just dont care about what happens, it can fail or succeed\n void ServerClient.login({\n type: CredentialsType.Password,\n userName: this.state.user.name,\n password: this.state.password1\n });\n }\n\n this.props.history.goBack();\n break;\n }\n case StatusCode.ERROR: {\n this.addError(res.error);\n //we only unset it here because its going to get redirected anyways\n this.setState({\n pwdload: false\n });\n break;\n }\n }\n }\n\n public render(): React.ReactNode {\n if (this.state.loading) {\n return ;\n }\n if (this.state.pwdload) {\n return ;\n }\n\n const handlePwd1Input = (event: ChangeEvent) =>\n this.setState({ password1: event.target.value });\n const handlePwd2Input = (event: ChangeEvent) =>\n this.setState({ password2: event.target.value });\n\n return (\n
    void this.submit(e)}>\n \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n {this.state.user ? (\n \n

    \n \n {this.state.user.name}({this.state.user.id})\n

    \n
    \n \n \n \n \n \n \n {this.state.lengthError ? (\n \n \n {this.context.serverInfo.minimumPasswordLength}\n \n ) : (\n \"\"\n )}\n \n \n \n \n \n \n \n \n {this.state.matchError ? (\n \n ) : (\n \"\"\n )}\n \n \n \n
    \n ) : (\n \"\"\n )}\n \n \n );\n }\n}\nChangePassword.contextType = GeneralContext;\nexport default withRouter(ChangePassword);\n"],"names":["ChangePassword","React","constructor","props","context","super","user","Error","id","match","params","parseInt","this","state","errors","password1","password2","userId","currentUser","loading","submit","bind","componentDidMount","UserClient","getUser","code","StatusCode","OK","setState","payload","addError","error","prevState","Array","from","push","event","InternalError","ErrorCode","APP_FAIL","jsError","preventDefault","err","length","serverInfo","minimumPasswordLength","lengthError","matchError","pwdload","res","editUser","password","ServerClient","login","type","CredentialsType","Password","userName","name","history","goBack","ERROR","render","Loading","text","Form","onSubmit","e","Col","className","lg","md","map","index","ErrorAlert","key","onClose","prev","newarr","undefined","FormattedMessage","Group","controlId","Label","Control","onChange","target","value","isInvalid","Feedback","Button","contextType","GeneralContext","withRouter"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js b/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js new file mode 100644 index 00000000..eb43384c --- /dev/null +++ b/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6670],{6670:function(e,t,n){e.exports=n(7376).YAML},7376:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}n.d(t,{YAML:function(){return nn}});var N={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},A={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},L="tag:yaml.org,2002:",I={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function M(e){for(var t=[0],n=e.indexOf("\n");-1!==n;)n+=1,t.push(n),n=e.indexOf("\n",n);return t}function x(e){var t,n;return"string"==typeof e?(t=M(e),n=e):(Array.isArray(e)&&(e=e[0]),e&&e.context&&(e.lineStarts||(e.lineStarts=M(e.context.src)),t=e.lineStarts,n=e.context.src)),{lineStarts:t,src:n}}function T(e,t){if("number"!=typeof e||e<0)return null;var n=x(t),r=n.lineStarts,a=n.src;if(!r||!a||e>a.length)return null;for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:80,i=function(e,t){var n=x(t),r=n.lineStarts,a=n.src;if(!r||!(e>=1)||e>r.length)return null;for(var i=r[e-1],o=r[e];o&&o>i&&"\n"===a[o-1];)--o;return a.slice(i,o)}(n.line,t);if(!i)return null;var o=n.col;if(i.length>a)if(o<=a-10)i=i.substr(0,a-1)+"\u2026";else{var s=Math.round(a/2);i.length>o+s&&(i=i.substr(0,o+s-1)+"\u2026"),o-=i.length-a,i="\u2026"+i.substr(1-a)}var c=1,u="";r&&(r.line===n.line&&o+(r.col-n.col)<=a+1?c=r.col-n.col:(c=Math.min(i.length+1,a)-o,u="\u2026"));var f=o>1?" ".repeat(o-1):"",l="^".repeat(c);return"".concat(i,"\n").concat(f).concat(l).concat(u)}var _=function(){function e(t,n){a(this,e),this.start=t,this.end=n||t}return o(e,[{key:"isEmpty",value:function(){return"number"!=typeof this.start||!this.end||this.end<=this.start}},{key:"setOrigRange",value:function(e,t){var n=this.start,r=this.end;if(0===e.length||r<=e[0])return this.origStart=n,this.origEnd=r,t;for(var a=t;an);)++a;this.origStart=n+a;for(var i=a;a=r);)++a;return this.origEnd=r+a,i}}],[{key:"copy",value:function(t){return new e(t.start,t.end)}}]),e}(),R=function(){function e(t,n,r){a(this,e),Object.defineProperty(this,"context",{value:r||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=n||[],this.type=t,this.value=null}return o(e,[{key:"getPropValue",value:function(e,t,n){if(!this.context)return null;var r=this.context.src,a=this.props[e];return a&&r[a.start]===t?r.slice(a.start+(n?1:0),a.end):null}},{key:"anchor",get:function(){for(var e=0;e0?e.join("\n"):null}},{key:"commentHasRequiredWhitespace",value:function(t){var n=this.context.src;if(this.header&&t===this.header.end)return!1;if(!this.valueRange)return!1;var r=this.valueRange.end;return t!==r||e.atBlank(n,r-1)}},{key:"hasComment",get:function(){if(this.context)for(var e=this.context.src,t=0;t=t.length||"\n"===t[a]?r+"\n":r}},{key:"atDocumentBoundary",value:function(e,t,n){var r=e[t];if(!r)return!0;var a=e[t-1];if(a&&"\n"!==a)return!1;if(n){if(r!==n)return!1}else if(r!==N.DIRECTIVES_END&&r!==N.DOCUMENT_END)return!1;var i=e[t+1],o=e[t+2];if(i!==r||o!==r)return!1;var s=e[t+3];return!s||"\n"===s||"\t"===s||" "===s}},{key:"endOfIdentifier",value:function(e,t){for(var n=e[t],r="<"===n,a=r?["\n","\t"," ",">"]:["\n","\t"," ","[","]","{","}",","];n&&-1===a.indexOf(n);)n=e[t+=1];return r&&">"===n&&(t+=1),t}},{key:"endOfIndent",value:function(e,t){for(var n=e[t];" "===n;)n=e[t+=1];return t}},{key:"endOfLine",value:function(e,t){for(var n=e[t];n&&"\n"!==n;)n=e[t+=1];return t}},{key:"endOfWhiteSpace",value:function(e,t){for(var n=e[t];"\t"===n||" "===n;)n=e[t+=1];return t}},{key:"startOfLine",value:function(e,t){var n=e[t-1];if("\n"===n)return t;for(;n&&"\n"!==n;)n=e[t-=1];return t+1}},{key:"endOfBlockIndent",value:function(t,n,r){var a=e.endOfIndent(t,r);if(a>r+n)return a;var i=e.endOfWhiteSpace(t,a),o=t[i];return o&&"\n"!==o?null:i}},{key:"atBlank",value:function(e,t,n){var r=e[t];return"\n"===r||"\t"===r||" "===r||n&&!r}},{key:"nextNodeIsIndented",value:function(e,t,n){return!(!e||t<0)&&(t>0||n&&"-"===e)}},{key:"normalizeOffset",value:function(t,n){var r=t[n];return r?"\n"!==r&&"\n"===t[n-1]?n-1:e.endOfWhiteSpace(t,n):n}},{key:"foldNewline",value:function(t,n,r){for(var a=0,i=!1,o="",s=t[n+1];" "===s||"\t"===s||"\n"===s;){switch(s){case"\n":a=0,n+=1,o+="\n";break;case"\t":a<=r&&(i=!0),n=e.endOfWhiteSpace(t,n+2)-1;break;case" ":a+=1,n+=1}s=t[n+1]}return o||(o=" "),s&&a<=r&&(i=!0),{fold:o,offset:n,error:i}}}]),e}(),B=function(e){c(n,e);var t=g(n);function n(e,r,i){var o;if(a(this,n),!(i&&r instanceof R))throw new Error("Invalid arguments for new ".concat(e));return(o=t.call(this)).name=e,o.message=i,o.source=r,o}return o(n,[{key:"makePretty",value:function(){if(this.source){this.nodeType=this.source.type;var e=this.source.context&&this.source.context.root;if("number"==typeof this.offset){this.range=new _(this.offset,this.offset+1);var t=e&&T(this.offset,e);if(t){var n={line:t.line,col:t.col+1};this.linePos={start:t,end:n}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){var r=this.linePos.start,a=r.line,i=r.col;this.message+=" at line ".concat(a,", column ").concat(i);var o=e&&C(this.linePos,e);o&&(this.message+=":\n\n".concat(o,"\n"))}delete this.source}}}]),n}(v(Error)),P=function(e){c(n,e);var t=g(n);function n(e,r){return a(this,n),t.call(this,"YAMLReferenceError",e,r)}return n}(B),j=function(e){c(n,e);var t=g(n);function n(e,r){return a(this,n),t.call(this,"YAMLSemanticError",e,r)}return n}(B),D=function(e){c(n,e);var t=g(n);function n(e,r){return a(this,n),t.call(this,"YAMLSyntaxError",e,r)}return n}(B),F=function(e){c(n,e);var t=g(n);function n(e,r){return a(this,n),t.call(this,"YAMLWarning",e,r)}return n}(B),W=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;for(var e=this.valueRange,t=e.start,n=e.end,r=this.context.src,a=r[n-1];tu?r.slice(u,o+1):s)}else i+=s}var l=r[t];switch(l){case"\t":return{errors:[new j(this,"Plain value cannot start with a tab character")],str:i};case"@":case"`":var h="Plain value cannot start with reserved character ".concat(l);return{errors:[new j(this,h)],str:i};default:return i}}},{key:"parseBlockValue",value:function(e){for(var t=this.context,r=t.indent,a=t.inFlow,i=t.src,o=e,s=e,c=i[o];"\n"===c&&!R.atDocumentBoundary(i,o+1);c=i[o]){var u=R.endOfBlockIndent(i,r,o+1);if(null===u||"#"===i[u])break;o="\n"===i[u]?u:s=n.endOfLine(i,u,a)}return this.valueRange.isEmpty()&&(this.valueRange.start=e),this.valueRange.end=s,s}},{key:"parse",value:function(e,t){this.context=e;var r=e.inFlow,a=e.src,i=t,o=a[i];return o&&"#"!==o&&"\n"!==o&&(i=n.endOfLine(a,t,r)),this.valueRange=new _(t,i),i=R.endOfWhiteSpace(a,i),i=this.parseComment(i),this.hasComment&&!this.valueRange.isEmpty()||(i=this.parseBlockValue(i)),i}}],[{key:"endOfLine",value:function(e,t,n){for(var r=e[t],a=t;r&&"\n"!==r&&(!n||"["!==r&&"]"!==r&&"{"!==r&&"}"!==r&&","!==r);){var i=e[a+1];if(":"===r&&(!i||"\n"===i||"\t"===i||" "===i||n&&","===i))break;if((" "===r||"\t"===r)&&"#"===i)break;a+=1,r=i}return a}}]),n}(R),U=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.call(this,A.BLANK_LINE)}return o(n,[{key:"includesTrailingLines",get:function(){return!0}},{key:"parse",value:function(e,t){return this.context=e,this.range=new _(t,t+1),t+1}}]),n}(R),K=function(e){c(n,e);var t=g(n);function n(e,r){var i;return a(this,n),(i=t.call(this,e,r)).node=null,i}return o(n,[{key:"includesTrailingLines",get:function(){return!!this.node&&this.node.includesTrailingLines}},{key:"parse",value:function(e,t){this.context=e;var n=e.parseNode,r=e.src,a=e.atLineStart,i=e.lineStart;a||this.type!==A.SEQ_ITEM||(this.error=new j(this,"Sequence items must not have preceding content on the same line"));for(var o=a?t-i:e.indent,s=R.endOfWhiteSpace(r,t+1),c=r[s],u="#"===c,f=[],l=null;"\n"===c||"#"===c;){if("#"===c){var h=R.endOfLine(r,s+1);f.push(new _(s,h)),s=h}else{a=!0,i=s+1,"\n"===r[R.endOfWhiteSpace(r,i)]&&0===f.length&&(i=(l=new U).parse({src:r},i)),s=R.endOfIndent(r,i)}c=r[s]}if(R.nextNodeIsIndented(c,s-(i+o),this.type!==A.SEQ_ITEM)?this.node=n({atLineStart:a,inCollection:!1,indent:o,lineStart:i,parent:this},s):c&&i>t+1&&(s=i-1),this.node){if(l){var v=e.parent.items||e.parent.contents;v&&v.push(l)}f.length&&Array.prototype.push.apply(this.props,f),s=this.node.range.end}else if(u){var p=f[0];this.props.push(p),s=p.end}else s=R.endOfLine(r,t+1);var d=this.node?this.node.valueRange.end:s;return this.valueRange=new _(t,d),s}},{key:"setOrigRanges",value:function(e,t){return t=m(u(n.prototype),"setOrigRanges",this).call(this,e,t),this.node?this.node.setOrigRanges(e,t):t}},{key:"toString",value:function(){var e=this.context.src,t=this.node,n=this.range,r=this.value;if(null!=r)return r;var a=t?e.slice(n.start,t.range.start)+String(t):e.slice(n.start,n.end);return R.addStringTerminator(e,n.end,a)}}]),n}(R),Q=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.call(this,A.COMMENT)}return o(n,[{key:"parse",value:function(e,t){this.context=e;var n=this.parseComment(t);return this.range=new _(t,n),n}}]),n}(R);function $(e){for(var t=e;t instanceof K;)t=t.node;if(!(t instanceof Y))return null;for(var n=t.items.length,r=-1,a=n-1;a>=0;--a){var i=t.items[a];if(i.type===A.COMMENT){var o=i.context,s=o.indent,c=o.lineStart;if(s>0&&i.range.start>=c+s)break;r=a}else{if(i.type!==A.BLANK_LINE)break;r=a}}if(-1===r)return null;for(var u=t.items.splice(r,n-r),f=u[0].range.start;t.range.end=f,t.valueRange&&t.valueRange.end>f&&(t.valueRange.end=f),t!==e;)t=t.context.parent;return u}var Y=function(e){c(n,e);var t=g(n);function n(e){var r;a(this,n),r=t.call(this,e.type===A.SEQ_ITEM?A.SEQ:A.MAP);for(var i=e.props.length-1;i>=0;--i)if(e.props[i].start0}},{key:"parse",value:function(e,t){this.context=e;var r=e.parseNode,a=e.src,i=R.startOfLine(a,t),o=this.items[0];o.context.parent=this,this.valueRange=_.copy(o.valueRange);for(var s=o.range.start-o.context.lineStart,c=t,u=a[c=R.normalizeOffset(a,c)],f=R.endOfWhiteSpace(a,i)===c,l=!1;u;){for(;"\n"===u||"#"===u;){if(f&&"\n"===u&&!l){var h=new U;if(c=h.parse({src:a},c),this.valueRange.end=c,c>=a.length){u=null;break}this.items.push(h),c-=1}else if("#"===u){if(c=a.length){u=null;break}}if(i=c+1,c=R.endOfIndent(a,i),R.atBlank(a,c)){var p=R.endOfWhiteSpace(a,c),d=a[p];d&&"\n"!==d&&"#"!==d||(c=p)}u=a[c],f=!0}if(!u)break;if(c!==i+s&&(f||":"!==u)){if(ct&&(c=i);break}if(!this.error){this.error=new D(this,"All collection items must start at the same column")}}if(o.type===A.SEQ_ITEM){if("-"!==u){i>t&&(c=i);break}}else if("-"===u&&!this.error){var g=a[c+1];if(!g||"\n"===g||"\t"===g||" "===g){this.error=new D(this,"A collection cannot be both a mapping and a sequence")}}var m=r({atLineStart:f,inCollection:!0,indent:s,lineStart:i,parent:this},c);if(!m)return c;if(this.items.push(m),this.valueRange.end=m.valueRange.end,u=a[c=R.normalizeOffset(a,m.range.end)],f=!1,l=m.includesTrailingLines,u){for(var y=c-1,w=a[y];" "===w||"\t"===w;)w=a[--y];"\n"===w&&(i=y+1,f=!0)}var b=$(m);b&&Array.prototype.push.apply(this.items,b)}return c}},{key:"setOrigRanges",value:function(e,t){return t=m(u(n.prototype),"setOrigRanges",this).call(this,e,t),this.items.forEach((function(n){t=n.setOrigRanges(e,t)})),t}},{key:"toString",value:function(){var e=this.context.src,t=this.items,n=this.range,r=this.value;if(null!=r)return r;for(var a=e.slice(n.start,t[0].range.start)+String(t[0]),i=1;i=a+r||("#"===i||"\n"===i)&&n.nextContentHasIndent(e,t,r))}}]),n}(R),J=function(e){c(n,e);var t=g(n);function n(){var e;return a(this,n),(e=t.call(this,A.DIRECTIVE)).name=null,e}return o(n,[{key:"parameters",get:function(){var e=this.rawValue;return e?e.trim().split(/[ \t]+/):[]}},{key:"parseName",value:function(e){for(var t=this.context.src,n=e,r=t[n];r&&"\n"!==r&&"\t"!==r&&" "!==r;)r=t[n+=1];return this.name=t.slice(e,n),n}},{key:"parseParameters",value:function(e){for(var t=this.context.src,n=e,r=t[n];r&&"\n"!==r&&"#"!==r;)r=t[n+=1];return this.valueRange=new _(e,n),n}},{key:"parse",value:function(e,t){this.context=e;var n=this.parseName(t+1);return n=this.parseParameters(n),n=this.parseComment(n),this.range=new _(t,n),n}}]),n}(R),V=function(e){c(n,e);var t=g(n);function n(){var e;return a(this,n),(e=t.call(this,A.DOCUMENT)).directives=null,e.contents=null,e.directivesEndMarker=null,e.documentEndMarker=null,e}return o(n,[{key:"parseDirectives",value:function(e){var t=this.context.src;this.directives=[];for(var r=!0,a=!1,i=e;!R.atDocumentBoundary(t,i,N.DIRECTIVES_END);)switch(t[i=n.startCommentOrEndBlankLine(t,i)]){case"\n":if(r){var o=new U;(i=o.parse({src:t},i))0&&(this.contents=this.directives,this.directives=[]),i}return t[i]?(this.directivesEndMarker=new _(i,i+3),i+3):(a?this.error=new j(this,"Missing directives-end indicator line"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}},{key:"parseContents",value:function(e){var t=this.context,r=t.parseNode,a=t.src;this.contents||(this.contents=[]);for(var i=e;"-"===a[i-1];)i-=1;var o=R.endOfWhiteSpace(a,e),s=i===e;for(this.valueRange=new _(o);!R.atDocumentBoundary(a,o,N.DOCUMENT_END);){switch(a[o]){case"\n":if(s){var c=new U;(o=c.parse({src:a},o))0&&((t.length>0||e[0].type===A.COMMENT)&&(r+="---\n"),r+=e.join("")),"\n"!==r[r.length-1]&&(r+="\n"),r}}],[{key:"startCommentOrEndBlankLine",value:function(e,t){var n=R.endOfWhiteSpace(e,t),r=e[n];return"#"===r||"\n"===r?n:t}}]),n}(R),q=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"parse",value:function(e,t){this.context=e;var n=e.src,r=R.endOfIdentifier(n,t+1);return this.valueRange=new _(t+1,r),r=R.endOfWhiteSpace(n,r),r=this.parseComment(r)}}]),n}(R),G="CLIP",H="KEEP",z="STRIP",Z=function(e){c(n,e);var t=g(n);function n(e,r){var i;return a(this,n),(i=t.call(this,e,r)).blockIndent=null,i.chomping=G,i.header=null,i}return o(n,[{key:"includesTrailingLines",get:function(){return this.chomping===H}},{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var e=this.valueRange,t=e.start,n=e.end,r=this.context,a=r.indent,i=r.src;if(this.valueRange.isEmpty())return"";for(var o=null,s=i[n-1];"\n"===s||"\t"===s||" "===s;){if((n-=1)<=t){if(this.chomping===H)break;return""}"\n"===s&&(o=n),s=i[n-1]}var c=n+1;o&&(this.chomping===H?(c=o,n=this.valueRange.end):n=o);for(var u=a+this.blockIndent,f=this.type===A.BLOCK_FOLDED,l=!0,h="",v="",p=!1,d=t;ds&&(s=l);i="\n"===r[u]?u:o=R.endOfLine(r,u)}return this.chomping!==H&&(i=r[o]?o+1:o),this.valueRange=new _(e+1,i),i}},{key:"parse",value:function(e,t){this.context=e;var n=e.src,r=this.parseBlockHeader(t);return r=R.endOfWhiteSpace(n,r),r=this.parseComment(r),r=this.parseBlockValue(r)}},{key:"setOrigRanges",value:function(e,t){return t=m(u(n.prototype),"setOrigRanges",this).call(this,e,t),this.header?this.header.setOrigRange(e,t):t}}]),n}(R),X=function(e){c(n,e);var t=g(n);function n(e,r){var i;return a(this,n),(i=t.call(this,e,r)).items=null,i}return o(n,[{key:"prevNodeIsJsonLike",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.items.length,t=this.items[e-1];return!!t&&(t.jsonLike||t.type===A.COMMENT&&this.prevNodeIsJsonLike(e-1))}},{key:"parse",value:function(e,t){this.context=e;var n=e.parseNode,r=e.src,a=e.indent,i=e.lineStart,o=r[t];this.items=[{char:o,offset:t}];var s=R.endOfWhiteSpace(r,t+1);for(o=r[s];o&&"]"!==o&&"}"!==o;){switch(o){case"\n":if(i=s+1,"\n"===r[R.endOfWhiteSpace(r,i)]){var c=new U;i=c.parse({src:r},i),this.items.push(c)}if((s=R.endOfIndent(r,i))<=i+a&&(o=r[s],sn.offset);)++r;n.origOffset=n.offset+r,t=r}})),t}},{key:"toString",value:function(){var e=this.context.src,t=this.items,n=this.range,r=this.value;if(null!=r)return r;var a=t.filter((function(e){return e instanceof R})),i="",o=n.start;return a.forEach((function(t){var n=e.slice(o,t.range.start);o=t.range.end,"\n"===(i+=n+String(t))[i.length-1]&&"\n"!==e[o-1]&&"\n"===e[o]&&(o+=1)})),i+=e.slice(o,n.end),R.addStringTerminator(e,n.end,i)}}]),n}(R),ee=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var e=[],t=this.valueRange,n=t.start,r=t.end,a=this.context,i=a.indent,o=a.src;'"'!==o[r-1]&&e.push(new D(this,'Missing closing "quote'));for(var s="",c=n+1;cl?o.slice(l,c+1):u)}else s+=u}return e.length>0?{errors:e,str:s}:s}},{key:"parseCharCode",value:function(e,t,n){var r=this.context.src,a=r.substr(e,t),i=a.length===t&&/^[0-9a-fA-F]+$/.test(a)?parseInt(a,16):NaN;return isNaN(i)?(n.push(new D(this,"Invalid escape sequence ".concat(r.substr(e-2,t+2)))),r.substr(e-2,t+2)):String.fromCodePoint(i)}},{key:"parse",value:function(e,t){this.context=e;var r=e.src,a=n.endOfQuote(r,t+1);return this.valueRange=new _(t,a),a=R.endOfWhiteSpace(r,a),a=this.parseComment(a)}}],[{key:"endOfQuote",value:function(e,t){for(var n=e[t];n&&'"'!==n;)n=e[t+="\\"===n?2:1];return t+1}}]),n}(R),te=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var e=[],t=this.valueRange,n=t.start,r=t.end,a=this.context,i=a.indent,o=a.src;"'"!==o[r-1]&&e.push(new D(this,"Missing closing 'quote"));for(var s="",c=n+1;cl?o.slice(l,c+1):u)}else s+=u}return e.length>0?{errors:e,str:s}:s}},{key:"parse",value:function(e,t){this.context=e;var r=e.src,a=n.endOfQuote(r,t+1);return this.valueRange=new _(t,a),a=R.endOfWhiteSpace(r,a),a=this.parseComment(a)}}],[{key:"endOfQuote",value:function(e,t){for(var n=e[t];n;)if("'"===n){if("'"!==e[t+1])break;n=e[t+=2]}else n=e[t+=1];return t+1}}]),n}(R);var ne=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.atLineStart,o=r.inCollection,c=r.inFlow,u=r.indent,f=r.lineStart,l=r.parent;a(this,e),s(this,"parseNode",(function(n,r){if(R.atDocumentBoundary(t.src,r))return null;var a=new e(t,n),i=a.parseProps(r),o=i.props,s=i.type,c=i.valueStart,u=function(e,t){switch(e){case A.ALIAS:return new q(e,t);case A.BLOCK_FOLDED:case A.BLOCK_LITERAL:return new Z(e,t);case A.FLOW_MAP:case A.FLOW_SEQ:return new X(e,t);case A.MAP_KEY:case A.MAP_VALUE:case A.SEQ_ITEM:return new K(e,t);case A.COMMENT:case A.PLAIN:return new W(e,t);case A.QUOTE_DOUBLE:return new ee(e,t);case A.QUOTE_SINGLE:return new te(e,t);default:return null}}(s,o),f=u.parse(a,c);if(u.range=new _(r,f),f<=r&&(u.error=new Error("Node#parse consumed no characters"),u.error.parseEnd=f,u.error.source=u,u.range.end=r+1),a.nodeStartsCollection(u)){u.error||a.atLineStart||a.parent.type!==A.DOCUMENT||(u.error=new D(u,"Block collection must not have preceding content here (e.g. directives-end indicator)"));var l=new Y(u);return f=l.parse(new e(a),f),l.range=new _(r,f),l}return u})),this.atLineStart=null!=i?i:n.atLineStart||!1,this.inCollection=null!=o?o:n.inCollection||!1,this.inFlow=null!=c?c:n.inFlow||!1,this.indent=null!=u?u:n.indent,this.lineStart=null!=f?f:n.lineStart,this.parent=null!=l?l:n.parent||{},this.root=n.root,this.src=n.src}return o(e,[{key:"nodeStartsCollection",value:function(e){var t=this.inCollection,n=this.inFlow,r=this.src;if(t||n)return!1;if(e instanceof K)return!0;var a=e.range.end;return"\n"!==r[a]&&"\n"!==r[a-1]&&":"===r[a=R.endOfWhiteSpace(r,a)]}},{key:"parseProps",value:function(t){for(var n=this.inFlow,r=this.parent,a=this.src,i=[],o=!1,s=a[t=this.atLineStart?R.endOfIndent(a,t):R.endOfWhiteSpace(a,t)];s===N.ANCHOR||s===N.COMMENT||s===N.TAG||"\n"===s;){if("\n"===s){var c=t,u=void 0;do{u=c+1,c=R.endOfIndent(a,u)}while("\n"===a[c]);var f=c-(u+this.indent),l=r.type===A.SEQ_ITEM&&r.context.atLineStart;if("#"!==a[c]&&!R.nextNodeIsIndented(a[c],f,!l))break;this.atLineStart=!0,this.lineStart=u,o=!1,t=c}else if(s===N.COMMENT){var h=R.endOfLine(a,t+1);i.push(new _(t,h)),t=h}else{var v=R.endOfIdentifier(a,t+1);s===N.TAG&&","===a[v]&&/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(a.slice(t+1,v+13))&&(v=R.endOfIdentifier(a,v+5)),i.push(new _(t,v)),o=!0,t=R.endOfWhiteSpace(a,v)}s=a[t]}return o&&":"===s&&R.atBlank(a,t+1,!0)&&(t-=1),{props:i,type:e.parseType(a,t,n),valueStart:t}}}],[{key:"parseType",value:function(e,t,n){switch(e[t]){case"*":return A.ALIAS;case">":return A.BLOCK_FOLDED;case"|":return A.BLOCK_LITERAL;case"{":return A.FLOW_MAP;case"[":return A.FLOW_SEQ;case"?":return!n&&R.atBlank(e,t+1,!0)?A.MAP_KEY:A.PLAIN;case":":return!n&&R.atBlank(e,t+1,!0)?A.MAP_VALUE:A.PLAIN;case"-":return!n&&R.atBlank(e,t+1,!0)?A.SEQ_ITEM:A.PLAIN;case'"':return A.QUOTE_DOUBLE;case"'":return A.QUOTE_SINGLE;default:return A.PLAIN}}}]),e}();function re(e){var t=[];-1!==e.indexOf("\r")&&(e=e.replace(/\r\n?/g,(function(e,n){return e.length>1&&t.push(n),"\n"})));var n=[],r=0;do{var a=new V,i=new ne({src:e});r=a.parse(i,r),n.push(a)}while(r=0;--a){var i=t[a];if(Number.isInteger(i)&&i>=0){var o=[];o[i]=r,r=o}else{var s={};Object.defineProperty(s,i,{value:r,writable:!0,enumerable:!0,configurable:!0}),r=s}}return e.createNode(r,!1)}var ue=function(e){return null==e||"object"===r(e)&&e[Symbol.iterator]().next().done},fe=function(e){c(n,e);var t=g(n);function n(e){var r;return a(this,n),s(p(r=t.call(this)),"items",[]),r.schema=e,r}return o(n,[{key:"addIn",value:function(e,t){if(ue(e))this.add(t);else{var r=w(e),a=r[0],i=r.slice(1),o=this.get(a,!0);if(o instanceof n)o.addIn(i,t);else{if(void 0!==o||!this.schema)throw new Error("Expected YAML collection at ".concat(a,". Remaining path: ").concat(i));this.set(a,ce(this.schema,i,t))}}}},{key:"deleteIn",value:function(e){var t=w(e),r=t[0],a=t.slice(1);if(0===a.length)return this.delete(r);var i=this.get(r,!0);if(i instanceof n)return i.deleteIn(a);throw new Error("Expected YAML collection at ".concat(r,". Remaining path: ").concat(a))}},{key:"getIn",value:function(e,t){var r=w(e),a=r[0],i=r.slice(1),o=this.get(a,!0);return 0===i.length?!t&&o instanceof se?o.value:o:o instanceof n?o.getIn(i,t):void 0}},{key:"hasAllNullValues",value:function(){return this.items.every((function(e){if(!e||"PAIR"!==e.type)return!1;var t=e.value;return null==t||t instanceof se&&null==t.value&&!t.commentBefore&&!t.comment&&!t.tag}))}},{key:"hasIn",value:function(e){var t=w(e),r=t[0],a=t.slice(1);if(0===a.length)return this.has(r);var i=this.get(r,!0);return i instanceof n&&i.hasIn(a)}},{key:"setIn",value:function(e,t){var r=w(e),a=r[0],i=r.slice(1);if(0===i.length)this.set(a,t);else{var o=this.get(a,!0);if(o instanceof n)o.setIn(i,t);else{if(void 0!==o||!this.schema)throw new Error("Expected YAML collection at ".concat(a,". Remaining path: ").concat(i));this.set(a,ce(this.schema,i,t))}}}},{key:"toJSON",value:function(){return null}},{key:"toString",value:function(e,t,r,a){var i=this,o=t.blockItem,s=t.flowChars,c=t.isMap,u=t.itemIndent,f=e,l=f.indent,h=f.indentStep,v=f.stringify,p=this.type===A.FLOW_MAP||this.type===A.FLOW_SEQ||e.inFlow;p&&(u+=h);var d=c&&this.hasAllNullValues();e=Object.assign({},e,{allNullValues:d,indent:u,inFlow:p,type:null});var g,m=!1,y=!1,w=this.items.reduce((function(t,n,r){var a;n&&(!m&&n.spaceBefore&&t.push({type:"comment",str:""}),n.commentBefore&&n.commentBefore.match(/^.*$/gm).forEach((function(e){t.push({type:"comment",str:"#".concat(e)})})),n.comment&&(a=n.comment),p&&(!m&&n.spaceBefore||n.commentBefore||n.comment||n.key&&(n.key.commentBefore||n.key.comment)||n.value&&(n.value.commentBefore||n.value.comment))&&(y=!0)),m=!1;var o=v(n,e,(function(){return a=null}),(function(){return m=!0}));return p&&!y&&o.includes("\n")&&(y=!0),p&&rn.maxFlowStringSingleLineLength){g=b;var E,N=S(O);try{for(N.s();!(E=N.n()).done;){var L=E.value;g+=L?"\n".concat(h).concat(l).concat(L):"\n"}}catch(e){N.e(e)}finally{N.f()}g+="\n".concat(l).concat(k)}else g="".concat(b," ").concat(O.join(" ")," ").concat(k)}else{var I=w.map(o);g=I.shift();var M,x=S(I);try{for(x.s();!(M=x.n()).done;){var T=M.value;g+=T?"\n".concat(l).concat(T):"\n"}}catch(e){x.e(e)}finally{x.f()}}return this.comment?(g+="\n"+this.comment.replace(/^/gm,"".concat(l,"#")),r&&r()):m&&a&&a(),g}}]),n}(ie);function le(e){var t=e instanceof se?e.value:e;return t&&"string"==typeof t&&(t=Number(t)),Number.isInteger(t)&&t>=0?t:null}s(fe,"maxFlowStringSingleLineLength",60);var he=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"add",value:function(e){this.items.push(e)}},{key:"delete",value:function(e){var t=le(e);return"number"==typeof t&&this.items.splice(t,1).length>0}},{key:"get",value:function(e,t){var n=le(e);if("number"==typeof n){var r=this.items[n];return!t&&r instanceof se?r.value:r}}},{key:"has",value:function(e){var t=le(e);return"number"==typeof t&&t1&&void 0!==arguments[1]?arguments[1]:null;return a(this,n),(r=t.call(this)).key=e,r.value=i,r.type=n.Type.PAIR,r}return o(n,[{key:"commentBefore",get:function(){return this.key instanceof ie?this.key.commentBefore:void 0},set:function(e){if(null==this.key&&(this.key=new se(null)),!(this.key instanceof ie)){throw new Error("Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.")}this.key.commentBefore=e}},{key:"addToJSMap",value:function(e,t){var n=oe(this.key,"",e);if(t instanceof Map){var a=oe(this.value,n,e);t.set(n,a)}else if(t instanceof Set)t.add(n);else{var i=function(e,t,n){return null===t?"":"object"!==r(t)?String(t):e instanceof ie&&n&&n.doc?e.toString({anchors:Object.create(null),doc:n.doc,indent:"",indentStep:n.indentStep,inFlow:!0,inStringifyKey:!0,stringify:n.stringify}):JSON.stringify(t)}(this.key,n,e),o=oe(this.value,i,e);i in t?Object.defineProperty(t,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[i]=o}return t}},{key:"toJSON",value:function(e,t){var n=t&&t.mapAsMap?new Map:{};return this.addToJSMap(t,n)}},{key:"toString",value:function(e,t,n){if(!e||!e.doc)return JSON.stringify(this);var a=e.doc.options,i=a.indent,o=a.indentSeq,s=a.simpleKeys,c=this.key,u=this.value,f=c instanceof ie&&c.comment;if(s){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(c instanceof fe){throw new Error("With simple keys, collection cannot be used as a key value")}}var l=!s&&(!c||f||(c instanceof ie?c instanceof fe||c.type===A.BLOCK_FOLDED||c.type===A.BLOCK_LITERAL:"object"===r(c))),h=e,v=h.doc,p=h.indent,d=h.indentStep,g=h.stringify;e=Object.assign({},e,{implicitKey:!l,indent:p+d});var m=!1,y=g(c,e,(function(){return f=null}),(function(){return m=!0}));if(y=ae(y,e.indent,f),!l&&y.length>1024){if(s)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");l=!0}if(e.allNullValues&&!s)return this.comment?(y=ae(y,e.indent,this.comment),t&&t()):m&&!f&&n&&n(),e.inFlow&&!l?y:"? ".concat(y);y=l?"? ".concat(y,"\n").concat(p,":"):"".concat(y,":"),this.comment&&(y=ae(y,e.indent,this.comment),t&&t());var w="",b=null;if(u instanceof ie){if(u.spaceBefore&&(w="\n"),u.commentBefore){var k=u.commentBefore.replace(/^/gm,"".concat(e.indent,"#"));w+="\n".concat(k)}b=u.comment}else u&&"object"===r(u)&&(u=v.schema.createNode(u,!0));e.implicitKey=!1,!l&&!this.comment&&u instanceof se&&(e.indentAtStart=y.length+1),m=!1,!o&&i>=2&&!e.inFlow&&!l&&u instanceof he&&u.type!==A.FLOW_SEQ&&!u.tag&&!v.anchors.getName(u)&&(e.indent=e.indent.substr(2));var O=g(u,e,(function(){return b=null}),(function(){return m=!0})),E=" ";if(w||this.comment)E="".concat(w,"\n").concat(e.indent);else if(!l&&u instanceof fe){("["===O[0]||"{"===O[0])&&!O.includes("\n")||(E="\n".concat(e.indent))}else"\n"===O[0]&&(E="");return m&&!b&&n&&n(),ae(y+E+O,e.indent,b)}}]),n}(ie);s(ve,"Type",{PAIR:"PAIR",MERGE_PAIR:"MERGE_PAIR"});var pe=function e(t,n){if(t instanceof de){var r=n.get(t.source);return r.count*r.aliasCount}if(t instanceof fe){var a,i=0,o=S(t.items);try{for(o.s();!(a=o.n()).done;){var s=e(a.value,n);s>i&&(i=s)}}catch(e){o.e(e)}finally{o.f()}return i}if(t instanceof ve){var c=e(t.key,n),u=e(t.value,n);return Math.max(c,u)}return 1},de=function(e){c(n,e);var t=g(n);function n(e){var r;return a(this,n),(r=t.call(this)).source=e,r.type=A.ALIAS,r}return o(n,[{key:"tag",set:function(e){throw new Error("Alias nodes cannot have tags")}},{key:"toJSON",value:function(e,t){if(!t)return oe(this.source,e,t);var n=t.anchors,r=t.maxAliasCount,a=n.get(this.source);if(!a||void 0===a.res){var i="This should not happen: Alias anchor was not resolved?";throw this.cstNode?new P(this.cstNode,i):new ReferenceError(i)}if(r>=0&&(a.count+=1,0===a.aliasCount&&(a.aliasCount=pe(this.source,n)),a.count*a.aliasCount>r)){var o="Excessive alias count indicates a resource exhaustion attack";throw this.cstNode?new P(this.cstNode,o):new ReferenceError(o)}return a.res}},{key:"toString",value:function(e){return n.stringify(this,e)}}],[{key:"stringify",value:function(e,t){var n=e.range,r=e.source,a=t.anchors,i=t.doc,o=t.implicitKey,s=t.inStringifyKey,c=Object.keys(a).find((function(e){return a[e]===r}));if(!c&&s&&(c=i.anchors.getName(r)||i.anchors.newName()),c)return"*".concat(c).concat(o?" ":"");var u=i.anchors.getName(r)?"Alias node must be after source node":"Source node not found for alias node";throw new Error("".concat(u," [").concat(n,"]"))}}]),n}(ie);function ge(e,t){var n,r=t instanceof se?t.value:t,a=S(e);try{for(a.s();!(n=a.n()).done;){var i=n.value;if(i instanceof ve){if(i.key===t||i.key===r)return i;if(i.key&&i.key.value===r)return i}}}catch(e){a.e(e)}finally{a.f()}}s(de,"default",!0);var me=function(e){c(n,e);var t=g(n);function n(){return a(this,n),t.apply(this,arguments)}return o(n,[{key:"add",value:function(e,t){e?e instanceof ve||(e=new ve(e.key||e,e.value)):e=new ve(e);var n=ge(this.items,e.key),r=this.schema&&this.schema.sortMapEntries;if(n){if(!t)throw new Error("Key ".concat(e.key," already set"));n.value=e.value}else if(r){var a=this.items.findIndex((function(t){return r(e,t)<0}));-1===a?this.items.push(e):this.items.splice(a,0,e)}else this.items.push(e)}},{key:"delete",value:function(e){var t=ge(this.items,e);return!!t&&this.items.splice(this.items.indexOf(t),1).length>0}},{key:"get",value:function(e,t){var n=ge(this.items,e),r=n&&n.value;return!t&&r instanceof se?r.value:r}},{key:"has",value:function(e){return!!ge(this.items,e)}},{key:"set",value:function(e,t){this.add(new ve(e,t),!0)}},{key:"toJSON",value:function(e,t,n){var r=n?new n:t&&t.mapAsMap?new Map:{};t&&t.onCreate&&t.onCreate(r);var a,i=S(this.items);try{for(i.s();!(a=i.n()).done;){a.value.addToJSMap(t,r)}}catch(e){i.e(e)}finally{i.f()}return r}},{key:"toString",value:function(e,t,r){if(!e)return JSON.stringify(this);var a,i=S(this.items);try{for(i.s();!(a=i.n()).done;){var o=a.value;if(!(o instanceof ve))throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(o)," instead"))}}catch(e){i.e(e)}finally{i.f()}return m(u(n.prototype),"toString",this).call(this,e,{blockItem:function(e){return e.str},flowChars:{start:"{",end:"}"},isMap:!0,itemIndent:e.indent||""},t,r)}}]),n}(fe),ye="<<",we=function(e){c(n,e);var t=g(n);function n(e){var r;if(a(this,n),e instanceof ve){var i=e.value;i instanceof he||((i=new he).items.push(e.value),i.range=e.value.range),(r=t.call(this,e.key,i)).range=e.range}else r=t.call(this,new se(ye),new he);return r.type=ve.Type.MERGE_PAIR,d(r)}return o(n,[{key:"addToJSMap",value:function(e,t){var n,r=S(this.value.items);try{for(r.s();!(n=r.n()).done;){var a=n.value.source;if(!(a instanceof me))throw new Error("Merge sources must be maps");var i,o=S(a.toJSON(null,e,Map));try{for(o.s();!(i=o.n()).done;){var s=y(i.value,2),c=s[0],u=s[1];t instanceof Map?t.has(c)||t.set(c,u):t instanceof Set?t.add(c):Object.prototype.hasOwnProperty.call(t,c)||Object.defineProperty(t,c,{value:u,writable:!0,enumerable:!0,configurable:!0})}}catch(e){o.e(e)}finally{o.f()}}}catch(e){r.e(e)}finally{r.f()}return t}},{key:"toString",value:function(e,t){var r=this.value;if(r.items.length>1)return m(u(n.prototype),"toString",this).call(this,e,t);this.value=r.items[0];var a=m(u(n.prototype),"toString",this).call(this,e,t);return this.value=r,a}}]),n}(ve),be={defaultType:A.BLOCK_LITERAL,lineWidth:76},ke={trueStr:"true",falseStr:"false"},Oe={asBigInt:!1},Ee={nullStr:"null"},Se={defaultType:A.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function Ne(e,t,n){var r,a=S(t);try{for(a.s();!(r=a.n()).done;){var i=r.value,o=i.format,s=i.test,c=i.resolve;if(s){var u=e.match(s);if(u){var f=c.apply(null,u);return f instanceof se||(f=new se(f)),o&&(f.format=o),f}}}}catch(e){a.e(e)}finally{a.f()}return n&&(e=n(e)),new se(e)}var Ae="flow",Le="block",Ie="quoted",Me=function(e,t){for(var n=e[t+1];" "===n||"\t"===n;){do{n=e[t+=1]}while(n&&"\n"!==n);n=e[t+1]}return t};function xe(e,t,n,r){var a=r.indentAtStart,i=r.lineWidth,o=void 0===i?80:i,s=r.minContentWidth,c=void 0===s?20:s,u=r.onFold,f=r.onOverflow;if(!o||o<0)return e;var l=Math.max(1+c,1+o-t.length);if(e.length<=l)return e;var h=[],v={},p=o-t.length;"number"==typeof a&&(a>o-Math.max(2,c)?h.push(0):p=o-a);var d,g=void 0,m=void 0,y=!1,w=-1,b=-1,k=-1;for(n===Le&&-1!==(w=Me(e,w))&&(p=w+l);d=e[w+=1];){if(n===Ie&&"\\"===d){switch(b=w,e[w+1]){case"x":w+=3;break;case"u":w+=5;break;case"U":w+=9;break;default:w+=1}k=w}if("\n"===d)n===Le&&(w=Me(e,w)),p=w+l,g=void 0;else{if(" "===d&&m&&" "!==m&&"\n"!==m&&"\t"!==m){var O=e[w+1];O&&" "!==O&&"\n"!==O&&"\t"!==O&&(g=w)}if(w>=p)if(g)h.push(g),p=g+l,g=void 0;else if(n===Ie){for(;" "===m||"\t"===m;)m=d,d=e[w+=1],y=!0;var E=w>k+1?w-2:b-1;if(v[E])return e;h.push(E),v[E]=!0,p=E+l,g=void 0}else y=!0}m=d}if(y&&f&&f(),0===h.length)return e;u&&u();for(var S=e.slice(0,h[0]),N=0;Nr)return!0;if(a-(o=i+1)<=r)return!1}return!0}(o,Se.fold.lineWidth,s.length)),f=u?"|":">";if(!o)return f+"\n";var l="",h="";if(o=o.replace(/[\n\t ]*$/,(function(e){var t=e.indexOf("\n");return-1===t?f+="-":o!==e&&t===e.length-1||(f+="+",r&&r()),h=e.replace(/\n$/,""),""})).replace(/^[\n ]*/,(function(e){-1!==e.indexOf(" ")&&(f+=c);var t=e.match(/ +$/);return t?(l=e.slice(0,-t[0].length),t[0]):(l=e,"")})),h&&(h=h.replace(/\n+(?!\n|$)/g,"$&".concat(s))),l&&(l=l.replace(/\n+/g,"$&".concat(s))),a&&(f+=" #"+a.replace(/ ?[\r\n]+/g," "),n&&n()),!o)return"".concat(f).concat(c,"\n").concat(s).concat(h);if(u)return o=o.replace(/\n+/g,"$&".concat(s)),"".concat(f,"\n").concat(s).concat(l).concat(o).concat(h);o=o.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,"$&".concat(s));var v=xe("".concat(l).concat(o).concat(h),s,Le,Se.fold);return"".concat(f,"\n").concat(s).concat(v)}function Pe(e,t,n,r){var a=Se.defaultType,i=t.implicitKey,o=t.inFlow,s=e,c=s.type,u=s.value;"string"!=typeof u&&(u=String(u),e=Object.assign({},e,{value:u}));var f=function(a){switch(a){case A.BLOCK_FOLDED:case A.BLOCK_LITERAL:return Be(e,t,n,r);case A.QUOTE_DOUBLE:return _e(u,t);case A.QUOTE_SINGLE:return Re(u,t);case A.PLAIN:return function(e,t,n,r){var a=e.comment,i=e.type,o=e.value,s=t.actualString,c=t.implicitKey,u=t.indent,f=t.inFlow;if(c&&/[\n[\]{},]/.test(o)||f&&/[[\]{},]/.test(o))return _e(o,t);if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o))return c||f||-1===o.indexOf("\n")?-1!==o.indexOf('"')&&-1===o.indexOf("'")?Re(o,t):_e(o,t):Be(e,t,n,r);if(!c&&!f&&i!==A.PLAIN&&-1!==o.indexOf("\n"))return Be(e,t,n,r);if(""===u&&Ce(o))return t.forceBlockIndent=!0,Be(e,t,n,r);var l=o.replace(/\n+/g,"$&\n".concat(u));if(s){var h=t.doc.schema.tags;if("string"!=typeof Ne(l,h,h.scalarFallback).value)return _e(o,t)}var v=c?l:xe(l,u,Ae,Te(t));return!a||f||-1===v.indexOf("\n")&&-1===a.indexOf("\n")?v:(n&&n(),function(e,t,n){if(!n)return e;var r=n.replace(/[\s\S]^/gm,"$&".concat(t,"#"));return"#".concat(r,"\n").concat(t).concat(e)}(v,u,a))}(e,t,n,r);default:return null}};c!==A.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(u)?c=A.QUOTE_DOUBLE:!i&&!o||c!==A.BLOCK_FOLDED&&c!==A.BLOCK_LITERAL||(c=A.QUOTE_DOUBLE);var l=f(c);if(null===l&&null===(l=f(a)))throw new Error("Unsupported default string type ".concat(a));return l}function je(e){var t=e.format,n=e.minFractionDigits,r=e.tag,a=e.value;if("bigint"==typeof a)return String(a);if(!isFinite(a))return isNaN(a)?".nan":a<0?"-.inf":".inf";var i=JSON.stringify(a);if(!t&&n&&(!r||"tag:yaml.org,2002:float"===r)&&/^\d/.test(i)){var o=i.indexOf(".");o<0&&(o=i.length,i+=".");for(var s=n-(i.length-o-1);s-- >0;)i+="0"}return i}function De(e,t){var n,r,a;switch(t.type){case A.FLOW_MAP:n="}",r="flow map";break;case A.FLOW_SEQ:n="]",r="flow sequence";break;default:return void e.push(new j(t,"Not a flow collection!?"))}for(var i=t.items.length-1;i>=0;--i){var o=t.items[i];if(!o||o.type!==A.COMMENT){a=o;break}}if(a&&a.char!==n){var s,c="Expected ".concat(r," to end with ").concat(n);"number"==typeof a.offset?(s=new j(t,c)).offset=a.offset+1:(s=new j(a,c),a.range&&a.range.end&&(s.offset=a.range.end-a.range.start)),e.push(s)}}function Fe(e,t){var n=t.context.src[t.range.start-1];if("\n"!==n&&"\t"!==n&&" "!==n){e.push(new j(t,"Comments must be separated from other tokens by white space characters"))}}function We(e,t){var n=String(t),r=n.substr(0,8)+"..."+n.substr(-8);return new j(e,'The "'.concat(r,'" key is too long'))}function Ue(e,t){var n,r=S(t);try{for(r.s();!(n=r.n()).done;){var a=n.value,i=a.afterKey,o=a.before,s=a.comment,c=e.items[o];c?(i&&c.value&&(c=c.value),void 0===s?!i&&c.commentBefore||(c.spaceBefore=!0):c.commentBefore?c.commentBefore+="\n"+s:c.commentBefore=s):void 0!==s&&(e.comment?e.comment+="\n"+s:e.comment=s)}}catch(e){r.e(e)}finally{r.f()}}function Ke(e,t){var n=t.strValue;return n?"string"==typeof n?n:(n.errors.forEach((function(n){n.source||(n.source=t),e.errors.push(n)})),n.str):""}function Qe(e,t){var n=t.tag,r=t.type,a=!1;if(n){var i=n.handle,o=n.suffix,s=n.verbatim;if(s){if("!"!==s&&"!!"!==s)return s;var c="Verbatim tags aren't resolved, so ".concat(s," is invalid.");e.errors.push(new j(t,c))}else if("!"!==i||o)try{return function(e,t){var n=t.tag,r=n.handle,a=n.suffix,i=e.tagPrefixes.find((function(e){return e.handle===r}));if(!i){var o=e.getDefaults().tagPrefixes;if(o&&(i=o.find((function(e){return e.handle===r}))),!i)throw new j(t,"The ".concat(r," tag handle is non-default and was not declared."))}if(!a)throw new j(t,"The ".concat(r," tag has no suffix."));if("!"===r&&"1.0"===(e.version||e.options.version)){if("^"===a[0])return e.warnings.push(new F(t,"YAML 1.0 ^ tag expansion is not supported")),a;if(/[:/]/.test(a)){var s=a.match(/^([a-z0-9-]+)\/(.*)/i);return s?"tag:".concat(s[1],".yaml.org,2002:").concat(s[2]):"tag:".concat(a)}}return i.prefix+decodeURIComponent(a)}(e,t)}catch(t){e.errors.push(t)}else a=!0}switch(r){case A.BLOCK_FOLDED:case A.BLOCK_LITERAL:case A.QUOTE_DOUBLE:case A.QUOTE_SINGLE:return I.STR;case A.FLOW_MAP:case A.MAP:return I.MAP;case A.FLOW_SEQ:case A.SEQ:return I.SEQ;case A.PLAIN:return a?I.STR:null;default:return null}}function $e(e,t,n){var r,a=e.schema.tags,i=[],o=S(a);try{for(o.s();!(r=o.n()).done;){var s=r.value;if(s.tag===n){if(!s.test){var c=s.resolve(e,t);return c instanceof fe?c:new se(c)}i.push(s)}}}catch(e){o.e(e)}finally{o.f()}var u=Ke(e,t);return"string"==typeof u&&i.length>0?Ne(u,i,a.scalarFallback):null}function Ye(e,t,n){try{var r=$e(e,t,n);if(r)return n&&t.tag&&(r.tag=n),r}catch(n){return n.source||(n.source=t),e.errors.push(n),null}try{var a=function(e){switch(e.type){case A.FLOW_MAP:case A.MAP:return I.MAP;case A.FLOW_SEQ:case A.SEQ:return I.SEQ;default:return I.STR}}(t);if(!a)throw new Error("The tag ".concat(n," is unavailable"));var i="The tag ".concat(n," is unavailable, falling back to ").concat(a);e.warnings.push(new F(t,i));var o=$e(e,t,a);return o.tag=n,o}catch(n){var s=new P(t,n.message);return s.stack=n.stack,e.errors.push(s),null}}var Je=function(e){if(!e)return!1;var t=e.type;return t===A.MAP_KEY||t===A.MAP_VALUE||t===A.SEQ_ITEM};function Ve(e,t){if(!t)return null;t.error&&e.errors.push(t.error);var n=function(e,t){var n,r={before:[],after:[]},a=!1,i=!1,o=S(Je(t.context.parent)?t.context.parent.props.concat(t.props):t.props);try{for(o.s();!(n=o.n()).done;){var s=n.value,c=s.start,u=s.end;switch(t.context.src[c]){case N.COMMENT:t.commentHasRequiredWhitespace(c)||e.push(new j(t,"Comments must be separated from other tokens by white space characters"));var f=t.header,l=t.valueRange;(l&&(c>l.start||f&&c>f.start)?r.after:r.before).push(t.context.src.slice(c+1,u));break;case N.ANCHOR:a&&e.push(new j(t,"A node can have at most one anchor")),a=!0;break;case N.TAG:i&&e.push(new j(t,"A node can have at most one tag")),i=!0}}}catch(e){o.e(e)}finally{o.f()}return{comments:r,hasAnchor:a,hasTag:i}}(e.errors,t),r=n.comments,a=n.hasAnchor,i=n.hasTag;if(a){var o=e.anchors,s=t.anchor,c=o.getNode(s);c&&(o.map[o.newName(s)]=c),o.map[s]=t}if(t.type===A.ALIAS&&(a||i)){e.errors.push(new j(t,"An alias node must not specify any properties"))}var u=function(e,t){var n=e.anchors,r=e.errors,a=e.schema;if(t.type===A.ALIAS){var i=t.rawValue,o=n.getNode(i);if(!o){var s="Aliased anchor not found: ".concat(i);return r.push(new P(t,s)),null}var c=new de(o);return n._cstAliases.push(c),c}var u=Qe(e,t);if(u)return Ye(e,t,u);if(t.type!==A.PLAIN){var f="Failed to resolve ".concat(t.type," node here");return r.push(new D(t,f)),null}try{return Ne(Ke(e,t),a.tags,a.tags.scalarFallback)}catch(e){return e.source||(e.source=t),r.push(e),null}}(e,t);if(u){u.range=[t.range.start,t.range.end],e.options.keepCstNodes&&(u.cstNode=t),e.options.keepNodeTypes&&(u.type=t.type);var f=r.before.join("\n");f&&(u.commentBefore=u.commentBefore?"".concat(u.commentBefore,"\n").concat(f):f);var l=r.after.join("\n");l&&(u.comment=u.comment?"".concat(u.comment,"\n").concat(l):l)}return t.resolved=u}function qe(e,t){if(t.type!==A.MAP&&t.type!==A.FLOW_MAP){var n="A ".concat(t.type," node cannot be resolved as a mapping");return e.errors.push(new D(t,n)),null}var r=t.type===A.FLOW_MAP?function(e,t){for(var n=[],r=[],a=void 0,i=!1,o="{",s=0;s0){(u=new W(A.PLAIN,[])).context={parent:s,src:s.context.src};var f=s.range.start+1;if(u.range={start:f,end:f},u.valueRange={start:f,end:f},"number"==typeof s.range.origStart){var l=s.range.origStart+1;u.range.origStart=u.range.origEnd=l,u.valueRange.origStart=u.valueRange.origEnd=l}}var h=new ve(a,Ve(e,u));He(s,h),r.push(h),a&&"number"==typeof i&&s.range.start>i+1024&&e.errors.push(We(t,a)),a=void 0,i=null;break;default:void 0!==a&&r.push(new ve(a)),a=Ve(e,s),i=s.range.start,s.error&&e.errors.push(s.error);e:for(var v=o+1;;++v){var p=t.items[v];switch(p&&p.type){case A.BLANK_LINE:case A.COMMENT:continue e;case A.MAP_VALUE:break e;default:var d="Implicit map keys need to be followed by map values";e.errors.push(new j(s,d));break e}}if(s.valueRangeContainsNewline){var g="Implicit map keys need to be on a single line";e.errors.push(new j(s,g))}}}void 0!==a&&r.push(new ve(a));return{comments:n,items:r}}(e,t),a=r.comments,i=r.items,o=new me;o.items=i,Ue(o,a);for(var s=!1,c=0;cr.valueRange.start)return!1;if(a[o]!==N.COMMENT)return!1;for(var s=n;so+1024&&e.errors.push(We(t,i));for(var d=c.context.src,g=o;g1){throw new j(t,"Each pair must have its own sequence indicator")}var i=a.items[0]||new ve;a.commentBefore&&(i.commentBefore=i.commentBefore?"".concat(a.commentBefore,"\n").concat(i.commentBefore):a.commentBefore),a.comment&&(i.comment=i.comment?"".concat(a.comment,"\n").concat(i.comment):a.comment),a=i}n.items[r]=a instanceof ve?a:new ve(a)}}return n}function et(e,t,n){var r=new he(e);r.tag="tag:yaml.org,2002:pairs";var a,i=S(t);try{for(i.s();!(a=i.n()).done;){var o=a.value,s=void 0,c=void 0;if(Array.isArray(o)){if(2!==o.length)throw new TypeError("Expected [key, value] tuple: ".concat(o));s=o[0],c=o[1]}else if(o&&o instanceof Object){var u=Object.keys(o);if(1!==u.length)throw new TypeError("Expected { key: value } tuple: ".concat(o));c=o[s=u[0]]}else s=o;var f=e.createPair(s,c,n);r.items.push(f)}}catch(e){i.e(e)}finally{i.f()}return r}var tt={default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Xe,createNode:et},nt=function(e){c(n,e);var t=g(n);function n(){var e;return a(this,n),s(p(e=t.call(this)),"add",me.prototype.add.bind(p(e))),s(p(e),"delete",me.prototype.delete.bind(p(e))),s(p(e),"get",me.prototype.get.bind(p(e))),s(p(e),"has",me.prototype.has.bind(p(e))),s(p(e),"set",me.prototype.set.bind(p(e))),e.tag=n.tag,e}return o(n,[{key:"toJSON",value:function(e,t){var n=new Map;t&&t.onCreate&&t.onCreate(n);var r,a=S(this.items);try{for(a.s();!(r=a.n()).done;){var i=r.value,o=void 0,s=void 0;if(i instanceof ve?(o=oe(i.key,"",t),s=oe(i.value,o,t)):o=oe(i,"",t),n.has(o))throw new Error("Ordered maps must not include duplicate keys");n.set(o,s)}}catch(e){a.e(e)}finally{a.f()}return n}}]),n}(he);s(nt,"tag","tag:yaml.org,2002:omap");var rt={identify:function(e){return e instanceof Map},nodeClass:nt,default:!1,tag:"tag:yaml.org,2002:omap",resolve:function(e,t){var n,r=Xe(e,t),a=[],i=S(r.items);try{for(i.s();!(n=i.n()).done;){var o=n.value.key;if(o instanceof se){if(a.includes(o.value)){throw new j(t,"Ordered maps must not include duplicate keys")}a.push(o.value)}}}catch(e){i.e(e)}finally{i.f()}return Object.assign(new nt,r)},createNode:function(e,t,n){var r=et(e,t,n),a=new nt;return a.items=r.items,a}},at=function(e){c(n,e);var t=g(n);function n(){var e;return a(this,n),(e=t.call(this)).tag=n.tag,e}return o(n,[{key:"add",value:function(e){var t=e instanceof ve?e:new ve(e);ge(this.items,t.key)||this.items.push(t)}},{key:"get",value:function(e,t){var n=ge(this.items,e);return!t&&n instanceof ve?n.key instanceof se?n.key.value:n.key:n}},{key:"set",value:function(e,t){if("boolean"!=typeof t)throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(r(t)));var n=ge(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new ve(e))}},{key:"toJSON",value:function(e,t){return m(u(n.prototype),"toJSON",this).call(this,e,t,Set)}},{key:"toString",value:function(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues())return m(u(n.prototype),"toString",this).call(this,e,t,r);throw new Error("Set items must all have null values")}}]),n}(me);s(at,"tag","tag:yaml.org,2002:set");var it={identify:function(e){return e instanceof Set},nodeClass:at,default:!1,tag:"tag:yaml.org,2002:set",resolve:function(e,t){var n=qe(e,t);if(!n.hasAllNullValues())throw new j(t,"Set items must all have null values");return Object.assign(new at,n)},createNode:function(e,t,n){var r,a=new at,i=S(t);try{for(i.s();!(r=i.n()).done;){var o=r.value;a.items.push(e.createPair(o,null,n))}}catch(e){i.e(e)}finally{i.f()}return a}},ot=function(e,t){var n=t.split(":").reduce((function(e,t){return 60*e+Number(t)}),0);return"-"===e?-n:n},st=function(e){var t=e.value;if(isNaN(t)||!isFinite(t))return je(t);var n="";t<0&&(n="-",t=Math.abs(t));var r=[t%60];return t<60?r.unshift(0):(t=Math.round((t-r[0])/60),r.unshift(t%60),t>=60&&(t=Math.round((t-r[0])/60),r.unshift(t))),n+r.map((function(e){return e<10?"0"+String(e):String(e)})).join(":").replace(/000000\d*$/,"")},ct={identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:function(e,t,n){return ot(t,n.replace(/_/g,""))},stringify:st},ut={identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,resolve:function(e,t,n){return ot(t,n.replace(/_/g,""))},stringify:st},ft={identify:function(e){return e instanceof Date},default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),resolve:function(e,t,n,r,a,i,o,s,c){s&&(s=(s+"00").substr(1,3));var u=Date.UTC(t,n-1,r,a||0,i||0,o||0,s||0);if(c&&"Z"!==c){var f=ot(c[0],c.slice(1));Math.abs(f)<30&&(f*=60),u-=6e4*f}return new Date(u)},stringify:function(e){return e.value.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")}};function lt(e){var t="undefined"!=typeof process&&process.env||{};return e?"undefined"!=typeof YAML_SILENCE_DEPRECATION_WARNINGS?!YAML_SILENCE_DEPRECATION_WARNINGS:!t.YAML_SILENCE_DEPRECATION_WARNINGS:"undefined"!=typeof YAML_SILENCE_WARNINGS?!YAML_SILENCE_WARNINGS:!t.YAML_SILENCE_WARNINGS}function ht(e,t){if(lt(!1)){var n="undefined"!=typeof process&&process.emitWarning;n?n(e,t):console.warn(t?"".concat(t,": ").concat(e):e)}}var vt={};var pt={createNode:function(e,t,n){var a=new me(e);if(t instanceof Map){var i,o=S(t);try{for(o.s();!(i=o.n()).done;){var s=y(i.value,2),c=s[0],u=s[1];a.items.push(e.createPair(c,u,n))}}catch(e){o.e(e)}finally{o.f()}}else if(t&&"object"===r(t))for(var f=0,l=Object.keys(t);f=0?n+r.toString(t):je(e)}var bt={identify:function(e){return null==e},createNode:function(e,t,n){return n.wrapScalars?new se(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:function(){return null},options:Ee,stringify:function(){return Ee.nullStr}},kt={identify:function(e){return"boolean"==typeof e},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:function(e){return"t"===e[0]||"T"===e[0]},options:ke,stringify:function(e){return e.value?ke.trueStr:ke.falseStr}},Ot={identify:function(e){return mt(e)&&e>=0},default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o([0-7]+)$/,resolve:function(e,t){return yt(e,t,8)},options:Oe,stringify:function(e){return wt(e,8,"0o")}},Et={identify:mt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:function(e){return yt(e,e,10)},options:Oe,stringify:je},St={identify:function(e){return mt(e)&&e>=0},default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x([0-9a-fA-F]+)$/,resolve:function(e,t){return yt(e,t,16)},options:Oe,stringify:function(e){return wt(e,16,"0x")}},Nt={identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:function(e,t){return t?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY},stringify:je},At={identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:function(e){return parseFloat(e)},stringify:function(e){var t=e.value;return Number(t).toExponential()}},Lt={identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,resolve:function(e,t,n){var r=t||n,a=new se(parseFloat(e));return r&&"0"===r[r.length-1]&&(a.minFractionDigits=r.length),a},stringify:je},It=gt.concat([bt,kt,Ot,Et,St,Nt,At,Lt]),Mt=function(e){return"bigint"==typeof e||Number.isInteger(e)},xt=function(e){var t=e.value;return JSON.stringify(t)},Tt=[pt,dt,{identify:function(e){return"string"==typeof e},default:!0,tag:"tag:yaml.org,2002:str",resolve:Ke,stringify:xt},{identify:function(e){return null==e},createNode:function(e,t,n){return n.wrapScalars?new se(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:function(){return null},stringify:xt},{identify:function(e){return"boolean"==typeof e},default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:function(e){return"true"===e},stringify:xt},{identify:Mt,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:function(e){return Oe.asBigInt?BigInt(e):parseInt(e,10)},stringify:function(e){var t=e.value;return Mt(t)?t.toString():JSON.stringify(t)}},{identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:function(e){return parseFloat(e)},stringify:xt}];Tt.scalarFallback=function(e){throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(e)))};var Ct=function(e){return e.value?ke.trueStr:ke.falseStr},_t=function(e){return"bigint"==typeof e||Number.isInteger(e)};function Rt(e,t,n){var r=t.replace(/_/g,"");if(Oe.asBigInt){switch(n){case 2:r="0b".concat(r);break;case 8:r="0o".concat(r);break;case 16:r="0x".concat(r)}var a=BigInt(r);return"-"===e?BigInt(-1)*a:a}var i=parseInt(r,n);return"-"===e?-1*i:i}function Bt(e,t,n){var r=e.value;if(_t(r)){var a=r.toString(t);return r<0?"-"+n+a.substr(1):n+a}return je(e)}var Pt=gt.concat([{identify:function(e){return null==e},createNode:function(e,t,n){return n.wrapScalars?new se(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:function(){return null},options:Ee,stringify:function(){return Ee.nullStr}},{identify:function(e){return"boolean"==typeof e},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:function(){return!0},options:ke,stringify:Ct},{identify:function(e){return"boolean"==typeof e},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:function(){return!1},options:ke,stringify:Ct},{identify:_t,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^([-+]?)0b([0-1_]+)$/,resolve:function(e,t,n){return Rt(t,n,2)},stringify:function(e){return Bt(e,2,"0b")}},{identify:_t,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^([-+]?)0([0-7_]+)$/,resolve:function(e,t,n){return Rt(t,n,8)},stringify:function(e){return Bt(e,8,"0")}},{identify:_t,default:!0,tag:"tag:yaml.org,2002:int",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:function(e,t,n){return Rt(t,n,10)},stringify:je},{identify:_t,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:function(e,t,n){return Rt(t,n,16)},stringify:function(e){return Bt(e,16,"0x")}},{identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:function(e,t){return t?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY},stringify:je},{identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:function(e){return parseFloat(e.replace(/_/g,""))},stringify:function(e){var t=e.value;return Number(t).toExponential()}},{identify:function(e){return"number"==typeof e},default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,resolve:function(e,t){var n=new se(parseFloat(e.replace(/_/g,"")));if(t){var r=t.replace(/_/g,"");"0"===r[r.length-1]&&(n.minFractionDigits=r.length)}return n},stringify:je}],Ze,rt,tt,it,ct,ut,ft),jt={core:It,failsafe:gt,json:Tt,yaml11:Pt},Dt={binary:Ze,bool:kt,float:Lt,floatExp:At,floatNaN:Nt,floatTime:ut,int:Et,intHex:St,intOct:Ot,intTime:ct,map:pt,null:bt,omap:rt,pairs:tt,seq:dt,set:it,timestamp:ft};function Ft(e,t,n){if(e instanceof ie)return e;var a=n.defaultPrefix,i=n.onTagObj,o=n.prevObjects,s=n.schema,c=n.wrapScalars;t&&t.startsWith("!!")&&(t=a+t.slice(2));var u=function(e,t,n){if(t){var r=n.filter((function(e){return e.tag===t})),a=r.find((function(e){return!e.format}))||r[0];if(!a)throw new Error("Tag ".concat(t," not found"));return a}return n.find((function(t){return(t.identify&&t.identify(e)||t.class&&e instanceof t.class)&&!t.format}))}(e,t,s.tags);if(!u){if("function"==typeof e.toJSON&&(e=e.toJSON()),!e||"object"!==r(e))return c?new se(e):e;u=e instanceof Map?pt:e[Symbol.iterator]?dt:pt}i&&(i(u),delete n.onTagObj);var f={value:void 0,node:void 0};if(e&&"object"===r(e)&&o){var l=o.get(e);if(l){var h=new de(l);return n.aliasNodes.push(h),h}f.value=e,o.set(e,f)}return f.node=u.createNode?u.createNode(n.schema,e,n):c?new se(e):e,t&&f.node instanceof ie&&(f.node.tag=t),f.node}var Wt=function(e,t){return e.keyt.key?1:0},Ut=function(){function e(t){var n=t.customTags,r=t.merge,i=t.schema,o=t.sortMapEntries,s=t.tags;a(this,e),this.merge=!!r,this.name=i,this.sortMapEntries=!0===o?Wt:o||null,!n&&s&&function(e,t){if(!vt[e]&<(!0)){vt[e]=!0;var n="The option '".concat(e,"' will be removed in a future release");ht(n+=t?", use '".concat(t,"' instead."):".","DeprecationWarning")}}("tags","customTags"),this.tags=function(e,t,n,r){var a=e[r.replace(/\W/g,"")];if(!a){var i=Object.keys(e).map((function(e){return JSON.stringify(e)})).join(", ");throw new Error('Unknown schema "'.concat(r,'"; use one of ').concat(i))}if(Array.isArray(n)){var o,s=S(n);try{for(s.s();!(o=s.n()).done;){var c=o.value;a=a.concat(c)}}catch(e){s.e(e)}finally{s.f()}}else"function"==typeof n&&(a=n(a.slice()));for(var u=0;u");var o=t.substr(a.prefix.length).replace(/[!,[\]{}]/g,(function(e){return{"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"}[e]}));return a.handle+o}function Jt(e,t,n,a){var i,o=t.doc,s=o.anchors,c=o.schema;if(!(e instanceof ie)){var u={aliasNodes:[],onTagObj:function(e){return i=e},prevObjects:new Map};e=c.createNode(e,!0,null,u);var f,l=S(u.aliasNodes);try{for(l.s();!(f=l.n()).done;){var h=f.value;h.source=h.source.node;var v=s.getName(h.source);v||(v=s.newName(),s.map[v]=h.source)}}catch(e){l.e(e)}finally{l.f()}}if(e instanceof ve)return e.toString(t,n,a);i||(i=function(e,t){if(t instanceof de)return de;if(t.tag){var n=e.filter((function(e){return e.tag===t.tag}));if(n.length>0)return n.find((function(e){return e.format===t.format}))||n[0]}var a,i;if(t instanceof se){i=t.value;var o=e.filter((function(e){return e.identify&&e.identify(i)||e.class&&i instanceof e.class}));a=o.find((function(e){return e.format===t.format}))||o.find((function(e){return!e.format}))}else i=t,a=e.find((function(e){return e.nodeClass&&i instanceof e.nodeClass}));if(!a){var s=i&&i.constructor?i.constructor.name:r(i);throw new Error("Tag not resolved for ".concat(s," value"))}return a}(c.tags,e));var p=function(e,t,n){var r=n.anchors,a=n.doc,i=[],o=a.anchors.getName(e);return o&&(r[o]=e,i.push("&".concat(o))),e.tag?i.push(Yt(a,e.tag)):t.default||i.push(Yt(a,t.tag)),i.join(" ")}(e,i,t);p.length>0&&(t.indentAtStart=(t.indentAtStart||0)+p.length+1);var d="function"==typeof i.stringify?i.stringify(e,t,n,a):e instanceof se?Pe(e,t,n,a):e.toString(t,n,a);return p?e instanceof se||"{"===d[0]||"["===d[0]?"".concat(p," ").concat(d):"".concat(p,"\n").concat(t.indent).concat(d):d}var Vt=function(){function e(t){a(this,e),s(this,"map",Object.create(null)),this.prefix=t}return o(e,[{key:"createAlias",value:function(e,t){return this.setAnchor(e,t),new de(e)}},{key:"createMergePair",value:function(){for(var e=this,t=new we,n=arguments.length,r=new Array(n),a=0;a0&&!e.commentBefore&&(e.commentBefore=r.before.join("\n"),r.before=[]))}}catch(e){o.e(e)}finally{o.f()}if(e.contents=a||null,a){var u=r.before.join("\n");if(u){var f=a instanceof fe&&a.items[0]?a.items[0]:a;f.commentBefore=f.commentBefore?"".concat(u,"\n").concat(f.commentBefore):u}e.comment=r.after.join("\n")||null}else e.comment=r.before.concat(r.after).join("\n")||null}(this,i),this.anchors.resolveNodes(),this.options.prettyErrors){var u,f=S(this.errors);try{for(f.s();!(u=f.n()).done;){var l=u.value;l instanceof B&&l.makePretty()}}catch(e){f.e(e)}finally{f.f()}var h,v=S(this.warnings);try{for(v.s();!(h=v.n()).done;){var p=h.value;p instanceof B&&p.makePretty()}}catch(e){v.e(e)}finally{v.f()}}return this}},{key:"listNonDefaultTags",value:function(){return Gt(this.contents).filter((function(e){return 0!==e.indexOf(Ut.defaultPrefix)}))}},{key:"setTagPrefix",value:function(e,t){if("!"!==e[0]||"!"!==e[e.length-1])throw new Error("Handle must start and end with !");if(t){var n=this.tagPrefixes.find((function(t){return t.handle===e}));n?n.prefix=t:this.tagPrefixes.push({handle:e,prefix:t})}else this.tagPrefixes=this.tagPrefixes.filter((function(t){return t.handle!==e}))}},{key:"toJSON",value:function(e,t){var n=this,r=this.options,a=r.keepBlobsInJSON,i=r.mapAsMap,o=r.maxAliasCount,s=a&&("string"!=typeof e||!(this.contents instanceof se)),c={doc:this,indentStep:" ",keep:s,mapAsMap:s&&!!i,maxAliasCount:o,stringify:Jt},u=Object.keys(this.anchors.map);u.length>0&&(c.anchors=new Map(u.map((function(e){return[n.anchors.map[e],{alias:[],aliasCount:0,count:1}]}))));var f=oe(this.contents,e,c);if("function"==typeof t&&c.anchors){var l,h=S(c.anchors.values());try{for(h.s();!(l=h.n()).done;){var v=l.value,p=v.count;t(v.res,p)}}catch(e){h.e(e)}finally{h.f()}}return f}},{key:"toString",value:function(){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");var e=this.options.indent;if(!Number.isInteger(e)||e<=0){var t=JSON.stringify(e);throw new Error('"indent" option must be a positive integer, not '.concat(t))}this.setSchema();var n=[],r=!1;if(this.version){var a="%YAML 1.2";"yaml-1.1"===this.schema.name&&("1.0"===this.version?a="%YAML:1.0":"1.1"===this.version&&(a="%YAML 1.1")),n.push(a),r=!0}var i=this.listNonDefaultTags();this.tagPrefixes.forEach((function(e){var t=e.handle,a=e.prefix;i.some((function(e){return 0===e.indexOf(a)}))&&(n.push("%TAG ".concat(t," ").concat(a)),r=!0)})),(r||this.directivesEndMarker)&&n.push("---"),this.commentBefore&&(!r&&this.directivesEndMarker||n.unshift(""),n.unshift(this.commentBefore.replace(/^/gm,"#")));var o={anchors:Object.create(null),doc:this,indent:"",indentStep:" ".repeat(e),stringify:Jt},s=!1,c=null;if(this.contents){this.contents instanceof ie&&(this.contents.spaceBefore&&(r||this.directivesEndMarker)&&n.push(""),this.contents.commentBefore&&n.push(this.contents.commentBefore.replace(/^/gm,"#")),o.forceBlockIndent=!!this.comment,c=this.contents.comment);var u=c?null:function(){return s=!0},f=Jt(this.contents,o,(function(){return c=null}),u);n.push(ae(f,"",c))}else void 0!==this.contents&&n.push(Jt(this.contents,o));return this.comment&&(s&&!c||""===n[n.length-1]||n.push(""),n.push(this.comment.replace(/^/gm,"#"))),n.join("\n")+"\n"}}]),e}();s(Xt,"defaults",$t);var en=function(e){c(n,e);var t=g(n);function n(e){return a(this,n),t.call(this,Object.assign({},Kt,e))}return n}(Xt);function tn(e,t){var n=re(e),r=new en(t).parse(n[0]);if(n.length>1){r.errors.unshift(new j(n[1],"Source contains multiple documents; please use YAML.parseAllDocuments()"))}return r}var nn={createNode:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;void 0===n&&"string"==typeof t&&(n=t,t=!0);var r=Object.assign({},Xt.defaults[Kt.version],Kt);return new Ut(r).createNode(e,t,n)},defaultOptions:Kt,Document:en,parse:function(e,t){var n=tn(e,t);if(n.warnings.forEach((function(e){return ht(e)})),n.errors.length>0)throw n.errors[0];return n.toJSON()},parseAllDocuments:function(e,t){var n,r,a=[],i=S(re(e));try{for(i.s();!(r=i.n()).done;){var o=r.value,s=new en(t);s.parse(o,n),a.push(s),n=s}}catch(e){i.e(e)}finally{i.f()}return a},parseCST:re,parseDocument:tn,scalarOptions:Qt,stringify:function(e,t){var n=new en(t);return n.contents=e,String(n)}}}}]); +//# sourceMappingURL=6670.aafa17f94122d87ee23d.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js.map b/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js.map new file mode 100644 index 00000000..2cf05de3 --- /dev/null +++ b/webpanel/6.6.0/6670.aafa17f94122d87ee23d.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6670.aafa17f94122d87ee23d.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/yaml/browser/index.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/PlainValue-b8036b75.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/parse-cst.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/resolveSeq-492ab440.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/warnings-df54cb69.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/Schema-e94716c8.js","webpack://tgstation-server-control-panel/./node_modules/yaml/browser/dist/index.js"],"sourcesContent":["module.exports = require('./dist').YAML\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar Char = {\n ANCHOR: '&',\n COMMENT: '#',\n TAG: '!',\n DIRECTIVES_END: '-',\n DOCUMENT_END: '.'\n};\nvar Type = {\n ALIAS: 'ALIAS',\n BLANK_LINE: 'BLANK_LINE',\n BLOCK_FOLDED: 'BLOCK_FOLDED',\n BLOCK_LITERAL: 'BLOCK_LITERAL',\n COMMENT: 'COMMENT',\n DIRECTIVE: 'DIRECTIVE',\n DOCUMENT: 'DOCUMENT',\n FLOW_MAP: 'FLOW_MAP',\n FLOW_SEQ: 'FLOW_SEQ',\n MAP: 'MAP',\n MAP_KEY: 'MAP_KEY',\n MAP_VALUE: 'MAP_VALUE',\n PLAIN: 'PLAIN',\n QUOTE_DOUBLE: 'QUOTE_DOUBLE',\n QUOTE_SINGLE: 'QUOTE_SINGLE',\n SEQ: 'SEQ',\n SEQ_ITEM: 'SEQ_ITEM'\n};\nvar defaultTagPrefix = 'tag:yaml.org,2002:';\nvar defaultTags = {\n MAP: 'tag:yaml.org,2002:map',\n SEQ: 'tag:yaml.org,2002:seq',\n STR: 'tag:yaml.org,2002:str'\n};\n\nfunction findLineStarts(src) {\n var ls = [0];\n var offset = src.indexOf('\\n');\n\n while (offset !== -1) {\n offset += 1;\n ls.push(offset);\n offset = src.indexOf('\\n', offset);\n }\n\n return ls;\n}\n\nfunction getSrcInfo(cst) {\n var lineStarts, src;\n\n if (typeof cst === 'string') {\n lineStarts = findLineStarts(cst);\n src = cst;\n } else {\n if (Array.isArray(cst)) cst = cst[0];\n\n if (cst && cst.context) {\n if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);\n lineStarts = cst.lineStarts;\n src = cst.context.src;\n }\n }\n\n return {\n lineStarts: lineStarts,\n src: src\n };\n}\n/**\n * @typedef {Object} LinePos - One-indexed position in the source\n * @property {number} line\n * @property {number} col\n */\n\n/**\n * Determine the line/col position matching a character offset.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns a one-indexed `{ line, col }` location if found, or\n * `undefined` otherwise.\n *\n * @param {number} offset\n * @param {string|Document|Document[]} cst\n * @returns {?LinePos}\n */\n\n\nfunction getLinePos(offset, cst) {\n if (typeof offset !== 'number' || offset < 0) return null;\n\n var _getSrcInfo = getSrcInfo(cst),\n lineStarts = _getSrcInfo.lineStarts,\n src = _getSrcInfo.src;\n\n if (!lineStarts || !src || offset > src.length) return null;\n\n for (var i = 0; i < lineStarts.length; ++i) {\n var start = lineStarts[i];\n\n if (offset < start) {\n return {\n line: i,\n col: offset - lineStarts[i - 1] + 1\n };\n }\n\n if (offset === start) return {\n line: i + 1,\n col: 1\n };\n }\n\n var line = lineStarts.length;\n return {\n line: line,\n col: offset - lineStarts[line - 1] + 1\n };\n}\n/**\n * Get a specified line from the source.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns the line as a string if found, or `null` otherwise.\n *\n * @param {number} line One-indexed line number\n * @param {string|Document|Document[]} cst\n * @returns {?string}\n */\n\nfunction getLine(line, cst) {\n var _getSrcInfo2 = getSrcInfo(cst),\n lineStarts = _getSrcInfo2.lineStarts,\n src = _getSrcInfo2.src;\n\n if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;\n var start = lineStarts[line - 1];\n var end = lineStarts[line]; // undefined for last line; that's ok for slice()\n\n while (end && end > start && src[end - 1] === '\\n') {\n --end;\n }\n\n return src.slice(start, end);\n}\n/**\n * Pretty-print the starting line from the source indicated by the range `pos`\n *\n * Trims output to `maxWidth` chars while keeping the starting column visible,\n * using `…` at either end to indicate dropped characters.\n *\n * Returns a two-line string (or `null`) with `\\n` as separator; the second line\n * will hold appropriately indented `^` marks indicating the column range.\n *\n * @param {Object} pos\n * @param {LinePos} pos.start\n * @param {LinePos} [pos.end]\n * @param {string|Document|Document[]*} cst\n * @param {number} [maxWidth=80]\n * @returns {?string}\n */\n\nfunction getPrettyContext(_ref, cst) {\n var start = _ref.start,\n end = _ref.end;\n var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 80;\n var src = getLine(start.line, cst);\n if (!src) return null;\n var col = start.col;\n\n if (src.length > maxWidth) {\n if (col <= maxWidth - 10) {\n src = src.substr(0, maxWidth - 1) + '…';\n } else {\n var halfWidth = Math.round(maxWidth / 2);\n if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';\n col -= src.length - maxWidth;\n src = '…' + src.substr(1 - maxWidth);\n }\n }\n\n var errLen = 1;\n var errEnd = '';\n\n if (end) {\n if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {\n errLen = end.col - start.col;\n } else {\n errLen = Math.min(src.length + 1, maxWidth) - col;\n errEnd = '…';\n }\n }\n\n var offset = col > 1 ? ' '.repeat(col - 1) : '';\n var err = '^'.repeat(errLen);\n return \"\".concat(src, \"\\n\").concat(offset).concat(err).concat(errEnd);\n}\n\nvar Range = /*#__PURE__*/function () {\n function Range(start, end) {\n _classCallCheck(this, Range);\n\n this.start = start;\n this.end = end || start;\n }\n\n _createClass(Range, [{\n key: \"isEmpty\",\n value: function isEmpty() {\n return typeof this.start !== 'number' || !this.end || this.end <= this.start;\n }\n /**\n * Set `origStart` and `origEnd` to point to the original source range for\n * this node, which may differ due to dropped CR characters.\n *\n * @param {number[]} cr - Positions of dropped CR characters\n * @param {number} offset - Starting index of `cr` from the last call\n * @returns {number} - The next offset, matching the one found for `origStart`\n */\n\n }, {\n key: \"setOrigRange\",\n value: function setOrigRange(cr, offset) {\n var start = this.start,\n end = this.end;\n\n if (cr.length === 0 || end <= cr[0]) {\n this.origStart = start;\n this.origEnd = end;\n return offset;\n }\n\n var i = offset;\n\n while (i < cr.length) {\n if (cr[i] > start) break;else ++i;\n }\n\n this.origStart = start + i;\n var nextOffset = i;\n\n while (i < cr.length) {\n // if end was at \\n, it should now be at \\r\n if (cr[i] >= end) break;else ++i;\n }\n\n this.origEnd = end + i;\n return nextOffset;\n }\n }], [{\n key: \"copy\",\n value: function copy(orig) {\n return new Range(orig.start, orig.end);\n }\n }]);\n\n return Range;\n}();\n\n/** Root class of all nodes */\n\nvar Node = /*#__PURE__*/function () {\n function Node(type, props, context) {\n _classCallCheck(this, Node);\n\n Object.defineProperty(this, 'context', {\n value: context || null,\n writable: true\n });\n this.error = null;\n this.range = null;\n this.valueRange = null;\n this.props = props || [];\n this.type = type;\n this.value = null;\n }\n\n _createClass(Node, [{\n key: \"getPropValue\",\n value: function getPropValue(idx, key, skipKey) {\n if (!this.context) return null;\n var src = this.context.src;\n var prop = this.props[idx];\n return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;\n }\n }, {\n key: \"anchor\",\n get: function get() {\n for (var i = 0; i < this.props.length; ++i) {\n var anchor = this.getPropValue(i, Char.ANCHOR, true);\n if (anchor != null) return anchor;\n }\n\n return null;\n }\n }, {\n key: \"comment\",\n get: function get() {\n var comments = [];\n\n for (var i = 0; i < this.props.length; ++i) {\n var comment = this.getPropValue(i, Char.COMMENT, true);\n if (comment != null) comments.push(comment);\n }\n\n return comments.length > 0 ? comments.join('\\n') : null;\n }\n }, {\n key: \"commentHasRequiredWhitespace\",\n value: function commentHasRequiredWhitespace(start) {\n var src = this.context.src;\n if (this.header && start === this.header.end) return false;\n if (!this.valueRange) return false;\n var end = this.valueRange.end;\n return start !== end || Node.atBlank(src, end - 1);\n }\n }, {\n key: \"hasComment\",\n get: function get() {\n if (this.context) {\n var src = this.context.src;\n\n for (var i = 0; i < this.props.length; ++i) {\n if (src[this.props[i].start] === Char.COMMENT) return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"hasProps\",\n get: function get() {\n if (this.context) {\n var src = this.context.src;\n\n for (var i = 0; i < this.props.length; ++i) {\n if (src[this.props[i].start] !== Char.COMMENT) return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"includesTrailingLines\",\n get: function get() {\n return false;\n }\n }, {\n key: \"jsonLike\",\n get: function get() {\n var jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];\n return jsonLikeTypes.indexOf(this.type) !== -1;\n }\n }, {\n key: \"rangeAsLinePos\",\n get: function get() {\n if (!this.range || !this.context) return undefined;\n var start = getLinePos(this.range.start, this.context.root);\n if (!start) return undefined;\n var end = getLinePos(this.range.end, this.context.root);\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"rawValue\",\n get: function get() {\n if (!this.valueRange || !this.context) return null;\n var _this$valueRange = this.valueRange,\n start = _this$valueRange.start,\n end = _this$valueRange.end;\n return this.context.src.slice(start, end);\n }\n }, {\n key: \"tag\",\n get: function get() {\n for (var i = 0; i < this.props.length; ++i) {\n var tag = this.getPropValue(i, Char.TAG, false);\n\n if (tag != null) {\n if (tag[1] === '<') {\n return {\n verbatim: tag.slice(2, -1)\n };\n } else {\n // eslint-disable-next-line no-unused-vars\n var _tag$match = tag.match(/^(.*!)([^!]*)$/),\n _tag$match2 = _slicedToArray(_tag$match, 3);\n _tag$match2[0];\n var handle = _tag$match2[1],\n suffix = _tag$match2[2];\n\n return {\n handle: handle,\n suffix: suffix\n };\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"valueRangeContainsNewline\",\n get: function get() {\n if (!this.valueRange || !this.context) return false;\n var _this$valueRange2 = this.valueRange,\n start = _this$valueRange2.start,\n end = _this$valueRange2.end;\n var src = this.context.src;\n\n for (var i = start; i < end; ++i) {\n if (src[i] === '\\n') return true;\n }\n\n return false;\n }\n }, {\n key: \"parseComment\",\n value: function parseComment(start) {\n var src = this.context.src;\n\n if (src[start] === Char.COMMENT) {\n var end = Node.endOfLine(src, start + 1);\n var commentRange = new Range(start, end);\n this.props.push(commentRange);\n return end;\n }\n\n return start;\n }\n /**\n * Populates the `origStart` and `origEnd` values of all ranges for this\n * node. Extended by child classes to handle descendant nodes.\n *\n * @param {number[]} cr - Positions of dropped CR characters\n * @param {number} offset - Starting index of `cr` from the last call\n * @returns {number} - The next offset, matching the one found for `origStart`\n */\n\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n if (this.range) offset = this.range.setOrigRange(cr, offset);\n if (this.valueRange) this.valueRange.setOrigRange(cr, offset);\n this.props.forEach(function (prop) {\n return prop.setOrigRange(cr, offset);\n });\n return offset;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var src = this.context.src,\n range = this.range,\n value = this.value;\n if (value != null) return value;\n var str = src.slice(range.start, range.end);\n return Node.addStringTerminator(src, range.end, str);\n }\n }], [{\n key: \"addStringTerminator\",\n value: function addStringTerminator(src, offset, str) {\n if (str[str.length - 1] === '\\n') return str;\n var next = Node.endOfWhiteSpace(src, offset);\n return next >= src.length || src[next] === '\\n' ? str + '\\n' : str;\n } // ^(---|...)\n\n }, {\n key: \"atDocumentBoundary\",\n value: function atDocumentBoundary(src, offset, sep) {\n var ch0 = src[offset];\n if (!ch0) return true;\n var prev = src[offset - 1];\n if (prev && prev !== '\\n') return false;\n\n if (sep) {\n if (ch0 !== sep) return false;\n } else {\n if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;\n }\n\n var ch1 = src[offset + 1];\n var ch2 = src[offset + 2];\n if (ch1 !== ch0 || ch2 !== ch0) return false;\n var ch3 = src[offset + 3];\n return !ch3 || ch3 === '\\n' || ch3 === '\\t' || ch3 === ' ';\n }\n }, {\n key: \"endOfIdentifier\",\n value: function endOfIdentifier(src, offset) {\n var ch = src[offset];\n var isVerbatim = ch === '<';\n var notOk = isVerbatim ? ['\\n', '\\t', ' ', '>'] : ['\\n', '\\t', ' ', '[', ']', '{', '}', ','];\n\n while (ch && notOk.indexOf(ch) === -1) {\n ch = src[offset += 1];\n }\n\n if (isVerbatim && ch === '>') offset += 1;\n return offset;\n }\n }, {\n key: \"endOfIndent\",\n value: function endOfIndent(src, offset) {\n var ch = src[offset];\n\n while (ch === ' ') {\n ch = src[offset += 1];\n }\n\n return offset;\n }\n }, {\n key: \"endOfLine\",\n value: function endOfLine(src, offset) {\n var ch = src[offset];\n\n while (ch && ch !== '\\n') {\n ch = src[offset += 1];\n }\n\n return offset;\n }\n }, {\n key: \"endOfWhiteSpace\",\n value: function endOfWhiteSpace(src, offset) {\n var ch = src[offset];\n\n while (ch === '\\t' || ch === ' ') {\n ch = src[offset += 1];\n }\n\n return offset;\n }\n }, {\n key: \"startOfLine\",\n value: function startOfLine(src, offset) {\n var ch = src[offset - 1];\n if (ch === '\\n') return offset;\n\n while (ch && ch !== '\\n') {\n ch = src[offset -= 1];\n }\n\n return offset + 1;\n }\n /**\n * End of indentation, or null if the line's indent level is not more\n * than `indent`\n *\n * @param {string} src\n * @param {number} indent\n * @param {number} lineStart\n * @returns {?number}\n */\n\n }, {\n key: \"endOfBlockIndent\",\n value: function endOfBlockIndent(src, indent, lineStart) {\n var inEnd = Node.endOfIndent(src, lineStart);\n\n if (inEnd > lineStart + indent) {\n return inEnd;\n } else {\n var wsEnd = Node.endOfWhiteSpace(src, inEnd);\n var ch = src[wsEnd];\n if (!ch || ch === '\\n') return wsEnd;\n }\n\n return null;\n }\n }, {\n key: \"atBlank\",\n value: function atBlank(src, offset, endAsBlank) {\n var ch = src[offset];\n return ch === '\\n' || ch === '\\t' || ch === ' ' || endAsBlank && !ch;\n }\n }, {\n key: \"nextNodeIsIndented\",\n value: function nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {\n if (!ch || indentDiff < 0) return false;\n if (indentDiff > 0) return true;\n return indicatorAsIndent && ch === '-';\n } // should be at line or string end, or at next non-whitespace char\n\n }, {\n key: \"normalizeOffset\",\n value: function normalizeOffset(src, offset) {\n var ch = src[offset];\n return !ch ? offset : ch !== '\\n' && src[offset - 1] === '\\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);\n } // fold single newline into space, multiple newlines to N - 1 newlines\n // presumes src[offset] === '\\n'\n\n }, {\n key: \"foldNewline\",\n value: function foldNewline(src, offset, indent) {\n var inCount = 0;\n var error = false;\n var fold = '';\n var ch = src[offset + 1];\n\n while (ch === ' ' || ch === '\\t' || ch === '\\n') {\n switch (ch) {\n case '\\n':\n inCount = 0;\n offset += 1;\n fold += '\\n';\n break;\n\n case '\\t':\n if (inCount <= indent) error = true;\n offset = Node.endOfWhiteSpace(src, offset + 2) - 1;\n break;\n\n case ' ':\n inCount += 1;\n offset += 1;\n break;\n }\n\n ch = src[offset + 1];\n }\n\n if (!fold) fold = ' ';\n if (ch && inCount <= indent) error = true;\n return {\n fold: fold,\n offset: offset,\n error: error\n };\n }\n }]);\n\n return Node;\n}();\n\nvar YAMLError = /*#__PURE__*/function (_Error) {\n _inherits(YAMLError, _Error);\n\n var _super = _createSuper(YAMLError);\n\n function YAMLError(name, source, message) {\n var _this;\n\n _classCallCheck(this, YAMLError);\n\n if (!message || !(source instanceof Node)) throw new Error(\"Invalid arguments for new \".concat(name));\n _this = _super.call(this);\n _this.name = name;\n _this.message = message;\n _this.source = source;\n return _this;\n }\n\n _createClass(YAMLError, [{\n key: \"makePretty\",\n value: function makePretty() {\n if (!this.source) return;\n this.nodeType = this.source.type;\n var cst = this.source.context && this.source.context.root;\n\n if (typeof this.offset === 'number') {\n this.range = new Range(this.offset, this.offset + 1);\n var start = cst && getLinePos(this.offset, cst);\n\n if (start) {\n var end = {\n line: start.line,\n col: start.col + 1\n };\n this.linePos = {\n start: start,\n end: end\n };\n }\n\n delete this.offset;\n } else {\n this.range = this.source.range;\n this.linePos = this.source.rangeAsLinePos;\n }\n\n if (this.linePos) {\n var _this$linePos$start = this.linePos.start,\n line = _this$linePos$start.line,\n col = _this$linePos$start.col;\n this.message += \" at line \".concat(line, \", column \").concat(col);\n var ctx = cst && getPrettyContext(this.linePos, cst);\n if (ctx) this.message += \":\\n\\n\".concat(ctx, \"\\n\");\n }\n\n delete this.source;\n }\n }]);\n\n return YAMLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar YAMLReferenceError = /*#__PURE__*/function (_YAMLError) {\n _inherits(YAMLReferenceError, _YAMLError);\n\n var _super2 = _createSuper(YAMLReferenceError);\n\n function YAMLReferenceError(source, message) {\n _classCallCheck(this, YAMLReferenceError);\n\n return _super2.call(this, 'YAMLReferenceError', source, message);\n }\n\n return YAMLReferenceError;\n}(YAMLError);\nvar YAMLSemanticError = /*#__PURE__*/function (_YAMLError2) {\n _inherits(YAMLSemanticError, _YAMLError2);\n\n var _super3 = _createSuper(YAMLSemanticError);\n\n function YAMLSemanticError(source, message) {\n _classCallCheck(this, YAMLSemanticError);\n\n return _super3.call(this, 'YAMLSemanticError', source, message);\n }\n\n return YAMLSemanticError;\n}(YAMLError);\nvar YAMLSyntaxError = /*#__PURE__*/function (_YAMLError3) {\n _inherits(YAMLSyntaxError, _YAMLError3);\n\n var _super4 = _createSuper(YAMLSyntaxError);\n\n function YAMLSyntaxError(source, message) {\n _classCallCheck(this, YAMLSyntaxError);\n\n return _super4.call(this, 'YAMLSyntaxError', source, message);\n }\n\n return YAMLSyntaxError;\n}(YAMLError);\nvar YAMLWarning = /*#__PURE__*/function (_YAMLError4) {\n _inherits(YAMLWarning, _YAMLError4);\n\n var _super5 = _createSuper(YAMLWarning);\n\n function YAMLWarning(source, message) {\n _classCallCheck(this, YAMLWarning);\n\n return _super5.call(this, 'YAMLWarning', source, message);\n }\n\n return YAMLWarning;\n}(YAMLError);\n\nvar PlainValue = /*#__PURE__*/function (_Node) {\n _inherits(PlainValue, _Node);\n\n var _super = _createSuper(PlainValue);\n\n function PlainValue() {\n _classCallCheck(this, PlainValue);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PlainValue, [{\n key: \"strValue\",\n get: function get() {\n if (!this.valueRange || !this.context) return null;\n var _this$valueRange = this.valueRange,\n start = _this$valueRange.start,\n end = _this$valueRange.end;\n var src = this.context.src;\n var ch = src[end - 1];\n\n while (start < end && (ch === '\\n' || ch === '\\t' || ch === ' ')) {\n ch = src[--end - 1];\n }\n\n var str = '';\n\n for (var i = start; i < end; ++i) {\n var _ch = src[i];\n\n if (_ch === '\\n') {\n var _Node$foldNewline = Node.foldNewline(src, i, -1),\n fold = _Node$foldNewline.fold,\n offset = _Node$foldNewline.offset;\n\n str += fold;\n i = offset;\n } else if (_ch === ' ' || _ch === '\\t') {\n // trim trailing whitespace\n var wsStart = i;\n var next = src[i + 1];\n\n while (i < end && (next === ' ' || next === '\\t')) {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : _ch;\n } else {\n str += _ch;\n }\n }\n\n var ch0 = src[start];\n\n switch (ch0) {\n case '\\t':\n {\n var msg = 'Plain value cannot start with a tab character';\n var errors = [new YAMLSemanticError(this, msg)];\n return {\n errors: errors,\n str: str\n };\n }\n\n case '@':\n case '`':\n {\n var _msg = \"Plain value cannot start with reserved character \".concat(ch0);\n\n var _errors = [new YAMLSemanticError(this, _msg)];\n return {\n errors: _errors,\n str: str\n };\n }\n\n default:\n return str;\n }\n }\n }, {\n key: \"parseBlockValue\",\n value: function parseBlockValue(start) {\n var _this$context = this.context,\n indent = _this$context.indent,\n inFlow = _this$context.inFlow,\n src = _this$context.src;\n var offset = start;\n var valueEnd = start;\n\n for (var ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n if (Node.atDocumentBoundary(src, offset + 1)) break;\n var end = Node.endOfBlockIndent(src, indent, offset + 1);\n if (end === null || src[end] === '#') break;\n\n if (src[end] === '\\n') {\n offset = end;\n } else {\n valueEnd = PlainValue.endOfLine(src, end, inFlow);\n offset = valueEnd;\n }\n }\n\n if (this.valueRange.isEmpty()) this.valueRange.start = start;\n this.valueRange.end = valueEnd;\n return valueEnd;\n }\n /**\n * Parses a plain value from the source\n *\n * Accepted forms are:\n * ```\n * #comment\n *\n * first line\n *\n * first line #comment\n *\n * first line\n * block\n * lines\n *\n * #comment\n * block\n * lines\n * ```\n * where block lines are empty or have an indent level greater than `indent`.\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar, may be `\\n`\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var inFlow = context.inFlow,\n src = context.src;\n var offset = start;\n var ch = src[offset];\n\n if (ch && ch !== '#' && ch !== '\\n') {\n offset = PlainValue.endOfLine(src, start, inFlow);\n }\n\n this.valueRange = new Range(start, offset);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n\n if (!this.hasComment || this.valueRange.isEmpty()) {\n offset = this.parseBlockValue(offset);\n }\n\n return offset;\n }\n }], [{\n key: \"endOfLine\",\n value: function endOfLine(src, start, inFlow) {\n var ch = src[start];\n var offset = start;\n\n while (ch && ch !== '\\n') {\n if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;\n var next = src[offset + 1];\n if (ch === ':' && (!next || next === '\\n' || next === '\\t' || next === ' ' || inFlow && next === ',')) break;\n if ((ch === ' ' || ch === '\\t') && next === '#') break;\n offset += 1;\n ch = next;\n }\n\n return offset;\n }\n }]);\n\n return PlainValue;\n}(Node);\n\nexport { Char as C, Node as N, PlainValue as P, Range as R, Type as T, YAMLSyntaxError as Y, _createForOfIteratorHelper as _, _typeof as a, _createClass as b, _classCallCheck as c, defaultTagPrefix as d, _defineProperty as e, YAMLWarning as f, YAMLSemanticError as g, _slicedToArray as h, YAMLError as i, _inherits as j, _createSuper as k, _get as l, _getPrototypeOf as m, defaultTags as n, YAMLReferenceError as o, _assertThisInitialized as p, _toArray as q, _possibleConstructorReturn as r };\n","import { j as _inherits, k as _createSuper, c as _classCallCheck, T as Type, b as _createClass, R as Range, N as Node, g as YAMLSemanticError, l as _get, m as _getPrototypeOf, Y as YAMLSyntaxError, C as Char, e as _defineProperty, P as PlainValue } from './PlainValue-b8036b75.js';\n\nvar BlankLine = /*#__PURE__*/function (_Node) {\n _inherits(BlankLine, _Node);\n\n var _super = _createSuper(BlankLine);\n\n function BlankLine() {\n _classCallCheck(this, BlankLine);\n\n return _super.call(this, Type.BLANK_LINE);\n }\n /* istanbul ignore next */\n\n\n _createClass(BlankLine, [{\n key: \"includesTrailingLines\",\n get: function get() {\n // This is never called from anywhere, but if it were,\n // this is the value it should return.\n return true;\n }\n /**\n * Parses a blank line from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first \\n character\n * @returns {number} - Index of the character after this\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n this.range = new Range(start, start + 1);\n return start + 1;\n }\n }]);\n\n return BlankLine;\n}(Node);\n\nvar CollectionItem = /*#__PURE__*/function (_Node) {\n _inherits(CollectionItem, _Node);\n\n var _super = _createSuper(CollectionItem);\n\n function CollectionItem(type, props) {\n var _this;\n\n _classCallCheck(this, CollectionItem);\n\n _this = _super.call(this, type, props);\n _this.node = null;\n return _this;\n }\n\n _createClass(CollectionItem, [{\n key: \"includesTrailingLines\",\n get: function get() {\n return !!this.node && this.node.includesTrailingLines;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var parseNode = context.parseNode,\n src = context.src;\n var atLineStart = context.atLineStart,\n lineStart = context.lineStart;\n if (!atLineStart && this.type === Type.SEQ_ITEM) this.error = new YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');\n var indent = atLineStart ? start - lineStart : context.indent;\n var offset = Node.endOfWhiteSpace(src, start + 1);\n var ch = src[offset];\n var inlineComment = ch === '#';\n var comments = [];\n var blankLine = null;\n\n while (ch === '\\n' || ch === '#') {\n if (ch === '#') {\n var _end = Node.endOfLine(src, offset + 1);\n\n comments.push(new Range(offset, _end));\n offset = _end;\n } else {\n atLineStart = true;\n lineStart = offset + 1;\n var wsEnd = Node.endOfWhiteSpace(src, lineStart);\n\n if (src[wsEnd] === '\\n' && comments.length === 0) {\n blankLine = new BlankLine();\n lineStart = blankLine.parse({\n src: src\n }, lineStart);\n }\n\n offset = Node.endOfIndent(src, lineStart);\n }\n\n ch = src[offset];\n }\n\n if (Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== Type.SEQ_ITEM)) {\n this.node = parseNode({\n atLineStart: atLineStart,\n inCollection: false,\n indent: indent,\n lineStart: lineStart,\n parent: this\n }, offset);\n } else if (ch && lineStart > start + 1) {\n offset = lineStart - 1;\n }\n\n if (this.node) {\n if (blankLine) {\n // Only blank lines preceding non-empty nodes are captured. Note that\n // this means that collection item range start indices do not always\n // increase monotonically. -- eemeli/yaml#126\n var items = context.parent.items || context.parent.contents;\n if (items) items.push(blankLine);\n }\n\n if (comments.length) Array.prototype.push.apply(this.props, comments);\n offset = this.node.range.end;\n } else {\n if (inlineComment) {\n var c = comments[0];\n this.props.push(c);\n offset = c.end;\n } else {\n offset = Node.endOfLine(src, start + 1);\n }\n }\n\n var end = this.node ? this.node.valueRange.end : offset;\n this.valueRange = new Range(start, end);\n return offset;\n }\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n offset = _get(_getPrototypeOf(CollectionItem.prototype), \"setOrigRanges\", this).call(this, cr, offset);\n return this.node ? this.node.setOrigRanges(cr, offset) : offset;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var src = this.context.src,\n node = this.node,\n range = this.range,\n value = this.value;\n if (value != null) return value;\n var str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);\n return Node.addStringTerminator(src, range.end, str);\n }\n }]);\n\n return CollectionItem;\n}(Node);\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inherits(Comment, _Node);\n\n var _super = _createSuper(Comment);\n\n function Comment() {\n _classCallCheck(this, Comment);\n\n return _super.call(this, Type.COMMENT);\n }\n /**\n * Parses a comment line from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n\n _createClass(Comment, [{\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var offset = this.parseComment(start);\n this.range = new Range(start, offset);\n return offset;\n }\n }]);\n\n return Comment;\n}(Node);\n\nfunction grabCollectionEndComments(node) {\n var cnode = node;\n\n while (cnode instanceof CollectionItem) {\n cnode = cnode.node;\n }\n\n if (!(cnode instanceof Collection)) return null;\n var len = cnode.items.length;\n var ci = -1;\n\n for (var i = len - 1; i >= 0; --i) {\n var n = cnode.items[i];\n\n if (n.type === Type.COMMENT) {\n // Keep sufficiently indented comments with preceding node\n var _n$context = n.context,\n indent = _n$context.indent,\n lineStart = _n$context.lineStart;\n if (indent > 0 && n.range.start >= lineStart + indent) break;\n ci = i;\n } else if (n.type === Type.BLANK_LINE) ci = i;else break;\n }\n\n if (ci === -1) return null;\n var ca = cnode.items.splice(ci, len - ci);\n var prevEnd = ca[0].range.start;\n\n while (true) {\n cnode.range.end = prevEnd;\n if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd;\n if (cnode === node) break;\n cnode = cnode.context.parent;\n }\n\n return ca;\n}\nvar Collection = /*#__PURE__*/function (_Node) {\n _inherits(Collection, _Node);\n\n var _super = _createSuper(Collection);\n\n function Collection(firstItem) {\n var _this;\n\n _classCallCheck(this, Collection);\n\n _this = _super.call(this, firstItem.type === Type.SEQ_ITEM ? Type.SEQ : Type.MAP);\n\n for (var i = firstItem.props.length - 1; i >= 0; --i) {\n if (firstItem.props[i].start < firstItem.context.lineStart) {\n // props on previous line are assumed by the collection\n _this.props = firstItem.props.slice(0, i + 1);\n firstItem.props = firstItem.props.slice(i + 1);\n var itemRange = firstItem.props[0] || firstItem.valueRange;\n firstItem.range.start = itemRange.start;\n break;\n }\n }\n\n _this.items = [firstItem];\n var ec = grabCollectionEndComments(firstItem);\n if (ec) Array.prototype.push.apply(_this.items, ec);\n return _this;\n }\n\n _createClass(Collection, [{\n key: \"includesTrailingLines\",\n get: function get() {\n return this.items.length > 0;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var parseNode = context.parseNode,\n src = context.src; // It's easier to recalculate lineStart here rather than tracking down the\n // last context from which to read it -- eemeli/yaml#2\n\n var lineStart = Node.startOfLine(src, start);\n var firstItem = this.items[0]; // First-item context needs to be correct for later comment handling\n // -- eemeli/yaml#17\n\n firstItem.context.parent = this;\n this.valueRange = Range.copy(firstItem.valueRange);\n var indent = firstItem.range.start - firstItem.context.lineStart;\n var offset = start;\n offset = Node.normalizeOffset(src, offset);\n var ch = src[offset];\n var atLineStart = Node.endOfWhiteSpace(src, lineStart) === offset;\n var prevIncludesTrailingLines = false;\n\n while (ch) {\n while (ch === '\\n' || ch === '#') {\n if (atLineStart && ch === '\\n' && !prevIncludesTrailingLines) {\n var blankLine = new BlankLine();\n offset = blankLine.parse({\n src: src\n }, offset);\n this.valueRange.end = offset;\n\n if (offset >= src.length) {\n ch = null;\n break;\n }\n\n this.items.push(blankLine);\n offset -= 1; // blankLine.parse() consumes terminal newline\n } else if (ch === '#') {\n if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {\n return offset;\n }\n\n var comment = new Comment();\n offset = comment.parse({\n indent: indent,\n lineStart: lineStart,\n src: src\n }, offset);\n this.items.push(comment);\n this.valueRange.end = offset;\n\n if (offset >= src.length) {\n ch = null;\n break;\n }\n }\n\n lineStart = offset + 1;\n offset = Node.endOfIndent(src, lineStart);\n\n if (Node.atBlank(src, offset)) {\n var wsEnd = Node.endOfWhiteSpace(src, offset);\n var next = src[wsEnd];\n\n if (!next || next === '\\n' || next === '#') {\n offset = wsEnd;\n }\n }\n\n ch = src[offset];\n atLineStart = true;\n }\n\n if (!ch) {\n break;\n }\n\n if (offset !== lineStart + indent && (atLineStart || ch !== ':')) {\n if (offset < lineStart + indent) {\n if (lineStart > start) offset = lineStart;\n break;\n } else if (!this.error) {\n var msg = 'All collection items must start at the same column';\n this.error = new YAMLSyntaxError(this, msg);\n }\n }\n\n if (firstItem.type === Type.SEQ_ITEM) {\n if (ch !== '-') {\n if (lineStart > start) offset = lineStart;\n break;\n }\n } else if (ch === '-' && !this.error) {\n // map key may start with -, as long as it's followed by a non-whitespace char\n var _next = src[offset + 1];\n\n if (!_next || _next === '\\n' || _next === '\\t' || _next === ' ') {\n var _msg = 'A collection cannot be both a mapping and a sequence';\n this.error = new YAMLSyntaxError(this, _msg);\n }\n }\n\n var node = parseNode({\n atLineStart: atLineStart,\n inCollection: true,\n indent: indent,\n lineStart: lineStart,\n parent: this\n }, offset);\n if (!node) return offset; // at next document start\n\n this.items.push(node);\n this.valueRange.end = node.valueRange.end;\n offset = Node.normalizeOffset(src, node.range.end);\n ch = src[offset];\n atLineStart = false;\n prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range\n // has advanced to check the current line's indentation level\n // -- eemeli/yaml#10 & eemeli/yaml#38\n\n if (ch) {\n var ls = offset - 1;\n var prev = src[ls];\n\n while (prev === ' ' || prev === '\\t') {\n prev = src[--ls];\n }\n\n if (prev === '\\n') {\n lineStart = ls + 1;\n atLineStart = true;\n }\n }\n\n var ec = grabCollectionEndComments(node);\n if (ec) Array.prototype.push.apply(this.items, ec);\n }\n\n return offset;\n }\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n offset = _get(_getPrototypeOf(Collection.prototype), \"setOrigRanges\", this).call(this, cr, offset);\n this.items.forEach(function (node) {\n offset = node.setOrigRanges(cr, offset);\n });\n return offset;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var src = this.context.src,\n items = this.items,\n range = this.range,\n value = this.value;\n if (value != null) return value;\n var str = src.slice(range.start, items[0].range.start) + String(items[0]);\n\n for (var i = 1; i < items.length; ++i) {\n var item = items[i];\n var _item$context = item.context,\n atLineStart = _item$context.atLineStart,\n indent = _item$context.indent;\n if (atLineStart) for (var _i = 0; _i < indent; ++_i) {\n str += ' ';\n }\n str += String(item);\n }\n\n return Node.addStringTerminator(src, range.end, str);\n }\n }], [{\n key: \"nextContentHasIndent\",\n value: function nextContentHasIndent(src, offset, indent) {\n var lineStart = Node.endOfLine(src, offset) + 1;\n offset = Node.endOfWhiteSpace(src, lineStart);\n var ch = src[offset];\n if (!ch) return false;\n if (offset >= lineStart + indent) return true;\n if (ch !== '#' && ch !== '\\n') return false;\n return Collection.nextContentHasIndent(src, offset, indent);\n }\n }]);\n\n return Collection;\n}(Node);\n\nvar Directive = /*#__PURE__*/function (_Node) {\n _inherits(Directive, _Node);\n\n var _super = _createSuper(Directive);\n\n function Directive() {\n var _this;\n\n _classCallCheck(this, Directive);\n\n _this = _super.call(this, Type.DIRECTIVE);\n _this.name = null;\n return _this;\n }\n\n _createClass(Directive, [{\n key: \"parameters\",\n get: function get() {\n var raw = this.rawValue;\n return raw ? raw.trim().split(/[ \\t]+/) : [];\n }\n }, {\n key: \"parseName\",\n value: function parseName(start) {\n var src = this.context.src;\n var offset = start;\n var ch = src[offset];\n\n while (ch && ch !== '\\n' && ch !== '\\t' && ch !== ' ') {\n ch = src[offset += 1];\n }\n\n this.name = src.slice(start, offset);\n return offset;\n }\n }, {\n key: \"parseParameters\",\n value: function parseParameters(start) {\n var src = this.context.src;\n var offset = start;\n var ch = src[offset];\n\n while (ch && ch !== '\\n' && ch !== '#') {\n ch = src[offset += 1];\n }\n\n this.valueRange = new Range(start, offset);\n return offset;\n }\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var offset = this.parseName(start + 1);\n offset = this.parseParameters(offset);\n offset = this.parseComment(offset);\n this.range = new Range(start, offset);\n return offset;\n }\n }]);\n\n return Directive;\n}(Node);\n\nvar Document = /*#__PURE__*/function (_Node) {\n _inherits(Document, _Node);\n\n var _super = _createSuper(Document);\n\n function Document() {\n var _this;\n\n _classCallCheck(this, Document);\n\n _this = _super.call(this, Type.DOCUMENT);\n _this.directives = null;\n _this.contents = null;\n _this.directivesEndMarker = null;\n _this.documentEndMarker = null;\n return _this;\n }\n\n _createClass(Document, [{\n key: \"parseDirectives\",\n value: function parseDirectives(start) {\n var src = this.context.src;\n this.directives = [];\n var atLineStart = true;\n var hasDirectives = false;\n var offset = start;\n\n while (!Node.atDocumentBoundary(src, offset, Char.DIRECTIVES_END)) {\n offset = Document.startCommentOrEndBlankLine(src, offset);\n\n switch (src[offset]) {\n case '\\n':\n if (atLineStart) {\n var blankLine = new BlankLine();\n offset = blankLine.parse({\n src: src\n }, offset);\n\n if (offset < src.length) {\n this.directives.push(blankLine);\n }\n } else {\n offset += 1;\n atLineStart = true;\n }\n\n break;\n\n case '#':\n {\n var comment = new Comment();\n offset = comment.parse({\n src: src\n }, offset);\n this.directives.push(comment);\n atLineStart = false;\n }\n break;\n\n case '%':\n {\n var directive = new Directive();\n offset = directive.parse({\n parent: this,\n src: src\n }, offset);\n this.directives.push(directive);\n hasDirectives = true;\n atLineStart = false;\n }\n break;\n\n default:\n if (hasDirectives) {\n this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line');\n } else if (this.directives.length > 0) {\n this.contents = this.directives;\n this.directives = [];\n }\n\n return offset;\n }\n }\n\n if (src[offset]) {\n this.directivesEndMarker = new Range(offset, offset + 3);\n return offset + 3;\n }\n\n if (hasDirectives) {\n this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line');\n } else if (this.directives.length > 0) {\n this.contents = this.directives;\n this.directives = [];\n }\n\n return offset;\n }\n }, {\n key: \"parseContents\",\n value: function parseContents(start) {\n var _this$context = this.context,\n parseNode = _this$context.parseNode,\n src = _this$context.src;\n if (!this.contents) this.contents = [];\n var lineStart = start;\n\n while (src[lineStart - 1] === '-') {\n lineStart -= 1;\n }\n\n var offset = Node.endOfWhiteSpace(src, start);\n var atLineStart = lineStart === start;\n this.valueRange = new Range(offset);\n\n while (!Node.atDocumentBoundary(src, offset, Char.DOCUMENT_END)) {\n switch (src[offset]) {\n case '\\n':\n if (atLineStart) {\n var blankLine = new BlankLine();\n offset = blankLine.parse({\n src: src\n }, offset);\n\n if (offset < src.length) {\n this.contents.push(blankLine);\n }\n } else {\n offset += 1;\n atLineStart = true;\n }\n\n lineStart = offset;\n break;\n\n case '#':\n {\n var comment = new Comment();\n offset = comment.parse({\n src: src\n }, offset);\n this.contents.push(comment);\n atLineStart = false;\n }\n break;\n\n default:\n {\n var iEnd = Node.endOfIndent(src, offset);\n var context = {\n atLineStart: atLineStart,\n indent: -1,\n inFlow: false,\n inCollection: false,\n lineStart: lineStart,\n parent: this\n };\n var node = parseNode(context, iEnd);\n if (!node) return this.valueRange.end = iEnd; // at next document start\n\n this.contents.push(node);\n offset = node.range.end;\n atLineStart = false;\n var ec = grabCollectionEndComments(node);\n if (ec) Array.prototype.push.apply(this.contents, ec);\n }\n }\n\n offset = Document.startCommentOrEndBlankLine(src, offset);\n }\n\n this.valueRange.end = offset;\n\n if (src[offset]) {\n this.documentEndMarker = new Range(offset, offset + 3);\n offset += 3;\n\n if (src[offset]) {\n offset = Node.endOfWhiteSpace(src, offset);\n\n if (src[offset] === '#') {\n var _comment = new Comment();\n\n offset = _comment.parse({\n src: src\n }, offset);\n this.contents.push(_comment);\n }\n\n switch (src[offset]) {\n case '\\n':\n offset += 1;\n break;\n\n case undefined:\n break;\n\n default:\n this.error = new YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');\n }\n }\n }\n\n return offset;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n context.root = this;\n this.context = context;\n var src = context.src;\n var offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM\n\n offset = this.parseDirectives(offset);\n offset = this.parseContents(offset);\n return offset;\n }\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n offset = _get(_getPrototypeOf(Document.prototype), \"setOrigRanges\", this).call(this, cr, offset);\n this.directives.forEach(function (node) {\n offset = node.setOrigRanges(cr, offset);\n });\n if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);\n this.contents.forEach(function (node) {\n offset = node.setOrigRanges(cr, offset);\n });\n if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);\n return offset;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var contents = this.contents,\n directives = this.directives,\n value = this.value;\n if (value != null) return value;\n var str = directives.join('');\n\n if (contents.length > 0) {\n if (directives.length > 0 || contents[0].type === Type.COMMENT) str += '---\\n';\n str += contents.join('');\n }\n\n if (str[str.length - 1] !== '\\n') str += '\\n';\n return str;\n }\n }], [{\n key: \"startCommentOrEndBlankLine\",\n value: function startCommentOrEndBlankLine(src, start) {\n var offset = Node.endOfWhiteSpace(src, start);\n var ch = src[offset];\n return ch === '#' || ch === '\\n' ? offset : start;\n }\n }]);\n\n return Document;\n}(Node);\n\nvar Alias = /*#__PURE__*/function (_Node) {\n _inherits(Alias, _Node);\n\n var _super = _createSuper(Alias);\n\n function Alias() {\n _classCallCheck(this, Alias);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Alias, [{\n key: \"parse\",\n value:\n /**\n * Parses an *alias from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n function parse(context, start) {\n this.context = context;\n var src = context.src;\n var offset = Node.endOfIdentifier(src, start + 1);\n this.valueRange = new Range(start + 1, offset);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n }]);\n\n return Alias;\n}(Node);\n\nvar Chomp = {\n CLIP: 'CLIP',\n KEEP: 'KEEP',\n STRIP: 'STRIP'\n};\nvar BlockValue = /*#__PURE__*/function (_Node) {\n _inherits(BlockValue, _Node);\n\n var _super = _createSuper(BlockValue);\n\n function BlockValue(type, props) {\n var _this;\n\n _classCallCheck(this, BlockValue);\n\n _this = _super.call(this, type, props);\n _this.blockIndent = null;\n _this.chomping = Chomp.CLIP;\n _this.header = null;\n return _this;\n }\n\n _createClass(BlockValue, [{\n key: \"includesTrailingLines\",\n get: function get() {\n return this.chomping === Chomp.KEEP;\n }\n }, {\n key: \"strValue\",\n get: function get() {\n if (!this.valueRange || !this.context) return null;\n var _this$valueRange = this.valueRange,\n start = _this$valueRange.start,\n end = _this$valueRange.end;\n var _this$context = this.context,\n indent = _this$context.indent,\n src = _this$context.src;\n if (this.valueRange.isEmpty()) return '';\n var lastNewLine = null;\n var ch = src[end - 1];\n\n while (ch === '\\n' || ch === '\\t' || ch === ' ') {\n end -= 1;\n\n if (end <= start) {\n if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens\n }\n\n if (ch === '\\n') lastNewLine = end;\n ch = src[end - 1];\n }\n\n var keepStart = end + 1;\n\n if (lastNewLine) {\n if (this.chomping === Chomp.KEEP) {\n keepStart = lastNewLine;\n end = this.valueRange.end;\n } else {\n end = lastNewLine;\n }\n }\n\n var bi = indent + this.blockIndent;\n var folded = this.type === Type.BLOCK_FOLDED;\n var atStart = true;\n var str = '';\n var sep = '';\n var prevMoreIndented = false;\n\n for (var i = start; i < end; ++i) {\n for (var j = 0; j < bi; ++j) {\n if (src[i] !== ' ') break;\n i += 1;\n }\n\n var _ch = src[i];\n\n if (_ch === '\\n') {\n if (sep === '\\n') str += '\\n';else sep = '\\n';\n } else {\n var lineEnd = Node.endOfLine(src, i);\n var line = src.slice(i, lineEnd);\n i = lineEnd;\n\n if (folded && (_ch === ' ' || _ch === '\\t') && i < keepStart) {\n if (sep === ' ') sep = '\\n';else if (!prevMoreIndented && !atStart && sep === '\\n') sep = '\\n\\n';\n str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '')\n\n sep = lineEnd < end && src[lineEnd] || '';\n prevMoreIndented = true;\n } else {\n str += sep + line;\n sep = folded && i < keepStart ? ' ' : '\\n';\n prevMoreIndented = false;\n }\n\n if (atStart && line !== '') atStart = false;\n }\n }\n\n return this.chomping === Chomp.STRIP ? str : str + '\\n';\n }\n }, {\n key: \"parseBlockHeader\",\n value: function parseBlockHeader(start) {\n var src = this.context.src;\n var offset = start + 1;\n var bi = '';\n\n while (true) {\n var ch = src[offset];\n\n switch (ch) {\n case '-':\n this.chomping = Chomp.STRIP;\n break;\n\n case '+':\n this.chomping = Chomp.KEEP;\n break;\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n bi += ch;\n break;\n\n default:\n this.blockIndent = Number(bi) || null;\n this.header = new Range(start, offset);\n return offset;\n }\n\n offset += 1;\n }\n }\n }, {\n key: \"parseBlockValue\",\n value: function parseBlockValue(start) {\n var _this$context2 = this.context,\n indent = _this$context2.indent,\n src = _this$context2.src;\n var explicit = !!this.blockIndent;\n var offset = start;\n var valueEnd = start;\n var minBlockIndent = 1;\n\n for (var ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n offset += 1;\n if (Node.atDocumentBoundary(src, offset)) break;\n var end = Node.endOfBlockIndent(src, indent, offset); // should not include tab?\n\n if (end === null) break;\n var _ch2 = src[end];\n var lineIndent = end - (offset + indent);\n\n if (!this.blockIndent) {\n // no explicit block indent, none yet detected\n if (src[end] !== '\\n') {\n // first line with non-whitespace content\n if (lineIndent < minBlockIndent) {\n var msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n this.error = new YAMLSemanticError(this, msg);\n }\n\n this.blockIndent = lineIndent;\n } else if (lineIndent > minBlockIndent) {\n // empty line with more whitespace\n minBlockIndent = lineIndent;\n }\n } else if (_ch2 && _ch2 !== '\\n' && lineIndent < this.blockIndent) {\n if (src[end] === '#') break;\n\n if (!this.error) {\n var _src = explicit ? 'explicit indentation indicator' : 'first line';\n\n var _msg = \"Block scalars must not be less indented than their \".concat(_src);\n\n this.error = new YAMLSemanticError(this, _msg);\n }\n }\n\n if (src[end] === '\\n') {\n offset = end;\n } else {\n offset = valueEnd = Node.endOfLine(src, end);\n }\n }\n\n if (this.chomping !== Chomp.KEEP) {\n offset = src[valueEnd] ? valueEnd + 1 : valueEnd;\n }\n\n this.valueRange = new Range(start + 1, offset);\n return offset;\n }\n /**\n * Parses a block value from the source\n *\n * Accepted forms are:\n * ```\n * BS\n * block\n * lines\n *\n * BS #comment\n * block\n * lines\n * ```\n * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines\n * are empty or have an indent level greater than `indent`.\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this block\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var src = context.src;\n var offset = this.parseBlockHeader(start);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n offset = this.parseBlockValue(offset);\n return offset;\n }\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n offset = _get(_getPrototypeOf(BlockValue.prototype), \"setOrigRanges\", this).call(this, cr, offset);\n return this.header ? this.header.setOrigRange(cr, offset) : offset;\n }\n }]);\n\n return BlockValue;\n}(Node);\n\nvar FlowCollection = /*#__PURE__*/function (_Node) {\n _inherits(FlowCollection, _Node);\n\n var _super = _createSuper(FlowCollection);\n\n function FlowCollection(type, props) {\n var _this;\n\n _classCallCheck(this, FlowCollection);\n\n _this = _super.call(this, type, props);\n _this.items = null;\n return _this;\n }\n\n _createClass(FlowCollection, [{\n key: \"prevNodeIsJsonLike\",\n value: function prevNodeIsJsonLike() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.items.length;\n var node = this.items[idx - 1];\n return !!node && (node.jsonLike || node.type === Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var parseNode = context.parseNode,\n src = context.src;\n var indent = context.indent,\n lineStart = context.lineStart;\n var char = src[start]; // { or [\n\n this.items = [{\n char: char,\n offset: start\n }];\n var offset = Node.endOfWhiteSpace(src, start + 1);\n char = src[offset];\n\n while (char && char !== ']' && char !== '}') {\n switch (char) {\n case '\\n':\n {\n lineStart = offset + 1;\n var wsEnd = Node.endOfWhiteSpace(src, lineStart);\n\n if (src[wsEnd] === '\\n') {\n var blankLine = new BlankLine();\n lineStart = blankLine.parse({\n src: src\n }, lineStart);\n this.items.push(blankLine);\n }\n\n offset = Node.endOfIndent(src, lineStart);\n\n if (offset <= lineStart + indent) {\n char = src[offset];\n\n if (offset < lineStart + indent || char !== ']' && char !== '}') {\n var msg = 'Insufficient indentation in flow collection';\n this.error = new YAMLSemanticError(this, msg);\n }\n }\n }\n break;\n\n case ',':\n {\n this.items.push({\n char: char,\n offset: offset\n });\n offset += 1;\n }\n break;\n\n case '#':\n {\n var comment = new Comment();\n offset = comment.parse({\n src: src\n }, offset);\n this.items.push(comment);\n }\n break;\n\n case '?':\n case ':':\n {\n var next = src[offset + 1];\n\n if (next === '\\n' || next === '\\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace\n char === ':' && this.prevNodeIsJsonLike()) {\n this.items.push({\n char: char,\n offset: offset\n });\n offset += 1;\n break;\n }\n }\n // fallthrough\n\n default:\n {\n var node = parseNode({\n atLineStart: false,\n inCollection: false,\n inFlow: true,\n indent: -1,\n lineStart: lineStart,\n parent: this\n }, offset);\n\n if (!node) {\n // at next document start\n this.valueRange = new Range(start, offset);\n return offset;\n }\n\n this.items.push(node);\n offset = Node.normalizeOffset(src, node.range.end);\n }\n }\n\n offset = Node.endOfWhiteSpace(src, offset);\n char = src[offset];\n }\n\n this.valueRange = new Range(start, offset + 1);\n\n if (char) {\n this.items.push({\n char: char,\n offset: offset\n });\n offset = Node.endOfWhiteSpace(src, offset + 1);\n offset = this.parseComment(offset);\n }\n\n return offset;\n }\n }, {\n key: \"setOrigRanges\",\n value: function setOrigRanges(cr, offset) {\n offset = _get(_getPrototypeOf(FlowCollection.prototype), \"setOrigRanges\", this).call(this, cr, offset);\n this.items.forEach(function (node) {\n if (node instanceof Node) {\n offset = node.setOrigRanges(cr, offset);\n } else if (cr.length === 0) {\n node.origOffset = node.offset;\n } else {\n var i = offset;\n\n while (i < cr.length) {\n if (cr[i] > node.offset) break;else ++i;\n }\n\n node.origOffset = node.offset + i;\n offset = i;\n }\n });\n return offset;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var src = this.context.src,\n items = this.items,\n range = this.range,\n value = this.value;\n if (value != null) return value;\n var nodes = items.filter(function (item) {\n return item instanceof Node;\n });\n var str = '';\n var prevEnd = range.start;\n nodes.forEach(function (node) {\n var prefix = src.slice(prevEnd, node.range.start);\n prevEnd = node.range.end;\n str += prefix + String(node);\n\n if (str[str.length - 1] === '\\n' && src[prevEnd - 1] !== '\\n' && src[prevEnd] === '\\n') {\n // Comment range does not include the terminal newline, but its\n // stringified value does. Without this fix, newlines at comment ends\n // get duplicated.\n prevEnd += 1;\n }\n });\n str += src.slice(prevEnd, range.end);\n return Node.addStringTerminator(src, range.end, str);\n }\n }]);\n\n return FlowCollection;\n}(Node);\n\nvar QuoteDouble = /*#__PURE__*/function (_Node) {\n _inherits(QuoteDouble, _Node);\n\n var _super = _createSuper(QuoteDouble);\n\n function QuoteDouble() {\n _classCallCheck(this, QuoteDouble);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(QuoteDouble, [{\n key: \"strValue\",\n get:\n /**\n * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n */\n function get() {\n if (!this.valueRange || !this.context) return null;\n var errors = [];\n var _this$valueRange = this.valueRange,\n start = _this$valueRange.start,\n end = _this$valueRange.end;\n var _this$context = this.context,\n indent = _this$context.indent,\n src = _this$context.src;\n if (src[end - 1] !== '\"') errors.push(new YAMLSyntaxError(this, 'Missing closing \"quote')); // Using String#replace is too painful with escaped newlines preceded by\n // escaped backslashes; also, this should be faster.\n\n var str = '';\n\n for (var i = start + 1; i < end - 1; ++i) {\n var ch = src[i];\n\n if (ch === '\\n') {\n if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n\n var _Node$foldNewline = Node.foldNewline(src, i, indent),\n fold = _Node$foldNewline.fold,\n offset = _Node$foldNewline.offset,\n error = _Node$foldNewline.error;\n\n str += fold;\n i = offset;\n if (error) errors.push(new YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));\n } else if (ch === '\\\\') {\n i += 1;\n\n switch (src[i]) {\n case '0':\n str += '\\0';\n break;\n // null character\n\n case 'a':\n str += '\\x07';\n break;\n // bell character\n\n case 'b':\n str += '\\b';\n break;\n // backspace\n\n case 'e':\n str += '\\x1b';\n break;\n // escape character\n\n case 'f':\n str += '\\f';\n break;\n // form feed\n\n case 'n':\n str += '\\n';\n break;\n // line feed\n\n case 'r':\n str += '\\r';\n break;\n // carriage return\n\n case 't':\n str += '\\t';\n break;\n // horizontal tab\n\n case 'v':\n str += '\\v';\n break;\n // vertical tab\n\n case 'N':\n str += \"\\x85\";\n break;\n // Unicode next line\n\n case '_':\n str += \"\\xA0\";\n break;\n // Unicode non-breaking space\n\n case 'L':\n str += \"\\u2028\";\n break;\n // Unicode line separator\n\n case 'P':\n str += \"\\u2029\";\n break;\n // Unicode paragraph separator\n\n case ' ':\n str += ' ';\n break;\n\n case '\"':\n str += '\"';\n break;\n\n case '/':\n str += '/';\n break;\n\n case '\\\\':\n str += '\\\\';\n break;\n\n case '\\t':\n str += '\\t';\n break;\n\n case 'x':\n str += this.parseCharCode(i + 1, 2, errors);\n i += 2;\n break;\n\n case 'u':\n str += this.parseCharCode(i + 1, 4, errors);\n i += 4;\n break;\n\n case 'U':\n str += this.parseCharCode(i + 1, 8, errors);\n i += 8;\n break;\n\n case '\\n':\n // skip escaped newlines, but still trim the following line\n while (src[i + 1] === ' ' || src[i + 1] === '\\t') {\n i += 1;\n }\n\n break;\n\n default:\n errors.push(new YAMLSyntaxError(this, \"Invalid escape sequence \".concat(src.substr(i - 1, 2))));\n str += '\\\\' + src[i];\n }\n } else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n var wsStart = i;\n var next = src[i + 1];\n\n while (next === ' ' || next === '\\t') {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n } else {\n str += ch;\n }\n }\n\n return errors.length > 0 ? {\n errors: errors,\n str: str\n } : str;\n }\n }, {\n key: \"parseCharCode\",\n value: function parseCharCode(offset, length, errors) {\n var src = this.context.src;\n var cc = src.substr(offset, length);\n var ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n var code = ok ? parseInt(cc, 16) : NaN;\n\n if (isNaN(code)) {\n errors.push(new YAMLSyntaxError(this, \"Invalid escape sequence \".concat(src.substr(offset - 2, length + 2))));\n return src.substr(offset - 2, length + 2);\n }\n\n return String.fromCodePoint(code);\n }\n /**\n * Parses a \"double quoted\" value from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var src = context.src;\n var offset = QuoteDouble.endOfQuote(src, start + 1);\n this.valueRange = new Range(start, offset);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n }], [{\n key: \"endOfQuote\",\n value: function endOfQuote(src, offset) {\n var ch = src[offset];\n\n while (ch && ch !== '\"') {\n offset += ch === '\\\\' ? 2 : 1;\n ch = src[offset];\n }\n\n return offset + 1;\n }\n }]);\n\n return QuoteDouble;\n}(Node);\n\nvar QuoteSingle = /*#__PURE__*/function (_Node) {\n _inherits(QuoteSingle, _Node);\n\n var _super = _createSuper(QuoteSingle);\n\n function QuoteSingle() {\n _classCallCheck(this, QuoteSingle);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(QuoteSingle, [{\n key: \"strValue\",\n get:\n /**\n * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n */\n function get() {\n if (!this.valueRange || !this.context) return null;\n var errors = [];\n var _this$valueRange = this.valueRange,\n start = _this$valueRange.start,\n end = _this$valueRange.end;\n var _this$context = this.context,\n indent = _this$context.indent,\n src = _this$context.src;\n if (src[end - 1] !== \"'\") errors.push(new YAMLSyntaxError(this, \"Missing closing 'quote\"));\n var str = '';\n\n for (var i = start + 1; i < end - 1; ++i) {\n var ch = src[i];\n\n if (ch === '\\n') {\n if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n\n var _Node$foldNewline = Node.foldNewline(src, i, indent),\n fold = _Node$foldNewline.fold,\n offset = _Node$foldNewline.offset,\n error = _Node$foldNewline.error;\n\n str += fold;\n i = offset;\n if (error) errors.push(new YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));\n } else if (ch === \"'\") {\n str += ch;\n i += 1;\n if (src[i] !== \"'\") errors.push(new YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));\n } else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n var wsStart = i;\n var next = src[i + 1];\n\n while (next === ' ' || next === '\\t') {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n } else {\n str += ch;\n }\n }\n\n return errors.length > 0 ? {\n errors: errors,\n str: str\n } : str;\n }\n /**\n * Parses a 'single quoted' value from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n }, {\n key: \"parse\",\n value: function parse(context, start) {\n this.context = context;\n var src = context.src;\n var offset = QuoteSingle.endOfQuote(src, start + 1);\n this.valueRange = new Range(start, offset);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n }], [{\n key: \"endOfQuote\",\n value: function endOfQuote(src, offset) {\n var ch = src[offset];\n\n while (ch) {\n if (ch === \"'\") {\n if (src[offset + 1] !== \"'\") break;\n ch = src[offset += 2];\n } else {\n ch = src[offset += 1];\n }\n }\n\n return offset + 1;\n }\n }]);\n\n return QuoteSingle;\n}(Node);\n\nfunction createNewNode(type, props) {\n switch (type) {\n case Type.ALIAS:\n return new Alias(type, props);\n\n case Type.BLOCK_FOLDED:\n case Type.BLOCK_LITERAL:\n return new BlockValue(type, props);\n\n case Type.FLOW_MAP:\n case Type.FLOW_SEQ:\n return new FlowCollection(type, props);\n\n case Type.MAP_KEY:\n case Type.MAP_VALUE:\n case Type.SEQ_ITEM:\n return new CollectionItem(type, props);\n\n case Type.COMMENT:\n case Type.PLAIN:\n return new PlainValue(type, props);\n\n case Type.QUOTE_DOUBLE:\n return new QuoteDouble(type, props);\n\n case Type.QUOTE_SINGLE:\n return new QuoteSingle(type, props);\n\n /* istanbul ignore next */\n\n default:\n return null;\n // should never happen\n }\n}\n/**\n * @param {boolean} atLineStart - Node starts at beginning of line\n * @param {boolean} inFlow - true if currently in a flow context\n * @param {boolean} inCollection - true if currently in a collection context\n * @param {number} indent - Current level of indentation\n * @param {number} lineStart - Start of the current line\n * @param {Node} parent - The parent of the node\n * @param {string} src - Source of the YAML document\n */\n\n\nvar ParseContext = /*#__PURE__*/function () {\n function ParseContext() {\n var _this = this;\n\n var orig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n atLineStart = _ref.atLineStart,\n inCollection = _ref.inCollection,\n inFlow = _ref.inFlow,\n indent = _ref.indent,\n lineStart = _ref.lineStart,\n parent = _ref.parent;\n\n _classCallCheck(this, ParseContext);\n\n _defineProperty(this, \"parseNode\", function (overlay, start) {\n if (Node.atDocumentBoundary(_this.src, start)) return null;\n var context = new ParseContext(_this, overlay);\n\n var _context$parseProps = context.parseProps(start),\n props = _context$parseProps.props,\n type = _context$parseProps.type,\n valueStart = _context$parseProps.valueStart;\n\n var node = createNewNode(type, props);\n var offset = node.parse(context, valueStart);\n node.range = new Range(start, offset);\n /* istanbul ignore if */\n\n if (offset <= start) {\n // This should never happen, but if it does, let's make sure to at least\n // step one character forward to avoid a busy loop.\n node.error = new Error(\"Node#parse consumed no characters\");\n node.error.parseEnd = offset;\n node.error.source = node;\n node.range.end = start + 1;\n }\n\n if (context.nodeStartsCollection(node)) {\n if (!node.error && !context.atLineStart && context.parent.type === Type.DOCUMENT) {\n node.error = new YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');\n }\n\n var collection = new Collection(node);\n offset = collection.parse(new ParseContext(context), offset);\n collection.range = new Range(start, offset);\n return collection;\n }\n\n return node;\n });\n\n this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;\n this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;\n this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;\n this.indent = indent != null ? indent : orig.indent;\n this.lineStart = lineStart != null ? lineStart : orig.lineStart;\n this.parent = parent != null ? parent : orig.parent || {};\n this.root = orig.root;\n this.src = orig.src;\n }\n\n _createClass(ParseContext, [{\n key: \"nodeStartsCollection\",\n value: function nodeStartsCollection(node) {\n var inCollection = this.inCollection,\n inFlow = this.inFlow,\n src = this.src;\n if (inCollection || inFlow) return false;\n if (node instanceof CollectionItem) return true; // check for implicit key\n\n var offset = node.range.end;\n if (src[offset] === '\\n' || src[offset - 1] === '\\n') return false;\n offset = Node.endOfWhiteSpace(src, offset);\n return src[offset] === ':';\n } // Anchor and tag are before type, which determines the node implementation\n // class; hence this intermediate step.\n\n }, {\n key: \"parseProps\",\n value: function parseProps(offset) {\n var inFlow = this.inFlow,\n parent = this.parent,\n src = this.src;\n var props = [];\n var lineHasProps = false;\n offset = this.atLineStart ? Node.endOfIndent(src, offset) : Node.endOfWhiteSpace(src, offset);\n var ch = src[offset];\n\n while (ch === Char.ANCHOR || ch === Char.COMMENT || ch === Char.TAG || ch === '\\n') {\n if (ch === '\\n') {\n var inEnd = offset;\n var lineStart = void 0;\n\n do {\n lineStart = inEnd + 1;\n inEnd = Node.endOfIndent(src, lineStart);\n } while (src[inEnd] === '\\n');\n\n var indentDiff = inEnd - (lineStart + this.indent);\n var noIndicatorAsIndent = parent.type === Type.SEQ_ITEM && parent.context.atLineStart;\n if (src[inEnd] !== '#' && !Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;\n this.atLineStart = true;\n this.lineStart = lineStart;\n lineHasProps = false;\n offset = inEnd;\n } else if (ch === Char.COMMENT) {\n var end = Node.endOfLine(src, offset + 1);\n props.push(new Range(offset, end));\n offset = end;\n } else {\n var _end = Node.endOfIdentifier(src, offset + 1);\n\n if (ch === Char.TAG && src[_end] === ',' && /^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(src.slice(offset + 1, _end + 13))) {\n // Let's presume we're dealing with a YAML 1.0 domain tag here, rather\n // than an empty but 'foo.bar' private-tagged node in a flow collection\n // followed without whitespace by a plain string starting with a year\n // or date divided by something.\n _end = Node.endOfIdentifier(src, _end + 5);\n }\n\n props.push(new Range(offset, _end));\n lineHasProps = true;\n offset = Node.endOfWhiteSpace(src, _end);\n }\n\n ch = src[offset];\n } // '- &a : b' has an anchor on an empty node\n\n\n if (lineHasProps && ch === ':' && Node.atBlank(src, offset + 1, true)) offset -= 1;\n var type = ParseContext.parseType(src, offset, inFlow);\n return {\n props: props,\n type: type,\n valueStart: offset\n };\n }\n /**\n * Parses a node from the source\n * @param {ParseContext} overlay\n * @param {number} start - Index of first non-whitespace character for the node\n * @returns {?Node} - null if at a document boundary\n */\n\n }], [{\n key: \"parseType\",\n value: function parseType(src, offset, inFlow) {\n switch (src[offset]) {\n case '*':\n return Type.ALIAS;\n\n case '>':\n return Type.BLOCK_FOLDED;\n\n case '|':\n return Type.BLOCK_LITERAL;\n\n case '{':\n return Type.FLOW_MAP;\n\n case '[':\n return Type.FLOW_SEQ;\n\n case '?':\n return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_KEY : Type.PLAIN;\n\n case ':':\n return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_VALUE : Type.PLAIN;\n\n case '-':\n return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.SEQ_ITEM : Type.PLAIN;\n\n case '\"':\n return Type.QUOTE_DOUBLE;\n\n case \"'\":\n return Type.QUOTE_SINGLE;\n\n default:\n return Type.PLAIN;\n }\n }\n }]);\n\n return ParseContext;\n}();\n\n// Published as 'yaml/parse-cst'\nfunction parse(src) {\n var cr = [];\n\n if (src.indexOf('\\r') !== -1) {\n src = src.replace(/\\r\\n?/g, function (match, offset) {\n if (match.length > 1) cr.push(offset);\n return '\\n';\n });\n }\n\n var documents = [];\n var offset = 0;\n\n do {\n var doc = new Document();\n var context = new ParseContext({\n src: src\n });\n offset = doc.parse(context, offset);\n documents.push(doc);\n } while (offset < src.length);\n\n documents.setOrigRanges = function () {\n if (cr.length === 0) return false;\n\n for (var i = 1; i < cr.length; ++i) {\n cr[i] -= i;\n }\n\n var crOffset = 0;\n\n for (var _i = 0; _i < documents.length; ++_i) {\n crOffset = documents[_i].setOrigRanges(cr, crOffset);\n }\n\n cr.splice(0, cr.length);\n return true;\n };\n\n documents.toString = function () {\n return documents.join('...\\n');\n };\n\n return documents;\n}\n\nexport { parse };\n","import { c as _classCallCheck, j as _inherits, k as _createSuper, b as _createClass, e as _defineProperty, p as _assertThisInitialized, a as _typeof, q as _toArray, T as Type, _ as _createForOfIteratorHelper, l as _get, m as _getPrototypeOf, o as YAMLReferenceError, r as _possibleConstructorReturn, h as _slicedToArray, g as YAMLSemanticError, n as defaultTags, f as YAMLWarning, C as Char, Y as YAMLSyntaxError, P as PlainValue } from './PlainValue-b8036b75.js';\n\nfunction addCommentBefore(str, indent, comment) {\n if (!comment) return str;\n var cc = comment.replace(/[\\s\\S]^/gm, \"$&\".concat(indent, \"#\"));\n return \"#\".concat(cc, \"\\n\").concat(indent).concat(str);\n}\nfunction addComment(str, indent, comment) {\n return !comment ? str : comment.indexOf('\\n') === -1 ? \"\".concat(str, \" #\").concat(comment) : \"\".concat(str, \"\\n\") + comment.replace(/^/gm, \"\".concat(indent || '', \"#\"));\n}\n\nvar Node = function Node() {\n _classCallCheck(this, Node);\n};\n\nfunction toJSON(value, arg, ctx) {\n if (Array.isArray(value)) return value.map(function (v, i) {\n return toJSON(v, String(i), ctx);\n });\n\n if (value && typeof value.toJSON === 'function') {\n var anchor = ctx && ctx.anchors && ctx.anchors.get(value);\n if (anchor) ctx.onCreate = function (res) {\n anchor.res = res;\n delete ctx.onCreate;\n };\n var res = value.toJSON(arg, ctx);\n if (anchor && ctx.onCreate) ctx.onCreate(res);\n return res;\n }\n\n if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value);\n return value;\n}\n\nvar Scalar = /*#__PURE__*/function (_Node) {\n _inherits(Scalar, _Node);\n\n var _super = _createSuper(Scalar);\n\n function Scalar(value) {\n var _this;\n\n _classCallCheck(this, Scalar);\n\n _this = _super.call(this);\n _this.value = value;\n return _this;\n }\n\n _createClass(Scalar, [{\n key: \"toJSON\",\n value: function toJSON$1(arg, ctx) {\n return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return String(this.value);\n }\n }]);\n\n return Scalar;\n}(Node);\n\nfunction collectionFromPath(schema, path, value) {\n var v = value;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var k = path[i];\n\n if (Number.isInteger(k) && k >= 0) {\n var a = [];\n a[k] = v;\n v = a;\n } else {\n var o = {};\n Object.defineProperty(o, k, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n v = o;\n }\n }\n\n return schema.createNode(v, false);\n} // null, undefined, or an empty non-string iterable (e.g. [])\n\n\nvar isEmptyPath = function isEmptyPath(path) {\n return path == null || _typeof(path) === 'object' && path[Symbol.iterator]().next().done;\n};\nvar Collection = /*#__PURE__*/function (_Node) {\n _inherits(Collection, _Node);\n\n var _super = _createSuper(Collection);\n\n function Collection(schema) {\n var _this;\n\n _classCallCheck(this, Collection);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"items\", []);\n\n _this.schema = schema;\n return _this;\n }\n\n _createClass(Collection, [{\n key: \"addIn\",\n value: function addIn(path, value) {\n if (isEmptyPath(path)) this.add(value);else {\n var _path = _toArray(path),\n key = _path[0],\n rest = _path.slice(1);\n\n var node = this.get(key, true);\n if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(\"Expected YAML collection at \".concat(key, \". Remaining path: \").concat(rest));\n }\n }\n }, {\n key: \"deleteIn\",\n value: function deleteIn(_ref) {\n var _ref2 = _toArray(_ref),\n key = _ref2[0],\n rest = _ref2.slice(1);\n\n if (rest.length === 0) return this.delete(key);\n var node = this.get(key, true);\n if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(\"Expected YAML collection at \".concat(key, \". Remaining path: \").concat(rest));\n }\n }, {\n key: \"getIn\",\n value: function getIn(_ref3, keepScalar) {\n var _ref4 = _toArray(_ref3),\n key = _ref4[0],\n rest = _ref4.slice(1);\n\n var node = this.get(key, true);\n if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined;\n }\n }, {\n key: \"hasAllNullValues\",\n value: function hasAllNullValues() {\n return this.items.every(function (node) {\n if (!node || node.type !== 'PAIR') return false;\n var n = node.value;\n return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;\n });\n }\n }, {\n key: \"hasIn\",\n value: function hasIn(_ref5) {\n var _ref6 = _toArray(_ref5),\n key = _ref6[0],\n rest = _ref6.slice(1);\n\n if (rest.length === 0) return this.has(key);\n var node = this.get(key, true);\n return node instanceof Collection ? node.hasIn(rest) : false;\n }\n }, {\n key: \"setIn\",\n value: function setIn(_ref7, value) {\n var _ref8 = _toArray(_ref7),\n key = _ref8[0],\n rest = _ref8.slice(1);\n\n if (rest.length === 0) {\n this.set(key, value);\n } else {\n var node = this.get(key, true);\n if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(\"Expected YAML collection at \".concat(key, \". Remaining path: \").concat(rest));\n }\n } // overridden in implementations\n\n /* istanbul ignore next */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return null;\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, _ref9, onComment, onChompKeep) {\n var _this2 = this;\n\n var blockItem = _ref9.blockItem,\n flowChars = _ref9.flowChars,\n isMap = _ref9.isMap,\n itemIndent = _ref9.itemIndent;\n var _ctx = ctx,\n indent = _ctx.indent,\n indentStep = _ctx.indentStep,\n stringify = _ctx.stringify;\n var inFlow = this.type === Type.FLOW_MAP || this.type === Type.FLOW_SEQ || ctx.inFlow;\n if (inFlow) itemIndent += indentStep;\n var allNullValues = isMap && this.hasAllNullValues();\n ctx = Object.assign({}, ctx, {\n allNullValues: allNullValues,\n indent: itemIndent,\n inFlow: inFlow,\n type: null\n });\n var chompKeep = false;\n var hasItemWithNewLine = false;\n var nodes = this.items.reduce(function (nodes, item, i) {\n var comment;\n\n if (item) {\n if (!chompKeep && item.spaceBefore) nodes.push({\n type: 'comment',\n str: ''\n });\n if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(function (line) {\n nodes.push({\n type: 'comment',\n str: \"#\".concat(line)\n });\n });\n if (item.comment) comment = item.comment;\n if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true;\n }\n\n chompKeep = false;\n var str = stringify(item, ctx, function () {\n return comment = null;\n }, function () {\n return chompKeep = true;\n });\n if (inFlow && !hasItemWithNewLine && str.includes('\\n')) hasItemWithNewLine = true;\n if (inFlow && i < _this2.items.length - 1) str += ',';\n str = addComment(str, itemIndent, comment);\n if (chompKeep && (comment || inFlow)) chompKeep = false;\n nodes.push({\n type: 'item',\n str: str\n });\n return nodes;\n }, []);\n var str;\n\n if (nodes.length === 0) {\n str = flowChars.start + flowChars.end;\n } else if (inFlow) {\n var start = flowChars.start,\n end = flowChars.end;\n var strings = nodes.map(function (n) {\n return n.str;\n });\n\n if (hasItemWithNewLine || strings.reduce(function (sum, str) {\n return sum + str.length + 2;\n }, 2) > Collection.maxFlowStringSingleLineLength) {\n str = start;\n\n var _iterator = _createForOfIteratorHelper(strings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n str += s ? \"\\n\".concat(indentStep).concat(indent).concat(s) : '\\n';\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n str += \"\\n\".concat(indent).concat(end);\n } else {\n str = \"\".concat(start, \" \").concat(strings.join(' '), \" \").concat(end);\n }\n } else {\n var _strings = nodes.map(blockItem);\n\n str = _strings.shift();\n\n var _iterator2 = _createForOfIteratorHelper(_strings),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _s = _step2.value;\n str += _s ? \"\\n\".concat(indent).concat(_s) : '\\n';\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n if (this.comment) {\n str += '\\n' + this.comment.replace(/^/gm, \"\".concat(indent, \"#\"));\n if (onComment) onComment();\n } else if (chompKeep && onChompKeep) onChompKeep();\n\n return str;\n }\n }]);\n\n return Collection;\n}(Node);\n\n_defineProperty(Collection, \"maxFlowStringSingleLineLength\", 60);\n\nfunction asItemIndex(key) {\n var idx = key instanceof Scalar ? key.value : key;\n if (idx && typeof idx === 'string') idx = Number(idx);\n return Number.isInteger(idx) && idx >= 0 ? idx : null;\n}\n\nvar YAMLSeq = /*#__PURE__*/function (_Collection) {\n _inherits(YAMLSeq, _Collection);\n\n var _super = _createSuper(YAMLSeq);\n\n function YAMLSeq() {\n _classCallCheck(this, YAMLSeq);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(YAMLSeq, [{\n key: \"add\",\n value: function add(value) {\n this.items.push(value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n var idx = asItemIndex(key);\n if (typeof idx !== 'number') return false;\n var del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n }, {\n key: \"get\",\n value: function get(key, keepScalar) {\n var idx = asItemIndex(key);\n if (typeof idx !== 'number') return undefined;\n var it = this.items[idx];\n return !keepScalar && it instanceof Scalar ? it.value : it;\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var idx = asItemIndex(key);\n if (typeof idx !== 'number') throw new Error(\"Expected a valid index, not \".concat(key, \".\"));\n this.items[idx] = value;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON$1(_, ctx) {\n var seq = [];\n if (ctx && ctx.onCreate) ctx.onCreate(seq);\n var i = 0;\n\n var _iterator = _createForOfIteratorHelper(this.items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n seq.push(toJSON(item, String(i++), ctx));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return seq;\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n return _get(_getPrototypeOf(YAMLSeq.prototype), \"toString\", this).call(this, ctx, {\n blockItem: function blockItem(n) {\n return n.type === 'comment' ? n.str : \"- \".concat(n.str);\n },\n flowChars: {\n start: '[',\n end: ']'\n },\n isMap: false,\n itemIndent: (ctx.indent || '') + ' '\n }, onComment, onChompKeep);\n }\n }]);\n\n return YAMLSeq;\n}(Collection);\n\nvar stringifyKey = function stringifyKey(key, jsKey, ctx) {\n if (jsKey === null) return '';\n if (_typeof(jsKey) !== 'object') return String(jsKey);\n if (key instanceof Node && ctx && ctx.doc) return key.toString({\n anchors: Object.create(null),\n doc: ctx.doc,\n indent: '',\n indentStep: ctx.indentStep,\n inFlow: true,\n inStringifyKey: true,\n stringify: ctx.stringify\n });\n return JSON.stringify(jsKey);\n};\n\nvar Pair = /*#__PURE__*/function (_Node) {\n _inherits(Pair, _Node);\n\n var _super = _createSuper(Pair);\n\n function Pair(key) {\n var _this;\n\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, Pair);\n\n _this = _super.call(this);\n _this.key = key;\n _this.value = value;\n _this.type = Pair.Type.PAIR;\n return _this;\n }\n\n _createClass(Pair, [{\n key: \"commentBefore\",\n get: function get() {\n return this.key instanceof Node ? this.key.commentBefore : undefined;\n },\n set: function set(cb) {\n if (this.key == null) this.key = new Scalar(null);\n if (this.key instanceof Node) this.key.commentBefore = cb;else {\n var msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.';\n throw new Error(msg);\n }\n }\n }, {\n key: \"addToJSMap\",\n value: function addToJSMap(ctx, map) {\n var key = toJSON(this.key, '', ctx);\n\n if (map instanceof Map) {\n var value = toJSON(this.value, key, ctx);\n map.set(key, value);\n } else if (map instanceof Set) {\n map.add(key);\n } else {\n var stringKey = stringifyKey(this.key, key, ctx);\n\n var _value = toJSON(this.value, stringKey, ctx);\n\n if (stringKey in map) Object.defineProperty(map, stringKey, {\n value: _value,\n writable: true,\n enumerable: true,\n configurable: true\n });else map[stringKey] = _value;\n }\n\n return map;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(_, ctx) {\n var pair = ctx && ctx.mapAsMap ? new Map() : {};\n return this.addToJSMap(ctx, pair);\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, onComment, onChompKeep) {\n if (!ctx || !ctx.doc) return JSON.stringify(this);\n var _ctx$doc$options = ctx.doc.options,\n indentSize = _ctx$doc$options.indent,\n indentSeq = _ctx$doc$options.indentSeq,\n simpleKeys = _ctx$doc$options.simpleKeys;\n var key = this.key,\n value = this.value;\n var keyComment = key instanceof Node && key.comment;\n\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n\n if (key instanceof Collection) {\n var msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n\n var explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === Type.BLOCK_FOLDED || key.type === Type.BLOCK_LITERAL : _typeof(key) === 'object'));\n var _ctx = ctx,\n doc = _ctx.doc,\n indent = _ctx.indent,\n indentStep = _ctx.indentStep,\n stringify = _ctx.stringify;\n ctx = Object.assign({}, ctx, {\n implicitKey: !explicitKey,\n indent: indent + indentStep\n });\n var chompKeep = false;\n var str = stringify(key, ctx, function () {\n return keyComment = null;\n }, function () {\n return chompKeep = true;\n });\n str = addComment(str, ctx.indent, keyComment);\n\n if (!explicitKey && str.length > 1024) {\n if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n\n if (ctx.allNullValues && !simpleKeys) {\n if (this.comment) {\n str = addComment(str, ctx.indent, this.comment);\n if (onComment) onComment();\n } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();\n\n return ctx.inFlow && !explicitKey ? str : \"? \".concat(str);\n }\n\n str = explicitKey ? \"? \".concat(str, \"\\n\").concat(indent, \":\") : \"\".concat(str, \":\");\n\n if (this.comment) {\n // expected (but not strictly required) to be a single-line comment\n str = addComment(str, ctx.indent, this.comment);\n if (onComment) onComment();\n }\n\n var vcb = '';\n var valueComment = null;\n\n if (value instanceof Node) {\n if (value.spaceBefore) vcb = '\\n';\n\n if (value.commentBefore) {\n var cs = value.commentBefore.replace(/^/gm, \"\".concat(ctx.indent, \"#\"));\n vcb += \"\\n\".concat(cs);\n }\n\n valueComment = value.comment;\n } else if (value && _typeof(value) === 'object') {\n value = doc.schema.createNode(value, true);\n }\n\n ctx.implicitKey = false;\n if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n\n if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substr(2);\n }\n\n var valueStr = stringify(value, ctx, function () {\n return valueComment = null;\n }, function () {\n return chompKeep = true;\n });\n var ws = ' ';\n\n if (vcb || this.comment) {\n ws = \"\".concat(vcb, \"\\n\").concat(ctx.indent);\n } else if (!explicitKey && value instanceof Collection) {\n var flow = valueStr[0] === '[' || valueStr[0] === '{';\n if (!flow || valueStr.includes('\\n')) ws = \"\\n\".concat(ctx.indent);\n } else if (valueStr[0] === '\\n') ws = '';\n\n if (chompKeep && !valueComment && onChompKeep) onChompKeep();\n return addComment(str + ws + valueStr, ctx.indent, valueComment);\n }\n }]);\n\n return Pair;\n}(Node);\n\n_defineProperty(Pair, \"Type\", {\n PAIR: 'PAIR',\n MERGE_PAIR: 'MERGE_PAIR'\n});\n\nvar getAliasCount = function getAliasCount(node, anchors) {\n if (node instanceof Alias) {\n var anchor = anchors.get(node.source);\n return anchor.count * anchor.aliasCount;\n } else if (node instanceof Collection) {\n var count = 0;\n\n var _iterator = _createForOfIteratorHelper(node.items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n var c = getAliasCount(item, anchors);\n if (c > count) count = c;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return count;\n } else if (node instanceof Pair) {\n var kc = getAliasCount(node.key, anchors);\n var vc = getAliasCount(node.value, anchors);\n return Math.max(kc, vc);\n }\n\n return 1;\n};\n\nvar Alias = /*#__PURE__*/function (_Node) {\n _inherits(Alias, _Node);\n\n var _super = _createSuper(Alias);\n\n function Alias(source) {\n var _this;\n\n _classCallCheck(this, Alias);\n\n _this = _super.call(this);\n _this.source = source;\n _this.type = Type.ALIAS;\n return _this;\n }\n\n _createClass(Alias, [{\n key: \"tag\",\n set: function set(t) {\n throw new Error('Alias nodes cannot have tags');\n }\n }, {\n key: \"toJSON\",\n value: function toJSON$1(arg, ctx) {\n if (!ctx) return toJSON(this.source, arg, ctx);\n var anchors = ctx.anchors,\n maxAliasCount = ctx.maxAliasCount;\n var anchor = anchors.get(this.source);\n /* istanbul ignore if */\n\n if (!anchor || anchor.res === undefined) {\n var msg = 'This should not happen: Alias anchor was not resolved?';\n if (this.cstNode) throw new YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n }\n\n if (maxAliasCount >= 0) {\n anchor.count += 1;\n if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors);\n\n if (anchor.count * anchor.aliasCount > maxAliasCount) {\n var _msg = 'Excessive alias count indicates a resource exhaustion attack';\n if (this.cstNode) throw new YAMLReferenceError(this.cstNode, _msg);else throw new ReferenceError(_msg);\n }\n }\n\n return anchor.res;\n } // Only called when stringifying an alias mapping key while constructing\n // Object output.\n\n }, {\n key: \"toString\",\n value: function toString(ctx) {\n return Alias.stringify(this, ctx);\n }\n }], [{\n key: \"stringify\",\n value: function stringify(_ref, _ref2) {\n var range = _ref.range,\n source = _ref.source;\n var anchors = _ref2.anchors,\n doc = _ref2.doc,\n implicitKey = _ref2.implicitKey,\n inStringifyKey = _ref2.inStringifyKey;\n var anchor = Object.keys(anchors).find(function (a) {\n return anchors[a] === source;\n });\n if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName();\n if (anchor) return \"*\".concat(anchor).concat(implicitKey ? ' ' : '');\n var msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node';\n throw new Error(\"\".concat(msg, \" [\").concat(range, \"]\"));\n }\n }]);\n\n return Alias;\n}(Node);\n\n_defineProperty(Alias, \"default\", true);\n\nfunction findPair(items, key) {\n var k = key instanceof Scalar ? key.value : key;\n\n var _iterator = _createForOfIteratorHelper(items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var it = _step.value;\n\n if (it instanceof Pair) {\n if (it.key === key || it.key === k) return it;\n if (it.key && it.key.value === k) return it;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return undefined;\n}\nvar YAMLMap = /*#__PURE__*/function (_Collection) {\n _inherits(YAMLMap, _Collection);\n\n var _super = _createSuper(YAMLMap);\n\n function YAMLMap() {\n _classCallCheck(this, YAMLMap);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(YAMLMap, [{\n key: \"add\",\n value: function add(pair, overwrite) {\n if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);\n var prev = findPair(this.items, pair.key);\n var sortEntries = this.schema && this.schema.sortMapEntries;\n\n if (prev) {\n if (overwrite) prev.value = pair.value;else throw new Error(\"Key \".concat(pair.key, \" already set\"));\n } else if (sortEntries) {\n var i = this.items.findIndex(function (item) {\n return sortEntries(pair, item) < 0;\n });\n if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair);\n } else {\n this.items.push(pair);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n var it = findPair(this.items, key);\n if (!it) return false;\n var del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n }, {\n key: \"get\",\n value: function get(key, keepScalar) {\n var it = findPair(this.items, key);\n var node = it && it.value;\n return !keepScalar && node instanceof Scalar ? node.value : node;\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return !!findPair(this.items, key);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param {*} arg ignored\n * @param {*} ctx Conversion context, originally set in Document#toJSON()\n * @param {Class} Type If set, forces the returned collection type\n * @returns {*} Instance of Type, Map, or Object\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON(_, ctx, Type) {\n var map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {};\n if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n var _iterator2 = _createForOfIteratorHelper(this.items),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var item = _step2.value;\n item.addToJSMap(ctx, map);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return map;\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n\n var _iterator3 = _createForOfIteratorHelper(this.items),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n if (!(item instanceof Pair)) throw new Error(\"Map items must all be pairs; found \".concat(JSON.stringify(item), \" instead\"));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return _get(_getPrototypeOf(YAMLMap.prototype), \"toString\", this).call(this, ctx, {\n blockItem: function blockItem(n) {\n return n.str;\n },\n flowChars: {\n start: '{',\n end: '}'\n },\n isMap: true,\n itemIndent: ctx.indent || ''\n }, onComment, onChompKeep);\n }\n }]);\n\n return YAMLMap;\n}(Collection);\n\nvar MERGE_KEY = '<<';\nvar Merge = /*#__PURE__*/function (_Pair) {\n _inherits(Merge, _Pair);\n\n var _super = _createSuper(Merge);\n\n function Merge(pair) {\n var _this;\n\n _classCallCheck(this, Merge);\n\n if (pair instanceof Pair) {\n var seq = pair.value;\n\n if (!(seq instanceof YAMLSeq)) {\n seq = new YAMLSeq();\n seq.items.push(pair.value);\n seq.range = pair.value.range;\n }\n\n _this = _super.call(this, pair.key, seq);\n _this.range = pair.range;\n } else {\n _this = _super.call(this, new Scalar(MERGE_KEY), new YAMLSeq());\n }\n\n _this.type = Pair.Type.MERGE_PAIR;\n return _possibleConstructorReturn(_this);\n } // If the value associated with a merge key is a single mapping node, each of\n // its key/value pairs is inserted into the current mapping, unless the key\n // already exists in it. If the value associated with the merge key is a\n // sequence, then this sequence is expected to contain mapping nodes and each\n // of these nodes is merged in turn according to its order in the sequence.\n // Keys in mapping nodes earlier in the sequence override keys specified in\n // later mapping nodes. -- http://yaml.org/type/merge.html\n\n\n _createClass(Merge, [{\n key: \"addToJSMap\",\n value: function addToJSMap(ctx, map) {\n var _iterator = _createForOfIteratorHelper(this.value.items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var source = _step.value.source;\n if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps');\n var srcMap = source.toJSON(null, ctx, Map);\n\n var _iterator2 = _createForOfIteratorHelper(srcMap),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n key = _step2$value[0],\n value = _step2$value[1];\n\n if (map instanceof Map) {\n if (!map.has(key)) map.set(key, value);\n } else if (map instanceof Set) {\n map.add(key);\n } else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return map;\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, onComment) {\n var seq = this.value;\n if (seq.items.length > 1) return _get(_getPrototypeOf(Merge.prototype), \"toString\", this).call(this, ctx, onComment);\n this.value = seq.items[0];\n\n var str = _get(_getPrototypeOf(Merge.prototype), \"toString\", this).call(this, ctx, onComment);\n\n this.value = seq;\n return str;\n }\n }]);\n\n return Merge;\n}(Pair);\n\nvar binaryOptions = {\n defaultType: Type.BLOCK_LITERAL,\n lineWidth: 76\n};\nvar boolOptions = {\n trueStr: 'true',\n falseStr: 'false'\n};\nvar intOptions = {\n asBigInt: false\n};\nvar nullOptions = {\n nullStr: 'null'\n};\nvar strOptions = {\n defaultType: Type.PLAIN,\n doubleQuoted: {\n jsonEncoding: false,\n minMultiLineLength: 40\n },\n fold: {\n lineWidth: 80,\n minContentWidth: 20\n }\n};\n\nfunction resolveScalar(str, tags, scalarFallback) {\n var _iterator = _createForOfIteratorHelper(tags),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _step.value,\n format = _step$value.format,\n test = _step$value.test,\n resolve = _step$value.resolve;\n\n if (test) {\n var match = str.match(test);\n\n if (match) {\n var res = resolve.apply(null, match);\n if (!(res instanceof Scalar)) res = new Scalar(res);\n if (format) res.format = format;\n return res;\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (scalarFallback) str = scalarFallback(str);\n return new Scalar(str);\n}\n\nvar FOLD_FLOW = 'flow';\nvar FOLD_BLOCK = 'block';\nvar FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line\n// returns index of last newline in more-indented block\n\nvar consumeMoreIndentedLines = function consumeMoreIndentedLines(text, i) {\n var ch = text[i + 1];\n\n while (ch === ' ' || ch === '\\t') {\n do {\n ch = text[i += 1];\n } while (ch && ch !== '\\n');\n\n ch = text[i + 1];\n }\n\n return i;\n};\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n *\n * @param {string} text\n * @param {string} indent\n * @param {string} [mode='flow'] `'block'` prevents more-indented lines\n * from being folded; `'quoted'` allows for `\\` escapes, including escaped\n * newlines\n * @param {Object} options\n * @param {number} [options.indentAtStart] Accounts for leading contents on\n * the first line, defaulting to `indent.length`\n * @param {number} [options.lineWidth=80]\n * @param {number} [options.minContentWidth=20] Allow highly indented lines to\n * stretch the line width or indent content from the start\n * @param {function} options.onFold Called once if the text is folded\n * @param {function} options.onFold Called once if any line of text exceeds\n * lineWidth characters\n */\n\n\nfunction foldFlowLines(text, indent, mode, _ref) {\n var indentAtStart = _ref.indentAtStart,\n _ref$lineWidth = _ref.lineWidth,\n lineWidth = _ref$lineWidth === void 0 ? 80 : _ref$lineWidth,\n _ref$minContentWidth = _ref.minContentWidth,\n minContentWidth = _ref$minContentWidth === void 0 ? 20 : _ref$minContentWidth,\n onFold = _ref.onFold,\n onOverflow = _ref.onOverflow;\n if (!lineWidth || lineWidth < 0) return text;\n var endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep) return text;\n var folds = [];\n var escapedFolds = {};\n var end = lineWidth - indent.length;\n\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart;\n }\n\n var split = undefined;\n var prev = undefined;\n var overflow = false;\n var i = -1;\n var escStart = -1;\n var escEnd = -1;\n\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i);\n if (i !== -1) end = i + endStep;\n }\n\n for (var ch; ch = text[i += 1];) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n\n case 'u':\n i += 5;\n break;\n\n case 'U':\n i += 9;\n break;\n\n default:\n i += 1;\n }\n\n escEnd = i;\n }\n\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);\n end = i + endStep;\n split = undefined;\n } else {\n if (ch === ' ' && prev && prev !== ' ' && prev !== '\\n' && prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n var next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t') split = i;\n }\n\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n } else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[i += 1];\n overflow = true;\n } // Account for newline escape, but don't break preceding escape\n\n\n var j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string\n\n if (escapedFolds[j]) return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n } else {\n overflow = true;\n }\n }\n }\n\n prev = ch;\n }\n\n if (overflow && onOverflow) onOverflow();\n if (folds.length === 0) return text;\n if (onFold) onFold();\n var res = text.slice(0, folds[0]);\n\n for (var _i = 0; _i < folds.length; ++_i) {\n var fold = folds[_i];\n\n var _end = folds[_i + 1] || text.length;\n\n if (fold === 0) res = \"\\n\".concat(indent).concat(text.slice(0, _end));else {\n if (mode === FOLD_QUOTED && escapedFolds[fold]) res += \"\".concat(text[fold], \"\\\\\");\n res += \"\\n\".concat(indent).concat(text.slice(fold + 1, _end));\n }\n }\n\n return res;\n}\n\nvar getFoldOptions = function getFoldOptions(_ref) {\n var indentAtStart = _ref.indentAtStart;\n return indentAtStart ? Object.assign({\n indentAtStart: indentAtStart\n }, strOptions.fold) : strOptions.fold;\n}; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\n\n\nvar containsDocumentMarker = function containsDocumentMarker(str) {\n return /^(%|---|\\.\\.\\.)/m.test(str);\n};\n\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0) return false;\n var limit = lineWidth - indentLength;\n var strLen = str.length;\n if (strLen <= limit) return false;\n\n for (var i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit) return true;\n start = i + 1;\n if (strLen - start <= limit) return false;\n }\n }\n\n return true;\n}\n\nfunction doubleQuotedString(value, ctx) {\n var implicitKey = ctx.implicitKey;\n var _strOptions$doubleQuo = strOptions.doubleQuoted,\n jsonEncoding = _strOptions$doubleQuo.jsonEncoding,\n minMultiLineLength = _strOptions$doubleQuo.minMultiLineLength;\n var json = JSON.stringify(value);\n if (jsonEncoding) return json;\n var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n var str = '';\n var start = 0;\n\n for (var i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n\n if (ch === '\\\\') switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n var code = json.substr(i + 2, 4);\n\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n\n case '0007':\n str += '\\\\a';\n break;\n\n case '000b':\n str += '\\\\v';\n break;\n\n case '001b':\n str += '\\\\e';\n break;\n\n case '0085':\n str += '\\\\N';\n break;\n\n case '00a0':\n str += '\\\\_';\n break;\n\n case '2028':\n str += '\\\\L';\n break;\n\n case '2029':\n str += '\\\\P';\n break;\n\n default:\n if (code.substr(0, 2) === '00') str += '\\\\x' + code.substr(2);else str += json.substr(i, 6);\n }\n\n i += 5;\n start = i + 1;\n }\n break;\n\n case 'n':\n if (implicitKey || json[i + 2] === '\"' || json.length < minMultiLineLength) {\n i += 1;\n } else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n\n while (json[i + 2] === '\\\\' && json[i + 3] === 'n' && json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n\n str += indent; // space after newline needs to be escaped to not be folded\n\n if (json[i + 2] === ' ') str += '\\\\';\n i += 1;\n start = i + 1;\n }\n\n break;\n\n default:\n i += 1;\n }\n }\n\n str = start ? str + json.slice(start) : json;\n return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));\n}\n\nfunction singleQuotedString(value, ctx) {\n if (ctx.implicitKey) {\n if (/\\n/.test(value)) return doubleQuotedString(value, ctx);\n } else {\n // single quoted string can't have leading or trailing whitespace around newline\n if (/[ \\t]\\n|\\n[ \\t]/.test(value)) return doubleQuotedString(value, ctx);\n }\n\n var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n var res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, \"$&\\n\".concat(indent)) + \"'\";\n return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));\n}\n\nfunction blockString(_ref2, ctx, onComment, onChompKeep) {\n var comment = _ref2.comment,\n type = _ref2.type,\n value = _ref2.value;\n\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (/\\n[\\t ]+$/.test(value) || /^\\s*$/.test(value)) {\n return doubleQuotedString(value, ctx);\n }\n\n var indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n var indentSize = indent ? '2' : '1'; // root is at -1\n\n var literal = type === Type.BLOCK_FOLDED ? false : type === Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);\n var header = literal ? '|' : '>';\n if (!value) return header + '\\n';\n var wsStart = '';\n var wsEnd = '';\n value = value.replace(/[\\n\\t ]*$/, function (ws) {\n var n = ws.indexOf('\\n');\n\n if (n === -1) {\n header += '-'; // strip\n } else if (value === ws || n !== ws.length - 1) {\n header += '+'; // keep\n\n if (onChompKeep) onChompKeep();\n }\n\n wsEnd = ws.replace(/\\n$/, '');\n return '';\n }).replace(/^[\\n ]*/, function (ws) {\n if (ws.indexOf(' ') !== -1) header += indentSize;\n var m = ws.match(/ +$/);\n\n if (m) {\n wsStart = ws.slice(0, -m[0].length);\n return m[0];\n } else {\n wsStart = ws;\n return '';\n }\n });\n if (wsEnd) wsEnd = wsEnd.replace(/\\n+(?!\\n|$)/g, \"$&\".concat(indent));\n if (wsStart) wsStart = wsStart.replace(/\\n+/g, \"$&\".concat(indent));\n\n if (comment) {\n header += ' #' + comment.replace(/ ?[\\r\\n]+/g, ' ');\n if (onComment) onComment();\n }\n\n if (!value) return \"\".concat(header).concat(indentSize, \"\\n\").concat(indent).concat(wsEnd);\n\n if (literal) {\n value = value.replace(/\\n+/g, \"$&\".concat(indent));\n return \"\".concat(header, \"\\n\").concat(indent).concat(wsStart).concat(value).concat(wsEnd);\n }\n\n value = value.replace(/\\n+/g, '\\n$&').replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ ind.line ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, \"$&\".concat(indent));\n var body = foldFlowLines(\"\".concat(wsStart).concat(value).concat(wsEnd), indent, FOLD_BLOCK, strOptions.fold);\n return \"\".concat(header, \"\\n\").concat(indent).concat(body);\n}\n\nfunction plainString(item, ctx, onComment, onChompKeep) {\n var comment = item.comment,\n type = item.type,\n value = item.value;\n var actualString = ctx.actualString,\n implicitKey = ctx.implicitKey,\n indent = ctx.indent,\n inFlow = ctx.inFlow;\n\n if (implicitKey && /[\\n[\\]{},]/.test(value) || inFlow && /[[\\]{},]/.test(value)) {\n return doubleQuotedString(value, ctx);\n }\n\n if (!value || /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - empty string, '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || value.indexOf('\\n') === -1 ? value.indexOf('\"') !== -1 && value.indexOf(\"'\") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);\n }\n\n if (!implicitKey && !inFlow && type !== Type.PLAIN && value.indexOf('\\n') !== -1) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n\n if (indent === '' && containsDocumentMarker(value)) {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n\n var str = value.replace(/\\n+/g, \"$&\\n\".concat(indent)); // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n\n if (actualString) {\n var tags = ctx.doc.schema.tags;\n var resolved = resolveScalar(str, tags, tags.scalarFallback).value;\n if (typeof resolved !== 'string') return doubleQuotedString(value, ctx);\n }\n\n var body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));\n\n if (comment && !inFlow && (body.indexOf('\\n') !== -1 || comment.indexOf('\\n') !== -1)) {\n if (onComment) onComment();\n return addCommentBefore(body, indent, comment);\n }\n\n return body;\n}\n\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n var defaultType = strOptions.defaultType;\n var implicitKey = ctx.implicitKey,\n inFlow = ctx.inFlow;\n var _item = item,\n type = _item.type,\n value = _item.value;\n\n if (typeof value !== 'string') {\n value = String(value);\n item = Object.assign({}, item, {\n value: value\n });\n }\n\n var _stringify = function _stringify(_type) {\n switch (_type) {\n case Type.BLOCK_FOLDED:\n case Type.BLOCK_LITERAL:\n return blockString(item, ctx, onComment, onChompKeep);\n\n case Type.QUOTE_DOUBLE:\n return doubleQuotedString(value, ctx);\n\n case Type.QUOTE_SINGLE:\n return singleQuotedString(value, ctx);\n\n case Type.PLAIN:\n return plainString(item, ctx, onComment, onChompKeep);\n\n default:\n return null;\n }\n };\n\n if (type !== Type.QUOTE_DOUBLE && /[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(value)) {\n // force double quotes on control characters\n type = Type.QUOTE_DOUBLE;\n } else if ((implicitKey || inFlow) && (type === Type.BLOCK_FOLDED || type === Type.BLOCK_LITERAL)) {\n // should not happen; blocks are not valid inside flow containers\n type = Type.QUOTE_DOUBLE;\n }\n\n var res = _stringify(type);\n\n if (res === null) {\n res = _stringify(defaultType);\n if (res === null) throw new Error(\"Unsupported default string type \".concat(defaultType));\n }\n\n return res;\n}\n\nfunction stringifyNumber(_ref) {\n var format = _ref.format,\n minFractionDigits = _ref.minFractionDigits,\n tag = _ref.tag,\n value = _ref.value;\n if (typeof value === 'bigint') return String(value);\n if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf';\n var n = JSON.stringify(value);\n\n if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\\d/.test(n)) {\n var i = n.indexOf('.');\n\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n\n var d = minFractionDigits - (n.length - i - 1);\n\n while (d-- > 0) {\n n += '0';\n }\n }\n\n return n;\n}\n\nfunction checkFlowCollectionEnd(errors, cst) {\n var char, name;\n\n switch (cst.type) {\n case Type.FLOW_MAP:\n char = '}';\n name = 'flow map';\n break;\n\n case Type.FLOW_SEQ:\n char = ']';\n name = 'flow sequence';\n break;\n\n default:\n errors.push(new YAMLSemanticError(cst, 'Not a flow collection!?'));\n return;\n }\n\n var lastItem;\n\n for (var i = cst.items.length - 1; i >= 0; --i) {\n var item = cst.items[i];\n\n if (!item || item.type !== Type.COMMENT) {\n lastItem = item;\n break;\n }\n }\n\n if (lastItem && lastItem.char !== char) {\n var msg = \"Expected \".concat(name, \" to end with \").concat(char);\n var err;\n\n if (typeof lastItem.offset === 'number') {\n err = new YAMLSemanticError(cst, msg);\n err.offset = lastItem.offset + 1;\n } else {\n err = new YAMLSemanticError(lastItem, msg);\n if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;\n }\n\n errors.push(err);\n }\n}\nfunction checkFlowCommentSpace(errors, comment) {\n var prev = comment.context.src[comment.range.start - 1];\n\n if (prev !== '\\n' && prev !== '\\t' && prev !== ' ') {\n var msg = 'Comments must be separated from other tokens by white space characters';\n errors.push(new YAMLSemanticError(comment, msg));\n }\n}\nfunction getLongKeyError(source, key) {\n var sk = String(key);\n var k = sk.substr(0, 8) + '...' + sk.substr(-8);\n return new YAMLSemanticError(source, \"The \\\"\".concat(k, \"\\\" key is too long\"));\n}\nfunction resolveComments(collection, comments) {\n var _iterator = _createForOfIteratorHelper(comments),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _step.value,\n afterKey = _step$value.afterKey,\n before = _step$value.before,\n comment = _step$value.comment;\n var item = collection.items[before];\n\n if (!item) {\n if (comment !== undefined) {\n if (collection.comment) collection.comment += '\\n' + comment;else collection.comment = comment;\n }\n } else {\n if (afterKey && item.value) item = item.value;\n\n if (comment === undefined) {\n if (afterKey || !item.commentBefore) item.spaceBefore = true;\n } else {\n if (item.commentBefore) item.commentBefore += '\\n' + comment;else item.commentBefore = comment;\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\n\n// on error, will return { str: string, errors: Error[] }\nfunction resolveString(doc, node) {\n var res = node.strValue;\n if (!res) return '';\n if (typeof res === 'string') return res;\n res.errors.forEach(function (error) {\n if (!error.source) error.source = node;\n doc.errors.push(error);\n });\n return res.str;\n}\n\nfunction resolveTagHandle(doc, node) {\n var _node$tag = node.tag,\n handle = _node$tag.handle,\n suffix = _node$tag.suffix;\n var prefix = doc.tagPrefixes.find(function (p) {\n return p.handle === handle;\n });\n\n if (!prefix) {\n var dtp = doc.getDefaults().tagPrefixes;\n if (dtp) prefix = dtp.find(function (p) {\n return p.handle === handle;\n });\n if (!prefix) throw new YAMLSemanticError(node, \"The \".concat(handle, \" tag handle is non-default and was not declared.\"));\n }\n\n if (!suffix) throw new YAMLSemanticError(node, \"The \".concat(handle, \" tag has no suffix.\"));\n\n if (handle === '!' && (doc.version || doc.options.version) === '1.0') {\n if (suffix[0] === '^') {\n doc.warnings.push(new YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));\n return suffix;\n }\n\n if (/[:/]/.test(suffix)) {\n // word/foo -> tag:word.yaml.org,2002:foo\n var vocab = suffix.match(/^([a-z0-9-]+)\\/(.*)/i);\n return vocab ? \"tag:\".concat(vocab[1], \".yaml.org,2002:\").concat(vocab[2]) : \"tag:\".concat(suffix);\n }\n }\n\n return prefix.prefix + decodeURIComponent(suffix);\n}\n\nfunction resolveTagName(doc, node) {\n var tag = node.tag,\n type = node.type;\n var nonSpecific = false;\n\n if (tag) {\n var handle = tag.handle,\n suffix = tag.suffix,\n verbatim = tag.verbatim;\n\n if (verbatim) {\n if (verbatim !== '!' && verbatim !== '!!') return verbatim;\n var msg = \"Verbatim tags aren't resolved, so \".concat(verbatim, \" is invalid.\");\n doc.errors.push(new YAMLSemanticError(node, msg));\n } else if (handle === '!' && !suffix) {\n nonSpecific = true;\n } else {\n try {\n return resolveTagHandle(doc, node);\n } catch (error) {\n doc.errors.push(error);\n }\n }\n }\n\n switch (type) {\n case Type.BLOCK_FOLDED:\n case Type.BLOCK_LITERAL:\n case Type.QUOTE_DOUBLE:\n case Type.QUOTE_SINGLE:\n return defaultTags.STR;\n\n case Type.FLOW_MAP:\n case Type.MAP:\n return defaultTags.MAP;\n\n case Type.FLOW_SEQ:\n case Type.SEQ:\n return defaultTags.SEQ;\n\n case Type.PLAIN:\n return nonSpecific ? defaultTags.STR : null;\n\n default:\n return null;\n }\n}\n\nfunction resolveByTagName(doc, node, tagName) {\n var tags = doc.schema.tags;\n var matchWithTest = [];\n\n var _iterator = _createForOfIteratorHelper(tags),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var tag = _step.value;\n\n if (tag.tag === tagName) {\n if (tag.test) matchWithTest.push(tag);else {\n var res = tag.resolve(doc, node);\n return res instanceof Collection ? res : new Scalar(res);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var str = resolveString(doc, node);\n if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback);\n return null;\n}\n\nfunction getFallbackTagName(_ref) {\n var type = _ref.type;\n\n switch (type) {\n case Type.FLOW_MAP:\n case Type.MAP:\n return defaultTags.MAP;\n\n case Type.FLOW_SEQ:\n case Type.SEQ:\n return defaultTags.SEQ;\n\n default:\n return defaultTags.STR;\n }\n}\n\nfunction resolveTag(doc, node, tagName) {\n try {\n var res = resolveByTagName(doc, node, tagName);\n\n if (res) {\n if (tagName && node.tag) res.tag = tagName;\n return res;\n }\n } catch (error) {\n /* istanbul ignore if */\n if (!error.source) error.source = node;\n doc.errors.push(error);\n return null;\n }\n\n try {\n var fallback = getFallbackTagName(node);\n if (!fallback) throw new Error(\"The tag \".concat(tagName, \" is unavailable\"));\n var msg = \"The tag \".concat(tagName, \" is unavailable, falling back to \").concat(fallback);\n doc.warnings.push(new YAMLWarning(node, msg));\n\n var _res = resolveByTagName(doc, node, fallback);\n\n _res.tag = tagName;\n return _res;\n } catch (error) {\n var refError = new YAMLReferenceError(node, error.message);\n refError.stack = error.stack;\n doc.errors.push(refError);\n return null;\n }\n}\n\nvar isCollectionItem = function isCollectionItem(node) {\n if (!node) return false;\n var type = node.type;\n return type === Type.MAP_KEY || type === Type.MAP_VALUE || type === Type.SEQ_ITEM;\n};\n\nfunction resolveNodeProps(errors, node) {\n var comments = {\n before: [],\n after: []\n };\n var hasAnchor = false;\n var hasTag = false;\n var props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;\n\n var _iterator = _createForOfIteratorHelper(props),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _step.value,\n start = _step$value.start,\n end = _step$value.end;\n\n switch (node.context.src[start]) {\n case Char.COMMENT:\n {\n if (!node.commentHasRequiredWhitespace(start)) {\n var msg = 'Comments must be separated from other tokens by white space characters';\n errors.push(new YAMLSemanticError(node, msg));\n }\n\n var header = node.header,\n valueRange = node.valueRange;\n var cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;\n cc.push(node.context.src.slice(start + 1, end));\n break;\n }\n // Actual anchor & tag resolution is handled by schema, here we just complain\n\n case Char.ANCHOR:\n if (hasAnchor) {\n var _msg = 'A node can have at most one anchor';\n errors.push(new YAMLSemanticError(node, _msg));\n }\n\n hasAnchor = true;\n break;\n\n case Char.TAG:\n if (hasTag) {\n var _msg2 = 'A node can have at most one tag';\n errors.push(new YAMLSemanticError(node, _msg2));\n }\n\n hasTag = true;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return {\n comments: comments,\n hasAnchor: hasAnchor,\n hasTag: hasTag\n };\n}\n\nfunction resolveNodeValue(doc, node) {\n var anchors = doc.anchors,\n errors = doc.errors,\n schema = doc.schema;\n\n if (node.type === Type.ALIAS) {\n var name = node.rawValue;\n var src = anchors.getNode(name);\n\n if (!src) {\n var msg = \"Aliased anchor not found: \".concat(name);\n errors.push(new YAMLReferenceError(node, msg));\n return null;\n } // Lazy resolution for circular references\n\n\n var res = new Alias(src);\n\n anchors._cstAliases.push(res);\n\n return res;\n }\n\n var tagName = resolveTagName(doc, node);\n if (tagName) return resolveTag(doc, node, tagName);\n\n if (node.type !== Type.PLAIN) {\n var _msg3 = \"Failed to resolve \".concat(node.type, \" node here\");\n\n errors.push(new YAMLSyntaxError(node, _msg3));\n return null;\n }\n\n try {\n var str = resolveString(doc, node);\n return resolveScalar(str, schema.tags, schema.tags.scalarFallback);\n } catch (error) {\n if (!error.source) error.source = node;\n errors.push(error);\n return null;\n }\n} // sets node.resolved on success\n\n\nfunction resolveNode(doc, node) {\n if (!node) return null;\n if (node.error) doc.errors.push(node.error);\n\n var _resolveNodeProps = resolveNodeProps(doc.errors, node),\n comments = _resolveNodeProps.comments,\n hasAnchor = _resolveNodeProps.hasAnchor,\n hasTag = _resolveNodeProps.hasTag;\n\n if (hasAnchor) {\n var anchors = doc.anchors;\n var name = node.anchor;\n var prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor\n // name have already been resolved, so it may safely be renamed.\n\n if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as\n // anchors need to be available during resolution to allow for\n // circular references.\n\n anchors.map[name] = node;\n }\n\n if (node.type === Type.ALIAS && (hasAnchor || hasTag)) {\n var msg = 'An alias node must not specify any properties';\n doc.errors.push(new YAMLSemanticError(node, msg));\n }\n\n var res = resolveNodeValue(doc, node);\n\n if (res) {\n res.range = [node.range.start, node.range.end];\n if (doc.options.keepCstNodes) res.cstNode = node;\n if (doc.options.keepNodeTypes) res.type = node.type;\n var cb = comments.before.join('\\n');\n\n if (cb) {\n res.commentBefore = res.commentBefore ? \"\".concat(res.commentBefore, \"\\n\").concat(cb) : cb;\n }\n\n var ca = comments.after.join('\\n');\n if (ca) res.comment = res.comment ? \"\".concat(res.comment, \"\\n\").concat(ca) : ca;\n }\n\n return node.resolved = res;\n}\n\nfunction resolveMap(doc, cst) {\n if (cst.type !== Type.MAP && cst.type !== Type.FLOW_MAP) {\n var msg = \"A \".concat(cst.type, \" node cannot be resolved as a mapping\");\n doc.errors.push(new YAMLSyntaxError(cst, msg));\n return null;\n }\n\n var _ref = cst.type === Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst),\n comments = _ref.comments,\n items = _ref.items;\n\n var map = new YAMLMap();\n map.items = items;\n resolveComments(map, comments);\n var hasCollectionKey = false;\n\n for (var i = 0; i < items.length; ++i) {\n var iKey = items[i].key;\n if (iKey instanceof Collection) hasCollectionKey = true;\n\n if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {\n items[i] = new Merge(items[i]);\n var sources = items[i].value.items;\n var error = null;\n sources.some(function (node) {\n if (node instanceof Alias) {\n // During parsing, alias sources are CST nodes; to account for\n // circular references their resolved values can't be used here.\n var type = node.source.type;\n if (type === Type.MAP || type === Type.FLOW_MAP) return false;\n return error = 'Merge nodes aliases can only point to maps';\n }\n\n return error = 'Merge nodes can only have Alias nodes as values';\n });\n if (error) doc.errors.push(new YAMLSemanticError(cst, error));\n } else {\n for (var j = i + 1; j < items.length; ++j) {\n var jKey = items[j].key;\n\n if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) {\n var _msg = \"Map keys must be unique; \\\"\".concat(iKey, \"\\\" is repeated\");\n\n doc.errors.push(new YAMLSemanticError(cst, _msg));\n break;\n }\n }\n }\n }\n\n if (hasCollectionKey && !doc.options.mapAsMap) {\n var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n doc.warnings.push(new YAMLWarning(cst, warn));\n }\n\n cst.resolved = map;\n return map;\n}\n\nvar valueHasPairComment = function valueHasPairComment(_ref2) {\n var _ref2$context = _ref2.context,\n lineStart = _ref2$context.lineStart,\n node = _ref2$context.node,\n src = _ref2$context.src,\n props = _ref2.props;\n if (props.length === 0) return false;\n var start = props[0].start;\n if (node && start > node.valueRange.start) return false;\n if (src[start] !== Char.COMMENT) return false;\n\n for (var i = lineStart; i < start; ++i) {\n if (src[i] === '\\n') return false;\n }\n\n return true;\n};\n\nfunction resolvePairComment(item, pair) {\n if (!valueHasPairComment(item)) return;\n var comment = item.getPropValue(0, Char.COMMENT, true);\n var found = false;\n var cb = pair.value.commentBefore;\n\n if (cb && cb.startsWith(comment)) {\n pair.value.commentBefore = cb.substr(comment.length + 1);\n found = true;\n } else {\n var cc = pair.value.comment;\n\n if (!item.node && cc && cc.startsWith(comment)) {\n pair.value.comment = cc.substr(comment.length + 1);\n found = true;\n }\n }\n\n if (found) pair.comment = comment;\n}\n\nfunction resolveBlockMapItems(doc, cst) {\n var comments = [];\n var items = [];\n var key = undefined;\n var keyStart = null;\n\n for (var i = 0; i < cst.items.length; ++i) {\n var item = cst.items[i];\n\n switch (item.type) {\n case Type.BLANK_LINE:\n comments.push({\n afterKey: !!key,\n before: items.length\n });\n break;\n\n case Type.COMMENT:\n comments.push({\n afterKey: !!key,\n before: items.length,\n comment: item.comment\n });\n break;\n\n case Type.MAP_KEY:\n if (key !== undefined) items.push(new Pair(key));\n if (item.error) doc.errors.push(item.error);\n key = resolveNode(doc, item.node);\n keyStart = null;\n break;\n\n case Type.MAP_VALUE:\n {\n if (key === undefined) key = null;\n if (item.error) doc.errors.push(item.error);\n\n if (!item.context.atLineStart && item.node && item.node.type === Type.MAP && !item.node.context.atLineStart) {\n var msg = 'Nested mappings are not allowed in compact mappings';\n doc.errors.push(new YAMLSemanticError(item.node, msg));\n }\n\n var valueNode = item.node;\n\n if (!valueNode && item.props.length > 0) {\n // Comments on an empty mapping value need to be preserved, so we\n // need to construct a minimal empty node here to use instead of the\n // missing `item.node`. -- eemeli/yaml#19\n valueNode = new PlainValue(Type.PLAIN, []);\n valueNode.context = {\n parent: item,\n src: item.context.src\n };\n var pos = item.range.start + 1;\n valueNode.range = {\n start: pos,\n end: pos\n };\n valueNode.valueRange = {\n start: pos,\n end: pos\n };\n\n if (typeof item.range.origStart === 'number') {\n var origPos = item.range.origStart + 1;\n valueNode.range.origStart = valueNode.range.origEnd = origPos;\n valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;\n }\n }\n\n var pair = new Pair(key, resolveNode(doc, valueNode));\n resolvePairComment(item, pair);\n items.push(pair);\n\n if (key && typeof keyStart === 'number') {\n if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n }\n\n key = undefined;\n keyStart = null;\n }\n break;\n\n default:\n if (key !== undefined) items.push(new Pair(key));\n key = resolveNode(doc, item);\n keyStart = item.range.start;\n if (item.error) doc.errors.push(item.error);\n\n next: for (var j = i + 1;; ++j) {\n var nextItem = cst.items[j];\n\n switch (nextItem && nextItem.type) {\n case Type.BLANK_LINE:\n case Type.COMMENT:\n continue next;\n\n case Type.MAP_VALUE:\n break next;\n\n default:\n {\n var _msg2 = 'Implicit map keys need to be followed by map values';\n doc.errors.push(new YAMLSemanticError(item, _msg2));\n break next;\n }\n }\n }\n\n if (item.valueRangeContainsNewline) {\n var _msg3 = 'Implicit map keys need to be on a single line';\n doc.errors.push(new YAMLSemanticError(item, _msg3));\n }\n\n }\n }\n\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments: comments,\n items: items\n };\n}\n\nfunction resolveFlowMapItems(doc, cst) {\n var comments = [];\n var items = [];\n var key = undefined;\n var explicitKey = false;\n var next = '{';\n\n for (var i = 0; i < cst.items.length; ++i) {\n var item = cst.items[i];\n\n if (typeof item.char === 'string') {\n var char = item.char,\n offset = item.offset;\n\n if (char === '?' && key === undefined && !explicitKey) {\n explicitKey = true;\n next = ':';\n continue;\n }\n\n if (char === ':') {\n if (key === undefined) key = null;\n\n if (next === ':') {\n next = ',';\n continue;\n }\n } else {\n if (explicitKey) {\n if (key === undefined && char !== ',') key = null;\n explicitKey = false;\n }\n\n if (key !== undefined) {\n items.push(new Pair(key));\n key = undefined;\n\n if (char === ',') {\n next = ':';\n continue;\n }\n }\n }\n\n if (char === '}') {\n if (i === cst.items.length - 1) continue;\n } else if (char === next) {\n next = ':';\n continue;\n }\n\n var msg = \"Flow map contains an unexpected \".concat(char);\n var err = new YAMLSyntaxError(cst, msg);\n err.offset = offset;\n doc.errors.push(err);\n } else if (item.type === Type.BLANK_LINE) {\n comments.push({\n afterKey: !!key,\n before: items.length\n });\n } else if (item.type === Type.COMMENT) {\n checkFlowCommentSpace(doc.errors, item);\n comments.push({\n afterKey: !!key,\n before: items.length,\n comment: item.comment\n });\n } else if (key === undefined) {\n if (next === ',') doc.errors.push(new YAMLSemanticError(item, 'Separator , missing in flow map'));\n key = resolveNode(doc, item);\n } else {\n if (next !== ',') doc.errors.push(new YAMLSemanticError(item, 'Indicator : missing in flow map entry'));\n items.push(new Pair(key, resolveNode(doc, item)));\n key = undefined;\n explicitKey = false;\n }\n }\n\n checkFlowCollectionEnd(doc.errors, cst);\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments: comments,\n items: items\n };\n}\n\nfunction resolveSeq(doc, cst) {\n if (cst.type !== Type.SEQ && cst.type !== Type.FLOW_SEQ) {\n var msg = \"A \".concat(cst.type, \" node cannot be resolved as a sequence\");\n doc.errors.push(new YAMLSyntaxError(cst, msg));\n return null;\n }\n\n var _ref = cst.type === Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst),\n comments = _ref.comments,\n items = _ref.items;\n\n var seq = new YAMLSeq();\n seq.items = items;\n resolveComments(seq, comments);\n\n if (!doc.options.mapAsMap && items.some(function (it) {\n return it instanceof Pair && it.key instanceof Collection;\n })) {\n var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n doc.warnings.push(new YAMLWarning(cst, warn));\n }\n\n cst.resolved = seq;\n return seq;\n}\n\nfunction resolveBlockSeqItems(doc, cst) {\n var comments = [];\n var items = [];\n\n for (var i = 0; i < cst.items.length; ++i) {\n var item = cst.items[i];\n\n switch (item.type) {\n case Type.BLANK_LINE:\n comments.push({\n before: items.length\n });\n break;\n\n case Type.COMMENT:\n comments.push({\n comment: item.comment,\n before: items.length\n });\n break;\n\n case Type.SEQ_ITEM:\n if (item.error) doc.errors.push(item.error);\n items.push(resolveNode(doc, item.node));\n\n if (item.hasProps) {\n var msg = 'Sequence items cannot have tags or anchors before the - indicator';\n doc.errors.push(new YAMLSemanticError(item, msg));\n }\n\n break;\n\n default:\n if (item.error) doc.errors.push(item.error);\n doc.errors.push(new YAMLSyntaxError(item, \"Unexpected \".concat(item.type, \" node in sequence\")));\n }\n }\n\n return {\n comments: comments,\n items: items\n };\n}\n\nfunction resolveFlowSeqItems(doc, cst) {\n var comments = [];\n var items = [];\n var explicitKey = false;\n var key = undefined;\n var keyStart = null;\n var next = '[';\n var prevItem = null;\n\n for (var i = 0; i < cst.items.length; ++i) {\n var item = cst.items[i];\n\n if (typeof item.char === 'string') {\n var char = item.char,\n offset = item.offset;\n\n if (char !== ':' && (explicitKey || key !== undefined)) {\n if (explicitKey && key === undefined) key = next ? items.pop() : null;\n items.push(new Pair(key));\n explicitKey = false;\n key = undefined;\n keyStart = null;\n }\n\n if (char === next) {\n next = null;\n } else if (!next && char === '?') {\n explicitKey = true;\n } else if (next !== '[' && char === ':' && key === undefined) {\n if (next === ',') {\n key = items.pop();\n\n if (key instanceof Pair) {\n var msg = 'Chaining flow sequence pairs is invalid';\n var err = new YAMLSemanticError(cst, msg);\n err.offset = offset;\n doc.errors.push(err);\n }\n\n if (!explicitKey && typeof keyStart === 'number') {\n var keyEnd = item.range ? item.range.start : item.offset;\n if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n var src = prevItem.context.src;\n\n for (var _i = keyStart; _i < keyEnd; ++_i) {\n if (src[_i] === '\\n') {\n var _msg = 'Implicit keys of flow sequence pairs need to be on a single line';\n doc.errors.push(new YAMLSemanticError(prevItem, _msg));\n break;\n }\n }\n }\n } else {\n key = null;\n }\n\n keyStart = null;\n explicitKey = false;\n next = null;\n } else if (next === '[' || char !== ']' || i < cst.items.length - 1) {\n var _msg2 = \"Flow sequence contains an unexpected \".concat(char);\n\n var _err = new YAMLSyntaxError(cst, _msg2);\n\n _err.offset = offset;\n doc.errors.push(_err);\n }\n } else if (item.type === Type.BLANK_LINE) {\n comments.push({\n before: items.length\n });\n } else if (item.type === Type.COMMENT) {\n checkFlowCommentSpace(doc.errors, item);\n comments.push({\n comment: item.comment,\n before: items.length\n });\n } else {\n if (next) {\n var _msg3 = \"Expected a \".concat(next, \" in flow sequence\");\n\n doc.errors.push(new YAMLSemanticError(item, _msg3));\n }\n\n var value = resolveNode(doc, item);\n\n if (key === undefined) {\n items.push(value);\n prevItem = item;\n } else {\n items.push(new Pair(key, value));\n key = undefined;\n }\n\n keyStart = item.range.start;\n next = ',';\n }\n }\n\n checkFlowCollectionEnd(doc.errors, cst);\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments: comments,\n items: items\n };\n}\n\nexport { Alias as A, Collection as C, Merge as M, Node as N, Pair as P, Scalar as S, YAMLSeq as Y, boolOptions as a, binaryOptions as b, stringifyString as c, YAMLMap as d, isEmptyPath as e, addComment as f, resolveMap as g, resolveSeq as h, intOptions as i, resolveString as j, stringifyNumber as k, findPair as l, nullOptions as n, resolveNode as r, strOptions as s, toJSON as t };\n","import { o as YAMLReferenceError, T as Type, g as YAMLSemanticError, _ as _createForOfIteratorHelper, e as _defineProperty, j as _inherits, k as _createSuper, c as _classCallCheck, p as _assertThisInitialized, b as _createClass, a as _typeof, l as _get, m as _getPrototypeOf } from './PlainValue-b8036b75.js';\nimport { j as resolveString, b as binaryOptions, c as stringifyString, h as resolveSeq, P as Pair, d as YAMLMap, Y as YAMLSeq, t as toJSON, S as Scalar, l as findPair, g as resolveMap, k as stringifyNumber } from './resolveSeq-492ab440.js';\n\n/* global atob, btoa, Buffer */\nvar binary = {\n identify: function identify(value) {\n return value instanceof Uint8Array;\n },\n // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve: function resolve(doc, node) {\n var src = resolveString(doc, node);\n\n if (typeof Buffer === 'function') {\n return Buffer.from(src, 'base64');\n } else if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n var str = atob(src.replace(/[\\n\\r]/g, ''));\n var buffer = new Uint8Array(str.length);\n\n for (var i = 0; i < str.length; ++i) {\n buffer[i] = str.charCodeAt(i);\n }\n\n return buffer;\n } else {\n var msg = 'This environment does not support reading binary tags; either Buffer or atob is required';\n doc.errors.push(new YAMLReferenceError(node, msg));\n return null;\n }\n },\n options: binaryOptions,\n stringify: function stringify(_ref, ctx, onComment, onChompKeep) {\n var comment = _ref.comment,\n type = _ref.type,\n value = _ref.value;\n var src;\n\n if (typeof Buffer === 'function') {\n src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');\n } else if (typeof btoa === 'function') {\n var s = '';\n\n for (var i = 0; i < value.length; ++i) {\n s += String.fromCharCode(value[i]);\n }\n\n src = btoa(s);\n } else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n\n if (!type) type = binaryOptions.defaultType;\n\n if (type === Type.QUOTE_DOUBLE) {\n value = src;\n } else {\n var lineWidth = binaryOptions.lineWidth;\n var n = Math.ceil(src.length / lineWidth);\n var lines = new Array(n);\n\n for (var _i = 0, o = 0; _i < n; ++_i, o += lineWidth) {\n lines[_i] = src.substr(o, lineWidth);\n }\n\n value = lines.join(type === Type.BLOCK_LITERAL ? '\\n' : ' ');\n }\n\n return stringifyString({\n comment: comment,\n type: type,\n value: value\n }, ctx, onComment, onChompKeep);\n }\n};\n\nfunction parsePairs(doc, cst) {\n var seq = resolveSeq(doc, cst);\n\n for (var i = 0; i < seq.items.length; ++i) {\n var item = seq.items[i];\n if (item instanceof Pair) continue;else if (item instanceof YAMLMap) {\n if (item.items.length > 1) {\n var msg = 'Each pair must have its own sequence indicator';\n throw new YAMLSemanticError(cst, msg);\n }\n\n var pair = item.items[0] || new Pair();\n if (item.commentBefore) pair.commentBefore = pair.commentBefore ? \"\".concat(item.commentBefore, \"\\n\").concat(pair.commentBefore) : item.commentBefore;\n if (item.comment) pair.comment = pair.comment ? \"\".concat(item.comment, \"\\n\").concat(pair.comment) : item.comment;\n item = pair;\n }\n seq.items[i] = item instanceof Pair ? item : new Pair(item);\n }\n\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n var pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n\n var _iterator = _createForOfIteratorHelper(iterable),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var it = _step.value;\n var key = void 0,\n value = void 0;\n\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n } else throw new TypeError(\"Expected [key, value] tuple: \".concat(it));\n } else if (it && it instanceof Object) {\n var keys = Object.keys(it);\n\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n } else throw new TypeError(\"Expected { key: value } tuple: \".concat(it));\n } else {\n key = it;\n }\n\n var pair = schema.createPair(key, value, ctx);\n pairs.items.push(pair);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return pairs;\n}\nvar pairs = {\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: parsePairs,\n createNode: createPairs\n};\n\nvar YAMLOMap = /*#__PURE__*/function (_YAMLSeq) {\n _inherits(YAMLOMap, _YAMLSeq);\n\n var _super = _createSuper(YAMLOMap);\n\n function YAMLOMap() {\n var _this;\n\n _classCallCheck(this, YAMLOMap);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"add\", YAMLMap.prototype.add.bind(_assertThisInitialized(_this)));\n\n _defineProperty(_assertThisInitialized(_this), \"delete\", YAMLMap.prototype.delete.bind(_assertThisInitialized(_this)));\n\n _defineProperty(_assertThisInitialized(_this), \"get\", YAMLMap.prototype.get.bind(_assertThisInitialized(_this)));\n\n _defineProperty(_assertThisInitialized(_this), \"has\", YAMLMap.prototype.has.bind(_assertThisInitialized(_this)));\n\n _defineProperty(_assertThisInitialized(_this), \"set\", YAMLMap.prototype.set.bind(_assertThisInitialized(_this)));\n\n _this.tag = YAMLOMap.tag;\n return _this;\n }\n\n _createClass(YAMLOMap, [{\n key: \"toJSON\",\n value: function toJSON$1(_, ctx) {\n var map = new Map();\n if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n var _iterator = _createForOfIteratorHelper(this.items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var pair = _step.value;\n var key = void 0,\n value = void 0;\n\n if (pair instanceof Pair) {\n key = toJSON(pair.key, '', ctx);\n value = toJSON(pair.value, key, ctx);\n } else {\n key = toJSON(pair, '', ctx);\n }\n\n if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return map;\n }\n }]);\n\n return YAMLOMap;\n}(YAMLSeq);\n\n_defineProperty(YAMLOMap, \"tag\", 'tag:yaml.org,2002:omap');\n\nfunction parseOMap(doc, cst) {\n var pairs = parsePairs(doc, cst);\n var seenKeys = [];\n\n var _iterator2 = _createForOfIteratorHelper(pairs.items),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var key = _step2.value.key;\n\n if (key instanceof Scalar) {\n if (seenKeys.includes(key.value)) {\n var msg = 'Ordered maps must not include duplicate keys';\n throw new YAMLSemanticError(cst, msg);\n } else {\n seenKeys.push(key.value);\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return Object.assign(new YAMLOMap(), pairs);\n}\n\nfunction createOMap(schema, iterable, ctx) {\n var pairs = createPairs(schema, iterable, ctx);\n var omap = new YAMLOMap();\n omap.items = pairs.items;\n return omap;\n}\n\nvar omap = {\n identify: function identify(value) {\n return value instanceof Map;\n },\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve: parseOMap,\n createNode: createOMap\n};\n\nvar YAMLSet = /*#__PURE__*/function (_YAMLMap) {\n _inherits(YAMLSet, _YAMLMap);\n\n var _super = _createSuper(YAMLSet);\n\n function YAMLSet() {\n var _this;\n\n _classCallCheck(this, YAMLSet);\n\n _this = _super.call(this);\n _this.tag = YAMLSet.tag;\n return _this;\n }\n\n _createClass(YAMLSet, [{\n key: \"add\",\n value: function add(key) {\n var pair = key instanceof Pair ? key : new Pair(key);\n var prev = findPair(this.items, pair.key);\n if (!prev) this.items.push(pair);\n }\n }, {\n key: \"get\",\n value: function get(key, keepPair) {\n var pair = findPair(this.items, key);\n return !keepPair && pair instanceof Pair ? pair.key instanceof Scalar ? pair.key.value : pair.key : pair;\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n if (typeof value !== 'boolean') throw new Error(\"Expected boolean value for set(key, value) in a YAML set, not \".concat(_typeof(value)));\n var prev = findPair(this.items, key);\n\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n } else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(_, ctx) {\n return _get(_getPrototypeOf(YAMLSet.prototype), \"toJSON\", this).call(this, _, ctx, Set);\n }\n }, {\n key: \"toString\",\n value: function toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n if (this.hasAllNullValues()) return _get(_getPrototypeOf(YAMLSet.prototype), \"toString\", this).call(this, ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');\n }\n }]);\n\n return YAMLSet;\n}(YAMLMap);\n\n_defineProperty(YAMLSet, \"tag\", 'tag:yaml.org,2002:set');\n\nfunction parseSet(doc, cst) {\n var map = resolveMap(doc, cst);\n if (!map.hasAllNullValues()) throw new YAMLSemanticError(cst, 'Set items must all have null values');\n return Object.assign(new YAMLSet(), map);\n}\n\nfunction createSet(schema, iterable, ctx) {\n var set = new YAMLSet();\n\n var _iterator = _createForOfIteratorHelper(iterable),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n set.items.push(schema.createPair(value, null, ctx));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return set;\n}\n\nvar set = {\n identify: function identify(value) {\n return value instanceof Set;\n },\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n resolve: parseSet,\n createNode: createSet\n};\n\nvar parseSexagesimal = function parseSexagesimal(sign, parts) {\n var n = parts.split(':').reduce(function (n, p) {\n return n * 60 + Number(p);\n }, 0);\n return sign === '-' ? -n : n;\n}; // hhhh:mm:ss.sss\n\n\nvar stringifySexagesimal = function stringifySexagesimal(_ref) {\n var value = _ref.value;\n if (isNaN(value) || !isFinite(value)) return stringifyNumber(value);\n var sign = '';\n\n if (value < 0) {\n sign = '-';\n value = Math.abs(value);\n }\n\n var parts = [value % 60]; // seconds, including ms\n\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n } else {\n value = Math.round((value - parts[0]) / 60);\n parts.unshift(value % 60); // minutes\n\n if (value >= 60) {\n value = Math.round((value - parts[0]) / 60);\n parts.unshift(value); // hours\n }\n }\n\n return sign + parts.map(function (n) {\n return n < 10 ? '0' + String(n) : String(n);\n }).join(':').replace(/000000\\d*$/, '') // % 60 may introduce error\n ;\n};\n\nvar intTime = {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,\n resolve: function resolve(str, sign, parts) {\n return parseSexagesimal(sign, parts.replace(/_/g, ''));\n },\n stringify: stringifySexagesimal\n};\nvar floatTime = {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,\n resolve: function resolve(str, sign, parts) {\n return parseSexagesimal(sign, parts.replace(/_/g, ''));\n },\n stringify: stringifySexagesimal\n};\nvar timestamp = {\n identify: function identify(value) {\n return value instanceof Date;\n },\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?' + ')$'),\n resolve: function resolve(str, year, month, day, hour, minute, second, millisec, tz) {\n if (millisec) millisec = (millisec + '00').substr(1, 3);\n var date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);\n\n if (tz && tz !== 'Z') {\n var d = parseSexagesimal(tz[0], tz.slice(1));\n if (Math.abs(d) < 30) d *= 60;\n date -= 60000 * d;\n }\n\n return new Date(date);\n },\n stringify: function stringify(_ref2) {\n var value = _ref2.value;\n return value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '');\n }\n};\n\n/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */\nfunction shouldWarn(deprecation) {\n var env = typeof process !== 'undefined' && process.env || {};\n\n if (deprecation) {\n if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;\n return !env.YAML_SILENCE_DEPRECATION_WARNINGS;\n }\n\n if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;\n return !env.YAML_SILENCE_WARNINGS;\n}\n\nfunction warn(warning, type) {\n if (shouldWarn(false)) {\n var emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to\n // https://github.com/facebook/jest/issues/2549\n\n if (emit) emit(warning, type);else {\n // eslint-disable-next-line no-console\n console.warn(type ? \"\".concat(type, \": \").concat(warning) : warning);\n }\n }\n}\nfunction warnFileDeprecation(filename) {\n if (shouldWarn(true)) {\n var path = filename.replace(/.*yaml[/\\\\]/i, '').replace(/\\.js$/, '').replace(/\\\\/g, '/');\n warn(\"The endpoint 'yaml/\".concat(path, \"' will be removed in a future release.\"), 'DeprecationWarning');\n }\n}\nvar warned = {};\nfunction warnOptionDeprecation(name, alternative) {\n if (!warned[name] && shouldWarn(true)) {\n warned[name] = true;\n var msg = \"The option '\".concat(name, \"' will be removed in a future release\");\n msg += alternative ? \", use '\".concat(alternative, \"' instead.\") : '.';\n warn(msg, 'DeprecationWarning');\n }\n}\n\nexport { warnOptionDeprecation as a, binary as b, warnFileDeprecation as c, floatTime as f, intTime as i, omap as o, pairs as p, set as s, timestamp as t, warn as w };\n","import { _ as _createForOfIteratorHelper, h as _slicedToArray, a as _typeof, b as _createClass, e as _defineProperty, c as _classCallCheck, d as defaultTagPrefix, n as defaultTags } from './PlainValue-b8036b75.js';\nimport { d as YAMLMap, g as resolveMap, Y as YAMLSeq, h as resolveSeq, j as resolveString, c as stringifyString, s as strOptions, S as Scalar, n as nullOptions, a as boolOptions, i as intOptions, k as stringifyNumber, N as Node, A as Alias, P as Pair } from './resolveSeq-492ab440.js';\nimport { b as binary, o as omap, p as pairs, s as set, i as intTime, f as floatTime, t as timestamp, a as warnOptionDeprecation } from './warnings-df54cb69.js';\n\nfunction createMap(schema, obj, ctx) {\n var map = new YAMLMap(schema);\n\n if (obj instanceof Map) {\n var _iterator = _createForOfIteratorHelper(obj),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n value = _step$value[1];\n\n map.items.push(schema.createPair(key, value, ctx));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (obj && _typeof(obj) === 'object') {\n for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {\n var _key = _Object$keys[_i];\n map.items.push(schema.createPair(_key, obj[_key], ctx));\n }\n }\n\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n\n return map;\n}\n\nvar map = {\n createNode: createMap,\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve: resolveMap\n};\n\nfunction createSeq(schema, obj, ctx) {\n var seq = new YAMLSeq(schema);\n\n if (obj && obj[Symbol.iterator]) {\n var _iterator = _createForOfIteratorHelper(obj),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var it = _step.value;\n var v = schema.createNode(it, ctx.wrapScalars, null, ctx);\n seq.items.push(v);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return seq;\n}\n\nvar seq = {\n createNode: createSeq,\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve: resolveSeq\n};\n\nvar string = {\n identify: function identify(value) {\n return typeof value === 'string';\n },\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: resolveString,\n stringify: function stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({\n actualString: true\n }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n },\n options: strOptions\n};\n\nvar failsafe = [map, seq, string];\n\n/* global BigInt */\n\nvar intIdentify$2 = function intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n};\n\nvar intResolve$1 = function intResolve(src, part, radix) {\n return intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);\n};\n\nfunction intStringify$1(node, radix, prefix) {\n var value = node.value;\n if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\n\nvar nullObj = {\n identify: function identify(value) {\n return value == null;\n },\n createNode: function createNode(schema, value, ctx) {\n return ctx.wrapScalars ? new Scalar(null) : null;\n },\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: function resolve() {\n return null;\n },\n options: nullOptions,\n stringify: function stringify() {\n return nullOptions.nullStr;\n }\n};\nvar boolObj = {\n identify: function identify(value) {\n return typeof value === 'boolean';\n },\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: function resolve(str) {\n return str[0] === 't' || str[0] === 'T';\n },\n options: boolOptions,\n stringify: function stringify(_ref) {\n var value = _ref.value;\n return value ? boolOptions.trueStr : boolOptions.falseStr;\n }\n};\nvar octObj = {\n identify: function identify(value) {\n return intIdentify$2(value) && value >= 0;\n },\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o([0-7]+)$/,\n resolve: function resolve(str, oct) {\n return intResolve$1(str, oct, 8);\n },\n options: intOptions,\n stringify: function stringify(node) {\n return intStringify$1(node, 8, '0o');\n }\n};\nvar intObj = {\n identify: intIdentify$2,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: function resolve(str) {\n return intResolve$1(str, str, 10);\n },\n options: intOptions,\n stringify: stringifyNumber\n};\nvar hexObj = {\n identify: function identify(value) {\n return intIdentify$2(value) && value >= 0;\n },\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x([0-9a-fA-F]+)$/,\n resolve: function resolve(str, hex) {\n return intResolve$1(str, hex, 16);\n },\n options: intOptions,\n stringify: function stringify(node) {\n return intStringify$1(node, 16, '0x');\n }\n};\nvar nanObj = {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n resolve: function resolve(str, nan) {\n return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;\n },\n stringify: stringifyNumber\n};\nvar expObj = {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: function resolve(str) {\n return parseFloat(str);\n },\n stringify: function stringify(_ref2) {\n var value = _ref2.value;\n return Number(value).toExponential();\n }\n};\nvar floatObj = {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,\n resolve: function resolve(str, frac1, frac2) {\n var frac = frac1 || frac2;\n var node = new Scalar(parseFloat(str));\n if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;\n return node;\n },\n stringify: stringifyNumber\n};\nvar core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);\n\n/* global BigInt */\n\nvar intIdentify$1 = function intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n};\n\nvar stringifyJSON = function stringifyJSON(_ref) {\n var value = _ref.value;\n return JSON.stringify(value);\n};\n\nvar json = [map, seq, {\n identify: function identify(value) {\n return typeof value === 'string';\n },\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: resolveString,\n stringify: stringifyJSON\n}, {\n identify: function identify(value) {\n return value == null;\n },\n createNode: function createNode(schema, value, ctx) {\n return ctx.wrapScalars ? new Scalar(null) : null;\n },\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: function resolve() {\n return null;\n },\n stringify: stringifyJSON\n}, {\n identify: function identify(value) {\n return typeof value === 'boolean';\n },\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true|false$/,\n resolve: function resolve(str) {\n return str === 'true';\n },\n stringify: stringifyJSON\n}, {\n identify: intIdentify$1,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: function resolve(str) {\n return intOptions.asBigInt ? BigInt(str) : parseInt(str, 10);\n },\n stringify: function stringify(_ref2) {\n var value = _ref2.value;\n return intIdentify$1(value) ? value.toString() : JSON.stringify(value);\n }\n}, {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: function resolve(str) {\n return parseFloat(str);\n },\n stringify: stringifyJSON\n}];\n\njson.scalarFallback = function (str) {\n throw new SyntaxError(\"Unresolved plain scalar \".concat(JSON.stringify(str)));\n};\n\n/* global BigInt */\n\nvar boolStringify = function boolStringify(_ref) {\n var value = _ref.value;\n return value ? boolOptions.trueStr : boolOptions.falseStr;\n};\n\nvar intIdentify = function intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n};\n\nfunction intResolve(sign, src, radix) {\n var str = src.replace(/_/g, '');\n\n if (intOptions.asBigInt) {\n switch (radix) {\n case 2:\n str = \"0b\".concat(str);\n break;\n\n case 8:\n str = \"0o\".concat(str);\n break;\n\n case 16:\n str = \"0x\".concat(str);\n break;\n }\n\n var _n = BigInt(str);\n\n return sign === '-' ? BigInt(-1) * _n : _n;\n }\n\n var n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\n\nfunction intStringify(node, radix, prefix) {\n var value = node.value;\n\n if (intIdentify(value)) {\n var str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n\n return stringifyNumber(node);\n}\n\nvar yaml11 = failsafe.concat([{\n identify: function identify(value) {\n return value == null;\n },\n createNode: function createNode(schema, value, ctx) {\n return ctx.wrapScalars ? new Scalar(null) : null;\n },\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: function resolve() {\n return null;\n },\n options: nullOptions,\n stringify: function stringify() {\n return nullOptions.nullStr;\n }\n}, {\n identify: function identify(value) {\n return typeof value === 'boolean';\n },\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: function resolve() {\n return true;\n },\n options: boolOptions,\n stringify: boolStringify\n}, {\n identify: function identify(value) {\n return typeof value === 'boolean';\n },\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,\n resolve: function resolve() {\n return false;\n },\n options: boolOptions,\n stringify: boolStringify\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^([-+]?)0b([0-1_]+)$/,\n resolve: function resolve(str, sign, bin) {\n return intResolve(sign, bin, 2);\n },\n stringify: function stringify(node) {\n return intStringify(node, 2, '0b');\n }\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^([-+]?)0([0-7_]+)$/,\n resolve: function resolve(str, sign, oct) {\n return intResolve(sign, oct, 8);\n },\n stringify: function stringify(node) {\n return intStringify(node, 8, '0');\n }\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^([-+]?)([0-9][0-9_]*)$/,\n resolve: function resolve(str, sign, abs) {\n return intResolve(sign, abs, 10);\n },\n stringify: stringifyNumber\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^([-+]?)0x([0-9a-fA-F_]+)$/,\n resolve: function resolve(str, sign, hex) {\n return intResolve(sign, hex, 16);\n },\n stringify: function stringify(node) {\n return intStringify(node, 16, '0x');\n }\n}, {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n resolve: function resolve(str, nan) {\n return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;\n },\n stringify: stringifyNumber\n}, {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: function resolve(str) {\n return parseFloat(str.replace(/_/g, ''));\n },\n stringify: function stringify(_ref2) {\n var value = _ref2.value;\n return Number(value).toExponential();\n }\n}, {\n identify: function identify(value) {\n return typeof value === 'number';\n },\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,\n resolve: function resolve(str, frac) {\n var node = new Scalar(parseFloat(str.replace(/_/g, '')));\n\n if (frac) {\n var f = frac.replace(/_/g, '');\n if (f[f.length - 1] === '0') node.minFractionDigits = f.length;\n }\n\n return node;\n },\n stringify: stringifyNumber\n}], binary, omap, pairs, set, intTime, floatTime, timestamp);\n\nvar schemas = {\n core: core,\n failsafe: failsafe,\n json: json,\n yaml11: yaml11\n};\nvar tags = {\n binary: binary,\n bool: boolObj,\n float: floatObj,\n floatExp: expObj,\n floatNaN: nanObj,\n floatTime: floatTime,\n int: intObj,\n intHex: hexObj,\n intOct: octObj,\n intTime: intTime,\n map: map,\n null: nullObj,\n omap: omap,\n pairs: pairs,\n seq: seq,\n set: set,\n timestamp: timestamp\n};\n\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n var match = tags.filter(function (t) {\n return t.tag === tagName;\n });\n var tagObj = match.find(function (t) {\n return !t.format;\n }) || match[0];\n if (!tagObj) throw new Error(\"Tag \".concat(tagName, \" not found\"));\n return tagObj;\n } // TODO: deprecate/remove class check\n\n\n return tags.find(function (t) {\n return (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format;\n });\n}\n\nfunction createNode(value, tagName, ctx) {\n if (value instanceof Node) return value;\n var defaultPrefix = ctx.defaultPrefix,\n onTagObj = ctx.onTagObj,\n prevObjects = ctx.prevObjects,\n schema = ctx.schema,\n wrapScalars = ctx.wrapScalars;\n if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);\n var tagObj = findTagObject(value, tagName, schema.tags);\n\n if (!tagObj) {\n if (typeof value.toJSON === 'function') value = value.toJSON();\n if (!value || _typeof(value) !== 'object') return wrapScalars ? new Scalar(value) : value;\n tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;\n }\n\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n } // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `obj` wrapper allows for circular references to resolve.\n\n\n var obj = {\n value: undefined,\n node: undefined\n };\n\n if (value && _typeof(value) === 'object' && prevObjects) {\n var prev = prevObjects.get(value);\n\n if (prev) {\n var alias = new Alias(prev); // leaves source dirty; must be cleaned by caller\n\n ctx.aliasNodes.push(alias); // defined along with prevObjects\n\n return alias;\n }\n\n obj.value = value;\n prevObjects.set(value, obj);\n }\n\n obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new Scalar(value) : value;\n if (tagName && obj.node instanceof Node) obj.node.tag = tagName;\n return obj.node;\n}\n\nfunction getSchemaTags(schemas, knownTags, customTags, schemaId) {\n var tags = schemas[schemaId.replace(/\\W/g, '')]; // 'yaml-1.1' -> 'yaml11'\n\n if (!tags) {\n var keys = Object.keys(schemas).map(function (key) {\n return JSON.stringify(key);\n }).join(', ');\n throw new Error(\"Unknown schema \\\"\".concat(schemaId, \"\\\"; use one of \").concat(keys));\n }\n\n if (Array.isArray(customTags)) {\n var _iterator = _createForOfIteratorHelper(customTags),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var tag = _step.value;\n tags = tags.concat(tag);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n\n for (var i = 0; i < tags.length; ++i) {\n var _tag = tags[i];\n\n if (typeof _tag === 'string') {\n var tagObj = knownTags[_tag];\n\n if (!tagObj) {\n var _keys = Object.keys(knownTags).map(function (key) {\n return JSON.stringify(key);\n }).join(', ');\n\n throw new Error(\"Unknown custom tag \\\"\".concat(_tag, \"\\\"; use one of \").concat(_keys));\n }\n\n tags[i] = tagObj;\n }\n }\n\n return tags;\n}\n\nvar sortMapEntriesByKey = function sortMapEntriesByKey(a, b) {\n return a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\n};\n\nvar Schema = /*#__PURE__*/function () {\n // TODO: remove in v2\n // TODO: remove in v2\n function Schema(_ref) {\n var customTags = _ref.customTags,\n merge = _ref.merge,\n schema = _ref.schema,\n sortMapEntries = _ref.sortMapEntries,\n deprecatedCustomTags = _ref.tags;\n\n _classCallCheck(this, Schema);\n\n this.merge = !!merge;\n this.name = schema;\n this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;\n if (!customTags && deprecatedCustomTags) warnOptionDeprecation('tags', 'customTags');\n this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);\n }\n\n _createClass(Schema, [{\n key: \"createNode\",\n value: function createNode$1(value, wrapScalars, tagName, ctx) {\n var baseCtx = {\n defaultPrefix: Schema.defaultPrefix,\n schema: this,\n wrapScalars: wrapScalars\n };\n var createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;\n return createNode(value, tagName, createCtx);\n }\n }, {\n key: \"createPair\",\n value: function createPair(key, value, ctx) {\n if (!ctx) ctx = {\n wrapScalars: true\n };\n var k = this.createNode(key, ctx.wrapScalars, null, ctx);\n var v = this.createNode(value, ctx.wrapScalars, null, ctx);\n return new Pair(k, v);\n }\n }]);\n\n return Schema;\n}();\n\n_defineProperty(Schema, \"defaultPrefix\", defaultTagPrefix);\n\n_defineProperty(Schema, \"defaultTags\", defaultTags);\n\nexport { Schema as S };\n","import { d as defaultTagPrefix, _ as _createForOfIteratorHelper, a as _typeof, b as _createClass, c as _classCallCheck, e as _defineProperty, Y as YAMLSyntaxError, T as Type, f as YAMLWarning, g as YAMLSemanticError, h as _slicedToArray, i as YAMLError, j as _inherits, k as _createSuper } from './PlainValue-b8036b75.js';\nimport { parse as parse$1 } from './parse-cst.js';\nimport { b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions, N as Node, P as Pair, S as Scalar, c as stringifyString, A as Alias, Y as YAMLSeq, d as YAMLMap, M as Merge, C as Collection, r as resolveNode, e as isEmptyPath, t as toJSON, f as addComment } from './resolveSeq-492ab440.js';\nimport { S as Schema } from './Schema-e94716c8.js';\nimport { w as warn } from './warnings-df54cb69.js';\n\nvar defaultOptions = {\n anchorPrefix: 'a',\n customTags: null,\n indent: 2,\n indentSeq: true,\n keepCstNodes: false,\n keepNodeTypes: true,\n keepBlobsInJSON: true,\n mapAsMap: false,\n maxAliasCount: 100,\n prettyErrors: false,\n // TODO Set true in v2\n simpleKeys: false,\n version: '1.2'\n};\nvar scalarOptions = {\n get binary() {\n return binaryOptions;\n },\n\n set binary(opt) {\n Object.assign(binaryOptions, opt);\n },\n\n get bool() {\n return boolOptions;\n },\n\n set bool(opt) {\n Object.assign(boolOptions, opt);\n },\n\n get int() {\n return intOptions;\n },\n\n set int(opt) {\n Object.assign(intOptions, opt);\n },\n\n get null() {\n return nullOptions;\n },\n\n set null(opt) {\n Object.assign(nullOptions, opt);\n },\n\n get str() {\n return strOptions;\n },\n\n set str(opt) {\n Object.assign(strOptions, opt);\n }\n\n};\nvar documentOptions = {\n '1.0': {\n schema: 'yaml-1.1',\n merge: true,\n tagPrefixes: [{\n handle: '!',\n prefix: defaultTagPrefix\n }, {\n handle: '!!',\n prefix: 'tag:private.yaml.org,2002:'\n }]\n },\n 1.1: {\n schema: 'yaml-1.1',\n merge: true,\n tagPrefixes: [{\n handle: '!',\n prefix: '!'\n }, {\n handle: '!!',\n prefix: defaultTagPrefix\n }]\n },\n 1.2: {\n schema: 'core',\n merge: false,\n tagPrefixes: [{\n handle: '!',\n prefix: '!'\n }, {\n handle: '!!',\n prefix: defaultTagPrefix\n }]\n }\n};\n\nfunction stringifyTag(doc, tag) {\n if ((doc.version || doc.options.version) === '1.0') {\n var priv = tag.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);\n if (priv) return '!' + priv[1];\n var vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);\n return vocab ? \"!\".concat(vocab[1], \"/\").concat(vocab[2]) : \"!\".concat(tag.replace(/^tag:/, ''));\n }\n\n var p = doc.tagPrefixes.find(function (p) {\n return tag.indexOf(p.prefix) === 0;\n });\n\n if (!p) {\n var dtp = doc.getDefaults().tagPrefixes;\n p = dtp && dtp.find(function (p) {\n return tag.indexOf(p.prefix) === 0;\n });\n }\n\n if (!p) return tag[0] === '!' ? tag : \"!<\".concat(tag, \">\");\n var suffix = tag.substr(p.prefix.length).replace(/[!,[\\]{}]/g, function (ch) {\n return {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n }[ch];\n });\n return p.handle + suffix;\n}\n\nfunction getTagObject(tags, item) {\n if (item instanceof Alias) return Alias;\n\n if (item.tag) {\n var match = tags.filter(function (t) {\n return t.tag === item.tag;\n });\n if (match.length > 0) return match.find(function (t) {\n return t.format === item.format;\n }) || match[0];\n }\n\n var tagObj, obj;\n\n if (item instanceof Scalar) {\n obj = item.value; // TODO: deprecate/remove class check\n\n var _match = tags.filter(function (t) {\n return t.identify && t.identify(obj) || t.class && obj instanceof t.class;\n });\n\n tagObj = _match.find(function (t) {\n return t.format === item.format;\n }) || _match.find(function (t) {\n return !t.format;\n });\n } else {\n obj = item;\n tagObj = tags.find(function (t) {\n return t.nodeClass && obj instanceof t.nodeClass;\n });\n }\n\n if (!tagObj) {\n var name = obj && obj.constructor ? obj.constructor.name : _typeof(obj);\n throw new Error(\"Tag not resolved for \".concat(name, \" value\"));\n }\n\n return tagObj;\n} // needs to be called before value stringifier to allow for circular anchor refs\n\n\nfunction stringifyProps(node, tagObj, _ref) {\n var anchors = _ref.anchors,\n doc = _ref.doc;\n var props = [];\n var anchor = doc.anchors.getName(node);\n\n if (anchor) {\n anchors[anchor] = node;\n props.push(\"&\".concat(anchor));\n }\n\n if (node.tag) {\n props.push(stringifyTag(doc, node.tag));\n } else if (!tagObj.default) {\n props.push(stringifyTag(doc, tagObj.tag));\n }\n\n return props.join(' ');\n}\n\nfunction stringify$1(item, ctx, onComment, onChompKeep) {\n var _ctx$doc = ctx.doc,\n anchors = _ctx$doc.anchors,\n schema = _ctx$doc.schema;\n var tagObj;\n\n if (!(item instanceof Node)) {\n var createCtx = {\n aliasNodes: [],\n onTagObj: function onTagObj(o) {\n return tagObj = o;\n },\n prevObjects: new Map()\n };\n item = schema.createNode(item, true, null, createCtx);\n\n var _iterator = _createForOfIteratorHelper(createCtx.aliasNodes),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var alias = _step.value;\n alias.source = alias.source.node;\n var name = anchors.getName(alias.source);\n\n if (!name) {\n name = anchors.newName();\n anchors.map[name] = alias.source;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n if (item instanceof Pair) return item.toString(ctx, onComment, onChompKeep);\n if (!tagObj) tagObj = getTagObject(schema.tags, item);\n var props = stringifyProps(item, tagObj, ctx);\n if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;\n var str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof Scalar ? stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);\n if (!props) return str;\n return item instanceof Scalar || str[0] === '{' || str[0] === '[' ? \"\".concat(props, \" \").concat(str) : \"\".concat(props, \"\\n\").concat(ctx.indent).concat(str);\n}\n\nvar Anchors = /*#__PURE__*/function () {\n function Anchors(prefix) {\n _classCallCheck(this, Anchors);\n\n _defineProperty(this, \"map\", Object.create(null));\n\n this.prefix = prefix;\n }\n\n _createClass(Anchors, [{\n key: \"createAlias\",\n value: function createAlias(node, name) {\n this.setAnchor(node, name);\n return new Alias(node);\n }\n }, {\n key: \"createMergePair\",\n value: function createMergePair() {\n var _this = this;\n\n var merge = new Merge();\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n merge.value.items = sources.map(function (s) {\n if (s instanceof Alias) {\n if (s.source instanceof YAMLMap) return s;\n } else if (s instanceof YAMLMap) {\n return _this.createAlias(s);\n }\n\n throw new Error('Merge sources must be Map nodes or their Aliases');\n });\n return merge;\n }\n }, {\n key: \"getName\",\n value: function getName(node) {\n var map = this.map;\n return Object.keys(map).find(function (a) {\n return map[a] === node;\n });\n }\n }, {\n key: \"getNames\",\n value: function getNames() {\n return Object.keys(this.map);\n }\n }, {\n key: \"getNode\",\n value: function getNode(name) {\n return this.map[name];\n }\n }, {\n key: \"newName\",\n value: function newName(prefix) {\n if (!prefix) prefix = this.prefix;\n var names = Object.keys(this.map);\n\n for (var i = 1; true; ++i) {\n var name = \"\".concat(prefix).concat(i);\n if (!names.includes(name)) return name;\n }\n } // During parsing, map & aliases contain CST nodes\n\n }, {\n key: \"resolveNodes\",\n value: function resolveNodes() {\n var map = this.map,\n _cstAliases = this._cstAliases;\n Object.keys(map).forEach(function (a) {\n map[a] = map[a].resolved;\n });\n\n _cstAliases.forEach(function (a) {\n a.source = a.source.resolved;\n });\n\n delete this._cstAliases;\n }\n }, {\n key: \"setAnchor\",\n value: function setAnchor(node, name) {\n if (node != null && !Anchors.validAnchorNode(node)) {\n throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');\n }\n\n if (name && /[\\x00-\\x19\\s,[\\]{}]/.test(name)) {\n throw new Error('Anchor names must not contain whitespace or control characters');\n }\n\n var map = this.map;\n var prev = node && Object.keys(map).find(function (a) {\n return map[a] === node;\n });\n\n if (prev) {\n if (!name) {\n return prev;\n } else if (prev !== name) {\n delete map[prev];\n map[name] = node;\n }\n } else {\n if (!name) {\n if (!node) return null;\n name = this.newName();\n }\n\n map[name] = node;\n }\n\n return name;\n }\n }], [{\n key: \"validAnchorNode\",\n value: function validAnchorNode(node) {\n return node instanceof Scalar || node instanceof YAMLSeq || node instanceof YAMLMap;\n }\n }]);\n\n return Anchors;\n}();\n\nvar visit = function visit(node, tags) {\n if (node && _typeof(node) === 'object') {\n var tag = node.tag;\n\n if (node instanceof Collection) {\n if (tag) tags[tag] = true;\n node.items.forEach(function (n) {\n return visit(n, tags);\n });\n } else if (node instanceof Pair) {\n visit(node.key, tags);\n visit(node.value, tags);\n } else if (node instanceof Scalar) {\n if (tag) tags[tag] = true;\n }\n }\n\n return tags;\n};\n\nvar listTagNames = function listTagNames(node) {\n return Object.keys(visit(node, {}));\n};\n\nfunction parseContents(doc, contents) {\n var comments = {\n before: [],\n after: []\n };\n var body = undefined;\n var spaceBefore = false;\n\n var _iterator = _createForOfIteratorHelper(contents),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var node = _step.value;\n\n if (node.valueRange) {\n if (body !== undefined) {\n var msg = 'Document contains trailing content not separated by a ... or --- line';\n doc.errors.push(new YAMLSyntaxError(node, msg));\n break;\n }\n\n var res = resolveNode(doc, node);\n\n if (spaceBefore) {\n res.spaceBefore = true;\n spaceBefore = false;\n }\n\n body = res;\n } else if (node.comment !== null) {\n var cc = body === undefined ? comments.before : comments.after;\n cc.push(node.comment);\n } else if (node.type === Type.BLANK_LINE) {\n spaceBefore = true;\n\n if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {\n // space-separated comments at start are parsed as document comments\n doc.commentBefore = comments.before.join('\\n');\n comments.before = [];\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n doc.contents = body || null;\n\n if (!body) {\n doc.comment = comments.before.concat(comments.after).join('\\n') || null;\n } else {\n var cb = comments.before.join('\\n');\n\n if (cb) {\n var cbNode = body instanceof Collection && body.items[0] ? body.items[0] : body;\n cbNode.commentBefore = cbNode.commentBefore ? \"\".concat(cb, \"\\n\").concat(cbNode.commentBefore) : cb;\n }\n\n doc.comment = comments.after.join('\\n') || null;\n }\n}\n\nfunction resolveTagDirective(_ref, directive) {\n var tagPrefixes = _ref.tagPrefixes;\n\n var _directive$parameters = _slicedToArray(directive.parameters, 2),\n handle = _directive$parameters[0],\n prefix = _directive$parameters[1];\n\n if (!handle || !prefix) {\n var msg = 'Insufficient parameters given for %TAG directive';\n throw new YAMLSemanticError(directive, msg);\n }\n\n if (tagPrefixes.some(function (p) {\n return p.handle === handle;\n })) {\n var _msg = 'The %TAG directive must only be given at most once per handle in the same document.';\n throw new YAMLSemanticError(directive, _msg);\n }\n\n return {\n handle: handle,\n prefix: prefix\n };\n}\n\nfunction resolveYamlDirective(doc, directive) {\n var _directive$parameters2 = _slicedToArray(directive.parameters, 1),\n version = _directive$parameters2[0];\n\n if (directive.name === 'YAML:1.0') version = '1.0';\n\n if (!version) {\n var msg = 'Insufficient parameters given for %YAML directive';\n throw new YAMLSemanticError(directive, msg);\n }\n\n if (!documentOptions[version]) {\n var v0 = doc.version || doc.options.version;\n\n var _msg2 = \"Document will be parsed as YAML \".concat(v0, \" rather than YAML \").concat(version);\n\n doc.warnings.push(new YAMLWarning(directive, _msg2));\n }\n\n return version;\n}\n\nfunction parseDirectives(doc, directives, prevDoc) {\n var directiveComments = [];\n var hasDirectives = false;\n\n var _iterator = _createForOfIteratorHelper(directives),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var directive = _step.value;\n var comment = directive.comment,\n name = directive.name;\n\n switch (name) {\n case 'TAG':\n try {\n doc.tagPrefixes.push(resolveTagDirective(doc, directive));\n } catch (error) {\n doc.errors.push(error);\n }\n\n hasDirectives = true;\n break;\n\n case 'YAML':\n case 'YAML:1.0':\n if (doc.version) {\n var msg = 'The %YAML directive must only be given at most once per document.';\n doc.errors.push(new YAMLSemanticError(directive, msg));\n }\n\n try {\n doc.version = resolveYamlDirective(doc, directive);\n } catch (error) {\n doc.errors.push(error);\n }\n\n hasDirectives = true;\n break;\n\n default:\n if (name) {\n var _msg3 = \"YAML only supports %TAG and %YAML directives, and not %\".concat(name);\n\n doc.warnings.push(new YAMLWarning(directive, _msg3));\n }\n\n }\n\n if (comment) directiveComments.push(comment);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {\n var copyTagPrefix = function copyTagPrefix(_ref2) {\n var handle = _ref2.handle,\n prefix = _ref2.prefix;\n return {\n handle: handle,\n prefix: prefix\n };\n };\n\n doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);\n doc.version = prevDoc.version;\n }\n\n doc.commentBefore = directiveComments.join('\\n') || null;\n}\n\nfunction assertCollection(contents) {\n if (contents instanceof Collection) return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nvar Document$1 = /*#__PURE__*/function () {\n function Document(options) {\n _classCallCheck(this, Document);\n\n this.anchors = new Anchors(options.anchorPrefix);\n this.commentBefore = null;\n this.comment = null;\n this.contents = null;\n this.directivesEndMarker = null;\n this.errors = [];\n this.options = options;\n this.schema = null;\n this.tagPrefixes = [];\n this.version = null;\n this.warnings = [];\n }\n\n _createClass(Document, [{\n key: \"add\",\n value: function add(value) {\n assertCollection(this.contents);\n return this.contents.add(value);\n }\n }, {\n key: \"addIn\",\n value: function addIn(path, value) {\n assertCollection(this.contents);\n this.contents.addIn(path, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n assertCollection(this.contents);\n return this.contents.delete(key);\n }\n }, {\n key: \"deleteIn\",\n value: function deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null) return false;\n this.contents = null;\n return true;\n }\n\n assertCollection(this.contents);\n return this.contents.deleteIn(path);\n }\n }, {\n key: \"getDefaults\",\n value: function getDefaults() {\n return Document.defaults[this.version] || Document.defaults[this.options.version] || {};\n }\n }, {\n key: \"get\",\n value: function get(key, keepScalar) {\n return this.contents instanceof Collection ? this.contents.get(key, keepScalar) : undefined;\n }\n }, {\n key: \"getIn\",\n value: function getIn(path, keepScalar) {\n if (isEmptyPath(path)) return !keepScalar && this.contents instanceof Scalar ? this.contents.value : this.contents;\n return this.contents instanceof Collection ? this.contents.getIn(path, keepScalar) : undefined;\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return this.contents instanceof Collection ? this.contents.has(key) : false;\n }\n }, {\n key: \"hasIn\",\n value: function hasIn(path) {\n if (isEmptyPath(path)) return this.contents !== undefined;\n return this.contents instanceof Collection ? this.contents.hasIn(path) : false;\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n assertCollection(this.contents);\n this.contents.set(key, value);\n }\n }, {\n key: \"setIn\",\n value: function setIn(path, value) {\n if (isEmptyPath(path)) this.contents = value;else {\n assertCollection(this.contents);\n this.contents.setIn(path, value);\n }\n }\n }, {\n key: \"setSchema\",\n value: function setSchema(id, customTags) {\n if (!id && !customTags && this.schema) return;\n if (typeof id === 'number') id = id.toFixed(1);\n\n if (id === '1.0' || id === '1.1' || id === '1.2') {\n if (this.version) this.version = id;else this.options.version = id;\n delete this.options.schema;\n } else if (id && typeof id === 'string') {\n this.options.schema = id;\n }\n\n if (Array.isArray(customTags)) this.options.customTags = customTags;\n var opt = Object.assign({}, this.getDefaults(), this.options);\n this.schema = new Schema(opt);\n }\n }, {\n key: \"parse\",\n value: function parse(node, prevDoc) {\n if (this.options.keepCstNodes) this.cstNode = node;\n if (this.options.keepNodeTypes) this.type = 'DOCUMENT';\n var _node$directives = node.directives,\n directives = _node$directives === void 0 ? [] : _node$directives,\n _node$contents = node.contents,\n contents = _node$contents === void 0 ? [] : _node$contents,\n directivesEndMarker = node.directivesEndMarker,\n error = node.error,\n valueRange = node.valueRange;\n\n if (error) {\n if (!error.source) error.source = this;\n this.errors.push(error);\n }\n\n parseDirectives(this, directives, prevDoc);\n if (directivesEndMarker) this.directivesEndMarker = true;\n this.range = valueRange ? [valueRange.start, valueRange.end] : null;\n this.setSchema();\n this.anchors._cstAliases = [];\n parseContents(this, contents);\n this.anchors.resolveNodes();\n\n if (this.options.prettyErrors) {\n var _iterator = _createForOfIteratorHelper(this.errors),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _error = _step.value;\n if (_error instanceof YAMLError) _error.makePretty();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.warnings),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var warn = _step2.value;\n if (warn instanceof YAMLError) warn.makePretty();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return this;\n }\n }, {\n key: \"listNonDefaultTags\",\n value: function listNonDefaultTags() {\n return listTagNames(this.contents).filter(function (t) {\n return t.indexOf(Schema.defaultPrefix) !== 0;\n });\n }\n }, {\n key: \"setTagPrefix\",\n value: function setTagPrefix(handle, prefix) {\n if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');\n\n if (prefix) {\n var prev = this.tagPrefixes.find(function (p) {\n return p.handle === handle;\n });\n if (prev) prev.prefix = prefix;else this.tagPrefixes.push({\n handle: handle,\n prefix: prefix\n });\n } else {\n this.tagPrefixes = this.tagPrefixes.filter(function (p) {\n return p.handle !== handle;\n });\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON$1(arg, onAnchor) {\n var _this = this;\n\n var _this$options = this.options,\n keepBlobsInJSON = _this$options.keepBlobsInJSON,\n mapAsMap = _this$options.mapAsMap,\n maxAliasCount = _this$options.maxAliasCount;\n var keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof Scalar));\n var ctx = {\n doc: this,\n indentStep: ' ',\n keep: keep,\n mapAsMap: keep && !!mapAsMap,\n maxAliasCount: maxAliasCount,\n stringify: stringify$1 // Requiring directly in Pair would create circular dependencies\n\n };\n var anchorNames = Object.keys(this.anchors.map);\n if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(function (name) {\n return [_this.anchors.map[name], {\n alias: [],\n aliasCount: 0,\n count: 1\n }];\n }));\n\n var res = toJSON(this.contents, arg, ctx);\n\n if (typeof onAnchor === 'function' && ctx.anchors) {\n var _iterator3 = _createForOfIteratorHelper(ctx.anchors.values()),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _step3$value = _step3.value,\n count = _step3$value.count,\n _res = _step3$value.res;\n onAnchor(_res, count);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return res;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');\n var indentSize = this.options.indent;\n\n if (!Number.isInteger(indentSize) || indentSize <= 0) {\n var s = JSON.stringify(indentSize);\n throw new Error(\"\\\"indent\\\" option must be a positive integer, not \".concat(s));\n }\n\n this.setSchema();\n var lines = [];\n var hasDirectives = false;\n\n if (this.version) {\n var vd = '%YAML 1.2';\n\n if (this.schema.name === 'yaml-1.1') {\n if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';\n }\n\n lines.push(vd);\n hasDirectives = true;\n }\n\n var tagNames = this.listNonDefaultTags();\n this.tagPrefixes.forEach(function (_ref) {\n var handle = _ref.handle,\n prefix = _ref.prefix;\n\n if (tagNames.some(function (t) {\n return t.indexOf(prefix) === 0;\n })) {\n lines.push(\"%TAG \".concat(handle, \" \").concat(prefix));\n hasDirectives = true;\n }\n });\n if (hasDirectives || this.directivesEndMarker) lines.push('---');\n\n if (this.commentBefore) {\n if (hasDirectives || !this.directivesEndMarker) lines.unshift('');\n lines.unshift(this.commentBefore.replace(/^/gm, '#'));\n }\n\n var ctx = {\n anchors: Object.create(null),\n doc: this,\n indent: '',\n indentStep: ' '.repeat(indentSize),\n stringify: stringify$1 // Requiring directly in nodes would create circular dependencies\n\n };\n var chompKeep = false;\n var contentComment = null;\n\n if (this.contents) {\n if (this.contents instanceof Node) {\n if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');\n if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment\n\n ctx.forceBlockIndent = !!this.comment;\n contentComment = this.contents.comment;\n }\n\n var onChompKeep = contentComment ? null : function () {\n return chompKeep = true;\n };\n var body = stringify$1(this.contents, ctx, function () {\n return contentComment = null;\n }, onChompKeep);\n lines.push(addComment(body, '', contentComment));\n } else if (this.contents !== undefined) {\n lines.push(stringify$1(this.contents, ctx));\n }\n\n if (this.comment) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');\n lines.push(this.comment.replace(/^/gm, '#'));\n }\n\n return lines.join('\\n') + '\\n';\n }\n }]);\n\n return Document;\n}();\n\n_defineProperty(Document$1, \"defaults\", documentOptions);\n\nfunction createNode(value) {\n var wrapScalars = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var tag = arguments.length > 2 ? arguments[2] : undefined;\n\n if (tag === undefined && typeof wrapScalars === 'string') {\n tag = wrapScalars;\n wrapScalars = true;\n }\n\n var options = Object.assign({}, Document$1.defaults[defaultOptions.version], defaultOptions);\n var schema = new Schema(options);\n return schema.createNode(value, wrapScalars, tag);\n}\n\nvar Document = /*#__PURE__*/function (_YAMLDocument) {\n _inherits(Document, _YAMLDocument);\n\n var _super = _createSuper(Document);\n\n function Document(options) {\n _classCallCheck(this, Document);\n\n return _super.call(this, Object.assign({}, defaultOptions, options));\n }\n\n return Document;\n}(Document$1);\n\nfunction parseAllDocuments(src, options) {\n var stream = [];\n var prev;\n\n var _iterator = _createForOfIteratorHelper(parse$1(src)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var cstDoc = _step.value;\n var doc = new Document(options);\n doc.parse(cstDoc, prev);\n stream.push(doc);\n prev = doc;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return stream;\n}\n\nfunction parseDocument(src, options) {\n var cst = parse$1(src);\n var doc = new Document(options).parse(cst[0]);\n\n if (cst.length > 1) {\n var errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';\n doc.errors.unshift(new YAMLSemanticError(cst[1], errMsg));\n }\n\n return doc;\n}\n\nfunction parse(src, options) {\n var doc = parseDocument(src, options);\n doc.warnings.forEach(function (warning) {\n return warn(warning);\n });\n if (doc.errors.length > 0) throw doc.errors[0];\n return doc.toJSON();\n}\n\nfunction stringify(value, options) {\n var doc = new Document(options);\n doc.contents = value;\n return String(doc);\n}\n\nvar YAML = {\n createNode: createNode,\n defaultOptions: defaultOptions,\n Document: Document,\n parse: parse,\n parseAllDocuments: parseAllDocuments,\n parseCST: parse$1,\n parseDocument: parseDocument,\n scalarOptions: scalarOptions,\n stringify: stringify\n};\n\nexport { YAML };\n"],"names":["module","exports","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","_defineProperty","value","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_construct","Parent","args","Class","a","push","apply","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","toString","indexOf","has","get","set","Wrapper","this","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","result","Super","NewTarget","_get","property","receiver","base","object","hasOwnProperty","_superPropBase","desc","getOwnPropertyDescriptor","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toArray","iter","Array","from","_iterableToArray","isArray","minLen","_arrayLikeToArray","n","slice","name","test","len","arr2","_createForOfIteratorHelper","allowArrayLike","it","F","s","f","normalCompletion","didErr","step","return","Char","ANCHOR","COMMENT","TAG","DIRECTIVES_END","DOCUMENT_END","Type","ALIAS","BLANK_LINE","BLOCK_FOLDED","BLOCK_LITERAL","DIRECTIVE","DOCUMENT","FLOW_MAP","FLOW_SEQ","MAP","MAP_KEY","MAP_VALUE","PLAIN","QUOTE_DOUBLE","QUOTE_SINGLE","SEQ","SEQ_ITEM","defaultTagPrefix","defaultTags","STR","findLineStarts","src","ls","offset","getSrcInfo","cst","lineStarts","context","getLinePos","_getSrcInfo","start","line","col","getPrettyContext","_ref","end","maxWidth","_getSrcInfo2","getLine","substr","halfWidth","Math","round","errLen","errEnd","min","repeat","concat","Range","cr","origStart","origEnd","nextOffset","orig","Node","type","error","range","valueRange","idx","skipKey","prop","anchor","getPropValue","comments","comment","join","header","atBlank","root","_this$valueRange","tag","verbatim","_tag$match2","match","handle","suffix","_this$valueRange2","endOfLine","commentRange","setOrigRange","forEach","str","addStringTerminator","endOfWhiteSpace","sep","ch0","prev","ch1","ch2","ch3","ch","isVerbatim","notOk","indent","lineStart","inEnd","endOfIndent","wsEnd","endAsBlank","indentDiff","indicatorAsIndent","inCount","fold","YAMLError","_Error","_super","source","message","_this","Error","nodeType","linePos","rangeAsLinePos","_this$linePos$start","ctx","YAMLReferenceError","_YAMLError","_super2","YAMLSemanticError","_YAMLError2","_super3","YAMLSyntaxError","_YAMLError3","_super4","YAMLWarning","_YAMLError4","_super5","PlainValue","_Node","_ch","_Node$foldNewline","foldNewline","wsStart","errors","_msg","_this$context","inFlow","valueEnd","atDocumentBoundary","endOfBlockIndent","isEmpty","parseComment","hasComment","parseBlockValue","BlankLine","CollectionItem","node","includesTrailingLines","parseNode","atLineStart","inlineComment","blankLine","_end","parse","nextNodeIsIndented","inCollection","parent","items","contents","c","setOrigRanges","String","Comment","grabCollectionEndComments","cnode","Collection","ci","_n$context","ca","splice","prevEnd","firstItem","itemRange","ec","startOfLine","copy","normalizeOffset","prevIncludesTrailingLines","nextContentHasIndent","_next","item","_item$context","Directive","raw","rawValue","trim","split","parseName","parseParameters","Document","directives","directivesEndMarker","documentEndMarker","hasDirectives","startCommentOrEndBlankLine","directive","iEnd","_comment","charCodeAt","parseDirectives","parseContents","Alias","endOfIdentifier","Chomp","BlockValue","blockIndent","chomping","lastNewLine","keepStart","bi","folded","atStart","prevMoreIndented","j","lineEnd","Number","_this$context2","explicit","minBlockIndent","_ch2","lineIndent","parseBlockHeader","FlowCollection","jsonLike","prevNodeIsJsonLike","char","origOffset","nodes","filter","prefix","QuoteDouble","parseCharCode","cc","code","parseInt","NaN","isNaN","fromCodePoint","endOfQuote","QuoteSingle","ParseContext","overlay","_context$parseProps","parseProps","valueStart","createNewNode","parseEnd","nodeStartsCollection","collection","lineHasProps","noIndicatorAsIndent","parseType","replace","documents","doc","crOffset","addComment","toJSON","arg","map","v","anchors","onCreate","res","keep","Scalar","collectionFromPath","schema","path","k","isInteger","createNode","isEmptyPath","add","_path","rest","addIn","_ref2","delete","deleteIn","_ref3","keepScalar","_ref4","getIn","every","commentBefore","_ref5","_ref6","hasIn","_ref7","_ref8","setIn","_ref9","onComment","onChompKeep","_this2","blockItem","flowChars","isMap","itemIndent","_ctx","indentStep","stringify","allNullValues","hasAllNullValues","assign","chompKeep","hasItemWithNewLine","reduce","spaceBefore","includes","strings","sum","maxFlowStringSingleLineLength","_step","_iterator","_strings","shift","_step2","_iterator2","asItemIndex","YAMLSeq","_Collection","_","seq","JSON","Pair","PAIR","cb","Set","stringKey","jsKey","inStringifyKey","stringifyKey","_value","pair","mapAsMap","addToJSMap","_ctx$doc$options","options","indentSize","indentSeq","simpleKeys","keyComment","explicitKey","implicitKey","vcb","valueComment","cs","indentAtStart","getName","valueStr","ws","MERGE_PAIR","getAliasCount","count","aliasCount","kc","vc","max","t","maxAliasCount","msg","cstNode","keys","find","newName","findPair","YAMLMap","overwrite","sortEntries","sortMapEntries","findIndex","_step3","_iterator3","MERGE_KEY","Merge","_Pair","_step2$value","binaryOptions","defaultType","lineWidth","boolOptions","trueStr","falseStr","intOptions","asBigInt","nullOptions","nullStr","strOptions","doubleQuoted","jsonEncoding","minMultiLineLength","minContentWidth","resolveScalar","tags","scalarFallback","_step$value","format","resolve","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","consumeMoreIndentedLines","text","foldFlowLines","mode","_ref$lineWidth","_ref$minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","overflow","escStart","escEnd","getFoldOptions","containsDocumentMarker","doubleQuotedString","_strOptions$doubleQuo","json","singleQuotedString","blockString","forceBlockIndent","literal","indentLength","limit","strLen","lineLengthOverLimit","m","body","stringifyString","_item","_stringify","_type","actualString","addCommentBefore","plainString","stringifyNumber","minFractionDigits","isFinite","d","checkFlowCollectionEnd","lastItem","checkFlowCommentSpace","getLongKeyError","sk","resolveComments","afterKey","before","resolveString","strValue","resolveTagName","nonSpecific","_node$tag","tagPrefixes","dtp","getDefaults","version","warnings","vocab","decodeURIComponent","resolveTagHandle","resolveByTagName","tagName","matchWithTest","resolveTag","fallback","getFallbackTagName","_res","refError","stack","isCollectionItem","resolveNode","_resolveNodeProps","after","hasAnchor","hasTag","commentHasRequiredWhitespace","resolveNodeProps","getNode","_cstAliases","_msg3","resolveNodeValue","keepCstNodes","keepNodeTypes","resolved","resolveMap","resolveFlowMapItems","keyStart","valueNode","pos","origPos","resolvePairComment","nextItem","_msg2","valueRangeContainsNewline","resolveBlockMapItems","hasCollectionKey","iKey","merge","sources","some","jKey","valueHasPairComment","_ref2$context","found","startsWith","resolveSeq","prevItem","pop","keyEnd","_err","resolveFlowSeqItems","hasProps","resolveBlockSeqItems","binary","identify","Uint8Array","default","Buffer","atob","buffer","btoa","fromCharCode","ceil","lines","parsePairs","createPairs","iterable","pairs","createPair","YAMLOMap","_YAMLSeq","omap","nodeClass","seenKeys","YAMLSet","_YAMLMap","keepPair","parseSexagesimal","sign","parts","stringifySexagesimal","abs","unshift","intTime","floatTime","timestamp","Date","RegExp","year","month","day","hour","minute","second","millisec","tz","date","UTC","toISOString","shouldWarn","deprecation","env","process","YAML_SILENCE_DEPRECATION_WARNINGS","YAML_SILENCE_WARNINGS","warn","warning","emit","emitWarning","console","warned","_Object$keys","_key","sort","wrapScalars","failsafe","intIdentify$2","intResolve$1","part","radix","BigInt","intStringify$1","nullObj","boolObj","octObj","oct","intObj","hexObj","hex","nanObj","nan","NEGATIVE_INFINITY","POSITIVE_INFINITY","expObj","parseFloat","toExponential","floatObj","frac1","frac2","frac","core","intIdentify$1","stringifyJSON","SyntaxError","boolStringify","intIdentify","intResolve","intStringify","yaml11","bin","schemas","bool","float","floatExp","floatNaN","int","intHex","intOct","null","defaultPrefix","onTagObj","prevObjects","tagObj","class","findTagObject","alias","aliasNodes","sortMapEntriesByKey","b","Schema","customTags","deprecatedCustomTags","alternative","warnOptionDeprecation","knownTags","schemaId","_tag","_keys","getSchemaTags","baseCtx","defaultOptions","anchorPrefix","keepBlobsInJSON","prettyErrors","scalarOptions","opt","documentOptions","stringifyTag","priv","stringify$1","_ctx$doc","createCtx","_match","getTagObject","stringifyProps","Anchors","setAnchor","_len","createAlias","names","validAnchorNode","visit","listTagNames","resolveTagDirective","_directive$parameters","parameters","resolveYamlDirective","v0","assertCollection","Document$1","defaults","id","toFixed","prevDoc","_node$directives","_node$contents","directiveComments","setSchema","cbNode","resolveNodes","_error","makePretty","onAnchor","_this$options","anchorNames","values","_step3$value","vd","tagNames","listNonDefaultTags","contentComment","_YAMLDocument","parseDocument","YAML","parseAllDocuments","stream","cstDoc","parseCST"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js b/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js new file mode 100644 index 00000000..5fa8a07e --- /dev/null +++ b/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6731],{6731:function(e,n,t){t.r(n),t.d(n,{default:function(){return c}});t(6558);var l=t(6540),a=t(5760);const s=l.lazy((async()=>Promise.all([t.e(1552),t.e(6394),t.e(8788),t.e(9558)]).then(t.bind(t,8801)))),r=l.lazy((async()=>Promise.all([t.e(6394),t.e(7255)]).then(t.bind(t,7255))));class c extends l.Component{render(){return l.createElement(l.StrictMode,null,l.createElement(l.Suspense,{fallback:l.createElement("p",{className:"text-center"},"Loading spinner...")},l.createElement(l.Suspense,{fallback:l.createElement(r,{text:"Loading bundles...",noIntl:!0})},l.createElement(s,{locale:a.A.en}))))}}},5760:function(e,n){class t{}t.en="en",n.A=t}}]); +//# sourceMappingURL=6731.4d02c538bab66f0458ef.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js.map b/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js.map new file mode 100644 index 00000000..48d31f2c --- /dev/null +++ b/webpanel/6.6.0/6731.4d02c538bab66f0458ef.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6731.4d02c538bab66f0458ef.bundle.js","mappings":"mOAKA,MAAMA,EAAMC,EAAAA,MAAWC,SAAY,8EAC7BC,EAAUF,EAAAA,MAAWC,SAAY,0DAIxB,MAAME,UAAmBH,EAAAA,UAC7BI,MAAAA,GACH,OACIJ,EAAAA,cAACA,EAAAA,WAAgB,KACbA,EAAAA,cAACK,EAAAA,SAAQ,CAACC,SAAUN,EAAAA,cAAA,KAAGO,UAAU,eAAc,uBAC3CP,EAAAA,cAACK,EAAAA,SAAQ,CAACC,SAAUN,EAAAA,cAACE,EAAO,CAACM,KAAK,qBAAqBC,QAAM,KACzDT,EAAAA,cAACD,EAAG,CAACW,OAAQC,EAAAA,EAAQC,OAKzC,E,qBCrBJ,MAAMD,GAAAA,EACqBC,GAAa,KAGxC,K","sources":["webpack://tgstation-server-control-panel/./src/AppLoading.tsx","webpack://tgstation-server-control-panel/./src/translations/Locales.ts"],"sourcesContent":["// css\nimport \"./styles/dark.scss\";\n\nimport React, { Suspense } from \"react\";\n\nconst App = React.lazy(async () => import(\"./App\"));\nconst Loading = React.lazy(async () => import(\"./components/utils/Loading\"));\n\nimport Locales from \"./translations/Locales\";\n\nexport default class AppLoading extends React.Component {\n public render(): React.ReactNode {\n return (\n \n Loading spinner...

    }>\n
    }>\n \n \n \n \n );\n }\n}\n","class Locales {\n public static readonly en: string = \"en\";\n}\n\nexport default Locales;\n"],"names":["App","React","async","Loading","AppLoading","render","Suspense","fallback","className","text","noIntl","locale","Locales","en"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js b/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js new file mode 100644 index 00000000..e27f2d07 --- /dev/null +++ b/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6805],{6052:function(e,t,n){var r=n(8168),s=n(8587),i=n(2485),o=n.n(i),c=n(6540),a=n(6519),l=["bsPrefix","variant","pill","className","as"],u=c.forwardRef((function(e,t){var n=e.bsPrefix,i=e.variant,u=e.pill,h=e.className,d=e.as,p=void 0===d?"span":d,f=(0,s.A)(e,l),g=(0,a.oU)(n,"badge");return c.createElement(p,(0,r.A)({ref:t},f,{className:o()(h,g,u&&g+"-pill",i&&g+"-"+i)}))}));u.displayName="Badge",u.defaultProps={pill:!1},t.A=u},616:function(e,t,n){var r=n(8168),s=n(8587),i=n(2485),o=n.n(i),c=n(6540),a=n(6519),l=["bsPrefix","size","toggle","vertical","className","as"],u=c.forwardRef((function(e,t){var n=e.bsPrefix,i=e.size,u=e.toggle,h=e.vertical,d=e.className,p=e.as,f=void 0===p?"div":p,g=(0,s.A)(e,l),m=(0,a.oU)(n,"btn-group"),y=m;return h&&(y=m+"-vertical"),c.createElement(f,(0,r.A)({},g,{ref:t,className:o()(d,y,i&&m+"-"+i,u&&m+"-toggle")}))}));u.displayName="ButtonGroup",u.defaultProps={vertical:!1,toggle:!1,role:"group"},t.A=u},2431:function(e,t,n){var r=n(8168),s=n(8587),i=n(2485),o=n.n(i),c=n(6540),a=n(6519),l=["bsPrefix","className","striped","bordered","borderless","hover","size","variant","responsive"],u=c.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,u=e.striped,h=e.bordered,d=e.borderless,p=e.hover,f=e.size,g=e.variant,m=e.responsive,y=(0,s.A)(e,l),v=(0,a.oU)(n,"table"),x=o()(i,v,g&&v+"-"+g,f&&v+"-"+f,u&&v+"-striped",h&&v+"-bordered",d&&v+"-borderless",p&&v+"-hover"),M=c.createElement("table",(0,r.A)({},y,{className:x,ref:t}));if(m){var b=v+"-responsive";return"string"==typeof m&&(b=b+"-"+m),c.createElement("div",{className:b},M)}return M}));t.A=u},9944:function(e,t,n){n.d(t,{A:function(){return N}});var r=n(6540);function s(){return s=Object.assign||function(e){for(var t=1;t{if("groupId"in e){const r=s({},e),i=t.findIndex((e=>"groupId"in e&&e.groupId===r.groupId));r.index=n,i>-1?t[i].items.push(r):t.push({items:[r],groupId:e.groupId,type:"group",name:e.groupName})}else t.push(e)})),t}function o(e){return e?Array.isArray(e)?[...e]:[e]:[]}function c(e){return null!==e&&"object"==typeof e&&"value"in e&&"name"in e}function a(e,t){if(c(e))return e;let n=e;if(null===n&&t.length){let e=0,r=t[0];for(;r&&r.disabled;)t.lengthe.value==n))}function l(e,t,n,r){if(!r){const r=a(e,n);return r||t}const s=o(t),i=o(e).map((e=>a(e,n))).filter((e=>null!=e));return s.length?i.length?(i.forEach((e=>{const t=s.findIndex((t=>t.value==e.value));t>=0?s.splice(t,1):s.push(e)})),s):s:i}function u(e){return Array.isArray(e)?e.map((e=>c(e)&&e.name)).join(", "):c(e)?e.name:""}function h(){return h=Object.assign||function(e){for(var t=1;t{if("group"===e.type){const n=`${e.name.replace(/\s+/g,"-").toLowerCase()}-${t}`;return e.items.map((t=>h({},t,{groupId:n,groupName:e.name})))}return h({},e,{index:t})})).flat()}function p(e,t,n){let{debounceTime:s,filterOptions:i,getOptions:o}=n;const[c,a]=(0,r.useState)(!1),[l,u]=(0,r.useState)((()=>d(t))),h=(0,r.useMemo)((()=>{const e=i||(e=>()=>e);return o?function(e,t){let n;return function(){for(var r=arguments.length,s=new Array(r),i=0;i{n=null,e(...s)}),t)}}((n=>{const r=o(n,t);a(!0),Promise.resolve(r).then((t=>{u(d(e(t)(n)))})).finally((()=>a(!1)))}),s):n=>u(d(e(t)(n)))}),[i,t,o,s]);return(0,r.useEffect)((()=>u(t)),[t]),(0,r.useEffect)((()=>h(e)),[h,e]),{options:l,setOptions:u,fetching:c}}function f(e){return e&&c(e)?e.value:null}function g(e){return Array.isArray(e)?e.map((e=>f(e))).filter((e=>null!==e)):f(e)}function m(e,t){let{key:n,options:r}=t;const s=r.length-1;let i="ArrowDown"===n?e+1:e-1;i<0?i=s:i>s&&(i=0);const o=r[i];return o&&o.disabled?m(i,{key:n,options:r}):i}function y(){return y=Object.assign||function(e){for(var t=1;t{},onFocus:v=()=>{},onBlur:x=()=>{},debounce:M=0}=e;const b=(0,r.useRef)(null),[O,k]=(0,r.useState)(null),[_,w]=(0,r.useState)(""),[A,C]=(0,r.useState)(!1),{options:L,fetching:S}=p(_,n,{getOptions:h,filterOptions:d,debounceTime:M}),N=(0,r.useCallback)((e=>{const t=l(e,O,Array.isArray(O)?[...O,...L]:L,o);k(t),f(g(t),t),a&&b.current.blur()}),[a,o,f,O,L]),[I,j]=function(e,t,n,s){const[i,o]=(0,r.useReducer)(m,e),c=(0,r.useCallback)((e=>{const{key:n}=e;["ArrowDown","ArrowUp"].includes(n)&&(e.preventDefault(),o({key:n,options:t}))}),[t]),a=(0,r.useCallback)((e=>{if("Enter"===e.key){e.preventDefault();const r=t[i];r&&n(r.value)}}),[t,i,n]),l=(0,r.useCallback)((e=>{"Escape"===e.key&&(e.preventDefault(),s.current.blur())}),[s]);return[i,{onKeyPress:a,onKeyDown:c,onKeyUp:l}]}(-1,L,N,b),E=(0,r.useMemo)((()=>({options:i(L),option:O,displayValue:u(O),value:g(O),search:_,fetching:S,focus:A,highlighted:I,disabled:c})),[c,S,A,I,_,O,L]),$=(0,r.useCallback)((e=>{e.preventDefault(),N(e.currentTarget.value)}),[N]),F=(0,r.useCallback)((e=>{C(!0),v(e)}),[v]),R=(0,r.useCallback)((e=>{C(!1),w(""),x(e)}),[x]),P=(0,r.useMemo)((()=>y({tabIndex:"0",readOnly:!s},j,{onFocus:F,onBlur:R,onChange:s?e=>{let{target:t}=e;return w(t.value)}:null,disabled:c,ref:b})),[s,j,F,R,c]),W=(0,r.useMemo)((()=>({tabIndex:"-1",onMouseDown:$})),[$]);return(0,r.useEffect)((()=>{k(l(t,null,L,o))}),[t,o,L]),[E,P,W,k]}function x(e){return Object.entries(e).filter((e=>{let[t,n]=e;return t&&n})).map((e=>{let[t]=e;return t})).join(" ")}var M=n(4848);function b(){return b=Object.assign||function(e){for(var t=1;t{return"group"===e.type?(0,M.jsx)("li",{role:"none",className:o("row"),children:(0,M.jsxs)("div",{className:o("group"),children:[(0,M.jsx)("div",{className:o("group-header"),children:i?i(e.name):e.name}),(0,M.jsx)("ul",{className:o("options"),children:(0,M.jsx)(_,{optionProps:n,snapshot:r,options:e.items,renderOption:s,renderGroupHeader:i,cls:o})})]})},e.groupId):(0,M.jsx)(k,{selected:(t=e,c=r.option,!!c&&(Array.isArray(c)?c.findIndex((e=>e.value==t.value))>=0:c.value==t.value)),highlighted:r.highlighted===e.index,option:e,optionProps:n,cls:o,renderOption:s},e.value);var t,c}))})}_.defaultProps={renderGroupHeader:null,renderOption:null},_.propTypes={};var w=(0,r.memo)(_);function A(e){let{options:t,optionProps:n,snapshot:s,cls:i,renderGroupHeader:o,renderOption:c,emptyMessage:a}=e;const l=(0,r.useRef)(null),{value:u,highlighted:h}=s,d=(0,r.useCallback)((()=>null===a?null:(0,M.jsx)("li",{className:i("not-found"),children:"function"==typeof a?a():a})),[a,i]);return(0,r.useEffect)((()=>{const{current:e}=l;if(!e||h<0&&null===u)return;const t=Array.isArray(u)?u[0]:u,n=h>-1?`[data-index="${h}"]`:`[data-value="${escape(t)}"]`,r=e.querySelector(n);if(r){const t=e.getBoundingClientRect(),n=r.getBoundingClientRect();e.scrollTop=r.offsetTop-t.height/2+n.height/2}}),[u,h,l]),(0,M.jsx)("div",{className:i("select"),ref:l,onMouseDown:e=>e.preventDefault(),children:t.length?(0,M.jsx)(w,{optionProps:n,snapshot:s,options:t,renderOption:c,renderGroupHeader:o,cls:i}):(0,M.jsx)("ul",{className:i("options"),children:d()})})}A.defaultProps={renderOption:null,renderGroupHeader:null,emptyMessage:null},A.propTypes={};var C=(0,r.memo)(A);function L(){return L=Object.assign||function(e){for(var t=1;t{let{value:n,disabled:s,placeholder:i,multiple:o,search:c,autoFocus:a,autoComplete:l,options:u,id:h,onChange:d,onFocus:p,onBlur:f,printOptions:g,closeOnSelect:m,className:y,renderValue:b,renderOption:O,renderGroupHeader:k,getOptions:_,filterOptions:w,debounce:A,emptyMessage:S}=e;const N=function(e){return(0,r.useCallback)((t=>"function"==typeof e?e(t):0===t.indexOf("container")?t.replace("container",e):0===t.indexOf("is-")||0===t.indexOf("has-")?t:`${e.split(" ")[0]}__${t}`),[e])}(y),[I,j,E]=v({options:u,value:null===n&&(i||o)?"":n,multiple:o,disabled:s,search:c,onChange:d,onFocus:p,onBlur:f,closeOnSelect:m&&(!o||["on-focus","always"].includes(g)),getOptions:_,filterOptions:w,debounce:A}),$=x({[N("container")]:!0,[N("is-disabled")]:s,[N("is-loading")]:I.fetching,[N("has-focus")]:I.focus});let F;switch(g){case"never":F=!1;break;case"always":F=!0;break;case"on-focus":F=I.focus;break;default:F=!s&&(I.focus||o)}const R=!o||i||c,P=L({},j,{placeholder:i,autoFocus:a,autoComplete:l,value:I.focus&&c?I.search:I.displayValue});return(0,M.jsxs)("div",{ref:t,className:$,id:h,children:[R&&(0,M.jsxs)("div",{className:N("value"),children:[b&&b(P,I,N("input")),!b&&(0,M.jsx)("input",L({},P,{className:N("input")}))]}),F&&(0,M.jsx)(C,{options:I.options,optionProps:E,snapshot:I,cls:N,emptyMessage:S,renderOption:O,renderGroupHeader:k})]})}));S.defaultProps={getOptions:null,filterOptions:null,value:null,multiple:!1,search:!1,disabled:!1,printOptions:"auto",closeOnSelect:!0,debounce:0,placeholder:null,id:null,autoFocus:!1,autoComplete:"on",className:"select-search",renderOption:void 0,renderGroupHeader:void 0,renderValue:void 0,emptyMessage:null,onChange:()=>{},onFocus:()=>{},onBlur:()=>{}},S.propTypes={};var N=(0,r.memo)(S)},8854:function(e,t,n){function r(e){return Array.isArray?Array.isArray(e):"[object Array]"===d(e)}n.d(t,{A:function(){return Q}});const s=1/0;function i(e){return null==e?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-s?"-0":t}(e)}function o(e){return"string"==typeof e}function c(e){return"number"==typeof e}function a(e){return!0===e||!1===e||function(e){return l(e)&&null!==e}(e)&&"[object Boolean]"==d(e)}function l(e){return"object"==typeof e}function u(e){return null!=e}function h(e){return!e.trim().length}function d(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const p=e=>`Missing ${e} property in key`,f=e=>`Property 'weight' in key '${e}' must be a positive integer`,g=Object.prototype.hasOwnProperty;class m{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach((e=>{let n=y(e);t+=n.weight,this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight})),this._keys.forEach((e=>{e.weight/=t}))}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function y(e){let t=null,n=null,s=null,i=1,c=null;if(o(e)||r(e))s=e,t=v(e),n=x(e);else{if(!g.call(e,"name"))throw new Error(p("name"));const r=e.name;if(s=r,g.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(f(r));t=v(r),n=x(r),c=e.getFn}return{path:t,id:n,weight:i,src:s,getFn:c}}function v(e){return r(e)?e:e.split(".")}function x(e){return r(e)?e.join("."):e}var M={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx{if(u(e))if(t[h]){const d=e[t[h]];if(!u(d))return;if(h===t.length-1&&(o(d)||c(d)||a(d)))n.push(i(d));else if(r(d)){s=!0;for(let e=0,n=d.length;e{this._keysMap[e.id]=t}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,o(this.docs[0])?this.docs.forEach(((e,t)=>{this._addString(e,t)})):this.docs.forEach(((e,t)=>{this._addObject(e,t)})),this.norm.clear())}add(e){const t=this.size();o(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,n=this.size();t{let i=t.getFn?t.getFn(e):this.getFn(e,t.path);if(u(i))if(r(i)){let e=[];const t=[{nestedArrIndex:-1,value:i}];for(;t.length;){const{nestedArrIndex:n,value:s}=t.pop();if(u(s))if(o(s)&&!h(s)){let t={v:s,i:n,n:this.norm.get(s)};e.push(t)}else r(s)&&s.forEach(((e,n)=>{t.push({nestedArrIndex:n,value:e})}))}n.$[s]=e}else if(o(i)&&!h(i)){let e={v:i,n:this.norm.get(i)};n.$[s]=e}})),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function k(e,t,{getFn:n=M.getFn,fieldNormWeight:r=M.fieldNormWeight}={}){const s=new O({getFn:n,fieldNormWeight:r});return s.setKeys(e.map(y)),s.setSources(t),s.create(),s}function _(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:s=M.distance,ignoreLocation:i=M.ignoreLocation}={}){const o=t/e.length;if(i)return o;const c=Math.abs(r-n);return s?o+c/s:c?1:o}const w=32;function A(e,t,n,{location:r=M.location,distance:s=M.distance,threshold:i=M.threshold,findAllMatches:o=M.findAllMatches,minMatchCharLength:c=M.minMatchCharLength,includeMatches:a=M.includeMatches,ignoreLocation:l=M.ignoreLocation}={}){if(t.length>w)throw new Error(`Pattern length exceeds max of ${w}.`);const u=t.length,h=e.length,d=Math.max(0,Math.min(r,h));let p=i,f=d;const g=c>1||a,m=g?Array(h):[];let y;for(;(y=e.indexOf(t,f))>-1;){let e=_(t,{currentLocation:y,expectedLocation:d,distance:s,ignoreLocation:l});if(p=Math.min(e,p),f=y+u,g){let e=0;for(;e=a;i-=1){let o=i-1,c=n[e.charAt(o)];if(g&&(m[o]=+!!c),M[i]=(M[i+1]<<1|1)&c,r&&(M[i]|=(v[i+1]|v[i])<<1|1|v[i+1]),M[i]&O&&(x=_(t,{errors:r,currentLocation:o,expectedLocation:d,distance:s,ignoreLocation:l}),x<=p)){if(p=x,f=o,f<=d)break;a=Math.max(1,2*d-f)}}if(_(t,{errors:r+1,currentLocation:d,expectedLocation:d,distance:s,ignoreLocation:l})>p)break;v=M}const k={isMatch:f>=0,score:Math.max(.001,x)};if(g){const e=function(e=[],t=M.minMatchCharLength){let n=[],r=-1,s=-1,i=0;for(let o=e.length;i=t&&n.push([r,s]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}(m,c);e.length?a&&(k.indices=e):k.isMatch=!1}return k}function C(e){let t={};for(let n=0,r=e.length;n{this.chunks.push({pattern:e,alphabet:C(e),startIndex:t})},u=this.pattern.length;if(u>w){let e=0;const t=u%w,n=u-t;for(;e{const{isMatch:f,score:g,indices:m}=A(e,t,d,{location:r+p,distance:s,threshold:i,findAllMatches:o,minMatchCharLength:c,includeMatches:n,ignoreLocation:a});f&&(h=!0),u+=g,f&&m&&(l=[...l,...m])}));let d={isMatch:h,score:h?u/this.chunks.length:1};return h&&n&&(d.indices=l),d}}class S{constructor(e){this.pattern=e}static isMultiMatch(e){return N(e,this.multiRegex)}static isSingleMatch(e){return N(e,this.singleRegex)}search(){}}function N(e,t){const n=e.match(t);return n?n[1]:null}class I extends S{constructor(e,{location:t=M.location,threshold:n=M.threshold,distance:r=M.distance,includeMatches:s=M.includeMatches,findAllMatches:i=M.findAllMatches,minMatchCharLength:o=M.minMatchCharLength,isCaseSensitive:c=M.isCaseSensitive,ignoreLocation:a=M.ignoreLocation}={}){super(e),this._bitapSearch=new L(e,{location:t,threshold:n,distance:r,includeMatches:s,findAllMatches:i,minMatchCharLength:o,isCaseSensitive:c,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class j extends S{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,n=0;const r=[],s=this.pattern.length;for(;(t=e.indexOf(this.pattern,n))>-1;)n=t+s,r.push([t,n-1]);const i=!!r.length;return{isMatch:i,score:i?0:1,indices:r}}}const E=[class extends S{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},j,class extends S{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},class extends S{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends S{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends S{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}},class extends S{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},I],$=E.length,F=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;const R=new Set([I.type,j.type]);class P{constructor(e,{isCaseSensitive:t=M.isCaseSensitive,includeMatches:n=M.includeMatches,minMatchCharLength:r=M.minMatchCharLength,ignoreLocation:s=M.ignoreLocation,findAllMatches:i=M.findAllMatches,location:o=M.location,threshold:c=M.threshold,distance:a=M.distance}={}){this.query=null,this.options={isCaseSensitive:t,includeMatches:n,minMatchCharLength:r,findAllMatches:i,ignoreLocation:s,location:o,threshold:c,distance:a},this.pattern=t?e:e.toLowerCase(),this.query=function(e,t={}){return e.split("|").map((e=>{let n=e.trim().split(F).filter((e=>e&&!!e.trim())),r=[];for(let e=0,s=n.length;e!(!e[D]&&!e[B]),K=e=>({[D]:Object.keys(e).map((t=>({[t]:e[t]})))});function U(e,t,{auto:n=!0}={}){const s=e=>{let i=Object.keys(e);const c=(e=>!!e[G])(e);if(!c&&i.length>1&&!H(e))return s(K(e));if((e=>!r(e)&&l(e)&&!H(e))(e)){const r=c?e[G]:i[0],s=c?e[z]:e[r];if(!o(s))throw new Error((e=>`Invalid value for key ${e}`)(r));const a={keyId:x(r),pattern:s};return n&&(a.searcher=T(s,t)),a}let a={children:[],operator:i[0]};return i.forEach((t=>{const n=e[t];r(n)&&n.forEach((e=>{a.children.push(s(e))}))})),a};return H(e)||(e=K(e)),s(e)}function V(e,t){const n=e.matches;t.matches=[],u(n)&&n.forEach((e=>{if(!u(e.indices)||!e.indices.length)return;const{indices:n,value:r}=e;let s={indices:n,value:r};e.key&&(s.key=e.key.src),e.idx>-1&&(s.refIndex=e.idx),t.matches.push(s)}))}function q(e,t){t.score=e.score}class J{constructor(e,t={},n){this.options={...M,...t},this.options.useExtendedSearch,this._keyStore=new m(this.options.keys),this.setCollection(e,n)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof O))throw new Error("Incorrect 'index' type");this._myIndex=t||k(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){u(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const t=[];for(let n=0,r=this._docs.length;n{let n=1;e.matches.forEach((({key:e,norm:r,score:s})=>{const i=e?e.weight:null;n*=Math.pow(0===s&&i?Number.EPSILON:s,(i||1)*(t?1:r))})),e.score=n}))}(l,{ignoreFieldNorm:a}),s&&l.sort(i),c(t)&&t>-1&&(l=l.slice(0,t)),function(e,t,{includeMatches:n=M.includeMatches,includeScore:r=M.includeScore}={}){const s=[];return n&&s.push(V),r&&s.push(q),e.map((e=>{const{idx:n}=e,r={item:t[n],refIndex:n};return s.length&&s.forEach((t=>{t(e,r)})),r}))}(l,this._docs,{includeMatches:n,includeScore:r})}_searchStringList(e){const t=T(e,this.options),{records:n}=this._myIndex,r=[];return n.forEach((({v:e,i:n,n:s})=>{if(!u(e))return;const{isMatch:i,score:o,indices:c}=t.searchIn(e);i&&r.push({item:e,idx:n,matches:[{score:o,value:e,norm:s,indices:c}]})})),r}_searchLogical(e){const t=U(e,this.options),n=(e,t,r)=>{if(!e.children){const{keyId:n,searcher:s}=e,i=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:s});return i&&i.length?[{idx:r,item:t,matches:i}]:[]}const s=[];for(let i=0,o=e.children.length;i{if(u(e)){let o=n(t,e,r);o.length&&(s[r]||(s[r]={idx:r,item:e,matches:[]},i.push(s[r])),o.forEach((({matches:e})=>{s[r].matches.push(...e)})))}})),i}_searchObjectList(e){const t=T(e,this.options),{keys:n,records:r}=this._myIndex,s=[];return r.forEach((({$:e,i:r})=>{if(!u(e))return;let i=[];n.forEach(((n,r)=>{i.push(...this._findMatches({key:n,value:e[r],searcher:t}))})),i.length&&s.push({idx:r,item:e,matches:i})})),s}_findMatches({key:e,value:t,searcher:n}){if(!u(t))return[];let s=[];if(r(t))t.forEach((({v:t,i:r,n:i})=>{if(!u(t))return;const{isMatch:o,score:c,indices:a}=n.searchIn(t);o&&s.push({score:c,key:e,value:t,idx:r,norm:i,indices:a})}));else{const{v:r,n:i}=t,{isMatch:o,score:c,indices:a}=n.searchIn(r);o&&s.push({score:c,key:e,value:r,norm:i,indices:a})}return s}}function Q(e){const t=new J(e,{keys:["name","groupName","items.name"],threshold:.3});return n=>n.length?t.search(n).map((e=>{let{item:t}=e;return t})):e}J.version="6.6.2",J.createIndex=k,J.parseIndex=function(e,{getFn:t=M.getFn,fieldNormWeight:n=M.fieldNormWeight}={}){const{keys:r,records:s}=e,i=new O({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(s),i},J.config=M,J.parseQuery=U,function(...e){W.push(...e)}(P)},1020:function(e,t,n){n(5228);var r=n(6540),s=60103;if("function"==typeof Symbol&&Symbol.for){var i=Symbol.for;s=i("react.element"),i("react.fragment")}var o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c=Object.prototype.hasOwnProperty,a={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,n){var r,i={},l=null,u=null;for(r in void 0!==n&&(l=""+n),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(u=t.ref),t)c.call(t,r)&&!a.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:s,type:e,key:l,ref:u,props:i,_owner:o.current}}t.jsx=l,t.jsxs=l},4848:function(e,t,n){e.exports=n(1020)}}]); +//# sourceMappingURL=6805.91801fdc27c6d89d84a5.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js.map b/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js.map new file mode 100644 index 00000000..bd405484 --- /dev/null +++ b/webpanel/6.6.0/6805.91801fdc27c6d89d84a5.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6805.91801fdc27c6d89d84a5.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Badge.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/ButtonGroup.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Table.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/groupOptions.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/valuteToArray.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/isOption.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/getOption.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/getOptions.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/getDisplayValue.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/flattenOptions.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/useFetch.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/debounce.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/getValue.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/getValues.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/highlightReducer.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/useSelect.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/useHighlight.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/classes.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/Components/Option.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/Components/OptionsList.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/lib/isSelected.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/Components/Options.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/SelectSearch.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/useClassName.js","webpack://tgstation-server-control-panel/./node_modules/fuse.js/dist/fuse.esm.js","webpack://tgstation-server-control-panel/./node_modules/react-select-search/dist/esm/fuzzySearch.js","webpack://tgstation-server-control-panel/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://tgstation-server-control-panel/./node_modules/react/jsx-runtime.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"variant\", \"pill\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n pill: false\n};\nvar Badge = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n pill = _ref.pill,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'span' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'badge');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, prefix, pill && prefix + \"-pill\", variant && prefix + \"-\" + variant)\n }));\n});\nBadge.displayName = 'Badge';\nBadge.defaultProps = defaultProps;\nexport default Badge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"size\", \"toggle\", \"vertical\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n vertical: false,\n toggle: false,\n role: 'group'\n};\nvar ButtonGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n toggle = _ref.toggle,\n vertical = _ref.vertical,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n var baseClass = prefix;\n if (vertical) baseClass = prefix + \"-vertical\";\n return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n className: classNames(className, baseClass, size && prefix + \"-\" + size, toggle && prefix + \"-toggle\")\n }));\n});\nButtonGroup.displayName = 'ButtonGroup';\nButtonGroup.defaultProps = defaultProps;\nexport default ButtonGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"striped\", \"bordered\", \"borderless\", \"hover\", \"size\", \"variant\", \"responsive\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar Table = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n striped = _ref.striped,\n bordered = _ref.bordered,\n borderless = _ref.borderless,\n hover = _ref.hover,\n size = _ref.size,\n variant = _ref.variant,\n responsive = _ref.responsive,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'table');\n var classes = classNames(className, decoratedBsPrefix, variant && decoratedBsPrefix + \"-\" + variant, size && decoratedBsPrefix + \"-\" + size, striped && decoratedBsPrefix + \"-striped\", bordered && decoratedBsPrefix + \"-bordered\", borderless && decoratedBsPrefix + \"-borderless\", hover && decoratedBsPrefix + \"-hover\");\n var table = /*#__PURE__*/React.createElement(\"table\", _extends({}, props, {\n className: classes,\n ref: ref\n }));\n\n if (responsive) {\n var responsiveClass = decoratedBsPrefix + \"-responsive\";\n\n if (typeof responsive === 'string') {\n responsiveClass = responsiveClass + \"-\" + responsive;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: responsiveClass\n }, table);\n }\n\n return table;\n});\nexport default Table;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nexport default function groupOptions(options) {\n const nextOptions = [];\n options.forEach((option, i) => {\n if ('groupId' in option) {\n const nextOption = _extends({}, option);\n\n const groupIndex = nextOptions.findIndex(el => 'groupId' in el && el.groupId === nextOption.groupId);\n nextOption.index = i;\n\n if (groupIndex > -1) {\n nextOptions[groupIndex].items.push(nextOption);\n } else {\n nextOptions.push({\n items: [nextOption],\n groupId: option.groupId,\n type: 'group',\n name: option.groupName\n });\n }\n } else {\n nextOptions.push(option);\n }\n });\n return nextOptions;\n}","export default function valueToArray(value) {\n if (!value) {\n return [];\n }\n\n return !Array.isArray(value) ? [value] : [...value];\n}","export default function isOption(option) {\n return option !== null && typeof option === 'object' && 'value' in option && 'name' in option;\n}","import isOption from './isOption';\nexport default function getOption(value, options) {\n if (isOption(value)) {\n return value;\n }\n\n let newValue = value;\n\n if (newValue === null && options.length) {\n let i = 0;\n let defaultOption = options[0];\n\n while (defaultOption && defaultOption.disabled) {\n if (options.length < i) {\n defaultOption = false;\n }\n\n i += 1;\n defaultOption = options[i];\n }\n\n if (defaultOption) {\n newValue = defaultOption.value;\n }\n } // eslint-disable-next-line eqeqeq\n\n\n return options.find(o => o.value == newValue);\n}","import valueToArray from './valuteToArray';\nimport getOption from './getOption';\nexport default function getOptions(value, oldValue, options, multiple) {\n if (!multiple) {\n const newOption = getOption(value, options);\n\n if (newOption) {\n return newOption;\n }\n\n return oldValue;\n }\n\n const oldOptions = valueToArray(oldValue);\n const newOptions = valueToArray(value).map(o => getOption(o, options)).filter(o => o !== null && o !== undefined);\n\n if (!oldOptions.length) {\n return newOptions;\n }\n\n if (!newOptions.length) {\n return oldOptions;\n }\n\n newOptions.forEach(newOption => {\n // eslint-disable-next-line eqeqeq\n const optionIndex = oldOptions.findIndex(o => o.value == newOption.value);\n\n if (optionIndex >= 0) {\n oldOptions.splice(optionIndex, 1);\n } else {\n oldOptions.push(newOption);\n }\n });\n return oldOptions;\n}","import isOption from './isOption';\nexport default function getDisplayValue(value) {\n if (Array.isArray(value)) {\n return value.map(o => isOption(o) && o.name).join(', ');\n }\n\n return isOption(value) ? value.name : '';\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nexport default function flattenOptions(options) {\n return options.map((option, i) => {\n if (option.type === 'group') {\n const id = `${option.name.replace(/\\s+/g, '-').toLowerCase()}-${i}`;\n return option.items.map(item => _extends({}, item, {\n groupId: id,\n groupName: option.name\n }));\n }\n\n return _extends({}, option, {\n index: i\n });\n }).flat();\n}","import { useEffect, useMemo, useState } from 'react';\nimport debounce from './lib/debounce';\nimport flattenOptions from './lib/flattenOptions';\nexport default function useFetch(q, defaultOptions, _ref) {\n let {\n debounceTime,\n filterOptions,\n getOptions\n } = _ref;\n const [fetching, setFetching] = useState(false);\n const [options, setOptions] = useState(() => flattenOptions(defaultOptions));\n const fetch = useMemo(() => {\n const filter = filterOptions || (op => () => op);\n\n if (!getOptions) {\n return s => setOptions(flattenOptions(filter(defaultOptions)(s)));\n }\n\n return debounce(s => {\n const optionsReq = getOptions(s, defaultOptions);\n setFetching(true);\n Promise.resolve(optionsReq).then(newOptions => {\n setOptions(flattenOptions(filter(newOptions)(s)));\n }).finally(() => setFetching(false));\n }, debounceTime);\n }, [filterOptions, defaultOptions, getOptions, debounceTime]);\n useEffect(() => setOptions(defaultOptions), [defaultOptions]);\n useEffect(() => fetch(q), [fetch, q]);\n return {\n options,\n setOptions,\n fetching\n };\n}","export default function debounce(func, wait) {\n let timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n func(...args);\n }, wait);\n };\n}","import isOption from './isOption';\nexport default function getValue(option) {\n if (!option) {\n return null;\n }\n\n return isOption(option) ? option.value : null;\n}","import getValue from './getValue';\nexport default function getValues(options) {\n if (Array.isArray(options)) {\n return options.map(o => getValue(o)).filter(v => v !== null);\n }\n\n return getValue(options);\n}","export default function highlightReducer(highlighted, _ref) {\n let {\n key,\n options\n } = _ref;\n const max = options.length - 1;\n let newHighlighted = key === 'ArrowDown' ? highlighted + 1 : highlighted - 1;\n\n if (newHighlighted < 0) {\n newHighlighted = max;\n } else if (newHighlighted > max) {\n newHighlighted = 0;\n }\n\n const option = options[newHighlighted];\n\n if (option && option.disabled) {\n return highlightReducer(newHighlighted, {\n key,\n options\n });\n }\n\n return newHighlighted;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { useEffect, useMemo, useState, useRef, useCallback } from 'react';\nimport groupOptions from './lib/groupOptions';\nimport getOptions from './lib/getOptions';\nimport getDisplayValue from './lib/getDisplayValue';\nimport useFetch from './useFetch';\nimport getValues from './lib/getValues';\nimport useHighlight from './useHighlight';\nexport default function useSelect(_ref) {\n let {\n value: defaultValue = null,\n options: defaultOptions = [],\n search: canSearch = false,\n multiple = false,\n disabled = false,\n closeOnSelect = true,\n getOptions: getOptionsFn = null,\n filterOptions = null,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n debounce = 0\n } = _ref;\n const ref = useRef(null);\n const [value, setValue] = useState(null);\n const [search, setSearch] = useState('');\n const [focus, setFocus] = useState(false);\n const {\n options,\n fetching\n } = useFetch(search, defaultOptions, {\n getOptions: getOptionsFn,\n filterOptions,\n debounceTime: debounce\n });\n const onSelect = useCallback(newValue => {\n const newOption = getOptions(newValue, value, Array.isArray(value) ? [...value, ...options] : options, multiple);\n setValue(newOption);\n onChange(getValues(newOption), newOption);\n\n if (closeOnSelect) {\n ref.current.blur();\n }\n }, [closeOnSelect, multiple, onChange, value, options]);\n const [highlighted, keyboardEvents] = useHighlight(-1, options, onSelect, ref);\n const snapshot = useMemo(() => ({\n options: groupOptions(options),\n option: value,\n displayValue: getDisplayValue(value),\n value: getValues(value),\n search,\n fetching,\n focus,\n highlighted,\n disabled\n }), [disabled, fetching, focus, highlighted, search, value, options]);\n const onMouseDown = useCallback(e => {\n e.preventDefault();\n onSelect(e.currentTarget.value);\n }, [onSelect]);\n const onFocusCb = useCallback(e => {\n setFocus(true);\n onFocus(e);\n }, [onFocus]);\n const onBlurCb = useCallback(e => {\n setFocus(false);\n setSearch('');\n onBlur(e);\n }, [onBlur]);\n const valueProps = useMemo(() => _extends({\n tabIndex: '0',\n readOnly: !canSearch\n }, keyboardEvents, {\n onFocus: onFocusCb,\n onBlur: onBlurCb,\n onChange: canSearch ? _ref2 => {\n let {\n target\n } = _ref2;\n return setSearch(target.value);\n } : null,\n disabled,\n ref\n }), [canSearch, keyboardEvents, onFocusCb, onBlurCb, disabled]);\n const optionProps = useMemo(() => ({\n tabIndex: '-1',\n onMouseDown\n }), [onMouseDown]);\n useEffect(() => {\n setValue(getOptions(defaultValue, null, options, multiple));\n }, [defaultValue, multiple, options]);\n return [snapshot, valueProps, optionProps, setValue];\n}","import { useCallback, useReducer } from 'react';\nimport highlightReducer from './highlightReducer';\nexport default function useHighlight(defaultHighlighted, options, onSelect, ref) {\n const [highlighted, dispatchHighlighted] = useReducer(highlightReducer, defaultHighlighted);\n const onKeyDown = useCallback(e => {\n const {\n key\n } = e;\n\n if (['ArrowDown', 'ArrowUp'].includes(key)) {\n e.preventDefault();\n dispatchHighlighted({\n key,\n options\n });\n }\n }, [options]);\n const onKeyPress = useCallback(e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n const selected = options[highlighted];\n\n if (selected) {\n onSelect(selected.value);\n }\n }\n }, [options, highlighted, onSelect]);\n const onKeyUp = useCallback(e => {\n if (e.key === 'Escape') {\n e.preventDefault();\n ref.current.blur();\n }\n }, [ref]);\n return [highlighted, {\n onKeyPress,\n onKeyDown,\n onKeyUp\n }];\n}","export default function classes(classNames) {\n return Object.entries(classNames).filter(_ref => {\n let [cls, display] = _ref;\n return cls && display;\n }).map(_ref2 => {\n let [cls] = _ref2;\n return cls;\n }).join(' ');\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from '../lib/classes';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction Option(_ref) {\n let {\n optionProps,\n highlighted,\n selected,\n option,\n cls,\n renderOption\n } = _ref;\n\n const props = _extends({}, optionProps, {\n value: option.value,\n disabled: option.disabled\n });\n\n const className = classes({\n [cls('option')]: true,\n [cls('is-selected')]: selected,\n [cls('is-highlighted')]: highlighted\n });\n return /*#__PURE__*/_jsxs(\"li\", {\n className: cls('row'),\n role: \"menuitem\",\n \"data-index\": option.index,\n \"data-value\": escape(option.value),\n children: [renderOption && renderOption(props, option, {\n selected,\n highlighted\n }, className), !renderOption && /*#__PURE__*/_jsx(\"button\", _extends({\n type: \"button\",\n className: className\n }, props, {\n children: option.name\n }))]\n }, option.value);\n}\n\nOption.defaultProps = {\n renderOption: null\n};\nOption.propTypes = process.env.NODE_ENV !== \"production\" ? {\n option: PropTypes.shape({\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n index: PropTypes.number\n }).isRequired,\n highlighted: PropTypes.bool.isRequired,\n selected: PropTypes.bool.isRequired,\n optionProps: PropTypes.shape({\n tabIndex: PropTypes.string.isRequired,\n onMouseDown: PropTypes.func.isRequired\n }).isRequired,\n cls: PropTypes.func.isRequired,\n renderOption: PropTypes.func\n} : {};\nexport default /*#__PURE__*/memo(Option);","import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport Option from './Option';\nimport isSelected from '../lib/isSelected';\nimport { optionType } from '../types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction OptionsList(_ref) {\n let {\n options,\n optionProps,\n snapshot,\n renderOption,\n renderGroupHeader,\n cls\n } = _ref;\n return /*#__PURE__*/_jsx(\"ul\", {\n className: cls('options'),\n children: options.map(o => {\n if (o.type === 'group') {\n return /*#__PURE__*/_jsx(\"li\", {\n role: \"none\",\n className: cls('row'),\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: cls('group'),\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: cls('group-header'),\n children: renderGroupHeader ? renderGroupHeader(o.name) : o.name\n }), /*#__PURE__*/_jsx(\"ul\", {\n className: cls('options'),\n children: /*#__PURE__*/_jsx(OptionsList, {\n optionProps: optionProps,\n snapshot: snapshot,\n options: o.items,\n renderOption: renderOption,\n renderGroupHeader: renderGroupHeader,\n cls: cls\n })\n })]\n })\n }, o.groupId);\n }\n\n return /*#__PURE__*/_jsx(Option, {\n selected: isSelected(o, snapshot.option),\n highlighted: snapshot.highlighted === o.index,\n option: o,\n optionProps: optionProps,\n cls: cls,\n renderOption: renderOption\n }, o.value);\n })\n });\n}\n\nOptionsList.defaultProps = {\n renderGroupHeader: null,\n renderOption: null\n};\nOptionsList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n options: PropTypes.arrayOf(optionType).isRequired,\n optionProps: PropTypes.shape({}).isRequired,\n snapshot: PropTypes.shape({\n highlighted: PropTypes.number.isRequired,\n option: PropTypes.oneOfType([optionType, PropTypes.arrayOf(optionType)])\n }).isRequired,\n cls: PropTypes.func.isRequired,\n renderGroupHeader: PropTypes.func,\n renderOption: PropTypes.func\n} : {};\nexport default /*#__PURE__*/memo(OptionsList);","export default function isSelected(itemValue, selectedValue) {\n if (!selectedValue) {\n return false;\n }\n\n return Array.isArray(selectedValue) // eslint-disable-next-line eqeqeq\n ? selectedValue.findIndex(item => item.value == itemValue.value) >= 0 // eslint-disable-next-line eqeqeq\n : selectedValue.value == itemValue.value;\n}","import { memo, useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { optionType, valueType } from '../types';\nimport OptionsList from './OptionsList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction Options(_ref) {\n let {\n options,\n optionProps,\n snapshot,\n cls,\n renderGroupHeader,\n renderOption,\n emptyMessage\n } = _ref;\n const selectRef = useRef(null);\n const {\n value,\n highlighted\n } = snapshot;\n const renderEmptyMessage = useCallback(() => {\n if (emptyMessage === null) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(\"li\", {\n className: cls('not-found'),\n children: typeof emptyMessage === 'function' ? emptyMessage() : emptyMessage\n });\n }, [emptyMessage, cls]);\n useEffect(() => {\n const {\n current\n } = selectRef;\n\n if (!current || highlighted < 0 && value === null) {\n return;\n }\n\n const val = Array.isArray(value) ? value[0] : value;\n const query = highlighted > -1 ? `[data-index=\"${highlighted}\"]` : `[data-value=\"${escape(val)}\"]`;\n const selected = current.querySelector(query);\n\n if (selected) {\n const rect = current.getBoundingClientRect();\n const selectedRect = selected.getBoundingClientRect();\n current.scrollTop = selected.offsetTop - rect.height / 2 + selectedRect.height / 2;\n }\n }, [value, highlighted, selectRef]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _jsx(\"div\", {\n className: cls('select'),\n ref: selectRef,\n onMouseDown: e => e.preventDefault(),\n children: options.length ? /*#__PURE__*/_jsx(OptionsList, {\n optionProps: optionProps,\n snapshot: snapshot,\n options: options,\n renderOption: renderOption,\n renderGroupHeader: renderGroupHeader,\n cls: cls\n }) : /*#__PURE__*/_jsx(\"ul\", {\n className: cls('options'),\n children: renderEmptyMessage()\n })\n })\n );\n}\n\nOptions.defaultProps = {\n renderOption: null,\n renderGroupHeader: null,\n emptyMessage: null\n};\nOptions.propTypes = process.env.NODE_ENV !== \"production\" ? {\n options: PropTypes.arrayOf(optionType).isRequired,\n optionProps: PropTypes.shape({\n tabIndex: PropTypes.string.isRequired,\n onMouseDown: PropTypes.func.isRequired\n }).isRequired,\n snapshot: PropTypes.shape({\n highlighted: PropTypes.number.isRequired,\n value: valueType\n }).isRequired,\n cls: PropTypes.func.isRequired,\n renderGroupHeader: PropTypes.func,\n renderOption: PropTypes.func,\n emptyMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n} : {};\nexport default /*#__PURE__*/memo(Options);","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { forwardRef, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport useSelect from './useSelect';\nimport { optionType, valueType } from './types';\nimport Options from './Components/Options';\nimport useClassName from './useClassName';\nimport classes from './lib/classes';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SelectSearch = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n value: defaultValue,\n disabled,\n placeholder,\n multiple,\n search,\n autoFocus,\n autoComplete,\n options: defaultOptions,\n id,\n onChange,\n onFocus,\n onBlur,\n printOptions,\n closeOnSelect,\n className,\n renderValue,\n renderOption,\n renderGroupHeader,\n getOptions,\n filterOptions,\n debounce,\n emptyMessage\n } = _ref;\n const cls = useClassName(className);\n const [snapshot, valueProps, optionProps] = useSelect({\n options: defaultOptions,\n value: defaultValue === null && (placeholder || multiple) ? '' : defaultValue,\n multiple,\n disabled,\n search,\n onChange,\n onFocus,\n onBlur,\n closeOnSelect: closeOnSelect && (!multiple || ['on-focus', 'always'].includes(printOptions)),\n getOptions,\n filterOptions,\n debounce\n });\n const wrapperClass = classes({\n [cls('container')]: true,\n [cls('is-disabled')]: disabled,\n [cls('is-loading')]: snapshot.fetching,\n [cls('has-focus')]: snapshot.focus\n });\n let shouldRenderOptions;\n\n switch (printOptions) {\n case 'never':\n shouldRenderOptions = false;\n break;\n\n case 'always':\n shouldRenderOptions = true;\n break;\n\n case 'on-focus':\n shouldRenderOptions = snapshot.focus;\n break;\n\n default:\n shouldRenderOptions = !disabled && (snapshot.focus || multiple);\n break;\n }\n\n const shouldRenderValue = !multiple || placeholder || search;\n\n const props = _extends({}, valueProps, {\n placeholder,\n autoFocus,\n autoComplete,\n value: snapshot.focus && search ? snapshot.search : snapshot.displayValue\n });\n\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n className: wrapperClass,\n id: id,\n children: [shouldRenderValue && /*#__PURE__*/_jsxs(\"div\", {\n className: cls('value'),\n children: [renderValue && renderValue(props, snapshot, cls('input')), !renderValue && /*#__PURE__*/_jsx(\"input\", _extends({}, props, {\n className: cls('input')\n }))]\n }), shouldRenderOptions && /*#__PURE__*/_jsx(Options, {\n options: snapshot.options,\n optionProps: optionProps,\n snapshot: snapshot,\n cls: cls,\n emptyMessage: emptyMessage,\n renderOption: renderOption,\n renderGroupHeader: renderGroupHeader\n })]\n });\n});\nSelectSearch.defaultProps = {\n // Data\n getOptions: null,\n filterOptions: null,\n value: null,\n // Interaction\n multiple: false,\n search: false,\n disabled: false,\n printOptions: 'auto',\n closeOnSelect: true,\n debounce: 0,\n // Attributes\n placeholder: null,\n id: null,\n autoFocus: false,\n autoComplete: 'on',\n // Design\n className: 'select-search',\n // Renderers\n renderOption: undefined,\n renderGroupHeader: undefined,\n renderValue: undefined,\n emptyMessage: null,\n // Events\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {}\n};\nSelectSearch.propTypes = process.env.NODE_ENV !== \"production\" ? {\n // Data\n options: PropTypes.arrayOf(optionType).isRequired,\n getOptions: PropTypes.func,\n filterOptions: PropTypes.func,\n value: valueType,\n // Interaction\n multiple: PropTypes.bool,\n search: PropTypes.bool,\n disabled: PropTypes.bool,\n printOptions: PropTypes.oneOf(['auto', 'always', 'never', 'on-focus']),\n closeOnSelect: PropTypes.bool,\n debounce: PropTypes.number,\n // Attributes\n placeholder: PropTypes.string,\n id: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n // Design\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n // Renderers\n renderOption: PropTypes.func,\n renderGroupHeader: PropTypes.func,\n renderValue: PropTypes.func,\n emptyMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n // Events\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n} : {};\nexport default /*#__PURE__*/memo(SelectSearch);","import { useCallback } from 'react';\nexport default function useClassName(className) {\n return useCallback(key => {\n if (typeof className === 'function') {\n return className(key);\n }\n\n if (key.indexOf('container') === 0) {\n return key.replace('container', className);\n }\n\n if (key.indexOf('is-') === 0 || key.indexOf('has-') === 0) {\n return key;\n }\n\n return `${className.split(' ')[0]}__${key}`;\n }, [className]);\n}","/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport Fuse from 'fuse.js';\nexport default function fuzzySearch(options) {\n const fuse = new Fuse(options, {\n keys: ['name', 'groupName', 'items.name'],\n threshold: 0.3\n });\n return value => {\n if (!value.length) {\n return options;\n }\n\n return fuse.search(value).map(_ref => {\n let {\n item\n } = _ref;\n return item;\n });\n };\n}","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"names":["_excluded","Badge","_ref","ref","bsPrefix","variant","pill","className","_ref$as","as","Component","props","prefix","displayName","defaultProps","ButtonGroup","size","toggle","vertical","rest","baseClass","role","Table","striped","bordered","borderless","hover","responsive","decoratedBsPrefix","classes","table","responsiveClass","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","groupOptions","options","nextOptions","forEach","option","nextOption","groupIndex","findIndex","el","groupId","index","items","push","type","name","groupName","valueToArray","value","Array","isArray","isOption","getOption","newValue","defaultOption","disabled","find","o","getOptions","oldValue","multiple","newOption","oldOptions","newOptions","map","filter","optionIndex","splice","getDisplayValue","join","flattenOptions","id","replace","toLowerCase","item","flat","useFetch","q","defaultOptions","debounceTime","filterOptions","fetching","setFetching","useState","setOptions","fetch","useMemo","op","func","wait","timeout","_len","args","_key","clearTimeout","setTimeout","debounce","s","optionsReq","Promise","resolve","then","finally","useEffect","getValue","getValues","v","highlightReducer","highlighted","max","newHighlighted","useSelect","defaultValue","search","canSearch","closeOnSelect","getOptionsFn","onChange","onFocus","onBlur","useRef","setValue","setSearch","focus","setFocus","onSelect","useCallback","current","blur","keyboardEvents","defaultHighlighted","dispatchHighlighted","useReducer","onKeyDown","e","includes","preventDefault","onKeyPress","selected","onKeyUp","useHighlight","snapshot","displayValue","onMouseDown","currentTarget","onFocusCb","onBlurCb","valueProps","tabIndex","readOnly","_ref2","optionProps","classNames","entries","cls","display","Option","renderOption","escape","children","propTypes","memo","OptionsList","renderGroupHeader","itemValue","selectedValue","Options","emptyMessage","selectRef","renderEmptyMessage","val","query","querySelector","rect","getBoundingClientRect","selectedRect","scrollTop","offsetTop","height","SelectSearch","forwardRef","placeholder","autoFocus","autoComplete","printOptions","renderValue","indexOf","split","useClassName","wrapperClass","shouldRenderOptions","shouldRenderValue","undefined","getTag","INFINITY","result","baseToString","isString","isNumber","isBoolean","isObject","isObjectLike","isDefined","isBlank","trim","toString","MISSING_KEY_PROPERTY","INVALID_KEY_WEIGHT_VALUE","hasOwn","KeyStore","constructor","keys","_keys","_keyMap","totalWeight","obj","createKey","weight","get","keyId","toJSON","JSON","stringify","path","src","getFn","createKeyPath","createKeyId","Error","Config","isCaseSensitive","includeScore","shouldSort","sortFn","a","b","score","idx","includeMatches","findAllMatches","minMatchCharLength","location","threshold","distance","useExtendedSearch","list","arr","deepGet","len","ignoreLocation","ignoreFieldNorm","fieldNormWeight","SPACE","FuseIndex","norm","mantissa","cache","Map","m","Math","pow","numTokens","match","has","n","parseFloat","round","set","clear","isCreated","setIndexRecords","setSources","docs","records","setKeys","_keysMap","create","doc","docIndex","_addString","_addObject","add","removeAt","getValueForItemAtKeyId","record","$","keyIndex","subRecords","stack","nestedArrIndex","pop","subRecord","k","createIndex","myIndex","computeScore$1","pattern","errors","currentLocation","expectedLocation","accuracy","proximity","abs","MAX_BITS","text","patternAlphabet","patternLen","textLen","min","currentThreshold","bestLocation","computeMatches","matchMask","lastBitArr","finalScore","binMax","mask","binMin","binMid","floor","start","finish","bitArr","j","charMatch","charAt","isMatch","indices","matchmask","end","convertMaskToIndices","createPatternAlphabet","char","BitapSearch","chunks","addChunk","startIndex","alphabet","remainder","substr","searchIn","allIndices","totalScore","hasMatches","BaseMatch","isMultiMatch","getMatch","multiRegex","isSingleMatch","singleRegex","exp","matches","FuzzyMatch","super","_bitapSearch","IncludeMatch","searchers","startsWith","endsWith","searchersLen","SPACE_RE","MultiMatchSet","Set","ExtendedSearch","results","queryItem","found","searcher","token","parseQuery","condition","_","numMatches","qLen","pLen","registeredSearchers","createSearcher","searcherClass","LogicalOperator","KeyType","isExpression","convertToExplicit","parse","auto","next","isQueryPath","isPath","isLeaf","LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY","node","operator","transformMatches","data","refIndex","transformScore","Fuse","_keyStore","setCollection","_docs","_myIndex","remove","predicate","getIndex","limit","_searchStringList","_searchObjectList","_searchLogical","Number","EPSILON","computeScore","sort","slice","transformers","transformer","format","expression","evaluate","_findMatches","res","child","resultMap","expResults","fuzzySearch","fuse","version","parseIndex","config","register","f","g","Symbol","for","h","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","__self","__source","c","d","l","$$typeof","_owner","exports","jsx","jsxs","module"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js b/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js new file mode 100644 index 00000000..e7b6e00f --- /dev/null +++ b/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6822],{6822:function(e,t,r){r.r(t),r.d(t,{default:function(){return P}});var n=r(6540),a=r(1948),s=r(1008),i=r(5677),o=r(5615),c=r(1105),l=r(1208),u=r(5192),m=r(8065),d=r(4180),h=r(6670),p=r.n(h),E=r(6105),f=r(4366),w=r(1930),g=r(9013),v=r(2576),A=r(1824),y=r(4173),b=r(5301),S=r(8143),R=r(379),x=r(7864),k=r(4580);var O=r(664),C=r(7567),N=r(7255);class I extends n.Component{constructor(e,t){super(e),this.state={loading:!1,errors:[],prefix:t.serverInfo.validInstancePaths?.length?t.serverInfo.validInstancePaths[0]:void 0,tab:"quick",performingQuickSetup:!1,quickSetupStages:[]},this.submit=this.submit.bind(this),this.quickStart=this.quickStart.bind(this)}addError(e){this.setState((t=>{const r=Array.from(t.errors);return r.push(e),{errors:r}}))}render(){if(this.state.loading)return n.createElement(N.default,{text:"view.instance.create.loading"});const e=this.context.serverInfo.validInstancePaths;return n.createElement("div",{className:"text-center"},this.state.errors.map(((e,t)=>{if(e)return n.createElement(C.Ay,{key:t,error:e,onClose:()=>this.setState((e=>{const r=Array.from(e.errors);return r[t]=void 0,{errors:r}}))})})),n.createElement("h3",null,n.createElement(m.A,{id:"view.instance.create.title"})),this.state.performingQuickSetup?n.createElement("div",null,n.createElement(N.default,{text:"view.instance.create.quick.active"}),n.createElement("ul",null,this.state.quickSetupStages)):n.createElement(a.A,{activeKey:this.state.tab,onSelect:e=>{e&&this.setState({tab:e})},id:"create-instance-tabs",className:"justify-content-center mb-3 mt-4 flex-column flex-md-row"},n.createElement(s.A,{eventKey:"quick",title:n.createElement(m.A,{id:"view.instance.create.quick"})},this.renderQuickSetup()),n.createElement(s.A,{eventKey:"manual",title:n.createElement(m.A,{id:"view.instance.create.manual"})},n.createElement(l.A,{onSubmit:()=>{this.submit()}},n.createElement(c.A,{className:"mx-auto",lg:5,md:8},n.createElement(l.A.Group,{controlId:"name"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.name"}))),n.createElement(l.A.Control,{type:"text",onChange:e=>{const t=e.target.value;this.setState({instanceName:t})},value:this.state.instanceName,required:!0})),n.createElement(l.A.Group,{controlId:"path"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.path"}))),n.createElement(u.A,{className:"mb-1"},null!=e?n.createElement(u.A.Prepend,{className:"flex-grow-1 flex-grow-md-0"},n.createElement(u.A.Text,null,n.createElement("span",null,n.createElement(m.A,{id:"view.instance.create.path.prefix"}))),n.createElement(l.A.Control,{className:"rounded-0 flex-grow-1 flex-grow-md-0 flex-shrink-0 flex-shrink-md-1 w-auto",as:"select",custom:!0,required:!0,onChange:e=>{this.setState({prefix:e.target.value})}},e.map((e=>n.createElement("option",{key:e,value:e,selected:this.state.prefix==e},e,"/"))))):null,n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",required:!0,onChange:e=>{const t=e.target.value;this.setState({instancePath:t})},value:this.state.instancePath}))),n.createElement(o.A,{type:"submit",variant:"success"},n.createElement(m.A,{id:"view.instance.create.submit"})))))))}renderQuickSetup(){const e=this.context.serverInfo.validInstancePaths;return n.createElement("div",null,n.createElement(i.A,{className:"clearfix",variant:"primary"},n.createElement(m.A,{id:"view.instance.create.quick.notice",values:{br:n.createElement("br",null)}})),n.createElement(i.A,{className:"clearfix",variant:"error"},n.createElement(m.A,{id:"view.instance.create.quick.warning"})),n.createElement(l.A,{onSubmit:()=>{this.quickStart()}},n.createElement(c.A,{className:"mx-auto",lg:5,md:8},n.createElement(l.A.Group,{controlId:"quickname"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.name"}))),n.createElement(l.A.Control,{type:"text",onChange:e=>{const t=e.target.value;this.setState({instanceName:t})},value:this.state.instanceName,required:!0})),n.createElement(l.A.Group,{controlId:"quickpath"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.path"}))),n.createElement(u.A,{className:"mb-1"},null!=e?n.createElement(u.A.Prepend,{className:"flex-grow-1 flex-grow-md-0"},n.createElement(u.A.Text,null,n.createElement("span",null,n.createElement(m.A,{id:"view.instance.create.path.prefix"}))),n.createElement(l.A.Control,{className:"rounded-0 flex-grow-1 flex-grow-md-0 flex-shrink-0 flex-shrink-md-1 w-auto",as:"select",custom:!0,required:!0,onChange:e=>{this.setState({prefix:e.target.value})}},e.map((e=>n.createElement("option",{key:e,value:e,selected:this.state.prefix==e},e,"/"))))):null,n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",required:!0,onChange:e=>{const t=e.target.value;this.setState({instancePath:t})},value:this.state.instancePath}))),n.createElement(l.A.Group,{controlId:"repoowner"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.repo_owner"}))),n.createElement(u.A,{className:"mb-1"},n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",required:!0,onChange:e=>{const t=e.target.value;this.setState({repoOwner:t})},value:this.state.repoOwner}))),n.createElement(l.A.Group,{controlId:"reponame"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.repo_name"}))),n.createElement(u.A,{className:"mb-1"},n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",required:!0,onChange:e=>{const t=e.target.value;this.setState({repoName:t})},value:this.state.repoName}))),n.createElement(l.A.Group,{controlId:"repobranch"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.repo_branch"}))),n.createElement(u.A,{className:"mb-1"},n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",onChange:e=>{const t=e.target.value;this.setState({repoBranch:t})},value:this.state.repoBranch}))),n.createElement(l.A.Group,{controlId:"accessuser"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.access_user"}))),n.createElement(u.A,{className:"mb-1"},n.createElement(l.A.Control,{type:"text",className:"flex-grow-1 w-100 w-md-auto",onChange:e=>{const t=e.target.value;this.setState({accessUser:t})},value:this.state.accessUser}))),n.createElement(l.A.Group,{controlId:"accesstoken"},n.createElement(l.A.Label,null,n.createElement("h5",null,n.createElement(m.A,{id:"view.instance.create.access_token"}))),n.createElement(u.A,{className:"mb-1"},n.createElement(l.A.Control,{type:"password",className:"flex-grow-1 w-100 w-md-auto",onChange:e=>{const t=e.target.value;this.setState({accessToken:t})},value:this.state.accessToken}))),n.createElement(o.A,{type:"submit",variant:"success"},n.createElement(m.A,{id:"view.instance.create.quick.submit"})))))}pushStage(e){this.setState((t=>{const r=[...t.quickSetupStages];return r.push(n.createElement("li",null,e)),{quickSetupStages:r}}))}async quickStart(){if(!(this.state.instancePath&&this.state.instanceName&&this.state.repoName&&this.state.repoOwner))return;this.setState({performingQuickSetup:!0,quickSetupStages:[]}),this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.yml"}));const e=this.state.repoBranch,t=await k.A.getFile(this.state.repoOwner,this.state.repoName,".tgs.yml",e);if(t.code===b.s.ERROR)return this.addError(t.error),void this.setState({performingQuickSetup:!1});const r=window.atob(t.payload);let a;try{a=p().parse(r)}catch{return this.addError(new y.Ay(y.O4.BAD_YML,{void:!0})),void this.setState({performingQuickSetup:!1})}1!==a.version&&(this.addError(new y.Ay(y.O4.BAD_TGS_YML_VERSION,{void:!0})),this.setState({performingQuickSetup:!1}));const s=(this.context.serverInfo.windowsHost?a.windows_scripts:a.linux_scripts)??{},i=function(e){switch(e.security?.toLowerCase()){case"ultrasafe":return v.GZ.Ultrasafe;case"safe":return v.GZ.Safe;case"trusted":return v.GZ.Trusted;default:return null}}(a)??v.GZ.Safe;try{const t=new Map,r=Object.keys(s);if(r.length>0)for(const a of r){const r=s[a];this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.download_scripts",values:{script:a}}));const i=await k.A.getFile(this.state.repoOwner,this.state.repoName,r,e);if(i.code===b.s.ERROR)return this.addError(i.error),void this.setState({performingQuickSetup:!1});t.set(a,i.payload)}this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.create_instance"}));const o=(this.state.prefix?this.state.prefix+"/":"")+this.state.instancePath,c=await A.A.createInstance({name:this.state.instanceName,path:o,configurationType:v.HB.HostWrite});if(c.code===b.s.ERROR)return this.addError(c.error),void this.setState({performingQuickSetup:!1});const l=c.payload.id,u=await A.A.editInstance({id:l,online:!0});if(u.code===b.s.ERROR)return this.addError(u.error),void this.setState({performingQuickSetup:!1});this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.cloning"}));const d=await S.A.cloneRepository(l,{origin:`https://github.com/${this.state.repoOwner}/${this.state.repoName}`,updateSubmodules:!0,reference:e});if(d.code===b.s.ERROR)return this.addError(d.error),void this.setState({performingQuickSetup:!1});if(R.default.registerJob(d.payload.activeJob,l),a.byond){this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.byond",values:{version:a.byond}}));const e=await g.A.switchActive(l,{version:a.byond,engine:v.p3.Byond});if(e.code===b.s.ERROR)return this.addError(e.error),void this.setState({performingQuickSetup:!1});R.default.registerJob(e.payload.installJob,l)}if(i!=v.GZ.Safe){this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.settings"}));const e=await w.A.updateDeployInfo(l,{apiValidationSecurityLevel:i});if(e.code===b.s.ERROR)return this.addError(e.error),void this.setState({performingQuickSetup:!1});const t=await f.A.updateWatchdogStatus(l,{securityLevel:i});if(t.code===b.s.ERROR)return this.addError(t.error),void this.setState({performingQuickSetup:!1})}const h=e=>{const t=window.atob(e),r=t.length,n=new Uint8Array(r);for(let e=0;e{const i=await k.A.getDirectoryContents(this.state.repoOwner,this.state.repoName,t,e);if(i.code===b.s.ERROR)return this.addError(i.error),this.setState({performingQuickSetup:!1}),void(r=!1);for(const o of i.payload){const i=s+o.path.substring(t.length);if(o.isDirectory){if(await a(o.path,i),!r)return}else{this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.static.transfer",values:{path:o.path,targetPath:s}}));const t=await k.A.getFile(this.state.repoOwner,this.state.repoName,o.path,e);if(t.code===b.s.ERROR)return this.addError(t.error),this.setState({performingQuickSetup:!1}),void(r=!1);const a=await E.A.writeConfigFile(l,{path:`GameStaticFiles/${i}`},h(t.payload));if(a.code===b.s.ERROR)return this.addError(a.error),this.setState({performingQuickSetup:!1}),void(r=!1)}}};if(t.sources)for(const e of t.sources)await a(e,t.name);else await a(t.name,t.name);if(!r)return}else{this.pushStage(n.createElement(m.A,{id:"view.instance.create.quick.stage.static",values:{script:t.name}}));const e=await E.A.addDirectory(l,{path:`GameStaticFiles/${t.name}`});if(e.code===b.s.ERROR)return this.addError(e.error),void this.setState({performingQuickSetup:!1})}O.M2.selectedinstanceid=l,this.props.history.push(O.Sb.instanceedit.link??O.Sb.instanceedit.route)}catch(e){this.addError(new y.Ay(y.O4.BAD_YML,{jsError:e})),this.setState({performingQuickSetup:!1})}}async submit(){if(!this.state.instancePath||!this.state.instanceName)return;const e=(this.state.prefix?this.state.prefix+"/":"")+this.state.instancePath;this.setState({loading:!0});const t=await A.A.createInstance({name:this.state.instanceName,path:e});if(t.code===b.s.ERROR)return this.setState({loading:!1}),void this.addError(t.error);O.M2.selectedinstanceid=t.payload.id,this.props.history.push(O.Sb.instancelist.link??O.Sb.instancelist.route)}}I.contextType=x.U;var P=(0,d.y)(I)},4580:function(e,t,r){r.d(t,{A:function(){return E}});var n=r(3441),a=r(8763),s=r(3437),i=r(4101),o=r(4173),c=r(5301),l=r(8437),u=r(7602);var m=e=>new Promise((t=>{setTimeout(t,e)}));async function d(e,t,r){const n=e.endpoint.merge(t,r);return l.Ay.githubtoken.value&&(n.headers.authorization=`token ${l.Ay.githubtoken.value}`),e(n)}async function h(){return l.Ay.githubtoken.value?{type:"token",tokenType:"pat",token:l.Ay.githubtoken.value}:{type:"unauthenticated"}}const p=()=>Object.assign(h.bind(null),{hook:d.bind(null)});var E=new class extends i.TypedEmitter{constructor(){super(),this.apiClient=void 0;const e=s.E.plugin(n.L,a.A);this.apiClient=new e({authStrategy:p,userAgent:"tgstation-server-control-panel/"+u.xv,baseUrl:"https://api.github.com",throttle:{onRateLimit:(e,t)=>(console.warn(`Request quota exhausted for request ${t.method} ${t.url}`),0===t.request.retryCount&&(console.log(`Retrying after ${e} seconds!`),!0)),onSecondaryRateLimit:(e,t)=>{console.warn(`Abuse detected for request ${t.method} ${t.url}`)}}})}async getLatestDefaultCommit(e,t){try{const r=await this.apiClient.repos.get({owner:e,repo:t}),n=await this.apiClient.repos.getBranch({owner:e,repo:t,branch:r.data.default_branch});return new c.A({code:c.s.OK,payload:n.data.commit.sha})}catch(e){return new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}async getVersions({owner:e,repo:t,current:r,all:n}){let a,s=0;try{a=await this.apiClient.paginate(this.apiClient.repos.listReleases,{owner:e,repo:t},((e,t)=>e.data.reduce(((e,a)=>{const i=/tgstation-server-v([\d.]+)/.exec(a.name??"");if(!i)return e;if(parseInt(i[1][0])<4)return e;const o=i[1];let c=!1;if(o<=r){if(s>=3&&!n)return t(),e;s++,c=!0}return e.push({version:o,body:a.body??"",current:o===r,old:c}),e}),[])))}catch(e){return new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new c.A({code:c.s.OK,payload:a})}transformFullPR(e){return{number:e.number,title:e.title,author:e.user?.login??"ghost",state:e.merged_at?"merged":e.state,link:e.html_url,head:e.head.sha,tail:e.base.sha,testmergelabel:e.labels.some((e=>e.name?.toLowerCase().includes("testmerge")||e.name?.toLowerCase().includes("test merge"))),mergeable:e.mergeable}}transformBasicPR(e){return{number:e.number,title:e.title,author:e.user?.login??"ghost",state:e.merged_at?"merged":e.state,link:e.html_url,head:e.head.sha,tail:e.base.sha,testmergelabel:e.labels.some((e=>e.name?.toLowerCase().includes("testmerge")||e.name?.toLowerCase().includes("test merge"))),mergeable:null}}async getPR({owner:e,repo:t,wantedPR:r}){const n=await this.apiClient.pulls.get({owner:e,repo:t,pull_number:r});return this.transformFullPR(n.data)}async getPRUntilMergeable({owner:e,repo:t,wantedPR:r,pollTimer:n=l.Ay.mergeabilitypolltimer.value}){for(let a=0;a<2;a++){const a=await this.getPR({owner:e,repo:t,wantedPR:r});if(null!==a.mergeable)return a;await m(n)}return this.getPR({owner:e,repo:t,wantedPR:r})}async getPRs({owner:e,repo:t,wantedPRs:r=[]}){let n=[];try{const a=await this.apiClient.paginate(this.apiClient.pulls.list,{owner:e,repo:t,state:"open"}),s=a.map((e=>e.number));if(l.Ay.githubtoken.value&&l.Ay.githubtoken.value.length>0){for(const e of r)s.includes(e)||s.push(e);const a=l.Ay.mergeabilitypolltimer.value,i=s.map((r=>this.getPRUntilMergeable({owner:e,repo:t,wantedPR:r,pollTimer:a})));n=await Promise.all(i)}else{n=a.map(this.transformBasicPR);for(const a of r)s.includes(a)||n.push(await this.getPR({owner:e,repo:t,wantedPR:a}))}}catch(e){return console.error(e),new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new c.A({code:c.s.OK,payload:n})}async getPRCommits({owner:e,repo:t,pr:r,wantedCommit:n}){let a,s=[];try{if(s=await this.apiClient.paginate(this.apiClient.pulls.listCommits,{owner:e,repo:t,pull_number:r.number,per_page:100},(({data:e})=>e.map((e=>({name:e.commit.message.split("\n")[0],sha:e.sha,url:e.html_url}))))),s.reverse(),n&&!s.find((e=>e.sha===n))){const r=(await this.apiClient.repos.getCommit({owner:e,repo:t,ref:n})).data;a={name:r.commit.message.split("\n")[0],sha:r.sha,url:r.html_url}}}catch(e){return console.error(e),new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}return new c.A({code:c.s.OK,payload:[s,a]})}async getFile(e,t,r,n){try{const{data:a}=await this.apiClient.repos.getContent({mediaType:{format:"base64"},owner:e,repo:t,path:r,ref:n});if(Array.isArray(a))return new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${r} was a directory!`)})});if("file"!==a.type)return new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${r} has type ${a.type}!`)})});const s=a.content;return new c.A({code:c.s.OK,payload:s})}catch(e){return console.error(e),new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}async getDirectoryContents(e,t,r,n){try{const{data:a}=await this.apiClient.repos.getContent({owner:e,repo:t,path:r,ref:n});if(!Array.isArray(a))return new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:new Error(`${r} was not a directory!`)})});const s=[];return a.forEach((e=>s.push({path:e.path,isDirectory:"dir"==e.type}))),new c.A({code:c.s.OK,payload:s})}catch(e){return console.error(e),new c.A({code:c.s.ERROR,error:new o.Ay(o.O4.GITHUB_FAIL,{jsError:e})})}}}},1008:function(e,t,r){var n=r(5540),a=r(6540),s=r(9425),i=r(7867),o=r(2014),c=function(e){function t(){return e.apply(this,arguments)||this}return(0,n.A)(t,e),t.prototype.render=function(){throw new Error("ReactBootstrap: The `Tab` component is not meant to be rendered! It's an abstract component that is only valid as a direct Child of the `Tabs` Component. For custom tabs components use TabPane and TabsContainer directly")},t}(a.Component);c.Container=s.A,c.Content=i.A,c.Pane=o.A,t.A=c},9425:function(e,t,r){var n=r(6540),a=r(1558),s=r(4629),i=r(5724);t.A=function(e){var t=(0,a.Zw)(e,{activeKey:"onSelect"}),r=t.id,o=t.generateChildId,c=t.onSelect,l=t.activeKey,u=t.transition,m=t.mountOnEnter,d=t.unmountOnExit,h=t.children,p=(0,n.useMemo)((function(){return o||function(e,t){return r?r+"-"+t+"-"+e:null}}),[r,o]),E=(0,n.useMemo)((function(){return{onSelect:c,activeKey:l,transition:u,mountOnEnter:m||!1,unmountOnExit:d||!1,getControlledId:function(e){return p(e,"tabpane")},getControllerId:function(e){return p(e,"tab")}}}),[c,l,u,m,d,p]);return n.createElement(s.A.Provider,{value:E},n.createElement(i.A.Provider,{value:c||null},h))}},7867:function(e,t,r){var n=r(8168),a=r(8587),s=r(2485),i=r.n(s),o=r(6540),c=r(6519),l=["bsPrefix","as","className"],u=o.forwardRef((function(e,t){var r=e.bsPrefix,s=e.as,u=void 0===s?"div":s,m=e.className,d=(0,a.A)(e,l),h=(0,c.oU)(r,"tab-content");return o.createElement(u,(0,n.A)({ref:t},d,{className:i()(m,h)}))}));t.A=u},2014:function(e,t,r){var n=r(8168),a=r(8587),s=r(2485),i=r.n(s),o=r(6540),c=r(6519),l=r(4629),u=r(5724),m=r(7285),d=["activeKey","getControlledId","getControllerId"],h=["bsPrefix","className","active","onEnter","onEntering","onEntered","onExit","onExiting","onExited","mountOnEnter","unmountOnExit","transition","as","eventKey"];var p=o.forwardRef((function(e,t){var r=function(e){var t=(0,o.useContext)(l.A);if(!t)return e;var r=t.activeKey,s=t.getControlledId,i=t.getControllerId,c=(0,a.A)(t,d),h=!1!==e.transition&&!1!==c.transition,p=(0,u.u)(e.eventKey);return(0,n.A)({},e,{active:null==e.active&&null!=p?(0,u.u)(r)===p:e.active,id:s(e.eventKey),"aria-labelledby":i(e.eventKey),transition:h&&(e.transition||c.transition||m.A),mountOnEnter:null!=e.mountOnEnter?e.mountOnEnter:c.mountOnEnter,unmountOnExit:null!=e.unmountOnExit?e.unmountOnExit:c.unmountOnExit})}(e),s=r.bsPrefix,p=r.className,E=r.active,f=r.onEnter,w=r.onEntering,g=r.onEntered,v=r.onExit,A=r.onExiting,y=r.onExited,b=r.mountOnEnter,S=r.unmountOnExit,R=r.transition,x=r.as,k=void 0===x?"div":x,O=(r.eventKey,(0,a.A)(r,h)),C=(0,c.oU)(s,"tab-pane");if(!E&&!R&&S)return null;var N=o.createElement(k,(0,n.A)({},O,{ref:t,role:"tabpanel","aria-hidden":!E,className:i()(p,C,{active:E})}));return R&&(N=o.createElement(R,{in:E,onEnter:f,onEntering:w,onEntered:g,onExit:v,onExiting:A,onExited:y,mountOnEnter:b,unmountOnExit:S},N)),o.createElement(l.A.Provider,{value:null},o.createElement(u.A.Provider,{value:null},N))}));p.displayName="TabPane",t.A=p},1948:function(e,t,r){var n=r(8168),a=r(8587),s=r(6540),i=(r(8239),r(1558)),o=r(6867),c=r(494),l=r(4501),u=r(9425),m=r(7867),d=r(2014),h=r(9528),p=["id","onSelect","transition","mountOnEnter","unmountOnExit","children","activeKey"];function E(e){var t=e.props,r=t.title,n=t.eventKey,a=t.disabled,i=t.tabClassName,o=t.id;return null==r?null:s.createElement(l.A,{as:c.A,eventKey:n,disabled:a,id:o,className:i},r)}var f=function(e){var t=(0,i.Zw)(e,{activeKey:"onSelect"}),r=t.id,c=t.onSelect,l=t.transition,f=t.mountOnEnter,w=t.unmountOnExit,g=t.children,v=t.activeKey,A=void 0===v?function(e){var t;return(0,h.j)(e,(function(e){null==t&&(t=e.props.eventKey)})),t}(g):v,y=(0,a.A)(t,p);return s.createElement(u.A,{id:r,activeKey:A,onSelect:c,transition:l,mountOnEnter:f,unmountOnExit:w},s.createElement(o.A,(0,n.A)({},y,{role:"tablist",as:"nav"}),(0,h.T)(g,E)),s.createElement(m.A,null,(0,h.T)(g,(function(e){var t=(0,n.A)({},e.props);return delete t.title,delete t.disabled,delete t.tabClassName,s.createElement(d.A,t)}))))};f.defaultProps={variant:"tabs",mountOnEnter:!1,unmountOnExit:!1},f.displayName="Tabs",t.A=f}}]); +//# sourceMappingURL=6822.7511dbae33bf73f23d44.bundle.js.map \ No newline at end of file diff --git a/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js.map b/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js.map new file mode 100644 index 00000000..9f7ae8a1 --- /dev/null +++ b/webpanel/6.6.0/6822.7511dbae33bf73f23d44.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6822.7511dbae33bf73f23d44.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./src/components/views/Instance/Create.tsx","webpack://tgstation-server-control-panel/./src/utils/ITGSYml.ts","webpack://tgstation-server-control-panel/./src/utils/delay.ts","webpack://tgstation-server-control-panel/./src/utils/GithubClient.ts","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Tab.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabContainer.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabContent.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabPane.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Tabs.js"],"sourcesContent":["import React from \"react\";\nimport { Alert, Tab, Tabs } from \"react-bootstrap\";\nimport Button from \"react-bootstrap/Button\";\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport { FormattedMessage } from \"react-intl\";\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\nimport YAML from \"yaml\";\n\nimport ConfigurationFileClient from \"../../../ApiClient/ConfigurationFileClient\";\nimport DreamDaemonClient from \"../../../ApiClient/DreamDaemonClient\";\nimport DreamMakerClient from \"../../../ApiClient/DreamMakerClient\";\nimport EngineClient from \"../../../ApiClient/EngineClient\";\nimport {\n ConfigurationType,\n DreamDaemonSecurity,\n EngineType\n} from \"../../../ApiClient/generatedcode/generated\";\nimport InstanceClient from \"../../../ApiClient/InstanceClient\";\nimport InternalError, { ErrorCode } from \"../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../ApiClient/models/InternalComms/InternalStatus\";\nimport RepositoryClient from \"../../../ApiClient/RepositoryClient\";\nimport JobsController from \"../../../ApiClient/util/JobsController\";\nimport { GeneralContext } from \"../../../contexts/GeneralContext\";\nimport GithubClient from \"../../../utils/GithubClient\";\nimport ITGSYml, { getTGSYmlSecurity } from \"../../../utils/ITGSYml\";\nimport { AppRoutes, RouteData } from \"../../../utils/routes\";\nimport ErrorAlert from \"../../utils/ErrorAlert\";\nimport Loading from \"../../utils/Loading\";\n\ninterface IState {\n loading: boolean;\n errors: Array | undefined>;\n instanceName?: string;\n instancePath?: string;\n repoOwner?: string;\n repoName?: string;\n repoBranch?: string;\n accessUser?: string;\n accessToken?: string;\n prefix?: string;\n tab: string;\n performingQuickSetup: boolean;\n quickSetupStages: React.ReactNode[];\n}\n\ntype IProps = RouteComponentProps;\n\nclass InstanceCreate extends React.Component {\n public declare context: GeneralContext;\n public constructor(props: IProps, context: GeneralContext) {\n super(props);\n this.state = {\n loading: false,\n errors: [],\n prefix: context.serverInfo.validInstancePaths?.length\n ? context.serverInfo.validInstancePaths[0]\n : undefined,\n tab: \"quick\",\n performingQuickSetup: false,\n quickSetupStages: []\n };\n\n this.submit = this.submit.bind(this);\n this.quickStart = this.quickStart.bind(this);\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n public render(): React.ReactNode {\n if (this.state.loading) {\n return ;\n }\n\n const validInstancePaths = this.context.serverInfo.validInstancePaths;\n return (\n
    \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n

    \n \n

    \n {this.state.performingQuickSetup ? (\n
    \n \n
      {this.state.quickSetupStages}
    \n
    \n ) : (\n {\n if (!newkey) return;\n\n this.setState({\n tab: newkey\n });\n }}\n id=\"create-instance-tabs\"\n className=\"justify-content-center mb-3 mt-4 flex-column flex-md-row\">\n }>\n {this.renderQuickSetup()}\n \n }>\n
    void this.submit()}>\n \n \n \n
    \n \n
    \n
    \n {\n const instanceName = event.target.value;\n this.setState({\n instanceName\n });\n }}\n value={this.state.instanceName}\n required\n />\n
    \n \n \n
    \n \n
    \n
    \n \n {validInstancePaths != null ? (\n \n \n \n \n \n \n {\n this.setState({\n prefix: event.target.value\n });\n }}>\n {validInstancePaths.map(validPath => {\n return (\n \n {validPath}/\n \n );\n })}\n \n \n ) : null}\n {\n const instancePath = event.target.value;\n this.setState({\n instancePath\n });\n }}\n value={this.state.instancePath}\n />\n \n
    \n \n \n
    \n \n \n )}\n
    \n );\n }\n\n private renderQuickSetup(): React.ReactNode {\n const validInstancePaths = this.context.serverInfo.validInstancePaths;\n return (\n
    \n \n }}\n />\n \n \n \n \n
    void this.quickStart()}>\n \n \n \n
    \n \n
    \n
    \n {\n const instanceName = event.target.value;\n this.setState({\n instanceName\n });\n }}\n value={this.state.instanceName}\n required\n />\n
    \n \n \n
    \n \n
    \n
    \n \n {validInstancePaths != null ? (\n \n \n \n \n \n \n {\n this.setState({\n prefix: event.target.value\n });\n }}>\n {validInstancePaths.map(validPath => {\n return (\n \n {validPath}/\n \n );\n })}\n \n \n ) : null}\n {\n const instancePath = event.target.value;\n this.setState({\n instancePath\n });\n }}\n value={this.state.instancePath}\n />\n \n
    \n \n \n
    \n \n
    \n
    \n \n {\n const repoOwner = event.target.value;\n this.setState({\n repoOwner\n });\n }}\n value={this.state.repoOwner}\n />\n \n
    \n \n \n
    \n \n
    \n
    \n \n {\n const repoName = event.target.value;\n this.setState({\n repoName\n });\n }}\n value={this.state.repoName}\n />\n \n
    \n \n \n
    \n \n
    \n
    \n \n {\n const repoBranch = event.target.value;\n this.setState({\n repoBranch\n });\n }}\n value={this.state.repoBranch}\n />\n \n
    \n \n \n
    \n \n
    \n
    \n \n {\n const accessUser = event.target.value;\n this.setState({\n accessUser\n });\n }}\n value={this.state.accessUser}\n />\n \n
    \n \n \n
    \n \n
    \n
    \n \n {\n const accessToken = event.target.value;\n this.setState({\n accessToken\n });\n }}\n value={this.state.accessToken}\n />\n \n
    \n \n \n
    \n
    \n );\n }\n\n private pushStage(stageNotice: React.ReactNode) {\n this.setState(prevState => {\n const newStages = [...prevState.quickSetupStages];\n newStages.push(
  • {stageNotice}
  • );\n return {\n quickSetupStages: newStages\n };\n });\n }\n\n private async quickStart(): Promise {\n //The required attribute should prevent this from ever happening but id rather not fuck over someone\n if (\n !this.state.instancePath ||\n !this.state.instanceName ||\n !this.state.repoName ||\n !this.state.repoOwner\n ) {\n return;\n }\n\n this.setState({\n performingQuickSetup: true,\n quickSetupStages: []\n });\n this.pushStage();\n\n const branch = this.state.repoBranch;\n const ymlResponse = await GithubClient.getFile(\n this.state.repoOwner,\n this.state.repoName,\n \".tgs.yml\",\n branch\n );\n if (ymlResponse.code === StatusCode.ERROR) {\n this.addError(ymlResponse.error);\n this.setState({\n performingQuickSetup: false\n });\n return;\n }\n\n const rawYml = window.atob(ymlResponse.payload);\n let yml: ITGSYml;\n try {\n yml = YAML.parse(rawYml) as ITGSYml;\n } catch {\n this.addError(new InternalError(ErrorCode.BAD_YML, { void: true }));\n this.setState({\n performingQuickSetup: false\n });\n return;\n }\n\n if (yml.version !== 1) {\n this.addError(new InternalError(ErrorCode.BAD_TGS_YML_VERSION, { void: true }));\n this.setState({\n performingQuickSetup: false\n });\n }\n\n const isWindows = this.context.serverInfo.windowsHost;\n const scripts = (isWindows ? yml.windows_scripts : yml.linux_scripts) ?? {};\n const secLevel = getTGSYmlSecurity(yml) ?? DreamDaemonSecurity.Safe;\n try {\n const scriptData = new Map();\n const scriptKeys = Object.keys(scripts);\n if (scriptKeys.length > 0) {\n for (const scriptName of scriptKeys) {\n const scriptPath = scripts[scriptName];\n this.pushStage(\n \n );\n\n const scriptResponse = await GithubClient.getFile(\n this.state.repoOwner,\n this.state.repoName,\n scriptPath,\n branch\n );\n\n if (scriptResponse.code === StatusCode.ERROR) {\n this.addError(scriptResponse.error);\n this.setState({\n performingQuickSetup: false\n });\n return;\n }\n\n scriptData.set(scriptName, scriptResponse.payload);\n }\n }\n\n this.pushStage(\n \n );\n\n const instancePath =\n (this.state.prefix ? this.state.prefix + \"/\" : \"\") + this.state.instancePath;\n const createResult = await InstanceClient.createInstance({\n name: this.state.instanceName,\n path: instancePath,\n configurationType: ConfigurationType.HostWrite\n });\n\n if (createResult.code === StatusCode.ERROR) {\n this.addError(createResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n\n const instanceId = createResult.payload.id;\n const onlineResult = await InstanceClient.editInstance({\n id: instanceId,\n online: true\n });\n\n if (onlineResult.code === StatusCode.ERROR) {\n this.addError(onlineResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n\n this.pushStage();\n\n // look, we really should be prompting for reference and enable submodules but I hate webdev and can't be assed rn k? -Dominion\n const cloneResult = await RepositoryClient.cloneRepository(instanceId, {\n origin: `https://github.com/${this.state.repoOwner}/${this.state.repoName}`,\n updateSubmodules: true,\n reference: branch\n });\n\n if (cloneResult.code === StatusCode.ERROR) {\n this.addError(cloneResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n\n JobsController.registerJob(cloneResult.payload.activeJob!, instanceId);\n\n if (yml.byond) {\n this.pushStage(\n \n );\n const engineResult = await EngineClient.switchActive(instanceId, {\n version: yml.byond,\n engine: EngineType.Byond\n });\n\n if (engineResult.code === StatusCode.ERROR) {\n this.addError(engineResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n\n JobsController.registerJob(engineResult.payload.installJob!, instanceId);\n }\n\n if (secLevel != DreamDaemonSecurity.Safe) {\n this.pushStage();\n const dmResult = await DreamMakerClient.updateDeployInfo(instanceId, {\n apiValidationSecurityLevel: secLevel\n });\n\n if (dmResult.code === StatusCode.ERROR) {\n this.addError(dmResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n\n const ddResult = await DreamDaemonClient.updateWatchdogStatus(instanceId, {\n securityLevel: secLevel\n });\n\n if (ddResult.code === StatusCode.ERROR) {\n this.addError(ddResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n }\n\n const base64ToArrayBuffer = (base64: string) => {\n const binary_string = window.atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n };\n\n for (const scriptKvp of scriptData) {\n this.pushStage(\n \n );\n\n const configResult = await ConfigurationFileClient.writeConfigFile(\n instanceId,\n {\n path: `EventScripts/${scriptKvp[0]}`\n },\n base64ToArrayBuffer(scriptKvp[1])\n );\n\n if (configResult.code === StatusCode.ERROR) {\n this.addError(configResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n }\n\n if (yml.static_files) {\n for (const staticFile of yml.static_files) {\n this.pushStage(\n \n );\n\n if (staticFile.populate) {\n let success = true;\n const processDirectory = async (\n sourcePath: string,\n targetPath: string\n ): Promise => {\n const directoryResults = await GithubClient.getDirectoryContents(\n this.state.repoOwner!,\n this.state.repoName!,\n sourcePath,\n branch\n );\n\n if (directoryResults.code === StatusCode.ERROR) {\n this.addError(directoryResults.error);\n this.setState({\n performingQuickSetup: false\n });\n success = false;\n return;\n }\n\n for (const directoryItem of directoryResults.payload) {\n const itemTargetPath =\n targetPath + directoryItem.path.substring(sourcePath.length);\n if (directoryItem.isDirectory) {\n await processDirectory(directoryItem.path, itemTargetPath);\n if (!success) {\n return;\n }\n } else {\n this.pushStage(\n \n );\n\n const downloadResult = await GithubClient.getFile(\n this.state.repoOwner!,\n this.state.repoName!,\n directoryItem.path,\n branch\n );\n\n if (downloadResult.code === StatusCode.ERROR) {\n this.addError(downloadResult.error);\n this.setState({\n performingQuickSetup: false\n });\n success = false;\n return;\n }\n\n const uploadResult =\n await ConfigurationFileClient.writeConfigFile(\n instanceId,\n {\n path: `GameStaticFiles/${itemTargetPath}`\n },\n base64ToArrayBuffer(downloadResult.payload)\n );\n\n if (uploadResult.code === StatusCode.ERROR) {\n this.addError(uploadResult.error);\n this.setState({\n performingQuickSetup: false\n });\n success = false;\n return;\n }\n }\n }\n };\n\n if (staticFile.sources)\n for (const source of staticFile.sources) {\n await processDirectory(source, staticFile.name);\n }\n else await processDirectory(staticFile.name, staticFile.name);\n if (!success) {\n return;\n }\n } else {\n this.pushStage(\n \n );\n\n const dirResult = await ConfigurationFileClient.addDirectory(instanceId, {\n path: `GameStaticFiles/${staticFile.name}`\n });\n\n if (dirResult.code === StatusCode.ERROR) {\n this.addError(dirResult.error);\n this.setState({\n performingQuickSetup: false\n });\n\n return;\n }\n }\n }\n }\n\n RouteData.selectedinstanceid = instanceId;\n this.props.history.push(AppRoutes.instanceedit.link ?? AppRoutes.instanceedit.route);\n } catch (e) {\n this.addError(new InternalError(ErrorCode.BAD_YML, { jsError: e as Error }));\n this.setState({\n performingQuickSetup: false\n });\n }\n }\n\n private async submit() {\n //The required attribute should prevent this from ever happening but id rather not fuck over someone\n if (!this.state.instancePath || !this.state.instanceName) {\n return;\n }\n\n const instancePath =\n (this.state.prefix ? this.state.prefix + \"/\" : \"\") + this.state.instancePath;\n\n this.setState({\n loading: true\n });\n\n const result = await InstanceClient.createInstance({\n name: this.state.instanceName,\n path: instancePath\n });\n\n if (result.code === StatusCode.ERROR) {\n this.setState({\n loading: false\n });\n this.addError(result.error);\n\n return;\n }\n\n RouteData.selectedinstanceid = result.payload.id;\n this.props.history.push(AppRoutes.instancelist.link ?? AppRoutes.instancelist.route);\n }\n}\nInstanceCreate.contextType = GeneralContext;\nexport default withRouter(InstanceCreate);\n","import { DreamDaemonSecurity } from \"../ApiClient/generatedcode/generated\";\n\ninterface IStaticFile {\n name: string;\n populate?: boolean;\n sources?: string[];\n}\n\nexport function getTGSYmlSecurity(yml: ITGSYml): DreamDaemonSecurity | null {\n switch (yml.security?.toLowerCase()) {\n case \"ultrasafe\":\n return DreamDaemonSecurity.Ultrasafe;\n case \"safe\":\n return DreamDaemonSecurity.Safe;\n case \"trusted\":\n return DreamDaemonSecurity.Trusted;\n default:\n return null;\n }\n}\n\nexport default interface ITGSYml {\n version: number;\n byond?: string;\n static_files?: IStaticFile[];\n linux_scripts?: { [index: string]: string };\n windows_scripts?: { [index: string]: string };\n security?: string;\n}\n","const delay = (milliseconds: number): Promise => {\n return new Promise(resolve => {\n setTimeout(resolve, milliseconds);\n });\n};\n\nexport default delay;\n","/* eslint-disable import/no-unresolved */\nimport { retry } from \"@octokit/plugin-retry\";\nimport { throttling } from \"@octokit/plugin-throttling\";\nimport { RequestError } from \"@octokit/request-error\";\nimport { Octokit, RestEndpointMethodTypes } from \"@octokit/rest\";\nimport { EndpointDefaults } from \"@octokit/types\";\n/* eslint-enable import/no-unresolved */\nimport { TypedEmitter } from \"tiny-typed-emitter/lib\";\n\nimport InternalError, { ErrorCode } from \"../ApiClient/models/InternalComms/InternalError\";\nimport InternalStatus, { StatusCode } from \"../ApiClient/models/InternalComms/InternalStatus\";\nimport configOptions from \"../ApiClient/util/config\";\nimport { VERSION } from \"../definitions/constants\";\nimport delay from \"./delay\";\n\nexport interface TGSVersion {\n version: string;\n body: string;\n current: boolean;\n old: boolean;\n}\n\nexport interface Commit {\n name: string;\n sha: string;\n url: string;\n}\n\nexport interface PullRequest {\n number: number;\n title: string;\n author: string;\n state: \"open\" | \"closed\" | \"merged\";\n link: string;\n head: string;\n tail: string;\n testmergelabel: boolean;\n mergeable: boolean | null;\n}\n\ntype ExtractArrayType = A extends Array ? ArrayType : never;\nexport type ListedGithubPullRequest = ExtractArrayType<\n RestEndpointMethodTypes[\"pulls\"][\"list\"][\"response\"][\"data\"]\n>;\nexport type GithubPullRequest = RestEndpointMethodTypes[\"pulls\"][\"get\"][\"response\"][\"data\"];\n\nexport interface DirectoryItem {\n path: string;\n isDirectory: boolean;\n}\n\ntype IEvents = object;\n\n/* eslint-disable */\n\nasync function hook(request: any, route: any, parameters?: any): Promise {\n const endpoint = request.endpoint.merge(route as string, parameters);\n\n if (configOptions.githubtoken.value) {\n endpoint.headers.authorization = `token ${configOptions.githubtoken.value}`;\n }\n\n return request(endpoint);\n}\n\nasync function auth(): Promise {\n if (configOptions.githubtoken.value) {\n return {\n type: \"token\",\n tokenType: \"pat\",\n token: configOptions.githubtoken.value\n };\n } else {\n return {\n type: \"unauthenticated\"\n };\n }\n}\n\nconst authStrategy = () => {\n return Object.assign(auth.bind(null), {\n hook: hook.bind(null)\n });\n};\n\n/* eslint-enable */\n\nconst e = new (class GithubClient extends TypedEmitter {\n private readonly apiClient: Octokit;\n\n public constructor() {\n super();\n\n const octo = Octokit.plugin(retry, throttling);\n\n this.apiClient = new octo({\n authStrategy,\n userAgent: \"tgstation-server-control-panel/\" + VERSION,\n baseUrl: \"https://api.github.com\",\n throttle: {\n onRateLimit: (retryAfter: number, options: Required) => {\n console.warn(\n `Request quota exhausted for request ${options.method} ${options.url}`\n );\n\n if (options.request.retryCount === 0) {\n // only retries once\n console.log(`Retrying after ${retryAfter} seconds!`);\n return true;\n }\n return false;\n },\n onSecondaryRateLimit: (_: number, options: Required) => {\n // does not retry, only logs a warning\n console.warn(`Abuse detected for request ${options.method} ${options.url}`);\n }\n }\n });\n }\n\n public async getLatestDefaultCommit(\n owner: string,\n repo: string\n ): Promise> {\n try {\n const repoData = await this.apiClient.repos.get({\n owner,\n repo\n });\n\n const branch = await this.apiClient.repos.getBranch({\n owner,\n repo,\n branch: repoData.data.default_branch\n });\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: branch.data.commit.sha\n });\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n\n public async getVersions({\n owner,\n repo,\n current,\n all\n }: {\n owner: string;\n repo: string;\n current: string;\n all?: boolean;\n }): Promise> {\n let payload: TGSVersion[];\n let oldversions = 0;\n try {\n payload = await this.apiClient.paginate(\n this.apiClient.repos.listReleases,\n { owner, repo },\n (response, done) => {\n return response.data.reduce((result, release) => {\n const match = /tgstation-server-v([\\d.]+)/.exec(release.name ?? \"\");\n if (!match) return result;\n\n const majorVersion = parseInt(match[1][0]);\n if (majorVersion < 4) return result;\n\n const version = match[1];\n let old = false;\n\n //show 3 outdated versions(2 if you count the current one)\n if (version <= current) {\n if (oldversions >= 3 && !all) {\n (done as () => void)();\n return result;\n }\n oldversions++;\n old = true;\n }\n\n result.push({\n version,\n body: release.body ?? \"\",\n current: version === current,\n old\n });\n return result;\n }, [] as TGSVersion[]);\n }\n );\n } catch (e) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload\n });\n }\n\n private transformFullPR(pr: GithubPullRequest): PullRequest {\n return {\n number: pr.number,\n title: pr.title,\n author: pr.user?.login ?? \"ghost\",\n state: pr.merged_at ? \"merged\" : pr.state,\n link: pr.html_url,\n head: pr.head.sha,\n tail: pr.base.sha,\n testmergelabel: pr.labels.some(\n label =>\n label.name?.toLowerCase().includes(\"testmerge\") ||\n label.name?.toLowerCase().includes(\"test merge\")\n ),\n mergeable: pr.mergeable\n };\n }\n\n private transformBasicPR(pr: ListedGithubPullRequest): PullRequest {\n return {\n number: pr.number,\n title: pr.title,\n author: pr.user?.login ?? \"ghost\",\n state: pr.merged_at ? \"merged\" : (pr.state as \"open\" | \"closed\"),\n link: pr.html_url,\n head: pr.head.sha,\n tail: pr.base.sha,\n testmergelabel: pr.labels.some(\n label =>\n label.name?.toLowerCase().includes(\"testmerge\") ||\n label.name?.toLowerCase().includes(\"test merge\")\n ),\n mergeable: null\n };\n }\n\n private async getPR({\n owner,\n repo,\n wantedPR\n }: {\n owner: string;\n repo: string;\n wantedPR: number;\n }) {\n const pr = await this.apiClient.pulls.get({\n owner,\n repo,\n pull_number: wantedPR\n });\n\n return this.transformFullPR(pr.data);\n }\n\n private async getPRUntilMergeable({\n owner,\n repo,\n wantedPR,\n pollTimer = configOptions.mergeabilitypolltimer.value as number\n }: {\n owner: string;\n repo: string;\n wantedPR: number;\n pollTimer?: number;\n }) {\n //Retry three times to get the mergeable status\n for (let i = 0; i < 2; i++) {\n const pr = await this.getPR({ owner, repo, wantedPR });\n\n if (pr.mergeable !== null) {\n return pr;\n }\n\n await delay(pollTimer);\n }\n\n return this.getPR({ owner, repo, wantedPR });\n }\n\n public async getPRs({\n owner,\n repo,\n wantedPRs = []\n }: {\n owner: string;\n repo: string;\n wantedPRs?: number[];\n }): Promise> {\n let payload: PullRequest[] = [];\n try {\n const basicPRInfo = await this.apiClient.paginate(this.apiClient.pulls.list, {\n owner,\n repo,\n state: \"open\"\n });\n\n const prsToGet = basicPRInfo.map(pr => pr.number);\n\n if (\n configOptions.githubtoken.value &&\n (configOptions.githubtoken.value as string).length > 0\n ) {\n //Fetch the full PR info for those with tokens\n for (const wantedPR of wantedPRs) {\n if (!prsToGet.includes(wantedPR)) {\n prsToGet.push(wantedPR);\n }\n }\n\n const pollTimer = configOptions.mergeabilitypolltimer.value as number;\n const prPromises = prsToGet.map(wantedPR =>\n this.getPRUntilMergeable({ owner, repo, wantedPR, pollTimer })\n );\n\n //Fetch them in parallel to not waste extra time with polling\n payload = await Promise.all(prPromises);\n } else {\n //Otherwise just use the basic info\n payload = basicPRInfo.map(this.transformBasicPR);\n\n for (const wantedPR of wantedPRs) {\n if (!prsToGet.includes(wantedPR)) {\n //Don't even poll for mergeability\n payload.push(await this.getPR({ owner, repo, wantedPR }));\n }\n }\n }\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload\n });\n }\n\n public async getPRCommits({\n owner,\n repo,\n pr,\n wantedCommit\n }: {\n owner: string;\n repo: string;\n pr: PullRequest;\n wantedCommit?: string;\n }): Promise> {\n let payload: Commit[] = [];\n let extraCommit: Commit | undefined = undefined;\n try {\n payload = await this.apiClient.paginate(\n this.apiClient.pulls.listCommits,\n {\n owner,\n repo,\n pull_number: pr.number,\n per_page: 100\n },\n ({ data }) =>\n data.map(commit => ({\n name: commit.commit.message.split(\"\\n\")[0],\n sha: commit.sha,\n url: commit.html_url\n }))\n );\n\n //Newest at the top\n payload.reverse();\n\n if (wantedCommit && !payload.find(commit => commit.sha === wantedCommit)) {\n const _extraCommit = (\n await this.apiClient.repos.getCommit({\n owner,\n repo,\n ref: wantedCommit\n })\n ).data;\n extraCommit = {\n name: _extraCommit.commit.message.split(\"\\n\")[0],\n sha: _extraCommit.sha,\n url: _extraCommit.html_url\n };\n }\n } catch (e) {\n console.error(e);\n return new InternalStatus<\n [commits: Commit[], extraCommit?: Commit],\n ErrorCode.GITHUB_FAIL\n >({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n return new InternalStatus({\n code: StatusCode.OK,\n payload: [payload, extraCommit]\n });\n }\n\n public async getFile(\n owner: string,\n repo: string,\n path: string,\n ref?: string\n ): Promise> {\n try {\n const { data } = await this.apiClient.repos.getContent({\n mediaType: {\n format: \"base64\"\n },\n owner,\n repo,\n path,\n ref\n });\n\n // ignore directory responses\n if (Array.isArray(data)) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} was a directory!`)\n })\n });\n }\n\n if (data.type !== \"file\") {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} has type ${data.type}!`)\n })\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const raw = (data as any).content as string;\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: raw\n });\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n\n public async getDirectoryContents(\n owner: string,\n repo: string,\n path: string,\n ref?: string\n ): Promise> {\n try {\n const { data } = await this.apiClient.repos.getContent({\n owner,\n repo,\n path,\n ref\n });\n\n // ignore non-directory responses\n if (!Array.isArray(data)) {\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: new Error(`${path} was not a directory!`)\n })\n });\n }\n\n const result: DirectoryItem[] = [];\n data.forEach(element =>\n result.push({\n path: element.path,\n isDirectory: element.type == \"dir\"\n })\n );\n\n return new InternalStatus({\n code: StatusCode.OK,\n payload: result\n });\n } catch (e) {\n console.error(e);\n return new InternalStatus({\n code: StatusCode.ERROR,\n error: new InternalError(ErrorCode.GITHUB_FAIL, {\n jsError: e as RequestError\n })\n });\n }\n }\n})();\nexport default e;\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabPane from './TabPane';\n\n/* eslint-disable react/require-render-return, react/no-unused-prop-types */\nvar Tab = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Tab, _React$Component);\n\n function Tab() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n _proto.render = function render() {\n throw new Error('ReactBootstrap: The `Tab` component is not meant to be rendered! ' + \"It's an abstract component that is only valid as a direct Child of the `Tabs` Component. \" + 'For custom tabs components use TabPane and TabsContainer directly');\n return null;\n };\n\n return Tab;\n}(React.Component);\n\nTab.Container = TabContainer;\nTab.Content = TabContent;\nTab.Pane = TabPane;\nexport default Tab;","import React, { useMemo } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport TabContext from './TabContext';\nimport SelectableContext from './SelectableContext';\n\nvar TabContainer = function TabContainer(props) {\n var _useUncontrolled = useUncontrolled(props, {\n activeKey: 'onSelect'\n }),\n id = _useUncontrolled.id,\n generateCustomChildId = _useUncontrolled.generateChildId,\n onSelect = _useUncontrolled.onSelect,\n activeKey = _useUncontrolled.activeKey,\n transition = _useUncontrolled.transition,\n mountOnEnter = _useUncontrolled.mountOnEnter,\n unmountOnExit = _useUncontrolled.unmountOnExit,\n children = _useUncontrolled.children;\n\n var generateChildId = useMemo(function () {\n return generateCustomChildId || function (key, type) {\n return id ? id + \"-\" + type + \"-\" + key : null;\n };\n }, [id, generateCustomChildId]);\n var tabContext = useMemo(function () {\n return {\n onSelect: onSelect,\n activeKey: activeKey,\n transition: transition,\n mountOnEnter: mountOnEnter || false,\n unmountOnExit: unmountOnExit || false,\n getControlledId: function getControlledId(key) {\n return generateChildId(key, 'tabpane');\n },\n getControllerId: function getControllerId(key) {\n return generateChildId(key, 'tab');\n }\n };\n }, [onSelect, activeKey, transition, mountOnEnter, unmountOnExit, generateChildId]);\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: tabContext\n }, /*#__PURE__*/React.createElement(SelectableContext.Provider, {\n value: onSelect || null\n }, children));\n};\n\nexport default TabContainer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"as\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar TabContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'tab-content');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, decoratedBsPrefix)\n }));\n});\nexport default TabContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeKey\", \"getControlledId\", \"getControllerId\"],\n _excluded2 = [\"bsPrefix\", \"className\", \"active\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"mountOnEnter\", \"unmountOnExit\", \"transition\", \"as\", \"eventKey\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport TabContext from './TabContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Fade from './Fade';\n\nfunction useTabContext(props) {\n var context = useContext(TabContext);\n if (!context) return props;\n\n var activeKey = context.activeKey,\n getControlledId = context.getControlledId,\n getControllerId = context.getControllerId,\n rest = _objectWithoutPropertiesLoose(context, _excluded);\n\n var shouldTransition = props.transition !== false && rest.transition !== false;\n var key = makeEventKey(props.eventKey);\n return _extends({}, props, {\n active: props.active == null && key != null ? makeEventKey(activeKey) === key : props.active,\n id: getControlledId(props.eventKey),\n 'aria-labelledby': getControllerId(props.eventKey),\n transition: shouldTransition && (props.transition || rest.transition || Fade),\n mountOnEnter: props.mountOnEnter != null ? props.mountOnEnter : rest.mountOnEnter,\n unmountOnExit: props.unmountOnExit != null ? props.unmountOnExit : rest.unmountOnExit\n });\n}\n\nvar TabPane = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _useTabContext = useTabContext(props),\n bsPrefix = _useTabContext.bsPrefix,\n className = _useTabContext.className,\n active = _useTabContext.active,\n onEnter = _useTabContext.onEnter,\n onEntering = _useTabContext.onEntering,\n onEntered = _useTabContext.onEntered,\n onExit = _useTabContext.onExit,\n onExiting = _useTabContext.onExiting,\n onExited = _useTabContext.onExited,\n mountOnEnter = _useTabContext.mountOnEnter,\n unmountOnExit = _useTabContext.unmountOnExit,\n Transition = _useTabContext.transition,\n _useTabContext$as = _useTabContext.as,\n Component = _useTabContext$as === void 0 ? 'div' : _useTabContext$as,\n _ = _useTabContext.eventKey,\n rest = _objectWithoutPropertiesLoose(_useTabContext, _excluded2);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'tab-pane');\n if (!active && !Transition && unmountOnExit) return null;\n var pane = /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n role: \"tabpanel\",\n \"aria-hidden\": !active,\n className: classNames(className, prefix, {\n active: active\n })\n }));\n if (Transition) pane = /*#__PURE__*/React.createElement(Transition, {\n in: active,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit\n }, pane); // We provide an empty the TabContext so `\n );\n };\n\n return (\n \n \n \n

    \n \n

    \n
    \n \n
    \n
    \n \n
    \n {nav()}\n \n \n {InstanceEdit.tabs.map(([tabKey, , accessCb, Comp]) => {\n if (!this.state.instancePermissionSet) {\n throw Error(\n \"this.state.instancePermissionSet is null in render card map\"\n );\n }\n return (\n \n {Comp ? (\n !accessCb(\n this.state.instancePermissionSet,\n this.context\n ) ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n );\n })}\n \n \n
    \n \n
    \n \n );\n }\n}\n\nInstanceEdit.contextType = GeneralContext;\nexport default withRouter(InstanceEdit);\n"],"names":["InstanceSettings","React","constructor","props","super","this","editInstance","bind","state","errors","moving","addError","error","setState","prevState","Array","from","push","instance","autoUpdateCron","autoUpdateInterval","alert","instanceId","context","id","newPath","path","online","response","InstanceClient","code","StatusCode","OK","response2","reloadInstance","response3","Promise","resolve","setTimeout","getInstance","payload","moveJob","response4","JobsController","registerJob","render","checkIMFlag","flag","hasInstanceManagerRight","resolvePermissionSet","user","fields","name","type","FieldType","String","defaultValue","disabled","InstanceManagerRights","Rename","Relocate","chatBotLimit","Number","min","SetChatBotLimit","SetAutoUpdate","configurationType","Enum","enum","ConfigurationType","SetConfiguration","className","FormattedMessage","DebugJsonViewer","obj","map","err","index","ErrorAlert","key","onClose","prev","newarr","undefined","Loading","text","InputForm","onSave","contextType","InstanceEditContext","withRouter","Deployment","instanceEditContext","useContext","errorState","useState","isLoading","setIsLoading","deployInfo","setDeployInfo","compileJobs","setCompileJobs","compileJobsPage","setCompileJobsPage","compileJobsTotalPages","setCompileJobsTotalPages","compileJobsPageSize","setCompileJobsPageSize","canRead","hasDreamMakerRight","instancePermissionSet","DreamMakerRights","Read","canCompile","Compile","canReadDeployments","CompileJobs","async","loadDeployInfo","DreamMakerClient","getDeployInfo","loadCompileJobs","page","listCompileJobs","pageSize","totalPages","content","timeout","useEffect","parsedTimeMatch","exec","parsedTime","groups","parseInt","days","hours","minutes","seconds","projectName","tooltip","SetDme","compilerAdditionalArguments","SetCompilerArguments","SetTimeout","apiValidationPort","max","SetApiValidationPort","apiValidationSecurityLevel","DreamDaemonSecurity","SetSecurityLevel","dmApiValidationMode","DMApiValidationMode","SetApiValidationRequirement","deploymentViewData","paging","currentPage","loadPage","viewDataType","ViewDataType","displayErrors","DeploymentViewer","viewData","GenericAlert","title","hideDisabled","newTimeout","_result","Math","floor","result","updateDeployInfo","ERROR","SimpleToolTip","tooltipid","show","Button","onClick","startCompile","fastmode","JobHistory","jobs","setJobs","setErrors","loading","setLoading","setPage","RouteData","jobhistorypage","get","maxPage","setMaxPage","set","JobsClient","listJobs","loadJobs","sort","a","b","filter","job","stoppedAt","JobCard","onCancel","j","status","deleteJob","PageHelper","selectPage","newPage","minimumEnginePerms","EngineRights","ReadActive","ListInstalled","InstallOfficialOrChangeActiveByondVersion","InstallCustomByondVersion","InstallOfficialOrChangeActiveOpenDreamVersion","InstallCustomOpenDreamVersion","minimumServerPerms","DreamDaemonRights","SetPort","SetAutoStart","SetSecurity","ReadMetadata","SetWebClient","SoftRestart","SoftShutdown","Restart","Shutdown","Start","SetStartupTimeout","SetHealthCheckInterval","CreateDump","SetTopicTimeout","SetAdditionalParameters","SetVisibility","minimumRepoPerms","RepositoryRights","SetOrigin","SetSha","MergePullRequest","UpdateBranch","ChangeCommitter","ChangeTestMergeCommits","ChangeCredentials","SetReference","ChangeAutoUpdateSettings","Delete","ChangeSubmoduleUpdate","minimumDeployPerms","minimumChatPerms","ChatBotRights","Create","minimumFilePerms","ConfigurationRights","List","Write","InstanceEdit","deleteContextError","selectedinstanceid","match","params","tab","tabs","Set","deleteError","instanceid","newSet","delete","componentDidMount","componentDidUpdate","prevProps","InstancePermissionSetClient","getCurrentInstancePermissionSet","add","Provider","value","Object","assign","serverInfo","Card","Header","values","instancename","Tab","Container","mountOnEnter","unmountOnExit","activeKey","Body","nav","Nav","defaultActiveKey","onSelect","eventKey","selectedinstanceedittab","history","AppRoutes","instanceedit","link","route","fill","variant","configOptions","instanceeditsidebar","InstanceEditSidebar","COLLAPSE","EXPAND","style","top","tabKey","icon","accessCb","component","Error","wip","accessDenied","Item","Link","bsPrefix","FontAwesomeIcon","fixedWidth","Content","Comp","Pane","AccessDenied","WIPNotice","Config","repositoryRights","Repository","faGamepad","engineRights","Engine","dreamMakerRights","dreamDaemonRights","Server","chatBotRights","ChatBots","configurationRights","Files","InstancePermissions","GeneralContext"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/6.6.0/6959.ab60442ed5a32c1fd33f.bundle.js b/webpanel/6.6.0/6959.ab60442ed5a32c1fd33f.bundle.js new file mode 100644 index 00000000..a1ec4b80 --- /dev/null +++ b/webpanel/6.6.0/6959.ab60442ed5a32c1fd33f.bundle.js @@ -0,0 +1,2 @@ +(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[6959],{3238:function(e,t){"use strict";var n="discord",r=[],o="f392",i="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z";t.mw={prefix:"fab",iconName:n,icon:[640,512,r,o,i]},t._2=t.mw},3827:function(e,t){"use strict";var n="github",r=[],o="f09b",i="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z";t.mw={prefix:"fab",iconName:n,icon:[496,512,r,o,i]},t.Vz=t.mw},6784:function(e,t,n){"use strict";n.d(t,{g:function(){return w}});var r=n(7107),o=n(5556),i=n.n(o),a=n(6540);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function d(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0||!Array.isArray(t)&&t?c({},e,t):{}}var y={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1},w=a.forwardRef((function(e,t){var n=l(l({},y),e),o=n.icon,i=n.mask,a=n.symbol,s=n.className,u=n.title,f=n.titleId,p=n.maskId,h=g(o),m=b("classes",[].concat(d(function(e){var t,n=e.beat,r=e.fade,o=e.beatFade,i=e.bounce,a=e.shake,s=e.flash,l=e.spin,u=e.spinPulse,f=e.spinReverse,d=e.pulse,p=e.fixedWidth,h=e.inverse,m=e.border,v=e.listItem,g=e.flip,b=e.size,y=e.rotation,w=e.pull,x=(c(t={"fa-beat":n,"fa-fade":r,"fa-beat-fade":o,"fa-bounce":i,"fa-shake":a,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":f,"fa-spin-pulse":u,"fa-pulse":d,"fa-fw":p,"fa-inverse":h,"fa-border":m,"fa-li":v,"fa-flip":!0===g,"fa-flip-horizontal":"horizontal"===g||"both"===g,"fa-flip-vertical":"vertical"===g||"both"===g},"fa-".concat(b),null!=b),c(t,"fa-rotate-".concat(y),null!=y&&0!==y),c(t,"fa-pull-".concat(w),null!=w),c(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(x).map((function(e){return x[e]?e:null})).filter((function(e){return e}))}(n)),d((s||"").split(" ")))),w=b("transform","string"==typeof n.transform?r.qg.transform(n.transform):n.transform),A=b("mask",g(i)),E=(0,r.Kk)(h,l(l(l(l({},m),w),A),{},{symbol:a,title:u,titleId:f,maskId:p}));if(!E)return function(){var e;!v&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",h),null;var S=E.abstract,C={ref:t};return Object.keys(n).forEach((function(e){y.hasOwnProperty(e)||(C[e]=n[e])})),x(S[0],C)}));w.displayName="FontAwesomeIcon",w.propTypes={beat:i().bool,border:i().bool,beatFade:i().bool,bounce:i().bool,className:i().string,fade:i().bool,flash:i().bool,mask:i().oneOfType([i().object,i().array,i().string]),maskId:i().string,fixedWidth:i().bool,inverse:i().bool,flip:i().oneOf([!0,!1,"horizontal","vertical","both"]),icon:i().oneOfType([i().object,i().array,i().string]),listItem:i().bool,pull:i().oneOf(["right","left"]),pulse:i().bool,rotation:i().oneOf([0,90,180,270]),shake:i().bool,size:i().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:i().bool,spinPulse:i().bool,spinReverse:i().bool,symbol:i().oneOfType([i().bool,i().string]),title:i().string,titleId:i().string,transform:i().oneOfType([i().string,i().object]),swapOpacity:i().bool};var x=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var o=(n.children||[]).map((function(n){return e(t,n)})),i=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=r.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var n,r=t.indexOf(":"),o=h(t.slice(0,r)),i=t.slice(r+1).trim();return o.startsWith("webkit")?e[(n=o,n.charAt(0).toUpperCase()+n.slice(1))]=i:e[o]=i,e}),{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[h(t)]=r}return e}),{attrs:{}}),a=r.style,s=void 0===a?{}:a,u=f(r,m);return i.attrs.style=l(l({},i.attrs.style),s),t.apply(void 0,[n.tag,l(l({},i.attrs),u)].concat(d(o)))}.bind(null,a.createElement)},9181:function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n=0;d--){var p=a[d];"."===p?i(a,d):".."===p?(i(a,d),f++):f&&(i(a,d),f--)}if(!u)for(;f--;f)a.unshift("..");!u||""===a[0]||a[0]&&o(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},s=n(8997);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function d(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function p(e,t,n,o){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.A)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(i.key=n),o?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=a(i.pathname,o.pathname)):i.pathname=o.pathname:i.pathname||(i.pathname="/"),i}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),f({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,m(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,f({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t>",s=i||n;if(null==t[n])return new Error("The "+o+" `"+s+"` is required to make `"+a+"` accessible for users of assistive technologies such as screen readers.");for(var l=arguments.length,u=Array(l>5?l-5:0),c=5;c>",l=a||r;if(null==n[r])return t?new Error("Required "+i+" `"+l+"` was not specified in `"+s+"`."):null;for(var u=arguments.length,c=Array(u>6?u-6:0),f=6;f *":s,d=e.focusFirstItemOnShow,m=e.children,y=(0,p.iC)(i,o,a),w=y[0],x=y[1],A=M(),E=A[0],S=A[1],C=E.current,N=M(),O=N[0],P=N[1],k=O.current,R=(0,h.A)(w),D=(0,l.useRef)(null),z=(0,l.useRef)(!1),T=(0,l.useCallback)((function(e,t){x(e,t)}),[x]),_=(0,l.useMemo)((function(){return{toggle:T,drop:t,show:w,alignEnd:n,menuElement:C,toggleElement:k,setMenu:S,setToggle:P}}),[T,t,w,n,C,k,S,P]);C&&R&&!w&&(z.current=C.contains(document.activeElement));var j=(0,v.A)((function(){k&&k.focus&&k.focus()})),L=(0,v.A)((function(){var e=D.current,t=d;if(null==t&&(t=!(!E.current||!function(e,t){if(!r){var n=document.body,o=n.matches||n.matchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector;r=function(e,t){return o.call(e,t)}}return r(e,t)}(E.current,"[role=menu]"))&&"keyboard"),!1!==t&&("keyboard"!==t||/^key.+$/.test(e))){var n=(0,u.A)(E.current,f)[0];n&&n.focus&&n.focus()}}));(0,l.useEffect)((function(){w?L():z.current&&(z.current=!1,j())}),[w,z,j,L]),(0,l.useEffect)((function(){D.current=null}));var W=function(e,t){if(!E.current)return null;var n=(0,u.A)(E.current,f),r=n.indexOf(e)+t;return n[r=Math.max(0,Math.min(r,n.length))]};return g("keydown",(function(e){var t,n,r=e.key,o=e.target,i=null==(t=E.current)?void 0:t.contains(o),a=null==(n=O.current)?void 0:n.contains(o);if((!/input|textarea/i.test(o.tagName)||!(" "===r||"Escape"!==r&&i))&&(i||a)&&(E.current||"Tab"!==r))switch(D.current=e.type,r){case"ArrowUp":var s=W(o,-1);return s&&s.focus&&s.focus(),void e.preventDefault();case"ArrowDown":if(e.preventDefault(),w){var l=W(o,1);l&&l.focus&&l.focus()}else x(!0,e);return;case"Tab":(0,c.Ay)(document,"keyup",(function(t){var n;("Tab"!==t.key||t.target)&&null!=(n=E.current)&&n.contains(t.target)||x(!1,e)}),{once:!0});break;case"Escape":e.preventDefault(),e.stopPropagation(),x(!1,e)}})),l.createElement(b.Provider,{value:_},m)}_.displayName="ReactOverlaysDropdown",_.propTypes=T,_.Menu=O,_.Toggle=z;var j=_,L=n(5724),W=n(6519),H=n(3559),F=n(9703),I=["bsPrefix","className","children","eventKey","disabled","href","onClick","onSelect","active","as"],U={as:F.A,disabled:!1},B=l.forwardRef((function(e,t){var n=e.bsPrefix,r=e.className,a=e.children,u=e.eventKey,c=e.disabled,f=e.href,d=e.onClick,p=e.onSelect,h=e.active,m=e.as,g=(0,i.A)(e,I),b=(0,W.oU)(n,"dropdown-item"),y=(0,l.useContext)(L.A),w=((0,l.useContext)(H.A)||{}).activeKey,x=(0,L.u)(u,f),A=null==h&&null!=x?(0,L.u)(w)===x:h,E=(0,v.A)((function(e){c||(d&&d(e),y&&y(x,e),p&&p(x,e))}));return l.createElement(m,(0,o.A)({},g,{ref:t,href:f,disabled:c,className:s()(r,b,A&&"active",c&&"disabled"),onClick:E}),a)}));B.displayName="DropdownItem",B.defaultProps=U;var V=B,K=n(3804),X=(n(9771),n(4778));n(311);function G(e,t){return e}var Y=n(6500),q=["bsPrefix","className","align","alignRight","rootCloseEvent","flip","show","renderOnMount","as","popperConfig"],$=d().oneOf(["left","right"]),Z=(d().oneOfType([$,d().shape({sm:$}),d().shape({md:$}),d().shape({lg:$}),d().shape({xl:$})]),l.forwardRef((function(e,t){var n=e.bsPrefix,r=e.className,a=e.align,u=e.alignRight,c=e.rootCloseEvent,f=e.flip,d=e.show,p=e.renderOnMount,h=e.as,m=void 0===h?"div":h,v=e.popperConfig,g=(0,i.A)(e,q),b=(0,l.useContext)(X.A),y=(0,W.oU)(n,"dropdown-menu"),w=(0,Y.A)(),x=w[0],A=w[1],E=[];if(a)if("object"==typeof a){var C=Object.keys(a);if(C.length){var N=C[0],O=a[N];u="left"===O,E.push(y+"-"+N+"-"+O)}}else"right"===a&&(u=!0);var P=S({flip:f,rootCloseEvent:c,show:d,alignEnd:u,usePopper:!b&&0===E.length,popperConfig:(0,o.A)({},v,{modifiers:A.concat((null==v?void 0:v.modifiers)||[])})}),k=P[0],R=P[1],D=R.hasShown,z=R.popper,T=R.show,M=R.alignEnd,_=R.toggle;if(k.ref=(0,K.A)(x,(0,K.A)(G(t),k.ref)),!D&&!p)return null;"string"!=typeof m&&(k.show=T,k.close=function(){return null==_?void 0:_(!1)},k.alignRight=M);var j=g.style;return null!=z&&z.placement&&(j=(0,o.A)({},g.style,k.style),g["x-placement"]=z.placement),l.createElement(m,(0,o.A)({},g,k,{style:j,className:s().apply(void 0,[r,y,T&&"show",M&&y+"-right"].concat(E))}))})));Z.displayName="DropdownMenu",Z.defaultProps={align:"left",alignRight:!1,flip:!0};var Q=Z,J=(n(8239),n(5615)),ee=["bsPrefix","split","className","childBsPrefix","as"],te=l.forwardRef((function(e,t){var n=e.bsPrefix,r=e.split,a=e.className,u=e.childBsPrefix,c=e.as,f=void 0===c?J.A:c,d=(0,i.A)(e,ee),p=(0,W.oU)(n,"dropdown-toggle");void 0!==u&&(d.bsPrefix=u);var h=k()[0];return h.ref=(0,K.A)(h.ref,G(t)),l.createElement(f,(0,o.A)({className:s()(a,p,r&&p+"-split")},h,d))}));te.displayName="DropdownToggle";var ne=te,re=n(6261),oe=["bsPrefix","drop","show","className","alignRight","onSelect","onToggle","focusFirstItemOnShow","as","navbar"],ie=(0,re.A)("dropdown-header",{defaultProps:{role:"heading"}}),ae=(0,re.A)("dropdown-divider",{defaultProps:{role:"separator"}}),se=(0,re.A)("dropdown-item-text",{Component:"span"}),le=l.forwardRef((function(e,t){var n=(0,p.Zw)(e,{show:"onToggle"}),r=n.bsPrefix,a=n.drop,u=n.show,c=n.className,f=n.alignRight,d=n.onSelect,h=n.onToggle,m=n.focusFirstItemOnShow,g=n.as,b=void 0===g?"div":g,y=(n.navbar,(0,i.A)(n,oe)),w=(0,l.useContext)(L.A),x=(0,W.oU)(r,"dropdown"),A=(0,v.A)((function(e,t,n){void 0===n&&(n=t.type),t.currentTarget!==document||"keydown"===n&&"Escape"!==t.key||(n="rootClose"),h&&h(e,t,{source:n})})),E=(0,v.A)((function(e,t){w&&w(e,t),d&&d(e,t),A(!1,t,"select")}));return l.createElement(L.A.Provider,{value:E},l.createElement(j,{drop:a,show:u,alignEnd:f,onToggle:A,focusFirstItemOnShow:m,itemSelector:"."+x+"-item:not(.disabled):not(:disabled)"},l.createElement(b,(0,o.A)({},y,{ref:t,className:s()(c,u&&"show",(!a||"down"===a)&&x,"up"===a&&"dropup","right"===a&&"dropright","left"===a&&"dropleft")}))))}));le.displayName="Dropdown",le.defaultProps={navbar:!1},le.Divider=ae,le.Header=ie,le.Item=V,le.ItemText=se,le.Menu=Q,le.Toggle=ne;var ue=le},9528:function(e,t,n){"use strict";n.d(t,{T:function(){return o},j:function(){return i}});var r=n(6540);function o(e,t){var n=0;return r.Children.map(e,(function(e){return r.isValidElement(e)?t(e,n++):e}))}function i(e,t){var n=0;r.Children.forEach(e,(function(e){r.isValidElement(e)&&t(e,n++)}))}},7285:function(e,t,n){"use strict";var r,o=n(8168),i=n(8587),a=n(2485),s=n.n(a),l=n(6540),u=n(8819),c=n(923),f=n(5258),d=["className","children"],p=((r={})[u.ns]="show",r[u._K]="show",r),h=l.forwardRef((function(e,t){var n=e.className,r=e.children,a=(0,i.A)(e,d),h=(0,l.useCallback)((function(e){(0,f.A)(e),a.onEnter&&a.onEnter(e)}),[a]);return l.createElement(u.Ay,(0,o.A)({ref:t,addEndListener:c.A},a,{onEnter:h}),(function(e,t){return l.cloneElement(r,(0,o.A)({},t,{className:s()("fade",n,r.props.className,p[e])}))}))}));h.defaultProps={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1},h.displayName="Fade",t.A=h},7320:function(e,t,n){"use strict";var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=n(5556),u=n.n(l),c=["as","className","type","tooltip"],f={type:u().string,tooltip:u().bool,as:u().elementType},d=s.forwardRef((function(e,t){var n=e.as,i=void 0===n?"div":n,l=e.className,u=e.type,f=void 0===u?"valid":u,d=e.tooltip,p=void 0!==d&&d,h=(0,o.A)(e,c);return s.createElement(i,(0,r.A)({},h,{ref:t,className:a()(l,f+"-"+(p?"tooltip":"feedback"))}))}));d.displayName="Feedback",d.propTypes=f,t.A=d},1208:function(e,t,n){"use strict";n.d(t,{A:function(){return X}});var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=(n(2816),n(7320)),u=n(2321),c=n(6519),f=["id","bsPrefix","bsCustomPrefix","className","type","isValid","isInvalid","isStatic","as"],d=s.forwardRef((function(e,t){var n=e.id,i=e.bsPrefix,l=e.bsCustomPrefix,d=e.className,p=e.type,h=void 0===p?"checkbox":p,m=e.isValid,v=void 0!==m&&m,g=e.isInvalid,b=void 0!==g&&g,y=e.isStatic,w=e.as,x=void 0===w?"input":w,A=(0,o.A)(e,f),E=(0,s.useContext)(u.A),S=E.controlId,C=E.custom?[l,"custom-control-input"]:[i,"form-check-input"],N=C[0],O=C[1];return i=(0,c.oU)(N,O),s.createElement(x,(0,r.A)({},A,{ref:t,type:h,id:n||S,className:a()(d,i,v&&"is-valid",b&&"is-invalid",y&&"position-static")}))}));d.displayName="FormCheckInput";var p=d,h=["bsPrefix","bsCustomPrefix","className","htmlFor"],m=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.bsCustomPrefix,l=e.className,f=e.htmlFor,d=(0,o.A)(e,h),p=(0,s.useContext)(u.A),m=p.controlId,v=p.custom?[i,"custom-control-label"]:[n,"form-check-label"],g=v[0],b=v[1];return n=(0,c.oU)(g,b),s.createElement("label",(0,r.A)({},d,{ref:t,htmlFor:f||m,className:a()(l,n)}))}));m.displayName="FormCheckLabel";var v=m,g=["id","bsPrefix","bsCustomPrefix","inline","disabled","isValid","isInvalid","feedbackTooltip","feedback","className","style","title","type","label","children","custom","as"],b=s.forwardRef((function(e,t){var n=e.id,i=e.bsPrefix,f=e.bsCustomPrefix,d=e.inline,h=void 0!==d&&d,m=e.disabled,b=void 0!==m&&m,y=e.isValid,w=void 0!==y&&y,x=e.isInvalid,A=void 0!==x&&x,E=e.feedbackTooltip,S=void 0!==E&&E,C=e.feedback,N=e.className,O=e.style,P=e.title,k=void 0===P?"":P,R=e.type,D=void 0===R?"checkbox":R,z=e.label,T=e.children,M=e.custom,_=e.as,j=void 0===_?"input":_,L=(0,o.A)(e,g),W="switch"===D||M,H=W?[f,"custom-control"]:[i,"form-check"],F=H[0],I=H[1];i=(0,c.oU)(F,I);var U=(0,s.useContext)(u.A).controlId,B=(0,s.useMemo)((function(){return{controlId:n||U,custom:W}}),[U,W,n]),V=W||null!=z&&!1!==z&&!T,K=s.createElement(p,(0,r.A)({},L,{type:"switch"===D?"checkbox":D,ref:t,isValid:w,isInvalid:A,isStatic:!V,disabled:b,as:j}));return s.createElement(u.A.Provider,{value:B},s.createElement("div",{style:O,className:a()(N,i,W&&"custom-"+D,h&&i+"-inline")},T||s.createElement(s.Fragment,null,K,V&&s.createElement(v,{title:k},z),(w||A)&&s.createElement(l.A,{type:w?"valid":"invalid",tooltip:S},C))))}));b.displayName="FormCheck",b.Input=p,b.Label=v;var y=b,w=["id","bsPrefix","bsCustomPrefix","className","isValid","isInvalid","lang","as"],x=s.forwardRef((function(e,t){var n=e.id,i=e.bsPrefix,l=e.bsCustomPrefix,f=e.className,d=e.isValid,p=e.isInvalid,h=e.lang,m=e.as,v=void 0===m?"input":m,g=(0,o.A)(e,w),b=(0,s.useContext)(u.A),y=b.controlId,x=b.custom?[l,"custom-file-input"]:[i,"form-control-file"],A=x[0],E=x[1];return i=(0,c.oU)(A,E),s.createElement(v,(0,r.A)({},g,{ref:t,id:n||y,type:"file",lang:h,className:a()(f,i,d&&"is-valid",p&&"is-invalid")}))}));x.displayName="FormFileInput";var A=x,E=["bsPrefix","bsCustomPrefix","className","htmlFor"],S=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.bsCustomPrefix,l=e.className,f=e.htmlFor,d=(0,o.A)(e,E),p=(0,s.useContext)(u.A),h=p.controlId,m=p.custom?[i,"custom-file-label"]:[n,"form-file-label"],v=m[0],g=m[1];return n=(0,c.oU)(v,g),s.createElement("label",(0,r.A)({},d,{ref:t,htmlFor:f||h,className:a()(l,n),"data-browse":d["data-browse"]}))}));S.displayName="FormFileLabel";var C=S,N=["id","bsPrefix","bsCustomPrefix","disabled","isValid","isInvalid","feedbackTooltip","feedback","className","style","label","children","custom","lang","data-browse","as","inputAs"],O=s.forwardRef((function(e,t){var n=e.id,i=e.bsPrefix,f=e.bsCustomPrefix,d=e.disabled,p=void 0!==d&&d,h=e.isValid,m=void 0!==h&&h,v=e.isInvalid,g=void 0!==v&&v,b=e.feedbackTooltip,y=void 0!==b&&b,w=e.feedback,x=e.className,E=e.style,S=e.label,O=e.children,P=e.custom,k=e.lang,R=e["data-browse"],D=e.as,z=void 0===D?"div":D,T=e.inputAs,M=void 0===T?"input":T,_=(0,o.A)(e,N),j=P?[f,"custom"]:[i,"form-file"],L=j[0],W=j[1];i=(0,c.oU)(L,W);var H=(0,s.useContext)(u.A).controlId,F=(0,s.useMemo)((function(){return{controlId:n||H,custom:P}}),[H,P,n]),I=null!=S&&!1!==S&&!O,U=s.createElement(A,(0,r.A)({},_,{ref:t,isValid:m,isInvalid:g,disabled:p,as:M,lang:k}));return s.createElement(u.A.Provider,{value:F},s.createElement(z,{style:E,className:a()(x,i,P&&"custom-file")},O||s.createElement(s.Fragment,null,P?s.createElement(s.Fragment,null,U,I&&s.createElement(C,{"data-browse":R},S)):s.createElement(s.Fragment,null,I&&s.createElement(C,null,S),U),(m||g)&&s.createElement(l.A,{type:m?"valid":"invalid",tooltip:y},w))))}));O.displayName="FormFile",O.Input=A,O.Label=C;var P=O,k=n(1364),R=["bsPrefix","className","children","controlId","as"],D=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,l=e.children,f=e.controlId,d=e.as,p=void 0===d?"div":d,h=(0,o.A)(e,R);n=(0,c.oU)(n,"form-group");var m=(0,s.useMemo)((function(){return{controlId:f}}),[f]);return s.createElement(u.A.Provider,{value:m},s.createElement(p,(0,r.A)({},h,{ref:t,className:a()(i,n)}),l))}));D.displayName="FormGroup";var z=D,T=(n(9771),n(1105)),M=["as","bsPrefix","column","srOnly","className","htmlFor"],_=s.forwardRef((function(e,t){var n=e.as,i=void 0===n?"label":n,l=e.bsPrefix,f=e.column,d=e.srOnly,p=e.className,h=e.htmlFor,m=(0,o.A)(e,M),v=(0,s.useContext)(u.A).controlId;l=(0,c.oU)(l,"form-label");var g="col-form-label";"string"==typeof f&&(g=g+" "+g+"-"+f);var b=a()(p,l,d&&"sr-only",f&&g);return h=h||v,f?s.createElement(T.A,(0,r.A)({ref:t,as:"label",className:b,htmlFor:h},m)):s.createElement(i,(0,r.A)({ref:t,className:b,htmlFor:h},m))}));_.displayName="FormLabel",_.defaultProps={column:!1,srOnly:!1};var j=_,L=["bsPrefix","className","as","muted"],W=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,l=e.as,u=void 0===l?"small":l,f=e.muted,d=(0,o.A)(e,L);return n=(0,c.oU)(n,"form-text"),s.createElement(u,(0,r.A)({},d,{ref:t,className:a()(i,n,f&&"text-muted")}))}));W.displayName="FormText";var H=W,F=s.forwardRef((function(e,t){return s.createElement(y,(0,r.A)({},e,{ref:t,type:"switch"}))}));F.displayName="Switch",F.Input=y.Input,F.Label=y.Label;var I=F,U=n(6261),B=["bsPrefix","inline","className","validated","as"],V=(0,U.A)("form-row"),K=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.inline,l=e.className,u=e.validated,f=e.as,d=void 0===f?"form":f,p=(0,o.A)(e,B);return n=(0,c.oU)(n,"form"),s.createElement(d,(0,r.A)({},p,{ref:t,className:a()(l,u&&"was-validated",i&&n+"-inline")}))}));K.displayName="Form",K.defaultProps={inline:!1},K.Row=V,K.Group=z,K.Control=k.A,K.Check=y,K.File=P,K.Switch=I,K.Label=j,K.Text=H;var X=K},2321:function(e,t,n){"use strict";var r=n(6540).createContext({controlId:void 0});t.A=r},1364:function(e,t,n){"use strict";var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=(n(2816),n(6540)),l=(n(9771),n(7320)),u=n(2321),c=n(6519),f=["bsPrefix","bsCustomPrefix","type","size","htmlSize","id","className","isValid","isInvalid","plaintext","readOnly","custom","as"],d=s.forwardRef((function(e,t){var n,i,l=e.bsPrefix,d=e.bsCustomPrefix,p=e.type,h=e.size,m=e.htmlSize,v=e.id,g=e.className,b=e.isValid,y=void 0!==b&&b,w=e.isInvalid,x=void 0!==w&&w,A=e.plaintext,E=e.readOnly,S=e.custom,C=e.as,N=void 0===C?"input":C,O=(0,o.A)(e,f),P=(0,s.useContext)(u.A).controlId,k=S?[d,"custom"]:[l,"form-control"],R=k[0],D=k[1];if(l=(0,c.oU)(R,D),A)(i={})[l+"-plaintext"]=!0,n=i;else if("file"===p){var z;(z={})[l+"-file"]=!0,n=z}else if("range"===p){var T;(T={})[l+"-range"]=!0,n=T}else if("select"===N&&S){var M;(M={})[l+"-select"]=!0,M[l+"-select-"+h]=h,n=M}else{var _;(_={})[l]=!0,_[l+"-"+h]=h,n=_}return s.createElement(N,(0,r.A)({},O,{type:p,size:m,ref:t,readOnly:E,id:v||P,className:a()(g,n,y&&"is-valid",x&&"is-invalid")}))}));d.displayName="FormControl",t.A=Object.assign(d,{Feedback:l.A})},1274:function(e,t,n){"use strict";n.d(t,{A:function(){return he}});var r,o=n(8587),i=n(8168),a=n(2485),s=n.n(a),l=n(8394),u=n(7828),c=n(1625),f=n(5019);function d(e){if((!r&&0!==r||e)&&u.A){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),r=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return r}var p=n(1244),h=n(9561),m=n(1577),v=n(5797),g=n(6540);function b(e){void 0===e&&(e=(0,c.A)());try{var t=e.activeElement;return t&&t.nodeName?t:null}catch(t){return e.body}}var y=n(6406),w=n(1284),x=n(5556),A=n.n(x),E=n(961),S=n(8880),C=n(4103),N=n(922),O=n(8995),P=n(2660);function k(e){return"window"in e&&e.window===e?e:"nodeType"in(t=e)&&t.nodeType===document.DOCUMENT_NODE&&e.defaultView||!1;var t}function R(e){var t;return k(e)||(t=e)&&"body"===t.tagName.toLowerCase()?function(e){var t=k(e)?(0,c.A)():(0,c.A)(e),n=k(e)||t.defaultView;return t.body.clientWidthe.clientHeight}var D=["template","script","style"],z=function(e,t,n){[].forEach.call(e.children,(function(e){var r,o,i;-1===t.indexOf(e)&&(o=(r=e).nodeType,i=r.tagName,1===o&&-1===D.indexOf(i.toLowerCase()))&&n(e)}))};function T(e,t){t&&(e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden"))}var M,_=function(){function e(e){var t=void 0===e?{}:e,n=t.hideSiblingNodes,r=void 0===n||n,o=t.handleContainerOverflow,i=void 0===o||o;this.hideSiblingNodes=void 0,this.handleContainerOverflow=void 0,this.modals=void 0,this.containers=void 0,this.data=void 0,this.scrollbarSize=void 0,this.hideSiblingNodes=r,this.handleContainerOverflow=i,this.modals=[],this.containers=[],this.data=[],this.scrollbarSize=d()}var t=e.prototype;return t.isContainerOverflowing=function(e){var t=this.data[this.containerIndexFromModal(e)];return t&&t.overflowing},t.containerIndexFromModal=function(e){return t=this.data,n=function(t){return-1!==t.modals.indexOf(e)},r=-1,t.some((function(e,t){return!!n(e,t)&&(r=t,!0)})),r;var t,n,r},t.setContainerStyle=function(e,t){var n={overflow:"hidden"};e.style={overflow:t.style.overflow,paddingRight:t.style.paddingRight},e.overflowing&&(n.paddingRight=parseInt((0,P.A)(t,"paddingRight")||"0",10)+this.scrollbarSize+"px"),(0,P.A)(t,n)},t.removeContainerStyle=function(e,t){Object.assign(t.style,e.style)},t.add=function(e,t,n){var r=this.modals.indexOf(e),o=this.containers.indexOf(t);if(-1!==r)return r;if(r=this.modals.length,this.modals.push(e),this.hideSiblingNodes&&function(e,t){var n=t.dialog,r=t.backdrop;z(e,[n,r],(function(e){return T(!0,e)}))}(t,e),-1!==o)return this.data[o].modals.push(e),r;var i={modals:[e],classes:n?n.split(/\s+/):[],overflowing:R(t)};return this.handleContainerOverflow&&this.setContainerStyle(i,t),i.classes.forEach(N.A.bind(null,t)),this.containers.push(t),this.data.push(i),r},t.remove=function(e){var t=this.modals.indexOf(e);if(-1!==t){var n=this.containerIndexFromModal(e),r=this.data[n],o=this.containers[n];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(t,1),0===r.modals.length)r.classes.forEach(O.A.bind(null,o)),this.handleContainerOverflow&&this.removeContainerStyle(r,o),this.hideSiblingNodes&&function(e,t){var n=t.dialog,r=t.backdrop;z(e,[n,r],(function(e){return T(!1,e)}))}(o,e),this.containers.splice(n,1),this.data.splice(n,1);else if(this.hideSiblingNodes){var i=r.modals[r.modals.length-1],a=i.backdrop;T(!1,i.dialog),T(!1,a)}}},t.isTopModal=function(e){return!!this.modals.length&&this.modals[this.modals.length-1]===e},e}(),j=n(9808);function L(e){var t=e||(M||(M=new _),M),n=(0,g.useRef)({dialog:null,backdrop:null});return Object.assign(n.current,{add:function(e,r){return t.add(n.current,e,r)},remove:function(){return t.remove(n.current)},isTopModal:function(){return t.isTopModal(n.current)},setDialogRef:(0,g.useCallback)((function(e){n.current.dialog=e}),[]),setBackdropRef:(0,g.useCallback)((function(e){n.current.backdrop=e}),[])})}var W=(0,g.forwardRef)((function(e,t){var n=e.show,r=void 0!==n&&n,a=e.role,s=void 0===a?"dialog":a,l=e.className,c=e.style,f=e.children,d=e.backdrop,p=void 0===d||d,v=e.keyboard,x=void 0===v||v,A=e.onBackdropClick,N=e.onEscapeKeyDown,O=e.transition,P=e.backdropTransition,k=e.autoFocus,R=void 0===k||k,D=e.enforceFocus,z=void 0===D||D,T=e.restoreFocus,M=void 0===T||T,_=e.restoreFocusOptions,W=e.renderDialog,H=e.renderBackdrop,F=void 0===H?function(e){return g.createElement("div",e)}:H,I=e.manager,U=e.container,B=e.containerClassName,V=e.onShow,K=e.onHide,X=void 0===K?function(){}:K,G=e.onExit,Y=e.onExited,q=e.onExiting,$=e.onEnter,Z=e.onEntering,Q=e.onEntered,J=(0,o.A)(e,["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","backdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","containerClassName","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"]),ee=(0,j.A)(U),te=L(I),ne=(0,S.A)(),re=(0,C.A)(r),oe=(0,g.useState)(!r),ie=oe[0],ae=oe[1],se=(0,g.useRef)(null);(0,g.useImperativeHandle)(t,(function(){return te}),[te]),u.A&&!re&&r&&(se.current=b()),O||r||ie?r&&ie&&ae(!1):ae(!0);var le=(0,h.A)((function(){if(te.add(ee,B),he.current=(0,w.A)(document,"keydown",de),pe.current=(0,w.A)(document,"focus",(function(){return setTimeout(ce)}),!0),V&&V(),R){var e=b(document);te.dialog&&e&&!(0,y.A)(te.dialog,e)&&(se.current=e,te.dialog.focus())}})),ue=(0,h.A)((function(){var e;(te.remove(),null==he.current||he.current(),null==pe.current||pe.current(),M)&&(null==(e=se.current)||null==e.focus||e.focus(_),se.current=null)}));(0,g.useEffect)((function(){r&&ee&&le()}),[r,ee,le]),(0,g.useEffect)((function(){ie&&ue()}),[ie,ue]),(0,m.A)((function(){ue()}));var ce=(0,h.A)((function(){if(z&&ne()&&te.isTopModal()){var e=b();te.dialog&&e&&!(0,y.A)(te.dialog,e)&&te.dialog.focus()}})),fe=(0,h.A)((function(e){e.target===e.currentTarget&&(null==A||A(e),!0===p&&X())})),de=(0,h.A)((function(e){x&&27===e.keyCode&&te.isTopModal()&&(null==N||N(e),e.defaultPrevented||X())})),pe=(0,g.useRef)(),he=(0,g.useRef)(),me=O;if(!ee||!(r||me&&!ie))return null;var ve=(0,i.A)({role:s,ref:te.setDialogRef,"aria-modal":"dialog"===s||void 0},J,{style:c,className:l,tabIndex:-1}),ge=W?W(ve):g.createElement("div",ve,g.cloneElement(f,{role:"document"}));me&&(ge=g.createElement(me,{appear:!0,unmountOnExit:!0,in:!!r,onExit:G,onExiting:q,onExited:function(){ae(!0);for(var e=arguments.length,t=new Array(e),n=0;n(0,c.A)(e).documentElement.clientHeight;Y({paddingRight:t&&!n?d():void 0,paddingLeft:!t&&n?d():void 0})}}var he=(0,h.A)((function(){oe&&pe(oe.dialog)}));(0,m.A)((function(){(0,f.A)(window,"resize",he),ne.current&&ne.current()}));var me=function(){ee.current=!0},ve=function(e){ee.current&&oe&&e.target===oe.dialog&&(te.current=!0),ee.current=!1},ge=function(){J(!0),ne.current=(0,v.A)(oe.dialog,(function(){J(!1)}))},be=function(e){"static"!==C?te.current||e.target!==e.currentTarget?te.current=!1:null==k||k():function(e){e.target===e.currentTarget&&ge()}(e)},ye=(0,g.useCallback)((function(e){return g.createElement("div",(0,i.A)({},e,{className:s()(n+"-backdrop",U,!S&&"show")}))}),[S,U,n]),we=(0,i.A)({},a,G);S||(we.display="block");return g.createElement($.Provider,{value:le},g.createElement(F,{show:E,ref:ae,backdrop:C,container:R,keyboard:!0,autoFocus:D,enforceFocus:z,restoreFocus:T,restoreFocusOptions:M,onEscapeKeyDown:function(e){N||"static"!==C?N&&O&&O(e):(e.preventDefault(),ge())},onShow:P,onHide:k,onEnter:function(e,t){e&&(e.style.display="block",pe(e)),null==W||W(e,t)},onEntering:function(e,t){null==H||H(e,t),(0,l.Ay)(window,"resize",he)},onEntered:_,onExit:function(e){null==ne.current||ne.current(),null==j||j(e)},onExiting:L,onExited:function(e){e&&(e.style.display=""),null==I||I(e),(0,f.A)(window,"resize",he)},manager:ce(),containerClassName:n+"-open",transition:S?fe:void 0,backdropTransition:S?de:void 0,renderBackdrop:ye,renderDialog:function(e){return g.createElement("div",(0,i.A)({role:"dialog"},e,{style:we,className:s()(r,n,Q&&n+"-static"),onClick:C?be:void 0,onMouseUp:ve,"aria-labelledby":A}),g.createElement(x,(0,i.A)({},V,{onMouseDown:me,className:b,contentClassName:y}),w))}}))}));pe.displayName="Modal",pe.defaultProps=ce,pe.Body=q,pe.Header=ae,pe.Title=le,pe.Footer=te,pe.Dialog=ee,pe.TRANSITION_DURATION=300,pe.BACKDROP_TRANSITION_DURATION=150;var he=pe},6867:function(e,t,n){"use strict";n.d(t,{A:function(){return C}});var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=(n(2816),n(6540)),l=n(1558),u=n(6519),c=n(4778),f=n(4390),d=n(5003),p=n(8342),h=n(3804),m=n(3559),v=n(5724),g=n(4629),b=["as","onSelect","activeKey","role","onKeyDown"],y=function(){},w=s.forwardRef((function(e,t){var n,i,a=e.as,l=void 0===a?"ul":a,u=e.onSelect,c=e.activeKey,f=e.role,w=e.onKeyDown,x=(0,o.A)(e,b),A=(0,p.A)(),E=(0,s.useRef)(!1),S=(0,s.useContext)(v.A),C=(0,s.useContext)(g.A);C&&(f=f||"tablist",c=C.activeKey,n=C.getControlledId,i=C.getControllerId);var N=(0,s.useRef)(null),O=function(e){var t=N.current;if(!t)return null;var n=(0,d.A)(t,"[data-rb-event-key]:not(.disabled)"),r=t.querySelector(".active");if(!r)return null;var o=n.indexOf(r);if(-1===o)return null;var i=o+e;return i>=n.length&&(i=0),i<0&&(i=n.length-1),n[i]},P=function(e,t){null!=e&&(u&&u(e,t),S&&S(e,t))};(0,s.useEffect)((function(){if(N.current&&E.current){var e=N.current.querySelector("[data-rb-event-key].active");e&&e.focus()}E.current=!1}));var k=(0,h.A)(t,N);return s.createElement(v.A.Provider,{value:P},s.createElement(m.A.Provider,{value:{role:f,activeKey:(0,v.u)(c),getControlledId:n||y,getControllerId:i||y}},s.createElement(l,(0,r.A)({},x,{onKeyDown:function(e){var t;switch(w&&w(e),e.key){case"ArrowLeft":case"ArrowUp":t=O(-1);break;case"ArrowRight":case"ArrowDown":t=O(1);break;default:return}t&&(e.preventDefault(),P(t.dataset.rbEventKey,e),E.current=!0,A())},ref:k,role:f}))))})),x=n(4501),A=n(494),E=["as","bsPrefix","variant","fill","justify","navbar","navbarScroll","className","children","activeKey"],S=s.forwardRef((function(e,t){var n,i,d,p=(0,l.Zw)(e,{activeKey:"onSelect"}),h=p.as,m=void 0===h?"div":h,v=p.bsPrefix,g=p.variant,b=p.fill,y=p.justify,x=p.navbar,A=p.navbarScroll,S=p.className,C=p.children,N=p.activeKey,O=(0,o.A)(p,E),P=(0,u.oU)(v,"nav"),k=!1,R=(0,s.useContext)(c.A),D=(0,s.useContext)(f.A);return R?(i=R.bsPrefix,k=null==x||x):D&&(d=D.cardHeaderBsPrefix),s.createElement(w,(0,r.A)({as:m,ref:t,activeKey:N,className:a()(S,(n={},n[P]=!k,n[i+"-nav"]=k,n[i+"-nav-scroll"]=k&&A,n[d+"-"+g]=!!d,n[P+"-"+g]=!!g,n[P+"-fill"]=b,n[P+"-justified"]=y,n))},O),C)}));S.displayName="Nav",S.defaultProps={justify:!1,fill:!1},S.Item=x.A,S.Link=A.A;var C=S},3559:function(e,t,n){"use strict";var r=n(6540).createContext(null);r.displayName="NavContext",t.A=r},5531:function(e,t,n){"use strict";var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=n(6519),u=n(5855),c=n(494),f=["id","title","children","bsPrefix","className","rootCloseEvent","menuRole","disabled","active","renderMenuOnMount"],d=s.forwardRef((function(e,t){var n=e.id,i=e.title,d=e.children,p=e.bsPrefix,h=e.className,m=e.rootCloseEvent,v=e.menuRole,g=e.disabled,b=e.active,y=e.renderMenuOnMount,w=(0,o.A)(e,f),x=(0,l.oU)(void 0,"nav-item");return s.createElement(u.A,(0,r.A)({ref:t},w,{className:a()(h,x)}),s.createElement(u.A.Toggle,{id:n,eventKey:null,active:b,disabled:g,childBsPrefix:p,as:c.A},i),s.createElement(u.A.Menu,{role:v,renderOnMount:y,rootCloseEvent:m},d))}));d.displayName="NavDropdown",d.Item=u.A.Item,d.ItemText=u.A.ItemText,d.Divider=u.A.Divider,d.Header=u.A.Header,t.A=d},4501:function(e,t,n){"use strict";var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=n(6519),u=["bsPrefix","className","children","as"],c=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,c=e.children,f=e.as,d=void 0===f?"div":f,p=(0,o.A)(e,u);return n=(0,l.oU)(n,"nav-item"),s.createElement(d,(0,r.A)({},p,{ref:t,className:a()(i,n)}),c)}));c.displayName="NavItem",t.A=c},494:function(e,t,n){"use strict";n.d(t,{A:function(){return y}});var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=n(9703),u=n(9561),c=(n(9771),n(3559)),f=n(5724),d=["active","className","eventKey","onSelect","onClick","as"],p=s.forwardRef((function(e,t){var n=e.active,i=e.className,l=e.eventKey,p=e.onSelect,h=e.onClick,m=e.as,v=(0,o.A)(e,d),g=(0,f.u)(l,v.href),b=(0,s.useContext)(f.A),y=(0,s.useContext)(c.A),w=n;if(y){v.role||"tablist"!==y.role||(v.role="tab");var x=y.getControllerId(g),A=y.getControlledId(g);v["data-rb-event-key"]=g,v.id=x||v.id,v["aria-controls"]=A||v["aria-controls"],w=null==n&&null!=g?y.activeKey===g:n}"tab"===v.role&&(v.disabled&&(v.tabIndex=-1,v["aria-disabled"]=!0),v["aria-selected"]=w);var E=(0,u.A)((function(e){h&&h(e),null!=g&&(p&&p(g,e),b&&b(g,e))}));return s.createElement(m,(0,r.A)({},v,{ref:t,onClick:E,className:a()(i,w&&"active")}))}));p.defaultProps={disabled:!1};var h=p,m=n(6519),v=["bsPrefix","disabled","className","href","eventKey","onSelect","as"],g={disabled:!1,as:l.A},b=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.disabled,l=e.className,u=e.href,c=e.eventKey,f=e.onSelect,d=e.as,p=(0,o.A)(e,v);return n=(0,m.oU)(n,"nav-link"),s.createElement(h,(0,r.A)({},p,{href:u,ref:t,eventKey:c,as:d,disabled:i,onSelect:f,className:a()(l,n,i&&"disabled")}))}));b.displayName="NavLink",b.defaultProps=g;var y=b},3946:function(e,t,n){"use strict";n.d(t,{A:function(){return O}});var r=n(8168),o=n(8587),i=n(2485),a=n.n(i),s=n(6540),l=n(1558),u=n(6261),c=n(6519),f=["bsPrefix","className","as"],d=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,l=e.as,u=(0,o.A)(e,f);n=(0,c.oU)(n,"navbar-brand");var d=l||(u.href?"a":"span");return s.createElement(d,(0,r.A)({},u,{ref:t,className:a()(i,n)}))}));d.displayName="NavbarBrand";var p=d,h=n(8280),m=n(4778),v=["children","bsPrefix"],g=s.forwardRef((function(e,t){var n=e.children,i=e.bsPrefix,a=(0,o.A)(e,v);return i=(0,c.oU)(i,"navbar-collapse"),s.createElement(m.A.Consumer,null,(function(e){return s.createElement(h.A,(0,r.A)({in:!(!e||!e.expanded)},a),s.createElement("div",{ref:t,className:i},n))}))}));g.displayName="NavbarCollapse";var b=g,y=n(9561),w=["bsPrefix","className","children","label","as","onClick"],x=s.forwardRef((function(e,t){var n=e.bsPrefix,i=e.className,l=e.children,u=e.label,f=e.as,d=void 0===f?"button":f,p=e.onClick,h=(0,o.A)(e,w);n=(0,c.oU)(n,"navbar-toggler");var v=(0,s.useContext)(m.A)||{},g=v.onToggle,b=v.expanded,x=(0,y.A)((function(e){p&&p(e),g&&g()}));return"button"===d&&(h.type="button"),s.createElement(d,(0,r.A)({},h,{ref:t,onClick:x,"aria-label":u,className:a()(i,n,!b&&"collapsed")}),l||s.createElement("span",{className:n+"-icon"}))}));x.displayName="NavbarToggle",x.defaultProps={label:"Toggle navigation"};var A=x,E=n(5724),S=["bsPrefix","expand","variant","bg","fixed","sticky","className","children","as","expanded","onToggle","onSelect","collapseOnSelect"],C=(0,u.A)("navbar-text",{Component:"span"}),N=s.forwardRef((function(e,t){var n=(0,l.Zw)(e,{expanded:"onToggle"}),i=n.bsPrefix,u=n.expand,f=n.variant,d=n.bg,p=n.fixed,h=n.sticky,v=n.className,g=n.children,b=n.as,y=void 0===b?"nav":b,w=n.expanded,x=n.onToggle,A=n.onSelect,C=n.collapseOnSelect,N=(0,o.A)(n,S),O=(0,c.oU)(i,"navbar"),P=(0,s.useCallback)((function(){A&&A.apply(void 0,arguments),C&&w&&x&&x(!1)}),[A,C,w,x]);void 0===N.role&&"nav"!==y&&(N.role="navigation");var k=O+"-expand";"string"==typeof u&&(k=k+"-"+u);var R=(0,s.useMemo)((function(){return{onToggle:function(){return x&&x(!w)},bsPrefix:O,expanded:!!w}}),[O,w,x]);return s.createElement(m.A.Provider,{value:R},s.createElement(E.A.Provider,{value:P},s.createElement(y,(0,r.A)({ref:t},N,{className:a()(v,O,u&&k,f&&O+"-"+f,d&&"bg-"+d,h&&"sticky-"+h,p&&"fixed-"+p)}),g)))}));N.defaultProps={expand:!0,variant:"light",collapseOnSelect:!1},N.displayName="Navbar",N.Brand=p,N.Toggle=A,N.Collapse=b,N.Text=C;var O=N},4778:function(e,t,n){"use strict";var r=n(6540).createContext(null);r.displayName="NavbarContext",t.A=r},5038:function(e,t,n){"use strict";n.d(t,{A:function(){return j}});var r=n(8168),o=n(8587),i=n(5540),a=n(6406),s=n(6540),l=n(9567),u=n(6816),c=(n(9771),n(1558)),f=n(2485),d=n.n(f),p=n(5556),h=n.n(p),m=n(961),v=n(1244),g=n(3804),b=n(4278),y=n(5922),w=n(8040),x=n(9808),A=n(1458),E=s.forwardRef((function(e,t){var n=e.flip,i=e.offset,a=e.placement,l=e.containerPadding,u=void 0===l?5:l,c=e.popperConfig,f=void 0===c?{}:c,d=e.transition,p=(0,v.A)(),h=p[0],b=p[1],E=(0,v.A)(),S=E[0],C=E[1],N=(0,g.A)(b,t),O=(0,x.A)(e.container),P=(0,x.A)(e.target),k=(0,s.useState)(!e.show),R=k[0],D=k[1],z=(0,y.A)(P,h,(0,A.Ay)({placement:a,enableEvents:!!e.show,containerPadding:u||5,flip:n,offset:i,arrowElement:S,popperConfig:f})),T=z.styles,M=z.attributes,_=(0,o.A)(z,["styles","attributes"]);e.show?R&&D(!1):e.transition||R||D(!0);var j=e.show||d&&!R;if((0,w.A)(h,e.onHide,{disabled:!e.rootClose||e.rootCloseDisabled,clickTrigger:e.rootCloseEvent}),!j)return null;var L=e.children((0,r.A)({},_,{show:!!e.show,props:(0,r.A)({},M.popper,{style:T.popper,ref:N}),arrowProps:(0,r.A)({},M.arrow,{style:T.arrow,ref:C})}));if(d){var W=e.onExit,H=e.onExiting,F=e.onEnter,I=e.onEntering,U=e.onEntered;L=s.createElement(d,{in:e.show,appear:!0,onExit:W,onExiting:H,onExited:function(){D(!0),e.onExited&&e.onExited.apply(e,arguments)},onEnter:F,onEntering:I,onEntered:U},L)}return O?m.createPortal(L,O):null}));E.displayName="Overlay",E.propTypes={show:h().bool,placement:h().oneOf(b.DD),target:h().any,container:h().any,flip:h().bool,children:h().func.isRequired,containerPadding:h().number,popperConfig:h().object,rootClose:h().bool,rootCloseEvent:h().oneOf(["click","mousedown"]),rootCloseDisabled:h().bool,onHide:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{(0,f.default)("Draggable: onDragStart: %j",t);if(!1===this.props.onStart(e,(0,l.createDraggableData)(this,t)))return!1;this.setState({dragging:!0,dragged:!0})})),m(this,"onDrag",((e,t)=>{if(!this.state.dragging)return!1;(0,f.default)("Draggable: onDrag: %j",t);const n=(0,l.createDraggableData)(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){const{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;const[o,i]=(0,l.getBoundPosition)(this,r.x,r.y);r.x=o,r.y=i,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(!1===this.props.onDrag(e,n))return!1;this.setState(r)})),m(this,"onDragStop",((e,t)=>{if(!this.state.dragging)return!1;if(!1===this.props.onStop(e,(0,l.createDraggableData)(this,t)))return!1;(0,f.default)("Draggable: onDragStop: %j",t);const n={dragging:!1,slackX:0,slackY:0};if(Boolean(this.props.position)){const{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)})),this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){void 0!==window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.setState({dragging:!1})}findDOMNode(){var e,t;return null!==(e=null===(t=this.props)||void 0===t||null===(t=t.nodeRef)||void 0===t?void 0:t.current)&&void 0!==e?e:i.default.findDOMNode(this)}render(){const{axis:e,bounds:t,children:n,defaultPosition:o,defaultClassName:i,defaultClassNameDragging:u,defaultClassNameDragged:f,position:d,positionOffset:p,scale:m,...v}=this.props;let g={},b=null;const y=!Boolean(d)||this.state.dragging,w=d||o,x={x:(0,l.canDragX)(this)&&y?this.state.x:w.x,y:(0,l.canDragY)(this)&&y?this.state.y:w.y};this.state.isElementSVG?b=(0,s.createSVGTransform)(x,p):g=(0,s.createCSSTransform)(x,p);const A=(0,a.default)(n.props.className||"",i,{[u]:this.state.dragging,[f]:this.state.dragged});return r.createElement(c.default,h({},v,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.cloneElement(r.Children.only(n),{className:A,style:{...n.props.style,...g},transform:b}))}}t.default=v,m(v,"displayName","Draggable"),m(v,"propTypes",{...c.default.propTypes,axis:o.default.oneOf(["both","x","y","none"]),bounds:o.default.oneOfType([o.default.shape({left:o.default.number,right:o.default.number,top:o.default.number,bottom:o.default.number}),o.default.string,o.default.oneOf([!1])]),defaultClassName:o.default.string,defaultClassNameDragging:o.default.string,defaultClassNameDragged:o.default.string,defaultPosition:o.default.shape({x:o.default.number,y:o.default.number}),positionOffset:o.default.shape({x:o.default.oneOfType([o.default.number,o.default.string]),y:o.default.oneOfType([o.default.number,o.default.string])}),position:o.default.shape({x:o.default.number,y:o.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),m(v,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})},6888:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(6540)),o=c(n(5556)),i=c(n(961)),a=n(1089),s=n(1726),l=n(7056),u=c(n(8696));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const p={start:"touchstart",move:"touchmove",stop:"touchend"},h={start:"mousedown",move:"mousemove",stop:"mouseup"};let m=h;class v extends r.Component{constructor(){super(...arguments),d(this,"dragging",!1),d(this,"lastX",NaN),d(this,"lastY",NaN),d(this,"touchIdentifier",null),d(this,"mounted",!1),d(this,"handleDragStart",(e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;const t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw new Error(" not mounted on DragStart!");const{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,a.matchesSelectorAndParentsTo)(e.target,this.props.handle,t)||this.props.cancel&&(0,a.matchesSelectorAndParentsTo)(e.target,this.props.cancel,t))return;"touchstart"===e.type&&e.preventDefault();const r=(0,a.getTouchIdentifier)(e);this.touchIdentifier=r;const o=(0,s.getControlPosition)(e,r,this);if(null==o)return;const{x:i,y:l}=o,c=(0,s.createCoreData)(this,i,l);(0,u.default)("DraggableCore: handleDragStart: %j",c),(0,u.default)("calling",this.props.onStart);!1!==this.props.onStart(e,c)&&!1!==this.mounted&&(this.props.enableUserSelectHack&&(0,a.addUserSelectStyles)(n),this.dragging=!0,this.lastX=i,this.lastY=l,(0,a.addEvent)(n,m.move,this.handleDrag),(0,a.addEvent)(n,m.stop,this.handleDragStop))})),d(this,"handleDrag",(e=>{const t=(0,s.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=(0,s.snapToGrid)(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}const o=(0,s.createCoreData)(this,n,r);(0,u.default)("DraggableCore: handleDrag: %j",o);if(!1!==this.props.onDrag(e,o)&&!1!==this.mounted)this.lastX=n,this.lastY=r;else try{this.handleDragStop(new MouseEvent("mouseup"))}catch(e){const t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(t)}})),d(this,"handleDragStop",(e=>{if(!this.dragging)return;const t=(0,s.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=(0,s.snapToGrid)(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}const o=(0,s.createCoreData)(this,n,r);if(!1===this.props.onStop(e,o)||!1===this.mounted)return!1;const i=this.findDOMNode();i&&this.props.enableUserSelectHack&&(0,a.removeUserSelectStyles)(i.ownerDocument),(0,u.default)("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,i&&((0,u.default)("DraggableCore: Removing handlers"),(0,a.removeEvent)(i.ownerDocument,m.move,this.handleDrag),(0,a.removeEvent)(i.ownerDocument,m.stop,this.handleDragStop))})),d(this,"onMouseDown",(e=>(m=h,this.handleDragStart(e)))),d(this,"onMouseUp",(e=>(m=h,this.handleDragStop(e)))),d(this,"onTouchStart",(e=>(m=p,this.handleDragStart(e)))),d(this,"onTouchEnd",(e=>(m=p,this.handleDragStop(e))))}componentDidMount(){this.mounted=!0;const e=this.findDOMNode();e&&(0,a.addEvent)(e,p.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const e=this.findDOMNode();if(e){const{ownerDocument:t}=e;(0,a.removeEvent)(t,h.move,this.handleDrag),(0,a.removeEvent)(t,p.move,this.handleDrag),(0,a.removeEvent)(t,h.stop,this.handleDragStop),(0,a.removeEvent)(t,p.stop,this.handleDragStop),(0,a.removeEvent)(e,p.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,a.removeUserSelectStyles)(t)}}findDOMNode(){var e,t;return null!==(e=this.props)&&void 0!==e&&e.nodeRef?null===(t=this.props)||void 0===t||null===(t=t.nodeRef)||void 0===t?void 0:t.current:i.default.findDOMNode(this)}render(){return r.cloneElement(r.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}t.default=v,d(v,"displayName","DraggableCore"),d(v,"propTypes",{allowAnyClick:o.default.bool,children:o.default.node.isRequired,disabled:o.default.bool,enableUserSelectHack:o.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:o.default.arrayOf(o.default.number),handle:o.default.string,cancel:o.default.string,nodeRef:o.default.object,onStart:o.default.func,onDrag:o.default.func,onStop:o.default.func,onMouseDown:o.default.func,scale:o.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),d(v,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},5794:function(e,t,n){"use strict";const{default:r,DraggableCore:o}=n(6027);e.exports=r,e.exports.default=r,e.exports.DraggableCore=o},1089:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=u,t.addEvent=function(e,t,n,r){if(!e)return;const o={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,o):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&u(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){const n=l(e,t,"px");return{[(0,o.browserPrefixToKey)("transform",o.default)]:n}},t.createSVGTransform=function(e,t){return l(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,r.findInArray)(e.targetTouches,(e=>t===e.identifier))||e.changedTouches&&(0,r.findInArray)(e.changedTouches,(e=>t===e.identifier))},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.getTranslation=l,t.innerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingTop),t-=(0,r.int)(n.paddingBottom),t},t.innerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingLeft),t-=(0,r.int)(n.paddingRight),t},t.matchesSelector=s,t.matchesSelectorAndParentsTo=function(e,t,n){let r=e;do{if(s(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){const r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),o=(e.clientX+t.scrollLeft-r.left)/n,i=(e.clientY+t.scrollTop-r.top)/n;return{x:o,y:i}},t.outerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderTopWidth),t+=(0,r.int)(n.borderBottomWidth),t},t.outerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderLeftWidth),t+=(0,r.int)(n.borderRightWidth),t},t.removeClassName=c,t.removeEvent=function(e,t,n,r){if(!e)return;const o={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.removeUserSelectStyles=function(e){if(!e)return;try{if(e.body&&c(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(e){}};var r=n(7056),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(3514));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}let a="";function s(e,t){return a||(a=(0,r.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return(0,r.isFunction)(e[t])}))),!!(0,r.isFunction)(e[a])&&e[a](t)}function l(e,t,n){let{x:r,y:o}=e,i="translate(".concat(r).concat(n,",").concat(o).concat(n,")");if(t){const e="".concat("string"==typeof t.x?t.x:t.x+n),r="".concat("string"==typeof t.y?t.y:t.y+n);i="translate(".concat(e,", ").concat(r,")")+i}return i}function u(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function c(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}},3514:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=o,t.browserPrefixToStyle=function(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e},t.default=void 0,t.getPrefix=r;const n=["Moz","Webkit","O","ms"];function r(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window)return"";const r=null===(e=window.document)||void 0===e||null===(e=e.documentElement)||void 0===e?void 0:e.style;if(!r)return"";if(t in r)return"";for(let e=0;e: Unmounted during event!");return t}},7056:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(n," - do not set this, set it on the child."))},t.findInArray=function(e,t){for(let n=0,r=e.length;n-1}var d=function(e){var t=(0,a.A)(),n=t.formatRelativeTime,i=t.textComponent,s=e.children,l=n(e.value||0,e.unit,(0,r.Tt)(e,["children","value","unit"]));return"function"==typeof s?s(l):i?o.createElement(i,null,l):o.createElement(o.Fragment,null,l)},p=function(e){var t=e.value,n=void 0===t?0:t,a=e.unit,c=void 0===a?"second":a,p=e.updateIntervalInSeconds,h=(0,r.Tt)(e,["value","unit","updateIntervalInSeconds"]);(0,i.V1)(!p||!(!p||!f(c)),"Cannot schedule update with unit longer than hour");var m,v=o.useState(),g=v[0],b=v[1],y=o.useState(0),w=y[0],x=y[1],A=o.useState(0),E=A[0],S=A[1];c===g&&n===w||(x(n||0),b(c),S(f(c)?function(e,t){if(!e)return 0;switch(t){case"second":return e;case"minute":return 60*e;default:return e*s}}(n,c):0)),o.useEffect((function(){function e(){clearTimeout(m)}if(e(),!p||!f(c))return e;var t=E-p,n=l(t);if("day"===n)return e;var r=u(n),o=t-t%r,i=o>=E?o-r:o,a=Math.abs(i-E);return E!==i&&(m=setTimeout((function(){return S(i)}),1e3*a)),e}),[E,p,c]);var C=n||0,N=c;if(f(c)&&"number"==typeof E&&p){var O=u(N=l(E));C=Math.round(E/O)}return o.createElement(d,(0,r.Cl)({value:C,unit:N},h))};p.displayName="FormattedRelativeTime",t.A=p},1458:function(e,t,n){"use strict";n.d(t,{Ay:function(){return o}});var r=n(8168);function o(e){var t,n,o,i,a,s=e.enabled,l=e.enableEvents,u=e.placement,c=e.flip,f=e.offset,d=e.fixed,p=e.containerPadding,h=e.arrowElement,m=e.popperConfig,v=void 0===m?{}:m,g=function(e){var t={};return Array.isArray(e)?(null==e||e.forEach((function(e){t[e.name]=e})),t):e||t}(v.modifiers);return(0,r.A)({},v,{placement:u,enabled:s,strategy:d?"fixed":v.strategy,modifiers:(a=(0,r.A)({},g,{eventListeners:{enabled:l},preventOverflow:(0,r.A)({},g.preventOverflow,{options:p?(0,r.A)({padding:p},null==(t=g.preventOverflow)?void 0:t.options):null==(n=g.preventOverflow)?void 0:n.options}),offset:{options:(0,r.A)({offset:f},null==(o=g.offset)?void 0:o.options)},arrow:(0,r.A)({},g.arrow,{enabled:!!h,options:(0,r.A)({},null==(i=g.arrow)?void 0:i.options,{element:h})}),flip:(0,r.A)({enabled:!!c},g.flip)}),void 0===a&&(a={}),Array.isArray(a)?a:Object.keys(a).map((function(e){return a[e].name=e,a[e]})))})}},6816:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(961);function o(e){return e&&"setState"in e?r.findDOMNode(e):null!=e?e:null}},5922:function(e,t,n){"use strict";n.d(t,{A:function(){return ce}});var r=n(8168),o=n(8587),i=n(6540),a=n(8880);var s=function(e){var t=(0,a.A)();return[e[0],(0,i.useCallback)((function(n){if(t())return e[1](n)}),[t,e[1]])]};function l(e){return e.split("-")[0]}function u(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function c(e){return e instanceof u(e).Element||e instanceof Element}function f(e){return e instanceof u(e).HTMLElement||e instanceof HTMLElement}function d(e){return"undefined"!=typeof ShadowRoot&&(e instanceof u(e).ShadowRoot||e instanceof ShadowRoot)}var p=Math.max,h=Math.min,m=Math.round;function v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),r=1,o=1;if(f(e)&&t){var i=e.offsetHeight,a=e.offsetWidth;a>0&&(r=m(n.width)/a||1),i>0&&(o=m(n.height)/i||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function g(e){var t=v(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&d(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function y(e){return e?(e.nodeName||"").toLowerCase():null}function w(e){return u(e).getComputedStyle(e)}function x(e){return["table","td","th"].indexOf(y(e))>=0}function A(e){return((c(e)?e.ownerDocument:e.document)||window.document).documentElement}function E(e){return"html"===y(e)?e:e.assignedSlot||e.parentNode||(d(e)?e.host:null)||A(e)}function S(e){return f(e)&&"fixed"!==w(e).position?e.offsetParent:null}function C(e){for(var t=u(e),n=S(e);n&&x(n)&&"static"===w(n).position;)n=S(n);return n&&("html"===y(n)||"body"===y(n)&&"static"===w(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&f(e)&&"fixed"===w(e).position)return null;for(var n=E(e);f(n)&&["html","body"].indexOf(y(n))<0;){var r=w(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function N(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function O(e,t,n){return p(e,h(t,n))}function P(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function k(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var R=n(4278);var D={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=l(n.placement),u=N(s),c=[R.kb,R.pG].indexOf(s)>=0?"height":"width";if(i&&a){var f=function(e,t){return P("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:k(e,R.OM))}(o.padding,n),d=g(i),p="y"===u?R.Mn:R.kb,h="y"===u?R.sQ:R.pG,m=n.rects.reference[c]+n.rects.reference[u]-a[u]-n.rects.popper[c],v=a[u]-n.rects.reference[u],b=C(i),y=b?"y"===u?b.clientHeight||0:b.clientWidth||0:0,w=m/2-v/2,x=f[p],A=y-d[c]-f[h],E=y/2-d[c]/2+w,S=O(x,E,A),D=u;n.modifiersData[r]=((t={})[D]=S,t.centerOffset=S-E,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&b(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function z(e){return e.split("-")[1]}var T={top:"auto",right:"auto",bottom:"auto",left:"auto"};function M(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,f=e.roundOffsets,d=e.isFixed,p=a.x,h=void 0===p?0:p,v=a.y,g=void 0===v?0:v,b="function"==typeof f?f({x:h,y:g}):{x:h,y:g};h=b.x,g=b.y;var y=a.hasOwnProperty("x"),x=a.hasOwnProperty("y"),E=R.kb,S=R.Mn,N=window;if(c){var O=C(n),P="clientHeight",k="clientWidth";if(O===u(n)&&"static"!==w(O=A(n)).position&&"absolute"===s&&(P="scrollHeight",k="scrollWidth"),o===R.Mn||(o===R.kb||o===R.pG)&&i===R._N)S=R.sQ,g-=(d&&N.visualViewport?N.visualViewport.height:O[P])-r.height,g*=l?1:-1;if(o===R.kb||(o===R.Mn||o===R.sQ)&&i===R._N)E=R.pG,h-=(d&&N.visualViewport?N.visualViewport.width:O[k])-r.width,h*=l?1:-1}var D,z=Object.assign({position:s},c&&T),M=!0===f?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:m(t*r)/r||0,y:m(n*r)/r||0}}({x:h,y:g}):{x:h,y:g};return h=M.x,g=M.y,l?Object.assign({},z,((D={})[S]=x?"0":"",D[E]=y?"0":"",D.transform=(N.devicePixelRatio||1)<=1?"translate("+h+"px, "+g+"px)":"translate3d("+h+"px, "+g+"px, 0)",D)):Object.assign({},z,((t={})[S]=x?g+"px":"",t[E]=y?h+"px":"",t.transform="",t))}var _={passive:!0};var j={left:"right",right:"left",bottom:"top",top:"bottom"};function L(e){return e.replace(/left|right|bottom|top/g,(function(e){return j[e]}))}var W={start:"end",end:"start"};function H(e){return e.replace(/start|end/g,(function(e){return W[e]}))}function F(e){var t=u(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function I(e){return v(A(e)).left+F(e).scrollLeft}function U(e){var t=w(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function B(e){return["html","body","#document"].indexOf(y(e))>=0?e.ownerDocument.body:f(e)&&U(e)?e:B(E(e))}function V(e,t){var n;void 0===t&&(t=[]);var r=B(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=u(r),a=o?[i].concat(i.visualViewport||[],U(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(V(E(a)))}function K(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function X(e,t){return t===R.R9?K(function(e){var t=u(e),n=A(e),r=t.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+I(e),y:s}}(e)):c(t)?function(e){var t=v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):K(function(e){var t,n=A(e),r=F(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=p(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=p(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+I(e),l=-r.scrollTop;return"rtl"===w(o||n).direction&&(s+=p(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}(A(e)))}function G(e,t,n){var r="clippingParents"===t?function(e){var t=V(E(e)),n=["absolute","fixed"].indexOf(w(e).position)>=0&&f(e)?C(e):e;return c(n)?t.filter((function(e){return c(e)&&b(e,n)&&"body"!==y(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),i=o[0],a=o.reduce((function(t,n){var r=X(e,n);return t.top=p(r.top,t.top),t.right=h(r.right,t.right),t.bottom=h(r.bottom,t.bottom),t.left=p(r.left,t.left),t}),X(e,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Y(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?l(o):null,a=o?z(o):null,s=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(i){case R.Mn:t={x:s,y:n.y-r.height};break;case R.sQ:t={x:s,y:n.y+n.height};break;case R.pG:t={x:n.x+n.width,y:u};break;case R.kb:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=i?N(i):null;if(null!=c){var f="y"===c?"height":"width";switch(a){case R.ni:t[c]=t[c]-(n[f]/2-r[f]/2);break;case R._N:t[c]=t[c]+(n[f]/2-r[f]/2)}}return t}function q(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,i=n.boundary,a=void 0===i?R.WY:i,s=n.rootBoundary,l=void 0===s?R.R9:s,u=n.elementContext,f=void 0===u?R.xf:u,d=n.altBoundary,p=void 0!==d&&d,h=n.padding,m=void 0===h?0:h,g=P("number"!=typeof m?m:k(m,R.OM)),b=f===R.xf?R.ir:R.xf,y=e.rects.popper,w=e.elements[p?b:f],x=G(c(w)?w:w.contextElement||A(e.elements.popper),a,l),E=v(e.elements.reference),S=Y({reference:E,element:y,strategy:"absolute",placement:o}),C=K(Object.assign({},y,S)),N=f===R.xf?C:E,O={top:x.top-N.top+g.top,bottom:N.bottom-x.bottom+g.bottom,left:x.left-N.left+g.left,right:N.right-x.right+g.right},D=e.modifiersData.offset;if(f===R.xf&&D){var z=D[o];Object.keys(O).forEach((function(e){var t=[R.pG,R.sQ].indexOf(e)>=0?1:-1,n=[R.Mn,R.sQ].indexOf(e)>=0?"y":"x";O[e]+=z[n]*t}))}return O}function $(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Z(e){return[R.Mn,R.pG,R.sQ,R.kb].some((function(t){return e[t]>=0}))}var Q={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=R.DD.reduce((function(e,n){return e[n]=function(e,t,n){var r=l(e),o=[R.kb,R.Mn].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[R.kb,R.pG].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],u=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}};var J={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0!==a&&a,u=n.boundary,c=n.rootBoundary,f=n.altBoundary,d=n.padding,m=n.tether,v=void 0===m||m,b=n.tetherOffset,y=void 0===b?0:b,w=q(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:f}),x=l(t.placement),A=z(t.placement),E=!A,S=N(x),P="x"===S?"y":"x",k=t.modifiersData.popperOffsets,D=t.rects.reference,T=t.rects.popper,M="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,_="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,L={x:0,y:0};if(k){if(i){var W,H="y"===S?R.Mn:R.kb,F="y"===S?R.sQ:R.pG,I="y"===S?"height":"width",U=k[S],B=U+w[H],V=U-w[F],K=v?-T[I]/2:0,X=A===R.ni?D[I]:T[I],G=A===R.ni?-T[I]:-D[I],Y=t.elements.arrow,$=v&&Y?g(Y):{width:0,height:0},Z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Q=Z[H],J=Z[F],ee=O(0,D[I],$[I]),te=E?D[I]/2-K-ee-Q-_.mainAxis:X-ee-Q-_.mainAxis,ne=E?-D[I]/2+K+ee+J+_.mainAxis:G+ee+J+_.mainAxis,re=t.elements.arrow&&C(t.elements.arrow),oe=re?"y"===S?re.clientTop||0:re.clientLeft||0:0,ie=null!=(W=null==j?void 0:j[S])?W:0,ae=U+ne-ie,se=O(v?h(B,U+te-ie-oe):B,U,v?p(V,ae):V);k[S]=se,L[S]=se-U}if(s){var le,ue="x"===S?R.Mn:R.kb,ce="x"===S?R.sQ:R.pG,fe=k[P],de="y"===P?"height":"width",pe=fe+w[ue],he=fe-w[ce],me=-1!==[R.Mn,R.kb].indexOf(x),ve=null!=(le=null==j?void 0:j[P])?le:0,ge=me?pe:fe-D[de]-T[de]-ve+_.altAxis,be=me?fe+D[de]+T[de]-ve-_.altAxis:he,ye=v&&me?function(e,t,n){var r=O(e,t,n);return r>n?n:r}(ge,fe,be):O(v?ge:pe,fe,v?be:he);k[P]=ye,L[P]=ye-fe}t.modifiersData[r]=L}},requiresIfExists:["offset"]};function ee(e,t,n){void 0===n&&(n=!1);var r,o,i=f(t),a=f(t)&&function(e){var t=e.getBoundingClientRect(),n=m(t.width)/e.offsetWidth||1,r=m(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),s=A(t),l=v(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(i||!i&&!n)&&(("body"!==y(t)||U(s))&&(c=(r=t)!==u(r)&&f(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:F(r)),f(t)?((d=v(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=I(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function te(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var ne={placement:"bottom",modifiers:[],strategy:"absolute"};function re(){for(var e=arguments.length,t=new Array(e),n=0;n=0}));0===p.length&&(p=d);var h=p.reduce((function(t,n){return t[n]=q(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[l(n)],t}),{});return Object.keys(h).sort((function(e,t){return h[e]-h[t]}))}(t,{placement:n,boundary:f,rootBoundary:d,padding:c,flipVariations:m,allowedAutoPlacements:v}):n)}),[]),x=t.rects.reference,A=t.rects.popper,E=new Map,S=!0,C=w[0],N=0;N=0,T=D?"width":"height",M=q(t,{placement:O,boundary:f,rootBoundary:d,altBoundary:p,padding:c}),_=D?k?R.pG:R.kb:k?R.sQ:R.Mn;x[T]>A[T]&&(_=L(_));var j=L(_),W=[];if(i&&W.push(M[P]<=0),s&&W.push(M[_]<=0,M[j]<=0),W.every((function(e){return e}))){C=O,S=!1;break}E.set(O,W)}if(S)for(var F=function(e){var t=w.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==C&&(t.modifiersData[r]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},J,D]}),ae=function(e){return{position:e,top:"0",left:"0",opacity:"0",pointerEvents:"none"}},se={name:"applyStyles",enabled:!1},le={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:function(e){var t=e.state;return function(){var e=t.elements,n=e.reference,r=e.popper;if("removeAttribute"in n){var o=(n.getAttribute("aria-describedby")||"").split(",").filter((function(e){return e.trim()!==r.id}));o.length?n.setAttribute("aria-describedby",o.join(",")):n.removeAttribute("aria-describedby")}}},fn:function(e){var t,n=e.state.elements,r=n.popper,o=n.reference,i=null==(t=r.getAttribute("role"))?void 0:t.toLowerCase();if(r.id&&"tooltip"===i&&"setAttribute"in o){var a=o.getAttribute("aria-describedby");if(a&&-1!==a.split(",").indexOf(r.id))return;o.setAttribute("aria-describedby",a?a+","+r.id:r.id)}}},ue=[];var ce=function(e,t,n){var a=void 0===n?{}:n,l=a.enabled,u=void 0===l||l,c=a.placement,f=void 0===c?"bottom":c,d=a.strategy,p=void 0===d?"absolute":d,h=a.modifiers,m=void 0===h?ue:h,v=(0,o.A)(a,["enabled","placement","strategy","modifiers"]),g=(0,i.useRef)(),b=(0,i.useCallback)((function(){var e;null==(e=g.current)||e.update()}),[]),y=(0,i.useCallback)((function(){var e;null==(e=g.current)||e.forceUpdate()}),[]),w=s((0,i.useState)({placement:f,update:b,forceUpdate:y,attributes:{},styles:{popper:ae(p),arrow:{}}})),x=w[0],A=w[1],E=(0,i.useMemo)((function(){return{name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:function(e){var t=e.state,n={},r={};Object.keys(t.elements).forEach((function(e){n[e]=t.styles[e],r[e]=t.attributes[e]})),A({state:t,styles:n,attributes:r,update:b,forceUpdate:y,placement:t.placement})}}}),[b,y,A]);return(0,i.useEffect)((function(){g.current&&u&&g.current.setOptions({placement:f,strategy:p,modifiers:[].concat(m,[E,se])})}),[p,f,E,u]),(0,i.useEffect)((function(){if(u&&null!=e&&null!=t)return g.current=ie(e,t,(0,r.A)({},v,{placement:f,strategy:p,modifiers:[].concat(m,[le,E])})),function(){null!=g.current&&(g.current.destroy(),g.current=void 0,A((function(e){return(0,r.A)({},e,{attributes:{},styles:{popper:ae(p)}})})))}}),[u,e,t]),x}},8040:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r=n(6406),o=n(1284),i=n(6540),a=n(9561),s=n(9771),l=n.n(s),u=n(1625),c=n(6816),f=function(){};var d=function(e){return e&&("current"in e?e.current:e)};var p=function(e,t,n){var s=void 0===n?{}:n,p=s.disabled,h=s.clickTrigger,m=void 0===h?"click":h,v=(0,i.useRef)(!1),g=t||f,b=(0,i.useCallback)((function(t){var n,o=d(e);l()(!!o,"RootClose captured a close event but does not have a ref to compare it to. useRootClose(), should be passed a ref that resolves to a DOM node"),v.current=!(o&&(n=t,!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey))&&function(e){return 0===e.button}(t)&&!(0,r.A)(o,t.target))}),[e]),y=(0,a.A)((function(e){v.current||g(e)})),w=(0,a.A)((function(e){27===e.keyCode&&g(e)}));(0,i.useEffect)((function(){if(!p&&null!=e){var t,n=window.event,r=(t=d(e),(0,u.A)((0,c.A)(t))),i=(0,o.A)(r,m,b,!0),a=(0,o.A)(r,m,(function(e){e!==n?y(e):n=void 0})),s=(0,o.A)(r,"keyup",(function(e){e!==n?w(e):n=void 0})),l=[];return"ontouchstart"in r.documentElement&&(l=[].slice.call(r.body.children).map((function(e){return(0,o.A)(e,"mousemove",f)}))),function(){i(),a(),s(),l.forEach((function(e){return e()}))}}}),[e,p,m,b,y,w])}},9808:function(e,t,n){"use strict";n.d(t,{A:function(){return a}});var r=n(1625),o=n(6540),i=function(e){var t;return"undefined"==typeof document?null:null==e?(0,r.A)().body:("function"==typeof e&&(e=e()),e&&"current"in e&&(e=e.current),null!=(t=e)&&t.nodeType&&e||null)};function a(e,t){var n=(0,o.useState)((function(){return i(e)})),r=n[0],a=n[1];if(!r){var s=i(e);s&&a(s)}return(0,o.useEffect)((function(){t&&r&&t(r)}),[t,r]),(0,o.useEffect)((function(){var t=i(e);t!==r&&a(t)}),[e,r]),r}},7698:function(e,t,n){"use strict";n.d(t,{p:function(){return R}});var r=n(6540),o=n(5794),i=n.n(o),a=n(961),s=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;nNumber(c)?c:N})}if(E||this.props.lockAspectRatio&&!A&&!S){N=w+(b-m)/r;this.setState({maxWidth:N>Number(c)?c:N})}if((S||A)&&this.resizable){N=(v-y)/r+this.resizable.size.height;this.setState({maxHeight:N>Number(f)?f:N})}if(C||this.props.lockAspectRatio&&!S&&!A){N=x+(y-v)/r;this.setState({maxHeight:N>Number(f)?f:N})}}}else this.setState({maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight});this.props.onResizeStart&&this.props.onResizeStart(e,t,n)},t.prototype.onResize=function(e,t,n,r){var o=this,i={x:this.originalPosition.x,y:this.originalPosition.y},s=-r.width,l=-r.height;["top","left","topLeft","bottomLeft","topRight"].includes(t)&&("bottomLeft"===t?i.x+=s:("topRight"===t||(i.x+=s),i.y+=l));var u=this.draggable.state;i.x===u.x&&i.y===u.y||(0,a.flushSync)((function(){o.draggable.setState(i)})),this.updateOffsetFromParent();var c=this.offsetFromParent,f=this.getDraggablePosition().x+c.left,d=this.getDraggablePosition().y+c.top;this.resizingPosition={x:f,y:d},this.props.onResize&&this.props.onResize(e,t,n,r,{x:f,y:d})},t.prototype.onResizeStop=function(e,t,n,r){this.setState({resizing:!1});var o=this.getMaxSizesFromProps(),i=o.maxWidth,a=o.maxHeight;this.setState({maxWidth:i,maxHeight:a}),this.props.onResizeStop&&this.props.onResizeStop(e,t,n,r,this.resizingPosition)},t.prototype.updateSize=function(e){this.resizable&&this.resizable.updateSize({width:e.width,height:e.height})},t.prototype.updatePosition=function(e){this.draggable.setState(e)},t.prototype.updateOffsetFromParent=function(){var e=this.props.scale,t=this.getParent(),n=this.getSelfElement();if(!t||null===n)return{top:0,left:0};var r=t.getBoundingClientRect(),o=r.left,i=r.top,a=n.getBoundingClientRect(),s=this.getDraggablePosition(),l=t.scrollLeft,u=t.scrollTop;this.offsetFromParent={left:a.left-o+l-s.x*e,top:a.top-i+u-s.y*e}},t.prototype.render=function(){var e=this,t=this.props,n=t.disableDragging,o=t.style,a=t.dragHandleClassName,s=t.position,l=t.onMouseDown,u=t.onMouseUp,c=t.dragAxis,f=t.dragGrid,d=t.bounds,p=t.enableUserSelectHack,h=t.cancel,m=t.children,v=(t.onResizeStart,t.onResize,t.onResizeStop,t.onDragStart,t.onDrag,t.onDragStop,t.resizeHandleStyles),g=t.resizeHandleClasses,b=t.resizeHandleComponent,y=t.enableResizing,w=t.resizeGrid,x=t.resizeHandleWrapperClass,A=t.resizeHandleWrapperStyle,E=t.scale,S=t.allowAnyClick,C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o1?t-1:0),o=1;o= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * This component is wrapped around any part of a page.\n * When that part of the page is clicked, it selects\n * the text within.\n */\nvar ClickToSelect = function (_React$PureComponent) {\n _inherits(ClickToSelect, _React$PureComponent);\n\n function ClickToSelect() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ClickToSelect);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ClickToSelect.__proto__ || Object.getPrototypeOf(ClickToSelect)).call.apply(_ref, [this].concat(args))), _this), _this.select = function (e) {\n var onSelect = _this.props.onSelect;\n\n e.preventDefault();\n var range = document.createRange();\n var sel = window.getSelection();\n range.selectNodeContents(_this._target);\n sel.removeAllRanges();\n sel.addRange(range);\n if (onSelect) onSelect();\n }, _this.getRef = function (target) {\n _this._target = target;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ClickToSelect, [{\n key: 'render',\n value: function render() {\n var Element = this.props.containerElement;\n\n return _react2.default.createElement(\n Element,\n { ref: this.getRef, onClick: this.select },\n this.props.children\n );\n }\n }]);\n\n return ClickToSelect;\n}(_react2.default.PureComponent);\n\nClickToSelect.propTypes = {\n children: _propTypes2.default.any.isRequired,\n containerElement: _propTypes2.default.oneOf(['span', 'div']),\n onSelect: _propTypes2.default.func\n};\nClickToSelect.defaultProps = {\n containerElement: 'span'\n};\nexports.default = ClickToSelect;","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
    \n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import { useReducer } from 'react';\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return \n * ```\n */\n\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are stricting equal to the last state value\n var _useReducer = useReducer(function (state) {\n return !state;\n }, false),\n dispatch = _useReducer[1];\n\n return dispatch;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return