| Current Path : /var/www/homesaver/www/bitrix/js/ui/vue/components/audioplayer/dist/ |
| Current File : /var/www/homesaver/www/bitrix/js/ui/vue/components/audioplayer/dist/audioplayer.bundle.js.map |
{"version":3,"file":"audioplayer.bundle.js","sources":["../src/audioplayer.js"],"sourcesContent":["/**\n * Bitrix UI\n * Audio player Vue component\n *\n * @package bitrix\n * @subpackage ui\n * @copyright 2001-2021 Bitrix\n */\n\nimport 'ui.fonts.opensans';\nimport \"./audioplayer.css\";\nimport 'main.polyfill.intersectionobserver';\n\nimport {BitrixVue} from 'ui.vue';\nimport {BaseEvent} from \"main.core.events\";\n\nconst State = Object.freeze({\n\tplay: 'play',\n\tpause: 'pause',\n\tstop: 'stop',\n\tnone: 'none',\n});\n\nBitrixVue.component('bx-audioplayer',\n{\n\tprops:\n\t{\n\t\tid: { default: 0 },\n\t\tsrc: { default: '' },\n\t\tautoPlayNext: { default: true },\n\t\tbackground: { default: 'light' },\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tisDark: false,\n\t\t\tpreload: \"none\",\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tplayAfterLoad: false,\n\t\t\tstate: State.none,\n\t\t\tprogress: 0,\n\t\t\tprogressInPixel: 0,\n\t\t\tseek: 0,\n\t\t\ttimeCurrent: 0,\n\t\t\ttimeTotal: 0,\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tthis.preloadRequestSent = false;\n\t\tthis.registeredId = 0;\n\n\t\tthis.registerPlayer(this.id);\n\n\t\tthis.$Bitrix.eventEmitter.subscribe('ui:audioplayer:play', this.onPlay);\n\t\tthis.$Bitrix.eventEmitter.subscribe('ui:audioplayer:stop', this.onStop);\n\t\tthis.$Bitrix.eventEmitter.subscribe('ui:audioplayer:pause', this.onPause);\n\t\tthis.$Bitrix.eventEmitter.subscribe('ui:audioplayer:preload', this.onPreload);\n\n\t\tthis.isDark = this.background === 'dark';\n\t},\n\tmounted()\n\t{\n\t\tthis.getObserver().observe(this.$refs.body);\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.unregisterPlayer();\n\n\t\tthis.$Bitrix.eventEmitter.unsubscribe('ui:audioplayer:play', this.onPlay);\n\t\tthis.$Bitrix.eventEmitter.unsubscribe('ui:audioplayer:stop', this.onStop);\n\t\tthis.$Bitrix.eventEmitter.unsubscribe('ui:audioplayer:pause', this.onPause);\n\t\tthis.$Bitrix.eventEmitter.unsubscribe('ui:audioplayer:preload', this.onPreload);\n\n\t\tthis.getObserver().unobserve(this.$refs.body);\n\t},\n\twatch:\n\t{\n\t\tid(value)\n\t\t{\n\t\t\tthis.registerPlayer(value);\n\t\t},\n\t\tprogress(value)\n\t\t{\n\t\t\tif (value > 70)\n\t\t\t{\n\t\t\t\tthis.preloadNext();\n\t\t\t}\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tloadFile(play = false)\n\t\t{\n\t\t\tif (this.loaded)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (this.loading && !play)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.preload = 'auto';\n\n\t\t\tif (play)\n\t\t\t{\n\t\t\t\tthis.loading = true;\n\n\t\t\t\tif (this.source())\n\t\t\t\t{\n\t\t\t\t\tthis.source().play();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tclickToButton()\n\t\t{\n\t\t\tif (!this.src)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.state === State.play)\n\t\t\t{\n\t\t\t\tthis.pause();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.play();\n\t\t\t}\n\t\t},\n\t\tplay()\n\t\t{\n\t\t\tif (!this.loaded)\n\t\t\t{\n\t\t\t\tthis.loadFile(true);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.source().play();\n\t\t},\n\t\tpause()\n\t\t{\n\t\t\tthis.source().pause();\n\t\t},\n\t\tstop()\n\t\t{\n\t\t\tthis.state = State.stop;\n\t\t\tthis.source().pause();\n\t\t},\n\t\tsetPosition(event)\n\t\t{\n\t\t\tif (!this.loaded)\n\t\t\t{\n\t\t\t\tthis.loadFile(true);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet pixelPerPercent = this.$refs.track.offsetWidth / 100;\n\n\t\t\tthis.setProgress(this.seek / pixelPerPercent, this.seek);\n\n\t\t\tif (this.state !== State.play)\n\t\t\t{\n\t\t\t\tthis.state = State.pause;\n\t\t\t}\n\n\t\t\tthis.play();\n\t\t\tthis.source().currentTime = this.timeTotal/100*this.progress;\n\t\t},\n\t\tseeking(event)\n\t\t{\n\t\t\tif (!this.loaded)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.seek = event.offsetX > 0? event.offsetX: 0;\n\n\t\t\treturn true;\n\t\t},\n\t\tsetProgress(percent, pixel = -1)\n\t\t{\n\t\t\tthis.progress = percent;\n\t\t\tthis.progressInPixel = pixel > 0? pixel: Math.round(this.$refs.track.offsetWidth / 100 * percent);\n\t\t},\n\t\tformatTime(second)\n\t\t{\n\t\t\tsecond = Math.floor(second);\n\n\t\t\tconst hour = Math.floor(second/60/60);\n\t\t\tif (hour > 0)\n\t\t\t{\n\t\t\t\tsecond -= hour*60*60;\n\t\t\t}\n\n\t\t\tconst minute = Math.floor(second/60);\n\t\t\tif (minute > 0)\n\t\t\t{\n\t\t\t\tsecond -= minute*60;\n\t\t\t}\n\n\t\t\treturn (hour > 0? hour+':': '')\n\t\t\t\t\t+ (hour > 0? minute.toString().padStart(2, \"0\")+':': minute+':')\n\t\t\t\t\t+ second.toString().padStart(2, \"0\")\n\t\t},\n\t\tregisterPlayer(id)\n\t\t{\n\t\t\tif (id <= 0)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet registry = this.$Bitrix.Data.get('ui-audioplayer-id', []);\n\n\t\t\tregistry = [...new Set([...registry, id])]\n\t\t\t\t.filter(id => id !== this.registeredId)\n\t\t\t\t.sort((a, b) => a - b)\n\t\t\t;\n\n\t\t\tthis.$Bitrix.Data.set('ui-audioplayer-id', registry);\n\n\t\t\tthis.registeredId = id;\n\n\t\t\treturn true;\n\t\t},\n\t\tunregisterPlayer()\n\t\t{\n\t\t\tif (!this.registeredId)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tlet registry = this.$Bitrix.Data.get('ui-audioplayer-id', []).filter(id => id !== this.registeredId);\n\n\t\t\tthis.$Bitrix.Data.set('ui-audioplayer-id', registry);\n\n\t\t\tthis.registeredId = 0;\n\n\t\t\treturn true;\n\t\t},\n\t\tplayNext()\n\t\t{\n\t\t\tif (!this.registeredId || !this.autoPlayNext)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst nextId = this.$Bitrix.Data.get('ui-audioplayer-id', []).filter(id => id > this.registeredId).slice(0, 1)[0];\n\t\t\tif (nextId)\n\t\t\t{\n\t\t\t\tthis.$Bitrix.eventEmitter.emit('ui:audioplayer:play', {id: nextId, start: true});\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tpreloadNext()\n\t\t{\n\t\t\tif (this.preloadRequestSent)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!this.registeredId || !this.autoPlayNext)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.preloadRequestSent = true;\n\n\t\t\tconst nextId = this.$Bitrix.Data.get('ui-audioplayer-id', []).filter(id => id > this.registeredId).slice(0, 1)[0];\n\t\t\tif (nextId)\n\t\t\t{\n\t\t\t\tthis.$Bitrix.eventEmitter.emit('ui:audioplayer:preload', {id: nextId});\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tonPlay(event: BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\n\t\t\tif (data.id !== this.id)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (data.start)\n\t\t\t{\n\t\t\t\tthis.stop();\n\t\t\t}\n\n\t\t\tthis.play();\n\t\t},\n\t\tonStop(event: BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\n\t\t\tif (data.initiator === this.id)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.stop();\n\t\t},\n\t\tonPause(event: BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\n\t\t\tif (data.initiator === this.id)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.pause();\n\t\t},\n\t\tonPreload(event: BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\n\t\t\tif (data.id !== this.id)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.loadFile();\n\t\t},\n\t\tsource()\n\t\t{\n\t\t\treturn this.$refs.source;\n\t\t},\n\t\taudioEventRouter(eventName, event)\n\t\t{\n\t\t\tif (\n\t\t\t\teventName === 'durationchange'\n\t\t\t\t|| eventName === 'loadeddata'\n\t\t\t\t|| eventName === 'loadedmetadata'\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.timeTotal = this.source().duration;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\teventName === 'abort'\n\t\t\t\t|| eventName === 'error'\n\t\t\t)\n\t\t\t{\n\t\t\t\tconsole.error('BxAudioPlayer: load failed', this.id, event);\n\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.state = State.none;\n\t\t\t\tthis.timeTotal = 0;\n\t\t\t\tthis.preload = 'none';\n\t\t\t}\n\t\t\telse if (\n\t\t\t\teventName === 'canplaythrough'\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.loaded = true;\n\t\t\t}\n\t\t\telse if (eventName === 'timeupdate')\n\t\t\t{\n\t\t\t\tif (!this.source())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.timeCurrent = this.source().currentTime;\n\n\t\t\t\tthis.setProgress(Math.round(100/this.timeTotal*this.timeCurrent));\n\n\t\t\t\tif (\n\t\t\t\t\tthis.state === State.play\n\t\t\t\t\t&& this.timeCurrent >= this.timeTotal\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tthis.playNext();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (eventName === 'pause')\n\t\t\t{\n\t\t\t\tif (this.state !== State.stop)\n\t\t\t\t{\n\t\t\t\t\tthis.state = State.pause;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (eventName === 'play')\n\t\t\t{\n\t\t\t\tthis.state = State.play;\n\n\t\t\t\tif (this.state === State.stop)\n\t\t\t\t{\n\t\t\t\t\tthis.progress = 0;\n\t\t\t\t\tthis.timeCurrent = 0;\n\t\t\t\t}\n\n\t\t\t\tif (this.id > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.$Bitrix.eventEmitter.emit('ui:audioplayer:pause', {initiator: this.id});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetObserver()\n\t\t{\n\t\t\tif (this.observer)\n\t\t\t{\n\t\t\t\treturn this.observer;\n\t\t\t}\n\n\t\t\tthis.observer = new IntersectionObserver((entries, observer) =>\n\t\t\t{\n\t\t\t\tentries.forEach((entry) =>\n\t\t\t\t{\n\t\t\t\t\tif (entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.preload === \"none\")\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.preload = \"metadata\";\n\t\t\t\t\t\t\tthis.observer.unobserve(entry.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},{\n\t\t\t\tthreshold: [0, 1]\n\t\t\t});\n\n\t\t\treturn this.observer;\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tState: () => State,\n\t\tseekPosition()\n\t\t{\n\t\t\tif (!this.loaded && !this.seek || this.isMobile)\n\t\t\t{\n\t\t\t\treturn 'display: none'\n\t\t\t}\n\n\t\t\treturn `left: ${this.seek}px;`;\n\t\t},\n\t\tprogressPosition()\n\t\t{\n\t\t\tif (!this.loaded || this.state === State.none)\n\t\t\t{\n\t\t\t\treturn `width: 100%;`;\n\t\t\t}\n\n\t\t\treturn `width: ${this.progressInPixel}px;`;\n\t\t},\n\t\tlabelTime()\n\t\t{\n\t\t\tif (!this.loaded && !this.timeTotal)\n\t\t\t{\n\t\t\t\treturn '--:--';\n\t\t\t}\n\n\t\t\tlet time;\n\t\t\tif (this.state === State.play)\n\t\t\t{\n\t\t\t\ttime = this.timeTotal - this.timeCurrent;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttime = this.timeTotal;\n\t\t\t}\n\n\t\t\treturn this.formatTime(time);\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\tconst UA = navigator.userAgent.toLowerCase();\n\n\t\t\treturn (\n\t\t\t\tUA.includes('android')\n\t\t\t\t|| UA.includes('iphone')\n\t\t\t\t|| UA.includes('ipad')\n\t\t\t\t|| UA.includes('bitrixmobile')\n\t\t\t)\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div :class=\"['ui-vue-audioplayer-container', {\n\t\t\t\t'ui-vue-audioplayer-container-dark': isDark,\n\t\t\t\t'ui-vue-audioplayer-container-mobile': isMobile,\n\t\t\t}]\" ref=\"body\">\n\t\t\t<div class=\"ui-vue-audioplayer-controls-container\">\n\t\t\t\t<button :class=\"['ui-vue-audioplayer-control', {\n\t\t\t\t\t'ui-vue-audioplayer-control-loader': loading,\n\t\t\t\t\t'ui-vue-audioplayer-control-play': !loading && state !== State.play,\n\t\t\t\t\t'ui-vue-audioplayer-control-pause': !loading && state === State.play,\n\t\t\t\t}]\" @click=\"clickToButton\"></button>\n\t\t\t</div>\n\t\t\t<div class=\"ui-vue-audioplayer-timeline-container\">\n\t\t\t\t<div class=\"ui-vue-audioplayer-track-container\" @click=\"setPosition\" ref=\"track\">\n\t\t\t\t\t<div class=\"ui-vue-audioplayer-track-mask\"></div>\n\t\t\t\t\t<div class=\"ui-vue-audioplayer-track\" :style=\"progressPosition\"></div>\n\t\t\t\t\t<div class=\"ui-vue-audioplayer-track-seek\" :style=\"seekPosition\"></div>\n\t\t\t\t\t<div class=\"ui-vue-audioplayer-track-event\" @mousemove=\"seeking\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-vue-audioplayer-timers-container\">\n\t\t\t\t\t<div class=\"ui-vue-audioplayer-time-current\">{{labelTime}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<audio v-if=\"src\" :src=\"src\" class=\"ui-vue-audioplayer-source\" ref=\"source\" :preload=\"preload\"\n\t\t\t\t@abort=\"audioEventRouter('abort', $event)\"\n\t\t\t\t@error=\"audioEventRouter('error', $event)\"\n\t\t\t\t@suspend=\"audioEventRouter('suspend', $event)\"\n\t\t\t\t@canplay=\"audioEventRouter('canplay', $event)\"\n\t\t\t\t@canplaythrough=\"audioEventRouter('canplaythrough', $event)\"\n\t\t\t\t@durationchange=\"audioEventRouter('durationchange', $event)\"\n\t\t\t\t@loadeddata=\"audioEventRouter('loadeddata', $event)\"\n\t\t\t\t@loadedmetadata=\"audioEventRouter('loadedmetadata', $event)\"\n\t\t\t\t@timeupdate=\"audioEventRouter('timeupdate', $event)\"\n\t\t\t\t@play=\"audioEventRouter('play', $event)\"\n\t\t\t\t@playing=\"audioEventRouter('playing', $event)\"\n\t\t\t\t@pause=\"audioEventRouter('pause', $event)\"\n\t\t\t></audio>\n\t\t</div>\n\t`\n});\n"],"names":["State","Object","freeze","play","pause","stop","none","BitrixVue","component","props","id","src","autoPlayNext","background","data","isDark","preload","loaded","loading","playAfterLoad","state","progress","progressInPixel","seek","timeCurrent","timeTotal","created","preloadRequestSent","registeredId","registerPlayer","$Bitrix","eventEmitter","subscribe","onPlay","onStop","onPause","onPreload","mounted","getObserver","observe","$refs","body","beforeDestroy","unregisterPlayer","unsubscribe","unobserve","watch","value","preloadNext","methods","loadFile","source","clickToButton","setPosition","event","pixelPerPercent","track","offsetWidth","setProgress","currentTime","seeking","offsetX","percent","pixel","Math","round","formatTime","second","floor","hour","minute","toString","padStart","registry","Data","get","Set","filter","sort","a","b","set","playNext","nextId","slice","emit","start","getData","initiator","audioEventRouter","eventName","duration","console","error","observer","IntersectionObserver","entries","forEach","entry","isIntersecting","target","threshold","computed","seekPosition","isMobile","progressPosition","labelTime","time","UA","navigator","userAgent","toLowerCase","includes","template"],"mappings":";;;;CAAA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CASA,IAAMA,MAAK,GAAGC,MAAM,CAACC,MAAM,CAAC;GAC3BC,IAAI,EAAE,MAAM;GACZC,KAAK,EAAE,OAAO;GACdC,IAAI,EAAE,MAAM;GACZC,IAAI,EAAE;CACP,CAAC,CAAC;AAEFC,iBAAS,CAACC,SAAS,CAAC,gBAAgB,EACpC;GACCC,KAAK,EACL;KACCC,EAAE,EAAE;OAAE,WAAS;MAAG;KAClBC,GAAG,EAAE;OAAE,WAAS;MAAI;KACpBC,YAAY,EAAE;OAAE,WAAS;MAAM;KAC/BC,UAAU,EAAE;OAAE,WAAS;;IACvB;GACDC,IAAI,kBACJ;KACC,OAAO;OACNC,MAAM,EAAE,KAAK;OACbC,OAAO,EAAE,MAAM;OACfC,MAAM,EAAE,KAAK;OACbC,OAAO,EAAE,KAAK;OACdC,aAAa,EAAE,KAAK;OACpBC,KAAK,EAAEpB,MAAK,CAACM,IAAI;OACjBe,QAAQ,EAAE,CAAC;OACXC,eAAe,EAAE,CAAC;OAClBC,IAAI,EAAE,CAAC;OACPC,WAAW,EAAE,CAAC;OACdC,SAAS,EAAE;MACX;IACD;GACDC,OAAO,qBACP;KACC,IAAI,CAACC,kBAAkB,GAAG,KAAK;KAC/B,IAAI,CAACC,YAAY,GAAG,CAAC;KAErB,IAAI,CAACC,cAAc,CAAC,IAAI,CAACnB,EAAE,CAAC;KAE5B,IAAI,CAACoB,OAAO,CAACC,YAAY,CAACC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAACC,MAAM,CAAC;KACvE,IAAI,CAACH,OAAO,CAACC,YAAY,CAACC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAACE,MAAM,CAAC;KACvE,IAAI,CAACJ,OAAO,CAACC,YAAY,CAACC,SAAS,CAAC,sBAAsB,EAAE,IAAI,CAACG,OAAO,CAAC;KACzE,IAAI,CAACL,OAAO,CAACC,YAAY,CAACC,SAAS,CAAC,wBAAwB,EAAE,IAAI,CAACI,SAAS,CAAC;KAE7E,IAAI,CAACrB,MAAM,GAAG,IAAI,CAACF,UAAU,KAAK,MAAM;IACxC;GACDwB,OAAO,qBACP;KACC,IAAI,CAACC,WAAW,EAAE,CAACC,OAAO,CAAC,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC;IAC3C;GACDC,aAAa,2BACb;KACC,IAAI,CAACC,gBAAgB,EAAE;KAEvB,IAAI,CAACb,OAAO,CAACC,YAAY,CAACa,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAACX,MAAM,CAAC;KACzE,IAAI,CAACH,OAAO,CAACC,YAAY,CAACa,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAACV,MAAM,CAAC;KACzE,IAAI,CAACJ,OAAO,CAACC,YAAY,CAACa,WAAW,CAAC,sBAAsB,EAAE,IAAI,CAACT,OAAO,CAAC;KAC3E,IAAI,CAACL,OAAO,CAACC,YAAY,CAACa,WAAW,CAAC,wBAAwB,EAAE,IAAI,CAACR,SAAS,CAAC;KAE/E,IAAI,CAACE,WAAW,EAAE,CAACO,SAAS,CAAC,IAAI,CAACL,KAAK,CAACC,IAAI,CAAC;IAC7C;GACDK,KAAK,EACL;KACCpC,EAAE,cAACqC,KAAK,EACR;OACC,IAAI,CAAClB,cAAc,CAACkB,KAAK,CAAC;MAC1B;KACD1B,QAAQ,oBAAC0B,KAAK,EACd;OACC,IAAIA,KAAK,GAAG,EAAE,EACd;SACC,IAAI,CAACC,WAAW,EAAE;;;IAGpB;GACDC,OAAO,EACP;KACCC,QAAQ,sBACR;OAAA,IADS/C,IAAI,uEAAG,KAAK;OAEpB,IAAI,IAAI,CAACc,MAAM,EACf;SACC,OAAO,IAAI;;OAGZ,IAAI,IAAI,CAACC,OAAO,IAAI,CAACf,IAAI,EACzB;SACC,OAAO,IAAI;;OAGZ,IAAI,CAACa,OAAO,GAAG,MAAM;OAErB,IAAIb,IAAI,EACR;SACC,IAAI,CAACe,OAAO,GAAG,IAAI;SAEnB,IAAI,IAAI,CAACiC,MAAM,EAAE,EACjB;WACC,IAAI,CAACA,MAAM,EAAE,CAAChD,IAAI,EAAE;;;OAItB,OAAO,IAAI;MACX;KACDiD,aAAa,2BACb;OACC,IAAI,CAAC,IAAI,CAACzC,GAAG,EACb;SACC,OAAO,KAAK;;OAGb,IAAI,IAAI,CAACS,KAAK,KAAKpB,MAAK,CAACG,IAAI,EAC7B;SACC,IAAI,CAACC,KAAK,EAAE;QACZ,MAED;SACC,IAAI,CAACD,IAAI,EAAE;;MAEZ;KACDA,IAAI,kBACJ;OACC,IAAI,CAAC,IAAI,CAACc,MAAM,EAChB;SACC,IAAI,CAACiC,QAAQ,CAAC,IAAI,CAAC;SACnB,OAAO,KAAK;;OAGb,IAAI,CAACC,MAAM,EAAE,CAAChD,IAAI,EAAE;MACpB;KACDC,KAAK,mBACL;OACC,IAAI,CAAC+C,MAAM,EAAE,CAAC/C,KAAK,EAAE;MACrB;KACDC,IAAI,kBACJ;OACC,IAAI,CAACe,KAAK,GAAGpB,MAAK,CAACK,IAAI;OACvB,IAAI,CAAC8C,MAAM,EAAE,CAAC/C,KAAK,EAAE;MACrB;KACDiD,WAAW,uBAACC,KAAK,EACjB;OACC,IAAI,CAAC,IAAI,CAACrC,MAAM,EAChB;SACC,IAAI,CAACiC,QAAQ,CAAC,IAAI,CAAC;SACnB,OAAO,KAAK;;OAGb,IAAIK,eAAe,GAAG,IAAI,CAACf,KAAK,CAACgB,KAAK,CAACC,WAAW,GAAG,GAAG;OAExD,IAAI,CAACC,WAAW,CAAC,IAAI,CAACnC,IAAI,GAAGgC,eAAe,EAAE,IAAI,CAAChC,IAAI,CAAC;OAExD,IAAI,IAAI,CAACH,KAAK,KAAKpB,MAAK,CAACG,IAAI,EAC7B;SACC,IAAI,CAACiB,KAAK,GAAGpB,MAAK,CAACI,KAAK;;OAGzB,IAAI,CAACD,IAAI,EAAE;OACX,IAAI,CAACgD,MAAM,EAAE,CAACQ,WAAW,GAAG,IAAI,CAAClC,SAAS,GAAC,GAAG,GAAC,IAAI,CAACJ,QAAQ;MAC5D;KACDuC,OAAO,mBAACN,KAAK,EACb;OACC,IAAI,CAAC,IAAI,CAACrC,MAAM,EAChB;SACC,OAAO,KAAK;;OAGb,IAAI,CAACM,IAAI,GAAG+B,KAAK,CAACO,OAAO,GAAG,CAAC,GAAEP,KAAK,CAACO,OAAO,GAAE,CAAC;OAE/C,OAAO,IAAI;MACX;KACDH,WAAW,uBAACI,OAAO,EACnB;OAAA,IADqBC,KAAK,uEAAG,CAAC,CAAC;OAE9B,IAAI,CAAC1C,QAAQ,GAAGyC,OAAO;OACvB,IAAI,CAACxC,eAAe,GAAGyC,KAAK,GAAG,CAAC,GAAEA,KAAK,GAAEC,IAAI,CAACC,KAAK,CAAC,IAAI,CAACzB,KAAK,CAACgB,KAAK,CAACC,WAAW,GAAG,GAAG,GAAGK,OAAO,CAAC;MACjG;KACDI,UAAU,sBAACC,MAAM,EACjB;OACCA,MAAM,GAAGH,IAAI,CAACI,KAAK,CAACD,MAAM,CAAC;OAE3B,IAAME,IAAI,GAAGL,IAAI,CAACI,KAAK,CAACD,MAAM,GAAC,EAAE,GAAC,EAAE,CAAC;OACrC,IAAIE,IAAI,GAAG,CAAC,EACZ;SACCF,MAAM,IAAIE,IAAI,GAAC,EAAE,GAAC,EAAE;;OAGrB,IAAMC,MAAM,GAAGN,IAAI,CAACI,KAAK,CAACD,MAAM,GAAC,EAAE,CAAC;OACpC,IAAIG,MAAM,GAAG,CAAC,EACd;SACCH,MAAM,IAAIG,MAAM,GAAC,EAAE;;OAGpB,OAAO,CAACD,IAAI,GAAG,CAAC,GAAEA,IAAI,GAAC,GAAG,GAAE,EAAE,KACzBA,IAAI,GAAG,CAAC,GAAEC,MAAM,CAACC,QAAQ,EAAE,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAC,GAAG,GAAEF,MAAM,GAAC,GAAG,CAAC,GAC9DH,MAAM,CAACI,QAAQ,EAAE,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;MACtC;KACD3C,cAAc,0BAACnB,EAAE,EACjB;OAAA;OACC,IAAIA,EAAE,IAAI,CAAC,EACX;SACC,OAAO,KAAK;;OAGb,IAAI+D,QAAQ,GAAG,IAAI,CAAC3C,OAAO,CAAC4C,IAAI,CAACC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC;OAE7DF,QAAQ,GAAG,+BAAI,IAAIG,GAAG,0CAAKH,QAAQ,IAAE/D,EAAE,GAAE,EACvCmE,MAAM,CAAC,UAAAnE,EAAE;SAAA,OAAIA,EAAE,KAAK,KAAI,CAACkB,YAAY;SAAC,CACtCkD,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;SAAA,OAAKD,CAAC,GAAGC,CAAC;SAAC;OAGvB,IAAI,CAAClD,OAAO,CAAC4C,IAAI,CAACO,GAAG,CAAC,mBAAmB,EAAER,QAAQ,CAAC;OAEpD,IAAI,CAAC7C,YAAY,GAAGlB,EAAE;OAEtB,OAAO,IAAI;MACX;KACDiC,gBAAgB,8BAChB;OAAA;OACC,IAAI,CAAC,IAAI,CAACf,YAAY,EACtB;SACC,OAAO,IAAI;;OAGZ,IAAI6C,QAAQ,GAAG,IAAI,CAAC3C,OAAO,CAAC4C,IAAI,CAACC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAACE,MAAM,CAAC,UAAAnE,EAAE;SAAA,OAAIA,EAAE,KAAK,MAAI,CAACkB,YAAY;SAAC;OAEpG,IAAI,CAACE,OAAO,CAAC4C,IAAI,CAACO,GAAG,CAAC,mBAAmB,EAAER,QAAQ,CAAC;OAEpD,IAAI,CAAC7C,YAAY,GAAG,CAAC;OAErB,OAAO,IAAI;MACX;KACDsD,QAAQ,sBACR;OAAA;OACC,IAAI,CAAC,IAAI,CAACtD,YAAY,IAAI,CAAC,IAAI,CAAChB,YAAY,EAC5C;SACC,OAAO,KAAK;;OAGb,IAAMuE,MAAM,GAAG,IAAI,CAACrD,OAAO,CAAC4C,IAAI,CAACC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAACE,MAAM,CAAC,UAAAnE,EAAE;SAAA,OAAIA,EAAE,GAAG,MAAI,CAACkB,YAAY;SAAC,CAACwD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;OACjH,IAAID,MAAM,EACV;SACC,IAAI,CAACrD,OAAO,CAACC,YAAY,CAACsD,IAAI,CAAC,qBAAqB,EAAE;WAAC3E,EAAE,EAAEyE,MAAM;WAAEG,KAAK,EAAE;UAAK,CAAC;;OAGjF,OAAO,IAAI;MACX;KACDtC,WAAW,yBACX;OAAA;OACC,IAAI,IAAI,CAACrB,kBAAkB,EAC3B;SACC,OAAO,IAAI;;OAGZ,IAAI,CAAC,IAAI,CAACC,YAAY,IAAI,CAAC,IAAI,CAAChB,YAAY,EAC5C;SACC,OAAO,KAAK;;OAGb,IAAI,CAACe,kBAAkB,GAAG,IAAI;OAE9B,IAAMwD,MAAM,GAAG,IAAI,CAACrD,OAAO,CAAC4C,IAAI,CAACC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAACE,MAAM,CAAC,UAAAnE,EAAE;SAAA,OAAIA,EAAE,GAAG,MAAI,CAACkB,YAAY;SAAC,CAACwD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;OACjH,IAAID,MAAM,EACV;SACC,IAAI,CAACrD,OAAO,CAACC,YAAY,CAACsD,IAAI,CAAC,wBAAwB,EAAE;WAAC3E,EAAE,EAAEyE;UAAO,CAAC;;OAGvE,OAAO,IAAI;MACX;KACDlD,MAAM,kBAACqB,KAAgB,EACvB;OACC,IAAMxC,IAAI,GAAGwC,KAAK,CAACiC,OAAO,EAAE;OAE5B,IAAIzE,IAAI,CAACJ,EAAE,KAAK,IAAI,CAACA,EAAE,EACvB;SACC,OAAO,KAAK;;OAGb,IAAII,IAAI,CAACwE,KAAK,EACd;SACC,IAAI,CAACjF,IAAI,EAAE;;OAGZ,IAAI,CAACF,IAAI,EAAE;MACX;KACD+B,MAAM,kBAACoB,KAAgB,EACvB;OACC,IAAMxC,IAAI,GAAGwC,KAAK,CAACiC,OAAO,EAAE;OAE5B,IAAIzE,IAAI,CAAC0E,SAAS,KAAK,IAAI,CAAC9E,EAAE,EAC9B;SACC,OAAO,KAAK;;OAGb,IAAI,CAACL,IAAI,EAAE;MACX;KACD8B,OAAO,mBAACmB,KAAgB,EACxB;OACC,IAAMxC,IAAI,GAAGwC,KAAK,CAACiC,OAAO,EAAE;OAE5B,IAAIzE,IAAI,CAAC0E,SAAS,KAAK,IAAI,CAAC9E,EAAE,EAC9B;SACC,OAAO,KAAK;;OAGb,IAAI,CAACN,KAAK,EAAE;MACZ;KACDgC,SAAS,qBAACkB,KAAgB,EAC1B;OACC,IAAMxC,IAAI,GAAGwC,KAAK,CAACiC,OAAO,EAAE;OAE5B,IAAIzE,IAAI,CAACJ,EAAE,KAAK,IAAI,CAACA,EAAE,EACvB;SACC,OAAO,KAAK;;OAGb,IAAI,CAACwC,QAAQ,EAAE;MACf;KACDC,MAAM,oBACN;OACC,OAAO,IAAI,CAACX,KAAK,CAACW,MAAM;MACxB;KACDsC,gBAAgB,4BAACC,SAAS,EAAEpC,KAAK,EACjC;OACC,IACCoC,SAAS,KAAK,gBAAgB,IAC3BA,SAAS,KAAK,YAAY,IAC1BA,SAAS,KAAK,gBAAgB,EAElC;SACC,IAAI,CAACjE,SAAS,GAAG,IAAI,CAAC0B,MAAM,EAAE,CAACwC,QAAQ;QACvC,MACI,IACJD,SAAS,KAAK,OAAO,IAClBA,SAAS,KAAK,OAAO,EAEzB;SACCE,OAAO,CAACC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAACnF,EAAE,EAAE4C,KAAK,CAAC;SAE3D,IAAI,CAACpC,OAAO,GAAG,KAAK;SACpB,IAAI,CAACE,KAAK,GAAGpB,MAAK,CAACM,IAAI;SACvB,IAAI,CAACmB,SAAS,GAAG,CAAC;SAClB,IAAI,CAACT,OAAO,GAAG,MAAM;QACrB,MACI,IACJ0E,SAAS,KAAK,gBAAgB,EAE/B;SACC,IAAI,CAACxE,OAAO,GAAG,KAAK;SACpB,IAAI,CAACD,MAAM,GAAG,IAAI;QAClB,MACI,IAAIyE,SAAS,KAAK,YAAY,EACnC;SACC,IAAI,CAAC,IAAI,CAACvC,MAAM,EAAE,EAClB;WACC;;SAGD,IAAI,CAAC3B,WAAW,GAAG,IAAI,CAAC2B,MAAM,EAAE,CAACQ,WAAW;SAE5C,IAAI,CAACD,WAAW,CAACM,IAAI,CAACC,KAAK,CAAC,GAAG,GAAC,IAAI,CAACxC,SAAS,GAAC,IAAI,CAACD,WAAW,CAAC,CAAC;SAEjE,IACC,IAAI,CAACJ,KAAK,KAAKpB,MAAK,CAACG,IAAI,IACtB,IAAI,CAACqB,WAAW,IAAI,IAAI,CAACC,SAAS,EAEtC;WACC,IAAI,CAACyD,QAAQ,EAAE;;QAEhB,MACI,IAAIQ,SAAS,KAAK,OAAO,EAC9B;SACC,IAAI,IAAI,CAACtE,KAAK,KAAKpB,MAAK,CAACK,IAAI,EAC7B;WACC,IAAI,CAACe,KAAK,GAAGpB,MAAK,CAACI,KAAK;;QAEzB,MACI,IAAIsF,SAAS,KAAK,MAAM,EAC7B;SACC,IAAI,CAACtE,KAAK,GAAGpB,MAAK,CAACG,IAAI;SAEvB,IAAI,IAAI,CAACiB,KAAK,KAAKpB,MAAK,CAACK,IAAI,EAC7B;WACC,IAAI,CAACgB,QAAQ,GAAG,CAAC;WACjB,IAAI,CAACG,WAAW,GAAG,CAAC;;SAGrB,IAAI,IAAI,CAACd,EAAE,GAAG,CAAC,EACf;WACC,IAAI,CAACoB,OAAO,CAACC,YAAY,CAACsD,IAAI,CAAC,sBAAsB,EAAE;aAACG,SAAS,EAAE,IAAI,CAAC9E;YAAG,CAAC;;;MAG9E;KACD4B,WAAW,yBACX;OAAA;OACC,IAAI,IAAI,CAACwD,QAAQ,EACjB;SACC,OAAO,IAAI,CAACA,QAAQ;;OAGrB,IAAI,CAACA,QAAQ,GAAG,IAAIC,oBAAoB,CAAC,UAACC,OAAO,EAAEF,QAAQ,EAC3D;SACCE,OAAO,CAACC,OAAO,CAAC,UAACC,KAAK,EACtB;WACC,IAAIA,KAAK,CAACC,cAAc,EACxB;aACC,IAAI,MAAI,CAACnF,OAAO,KAAK,MAAM,EAC3B;eACC,MAAI,CAACA,OAAO,GAAG,UAAU;eACzB,MAAI,CAAC8E,QAAQ,CAACjD,SAAS,CAACqD,KAAK,CAACE,MAAM,CAAC;;;UAGvC,CAAC;QACF,EAAC;SACDC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;QAChB,CAAC;OAEF,OAAO,IAAI,CAACP,QAAQ;;IAErB;GACDQ,QAAQ,EACR;KACCtG,KAAK,EAAE;OAAA,OAAMA,MAAK;;KAClBuG,YAAY,0BACZ;OACC,IAAI,CAAC,IAAI,CAACtF,MAAM,IAAI,CAAC,IAAI,CAACM,IAAI,IAAI,IAAI,CAACiF,QAAQ,EAC/C;SACC,OAAO,eAAe;;OAGvB,uBAAgB,IAAI,CAACjF,IAAI;MACzB;KACDkF,gBAAgB,8BAChB;OACC,IAAI,CAAC,IAAI,CAACxF,MAAM,IAAI,IAAI,CAACG,KAAK,KAAKpB,MAAK,CAACM,IAAI,EAC7C;SACC;;OAGD,wBAAiB,IAAI,CAACgB,eAAe;MACrC;KACDoF,SAAS,uBACT;OACC,IAAI,CAAC,IAAI,CAACzF,MAAM,IAAI,CAAC,IAAI,CAACQ,SAAS,EACnC;SACC,OAAO,OAAO;;OAGf,IAAIkF,IAAI;OACR,IAAI,IAAI,CAACvF,KAAK,KAAKpB,MAAK,CAACG,IAAI,EAC7B;SACCwG,IAAI,GAAG,IAAI,CAAClF,SAAS,GAAG,IAAI,CAACD,WAAW;QACxC,MAED;SACCmF,IAAI,GAAG,IAAI,CAAClF,SAAS;;OAGtB,OAAO,IAAI,CAACyC,UAAU,CAACyC,IAAI,CAAC;MAC5B;KACDH,QAAQ,sBACR;OACC,IAAMI,EAAE,GAAGC,SAAS,CAACC,SAAS,CAACC,WAAW,EAAE;OAE5C,OACCH,EAAE,CAACI,QAAQ,CAAC,SAAS,CAAC,IACnBJ,EAAE,CAACI,QAAQ,CAAC,QAAQ,CAAC,IACrBJ,EAAE,CAACI,QAAQ,CAAC,MAAM,CAAC,IACnBJ,EAAE,CAACI,QAAQ,CAAC,cAAc,CAAC;;IAGhC;GACDC,QAAQ;CAuCT,CAAC,CAAC;;;;"}