]> git.parisson.com Git - teleforma.git/commitdiff
Migrate to vue 3 and add multi video player
authorYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 26 Feb 2024 14:43:01 +0000 (15:43 +0100)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 26 Feb 2024 14:43:01 +0000 (15:43 +0100)
25 files changed:
teleforma/migrations/0027_livestream_video_id.py [new file with mode: 0644]
teleforma/models/chat.py
teleforma/src/js/components/Chat.vue [deleted file]
teleforma/src/js/components/ChatComponent.vue [new file with mode: 0644]
teleforma/src/js/components/Notifications.vue [deleted file]
teleforma/src/js/components/NotificationsBell.vue [new file with mode: 0644]
teleforma/src/js/components/sub/NotificationMessage.vue
teleforma/src/js/main.ts
teleforma/src/js/shims-tsx.d.ts
teleforma/src/js/shims-vue.d.ts
teleforma/src/js/video/SyncVideoPlayer.ts [new file with mode: 0644]
teleforma/src/js/video/VideoComponent.vue [new file with mode: 0644]
teleforma/src/js/video/VideoPlayer.ts [new file with mode: 0644]
teleforma/src/js/video/constants.ts [new file with mode: 0644]
teleforma/src/js/video/main.d.ts [new file with mode: 0644]
teleforma/src/js/video/utils.ts [new file with mode: 0644]
teleforma/src/package.json
teleforma/src/vue.config.js
teleforma/src/yarn.lock
teleforma/static/teleforma/dist/app.css
teleforma/static/teleforma/dist/app.css.map
teleforma/static/teleforma/dist/app.js
teleforma/static/teleforma/dist/app.js.map
teleforma/templates/teleforma/course_media.html
teleforma/templatetags/teleforma_tags.py

diff --git a/teleforma/migrations/0027_livestream_video_id.py b/teleforma/migrations/0027_livestream_video_id.py
new file mode 100644 (file)
index 0000000..30f5a5b
--- /dev/null
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.13 on 2024-02-26 15:41
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('teleforma', '0026_period_nb_script_per_session'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='livestream',
+            name='video_id',
+            field=models.IntegerField(blank=True, null=True, verbose_name='video id'),
+        ),
+    ]
index 145d2cc494b004f254d0220b8ce79ac1c44a1c32..febc883db17ef5c22898b203570ee58d6d733020 100644 (file)
@@ -61,9 +61,9 @@ class ChatMessage(models.Model):
 
     def to_dict(self):
         message = {
-            '_id': self.id,
+            '_id': str(self.id),
             'content': self.message,
-            'senderId': self.user and self.user.id or "system",
+            'senderId': str(self.user and self.user.id or "system"),
             'username': self.user and self.user.username or "Système",
             'date': self.created.strftime('%d/%m/%Y'),
             'timestamp': self.created.strftime('%H:%M'),
diff --git a/teleforma/src/js/components/Chat.vue b/teleforma/src/js/components/Chat.vue
deleted file mode 100644 (file)
index dcde772..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-<template>
-  <chat-window
-    :current-user-id="currentUserId"
-    :rooms-loaded="rooms.length > 0"
-    :messages-loaded="messagesLoaded"
-    :single-room="true"
-    :rooms="rooms"
-    :show-files="false"
-    :show-emojis="true"
-    :show-reaction-emojis="false"
-    :show-audio="false"
-    :messages="messages"
-    :message-actions="[
-      {
-        name: 'replyMessage',
-        title: 'Répondre'
-      }
-    ]"
-    :link-options="{ disabled: false, target: '_self' }"
-    :text-messages="{
-      ROOMS_EMPTY: 'Aucune conversation',
-      ROOM_EMPTY: 'Aucune conversation sélectionnée',
-      NEW_MESSAGES: 'Nouveaux messages',
-      MESSAGE_DELETED: 'Ce message a été supprimé',
-      MESSAGES_EMPTY: 'Aucun message',
-      CONVERSATION_STARTED: 'La conversation a commencée le :',
-      TYPE_MESSAGE: 'Tapez votre message',
-      SEARCH: 'Rechercher',
-      IS_ONLINE: 'est en ligne',
-      LAST_SEEN: 'dernière connexion ',
-      IS_TYPING: 'est en train de taper...'
-    }"
-    @send-message="sendMessage"
-  />
-</template>
-
-<script lang="ts">
-import { Component, Vue } from "vue-property-decorator"
-import ChatWindow, { Message, Messages, Rooms } from "vue-advanced-chat"
-
-import "vue-advanced-chat/dist/vue-advanced-chat.css"
-
-@Component({
-  components: {
-    ChatWindow
-  }
-})
-export default class Chat extends Vue {
-  socket: WebSocket | null = null
-  rooms: Rooms = [
-    {
-      roomId: "global",
-      roomName: "",
-      avatar: "",
-      users: []
-    }
-  ]
-  messagesLoaded = false
-  messages: Messages = []
-  currentUserId: number | null = null
-
-  created() {
-    // get room info
-    let roomInfoStr: string | null = ""
-    const roomInfoElm = document.getElementById("room-info")
-    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent
-    let roomInfo: any = null
-    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)
-    else throw "No room info provided"
-
-    this.rooms = [
-      {
-        roomId: roomInfo.room_name,
-        roomName: roomInfo.room_title,
-        avatar: "",
-        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)
-        users: [
-          {
-            _id: 1,
-            username: "Fake user 1",
-            avatar: "assets/imgs/doe.png",
-            status: {
-              state: "online",
-              lastChanged: "today, 14:30"
-            }
-          },
-          {
-            _id: 2,
-            username: "Fake user 2",
-            avatar: "assets/imgs/snow.png",
-            status: {
-              state: "online",
-              lastChanged: "14 July, 20:00"
-            }
-          },
-          {
-            _id: 3,
-            username: "Fake user 3",
-            avatar: "assets/imgs/snow.png",
-            status: {
-              state: "online",
-              lastChanged: "14 July, 20:00"
-            }
-          }
-        ]
-      }
-    ]
-    this.connect(roomInfo.room_name)
-    this.currentUserId = roomInfo.user_id
-  }
-
-  connect(roomName: string) {
-    // connect to socket
-    let protocol = "wss"
-    if (window.location.protocol != "https:") protocol = "ws"
-    this.socket = new WebSocket(protocol + "://" + window.location.host + "/ws/chat/" + roomName + "/")
-    this.fetchMessages()
-
-    this.socket.onclose = () => {
-      console.log("Chat socket closed")
-      // try to reconnect
-      // setTimeout(() => {
-      //   this.connect(roomName)
-      // }, 10000)
-    }
-  }
-
-  async fetchMessages() {
-    this.socket!.onmessage = (e) => {
-      const data = JSON.parse(e.data)
-      const type = data.type
-      // do not load messages in case of socket reconnect
-      if (type == "initial" && this.messagesLoaded) return
-      const newMessages = data.messages as Message[]
-      this.messages = [...this.messages, ...newMessages]
-      if (type == "initial") {
-        this.messagesLoaded = true
-        // scroll chat to bottom
-        const messageContainer = document.querySelector(".vac-container-scroll")
-        this.$nextTick(() => {
-          if(messageContainer)
-            messageContainer.scrollTop = messageContainer.scrollHeight
-        })
-      }
-    }
-  }
-
-  sendMessage({ content, replyMessage }: Message) {
-    /** send message to socket */
-    this.socket!.send(
-      JSON.stringify({
-        message: content,
-        replyTo: replyMessage ? replyMessage._id : null
-      })
-    )
-  }
-}
-</script>
-
-<style>
-.vac-message-wrapper .vac-offset-current {
-  margin-left: 15%;
-}
-.vac-message-wrapper .vac-message-box {
-  max-width: 80%;
-}
-</style>
diff --git a/teleforma/src/js/components/ChatComponent.vue b/teleforma/src/js/components/ChatComponent.vue
new file mode 100644 (file)
index 0000000..77d1314
--- /dev/null
@@ -0,0 +1,179 @@
+<template>
+  <vue-advanced-chat
+    :current-user-id="currentUserId"
+    :rooms-loaded="rooms.length > 0"
+    :messages-loaded="messagesLoaded || null"
+    single-room="true"
+    :rooms="JSON.stringify(rooms)"
+    :room-id="rooms[0].roomId"
+    show-files="false"
+    show-emojis="true"
+    show-reaction-emojis="false"
+    show-audio="false"
+    :messages="JSON.stringify(messages)"
+    :message-actions="
+      JSON.stringify([
+        {
+          name: 'replyMessage',
+          title: 'Répondre'
+        }
+      ])
+    "
+    :link-options="JSON.stringify({ disabled: false, target: '_self' })"
+    :text-messages="
+      JSON.stringify({
+        ROOMS_EMPTY: 'Aucune conversation',
+        ROOM_EMPTY: 'Aucune conversation sélectionnée',
+        NEW_MESSAGES: 'Nouveaux messages',
+        MESSAGE_DELETED: 'Ce message a été supprimé',
+        MESSAGES_EMPTY: 'Aucun message',
+        CONVERSATION_STARTED: 'La conversation a commencée le :',
+        TYPE_MESSAGE: 'Tapez votre message',
+        SEARCH: 'Rechercher',
+        IS_ONLINE: 'est en ligne',
+        LAST_SEEN: 'dernière connexion ',
+        IS_TYPING: 'est en train de taper...'
+      })
+    "
+    @send-message="sendMessage($event.detail[0])"
+  />
+</template>
+
+<script lang="ts">
+import { defineComponent } from "vue"
+import { Message, Room, register } from "vue-advanced-chat"
+register()
+
+interface BaseComponentData {
+  socket: WebSocket | null
+  rooms: Room[]
+  messagesLoaded: boolean
+  messages: Message[]
+  currentUserId: string | null
+}
+
+export default defineComponent({
+  data(): BaseComponentData {
+    return {
+      socket: null,
+      rooms: [
+        {
+          roomId: "global",
+          roomName: "",
+          avatar: "",
+          users: []
+        }
+      ],
+      messagesLoaded: false,
+      messages: [],
+      currentUserId: null
+    }
+  },
+
+  mounted() {
+    // get room info
+    let roomInfoStr: string | null = ""
+    const roomInfoElm = document.getElementById("room-info")
+    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent
+    let roomInfo: any = null
+    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)
+    else throw "No room info provided"
+    this.rooms = [
+      {
+        roomId: roomInfo.room_name,
+        roomName: roomInfo.room_title,
+        avatar: "",
+        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)
+        users: [
+          {
+            _id: "1",
+            username: "Fake user 1",
+            avatar: "assets/imgs/doe.png",
+            status: {
+              state: "online",
+              lastChanged: "today, 14:30"
+            }
+          },
+          {
+            _id: "2",
+            username: "Fake user 2",
+            avatar: "assets/imgs/snow.png",
+            status: {
+              state: "online",
+              lastChanged: "14 July, 20:00"
+            }
+          },
+          {
+            _id: "3",
+            username: "Fake user 3",
+            avatar: "assets/imgs/snow.png",
+            status: {
+              state: "online",
+              lastChanged: "14 July, 20:00"
+            }
+          }
+        ]
+      }
+    ]
+    this.connect(roomInfo.room_name)
+    this.currentUserId = roomInfo.user_id
+  },
+
+  methods: {
+    connect(roomName: string) {
+      // connect to socket
+      let protocol = "wss"
+      if (window.location.protocol != "https:") protocol = "ws"
+      this.socket = new WebSocket(protocol + "://" + window.location.host + "/ws/chat/" + roomName + "/")
+      this.fetchMessages()
+
+      this.socket.onclose = () => {
+        console.log("Chat socket closed")
+        // try to reconnect
+        // setTimeout(() => {
+        //   this.connect(roomName)
+        // }, 10000)
+      }
+    },
+
+    async fetchMessages() {
+      this.socket!.onmessage = (e) => {
+        const data = JSON.parse(e.data)
+        const type = data.type
+        // do not load messages in case of socket reconnect
+        if (type == "initial" && this.messagesLoaded) return
+        const newMessages = data.messages as Message[]
+        this.messages = [...this.messages, ...newMessages]
+        if (type == "initial") {
+          this.messagesLoaded = true
+        }
+      }
+    },
+
+    sendMessage({ content, replyMessage }: Message) {
+      /** send message to socket */
+      this.socket!.send(
+        JSON.stringify({
+          message: content,
+          replyTo: replyMessage ? replyMessage._id : null
+        })
+      )
+    }
+  },
+
+  computed: {
+    showAudio() {
+      return undefined
+    }
+  }
+})
+</script>
+
+<style>
+.vac-message-wrapper .vac-offset-current {
+  margin-left: 15%;
+}
+.vac-message-wrapper .vac-message-box {
+  max-width: 80%;
+}
+</style>
diff --git a/teleforma/src/js/components/Notifications.vue b/teleforma/src/js/components/Notifications.vue
deleted file mode 100644 (file)
index 21821ca..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
-  <div id="notifications" @focus="open" @focusout="close" tabindex="0">
-    <div class="bell">
-      <img src="/static/teleforma/images/bell.svg" alt="Notifications" title="Notifications" class="bell-image" />
-      <span v-if="numberOfUnread > 0" class="bell-count">{{ numberOfUnread }}</span>
-    </div>
-    <div v-if="opened" class="notifications-list">
-      <!-- <h1 v-if="currentUserId">{{ currentUserId }}</h1>
-      <h1 v-else>Pas d'utilisateur</h1> -->
-      <ul>
-        <NotificationMessage
-          v-for="message in messages"
-          :key="message._id"
-          :id="message._id"
-          :content="message.content"
-          :url="message.url"
-          :viewed="message.viewed"
-          :creation-date="message.created"
-        ></NotificationMessage>
-      </ul>
-    </div>
-  </div>
-</template>
-
-<script lang="ts">
-import { Component, Vue } from "vue-property-decorator"
-import NotificationMessage from "./sub/NotificationMessage.vue"
-
-@Component({
-  components: {
-    NotificationMessage
-  }
-})
-export default class Notifications extends Vue {
-  socket: WebSocket | null = null
-  messagesLoaded = false
-  messages: any[] = []
-  currentUserId: number | null = null
-  opened = false
-
-  created() {
-    // get room info
-    const userId = document.getElementById("user_id")
-    if (!userId) return
-    // this.connect(`notifications_${userId}`)
-    this.currentUserId = parseInt(userId.getAttribute("value")!, 10)
-    this.connect()
-  }
-
-  connect() {
-    // connect to socket
-    let protocol = "wss"
-    if (window.location.protocol != "https:") protocol = "ws"
-    this.socket = new WebSocket(
-      protocol + "://" + window.location.host + "/ws/notification/" + this.currentUserId + "/"
-    )
-    this.fetchMessages()
-
-    this.socket.onclose = () => {
-      console.log("Chat socket closed")
-    }
-  }
-
-  async fetchMessages() {
-    this.socket!.onmessage = (e) => {
-      const data = JSON.parse(e.data)
-      const type = data.type
-      // debugger;
-      // do not load messages in case of socket reconnect
-      if (type === "initial" && this.messagesLoaded) return
-
-      const newMessages = data.messages
-
-      // check if a message with the same id already exists
-      // it means the message have been updated (probably the "viewed" state)
-      let existing = null
-      if (type === "new" && newMessages.length === 1) {
-        existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)
-      }
-      
-      // if it exists, then we update it instead of appending a new one
-      if (existing !== null && existing !== -1){
-        this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]
-      }
-      else
-        this.messages = [...newMessages, ...this.messages]
-      if (type === "initial") this.messagesLoaded = true
-    }
-  }
-
-  open() {
-    this.opened = true
-  }
-  close() {
-    this.opened = false
-  }
-
-  get numberOfUnread() {
-    return this.messages.filter(message => !message.viewed).length
-  }
-}
-</script>
-
-<style scoped>
-#notifications {
-  position: absolute;
-  top: 0px;
-  right: 5px;
-  text-align: left;
-}
-.bell {
-  width: 40px;
-  height: 40px;
-  position: relative;
-  cursor: pointer;
-}
-.bell-count {
-  position: absolute;
-  width: 20px;
-  height: 20px;
-  top: 5px;
-  right: 0px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  color: white;
-  border-radius: 10px;
-  background-color: red;
-}
-
-.notifications-list {
-  position: absolute;
-  background-color: white;
-  z-index: 100;
-  right: 10px;
-  width: 400px;
-  max-height: calc(100vh - 300px);
-  max-width: calc(100vw - 50px);
-  border: 1px solid lightblue;
-  border-radius: 3px;
-  overflow-y: scroll;
-}
-
-ul {
-  margin: 0;
-  padding: 0;
-  box-shadow: 5px 5px 5px grey;
-}
-</style>
diff --git a/teleforma/src/js/components/NotificationsBell.vue b/teleforma/src/js/components/NotificationsBell.vue
new file mode 100644 (file)
index 0000000..a354af0
--- /dev/null
@@ -0,0 +1,161 @@
+<template>
+  <div id="notifications" @focus="open" @focusout="close" tabindex="0">
+    <div class="bell">
+      <img src="/static/teleforma/images/bell.svg" alt="Notifications" title="Notifications" class="bell-image" />
+      <span v-if="numberOfUnread > 0" class="bell-count">{{ numberOfUnread }}</span>
+    </div>
+    <div v-if="opened" class="notifications-list">
+      <!-- <h1 v-if="currentUserId">{{ currentUserId }}</h1>
+      <h1 v-else>Pas d'utilisateur</h1> -->
+      <ul>
+        <notification-message
+          v-for="message in messages"
+          :key="message._id"
+          :id="message._id"
+          :content="message.content"
+          :url="message.url"
+          :viewed="message.viewed"
+          :creation-date="message.created"
+        ></notification-message>
+      </ul>
+    </div>
+  </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+import NotificationMessage from "./sub/NotificationMessage.vue"
+
+interface BaseComponentData {
+  socket: WebSocket | null
+  messagesLoaded: boolean
+  messages: any[]
+  currentUserId: number | null
+  opened: boolean
+}
+
+export default defineComponent({
+  
+  data(): BaseComponentData {
+    return {
+      socket: null,
+      messagesLoaded: false,
+      messages: [],
+      currentUserId: null,
+      opened: false
+    }
+  },
+  components: {
+    NotificationMessage
+  },
+  created() {
+    // get room info
+    const userId = document.getElementById("user_id")
+    if (!userId) return
+    // this.connect(`notifications_${userId}`)
+    this.currentUserId = parseInt(userId.getAttribute("value")!, 10)
+    this.connect()
+  },
+
+  methods: {
+    connect() {
+      // connect to socket
+      let protocol = "wss"
+      if (window.location.protocol != "https:") protocol = "ws"
+      this.socket = new WebSocket(
+        protocol + "://" + window.location.host + "/ws/notification/" + this.currentUserId + "/"
+      )
+      this.fetchMessages()
+
+      this.socket.onclose = () => {
+        console.log("Chat socket closed")
+      }
+    },
+
+    async fetchMessages() {
+      this.socket!.onmessage = (e) => {
+        const data = JSON.parse(e.data)
+        const type = data.type
+        // debugger;
+        // do not load messages in case of socket reconnect
+        if (type === "initial" && this.messagesLoaded) return
+
+        const newMessages = data.messages
+
+        // check if a message with the same id already exists
+        // it means the message have been updated (probably the "viewed" state)
+        let existing = null
+        if (type === "new" && newMessages.length === 1) {
+          existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)
+        }
+
+        // if it exists, then we update it instead of appending a new one
+        if (existing !== null && existing !== -1) {
+          this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]
+        } else this.messages = [...newMessages, ...this.messages]
+        if (type === "initial") this.messagesLoaded = true
+      }
+    },
+
+    open() {
+      this.opened = true
+    },
+    close() {
+      this.opened = false
+    }
+  },
+
+  computed: {
+    numberOfUnread(): any {
+      return this.messages.filter((message) => !message.viewed).length
+    }
+  }
+})
+</script>
+
+<style scoped>
+#notifications {
+  position: absolute;
+  top: 0px;
+  right: 5px;
+  text-align: left;
+}
+.bell {
+  width: 40px;
+  height: 40px;
+  position: relative;
+  cursor: pointer;
+}
+.bell-count {
+  position: absolute;
+  width: 20px;
+  height: 20px;
+  top: 5px;
+  right: 0px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: white;
+  border-radius: 10px;
+  background-color: red;
+}
+
+.notifications-list {
+  position: absolute;
+  background-color: white;
+  z-index: 100;
+  right: 10px;
+  width: 400px;
+  max-height: calc(100vh - 300px);
+  max-width: calc(100vw - 50px);
+  border: 1px solid lightblue;
+  border-radius: 3px;
+  overflow-y: scroll;
+}
+
+ul {
+  margin: 0;
+  padding: 0;
+  box-shadow: 5px 5px 5px grey;
+}
+</style>
index 7dc515026ab43bb78b70665ec18a7083afad61ba..efc397da801bf62ebd84734b023447787a01c441 100644 (file)
@@ -1,50 +1,50 @@
 <template>
   <li @click="onClick()" @click.middle="onMiddleClick()">
-    <span :class="{ 'unviewed': !viewed, text: true }">{{ content }}</span>
+    <span :class="{ unviewed: !viewed, text: true }">{{ content }}</span>
     <span class="date">{{ relativeCreationDate }} </span>
   </li>
 </template>
 
 <script lang="ts">
-import { Component, Vue } from "vue-property-decorator"
+
+import { defineComponent } from 'vue'
 import { formatRelative } from "date-fns"
 import { fr } from "date-fns/locale"
 import axios from "axios"
 
-// Define the props by using Vue's canonical way.
-const NotificationMessageProps = Vue.extend({
+
+export default defineComponent({
   props: {
     id: Number,
     content: String,
     url: String,
     viewed: Boolean,
     creationDate: String
-  }
-})
-
-@Component
-export default class NotificationMessage extends NotificationMessageProps {
-
-  async setAsViewed() {
-    if (this.$props.viewed === false) {
-      await axios.post("/notification", { id: this.$props.id, viewed: true })
-    }
-  }
+  },
 
-  async onClick() {
-    this.setAsViewed()
-    if (this.$props.url) window.location.href = this.$props.url
-  }
+  methods: {
+    async setAsViewed() {
+      if (this.viewed === false) {
+        await axios.post("/notification", { id: this.id, viewed: true })
+      }
+    },
 
-  async onMiddleClick() {
-    this.setAsViewed()
-    if (this.$props.url) window.open(this.$props.url, '_blank');
-  }
+    async onClick() {
+      await this.setAsViewed()
+      if (this.url) window.location.href = this.url
+    },
 
-  get relativeCreationDate() {
-    return formatRelative(new Date(this.$props.creationDate), new Date(), { locale: fr })
+    async onMiddleClick() {
+      await this.setAsViewed()
+      if (this.url) window.open(this.url, "_blank")
+    }
+  },
+  computed: {
+    relativeCreationDate():string {
+      return formatRelative(new Date(this.creationDate as string), new Date(), { locale: fr })
+    }
   }
-}
+})
 </script>
 
 <style scoped>
@@ -69,9 +69,9 @@ li:not(:last-child) {
   font-weight: bold;
 }
 .date {
-    float: right;
-    color: lightslategrey;
-    font-size: 0.9em;
-    font-style: italic;
+  float: right;
+  color: lightslategrey;
+  font-size: 0.9em;
+  font-style: italic;
 }
 </style>
index eabad0d3f144d320c079b8969cb51c6640ca49fb..2de16bfd13fe6a598eb97c5ecef30388da675a4c 100644 (file)
@@ -1,7 +1,9 @@
 import "./compatibility"
-import Vue from "vue"
-import Chat from "./components/Chat.vue"
-import Notifications from "./components/Notifications.vue"
+import { createApp } from "vue"
+
+import ChatComponent from "./components/ChatComponent.vue"
+import NotificationsBell from "./components/NotificationsBell.vue"
+import VideoComponent from "./video/VideoComponent.vue"
 
 import axios from "axios";
 // default axios config
@@ -9,17 +11,14 @@ axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
 axios.defaults.xsrfCookieName = "csrftoken";
 axios.defaults.withCredentials = true
 
-Vue.config.productionTip = false
-
 if (document.getElementById("chat")) {
-  new Vue({
-    render: (h) => h(Chat)
-  }).$mount("#chat")
+  createApp(ChatComponent).mount('#chat')
 }
 
-
 if (document.getElementById("notifications")) {
-  new Vue({
-    render: (h) => h(Notifications)
-  }).$mount("#notifications")
+  createApp(NotificationsBell).mount('#notifications')
 }
+
+if(document.getElementById("multivideo")) {
+  createApp(VideoComponent).mount('#multivideo');
+}
\ No newline at end of file
index 2bcdf9fbcb0ee8d3efe3c9c39a0e12f63c2ebc5e..a124af03e5546af3c7133451944c10c8ec265175 100644 (file)
@@ -10,4 +10,5 @@ declare global {
       [elem: string]: any;
     }
   }
+  interface Window { videojs: any; }
 }
index 0660bd67a54ed51e3f21893f4098cf97b7f7d40b..b30173c52693fb20bdc9b3ff05526c94b268bc72 100644 (file)
@@ -2,3 +2,17 @@ declare module "*.vue" {
   import Vue from "vue";
   export default Vue;
 }
+
+declare module 'vue' {
+  import { CompatVue } from '@vue/runtime-dom'
+  const Vue: CompatVue
+  export default Vue
+  export * from '@vue/runtime-dom'
+  const { configureCompat } = Vue
+  export { configureCompat }
+}
+
+declare module 'videojs' {
+  const videojs: any;
+  export default videojs;
+}
\ No newline at end of file
diff --git a/teleforma/src/js/video/SyncVideoPlayer.ts b/teleforma/src/js/video/SyncVideoPlayer.ts
new file mode 100644 (file)
index 0000000..3eb5e4d
--- /dev/null
@@ -0,0 +1,228 @@
+import {PlayerState} from './constants';
+import {MultiVideoPlayerOptions, VideoPlayerOptions} from './main';
+import {Logger} from "./utils";
+import VideoPlayer from './VideoPlayer';
+
+const validStates = {
+  [PlayerState.LOADING]: [PlayerState.LOADED],
+  [PlayerState.LOADED]: [PlayerState.PLAYING],
+  [PlayerState.PLAYING]: [PlayerState.PAUSE, PlayerState.ENDED],
+  [PlayerState.PAUSE]: [PlayerState.PLAYING, PlayerState.ENDED],
+  [PlayerState.ENDED]: [PlayerState.PLAYING],
+
+  [PlayerState.BUFFERING]: [],
+  [PlayerState.UNSTARTED]: [],
+};
+
+const isValidState = (currentState: PlayerState, nextState: PlayerState) => {
+  const stateOuts: PlayerState[] = validStates[currentState];
+  if (!stateOuts) {
+    return false;
+  }
+
+  return stateOuts.includes(nextState);
+};
+
+
+class SyncVideoPlayer {
+  public options: MultiVideoPlayerOptions;
+  public $container: Element | null;
+  public videoPlayers: VideoPlayer[] = [];
+  private readyCount: number;
+  private state: PlayerState;
+  private currentTime: number;
+
+  constructor(options: MultiVideoPlayerOptions) {
+    this.options = {
+      controls: options.controls ?? true,
+      loop: options.loop ?? false,
+      area: options.area || '',
+      videoPlayers: options.videoPlayers || [],
+      template: '<div id="sync_video_player_container"></div>'
+    };
+
+    this.state = PlayerState.LOADING;
+    this.readyCount = 0;
+
+    this.$container = null;
+
+    this.videoPlayers = [];
+    this.currentTime = 0;
+  }
+
+  public mount() {
+    this.render();
+    this.addVideoPlayers(this.options.videoPlayers);
+  }
+
+  private render() {
+    const { template, area } = this.options;
+    if (!area) {
+      return;
+    }
+    const areaEl = document.querySelector(area);
+    if (!areaEl) {
+      return Logger.error('area not found: ', area);
+    }
+
+    areaEl.innerHTML = template || '';
+    this.$container = document.querySelector('#sync_video_player_container');
+  }
+
+  public async changeState(state: PlayerState, videoPlayer: VideoPlayer) {
+    if (state === PlayerState.BUFFERING) {
+      // TODO: find out how to handle buffering
+      return;
+    }
+    if (state === PlayerState.PLAYING) {
+      console.log("set state : playing")
+      return this.play();
+    }
+    if (state === PlayerState.PAUSE) {
+      if (videoPlayer.isEnded()) {
+        return;
+      }
+      return this.pause();
+    }
+    if (state === PlayerState.ENDED) {
+      // the main video player is the only one that can end if main is set
+      const mainVideoPlayer = this.videoPlayers.find((vp) => {
+        return vp.main;
+      });
+      if (mainVideoPlayer && mainVideoPlayer !== videoPlayer) {
+        return;
+      }
+
+      await this.moveStateTo(PlayerState.ENDED, () => {
+        if (this.options.loop) {
+          this.timeTo(0);
+        }
+      });
+    }
+    if (state === PlayerState.UNSTARTED) {
+      if (this.state === PlayerState.ENDED) {
+        if (this.options.loop) {
+          await this.play();
+        }
+      }
+    }
+  }
+
+  private async moveStateTo(state: PlayerState, success?: (newState: PlayerState, oldState: PlayerState) => void, fail?: (newState: PlayerState, oldState: PlayerState) => void) {
+    if (isValidState(this.state, state)) {
+      const oldState = this.state;
+      this.state = state;
+      if (success) {
+        await success(this.state, oldState);
+      }
+      Logger.debug('state changed to: ', state);
+    } else {
+      if (fail) {
+        await fail(this.state, state);
+      }
+      Logger.error('invalid state change: ', this.state, state);
+    }
+  }
+
+  public async onReady() {
+    this.readyCount++;
+    if (this.readyCount !== this.videoPlayers.length) return;
+    console.log("READY2")
+    await this.moveStateTo(PlayerState.LOADED);
+  }
+
+  public onTimeUpdate(videoPlayer: VideoPlayer, time: number) {
+    const diff = Math.abs(this.currentTime - time);
+    if (diff > 0.5) {
+      this.timeTo(time);
+    }
+    this.currentTime = time;
+    this.fixVideoStates();
+  }
+
+  private fixVideoStates() {
+    const mainVideoPlayer = this.videoPlayers.find((vp) => {
+      return vp.main;
+    });
+
+    if (!mainVideoPlayer) return;
+    this.videoPlayers.forEach(vp => {
+      if (vp === mainVideoPlayer) return;
+      if (vp.isEnded()) return;
+      if(mainVideoPlayer.isPlaying && !vp.isPlaying) {
+        vp.play().catch(() => {
+          // noop
+        });
+      }
+      if(!mainVideoPlayer.isPlaying && vp.isPlaying) {
+        vp.pause().catch(() => {
+          // noop
+        });
+      }
+    });
+  }
+
+  /**
+   * ------------------------------
+   * Public methods
+   * ------------------------------
+   */
+
+  public addVideoPlayers(videoPlayers: VideoPlayerOptions[] | undefined) {
+    if (!videoPlayers) return;
+    videoPlayers.forEach(videoPlayer => {
+      this.addVideoPlayer(videoPlayer);
+    });
+  }
+
+  public addVideoPlayer(videoPlayer: VideoPlayerOptions) {
+    const videoInstance = new VideoPlayer(this, videoPlayer);
+    if (!videoInstance.videoElement) return;
+    this.videoPlayers.push(videoInstance);
+  }
+
+  public async play() {
+    console.log("play")
+    await this.moveStateTo(PlayerState.PLAYING, async () => {
+      this.timeTo(this.currentTime);
+      await Promise.all(this.videoPlayers.map(async video => {
+        if (this.currentTime < video.getPlayLength()) {
+          await video.play();
+        }
+      }));
+    });
+  }
+
+  public async pause() {
+    await this.moveStateTo(PlayerState.PAUSE, async () => {
+      await Promise.all(this.videoPlayers.map(async video => {
+        await video.pause();
+      }));
+    });
+  }
+
+  public async stop() {
+    await this.moveStateTo(PlayerState.PAUSE, async () => {
+      await Promise.all(this.videoPlayers.map(async video => {
+        await video.stop();
+      }));
+    });
+  }
+
+  public timeTo(time: number) {
+    this.currentTime = time;
+    this.videoPlayers.forEach(video => {
+      video.timeTo(time);
+    });
+  }
+
+  public swapVideo(index1: number, index2: number) {
+    if (index1 === index2) return;
+    this.videoPlayers[index1]._swap(this.videoPlayers[index2]);
+    const tmp = this.videoPlayers[index1];
+    this.videoPlayers[index1] = this.videoPlayers[index2];
+    this.videoPlayers[index2] = tmp;
+  }
+}
+
+export default SyncVideoPlayer;
\ No newline at end of file
diff --git a/teleforma/src/js/video/VideoComponent.vue b/teleforma/src/js/video/VideoComponent.vue
new file mode 100644 (file)
index 0000000..871351d
--- /dev/null
@@ -0,0 +1,159 @@
+<script setup lang="ts">
+import { onMounted, nextTick, ref } from "vue"
+
+import SyncVideoPlayer from "./SyncVideoPlayer"
+
+const ids = ref(["video-0", "video-1", "video-2"])
+
+const syncVideoPlayer = new SyncVideoPlayer({
+  controls: false,
+  loop: false,
+  videoPlayers: [
+    {
+      id: "#video-0",
+      controls: true,
+      main: true,
+      initialSrc:
+        "https://static.videezy.com/system/resources/previews/000/050/817/original/002822-HD-SPECTRUM-COUNTDOWN-01.mp4"
+    },
+    {
+      id: "#video-1",
+      // startSeconds: 0,
+      initialSrc:
+        "https://static.videezy.com/system/resources/previews/000/051/313/original/002823-HD-SPECTRUM-COUNTDOWN-02.mp4"
+    },
+    {
+      id: "#video-2",
+      initialSrc: "https://static.videezy.com/system/resources/previews/000/049/943/original/002831-HD-COUNTDOWN-03.mp4"
+    },
+    {
+      id: "#video-3",
+      initialSrc:
+        "https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4"
+    }
+  ]
+})
+
+onMounted(() => {
+  syncVideoPlayer.mount()
+  const mainVideo = document.getElementById("main-video").querySelector("video")
+
+  mainVideo.addEventListener("loadeddata", () => {
+    //Video should now be loaded but we can add a second check
+
+    if (mainVideo.readyState >= 1) {
+      resizeVideoContainers()
+    }
+  })
+  // resize videos containers on window resize
+  window.addEventListener("resize", resizeVideoContainers)
+
+})
+
+function resizeVideoContainers() {
+  /** resize video containers so it fits a 2/3 - 1/3 */
+
+  console.log("resizeVideoContainers")
+  const mainVideoContainer = document.getElementById("main-video")
+  const mainVideoHeight = mainVideoContainer?.clientHeight
+  // set height to thumbnails list
+  const thumbnailsVideos = document.getElementById("thumbnails-videos")
+  // check if window size is less than 1280px (thumbnails wraps below in this case)
+  let thumbnailsVideoHeight = mainVideoHeight
+  if (window.innerWidth < 1280) {
+    thumbnailsVideoHeight = mainVideoHeight / 2
+  
+  }
+  console.log(thumbnailsVideos, thumbnailsVideoHeight)
+  
+  thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`
+}
+
+async function onPlay() {
+  await syncVideoPlayer.play()
+}
+
+async function onPause() {
+  await syncVideoPlayer.pause()
+}
+
+function onAdd() {
+  // create area for video1
+  const id = `video-${Math.random().toString(36).substring(2, 9)}`
+  ids.value.push(id)
+  nextTick(() => {
+    // add video
+    syncVideoPlayer.addVideoPlayer({
+      id: `#${id}`,
+      initialSrc:
+        "https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4"
+    })
+  })
+}
+
+async function onClick(index: number) {
+  syncVideoPlayer.swapVideo(0, index)
+}
+
+async function onChange(e: Event) {
+  const value = (e.target as HTMLInputElement).value
+  await syncVideoPlayer.timeTo(parseFloat(value))
+}
+</script>
+
+<template>
+  <div>
+    <div class="container">
+      <div id="main-video">
+        <div class="box" id="video-0" :key="0" @click="onClick(0)"></div>
+      </div>
+      <div id="thumbnails-videos">
+        <div v-for="(id, i) in ids.slice(1)" class="box" :id="id" :key="i + 1" @click.prevent="onClick(i + 1)"></div>
+      </div>
+    </div>
+
+    <div class="controls">
+      <button @click="onAdd">Add video</button>
+      <button @click="onPlay">Play</button>
+      <button @click="onPause">Pause</button>
+      <!-- range selector for time -->
+      <div class="time">
+        <input type="range" min="0" max="100" value="0" class="slider" id="myRange" @input="onChange" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<style>
+.container {
+  display: flex;
+  margin-top: 20px;
+  flex-direction: row;
+  @media (max-width: 1280px) {
+    flex-direction: column;
+  }
+}
+
+#main-video {
+  flex: 2;
+}
+#thumbnails-videos {
+  flex: 1;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  overflow-y: auto;
+  margin-left: 10px;
+  @media (max-width: 1280px) {
+    flex-direction: column;
+    margin-left: 0px;
+  }
+}
+
+#thumbnails-videos .box {
+  width: 100%;
+  @media (max-width: 1280px) {
+    width: 50%;
+  }
+}
+</style>
diff --git a/teleforma/src/js/video/VideoPlayer.ts b/teleforma/src/js/video/VideoPlayer.ts
new file mode 100644 (file)
index 0000000..9893509
--- /dev/null
@@ -0,0 +1,267 @@
+import { PlayerState } from './constants';
+import { MultiVideoPlayer, VideoPlayerOptions } from './main';
+import { Logger } from "./utils";
+
+// eslint-disable-next-line @typescript-eslint/no-empty-function
+const noop = () => { };
+class VideoPlayer {
+  public videoId: string;
+  public videoPlayerConfig: VideoPlayerOptions;
+  // video js player
+  public videojs: any;
+  private player: MultiVideoPlayer;
+  public controls: boolean;
+  public main: boolean;
+  public videoPlayerArea: Element | null;
+  public videoElement: HTMLVideoElement | null;
+  public videoState: PlayerState;
+  private readonly _startSeconds: number;
+  private readonly loop: boolean;
+  public isPlaying: boolean;
+  constructor(player: MultiVideoPlayer, videoPlayerConfig: VideoPlayerOptions) {
+    this.videoId = Math.random().toString(36).substring(2, 15);
+    this.player = player;
+    this.videoPlayerConfig = videoPlayerConfig;
+    this.main = this.videoPlayerConfig.main ?? false;
+    this.controls = this.videoPlayerConfig.controls ?? player.options.controls ?? true;
+    this.loop = player.options.loop ?? false;
+
+    this._startSeconds = parseFloat(String(this.videoPlayerConfig.startSeconds ?? 0));
+
+    this.videoPlayerArea = null;
+    this.videoElement = null;
+    this.videoState = PlayerState.LOADING;
+    this.isPlaying = false;
+
+    this.mount();
+  }
+
+  private mount() {
+    this.render();
+    this.videoElement = document.querySelector(`#video_player_${this.videoId} video`);
+
+    if (!this.videoElement) {
+      return Logger.debug('video element not found');
+    }
+
+    // if we do not setTimeout here, controls act weirdly (no explanation...)
+    setTimeout(() => {
+      this.setupVideoElement({ controls: this.controls, main: this.main });
+    }, 1);
+
+
+    console.log("mount")
+    console.log(this.videoElement, this.controls)
+
+    this.videoElement.addEventListener('play', this.onStateChange.bind(this, PlayerState.PLAYING), false);
+    this.videoElement.addEventListener('pause', this.onStateChange.bind(this, PlayerState.PAUSE), false);
+    this.videoElement.addEventListener('seeking', this.onSeeking.bind(this), false);
+    this.videoElement.addEventListener('timeupdate', this.onTimeUpdate.bind(this), false);
+    this.videoElement.addEventListener('loadeddata', this.onReady.bind(this), false);
+    this.videoElement.addEventListener('canplaythrough', this.onStateChange.bind(this, PlayerState.UNSTARTED), false);
+
+    this.videoElement.addEventListener('ended', this.onStateChange.bind(this, PlayerState.ENDED), false);
+    this.videoElement.addEventListener('waiting', this.onStateChange.bind(this, PlayerState.BUFFERING), false);
+  }
+
+  private onReady() {
+    console.log("READY")
+    Logger.debug(this.videoId, '::[onReady]');
+    this.timeTo(0);
+    this.player.onReady();
+  }
+
+  private onSeeking() {
+    Logger.debug(this.videoId, '::[onSeeking]');
+    if (!this.main) {
+      return;
+    }
+    this.player.onTimeUpdate(this, this.getPlayedTime());
+  }
+
+  private onTimeUpdate() {
+    if (!this.main) {
+      return;
+    }
+    this.player.onTimeUpdate(this, this.getPlayedTime());
+  }
+
+  private onStateChange(state: PlayerState) {
+    console.log("on state change", state)
+    Logger.debug(this.videoId, '::[onStateChange]', state);
+    this.videoState = state;
+
+    const statesToPropagate = [
+      PlayerState.BUFFERING,
+      PlayerState.PLAYING,
+      PlayerState.PAUSE,
+      PlayerState.ENDED,
+      PlayerState.UNSTARTED,
+    ];
+
+    if (state === PlayerState.PLAYING) {
+      this.isPlaying = true;
+      if (!this.main) {
+        return;
+      }
+    }
+
+    if (state === PlayerState.PAUSE) {
+      this.isPlaying = false;
+      if (!this.main) {
+        return;
+      }
+    }
+
+    if (statesToPropagate.includes(state)) {
+      console.log("progate")
+      this.player.changeState(state, this);
+    }
+  }
+
+  private render() {
+    console.log("render")
+    // if video area is defined, add video to area
+    this.videoPlayerArea = document.querySelector(this.videoPlayerConfig.id);
+    if (!this.videoPlayerArea) {
+      return Logger.debug('id not found: ', this.videoPlayerConfig.id);
+    }
+    this.videoPlayerArea.innerHTML = `
+        <video 
+            id="video_player_${this.videoId}"
+            class="video-js vjs-theme-fantasy"
+            controls
+            preload="auto"
+            data-setup='{"playbackRates": [1, 1.25, 1.5, 2]}'
+            style="width:100%;height:inherit;"
+        >
+          <source src="${this.videoPlayerConfig.initialSrc}" type="video/mp4" />
+          <p class="vjs-no-js">
+            To view this video please enable JavaScript, and consider upgrading to a
+            web browser that
+            <a href="https://videojs.com/html5-video-support/" target="_blank"
+              >supports HTML5 video</a
+            >
+          </p>
+        </video>
+    `;
+    // console.log("test")
+    this.videojs = window.videojs(`video_player_${this.videoId}`);
+    this.videojs.controls(true)
+    // console.log(player);
+  }
+
+  private setupVideoElement(options: { controls?: boolean, main: boolean }) {
+    if (options.controls !== undefined)
+      this.setControls(options.controls);
+    this.setMain(options.main);
+  }
+
+  public _swap(videoPlayer: VideoPlayer) {
+    if (!this.videoElement || !videoPlayer.videoElement) return;
+    const nodeA = this.videoElement.parentElement;
+    const nodeB = videoPlayer.videoElement.parentElement;
+    const parentA = nodeA!.parentNode;
+    const parentB = nodeB!.parentNode;
+
+    // const newvideojs = videoPlayer.videojs;
+    // videoPlayer.videojs = this.videojs;
+    // this.videojs = newvideojs;
+
+    if (!parentA || !parentB) throw new Error('Parent node not found');
+
+    const siblingA = nodeA!.nextSibling === nodeB ? nodeA : nodeA!.nextSibling;
+    parentB.insertBefore(nodeA!, nodeB);
+    parentA.insertBefore(nodeB!, siblingA);
+
+    const thisControls = this.controls;
+    const thisMain = this.main;
+    this.setupVideoElement({ controls: videoPlayer.controls, main: videoPlayer.main });
+    videoPlayer.setupVideoElement({ controls: thisControls, main: thisMain });
+
+    // this.videojs.dispose();
+    // videoPlayer.videojs.dispose();
+    // this.videojs = videojs(`video_player_${this.videoId}`);
+    // videoPlayer.videojs = videojs(`video_player_${videoPlayer.videoId}`);
+  }
+
+  /**
+   * -------------------------------
+   * PUBLIC METHODS FOR VIDEO PLAYER
+   * -------------------------------
+   */
+
+  public async play() {
+    if (!this.videoElement) return;
+    if (this.videoState === PlayerState.PLAYING) return;
+    await this.videoElement.play().catch(noop);
+  }
+
+  public async pause() {
+    if (!this.videoElement) return;
+    if (this.videoState === PlayerState.PAUSE) return;
+    await this.videoElement.pause();
+  }
+
+  public stop() {
+    if (!this.videoElement) return;
+    this.videoElement.pause();
+    this.timeTo(this.getDuration() - 0.5);
+  }
+
+  public setControls(controls: boolean) {
+    if (!this.videoElement) return;
+    console.log(this.videojs)
+
+    console.log("set controls", controls)
+    this.videojs.controls(controls)
+    // this.videojs.player.userActive(false)
+    // this.videoElement.controls = controls;
+    this.controls = controls;
+  }
+
+  public setMain(main: boolean) {
+    this.main = main;
+  }
+
+  public timeTo(time: number) {
+    if (!this.videoElement) return;
+    time = parseFloat(time.toString());
+    time = (time + this._startSeconds);
+
+    if (time >= this.getDuration()) {
+      this.videoElement.currentTime = this.getDuration() - 0.05;
+      Logger.debug('timeTo: time is greater than duration');
+      this.pause().then(noop);
+      return;
+    }
+
+    Logger.debug('set time to: ', time);
+    this.videoElement.currentTime = time;
+  }
+
+  public getDuration() {
+    return (this.videoElement?.duration || 0);
+  }
+
+  public getPlayLength() {
+    return this.getDuration() - this._startSeconds;
+  }
+
+  public getCurrentTime() {
+    return (this.videoElement?.currentTime || 0);
+  }
+
+  public getPlayedTime() {
+    const time = this.getCurrentTime() - this._startSeconds;
+    return Math.max(time, 0);
+  }
+
+  public isEnded() {
+    const diff = Math.abs(this.getCurrentTime() - this.getDuration());
+    return diff < 0.1;
+
+  }
+}
+
+export default VideoPlayer;
\ No newline at end of file
diff --git a/teleforma/src/js/video/constants.ts b/teleforma/src/js/video/constants.ts
new file mode 100644 (file)
index 0000000..4c4ff07
--- /dev/null
@@ -0,0 +1,9 @@
+export enum PlayerState {
+    UNSTARTED = 'UNSARTED',
+    ENDED = 'ENDED',
+    PLAYING = 'PLAYING',
+    PAUSE = 'PAUSE',
+    BUFFERING = 'BUFFERING',
+    LOADING = 'LOADING',
+    LOADED = 'LOADED',
+  }
\ No newline at end of file
diff --git a/teleforma/src/js/video/main.d.ts b/teleforma/src/js/video/main.d.ts
new file mode 100644 (file)
index 0000000..1eded48
--- /dev/null
@@ -0,0 +1,35 @@
+// define type for MultiVideoPlayer class
+import VideoPlayer from "./video/VideoPlayer";
+
+type MultiVideoPlayer = {
+  options: MultiVideoPlayerOptions,
+  $container: Element | null,
+  videoPlayers: VideoPlayer[],
+  mount(): void,
+  addVideoPlayers(videos: VideoPlayerOptions[] | undefined): void,
+  addVideoPlayer(video: VideoPlayerOptions): void,
+  changeState(state: PlayerState, videoPlayer?: VideoPlayer): void;
+  timeTo(seconds: number): void;
+  onTimeUpdate(videoPlayer: VideoPlayer, time: number): void;
+  play(): Promise<void>;
+  onReady(): void;
+}
+
+type VideoPlayerOptions = {
+  id: string,
+  controls?: boolean,
+  initialSrc: string,
+  startSeconds?: number,
+  main?: boolean,
+}
+
+type MultiVideoPlayerOptions = {
+  videoPlayers?: VideoPlayerOptions[],
+  videos?: VideoOptions[],
+  area?: string
+  template?: string,
+  controls?: boolean,
+  loop?: boolean,
+}
+
+type PlayerState = string;
\ No newline at end of file
diff --git a/teleforma/src/js/video/utils.ts b/teleforma/src/js/video/utils.ts
new file mode 100644 (file)
index 0000000..983d113
--- /dev/null
@@ -0,0 +1,10 @@
+const ENABLE_DEBUG = true;
+export const Logger = {
+  debug: (...args: unknown[]) => {
+    if (!ENABLE_DEBUG) return;
+    console.debug(...args);
+  },
+  error: (...args: unknown[]) => {
+    console.error(...args);
+  }
+};
\ No newline at end of file
index 19ab5421e3b18e5b02b672181fbbc6b82549a67f..f1868bb611ddef314e0f0762fead43cbc59c7b94 100644 (file)
@@ -9,32 +9,32 @@
     "lint": "vue-cli-service lint"
   },
   "dependencies": {
+    "@vue/compat": "^3.4.15",
+    "@vue/compiler-sfc": "^3.4.15",
     "axios": "^0.21.1",
-    "core-js": "^3.6.5",
+    "core-js": "^3.35.1",
     "date-fns": "^2.28.0",
     "extract-css": "^2.0.0",
     "path": "^0.12.7",
-    "vue": "^2.6.11",
-    "vue-advanced-chat": "1.5.8",
-    "vue-class-component": "^7.2.3",
-    "vue-property-decorator": "^9.1.2",
+    "vue": "^3.4.15",
+    "vue-advanced-chat": "^2.0.10",
     "webpack-manifest-plugin": "^3.1.1"
   },
   "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "^4.18.0",
-    "@typescript-eslint/parser": "^4.18.0",
-    "@vue/cli-plugin-babel": "^4.5.0",
-    "@vue/cli-plugin-eslint": "^4.5.0",
-    "@vue/cli-plugin-typescript": "^4.5.0",
-    "@vue/cli-service": "^4.5.0",
+    "@typescript-eslint/eslint-plugin": "^5.4.0",
+    "@typescript-eslint/parser": "^5.4.0",
+    "@vue/cli-plugin-babel": "~5.0.8",
+    "@vue/cli-plugin-eslint": "~5.0.8",
+    "@vue/cli-plugin-typescript": "~5.0.8",
+    "@vue/cli-service": "~5.0.8",
     "@vue/eslint-config-prettier": "^6.0.0",
-    "@vue/eslint-config-typescript": "^7.0.0",
-    "eslint": "^6.7.2",
-    "eslint-plugin-prettier": "^3.3.1",
-    "eslint-plugin-vue": "^6.2.2",
-    "prettier": "^2.2.1",
-    "typescript": "~4.1.5",
-    "vue-template-compiler": "^2.6.11"
+    "@vue/eslint-config-typescript": "^9.1.0",
+    "eslint": "^7.32.0",
+    "eslint-config-prettier": "^8.3.0",
+    "eslint-plugin-prettier": "^4.0.0",
+    "eslint-plugin-vue": "^8.0.3",
+    "prettier": "^2.4.1",
+    "typescript": "~4.5.5"
   },
   "eslintConfig": {
     "root": true,
       "@vue/prettier/@typescript-eslint"
     ],
     "parserOptions": {
-      "ecmaVersion": 2020
+      "ecmaVersion": 2020,
+      "parser": "@typescript-eslint/parser"
     },
     "rules": {
       "prettier/prettier": 0,
       "@typescript-eslint/no-explicit-any": "off",
       "@typescript-eslint/explicit-module-boundary-types": "off",
       "@typescript-eslint/no-non-null-assertion": "off",
+      "@typescript-eslint/ban-ts-ignore": "off",
       "no-debugger": "warn"
     }
   },
index 50942374c0ac37f790eade62b8145352252e05ec..7bd07d85c615669004b63994b338cc449c48ebce 100644 (file)
@@ -1,5 +1,6 @@
 const path = require("path");
 const outputDir = '../static/teleforma/dist';
+const webpack = require('webpack');
 
 
 module.exports = {
@@ -10,21 +11,47 @@ module.exports = {
     configureWebpack: {
         devServer: {
             host: "npm3000.dockdev.pilotsystems.net",
-            public: "https://npm3000.dockdev.pilotsystems.net",
+
             https: false,
             port: 3000,
             headers: {
                 'Access-Control-Allow-Origin': '*'
             },
-            disableHostCheck: true
+            client: {
+                webSocketURL: "https://npm3000.dockdev.pilotsystems.net",
+            },
+            allowedHosts: "all",
         },
         output: {
             filename: 'app.js',
         },
-        
+        plugins: [
+            new webpack.DefinePlugin({
+                // Vue CLI is in maintenance mode, and probably won't merge my PR to fix this in their tooling
+                // https://github.com/vuejs/vue-cli/pull/7443
+                __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false',
+            })
+        ],
+
     },
     outputDir: outputDir,
     chainWebpack: config => {
+        config.resolve.alias.set('vue', '@vue/compat')
+
+        config.module
+            .rule("vue")
+            .use("vue-loader")
+            .tap((options) => {
+                return {
+                    ...options,
+                    compilerOptions: {
+                        compatConfig: {
+                            MODE: 2
+                        },
+                        isCustomElement: tagName => tagName === 'vue-advanced-chat'
+                    }
+                }
+            })
         config
             .entry("app")
             .clear()
index c2df73abc9dc180d2d6535154ec1a94b88695092..07add61f25275a4a49e46d08c2004136ef2bac7c 100644 (file)
@@ -2,6 +2,35 @@
 # yarn lockfile v1
 
 
+"@aashutoshrathi/word-wrap@^1.2.3":
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+  integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+
+"@achrinza/node-ipc@^9.2.5":
+  version "9.2.8"
+  resolved "https://registry.yarnpkg.com/@achrinza/node-ipc/-/node-ipc-9.2.8.tgz#aabfe9fe84406c90bfb7319d5e68b5b517dd8686"
+  integrity sha512-DSzEEkbMYbAUVlhy7fg+BzccoRuSQzqHbIPGxGv19OJ2WKwS3/9ChAnQcII4g+GujcHhyJ8BUuOVAx/S5uAfQg==
+  dependencies:
+    "@node-ipc/js-queue" "2.0.3"
+    event-pubsub "4.3.0"
+    js-message "1.0.7"
+
+"@ampproject/remapping@^2.2.0":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+  integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
+  dependencies:
+    "@jridgewell/gen-mapping" "^0.3.0"
+    "@jridgewell/trace-mapping" "^0.3.9"
+
+"@babel/code-frame@7.12.11":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+  dependencies:
+    "@babel/highlight" "^7.10.4"
+
 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.8.3":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
   dependencies:
     "@babel/highlight" "^7.12.13"
 
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58"
-  integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==
-
-"@babel/core@^7.11.0":
-  version "7.14.3"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
-  integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
+"@babel/code-frame@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+  integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
   dependencies:
-    "@babel/code-frame" "^7.12.13"
-    "@babel/generator" "^7.14.3"
-    "@babel/helper-compilation-targets" "^7.13.16"
-    "@babel/helper-module-transforms" "^7.14.2"
-    "@babel/helpers" "^7.14.0"
-    "@babel/parser" "^7.14.3"
-    "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.14.2"
-    "@babel/types" "^7.14.2"
-    convert-source-map "^1.7.0"
+    "@babel/highlight" "^7.23.4"
+    chalk "^2.4.2"
+
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+  integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
+
+"@babel/core@^7.12.16":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1"
+  integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==
+  dependencies:
+    "@ampproject/remapping" "^2.2.0"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helpers" "^7.23.9"
+    "@babel/parser" "^7.23.9"
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
-    json5 "^2.1.2"
-    semver "^6.3.0"
-    source-map "^0.5.0"
+    json5 "^2.2.3"
+    semver "^6.3.1"
 
-"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
+"@babel/generator@^7.14.2":
   version "7.14.3"
   resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
   integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
     jsesc "^2.5.1"
     source-map "^0.5.0"
 
-"@babel/helper-annotate-as-pure@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
-  integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==
-  dependencies:
-    "@babel/types" "^7.12.13"
-
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc"
-  integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==
+"@babel/generator@^7.23.6":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+  integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
   dependencies:
-    "@babel/helper-explode-assignable-expression" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.23.6"
+    "@jridgewell/gen-mapping" "^0.3.2"
+    "@jridgewell/trace-mapping" "^0.3.17"
+    jsesc "^2.5.1"
 
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4", "@babel/helper-compilation-targets@^7.9.6":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516"
-  integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==
+"@babel/helper-annotate-as-pure@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+  integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
   dependencies:
-    "@babel/compat-data" "^7.14.4"
-    "@babel/helper-validator-option" "^7.12.17"
-    browserslist "^4.16.6"
-    semver "^6.3.0"
+    "@babel/types" "^7.22.5"
 
-"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42"
-  integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
+  integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.12.13"
-    "@babel/helper-function-name" "^7.14.2"
-    "@babel/helper-member-expression-to-functions" "^7.13.12"
-    "@babel/helper-optimise-call-expression" "^7.12.13"
-    "@babel/helper-replace-supers" "^7.14.4"
-    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/types" "^7.22.15"
 
-"@babel/helper-create-regexp-features-plugin@^7.12.13":
-  version "7.14.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688"
-  integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA==
+"@babel/helper-compilation-targets@^7.12.16", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+  integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.12.13"
-    regexpu-core "^4.7.1"
-
-"@babel/helper-define-polyfill-provider@^0.2.2":
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
-  integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
+    "@babel/compat-data" "^7.23.5"
+    "@babel/helper-validator-option" "^7.23.5"
+    browserslist "^4.22.2"
+    lru-cache "^5.1.1"
+    semver "^6.3.1"
+
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.9":
+  version "7.23.10"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea"
+  integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-function-name" "^7.23.0"
+    "@babel/helper-member-expression-to-functions" "^7.23.0"
+    "@babel/helper-optimise-call-expression" "^7.22.5"
+    "@babel/helper-replace-supers" "^7.22.20"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    semver "^6.3.1"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5":
+  version "7.22.15"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
+  integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    regexpu-core "^5.3.1"
+    semver "^6.3.1"
+
+"@babel/helper-define-polyfill-provider@^0.5.0":
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b"
+  integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==
   dependencies:
-    "@babel/helper-compilation-targets" "^7.13.0"
-    "@babel/helper-module-imports" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/traverse" "^7.13.0"
+    "@babel/helper-compilation-targets" "^7.22.6"
+    "@babel/helper-plugin-utils" "^7.22.5"
     debug "^4.1.1"
     lodash.debounce "^4.0.8"
     resolve "^1.14.2"
-    semver "^6.1.2"
 
-"@babel/helper-explode-assignable-expression@^7.12.13":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f"
-  integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==
-  dependencies:
-    "@babel/types" "^7.13.0"
+"@babel/helper-environment-visitor@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
 
-"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2":
+"@babel/helper-function-name@^7.14.2":
   version "7.14.2"
   resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
   integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
     "@babel/template" "^7.12.13"
     "@babel/types" "^7.14.2"
 
+"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+  dependencies:
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.23.0"
+
 "@babel/helper-get-function-arity@^7.12.13":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
   dependencies:
     "@babel/types" "^7.12.13"
 
-"@babel/helper-hoist-variables@^7.13.0":
-  version "7.13.16"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30"
-  integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==
+"@babel/helper-hoist-variables@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+  integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
   dependencies:
-    "@babel/traverse" "^7.13.15"
-    "@babel/types" "^7.13.16"
+    "@babel/types" "^7.22.5"
 
-"@babel/helper-member-expression-to-functions@^7.13.12":
-  version "7.13.12"
-  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
-  integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+  integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
   dependencies:
-    "@babel/types" "^7.13.12"
+    "@babel/types" "^7.23.0"
 
-"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.8.3":
+"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13":
   version "7.13.12"
   resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
   integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
   dependencies:
     "@babel/types" "^7.13.12"
 
-"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
-  integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
+"@babel/helper-module-imports@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+  integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
   dependencies:
-    "@babel/helper-module-imports" "^7.13.12"
-    "@babel/helper-replace-supers" "^7.13.12"
-    "@babel/helper-simple-access" "^7.13.12"
-    "@babel/helper-split-export-declaration" "^7.12.13"
-    "@babel/helper-validator-identifier" "^7.14.0"
-    "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.14.2"
-    "@babel/types" "^7.14.2"
+    "@babel/types" "^7.22.15"
 
-"@babel/helper-optimise-call-expression@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
-  integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
+"@babel/helper-module-transforms@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+  integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
   dependencies:
-    "@babel/types" "^7.12.13"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-simple-access" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/helper-validator-identifier" "^7.22.20"
+
+"@babel/helper-optimise-call-expression@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+  integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
+  dependencies:
+    "@babel/types" "^7.22.5"
 
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
   version "7.13.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
   integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
 
-"@babel/helper-remap-async-to-generator@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
-  integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==
+"@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+  integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
+
+"@babel/helper-remap-async-to-generator@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
+  integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.12.13"
-    "@babel/helper-wrap-function" "^7.13.0"
-    "@babel/types" "^7.13.0"
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-wrap-function" "^7.22.20"
 
-"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836"
-  integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==
+"@babel/helper-replace-supers@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+  integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
   dependencies:
-    "@babel/helper-member-expression-to-functions" "^7.13.12"
-    "@babel/helper-optimise-call-expression" "^7.12.13"
-    "@babel/traverse" "^7.14.2"
-    "@babel/types" "^7.14.4"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-member-expression-to-functions" "^7.22.15"
+    "@babel/helper-optimise-call-expression" "^7.22.5"
 
-"@babel/helper-simple-access@^7.13.12":
-  version "7.13.12"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
-  integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
+"@babel/helper-simple-access@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+  integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
   dependencies:
-    "@babel/types" "^7.13.12"
+    "@babel/types" "^7.22.5"
 
-"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
-  integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+  integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
   dependencies:
-    "@babel/types" "^7.12.1"
+    "@babel/types" "^7.22.5"
 
 "@babel/helper-split-export-declaration@^7.12.13":
   version "7.12.13"
   dependencies:
     "@babel/types" "^7.12.13"
 
-"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0":
+"@babel/helper-split-export-declaration@^7.22.6":
+  version "7.22.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+  dependencies:
+    "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+  integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
+"@babel/helper-validator-identifier@^7.14.0":
   version "7.14.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
   integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
 
-"@babel/helper-validator-option@^7.12.17":
-  version "7.12.17"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
-  integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
+"@babel/helper-validator-identifier@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
 
-"@babel/helper-wrap-function@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"
-  integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==
+"@babel/helper-validator-option@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+  integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
+
+"@babel/helper-wrap-function@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569"
+  integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==
   dependencies:
-    "@babel/helper-function-name" "^7.12.13"
-    "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.13.0"
-    "@babel/types" "^7.13.0"
+    "@babel/helper-function-name" "^7.22.5"
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.22.19"
 
-"@babel/helpers@^7.14.0":
-  version "7.14.0"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
-  integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
+"@babel/helpers@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d"
+  integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==
   dependencies:
-    "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.14.0"
-    "@babel/types" "^7.14.0"
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+  integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.22.20"
+    chalk "^2.4.2"
+    js-tokens "^4.0.0"
 
 "@babel/highlight@^7.12.13":
   version "7.14.0"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3":
+"@babel/parser@^7.12.13", "@babel/parser@^7.14.2":
   version "7.14.4"
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18"
   integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==
 
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
-  version "7.13.12"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
-  integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
-    "@babel/plugin-proposal-optional-chaining" "^7.13.12"
-
-"@babel/plugin-proposal-async-generator-functions@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e"
-  integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-remap-async-to-generator" "^7.13.0"
-    "@babel/plugin-syntax-async-generators" "^7.8.4"
-
-"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.8.3":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
-  integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==
-  dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.13.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
-
-"@babel/plugin-proposal-class-static-block@^7.14.3":
-  version "7.14.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360"
-  integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==
-  dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.14.3"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-class-static-block" "^7.12.13"
-
-"@babel/plugin-proposal-decorators@^7.8.3":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz#e68c3c5e4a6a08834456568256fc3e71b93590cf"
-  integrity sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw==
-  dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.14.2"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-decorators" "^7.12.13"
-
-"@babel/plugin-proposal-dynamic-import@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f"
-  integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-
-"@babel/plugin-proposal-export-namespace-from@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791"
-  integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-
-"@babel/plugin-proposal-json-strings@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c"
-  integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-json-strings" "^7.8.3"
-
-"@babel/plugin-proposal-logical-assignment-operators@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7"
-  integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546"
-  integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-
-"@babel/plugin-proposal-numeric-separator@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e"
-  integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+"@babel/parser@^7.23.6", "@babel/parser@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
+  integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
 
-"@babel/plugin-proposal-object-rest-spread@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4"
-  integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a"
+  integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==
   dependencies:
-    "@babel/compat-data" "^7.14.4"
-    "@babel/helper-compilation-targets" "^7.14.4"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
-    "@babel/plugin-transform-parameters" "^7.14.2"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-proposal-optional-catch-binding@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717"
-  integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d"
+  integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/plugin-transform-optional-chaining" "^7.23.3"
 
-"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e"
-  integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7":
+  version "7.23.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b"
+  integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
-    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-proposal-private-methods@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787"
-  integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==
+"@babel/plugin-proposal-class-properties@^7.12.13":
+  version "7.18.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
+  integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
   dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.13.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-create-class-features-plugin" "^7.18.6"
+    "@babel/helper-plugin-utils" "^7.18.6"
 
-"@babel/plugin-proposal-private-property-in-object@^7.14.0":
-  version "7.14.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636"
-  integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==
+"@babel/plugin-proposal-decorators@^7.12.13":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz#126d947d62ee72022ec46813983c6dd861456fa3"
+  integrity sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.12.13"
-    "@babel/helper-create-class-features-plugin" "^7.14.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
+    "@babel/helper-create-class-features-plugin" "^7.23.9"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-decorators" "^7.23.3"
 
-"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"
-  integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.12.13"
+"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
+  version "7.21.0-placeholder-for-preset-env.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
+  integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
 
 "@babel/plugin-syntax-async-generators@^7.8.4":
   version "7.8.4"
   dependencies:
     "@babel/helper-plugin-utils" "^7.12.13"
 
-"@babel/plugin-syntax-class-static-block@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c"
-  integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+  integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.14.5"
 
-"@babel/plugin-syntax-decorators@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648"
-  integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==
+"@babel/plugin-syntax-decorators@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca"
+  integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
 "@babel/plugin-syntax-dynamic-import@^7.8.3":
   version "7.8.3"
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.3"
 
+"@babel/plugin-syntax-import-assertions@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc"
+  integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-attributes@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06"
+  integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-meta@^7.10.4":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+  integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
 "@babel/plugin-syntax-json-strings@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3":
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15"
   integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==
   dependencies:
     "@babel/helper-plugin-utils" "^7.12.13"
 
+"@babel/plugin-syntax-jsx@^7.12.13":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
+  integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-private-property-in-object@^7.14.0":
-  version "7.14.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b"
-  integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+  integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.14.5"
 
-"@babel/plugin-syntax-top-level-await@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
-  integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+  integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.14.5"
 
-"@babel/plugin-transform-arrow-functions@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae"
-  integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==
+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
+  version "7.18.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
+  integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+    "@babel/helper-plugin-utils" "^7.18.6"
 
-"@babel/plugin-transform-async-to-generator@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f"
-  integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==
+"@babel/plugin-transform-arrow-functions@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b"
+  integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==
   dependencies:
-    "@babel/helper-module-imports" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-remap-async-to-generator" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-block-scoped-functions@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4"
-  integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==
+"@babel/plugin-transform-async-generator-functions@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce"
+  integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-remap-async-to-generator" "^7.22.20"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
 
-"@babel/plugin-transform-block-scoping@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8"
-  integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+"@babel/plugin-transform-async-to-generator@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa"
+  integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==
+  dependencies:
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-remap-async-to-generator" "^7.22.20"
+
+"@babel/plugin-transform-block-scoped-functions@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77"
+  integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-block-scoping@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5"
+  integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-properties@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48"
+  integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-static-block@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5"
+  integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-transform-classes@^7.23.8":
+  version "7.23.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92"
+  integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-function-name" "^7.23.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-replace-supers" "^7.22.20"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    globals "^11.1.0"
 
-"@babel/plugin-transform-classes@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a"
-  integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==
+"@babel/plugin-transform-computed-properties@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474"
+  integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.12.13"
-    "@babel/helper-function-name" "^7.14.2"
-    "@babel/helper-optimise-call-expression" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-replace-supers" "^7.14.4"
-    "@babel/helper-split-export-declaration" "^7.12.13"
-    globals "^11.1.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/template" "^7.22.15"
 
-"@babel/plugin-transform-computed-properties@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed"
-  integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==
+"@babel/plugin-transform-destructuring@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311"
+  integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-destructuring@^7.14.4":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed"
-  integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==
+"@babel/plugin-transform-dotall-regex@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50"
+  integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad"
-  integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==
+"@babel/plugin-transform-duplicate-keys@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce"
+  integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==
   dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-duplicate-keys@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de"
-  integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==
+"@babel/plugin-transform-dynamic-import@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143"
+  integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
 
-"@babel/plugin-transform-exponentiation-operator@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1"
-  integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==
+"@babel/plugin-transform-exponentiation-operator@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18"
+  integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==
   dependencies:
-    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-for-of@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062"
-  integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==
+"@babel/plugin-transform-export-namespace-from@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191"
+  integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
 
-"@babel/plugin-transform-function-name@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051"
-  integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==
+"@babel/plugin-transform-for-of@^7.23.6":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e"
+  integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==
   dependencies:
-    "@babel/helper-function-name" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
 
-"@babel/plugin-transform-literals@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9"
-  integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==
+"@babel/plugin-transform-function-name@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc"
+  integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-function-name" "^7.23.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-member-expression-literals@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40"
-  integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==
+"@babel/plugin-transform-json-strings@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d"
+  integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
 
-"@babel/plugin-transform-modules-amd@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0"
-  integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==
+"@babel/plugin-transform-literals@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4"
+  integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==
   dependencies:
-    "@babel/helper-module-transforms" "^7.14.2"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    babel-plugin-dynamic-import-node "^2.3.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-modules-commonjs@^7.14.0":
-  version "7.14.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161"
-  integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==
+"@babel/plugin-transform-logical-assignment-operators@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5"
+  integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==
   dependencies:
-    "@babel/helper-module-transforms" "^7.14.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-simple-access" "^7.13.12"
-    babel-plugin-dynamic-import-node "^2.3.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
 
-"@babel/plugin-transform-modules-systemjs@^7.13.8":
-  version "7.13.8"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3"
-  integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==
+"@babel/plugin-transform-member-expression-literals@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc"
+  integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==
   dependencies:
-    "@babel/helper-hoist-variables" "^7.13.0"
-    "@babel/helper-module-transforms" "^7.13.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-validator-identifier" "^7.12.11"
-    babel-plugin-dynamic-import-node "^2.3.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-modules-umd@^7.14.0":
-  version "7.14.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34"
-  integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==
+"@babel/plugin-transform-modules-amd@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d"
+  integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==
   dependencies:
-    "@babel/helper-module-transforms" "^7.14.0"
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9"
-  integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==
+"@babel/plugin-transform-modules-commonjs@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4"
+  integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==
   dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-simple-access" "^7.22.5"
 
-"@babel/plugin-transform-new-target@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c"
-  integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==
+"@babel/plugin-transform-modules-systemjs@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be"
+  integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-hoist-variables" "^7.22.5"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-validator-identifier" "^7.22.20"
 
-"@babel/plugin-transform-object-super@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7"
-  integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==
+"@babel/plugin-transform-modules-umd@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9"
+  integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
-    "@babel/helper-replace-supers" "^7.12.13"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-parameters@^7.14.2":
-  version "7.14.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31"
-  integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5":
+  version "7.22.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f"
+  integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-property-literals@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81"
-  integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==
+"@babel/plugin-transform-new-target@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980"
+  integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-regenerator@^7.13.15":
-  version "7.13.15"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39"
-  integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e"
+  integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==
   dependencies:
-    regenerator-transform "^0.14.2"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
 
-"@babel/plugin-transform-reserved-words@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
-  integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==
+"@babel/plugin-transform-numeric-separator@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29"
+  integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
 
-"@babel/plugin-transform-runtime@^7.11.0":
-  version "7.14.3"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf"
-  integrity sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==
+"@babel/plugin-transform-object-rest-spread@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83"
+  integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==
   dependencies:
-    "@babel/helper-module-imports" "^7.13.12"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    babel-plugin-polyfill-corejs2 "^0.2.0"
-    babel-plugin-polyfill-corejs3 "^0.2.0"
-    babel-plugin-polyfill-regenerator "^0.2.0"
-    semver "^6.3.0"
+    "@babel/compat-data" "^7.23.3"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.23.3"
 
-"@babel/plugin-transform-shorthand-properties@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad"
-  integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==
+"@babel/plugin-transform-object-super@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd"
+  integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-replace-supers" "^7.22.20"
 
-"@babel/plugin-transform-spread@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd"
-  integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==
+"@babel/plugin-transform-optional-catch-binding@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017"
+  integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
 
-"@babel/plugin-transform-sticky-regex@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f"
-  integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==
+"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017"
+  integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
 
-"@babel/plugin-transform-template-literals@^7.13.0":
-  version "7.13.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d"
-  integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==
+"@babel/plugin-transform-parameters@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af"
+  integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-typeof-symbol@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f"
-  integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==
+"@babel/plugin-transform-private-methods@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4"
+  integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-create-class-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-unicode-escapes@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74"
-  integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==
+"@babel/plugin-transform-private-property-in-object@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5"
+  integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-create-class-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
 
-"@babel/plugin-transform-unicode-regex@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac"
-  integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==
+"@babel/plugin-transform-property-literals@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875"
+  integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==
   dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
-    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/preset-env@^7.11.0":
-  version "7.14.4"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d"
-  integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==
-  dependencies:
-    "@babel/compat-data" "^7.14.4"
-    "@babel/helper-compilation-targets" "^7.14.4"
-    "@babel/helper-plugin-utils" "^7.13.0"
-    "@babel/helper-validator-option" "^7.12.17"
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"
-    "@babel/plugin-proposal-async-generator-functions" "^7.14.2"
-    "@babel/plugin-proposal-class-properties" "^7.13.0"
-    "@babel/plugin-proposal-class-static-block" "^7.14.3"
-    "@babel/plugin-proposal-dynamic-import" "^7.14.2"
-    "@babel/plugin-proposal-export-namespace-from" "^7.14.2"
-    "@babel/plugin-proposal-json-strings" "^7.14.2"
-    "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2"
-    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2"
-    "@babel/plugin-proposal-numeric-separator" "^7.14.2"
-    "@babel/plugin-proposal-object-rest-spread" "^7.14.4"
-    "@babel/plugin-proposal-optional-catch-binding" "^7.14.2"
-    "@babel/plugin-proposal-optional-chaining" "^7.14.2"
-    "@babel/plugin-proposal-private-methods" "^7.13.0"
-    "@babel/plugin-proposal-private-property-in-object" "^7.14.0"
-    "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
+"@babel/plugin-transform-regenerator@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c"
+  integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    regenerator-transform "^0.15.2"
+
+"@babel/plugin-transform-reserved-words@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8"
+  integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-runtime@^7.12.15":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz#2c64d0680fc8e09e1dfe8fd5c646fe72abd82004"
+  integrity sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==
+  dependencies:
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    babel-plugin-polyfill-corejs2 "^0.4.8"
+    babel-plugin-polyfill-corejs3 "^0.9.0"
+    babel-plugin-polyfill-regenerator "^0.5.5"
+    semver "^6.3.1"
+
+"@babel/plugin-transform-shorthand-properties@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210"
+  integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-spread@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c"
+  integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+
+"@babel/plugin-transform-sticky-regex@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04"
+  integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-template-literals@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07"
+  integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-typeof-symbol@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4"
+  integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-escapes@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925"
+  integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-property-regex@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad"
+  integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-regex@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc"
+  integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-sets-regex@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e"
+  integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/preset-env@^7.12.16":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669"
+  integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==
+  dependencies:
+    "@babel/compat-data" "^7.23.5"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-validator-option" "^7.23.5"
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3"
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3"
+    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7"
+    "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
     "@babel/plugin-syntax-async-generators" "^7.8.4"
     "@babel/plugin-syntax-class-properties" "^7.12.13"
-    "@babel/plugin-syntax-class-static-block" "^7.12.13"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
     "@babel/plugin-syntax-dynamic-import" "^7.8.3"
     "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+    "@babel/plugin-syntax-import-assertions" "^7.23.3"
+    "@babel/plugin-syntax-import-attributes" "^7.23.3"
+    "@babel/plugin-syntax-import-meta" "^7.10.4"
     "@babel/plugin-syntax-json-strings" "^7.8.3"
     "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
     "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
     "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
     "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-    "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
-    "@babel/plugin-syntax-top-level-await" "^7.12.13"
-    "@babel/plugin-transform-arrow-functions" "^7.13.0"
-    "@babel/plugin-transform-async-to-generator" "^7.13.0"
-    "@babel/plugin-transform-block-scoped-functions" "^7.12.13"
-    "@babel/plugin-transform-block-scoping" "^7.14.4"
-    "@babel/plugin-transform-classes" "^7.14.4"
-    "@babel/plugin-transform-computed-properties" "^7.13.0"
-    "@babel/plugin-transform-destructuring" "^7.14.4"
-    "@babel/plugin-transform-dotall-regex" "^7.12.13"
-    "@babel/plugin-transform-duplicate-keys" "^7.12.13"
-    "@babel/plugin-transform-exponentiation-operator" "^7.12.13"
-    "@babel/plugin-transform-for-of" "^7.13.0"
-    "@babel/plugin-transform-function-name" "^7.12.13"
-    "@babel/plugin-transform-literals" "^7.12.13"
-    "@babel/plugin-transform-member-expression-literals" "^7.12.13"
-    "@babel/plugin-transform-modules-amd" "^7.14.2"
-    "@babel/plugin-transform-modules-commonjs" "^7.14.0"
-    "@babel/plugin-transform-modules-systemjs" "^7.13.8"
-    "@babel/plugin-transform-modules-umd" "^7.14.0"
-    "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"
-    "@babel/plugin-transform-new-target" "^7.12.13"
-    "@babel/plugin-transform-object-super" "^7.12.13"
-    "@babel/plugin-transform-parameters" "^7.14.2"
-    "@babel/plugin-transform-property-literals" "^7.12.13"
-    "@babel/plugin-transform-regenerator" "^7.13.15"
-    "@babel/plugin-transform-reserved-words" "^7.12.13"
-    "@babel/plugin-transform-shorthand-properties" "^7.12.13"
-    "@babel/plugin-transform-spread" "^7.13.0"
-    "@babel/plugin-transform-sticky-regex" "^7.12.13"
-    "@babel/plugin-transform-template-literals" "^7.13.0"
-    "@babel/plugin-transform-typeof-symbol" "^7.12.13"
-    "@babel/plugin-transform-unicode-escapes" "^7.12.13"
-    "@babel/plugin-transform-unicode-regex" "^7.12.13"
-    "@babel/preset-modules" "^0.1.4"
-    "@babel/types" "^7.14.4"
-    babel-plugin-polyfill-corejs2 "^0.2.0"
-    babel-plugin-polyfill-corejs3 "^0.2.0"
-    babel-plugin-polyfill-regenerator "^0.2.0"
-    core-js-compat "^3.9.0"
-    semver "^6.3.0"
-
-"@babel/preset-modules@^0.1.4":
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
-  integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+    "@babel/plugin-syntax-top-level-await" "^7.14.5"
+    "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
+    "@babel/plugin-transform-arrow-functions" "^7.23.3"
+    "@babel/plugin-transform-async-generator-functions" "^7.23.9"
+    "@babel/plugin-transform-async-to-generator" "^7.23.3"
+    "@babel/plugin-transform-block-scoped-functions" "^7.23.3"
+    "@babel/plugin-transform-block-scoping" "^7.23.4"
+    "@babel/plugin-transform-class-properties" "^7.23.3"
+    "@babel/plugin-transform-class-static-block" "^7.23.4"
+    "@babel/plugin-transform-classes" "^7.23.8"
+    "@babel/plugin-transform-computed-properties" "^7.23.3"
+    "@babel/plugin-transform-destructuring" "^7.23.3"
+    "@babel/plugin-transform-dotall-regex" "^7.23.3"
+    "@babel/plugin-transform-duplicate-keys" "^7.23.3"
+    "@babel/plugin-transform-dynamic-import" "^7.23.4"
+    "@babel/plugin-transform-exponentiation-operator" "^7.23.3"
+    "@babel/plugin-transform-export-namespace-from" "^7.23.4"
+    "@babel/plugin-transform-for-of" "^7.23.6"
+    "@babel/plugin-transform-function-name" "^7.23.3"
+    "@babel/plugin-transform-json-strings" "^7.23.4"
+    "@babel/plugin-transform-literals" "^7.23.3"
+    "@babel/plugin-transform-logical-assignment-operators" "^7.23.4"
+    "@babel/plugin-transform-member-expression-literals" "^7.23.3"
+    "@babel/plugin-transform-modules-amd" "^7.23.3"
+    "@babel/plugin-transform-modules-commonjs" "^7.23.3"
+    "@babel/plugin-transform-modules-systemjs" "^7.23.9"
+    "@babel/plugin-transform-modules-umd" "^7.23.3"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
+    "@babel/plugin-transform-new-target" "^7.23.3"
+    "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4"
+    "@babel/plugin-transform-numeric-separator" "^7.23.4"
+    "@babel/plugin-transform-object-rest-spread" "^7.23.4"
+    "@babel/plugin-transform-object-super" "^7.23.3"
+    "@babel/plugin-transform-optional-catch-binding" "^7.23.4"
+    "@babel/plugin-transform-optional-chaining" "^7.23.4"
+    "@babel/plugin-transform-parameters" "^7.23.3"
+    "@babel/plugin-transform-private-methods" "^7.23.3"
+    "@babel/plugin-transform-private-property-in-object" "^7.23.4"
+    "@babel/plugin-transform-property-literals" "^7.23.3"
+    "@babel/plugin-transform-regenerator" "^7.23.3"
+    "@babel/plugin-transform-reserved-words" "^7.23.3"
+    "@babel/plugin-transform-shorthand-properties" "^7.23.3"
+    "@babel/plugin-transform-spread" "^7.23.3"
+    "@babel/plugin-transform-sticky-regex" "^7.23.3"
+    "@babel/plugin-transform-template-literals" "^7.23.3"
+    "@babel/plugin-transform-typeof-symbol" "^7.23.3"
+    "@babel/plugin-transform-unicode-escapes" "^7.23.3"
+    "@babel/plugin-transform-unicode-property-regex" "^7.23.3"
+    "@babel/plugin-transform-unicode-regex" "^7.23.3"
+    "@babel/plugin-transform-unicode-sets-regex" "^7.23.3"
+    "@babel/preset-modules" "0.1.6-no-external-plugins"
+    babel-plugin-polyfill-corejs2 "^0.4.8"
+    babel-plugin-polyfill-corejs3 "^0.9.0"
+    babel-plugin-polyfill-regenerator "^0.5.5"
+    core-js-compat "^3.31.0"
+    semver "^6.3.1"
+
+"@babel/preset-modules@0.1.6-no-external-plugins":
+  version "0.1.6-no-external-plugins"
+  resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+  integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
   dependencies:
     "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
-    "@babel/plugin-transform-dotall-regex" "^7.4.4"
     "@babel/types" "^7.4.4"
     esutils "^2.0.2"
 
-"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
+"@babel/regjsgen@^0.8.0":
+  version "0.8.0"
+  resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
+  integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
+
+"@babel/runtime@^7.12.13":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
+  integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
+  dependencies:
+    regenerator-runtime "^0.14.0"
+
+"@babel/runtime@^7.8.4":
   version "7.14.0"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6"
   integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==
     "@babel/parser" "^7.12.13"
     "@babel/types" "^7.12.13"
 
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
+"@babel/template@^7.22.15", "@babel/template@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a"
+  integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==
+  dependencies:
+    "@babel/code-frame" "^7.23.5"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
+
+"@babel/traverse@^7.0.0":
   version "7.14.2"
   resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
   integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.4.4":
+"@babel/traverse@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950"
+  integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==
+  dependencies:
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-function-name" "^7.23.0"
+    "@babel/helper-hoist-variables" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    debug "^4.3.1"
+    globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.2", "@babel/types@^7.4.4":
   version "7.14.4"
   resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0"
   integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==
     "@babel/helper-validator-identifier" "^7.14.0"
     to-fast-properties "^2.0.0"
 
-"@hapi/address@2.x.x":
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
-  integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
+"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002"
+  integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==
+  dependencies:
+    "@babel/helper-string-parser" "^7.23.4"
+    "@babel/helper-validator-identifier" "^7.22.20"
+    to-fast-properties "^2.0.0"
 
-"@hapi/bourne@1.x.x":
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
-  integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==
+"@discoveryjs/json-ext@0.5.7":
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
+  integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
+
+"@eslint-community/eslint-utils@^4.2.0":
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+  integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+  dependencies:
+    eslint-visitor-keys "^3.3.0"
 
-"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
-  version "8.5.1"
-  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
-  integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
+"@eslint-community/regexpp@^4.4.0":
+  version "4.10.0"
+  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
+  integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
 
-"@hapi/joi@^15.0.1":
-  version "15.1.1"
-  resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
-  integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==
+"@eslint/eslintrc@^0.4.3":
+  version "0.4.3"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
+  integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
   dependencies:
-    "@hapi/address" "2.x.x"
-    "@hapi/bourne" "1.x.x"
-    "@hapi/hoek" "8.x.x"
-    "@hapi/topo" "3.x.x"
+    ajv "^6.12.4"
+    debug "^4.1.1"
+    espree "^7.3.0"
+    globals "^13.9.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^3.13.1"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
 
-"@hapi/topo@3.x.x":
-  version "3.1.6"
-  resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
-  integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
+"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0":
+  version "9.3.0"
+  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
+  integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
+
+"@hapi/topo@^5.1.0":
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
+  integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
   dependencies:
-    "@hapi/hoek" "^8.3.0"
+    "@hapi/hoek" "^9.0.0"
 
-"@intervolga/optimize-cssnano-plugin@^1.0.5":
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8"
-  integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==
+"@humanwhocodes/config-array@^0.5.0":
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
+  integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
   dependencies:
-    cssnano "^4.0.0"
-    cssnano-preset-default "^4.0.0"
-    postcss "^7.0.0"
+    "@humanwhocodes/object-schema" "^1.2.0"
+    debug "^4.1.1"
+    minimatch "^3.0.4"
+
+"@humanwhocodes/object-schema@^1.2.0":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
 "@jonkemp/package-utils@^1.0.6":
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/@jonkemp/package-utils/-/package-utils-1.0.7.tgz#6550ea56c9bd61bb4161c99e7ca38b972ad3a25d"
   integrity sha512-OoK+K1RmhtS8SlORrlH7sW0CNdrnm0BxKNcv4pQIk6y6VORsHiX91gV3dh6XD2eS7J+iCXROcu5sGuH0tjmNEQ==
 
-"@mrmlnc/readdir-enhanced@^2.2.1":
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
-  integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+  integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
   dependencies:
-    call-me-maybe "^1.0.1"
-    glob-to-regexp "^0.3.0"
+    "@jridgewell/set-array" "^1.0.1"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+    "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@^3.1.0":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+  integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
+"@jridgewell/set-array@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+  integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@jridgewell/source-map@^0.3.3":
+  version "0.3.5"
+  resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91"
+  integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==
+  dependencies:
+    "@jridgewell/gen-mapping" "^0.3.0"
+    "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15":
+  version "1.4.15"
+  resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+  integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9":
+  version "0.3.22"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c"
+  integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==
+  dependencies:
+    "@jridgewell/resolve-uri" "^3.1.0"
+    "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@leichtgewicht/ip-codec@^2.0.1":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b"
+  integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==
+
+"@node-ipc/js-queue@2.0.3":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz#ac7fe33d766fa53e233ef8fedaf3443a01c5a4cd"
+  integrity sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==
+  dependencies:
+    easy-stack "1.0.1"
 
 "@nodelib/fs.scandir@2.1.5":
   version "2.1.5"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
   integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
 
-"@nodelib/fs.stat@^1.1.2":
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
-  integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
-
 "@nodelib/fs.walk@^1.2.3":
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2"
     "@nodelib/fs.scandir" "2.1.5"
     fastq "^1.6.0"
 
-"@soda/friendly-errors-webpack-plugin@^1.7.1":
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz#84751d82a93019d5c92c0cf0e45ac59087cd2240"
-  integrity sha512-RLotfx6k1+nfLacwNCenj7VnTMPxVwYKoGOcffMFoJDKM8tXzBiCN0hMHFJNnoAojduYAsxuiMm0EOMixgiRow==
+"@polka/url@^1.0.0-next.24":
+  version "1.0.0-next.24"
+  resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3"
+  integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==
+
+"@sideway/address@^4.1.5":
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5"
+  integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==
   dependencies:
-    chalk "^2.4.2"
-    error-stack-parser "^2.0.2"
-    string-width "^2.0.0"
-    strip-ansi "^5"
+    "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
+  integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
 
-"@soda/get-current-script@^1.0.0":
+"@sideway/pinpoint@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+  integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
+"@soda/friendly-errors-webpack-plugin@^1.8.0":
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85"
+  integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==
+  dependencies:
+    chalk "^3.0.0"
+    error-stack-parser "^2.0.6"
+    string-width "^4.2.3"
+    strip-ansi "^6.0.1"
+
+"@soda/get-current-script@^1.0.2":
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87"
   integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==
   resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
   integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
 
+"@trysound/sax@0.2.0":
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+  integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+
 "@types/body-parser@*":
   version "1.19.0"
   resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
     "@types/connect" "*"
     "@types/node" "*"
 
-"@types/connect-history-api-fallback@*":
-  version "1.3.4"
-  resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.4.tgz#8c0f0e6e5d8252b699f5a662f51bdf82fd9d8bb8"
-  integrity sha512-Kf8v0wljR5GSCOCF/VQWdV3ZhKOVA73drXtY3geMTQgHy9dgqQ0dLrf31M0hcuWkhFzK5sP0kkS3mJzcKVtZbw==
+"@types/bonjour@^3.5.9":
+  version "3.5.13"
+  resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956"
+  integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==
+  dependencies:
+    "@types/node" "*"
+
+"@types/connect-history-api-fallback@^1.3.5":
+  version "1.5.4"
+  resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3"
+  integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==
   dependencies:
     "@types/express-serve-static-core" "*"
     "@types/node" "*"
   dependencies:
     "@types/node" "*"
 
+"@types/debug@^4.0.0":
+  version "4.1.12"
+  resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917"
+  integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
+  dependencies:
+    "@types/ms" "*"
+
+"@types/eslint-scope@^3.7.3":
+  version "3.7.7"
+  resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5"
+  integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==
+  dependencies:
+    "@types/eslint" "*"
+    "@types/estree" "*"
+
+"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1":
+  version "8.56.2"
+  resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.2.tgz#1c72a9b794aa26a8b94ad26d5b9aa51c8a6384bb"
+  integrity sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==
+  dependencies:
+    "@types/estree" "*"
+    "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^1.0.5":
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+  integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+
 "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.21.tgz#a427278e106bca77b83ad85221eae709a3414d42"
     "@types/qs" "*"
     "@types/range-parser" "*"
 
+"@types/express-serve-static-core@^4.17.33":
+  version "4.17.43"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54"
+  integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==
+  dependencies:
+    "@types/node" "*"
+    "@types/qs" "*"
+    "@types/range-parser" "*"
+    "@types/send" "*"
+
 "@types/express@*":
   version "4.17.12"
   resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.12.tgz#4bc1bf3cd0cfe6d3f6f2853648b40db7d54de350"
     "@types/qs" "*"
     "@types/serve-static" "*"
 
-"@types/glob@^7.1.1":
-  version "7.1.3"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
-  integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
+"@types/express@^4.17.13":
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
+  integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
   dependencies:
-    "@types/minimatch" "*"
-    "@types/node" "*"
+    "@types/body-parser" "*"
+    "@types/express-serve-static-core" "^4.17.33"
+    "@types/qs" "*"
+    "@types/serve-static" "*"
+
+"@types/html-minifier-terser@^6.0.0":
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
+  integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
 
-"@types/http-proxy@^1.17.5":
-  version "1.17.6"
-  resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.6.tgz#62dc3fade227d6ac2862c8f19ee0da9da9fd8616"
-  integrity sha512-+qsjqR75S/ib0ig0R9WN+CDoZeOBU6F2XLewgC4KVgdXiNHiKKHFEMRHOrs5PbYE97D5vataw5wPj4KLYfUkuQ==
+"@types/http-errors@*":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
+  integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
+
+"@types/http-proxy@^1.17.8":
+  version "1.17.14"
+  resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec"
+  integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==
   dependencies:
     "@types/node" "*"
 
-"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7":
+"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
+  version "7.0.15"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+  integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5":
   version "7.0.7"
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
   integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
 
+"@types/mime@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45"
+  integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==
+
 "@types/mime@^1":
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
   integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
 
-"@types/minimatch@*":
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21"
-  integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
-
 "@types/minimist@^1.2.0":
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256"
   integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==
 
+"@types/ms@*":
+  version "0.7.34"
+  resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
+  integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
+
+"@types/node-forge@^1.3.0":
+  version "1.3.11"
+  resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da"
+  integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==
+  dependencies:
+    "@types/node" "*"
+
 "@types/node@*":
   version "15.12.2"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d"
   resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
   integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
 
-"@types/q@^1.5.1":
-  version "1.5.4"
-  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
-  integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
-
 "@types/qs@*":
   version "6.9.6"
   resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1"
   resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
   integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
 
+"@types/retry@0.12.0":
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
+  integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
+
+"@types/semver@^7.3.12":
+  version "7.5.6"
+  resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
+  integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
+
+"@types/send@*":
+  version "0.17.4"
+  resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a"
+  integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
+  dependencies:
+    "@types/mime" "^1"
+    "@types/node" "*"
+
+"@types/serve-index@^1.9.1":
+  version "1.9.4"
+  resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898"
+  integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==
+  dependencies:
+    "@types/express" "*"
+
 "@types/serve-static@*":
   version "1.13.9"
   resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e"
     "@types/mime" "^1"
     "@types/node" "*"
 
-"@types/source-list-map@*":
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
-  integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
-
-"@types/tapable@^1":
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4"
-  integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==
-
-"@types/uglify-js@*":
-  version "3.13.0"
-  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124"
-  integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==
+"@types/serve-static@^1.13.10":
+  version "1.15.5"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033"
+  integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==
   dependencies:
-    source-map "^0.6.1"
+    "@types/http-errors" "*"
+    "@types/mime" "*"
+    "@types/node" "*"
 
-"@types/webpack-dev-server@^3.11.0":
-  version "3.11.4"
-  resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.4.tgz#90d47dd660b696d409431ab8c1e9fa3615103a07"
-  integrity sha512-DCKORHjqNNVuMIDWFrlljftvc9CL0+09p3l7lBpb8dRqgN5SmvkWCY4MPKxoI6wJgdRqohmoNbptkxqSKAzLRg==
+"@types/sockjs@^0.3.33":
+  version "0.3.36"
+  resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535"
+  integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==
   dependencies:
-    "@types/connect-history-api-fallback" "*"
-    "@types/express" "*"
-    "@types/serve-static" "*"
-    "@types/webpack" "^4"
-    http-proxy-middleware "^1.0.0"
+    "@types/node" "*"
 
 "@types/webpack-env@^1.15.2":
   version "1.16.0"
   resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4"
   integrity sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw==
 
-"@types/webpack-sources@*":
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10"
-  integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==
-  dependencies:
-    "@types/node" "*"
-    "@types/source-list-map" "*"
-    source-map "^0.7.3"
-
-"@types/webpack@^4", "@types/webpack@^4.0.0":
-  version "4.41.29"
-  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.29.tgz#2e66c1de8223c440366469415c50a47d97625773"
-  integrity sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q==
+"@types/ws@^8.5.5":
+  version "8.5.10"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787"
+  integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==
   dependencies:
     "@types/node" "*"
-    "@types/tapable" "^1"
-    "@types/uglify-js" "*"
-    "@types/webpack-sources" "*"
-    anymatch "^3.0.0"
-    source-map "^0.6.0"
 
-"@typescript-eslint/eslint-plugin@^4.18.0":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz#b9c7313321cb837e2bf8bebe7acc2220659e67d3"
-  integrity sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw==
-  dependencies:
-    "@typescript-eslint/experimental-utils" "4.26.1"
-    "@typescript-eslint/scope-manager" "4.26.1"
-    debug "^4.3.1"
-    functional-red-black-tree "^1.0.1"
-    lodash "^4.17.21"
-    regexpp "^3.1.0"
-    semver "^7.3.5"
+"@typescript-eslint/eslint-plugin@^5.4.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
+  integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
+  dependencies:
+    "@eslint-community/regexpp" "^4.4.0"
+    "@typescript-eslint/scope-manager" "5.62.0"
+    "@typescript-eslint/type-utils" "5.62.0"
+    "@typescript-eslint/utils" "5.62.0"
+    debug "^4.3.4"
+    graphemer "^1.4.0"
+    ignore "^5.2.0"
+    natural-compare-lite "^1.4.0"
+    semver "^7.3.7"
     tsutils "^3.21.0"
 
-"@typescript-eslint/experimental-utils@4.26.1":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz#a35980a2390da9232aa206b27f620eab66e94142"
-  integrity sha512-sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ==
+"@typescript-eslint/parser@^5.4.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
+  integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
   dependencies:
-    "@types/json-schema" "^7.0.7"
-    "@typescript-eslint/scope-manager" "4.26.1"
-    "@typescript-eslint/types" "4.26.1"
-    "@typescript-eslint/typescript-estree" "4.26.1"
-    eslint-scope "^5.1.1"
-    eslint-utils "^3.0.0"
+    "@typescript-eslint/scope-manager" "5.62.0"
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/typescript-estree" "5.62.0"
+    debug "^4.3.4"
 
-"@typescript-eslint/parser@^4.18.0":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.1.tgz#cecfdd5eb7a5c13aabce1c1cfd7fbafb5a0f1e8e"
-  integrity sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==
+"@typescript-eslint/scope-manager@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+  integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
   dependencies:
-    "@typescript-eslint/scope-manager" "4.26.1"
-    "@typescript-eslint/types" "4.26.1"
-    "@typescript-eslint/typescript-estree" "4.26.1"
-    debug "^4.3.1"
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
 
-"@typescript-eslint/scope-manager@4.26.1":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz#075a74a15ff33ee3a7ed33e5fce16ee86689f662"
-  integrity sha512-TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ==
+"@typescript-eslint/type-utils@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
+  integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==
   dependencies:
-    "@typescript-eslint/types" "4.26.1"
-    "@typescript-eslint/visitor-keys" "4.26.1"
-
-"@typescript-eslint/types@4.26.1":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.1.tgz#9e7c523f73c34b04a765e4167ca5650436ef1d38"
-  integrity sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg==
+    "@typescript-eslint/typescript-estree" "5.62.0"
+    "@typescript-eslint/utils" "5.62.0"
+    debug "^4.3.4"
+    tsutils "^3.21.0"
 
-"@typescript-eslint/typescript-estree@4.26.1":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz#b2ce2e789233d62283fae2c16baabd4f1dbc9633"
-  integrity sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg==
-  dependencies:
-    "@typescript-eslint/types" "4.26.1"
-    "@typescript-eslint/visitor-keys" "4.26.1"
-    debug "^4.3.1"
-    globby "^11.0.3"
-    is-glob "^4.0.1"
-    semver "^7.3.5"
+"@typescript-eslint/types@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+  integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
+"@typescript-eslint/typescript-estree@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+  integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
+    debug "^4.3.4"
+    globby "^11.1.0"
+    is-glob "^4.0.3"
+    semver "^7.3.7"
     tsutils "^3.21.0"
 
-"@typescript-eslint/visitor-keys@4.26.1":
-  version "4.26.1"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz#0d55ea735cb0d8903b198017d6d4f518fdaac546"
-  integrity sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw==
+"@typescript-eslint/utils@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+  integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@types/json-schema" "^7.0.9"
+    "@types/semver" "^7.3.12"
+    "@typescript-eslint/scope-manager" "5.62.0"
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/typescript-estree" "5.62.0"
+    eslint-scope "^5.1.1"
+    semver "^7.3.7"
+
+"@typescript-eslint/visitor-keys@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+  integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
   dependencies:
-    "@typescript-eslint/types" "4.26.1"
-    eslint-visitor-keys "^2.0.0"
+    "@typescript-eslint/types" "5.62.0"
+    eslint-visitor-keys "^3.3.0"
 
-"@vue/babel-helper-vue-jsx-merge-props@^1.2.1":
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81"
-  integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==
+"@vue/babel-helper-vue-jsx-merge-props@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz#8d53a1e21347db8edbe54d339902583176de09f2"
+  integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==
 
 "@vue/babel-helper-vue-transform-on@^1.0.2":
   version "1.0.2"
     html-tags "^3.1.0"
     svg-tags "^1.0.0"
 
-"@vue/babel-plugin-transform-vue-jsx@^1.2.1":
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7"
-  integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==
+"@vue/babel-plugin-transform-vue-jsx@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz#4d4b3d46a39ea62b7467dd6e26ce47f7ceafb2fe"
+  integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==
   dependencies:
     "@babel/helper-module-imports" "^7.0.0"
     "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
+    "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
     html-tags "^2.0.0"
     lodash.kebabcase "^4.1.1"
     svg-tags "^1.0.0"
 
-"@vue/babel-preset-app@^4.5.13":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz#cb475321e4c73f7f110dac29a48c2a9cb80afeb6"
-  integrity sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==
+"@vue/babel-preset-app@^5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-5.0.8.tgz#ce38f76314f5265d62a89756ef264c21f1d351a1"
+  integrity sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==
   dependencies:
-    "@babel/core" "^7.11.0"
-    "@babel/helper-compilation-targets" "^7.9.6"
-    "@babel/helper-module-imports" "^7.8.3"
-    "@babel/plugin-proposal-class-properties" "^7.8.3"
-    "@babel/plugin-proposal-decorators" "^7.8.3"
+    "@babel/core" "^7.12.16"
+    "@babel/helper-compilation-targets" "^7.12.16"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/plugin-proposal-class-properties" "^7.12.13"
+    "@babel/plugin-proposal-decorators" "^7.12.13"
     "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-    "@babel/plugin-syntax-jsx" "^7.8.3"
-    "@babel/plugin-transform-runtime" "^7.11.0"
-    "@babel/preset-env" "^7.11.0"
-    "@babel/runtime" "^7.11.0"
+    "@babel/plugin-syntax-jsx" "^7.12.13"
+    "@babel/plugin-transform-runtime" "^7.12.15"
+    "@babel/preset-env" "^7.12.16"
+    "@babel/runtime" "^7.12.13"
     "@vue/babel-plugin-jsx" "^1.0.3"
-    "@vue/babel-preset-jsx" "^1.2.4"
+    "@vue/babel-preset-jsx" "^1.1.2"
     babel-plugin-dynamic-import-node "^2.3.3"
-    core-js "^3.6.5"
-    core-js-compat "^3.6.5"
-    semver "^6.1.0"
-
-"@vue/babel-preset-jsx@^1.2.4":
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87"
-  integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==
-  dependencies:
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
-    "@vue/babel-sugar-composition-api-inject-h" "^1.2.1"
-    "@vue/babel-sugar-composition-api-render-instance" "^1.2.4"
-    "@vue/babel-sugar-functional-vue" "^1.2.2"
-    "@vue/babel-sugar-inject-h" "^1.2.2"
-    "@vue/babel-sugar-v-model" "^1.2.3"
-    "@vue/babel-sugar-v-on" "^1.2.3"
-
-"@vue/babel-sugar-composition-api-inject-h@^1.2.1":
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb"
-  integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==
+    core-js "^3.8.3"
+    core-js-compat "^3.8.3"
+    semver "^7.3.4"
+
+"@vue/babel-preset-jsx@^1.1.2":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz#f4914ba314235ab097bc4372ed67473c0780bfcc"
+  integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==
+  dependencies:
+    "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
+    "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
+    "@vue/babel-sugar-composition-api-inject-h" "^1.4.0"
+    "@vue/babel-sugar-composition-api-render-instance" "^1.4.0"
+    "@vue/babel-sugar-functional-vue" "^1.4.0"
+    "@vue/babel-sugar-inject-h" "^1.4.0"
+    "@vue/babel-sugar-v-model" "^1.4.0"
+    "@vue/babel-sugar-v-on" "^1.4.0"
+
+"@vue/babel-sugar-composition-api-inject-h@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz#187e1389f8871d89ece743bb50aed713be9d6c85"
+  integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
 
-"@vue/babel-sugar-composition-api-render-instance@^1.2.4":
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19"
-  integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==
+"@vue/babel-sugar-composition-api-render-instance@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz#2c1607ae6dffdab47e785bc01fa45ba756e992c1"
+  integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
 
-"@vue/babel-sugar-functional-vue@^1.2.2":
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658"
-  integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==
+"@vue/babel-sugar-functional-vue@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz#60da31068567082287c7337c66ef4df04e0a1029"
+  integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
 
-"@vue/babel-sugar-inject-h@^1.2.2":
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa"
-  integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==
+"@vue/babel-sugar-inject-h@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz#bf39aa6631fb1d0399b1c49b4c59e1c8899b4363"
+  integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
 
-"@vue/babel-sugar-v-model@^1.2.3":
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2"
-  integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==
+"@vue/babel-sugar-v-model@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz#a51d986609f430c4f70ada3a93cc560a2970f720"
+  integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
+    "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
+    "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
     camelcase "^5.0.0"
     html-tags "^2.0.0"
     svg-tags "^1.0.0"
 
-"@vue/babel-sugar-v-on@^1.2.3":
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada"
-  integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==
+"@vue/babel-sugar-v-on@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz#43b7106a9672d8cbeefc0eb8afe1d376edc6166e"
+  integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==
   dependencies:
     "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
+    "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
     camelcase "^5.0.0"
 
-"@vue/cli-overlay@^4.5.13":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.13.tgz#4f1fd2161be8f69d6cba8079f3f0d7dc4dee47a7"
-  integrity sha512-jhUIg3klgi5Cxhs8dnat5hi/W2tQJvsqCxR0u6hgfSob0ORODgUBlN+F/uwq7cKIe/pzedVUk1y07F13GQvPqg==
-
-"@vue/cli-plugin-babel@^4.5.0":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.13.tgz#a89c482edcc4ea1d135645cec502a7f5fd4c30e7"
-  integrity sha512-ykvEAfD8PgGs+dGMGqr7l/nRmIS39NRzWLhMluPLTvDV1L+IxcoB73HNLGA/aENDpl8CuWrTE+1VgydcOhp+wg==
-  dependencies:
-    "@babel/core" "^7.11.0"
-    "@vue/babel-preset-app" "^4.5.13"
-    "@vue/cli-shared-utils" "^4.5.13"
-    babel-loader "^8.1.0"
-    cache-loader "^4.1.0"
-    thread-loader "^2.1.3"
-    webpack "^4.0.0"
-
-"@vue/cli-plugin-eslint@^4.5.0":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.13.tgz#8baf22d0d96d76720c7506646b96f4f62c05bdfa"
-  integrity sha512-yc2uXX6aBiy3vEf5TwaueaDqQbdIXIhk0x0KzEtpPo23jBdLkpOSoU5NCgE06g/ZiGAcettpmBSv73Hfp4wHEw==
-  dependencies:
-    "@vue/cli-shared-utils" "^4.5.13"
-    eslint-loader "^2.2.1"
-    globby "^9.2.0"
-    inquirer "^7.1.0"
-    webpack "^4.0.0"
-    yorkie "^2.0.0"
+"@vue/cli-overlay@^5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz#b61477acdc43bbd42fce6326d228471201ecdcdd"
+  integrity sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==
 
-"@vue/cli-plugin-router@^4.5.13":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.13.tgz#0b67c8898a2bf132941919a2a2e5f3aacbd9ffbe"
-  integrity sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w==
+"@vue/cli-plugin-babel@~5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.8.tgz#54f9a07900f29baff54803dcfa916c602894feb7"
+  integrity sha512-a4qqkml3FAJ3auqB2kN2EMPocb/iu0ykeELwed+9B1c1nQ1HKgslKMHMPavYx3Cd/QAx2mBD4hwKBqZXEI/CsQ==
   dependencies:
-    "@vue/cli-shared-utils" "^4.5.13"
+    "@babel/core" "^7.12.16"
+    "@vue/babel-preset-app" "^5.0.8"
+    "@vue/cli-shared-utils" "^5.0.8"
+    babel-loader "^8.2.2"
+    thread-loader "^3.0.0"
+    webpack "^5.54.0"
 
-"@vue/cli-plugin-typescript@^4.5.0":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-4.5.13.tgz#f514f661e16f9096a89a9ca6e69a2d762c6d8464"
-  integrity sha512-CpLlIdFNV1gn9uC4Yh6QgWI42uk2x5Z3cb2ScxNSwWsR1vgSdr0/1DdNzoBm68aP8RUtnHHO/HZfPnvXiq42xA==
+"@vue/cli-plugin-eslint@~5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.8.tgz#754939265c2c5b746fa36c7d7705a89138e193bf"
+  integrity sha512-d11+I5ONYaAPW1KyZj9GlrV/E6HZePq5L5eAF5GgoVdu6sxr6bDgEoxzhcS1Pk2eh8rn1MxG/FyyR+eCBj/CNg==
   dependencies:
-    "@types/webpack-env" "^1.15.2"
-    "@vue/cli-shared-utils" "^4.5.13"
-    cache-loader "^4.1.0"
-    fork-ts-checker-webpack-plugin "^3.1.1"
-    globby "^9.2.0"
-    thread-loader "^2.1.3"
-    ts-loader "^6.2.2"
-    tslint "^5.20.1"
-    webpack "^4.0.0"
+    "@vue/cli-shared-utils" "^5.0.8"
+    eslint-webpack-plugin "^3.1.0"
+    globby "^11.0.2"
+    webpack "^5.54.0"
     yorkie "^2.0.0"
-  optionalDependencies:
-    fork-ts-checker-webpack-plugin-v5 "npm:fork-ts-checker-webpack-plugin@^5.0.11"
 
-"@vue/cli-plugin-vuex@^4.5.13":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.13.tgz#98646d8bc1e69cf6c6a6cba2fed3eace0356c360"
-  integrity sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA==
+"@vue/cli-plugin-router@^5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz#a113ec626f3d4216d20496c42d35533bce9e889f"
+  integrity sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==
+  dependencies:
+    "@vue/cli-shared-utils" "^5.0.8"
 
-"@vue/cli-service@^4.5.0":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.13.tgz#a09e684a801684b6e24e5414ad30650970eec9ed"
-  integrity sha512-CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==
+"@vue/cli-plugin-typescript@~5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-5.0.8.tgz#dd3d2b3a58f3f93359319958dc0f58a4861a33a7"
+  integrity sha512-JKJOwzJshBqsmp4yLBexwVMebOZ4VGJgbnYvmHVxasJOStF2RxwyW28ZF+zIvASGdat4sAUuo/3mAQyVhm7JHg==
   dependencies:
-    "@intervolga/optimize-cssnano-plugin" "^1.0.5"
-    "@soda/friendly-errors-webpack-plugin" "^1.7.1"
-    "@soda/get-current-script" "^1.0.0"
+    "@babel/core" "^7.12.16"
+    "@types/webpack-env" "^1.15.2"
+    "@vue/cli-shared-utils" "^5.0.8"
+    babel-loader "^8.2.2"
+    fork-ts-checker-webpack-plugin "^6.4.0"
+    globby "^11.0.2"
+    thread-loader "^3.0.0"
+    ts-loader "^9.2.5"
+    webpack "^5.54.0"
+
+"@vue/cli-plugin-vuex@^5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz#0d4cb3020f9102bea9288d750729dde176c66ccd"
+  integrity sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==
+
+"@vue/cli-service@~5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-5.0.8.tgz#cf3f6f1b7bf0fba9cdab86b6bec4f9897f982dac"
+  integrity sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.12.16"
+    "@soda/friendly-errors-webpack-plugin" "^1.8.0"
+    "@soda/get-current-script" "^1.0.2"
     "@types/minimist" "^1.2.0"
-    "@types/webpack" "^4.0.0"
-    "@types/webpack-dev-server" "^3.11.0"
-    "@vue/cli-overlay" "^4.5.13"
-    "@vue/cli-plugin-router" "^4.5.13"
-    "@vue/cli-plugin-vuex" "^4.5.13"
-    "@vue/cli-shared-utils" "^4.5.13"
-    "@vue/component-compiler-utils" "^3.1.2"
-    "@vue/preload-webpack-plugin" "^1.1.0"
-    "@vue/web-component-wrapper" "^1.2.0"
-    acorn "^7.4.0"
-    acorn-walk "^7.1.1"
+    "@vue/cli-overlay" "^5.0.8"
+    "@vue/cli-plugin-router" "^5.0.8"
+    "@vue/cli-plugin-vuex" "^5.0.8"
+    "@vue/cli-shared-utils" "^5.0.8"
+    "@vue/component-compiler-utils" "^3.3.0"
+    "@vue/vue-loader-v15" "npm:vue-loader@^15.9.7"
+    "@vue/web-component-wrapper" "^1.3.0"
+    acorn "^8.0.5"
+    acorn-walk "^8.0.2"
     address "^1.1.2"
-    autoprefixer "^9.8.6"
-    browserslist "^4.12.0"
-    cache-loader "^4.1.0"
+    autoprefixer "^10.2.4"
+    browserslist "^4.16.3"
     case-sensitive-paths-webpack-plugin "^2.3.0"
-    cli-highlight "^2.1.4"
+    cli-highlight "^2.1.10"
     clipboardy "^2.3.0"
-    cliui "^6.0.0"
-    copy-webpack-plugin "^5.1.1"
-    css-loader "^3.5.3"
-    cssnano "^4.1.10"
+    cliui "^7.0.4"
+    copy-webpack-plugin "^9.0.1"
+    css-loader "^6.5.0"
+    css-minimizer-webpack-plugin "^3.0.2"
+    cssnano "^5.0.0"
     debug "^4.1.1"
-    default-gateway "^5.0.5"
-    dotenv "^8.2.0"
+    default-gateway "^6.0.3"
+    dotenv "^10.0.0"
     dotenv-expand "^5.1.0"
-    file-loader "^4.2.0"
-    fs-extra "^7.0.1"
-    globby "^9.2.0"
+    fs-extra "^9.1.0"
+    globby "^11.0.2"
     hash-sum "^2.0.0"
-    html-webpack-plugin "^3.2.0"
+    html-webpack-plugin "^5.1.0"
+    is-file-esm "^1.0.0"
     launch-editor-middleware "^2.2.1"
     lodash.defaultsdeep "^4.6.1"
     lodash.mapvalues "^4.6.0"
-    lodash.transform "^4.6.0"
-    mini-css-extract-plugin "^0.9.0"
+    mini-css-extract-plugin "^2.5.3"
     minimist "^1.2.5"
-    pnp-webpack-plugin "^1.6.4"
+    module-alias "^2.2.2"
     portfinder "^1.0.26"
-    postcss-loader "^3.0.0"
+    postcss "^8.2.6"
+    postcss-loader "^6.1.1"
+    progress-webpack-plugin "^1.0.12"
     ssri "^8.0.1"
-    terser-webpack-plugin "^1.4.4"
-    thread-loader "^2.1.3"
-    url-loader "^2.2.0"
-    vue-loader "^15.9.2"
-    vue-style-loader "^4.1.2"
-    webpack "^4.0.0"
-    webpack-bundle-analyzer "^3.8.0"
-    webpack-chain "^6.4.0"
-    webpack-dev-server "^3.11.0"
-    webpack-merge "^4.2.2"
-  optionalDependencies:
-    vue-loader-v16 "npm:vue-loader@^16.1.0"
-
-"@vue/cli-shared-utils@^4.5.13":
-  version "4.5.13"
-  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.13.tgz#acd40f31b4790f1634292bdaa5fca95dc1e0ff50"
-  integrity sha512-HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==
+    terser-webpack-plugin "^5.1.1"
+    thread-loader "^3.0.0"
+    vue-loader "^17.0.0"
+    vue-style-loader "^4.1.3"
+    webpack "^5.54.0"
+    webpack-bundle-analyzer "^4.4.0"
+    webpack-chain "^6.5.1"
+    webpack-dev-server "^4.7.3"
+    webpack-merge "^5.7.3"
+    webpack-virtual-modules "^0.4.2"
+    whatwg-fetch "^3.6.2"
+
+"@vue/cli-shared-utils@^5.0.8":
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz#75fc96528eba2b1c7e33cb7e989a984ddef99c8a"
+  integrity sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==
   dependencies:
-    "@hapi/joi" "^15.0.1"
-    chalk "^2.4.2"
+    "@achrinza/node-ipc" "^9.2.5"
+    chalk "^4.1.2"
     execa "^1.0.0"
+    joi "^17.4.0"
     launch-editor "^2.2.1"
-    lru-cache "^5.1.1"
-    node-ipc "^9.1.1"
-    open "^6.3.0"
-    ora "^3.4.0"
+    lru-cache "^6.0.0"
+    node-fetch "^2.6.7"
+    open "^8.0.2"
+    ora "^5.3.0"
     read-pkg "^5.1.1"
-    request "^2.88.2"
-    semver "^6.1.0"
+    semver "^7.3.4"
     strip-ansi "^6.0.0"
 
-"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
+"@vue/compat@^3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/compat/-/compat-3.4.15.tgz#1679ad2a0126dacc0fd9d089243a7b9f347a37d7"
+  integrity sha512-XYYh5r31CJo2e50yWxEx8PMTRUCAJt5mmuA23oN4vtzUX8oBiRo4rfv3hB1K2m3D+1OjF0vAXHM9JgYkqEoLgg==
+  dependencies:
+    "@babel/parser" "^7.23.6"
+    estree-walker "^2.0.2"
+    source-map-js "^1.0.2"
+
+"@vue/compiler-core@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e"
+  integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==
+  dependencies:
+    "@babel/parser" "^7.23.6"
+    "@vue/shared" "3.4.15"
+    entities "^4.5.0"
+    estree-walker "^2.0.2"
+    source-map-js "^1.0.2"
+
+"@vue/compiler-dom@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5"
+  integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==
+  dependencies:
+    "@vue/compiler-core" "3.4.15"
+    "@vue/shared" "3.4.15"
+
+"@vue/compiler-sfc@3.4.15", "@vue/compiler-sfc@^3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b"
+  integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==
+  dependencies:
+    "@babel/parser" "^7.23.6"
+    "@vue/compiler-core" "3.4.15"
+    "@vue/compiler-dom" "3.4.15"
+    "@vue/compiler-ssr" "3.4.15"
+    "@vue/shared" "3.4.15"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.5"
+    postcss "^8.4.33"
+    source-map-js "^1.0.2"
+
+"@vue/compiler-ssr@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf"
+  integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==
+  dependencies:
+    "@vue/compiler-dom" "3.4.15"
+    "@vue/shared" "3.4.15"
+
+"@vue/component-compiler-utils@^3.1.0":
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d"
   integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==
   optionalDependencies:
     prettier "^1.18.2"
 
+"@vue/component-compiler-utils@^3.3.0":
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9"
+  integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==
+  dependencies:
+    consolidate "^0.15.1"
+    hash-sum "^1.0.2"
+    lru-cache "^4.1.2"
+    merge-source-map "^1.1.0"
+    postcss "^7.0.36"
+    postcss-selector-parser "^6.0.2"
+    source-map "~0.6.1"
+    vue-template-es2015-compiler "^1.9.0"
+  optionalDependencies:
+    prettier "^1.18.2 || ^2.0.0"
+
 "@vue/eslint-config-prettier@^6.0.0":
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz#ad5912b308f4ae468458e02a2b05db0b9d246700"
   dependencies:
     eslint-config-prettier "^6.0.0"
 
-"@vue/eslint-config-typescript@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-7.0.0.tgz#220c70c2edf7a253e739298525f4d401b8ef0038"
-  integrity sha512-UxUlvpSrFOoF8aQ+zX1leYiEBEm7CZmXYn/ZEM1zwSadUzpamx56RB4+Htdjisv1mX2tOjBegNUqH3kz2OL+Aw==
+"@vue/eslint-config-typescript@^9.1.0":
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-9.1.0.tgz#b98a64352b312085444a08b98728962e2a8425ab"
+  integrity sha512-j/852/ZYQ5wDvCD3HE2q4uqJwJAceer2FwoEch1nFo+zTOsPrbzbE3cuWIs3kvu5hdFsGTMYwRwjI6fqZKDMxQ==
   dependencies:
-    vue-eslint-parser "^7.0.0"
-
-"@vue/preload-webpack-plugin@^1.1.0":
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab"
-  integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
+    vue-eslint-parser "^8.0.0"
 
-"@vue/web-component-wrapper@^1.2.0":
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a"
-  integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==
+"@vue/reactivity@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1"
+  integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==
+  dependencies:
+    "@vue/shared" "3.4.15"
 
-"@webassemblyjs/ast@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
-  integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
+"@vue/runtime-core@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0"
+  integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==
   dependencies:
-    "@webassemblyjs/helper-module-context" "1.9.0"
-    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
-    "@webassemblyjs/wast-parser" "1.9.0"
+    "@vue/reactivity" "3.4.15"
+    "@vue/shared" "3.4.15"
 
-"@webassemblyjs/floating-point-hex-parser@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
-  integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
+"@vue/runtime-dom@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406"
+  integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==
+  dependencies:
+    "@vue/runtime-core" "3.4.15"
+    "@vue/shared" "3.4.15"
+    csstype "^3.1.3"
 
-"@webassemblyjs/helper-api-error@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
-  integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
+"@vue/server-renderer@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f"
+  integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==
+  dependencies:
+    "@vue/compiler-ssr" "3.4.15"
+    "@vue/shared" "3.4.15"
 
-"@webassemblyjs/helper-buffer@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
-  integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
+"@vue/shared@3.4.15":
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30"
+  integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==
 
-"@webassemblyjs/helper-code-frame@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
-  integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
+"@vue/vue-loader-v15@npm:vue-loader@^15.9.7":
+  version "15.11.1"
+  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.11.1.tgz#dee91169211276ed43c5715caef88a56b1f497b0"
+  integrity sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==
   dependencies:
-    "@webassemblyjs/wast-printer" "1.9.0"
+    "@vue/component-compiler-utils" "^3.1.0"
+    hash-sum "^1.0.2"
+    loader-utils "^1.1.0"
+    vue-hot-reload-api "^2.3.0"
+    vue-style-loader "^4.1.0"
 
-"@webassemblyjs/helper-fsm@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
-  integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
+"@vue/web-component-wrapper@^1.3.0":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a"
+  integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==
 
-"@webassemblyjs/helper-module-context@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
-  integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
+"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24"
+  integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==
   dependencies:
-    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-numbers" "1.11.6"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
 
-"@webassemblyjs/helper-wasm-bytecode@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
-  integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
+"@webassemblyjs/floating-point-hex-parser@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431"
+  integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==
 
-"@webassemblyjs/helper-wasm-section@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
-  integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
-  dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-buffer" "1.9.0"
-    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
-    "@webassemblyjs/wasm-gen" "1.9.0"
+"@webassemblyjs/helper-api-error@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768"
+  integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==
 
-"@webassemblyjs/ieee754@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
-  integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
-  dependencies:
-    "@xtuc/ieee754" "^1.2.0"
+"@webassemblyjs/helper-buffer@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093"
+  integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==
 
-"@webassemblyjs/leb128@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
-  integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
+"@webassemblyjs/helper-numbers@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5"
+  integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==
   dependencies:
+    "@webassemblyjs/floating-point-hex-parser" "1.11.6"
+    "@webassemblyjs/helper-api-error" "1.11.6"
     "@xtuc/long" "4.2.2"
 
-"@webassemblyjs/utf8@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
-  integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
+"@webassemblyjs/helper-wasm-bytecode@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9"
+  integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==
 
-"@webassemblyjs/wasm-edit@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
-  integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
-  dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-buffer" "1.9.0"
-    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
-    "@webassemblyjs/helper-wasm-section" "1.9.0"
-    "@webassemblyjs/wasm-gen" "1.9.0"
-    "@webassemblyjs/wasm-opt" "1.9.0"
-    "@webassemblyjs/wasm-parser" "1.9.0"
-    "@webassemblyjs/wast-printer" "1.9.0"
-
-"@webassemblyjs/wasm-gen@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
-  integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
+"@webassemblyjs/helper-wasm-section@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577"
+  integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==
   dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
-    "@webassemblyjs/ieee754" "1.9.0"
-    "@webassemblyjs/leb128" "1.9.0"
-    "@webassemblyjs/utf8" "1.9.0"
+    "@webassemblyjs/ast" "1.11.6"
+    "@webassemblyjs/helper-buffer" "1.11.6"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+    "@webassemblyjs/wasm-gen" "1.11.6"
 
-"@webassemblyjs/wasm-opt@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
-  integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
+"@webassemblyjs/ieee754@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a"
+  integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==
   dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-buffer" "1.9.0"
-    "@webassemblyjs/wasm-gen" "1.9.0"
-    "@webassemblyjs/wasm-parser" "1.9.0"
+    "@xtuc/ieee754" "^1.2.0"
 
-"@webassemblyjs/wasm-parser@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
-  integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
+"@webassemblyjs/leb128@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7"
+  integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==
   dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-api-error" "1.9.0"
-    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
-    "@webassemblyjs/ieee754" "1.9.0"
-    "@webassemblyjs/leb128" "1.9.0"
-    "@webassemblyjs/utf8" "1.9.0"
-
-"@webassemblyjs/wast-parser@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
-  integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
-  dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/floating-point-hex-parser" "1.9.0"
-    "@webassemblyjs/helper-api-error" "1.9.0"
-    "@webassemblyjs/helper-code-frame" "1.9.0"
-    "@webassemblyjs/helper-fsm" "1.9.0"
     "@xtuc/long" "4.2.2"
 
-"@webassemblyjs/wast-printer@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
-  integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
-  dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/wast-parser" "1.9.0"
+"@webassemblyjs/utf8@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a"
+  integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==
+
+"@webassemblyjs/wasm-edit@^1.11.5":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab"
+  integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.6"
+    "@webassemblyjs/helper-buffer" "1.11.6"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+    "@webassemblyjs/helper-wasm-section" "1.11.6"
+    "@webassemblyjs/wasm-gen" "1.11.6"
+    "@webassemblyjs/wasm-opt" "1.11.6"
+    "@webassemblyjs/wasm-parser" "1.11.6"
+    "@webassemblyjs/wast-printer" "1.11.6"
+
+"@webassemblyjs/wasm-gen@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268"
+  integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.6"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+    "@webassemblyjs/ieee754" "1.11.6"
+    "@webassemblyjs/leb128" "1.11.6"
+    "@webassemblyjs/utf8" "1.11.6"
+
+"@webassemblyjs/wasm-opt@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2"
+  integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.6"
+    "@webassemblyjs/helper-buffer" "1.11.6"
+    "@webassemblyjs/wasm-gen" "1.11.6"
+    "@webassemblyjs/wasm-parser" "1.11.6"
+
+"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1"
+  integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.6"
+    "@webassemblyjs/helper-api-error" "1.11.6"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+    "@webassemblyjs/ieee754" "1.11.6"
+    "@webassemblyjs/leb128" "1.11.6"
+    "@webassemblyjs/utf8" "1.11.6"
+
+"@webassemblyjs/wast-printer@1.11.6":
+  version "1.11.6"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20"
+  integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.6"
     "@xtuc/long" "4.2.2"
 
 "@xtuc/ieee754@^1.2.0":
   resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
   integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
 
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
+accepts@~1.3.4, accepts@~1.3.5:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
   integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
@@ -1708,26 +2170,39 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
     mime-types "~2.1.24"
     negotiator "0.6.2"
 
-acorn-jsx@^5.2.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
-  integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
+accepts@~1.3.8:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+  integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+  dependencies:
+    mime-types "~2.1.34"
+    negotiator "0.6.3"
 
-acorn-walk@^7.1.1:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
-  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+acorn-import-assertions@^1.9.0:
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
+  integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
+
+acorn-jsx@^5.3.1, acorn-jsx@^5.3.2:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
 
-acorn@^6.4.1:
-  version "6.4.2"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
-  integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+acorn-walk@^8.0.0, acorn-walk@^8.0.2:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
+  integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
 
-acorn@^7.1.1, acorn@^7.4.0:
+acorn@^7.4.0:
   version "7.4.1"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
+acorn@^8.0.4, acorn@^8.0.5, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
+  version "8.11.3"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+  integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
+
 address@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
@@ -1740,17 +2215,26 @@ agent-base@6, agent-base@^6.0.0:
   dependencies:
     debug "4"
 
-ajv-errors@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
-  integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
+ajv-formats@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+  integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+  dependencies:
+    ajv "^8.0.0"
 
-ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
-ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4:
+ajv-keywords@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
+  integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+  dependencies:
+    fast-deep-equal "^3.1.3"
+
+ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -1760,54 +2244,47 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-alphanum-sort@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
-  integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
-
-ansi-colors@^3.0.0:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
-  integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
-
-ansi-escapes@^4.2.1:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
-  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0:
+  version "8.12.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
+  integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
   dependencies:
-    type-fest "^0.21.3"
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
 
-ansi-html@0.0.7:
-  version "0.0.7"
-  resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
-  integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
+ansi-colors@^4.1.1:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
+  integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
 
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+ansi-escapes@^3.0.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+
+ansi-html-community@^0.0.8:
+  version "0.0.8"
+  resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
+  integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
 
 ansi-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
 ansi-regex@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
   integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
 
-ansi-styles@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
   integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
@@ -1826,27 +2303,14 @@ any-promise@^1.0.0:
   resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
   integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
 
-anymatch@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
-  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
-  dependencies:
-    micromatch "^3.1.4"
-    normalize-path "^2.1.1"
-
-anymatch@^3.0.0, anymatch@~3.1.1:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
-  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+anymatch@~3.1.2:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+  integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
   dependencies:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-aproba@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
-  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
 arch@^2.1.1:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
@@ -1859,88 +2323,16 @@ argparse@^1.0.7:
   dependencies:
     sprintf-js "~1.0.2"
 
-arr-diff@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
-  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-flatten@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
-  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
-  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-
 array-flatten@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
   integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
 
-array-flatten@^2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
-  integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
-
-array-union@^1.0.1, array-union@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
-  integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
-  dependencies:
-    array-uniq "^1.0.1"
-
 array-union@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
   integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
 
-array-uniq@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-  integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-
-array-unique@^0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-
-asn1.js@^5.2.0:
-  version "5.4.1"
-  resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
-  integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
-  dependencies:
-    bn.js "^4.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-    safer-buffer "^2.1.0"
-
-asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
-  dependencies:
-    safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-
-assert@^1.1.1:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
-  integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
-  dependencies:
-    object-assign "^4.1.1"
-    util "0.10.3"
-
-assign-symbols@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
-  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-
 ast-types@^0.13.2:
   version "0.13.4"
   resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
@@ -1948,20 +2340,10 @@ ast-types@^0.13.2:
   dependencies:
     tslib "^2.0.1"
 
-astral-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
-  integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
-
-async-each@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
-  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
-
-async-limiter@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
-  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
 async@^2.6.2:
   version "2.6.3"
@@ -1980,33 +2362,17 @@ at-least-node@^1.0.0:
   resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
   integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
 
-atob@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
-  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-autoprefixer@^9.8.6:
-  version "9.8.6"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
-  integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
+autoprefixer@^10.2.4:
+  version "10.4.17"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be"
+  integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==
   dependencies:
-    browserslist "^4.12.0"
-    caniuse-lite "^1.0.30001109"
-    colorette "^1.2.1"
+    browserslist "^4.22.2"
+    caniuse-lite "^1.0.30001578"
+    fraction.js "^4.3.7"
     normalize-range "^0.1.2"
-    num2fraction "^1.2.2"
-    postcss "^7.0.32"
-    postcss-value-parser "^4.1.0"
-
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-
-aws4@^1.8.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
-  integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+    picocolors "^1.0.0"
+    postcss-value-parser "^4.2.0"
 
 axios@^0.21.1:
   version "0.21.1"
@@ -2015,22 +2381,13 @@ axios@^0.21.1:
   dependencies:
     follow-redirects "^1.10.0"
 
-babel-code-frame@^6.22.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
-  integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
-  dependencies:
-    chalk "^1.1.3"
-    esutils "^2.0.2"
-    js-tokens "^3.0.2"
-
-babel-loader@^8.1.0:
-  version "8.2.2"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
-  integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
+babel-loader@^8.2.2:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8"
+  integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==
   dependencies:
     find-cache-dir "^3.3.1"
-    loader-utils "^1.4.0"
+    loader-utils "^2.0.0"
     make-dir "^3.1.0"
     schema-utils "^2.6.5"
 
@@ -2041,144 +2398,94 @@ babel-plugin-dynamic-import-node@^2.3.3:
   dependencies:
     object.assign "^4.1.0"
 
-babel-plugin-polyfill-corejs2@^0.2.0:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
-  integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
+babel-plugin-polyfill-corejs2@^0.4.8:
+  version "0.4.8"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269"
+  integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==
   dependencies:
-    "@babel/compat-data" "^7.13.11"
-    "@babel/helper-define-polyfill-provider" "^0.2.2"
-    semver "^6.1.1"
+    "@babel/compat-data" "^7.22.6"
+    "@babel/helper-define-polyfill-provider" "^0.5.0"
+    semver "^6.3.1"
 
-babel-plugin-polyfill-corejs3@^0.2.0:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5"
-  integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==
+babel-plugin-polyfill-corejs3@^0.9.0:
+  version "0.9.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81"
+  integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==
   dependencies:
-    "@babel/helper-define-polyfill-provider" "^0.2.2"
-    core-js-compat "^3.9.1"
+    "@babel/helper-define-polyfill-provider" "^0.5.0"
+    core-js-compat "^3.34.0"
 
-babel-plugin-polyfill-regenerator@^0.2.0:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
-  integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
+babel-plugin-polyfill-regenerator@^0.5.5:
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a"
+  integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==
   dependencies:
-    "@babel/helper-define-polyfill-provider" "^0.2.2"
+    "@babel/helper-define-polyfill-provider" "^0.5.0"
 
 balanced-match@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
   integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
-base64-js@^1.0.2:
+base64-js@^1.3.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 
-base@^0.11.1:
-  version "0.11.2"
-  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
-  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
-  dependencies:
-    cache-base "^1.0.1"
-    class-utils "^0.3.5"
-    component-emitter "^1.2.1"
-    define-property "^1.0.0"
-    isobject "^3.0.1"
-    mixin-deep "^1.2.0"
-    pascalcase "^0.1.1"
-
 batch@0.6.1, batch@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
   integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
 
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
-  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
-  dependencies:
-    tweetnacl "^0.14.3"
-
-bfj@^6.1.1:
-  version "6.1.2"
-  resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
-  integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==
-  dependencies:
-    bluebird "^3.5.5"
-    check-types "^8.0.3"
-    hoopy "^0.1.4"
-    tryer "^1.0.1"
-
-big.js@^3.1.3:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
-  integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
 big.js@^5.2.2:
   version "5.2.2"
   resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
   integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
 
-binary-extensions@^1.0.0:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
-  integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
-
 binary-extensions@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
   integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 
-bindings@^1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
-  integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+bl@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
   dependencies:
-    file-uri-to-path "1.0.0"
+    buffer "^5.5.0"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
 
-bluebird@^3.1.1, bluebird@^3.5.5:
+bluebird@^3.1.1:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
 
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
-  version "4.12.0"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
-  integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.0.0, bn.js@^5.1.1:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
-  integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
-
-body-parser@1.19.0:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
-  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+body-parser@1.20.1:
+  version "1.20.1"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
+  integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
   dependencies:
-    bytes "3.1.0"
+    bytes "3.1.2"
     content-type "~1.0.4"
     debug "2.6.9"
-    depd "~1.1.2"
-    http-errors "1.7.2"
+    depd "2.0.0"
+    destroy "1.2.0"
+    http-errors "2.0.0"
     iconv-lite "0.4.24"
-    on-finished "~2.3.0"
-    qs "6.7.0"
-    raw-body "2.4.0"
-    type-is "~1.6.17"
-
-bonjour@^3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
-  integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
-  dependencies:
-    array-flatten "^2.1.0"
-    deep-equal "^1.0.1"
-    dns-equal "^1.0.0"
-    dns-txt "^2.0.2"
-    multicast-dns "^6.0.1"
-    multicast-dns-service-types "^1.1.0"
+    on-finished "2.4.1"
+    qs "6.11.0"
+    raw-body "2.5.1"
+    type-is "~1.6.18"
+    unpipe "1.0.0"
+
+bonjour-service@^1.0.11:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02"
+  integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==
+  dependencies:
+    fast-deep-equal "^3.1.3"
+    multicast-dns "^7.2.5"
 
 boolbase@^1.0.0, boolbase@~1.0.0:
   version "1.0.0"
@@ -2193,96 +2500,14 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
-braces@^2.3.1, braces@^2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
-  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
-  dependencies:
-    arr-flatten "^1.1.0"
-    array-unique "^0.3.2"
-    extend-shallow "^2.0.1"
-    fill-range "^4.0.0"
-    isobject "^3.0.1"
-    repeat-element "^1.1.2"
-    snapdragon "^0.8.1"
-    snapdragon-node "^2.0.1"
-    split-string "^3.0.2"
-    to-regex "^3.0.1"
-
-braces@^3.0.1, braces@~3.0.2:
+braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
   dependencies:
     fill-range "^7.0.1"
 
-brorand@^1.0.1, brorand@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
-  integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
-  dependencies:
-    buffer-xor "^1.0.3"
-    cipher-base "^1.0.0"
-    create-hash "^1.1.0"
-    evp_bytestokey "^1.0.3"
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
-  integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
-  dependencies:
-    browserify-aes "^1.0.4"
-    browserify-des "^1.0.0"
-    evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
-  integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
-  dependencies:
-    cipher-base "^1.0.1"
-    des.js "^1.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
-  integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
-  dependencies:
-    bn.js "^5.0.0"
-    randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
-  integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
-  dependencies:
-    bn.js "^5.1.1"
-    browserify-rsa "^4.0.1"
-    create-hash "^1.2.0"
-    create-hmac "^1.1.7"
-    elliptic "^6.5.3"
-    inherits "^2.0.4"
-    parse-asn1 "^5.1.5"
-    readable-stream "^3.6.0"
-    safe-buffer "^5.2.0"
-
-browserify-zlib@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
-  integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
-  dependencies:
-    pako "~1.0.5"
-
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6:
+browserslist@^4.0.0:
   version "4.16.6"
   resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
   integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
@@ -2293,44 +2518,28 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6:
     escalade "^3.1.1"
     node-releases "^1.1.71"
 
+browserslist@^4.16.3, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2:
+  version "4.22.3"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
+  integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
+  dependencies:
+    caniuse-lite "^1.0.30001580"
+    electron-to-chromium "^1.4.648"
+    node-releases "^2.0.14"
+    update-browserslist-db "^1.0.13"
+
 buffer-from@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
   integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
 
-buffer-indexof@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
-  integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
-
-buffer-json@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23"
-  integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==
-
-buffer-xor@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-  integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
-
-buffer@^4.3.0:
-  version "4.9.2"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
-  integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+buffer@^5.5.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
   dependencies:
-    base64-js "^1.0.2"
-    ieee754 "^1.1.4"
-    isarray "^1.0.0"
-
-builtin-modules@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
-builtin-status-codes@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-  integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
+    base64-js "^1.3.1"
+    ieee754 "^1.1.13"
 
 bytes@3.0.0:
   version "3.0.0"
@@ -2342,55 +2551,12 @@ bytes@3.1.0:
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
-cacache@^12.0.2, cacache@^12.0.3:
-  version "12.0.4"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
-  integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
-  dependencies:
-    bluebird "^3.5.5"
-    chownr "^1.1.1"
-    figgy-pudding "^3.5.1"
-    glob "^7.1.4"
-    graceful-fs "^4.1.15"
-    infer-owner "^1.0.3"
-    lru-cache "^5.1.1"
-    mississippi "^3.0.0"
-    mkdirp "^0.5.1"
-    move-concurrently "^1.0.1"
-    promise-inflight "^1.0.1"
-    rimraf "^2.6.3"
-    ssri "^6.0.1"
-    unique-filename "^1.1.1"
-    y18n "^4.0.0"
-
-cache-base@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
-  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
-  dependencies:
-    collection-visit "^1.0.0"
-    component-emitter "^1.2.1"
-    get-value "^2.0.6"
-    has-value "^1.0.0"
-    isobject "^3.0.1"
-    set-value "^2.0.0"
-    to-object-path "^0.3.0"
-    union-value "^1.0.0"
-    unset-value "^1.0.0"
-
-cache-loader@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e"
-  integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==
-  dependencies:
-    buffer-json "^2.0.0"
-    find-cache-dir "^3.0.0"
-    loader-utils "^1.2.3"
-    mkdirp "^0.5.1"
-    neo-async "^2.6.1"
-    schema-utils "^2.0.0"
+bytes@3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+  integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
 
-call-bind@^1.0.0, call-bind@^1.0.2:
+call-bind@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
   integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
@@ -2398,44 +2564,20 @@ call-bind@^1.0.0, call-bind@^1.0.2:
     function-bind "^1.1.1"
     get-intrinsic "^1.0.2"
 
-call-me-maybe@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
-  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
-
-caller-callsite@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
-  integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
-  dependencies:
-    callsites "^2.0.0"
-
-caller-path@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
-  integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
-  dependencies:
-    caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
-  integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
 callsites@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
-camel-case@3.0.x:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
-  integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
+camel-case@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+  integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
   dependencies:
-    no-case "^2.2.0"
-    upper-case "^1.1.1"
+    pascal-case "^3.1.2"
+    tslib "^2.0.3"
 
-camelcase@^5.0.0, camelcase@^5.3.1:
+camelcase@^5.0.0:
   version "5.3.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
@@ -2455,33 +2597,22 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219:
   version "1.0.30001235"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed"
   integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==
 
+caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001580:
+  version "1.0.30001584"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd"
+  integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==
+
 case-sensitive-paths-webpack-plugin@^2.3.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
   integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
 
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-
-chalk@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
-  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
-  dependencies:
-    ansi-styles "^2.2.1"
-    escape-string-regexp "^1.0.2"
-    has-ansi "^2.0.0"
-    strip-ansi "^3.0.0"
-    supports-color "^2.0.0"
-
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2490,6 +2621,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
+chalk@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 chalk@^4.0.0, chalk@^4.1.0:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
@@ -2498,15 +2637,18 @@ chalk@^4.0.0, chalk@^4.1.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-chardet@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
-  integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+chalk@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
 
-check-types@^8.0.3:
-  version "8.0.3"
-  resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
-  integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
+character-entities@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22"
+  integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==
 
 cheerio@^0.22.0:
   version "0.22.0"
@@ -2530,44 +2672,20 @@ cheerio@^0.22.0:
     lodash.reject "^4.4.0"
     lodash.some "^4.4.0"
 
-chokidar@^2.1.8:
-  version "2.1.8"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
-  integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
+chokidar@^3.4.2, chokidar@^3.5.3:
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+  integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
   dependencies:
-    anymatch "^2.0.0"
-    async-each "^1.0.1"
-    braces "^2.3.2"
-    glob-parent "^3.1.0"
-    inherits "^2.0.3"
-    is-binary-path "^1.0.0"
-    is-glob "^4.0.0"
-    normalize-path "^3.0.0"
-    path-is-absolute "^1.0.0"
-    readdirp "^2.2.1"
-    upath "^1.1.1"
-  optionalDependencies:
-    fsevents "^1.2.7"
-
-chokidar@^3.3.0, chokidar@^3.4.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
-  integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
-  dependencies:
-    anymatch "~3.1.1"
+    anymatch "~3.1.2"
     braces "~3.0.2"
-    glob-parent "~5.1.0"
+    glob-parent "~5.1.2"
     is-binary-path "~2.1.0"
     is-glob "~4.0.1"
     normalize-path "~3.0.0"
-    readdirp "~3.5.0"
+    readdirp "~3.6.0"
   optionalDependencies:
-    fsevents "~2.3.1"
-
-chownr@^1.1.1:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
-  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+    fsevents "~2.3.2"
 
 chrome-trace-event@^1.0.2:
   version "1.0.3"
@@ -2577,34 +2695,16 @@ chrome-trace-event@^1.0.2:
 ci-info@^1.5.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
-  integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
-  integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-class-utils@^0.3.5:
-  version "0.3.6"
-  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
-  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
-  dependencies:
-    arr-union "^3.1.0"
-    define-property "^0.2.5"
-    isobject "^3.0.0"
-    static-extend "^0.1.1"
+  integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
 
-clean-css@4.2.x:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
-  integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
+clean-css@^5.2.2:
+  version "5.3.3"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd"
+  integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==
   dependencies:
     source-map "~0.6.0"
 
-cli-cursor@^2.1.0:
+cli-cursor@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
   integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
@@ -2618,7 +2718,7 @@ cli-cursor@^3.1.0:
   dependencies:
     restore-cursor "^3.1.0"
 
-cli-highlight@^2.1.4:
+cli-highlight@^2.1.10:
   version "2.1.11"
   resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf"
   integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==
@@ -2630,15 +2730,10 @@ cli-highlight@^2.1.4:
     parse5-htmlparser2-tree-adapter "^6.0.0"
     yargs "^16.0.0"
 
-cli-spinners@^2.0.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939"
-  integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==
-
-cli-width@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
-  integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+cli-spinners@^2.5.0:
+  version "2.9.2"
+  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
+  integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
 
 clipboardy@^2.3.0:
   version "2.3.0"
@@ -2649,25 +2744,7 @@ clipboardy@^2.3.0:
     execa "^1.0.0"
     is-wsl "^2.1.1"
 
-cliui@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
-  integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
-  dependencies:
-    string-width "^3.1.0"
-    strip-ansi "^5.2.0"
-    wrap-ansi "^5.1.0"
-
-cliui@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
-  integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
-  dependencies:
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
-    wrap-ansi "^6.2.0"
-
-cliui@^7.0.2:
+cliui@^7.0.2, cliui@^7.0.4:
   version "7.0.4"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
   integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
@@ -2676,29 +2753,21 @@ cliui@^7.0.2:
     strip-ansi "^6.0.0"
     wrap-ansi "^7.0.0"
 
+clone-deep@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+  integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+  dependencies:
+    is-plain-object "^2.0.4"
+    kind-of "^6.0.2"
+    shallow-clone "^3.0.0"
+
 clone@^1.0.2:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
   integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
-coa@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
-  integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
-  dependencies:
-    "@types/q" "^1.5.1"
-    chalk "^2.4.1"
-    q "^1.1.2"
-
-collection-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
-  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
-  dependencies:
-    map-visit "^1.0.0"
-    object-visit "^1.0.0"
-
-color-convert@^1.9.0, color-convert@^1.9.1:
+color-convert@^1.9.0:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
   integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -2717,60 +2786,54 @@ color-name@1.1.3:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@~1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
-color-string@^1.5.4:
-  version "1.5.5"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
-  integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
-  dependencies:
-    color-name "^1.0.0"
-    simple-swizzle "^0.2.2"
-
-color@^3.0.0:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
-  integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
-  dependencies:
-    color-convert "^1.9.1"
-    color-string "^1.5.4"
+colord@^2.9.1:
+  version "2.9.3"
+  resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
+  integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
 
-colorette@^1.2.1, colorette@^1.2.2:
+colorette@^1.2.2:
   version "1.2.2"
   resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
   integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
 
-combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
+colorette@^2.0.10:
+  version "2.0.20"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
+  integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+
+combined-stream@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@2.17.x:
-  version "2.17.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
-  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
-
-commander@^2.12.1, commander@^2.18.0, commander@^2.20.0:
+commander@^2.20.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@~2.19.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
-  integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+commander@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
+commander@^8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+  integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
 
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
   integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
 
-component-emitter@^1.2.1, component-emitter@^1.3.0:
+component-emitter@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
   integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
@@ -2800,25 +2863,10 @@ concat-map@0.0.1:
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
 
-concat-stream@^1.5.0:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-connect-history-api-fallback@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
-  integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
-
-console-browserify@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
-  integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+connect-history-api-fallback@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
+  integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
 
 consolidate@^0.15.1:
   version "0.15.1"
@@ -2827,108 +2875,67 @@ consolidate@^0.15.1:
   dependencies:
     bluebird "^3.1.1"
 
-constants-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-  integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
-
-content-disposition@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
-  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+content-disposition@0.5.4:
+  version "0.5.4"
+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+  integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
   dependencies:
-    safe-buffer "5.1.2"
+    safe-buffer "5.2.1"
 
 content-type@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
-convert-source-map@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
-  integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
-  dependencies:
-    safe-buffer "~5.1.1"
+convert-source-map@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+  integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
 
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
 
-cookie@0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
-  integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+cookie@0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+  integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
 
 cookiejar@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c"
   integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==
 
-copy-concurrently@^1.0.0:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
-  integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
-  dependencies:
-    aproba "^1.1.1"
-    fs-write-stream-atomic "^1.0.8"
-    iferr "^0.1.5"
-    mkdirp "^0.5.1"
-    rimraf "^2.5.4"
-    run-queue "^1.0.0"
-
-copy-descriptor@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
-  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-
-copy-webpack-plugin@^5.1.1:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2"
-  integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==
+copy-webpack-plugin@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz#2d2c460c4c4695ec0a58afb2801a1205256c4e6b"
+  integrity sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==
   dependencies:
-    cacache "^12.0.3"
-    find-cache-dir "^2.1.0"
-    glob-parent "^3.1.0"
-    globby "^7.1.1"
-    is-glob "^4.0.1"
-    loader-utils "^1.2.3"
-    minimatch "^3.0.4"
+    fast-glob "^3.2.7"
+    glob-parent "^6.0.1"
+    globby "^11.0.3"
     normalize-path "^3.0.0"
-    p-limit "^2.2.1"
-    schema-utils "^1.0.0"
-    serialize-javascript "^4.0.0"
-    webpack-log "^2.0.0"
+    schema-utils "^3.1.1"
+    serialize-javascript "^6.0.0"
 
-core-js-compat@^3.6.5, core-js-compat@^3.9.0, core-js-compat@^3.9.1:
-  version "3.14.0"
-  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5"
-  integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==
+core-js-compat@^3.31.0, core-js-compat@^3.34.0, core-js-compat@^3.8.3:
+  version "3.35.1"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2"
+  integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==
   dependencies:
-    browserslist "^4.16.6"
-    semver "7.0.0"
+    browserslist "^4.22.2"
 
-core-js@^3.6.5:
-  version "3.14.0"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c"
-  integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA==
+core-js@^3.35.1, core-js@^3.8.3:
+  version "3.35.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c"
+  integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==
 
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
-cosmiconfig@^5.0.0:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
-  integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
-  dependencies:
-    import-fresh "^2.0.0"
-    is-directory "^0.3.1"
-    js-yaml "^3.13.1"
-    parse-json "^4.0.0"
-
 cosmiconfig@^6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -2940,36 +2947,16 @@ cosmiconfig@^6.0.0:
     path-type "^4.0.0"
     yaml "^1.7.2"
 
-create-ecdh@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
-  integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
-  dependencies:
-    bn.js "^4.1.0"
-    elliptic "^6.5.3"
-
-create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
-  integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
-  dependencies:
-    cipher-base "^1.0.1"
-    inherits "^2.0.1"
-    md5.js "^1.3.4"
-    ripemd160 "^2.0.1"
-    sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
-  integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+cosmiconfig@^7.0.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
+  integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
   dependencies:
-    cipher-base "^1.0.3"
-    create-hash "^1.1.0"
-    inherits "^2.0.1"
-    ripemd160 "^2.0.0"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.2.1"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
 
 cross-spawn@^5.0.1:
   version "5.1.0"
@@ -2980,7 +2967,7 @@ cross-spawn@^5.0.1:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+cross-spawn@^6.0.0:
   version "6.0.5"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
   integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
@@ -2991,7 +2978,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.0:
+cross-spawn@^7.0.2, cross-spawn@^7.0.3:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -3000,69 +2987,47 @@ cross-spawn@^7.0.0:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
-crypto-browserify@^3.11.0:
-  version "3.12.0"
-  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
-  integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
-  dependencies:
-    browserify-cipher "^1.0.0"
-    browserify-sign "^4.0.0"
-    create-ecdh "^4.0.0"
-    create-hash "^1.1.0"
-    create-hmac "^1.1.0"
-    diffie-hellman "^5.0.0"
-    inherits "^2.0.1"
-    pbkdf2 "^3.0.3"
-    public-encrypt "^4.0.0"
-    randombytes "^2.0.0"
-    randomfill "^1.0.3"
-
-css-color-names@0.0.4, css-color-names@^0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-  integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-
-css-declaration-sorter@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
-  integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
-  dependencies:
-    postcss "^7.0.1"
-    timsort "^0.3.0"
-
-css-loader@^3.5.3:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
-  integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
-  dependencies:
-    camelcase "^5.3.1"
-    cssesc "^3.0.0"
-    icss-utils "^4.1.1"
-    loader-utils "^1.2.3"
-    normalize-path "^3.0.0"
-    postcss "^7.0.32"
-    postcss-modules-extract-imports "^2.0.0"
-    postcss-modules-local-by-default "^3.0.2"
-    postcss-modules-scope "^2.2.0"
-    postcss-modules-values "^3.0.0"
-    postcss-value-parser "^4.1.0"
-    schema-utils "^2.7.0"
-    semver "^6.3.0"
-
-css-select-base-adapter@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
-  integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+css-declaration-sorter@^6.3.1:
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71"
+  integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==
+
+css-loader@^6.5.0:
+  version "6.10.0"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.10.0.tgz#7c172b270ec7b833951b52c348861206b184a4b7"
+  integrity sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==
+  dependencies:
+    icss-utils "^5.1.0"
+    postcss "^8.4.33"
+    postcss-modules-extract-imports "^3.0.0"
+    postcss-modules-local-by-default "^4.0.4"
+    postcss-modules-scope "^3.1.1"
+    postcss-modules-values "^4.0.0"
+    postcss-value-parser "^4.2.0"
+    semver "^7.5.4"
+
+css-minimizer-webpack-plugin@^3.0.2:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f"
+  integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==
+  dependencies:
+    cssnano "^5.0.6"
+    jest-worker "^27.0.2"
+    postcss "^8.3.5"
+    schema-utils "^4.0.0"
+    serialize-javascript "^6.0.0"
+    source-map "^0.6.1"
 
-css-select@^2.0.0, css-select@^2.0.2:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
-  integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+css-select@^4.1.3:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+  integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
   dependencies:
     boolbase "^1.0.0"
-    css-what "^3.2.1"
-    domutils "^1.7.0"
-    nth-check "^1.0.2"
+    css-what "^6.0.1"
+    domhandler "^4.3.1"
+    domutils "^2.8.0"
+    nth-check "^2.0.1"
 
 css-select@~1.2.0:
   version "1.2.0"
@@ -3074,15 +3039,7 @@ css-select@~1.2.0:
     domutils "1.5.1"
     nth-check "~1.0.1"
 
-css-tree@1.0.0-alpha.37:
-  version "1.0.0-alpha.37"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
-  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
-  dependencies:
-    mdn-data "2.0.4"
-    source-map "^0.6.1"
-
-css-tree@^1.1.2:
+css-tree@^1.1.2, css-tree@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
   integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
@@ -3095,85 +3052,66 @@ css-what@2.1:
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
   integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
 
-css-what@^3.2.1:
-  version "3.4.2"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
-  integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+css-what@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+  integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
 
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
   integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
 
-cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8:
-  version "4.0.8"
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
-  integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
-  dependencies:
-    css-declaration-sorter "^4.0.1"
-    cssnano-util-raw-cache "^4.0.1"
-    postcss "^7.0.0"
-    postcss-calc "^7.0.1"
-    postcss-colormin "^4.0.3"
-    postcss-convert-values "^4.0.1"
-    postcss-discard-comments "^4.0.2"
-    postcss-discard-duplicates "^4.0.2"
-    postcss-discard-empty "^4.0.1"
-    postcss-discard-overridden "^4.0.1"
-    postcss-merge-longhand "^4.0.11"
-    postcss-merge-rules "^4.0.3"
-    postcss-minify-font-values "^4.0.2"
-    postcss-minify-gradients "^4.0.2"
-    postcss-minify-params "^4.0.2"
-    postcss-minify-selectors "^4.0.2"
-    postcss-normalize-charset "^4.0.1"
-    postcss-normalize-display-values "^4.0.2"
-    postcss-normalize-positions "^4.0.2"
-    postcss-normalize-repeat-style "^4.0.2"
-    postcss-normalize-string "^4.0.2"
-    postcss-normalize-timing-functions "^4.0.2"
-    postcss-normalize-unicode "^4.0.1"
-    postcss-normalize-url "^4.0.1"
-    postcss-normalize-whitespace "^4.0.2"
-    postcss-ordered-values "^4.1.2"
-    postcss-reduce-initial "^4.0.3"
-    postcss-reduce-transforms "^4.0.2"
-    postcss-svgo "^4.0.3"
-    postcss-unique-selectors "^4.0.1"
-
-cssnano-util-get-arguments@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
-  integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
-
-cssnano-util-get-match@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
-  integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
-
-cssnano-util-raw-cache@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
-  integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
-  dependencies:
-    postcss "^7.0.0"
-
-cssnano-util-same-parent@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
-  integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+cssnano-preset-default@^5.2.14:
+  version "5.2.14"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8"
+  integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==
+  dependencies:
+    css-declaration-sorter "^6.3.1"
+    cssnano-utils "^3.1.0"
+    postcss-calc "^8.2.3"
+    postcss-colormin "^5.3.1"
+    postcss-convert-values "^5.1.3"
+    postcss-discard-comments "^5.1.2"
+    postcss-discard-duplicates "^5.1.0"
+    postcss-discard-empty "^5.1.1"
+    postcss-discard-overridden "^5.1.0"
+    postcss-merge-longhand "^5.1.7"
+    postcss-merge-rules "^5.1.4"
+    postcss-minify-font-values "^5.1.0"
+    postcss-minify-gradients "^5.1.1"
+    postcss-minify-params "^5.1.4"
+    postcss-minify-selectors "^5.2.1"
+    postcss-normalize-charset "^5.1.0"
+    postcss-normalize-display-values "^5.1.0"
+    postcss-normalize-positions "^5.1.1"
+    postcss-normalize-repeat-style "^5.1.1"
+    postcss-normalize-string "^5.1.0"
+    postcss-normalize-timing-functions "^5.1.0"
+    postcss-normalize-unicode "^5.1.1"
+    postcss-normalize-url "^5.1.0"
+    postcss-normalize-whitespace "^5.1.1"
+    postcss-ordered-values "^5.1.3"
+    postcss-reduce-initial "^5.1.2"
+    postcss-reduce-transforms "^5.1.0"
+    postcss-svgo "^5.1.0"
+    postcss-unique-selectors "^5.1.1"
+
+cssnano-utils@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
+  integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
 
-cssnano@^4.0.0, cssnano@^4.1.10:
-  version "4.1.11"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
-  integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
+cssnano@^5.0.0, cssnano@^5.0.6:
+  version "5.1.15"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf"
+  integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==
   dependencies:
-    cosmiconfig "^5.0.0"
-    cssnano-preset-default "^4.0.8"
-    is-resolvable "^1.0.0"
-    postcss "^7.0.0"
+    cssnano-preset-default "^5.2.14"
+    lilconfig "^2.0.3"
+    yaml "^1.10.2"
 
-csso@^4.0.2:
+csso@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
   integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
@@ -3185,17 +3123,10 @@ cssom@^0.4.4:
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
   integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
 
-cyclist@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
-  integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
-
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
-  dependencies:
-    assert-plus "^1.0.0"
+csstype@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+  integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
 
 data-uri-to-buffer@3:
   version "3.0.1"
@@ -3207,12 +3138,12 @@ date-fns@^2.28.0:
   resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2"
   integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
 
-de-indent@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
-  integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
+debounce@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
+  integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
 
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
+debug@2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -3226,34 +3157,31 @@ debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
   dependencies:
     ms "2.1.2"
 
-debug@^3.1.0, debug@^3.1.1, debug@^3.2.6:
+debug@^3.1.0, debug@^3.1.1:
   version "3.2.7"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
   integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
   dependencies:
     ms "^2.1.1"
 
-decamelize@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-decode-uri-component@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
-  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+debug@^4.0.0, debug@^4.3.2, debug@^4.3.4:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+  dependencies:
+    ms "2.1.2"
 
-deep-equal@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
-  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+decode-named-character-reference@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e"
+  integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==
   dependencies:
-    is-arguments "^1.0.4"
-    is-date-object "^1.0.1"
-    is-regex "^1.0.4"
-    object-is "^1.0.1"
-    object-keys "^1.1.1"
-    regexp.prototype.flags "^1.2.0"
+    character-entities "^2.0.0"
+
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
 
 deep-is@~0.1.3:
   version "0.1.3"
@@ -3270,20 +3198,12 @@ deepmerge@^4.2.2:
   resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
   integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
 
-default-gateway@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
-  integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
-  dependencies:
-    execa "^1.0.0"
-    ip-regex "^2.1.0"
-
-default-gateway@^5.0.5:
-  version "5.0.5"
-  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10"
-  integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==
+default-gateway@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
+  integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
   dependencies:
-    execa "^3.3.0"
+    execa "^5.0.0"
 
 defaults@^1.0.3:
   version "1.0.3"
@@ -3292,35 +3212,18 @@ defaults@^1.0.3:
   dependencies:
     clone "^1.0.2"
 
-define-properties@^1.1.2, define-properties@^1.1.3:
+define-lazy-prop@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+  integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
+define-properties@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
   integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
   dependencies:
     object-keys "^1.0.12"
 
-define-property@^0.2.5:
-  version "0.2.5"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
-  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
-  dependencies:
-    is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
-  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
-  dependencies:
-    is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
-  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
-  dependencies:
-    is-descriptor "^1.0.2"
-    isobject "^3.0.1"
-
 degenerator@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-2.2.0.tgz#49e98c11fa0293c5b26edfbb52f15729afcdb254"
@@ -3330,67 +3233,40 @@ degenerator@^2.2.0:
     escodegen "^1.8.1"
     esprima "^4.0.0"
 
-del@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
-  integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
-  dependencies:
-    "@types/glob" "^7.1.1"
-    globby "^6.1.0"
-    is-path-cwd "^2.0.0"
-    is-path-in-cwd "^2.0.0"
-    p-map "^2.0.0"
-    pify "^4.0.1"
-    rimraf "^2.6.3"
-
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
   integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 
+depd@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+  integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
   integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
 
-des.js@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
-  integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
-  dependencies:
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
+dequal@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+  integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
 
-destroy@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+destroy@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+  integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
 
 detect-node@^2.0.4:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
   integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
 
-diff@^4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
-  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-diffie-hellman@^5.0.0:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
-  integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
-  dependencies:
-    bn.js "^4.1.0"
-    miller-rabin "^4.0.0"
-    randombytes "^2.0.0"
-
-dir-glob@^2.0.0, dir-glob@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
-  integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
-  dependencies:
-    path-type "^3.0.0"
+diff@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
+  integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
 
 dir-glob@^3.0.1:
   version "3.0.1"
@@ -3399,25 +3275,12 @@ dir-glob@^3.0.1:
   dependencies:
     path-type "^4.0.0"
 
-dns-equal@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
-  integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
-
-dns-packet@^1.3.1:
-  version "1.3.4"
-  resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
-  integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
-  dependencies:
-    ip "^1.1.0"
-    safe-buffer "^5.0.1"
-
-dns-txt@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
-  integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
+dns-packet@^5.2.2:
+  version "5.6.1"
+  resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f"
+  integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==
   dependencies:
-    buffer-indexof "^1.0.0"
+    "@leichtgewicht/ip-codec" "^2.0.1"
 
 doctrine@^3.0.0:
   version "3.0.0"
@@ -3426,7 +3289,7 @@ doctrine@^3.0.0:
   dependencies:
     esutils "^2.0.2"
 
-dom-converter@^0.2:
+dom-converter@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
   integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
@@ -3441,6 +3304,15 @@ dom-serializer@0:
     domelementtype "^2.0.1"
     entities "^2.0.0"
 
+dom-serializer@^1.0.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+  integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.2.0"
+    entities "^2.0.0"
+
 dom-serializer@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
@@ -3449,11 +3321,6 @@ dom-serializer@~0.1.0:
     domelementtype "^1.3.0"
     entities "^1.1.1"
 
-domain-browser@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
-  integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-
 domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
@@ -3464,6 +3331,11 @@ domelementtype@^2.0.1:
   resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
   integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
 
+domelementtype@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+  integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
 domhandler@^2.3.0:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
@@ -3471,6 +3343,13 @@ domhandler@^2.3.0:
   dependencies:
     domelementtype "1"
 
+domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+  integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+  dependencies:
+    domelementtype "^2.2.0"
+
 domutils@1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -3479,7 +3358,7 @@ domutils@1.5.1:
     dom-serializer "0"
     domelementtype "1"
 
-domutils@^1.5.1, domutils@^1.7.0:
+domutils@^1.5.1:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
   integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
@@ -3487,99 +3366,68 @@ domutils@^1.5.1, domutils@^1.7.0:
     dom-serializer "0"
     domelementtype "1"
 
-dot-prop@^5.2.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
-  integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+domutils@^2.5.2, domutils@^2.8.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+  integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+  dependencies:
+    dom-serializer "^1.0.1"
+    domelementtype "^2.2.0"
+    domhandler "^4.2.0"
+
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
   dependencies:
-    is-obj "^2.0.0"
+    no-case "^3.0.4"
+    tslib "^2.0.3"
 
 dotenv-expand@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
   integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
 
-dotenv@^8.2.0:
-  version "8.6.0"
-  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
-  integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==
+dotenv@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
+  integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
 
-duplexer@^0.1.1:
+duplexer@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
   integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
 
-duplexify@^3.4.2, duplexify@^3.6.0:
-  version "3.7.1"
-  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
-  integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
-  dependencies:
-    end-of-stream "^1.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.0.0"
-    stream-shift "^1.0.0"
-
-easy-stack@^1.0.1:
+easy-stack@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066"
   integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==
 
-ecc-jsbn@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
-  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  dependencies:
-    jsbn "~0.1.0"
-    safer-buffer "^2.1.0"
-
 ee-first@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
 
-ejs@^2.6.1:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
-  integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
-
 electron-to-chromium@^1.3.723:
   version "1.3.749"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a"
   integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==
 
-elliptic@^6.5.3:
-  version "6.5.4"
-  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
-  integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
-  dependencies:
-    bn.js "^4.11.9"
-    brorand "^1.1.0"
-    hash.js "^1.0.0"
-    hmac-drbg "^1.0.1"
-    inherits "^2.0.4"
-    minimalistic-assert "^1.0.1"
-    minimalistic-crypto-utils "^1.0.1"
+electron-to-chromium@^1.4.648:
+  version "1.4.657"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.657.tgz#8a07ee3faa552976970843a80a1c94088ea59c9a"
+  integrity sha512-On2ymeleg6QbRuDk7wNgDdXtNqlJLM2w4Agx1D/RiTmItiL+a9oq5p7HUa2ZtkAtGBe/kil2dq/7rPfkbe0r5w==
 
 emoji-picker-element@1.12.1:
   version "1.12.1"
   resolved "https://registry.yarnpkg.com/emoji-picker-element/-/emoji-picker-element-1.12.1.tgz#854a9bbae4d9a04fa2b5cd0763845921f4904c83"
   integrity sha512-F9AY/re8uqZmBcCXLHLGvyy7fxuMQdZl9R8OToLRH8Vnns+WMX8RYUbI2nSJklzl5+82qzpYWeus1/puDepWcQ==
 
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
-emojis-list@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-  integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-
 emojis-list@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
@@ -3590,21 +3438,28 @@ encodeurl@~1.0.2:
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
   integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.1.0:
   version "1.4.4"
   resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
   integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
   dependencies:
     once "^1.4.0"
 
-enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
-  integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
+enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0:
+  version "5.15.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35"
+  integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==
   dependencies:
-    graceful-fs "^4.1.2"
-    memory-fs "^0.5.0"
-    tapable "^1.0.0"
+    graceful-fs "^4.2.4"
+    tapable "^2.2.0"
+
+enquirer@^2.3.5:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56"
+  integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==
+  dependencies:
+    ansi-colors "^4.1.1"
+    strip-ansi "^6.0.1"
 
 entities@^1.1.1, entities@~1.1.1:
   version "1.1.2"
@@ -3616,12 +3471,10 @@ entities@^2.0.0:
   resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
   integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
 
-errno@^0.1.3, errno@~0.1.7:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
-  integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
-  dependencies:
-    prr "~1.0.1"
+entities@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
+  integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
 
 error-ex@^1.3.1:
   version "1.3.2"
@@ -3630,43 +3483,17 @@ error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-error-stack-parser@^2.0.2:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
-  integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
-  dependencies:
-    stackframe "^1.1.1"
-
-es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
-  version "1.18.3"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"
-  integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==
+error-stack-parser@^2.0.6:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286"
+  integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==
   dependencies:
-    call-bind "^1.0.2"
-    es-to-primitive "^1.2.1"
-    function-bind "^1.1.1"
-    get-intrinsic "^1.1.1"
-    has "^1.0.3"
-    has-symbols "^1.0.2"
-    is-callable "^1.2.3"
-    is-negative-zero "^2.0.1"
-    is-regex "^1.1.3"
-    is-string "^1.0.6"
-    object-inspect "^1.10.3"
-    object-keys "^1.1.1"
-    object.assign "^4.1.2"
-    string.prototype.trimend "^1.0.4"
-    string.prototype.trimstart "^1.0.4"
-    unbox-primitive "^1.0.1"
+    stackframe "^1.3.4"
 
-es-to-primitive@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
-  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
-  dependencies:
-    is-callable "^1.1.4"
-    is-date-object "^1.0.1"
-    is-symbol "^1.0.2"
+es-module-lexer@^1.2.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5"
+  integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==
 
 escalade@^3.1.1:
   version "3.1.1"
@@ -3678,11 +3505,16 @@ escape-html@~1.0.3:
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
   integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
 
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
 escodegen@^1.8.1:
   version "1.14.3"
   resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
@@ -3702,42 +3534,31 @@ eslint-config-prettier@^6.0.0:
   dependencies:
     get-stdin "^6.0.0"
 
-eslint-loader@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337"
-  integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==
-  dependencies:
-    loader-fs-cache "^1.0.0"
-    loader-utils "^1.0.2"
-    object-assign "^4.0.1"
-    object-hash "^1.1.4"
-    rimraf "^2.6.1"
+eslint-config-prettier@^8.3.0:
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11"
+  integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
 
-eslint-plugin-prettier@^3.3.1:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7"
-  integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==
+eslint-plugin-prettier@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
+  integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
   dependencies:
     prettier-linter-helpers "^1.0.0"
 
-eslint-plugin-vue@^6.2.2:
-  version "6.2.2"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
-  integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
+eslint-plugin-vue@^8.0.3:
+  version "8.7.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz#f13c53547a0c9d64588a675cc5ecc6ccaf63703f"
+  integrity sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==
   dependencies:
+    eslint-utils "^3.0.0"
     natural-compare "^1.4.0"
-    semver "^5.6.0"
-    vue-eslint-parser "^7.0.0"
-
-eslint-scope@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
-  integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
-  dependencies:
-    esrecurse "^4.1.0"
-    estraverse "^4.1.1"
+    nth-check "^2.0.1"
+    postcss-selector-parser "^6.0.9"
+    semver "^7.3.5"
+    vue-eslint-parser "^8.0.1"
 
-eslint-scope@^5.0.0, eslint-scope@^5.1.1:
+eslint-scope@5.1.1, eslint-scope@^5.1.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
   integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -3745,10 +3566,18 @@ eslint-scope@^5.0.0, eslint-scope@^5.1.1:
     esrecurse "^4.3.0"
     estraverse "^4.1.1"
 
-eslint-utils@^1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
-  integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+eslint-scope@^7.0.0:
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+  integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^5.2.0"
+
+eslint-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
   dependencies:
     eslint-visitor-keys "^1.1.0"
 
@@ -3759,7 +3588,7 @@ eslint-utils@^3.0.0:
   dependencies:
     eslint-visitor-keys "^2.0.0"
 
-eslint-visitor-keys@^1.1.0:
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
   integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
@@ -3769,71 +3598,99 @@ eslint-visitor-keys@^2.0.0:
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
   integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
 
-eslint@^6.7.2:
-  version "6.8.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
-  integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
+eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
+  version "3.4.3"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+  integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint-webpack-plugin@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c"
+  integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==
   dependencies:
-    "@babel/code-frame" "^7.0.0"
+    "@types/eslint" "^7.29.0 || ^8.4.1"
+    jest-worker "^28.0.2"
+    micromatch "^4.0.5"
+    normalize-path "^3.0.0"
+    schema-utils "^4.0.0"
+
+eslint@^7.32.0:
+  version "7.32.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
+  integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
+  dependencies:
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.4.3"
+    "@humanwhocodes/config-array" "^0.5.0"
     ajv "^6.10.0"
-    chalk "^2.1.0"
-    cross-spawn "^6.0.5"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
     debug "^4.0.1"
     doctrine "^3.0.0"
-    eslint-scope "^5.0.0"
-    eslint-utils "^1.4.3"
-    eslint-visitor-keys "^1.1.0"
-    espree "^6.1.2"
-    esquery "^1.0.1"
+    enquirer "^2.3.5"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^5.1.1"
+    eslint-utils "^2.1.0"
+    eslint-visitor-keys "^2.0.0"
+    espree "^7.3.1"
+    esquery "^1.4.0"
     esutils "^2.0.2"
-    file-entry-cache "^5.0.1"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
     functional-red-black-tree "^1.0.1"
-    glob-parent "^5.0.0"
-    globals "^12.1.0"
+    glob-parent "^5.1.2"
+    globals "^13.6.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
-    inquirer "^7.0.0"
     is-glob "^4.0.0"
     js-yaml "^3.13.1"
     json-stable-stringify-without-jsonify "^1.0.1"
-    levn "^0.3.0"
-    lodash "^4.17.14"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
     minimatch "^3.0.4"
-    mkdirp "^0.5.1"
     natural-compare "^1.4.0"
-    optionator "^0.8.3"
+    optionator "^0.9.1"
     progress "^2.0.0"
-    regexpp "^2.0.1"
-    semver "^6.1.2"
-    strip-ansi "^5.2.0"
-    strip-json-comments "^3.0.1"
-    table "^5.2.3"
+    regexpp "^3.1.0"
+    semver "^7.2.1"
+    strip-ansi "^6.0.0"
+    strip-json-comments "^3.1.0"
+    table "^6.0.9"
     text-table "^0.2.0"
     v8-compile-cache "^2.0.3"
 
-espree@^6.1.2, espree@^6.2.1:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
-  integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
+espree@^7.3.0, espree@^7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
   dependencies:
-    acorn "^7.1.1"
-    acorn-jsx "^5.2.0"
-    eslint-visitor-keys "^1.1.0"
+    acorn "^7.4.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^1.3.0"
+
+espree@^9.0.0:
+  version "9.6.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+  integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+  dependencies:
+    acorn "^8.9.0"
+    acorn-jsx "^5.3.2"
+    eslint-visitor-keys "^3.4.1"
 
 esprima@^4.0.0, esprima@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
-esquery@^1.0.1, esquery@^1.4.0:
+esquery@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
   integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
   dependencies:
     estraverse "^5.1.0"
 
-esrecurse@^4.1.0, esrecurse@^4.3.0:
+esrecurse@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
   integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
@@ -3850,6 +3707,11 @@ estraverse@^5.1.0, estraverse@^5.2.0:
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
   integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
 
+estree-walker@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+  integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
 esutils@^2.0.2:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -3870,25 +3732,10 @@ eventemitter3@^4.0.0:
   resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
   integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
 
-events@^3.0.0:
+events@^3.2.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
-  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-
-eventsource@^1.0.7:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf"
-  integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==
-  dependencies:
-    original "^1.0.0"
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
-  integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
-  dependencies:
-    md5.js "^1.3.4"
-    safe-buffer "^5.1.1"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
 
 execa@^0.8.0:
   version "0.8.0"
@@ -3916,114 +3763,58 @@ execa@^1.0.0:
     signal-exit "^3.0.0"
     strip-eof "^1.0.0"
 
-execa@^3.3.0:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
-  integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+execa@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
   dependencies:
-    cross-spawn "^7.0.0"
-    get-stream "^5.0.0"
-    human-signals "^1.1.1"
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
     is-stream "^2.0.0"
     merge-stream "^2.0.0"
-    npm-run-path "^4.0.0"
-    onetime "^5.1.0"
-    p-finally "^2.0.0"
-    signal-exit "^3.0.2"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
     strip-final-newline "^2.0.0"
 
-expand-brackets@^2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
-  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
-  dependencies:
-    debug "^2.3.3"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    posix-character-classes "^0.1.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
-express@^4.16.3, express@^4.17.1:
-  version "4.17.1"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
-  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
-  dependencies:
-    accepts "~1.3.7"
+express@^4.17.3:
+  version "4.18.2"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
+  integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+  dependencies:
+    accepts "~1.3.8"
     array-flatten "1.1.1"
-    body-parser "1.19.0"
-    content-disposition "0.5.3"
+    body-parser "1.20.1"
+    content-disposition "0.5.4"
     content-type "~1.0.4"
-    cookie "0.4.0"
+    cookie "0.5.0"
     cookie-signature "1.0.6"
     debug "2.6.9"
-    depd "~1.1.2"
+    depd "2.0.0"
     encodeurl "~1.0.2"
     escape-html "~1.0.3"
     etag "~1.8.1"
-    finalhandler "~1.1.2"
+    finalhandler "1.2.0"
     fresh "0.5.2"
+    http-errors "2.0.0"
     merge-descriptors "1.0.1"
     methods "~1.1.2"
-    on-finished "~2.3.0"
+    on-finished "2.4.1"
     parseurl "~1.3.3"
     path-to-regexp "0.1.7"
-    proxy-addr "~2.0.5"
-    qs "6.7.0"
+    proxy-addr "~2.0.7"
+    qs "6.11.0"
     range-parser "~1.2.1"
-    safe-buffer "5.1.2"
-    send "0.17.1"
-    serve-static "1.14.1"
-    setprototypeof "1.1.1"
-    statuses "~1.5.0"
+    safe-buffer "5.2.1"
+    send "0.18.0"
+    serve-static "1.15.0"
+    setprototypeof "1.2.0"
+    statuses "2.0.1"
     type-is "~1.6.18"
     utils-merge "1.0.1"
     vary "~1.1.2"
 
-extend-shallow@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
-  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
-  dependencies:
-    is-extendable "^0.1.0"
-
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
-  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
-  dependencies:
-    assign-symbols "^1.0.0"
-    is-extendable "^1.0.1"
-
-extend@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-external-editor@^3.0.3:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
-  integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
-  dependencies:
-    chardet "^0.7.0"
-    iconv-lite "^0.4.24"
-    tmp "^0.0.33"
-
-extglob@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
-  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
-  dependencies:
-    array-unique "^0.3.2"
-    define-property "^1.0.0"
-    expand-brackets "^2.1.4"
-    extend-shallow "^2.0.1"
-    fragment-cache "^0.2.1"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
 extract-css@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/extract-css/-/extract-css-2.0.0.tgz#d31fb1dc3d97be940a3762736837211b6a1b55a9"
@@ -4034,17 +3825,7 @@ extract-css@^2.0.0:
     list-stylesheets "^1.2.9"
     style-data "^1.4.7"
 
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-
-fast-deep-equal@^3.1.1:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
@@ -4054,18 +3835,6 @@ fast-diff@^1.1.2:
   resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
   integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
 
-fast-glob@^2.2.6:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
-  integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
-  dependencies:
-    "@mrmlnc/readdir-enhanced" "^2.2.1"
-    "@nodelib/fs.stat" "^1.1.2"
-    glob-parent "^3.1.0"
-    is-glob "^4.0.0"
-    merge2 "^1.2.3"
-    micromatch "^3.1.10"
-
 fast-glob@^3.1.1:
   version "3.2.5"
   resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
@@ -4078,12 +3847,23 @@ fast-glob@^3.1.1:
     micromatch "^4.0.2"
     picomatch "^2.2.1"
 
+fast-glob@^3.2.7, fast-glob@^3.2.9:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+  integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
 fast-json-stable-stringify@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -4107,58 +3887,25 @@ faye-websocket@^0.11.3:
   dependencies:
     websocket-driver ">=0.5.1"
 
-figgy-pudding@^3.5.1:
-  version "3.5.2"
-  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
-  integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
-
-figures@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
-  integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+figures@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+  integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
   dependencies:
     escape-string-regexp "^1.0.5"
 
-file-entry-cache@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
-  integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
-  dependencies:
-    flat-cache "^2.0.1"
-
-file-loader@^4.2.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af"
-  integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
-    loader-utils "^1.2.3"
-    schema-utils "^2.5.0"
-
-file-uri-to-path@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
-  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+    flat-cache "^3.0.4"
 
 file-uri-to-path@2:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba"
   integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==
 
-filesize@^3.6.1:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
-  integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
-
-fill-range@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
-  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-    to-regex-range "^2.1.0"
-
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -4166,38 +3913,20 @@ fill-range@^7.0.1:
   dependencies:
     to-regex-range "^5.0.1"
 
-finalhandler@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
-  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+finalhandler@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+  integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
   dependencies:
     debug "2.6.9"
     encodeurl "~1.0.2"
     escape-html "~1.0.3"
-    on-finished "~2.3.0"
+    on-finished "2.4.1"
     parseurl "~1.3.3"
-    statuses "~1.5.0"
+    statuses "2.0.1"
     unpipe "~1.0.0"
 
-find-cache-dir@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
-  integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
-  dependencies:
-    commondir "^1.0.1"
-    mkdirp "^0.5.1"
-    pkg-dir "^1.0.0"
-
-find-cache-dir@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
-  integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
-  dependencies:
-    commondir "^1.0.1"
-    make-dir "^2.0.0"
-    pkg-dir "^3.0.0"
-
-find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
+find-cache-dir@^3.3.1:
   version "3.3.1"
   resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
   integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
@@ -4206,22 +3935,7 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
     make-dir "^3.0.2"
     pkg-dir "^4.1.0"
 
-find-up@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
-  integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
-  dependencies:
-    path-exists "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-find-up@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
-  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
-  dependencies:
-    locate-path "^3.0.0"
-
-find-up@^4.0.0:
+find-up@^4.0.0, find-up@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
   integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
@@ -4229,74 +3943,49 @@ find-up@^4.0.0:
     locate-path "^5.0.0"
     path-exists "^4.0.0"
 
-flat-cache@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
-  integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+flat-cache@^3.0.4:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
+  integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
   dependencies:
-    flatted "^2.0.0"
-    rimraf "2.6.3"
-    write "1.0.3"
+    flatted "^3.2.9"
+    keyv "^4.5.3"
+    rimraf "^3.0.2"
 
-flatted@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
-  integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+flat@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
+  integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
 
-flush-write-stream@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
-  integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
-  dependencies:
-    inherits "^2.0.3"
-    readable-stream "^2.3.6"
+flatted@^3.2.9:
+  version "3.2.9"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
+  integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
 
 follow-redirects@^1.0.0, follow-redirects@^1.10.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
   integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
 
-for-in@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-
-"fork-ts-checker-webpack-plugin-v5@npm:fork-ts-checker-webpack-plugin@^5.0.11":
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.2.1.tgz#79326d869797906fa8b24e2abcf9421fc805450d"
-  integrity sha512-SVi+ZAQOGbtAsUWrZvGzz38ga2YqjWvca1pXQFUArIVXqli0lLoDQ8uS0wg0kSpcwpZmaW5jVCZXQebkyUQSsw==
+fork-ts-checker-webpack-plugin@^6.4.0:
+  version "6.5.3"
+  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3"
+  integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==
   dependencies:
     "@babel/code-frame" "^7.8.3"
     "@types/json-schema" "^7.0.5"
     chalk "^4.1.0"
+    chokidar "^3.4.2"
     cosmiconfig "^6.0.0"
     deepmerge "^4.2.2"
     fs-extra "^9.0.0"
+    glob "^7.1.6"
     memfs "^3.1.2"
     minimatch "^3.0.4"
     schema-utils "2.7.0"
     semver "^7.3.2"
     tapable "^1.0.0"
 
-fork-ts-checker-webpack-plugin@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19"
-  integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==
-  dependencies:
-    babel-code-frame "^6.22.0"
-    chalk "^2.4.1"
-    chokidar "^3.3.0"
-    micromatch "^3.1.10"
-    minimatch "^3.0.4"
-    semver "^5.6.0"
-    tapable "^1.0.0"
-    worker-rpc "^0.1.0"
-
 form-data@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
@@ -4306,15 +3995,6 @@ form-data@^3.0.0:
     combined-stream "^1.0.8"
     mime-types "^2.1.12"
 
-form-data@~2.3.2:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
-  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "^1.0.6"
-    mime-types "^2.1.12"
-
 formidable@^1.2.2:
   version "1.2.2"
   resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9"
@@ -4325,35 +4005,16 @@ forwarded@0.2.0:
   resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
   integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
 
-fragment-cache@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
-  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
-  dependencies:
-    map-cache "^0.2.2"
+fraction.js@^4.3.7:
+  version "4.3.7"
+  resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
+  integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
 
 fresh@0.5.2:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
   integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
 
-from2@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
-  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
-  dependencies:
-    inherits "^2.0.1"
-    readable-stream "^2.0.0"
-
-fs-extra@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
-  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
 fs-extra@^8.1.0:
   version "8.1.0"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -4363,7 +4024,7 @@ fs-extra@^8.1.0:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
-fs-extra@^9.0.0:
+fs-extra@^9.0.0, fs-extra@^9.1.0:
   version "9.1.0"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
   integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
@@ -4378,33 +4039,20 @@ fs-monkey@1.0.3:
   resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3"
   integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==
 
-fs-write-stream-atomic@^1.0.8:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
-  integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
-  dependencies:
-    graceful-fs "^4.1.2"
-    iferr "^0.1.5"
-    imurmurhash "^0.1.4"
-    readable-stream "1 || 2"
+fs-monkey@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788"
+  integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==
 
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
-fsevents@^1.2.7:
-  version "1.2.13"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
-  integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
-  dependencies:
-    bindings "^1.5.0"
-    nan "^2.12.1"
-
-fsevents@~2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
-  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+fsevents@~2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
 
 ftp@^0.3.10:
   version "0.3.10"
@@ -4429,12 +4077,12 @@ gensync@^1.0.0-beta.2:
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
   integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
 
-get-caller-file@^2.0.1, get-caller-file@^2.0.5:
+get-caller-file@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
+get-intrinsic@^1.0.2:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
   integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
@@ -4460,12 +4108,10 @@ get-stream@^4.0.0:
   dependencies:
     pump "^3.0.0"
 
-get-stream@^5.0.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
-  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
-  dependencies:
-    pump "^3.0.0"
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
 
 get-uri@3:
   version "3.0.2"
@@ -4479,39 +4125,26 @@ get-uri@3:
     fs-extra "^8.1.0"
     ftp "^0.3.10"
 
-get-value@^2.0.3, get-value@^2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
-  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
-  dependencies:
-    assert-plus "^1.0.0"
-
-glob-parent@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
-  integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
-  dependencies:
-    is-glob "^3.1.0"
-    path-dirname "^1.0.0"
-
-glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
+glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
   integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
-glob-to-regexp@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
-  integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
+glob-parent@^6.0.1:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+glob-to-regexp@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+  integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
 
-glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.1.3:
   version "7.1.7"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
   integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
@@ -4523,17 +4156,41 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+glob@^7.1.6:
+  version "7.2.3"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+  integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.1.1"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
 globals@^11.1.0:
   version "11.12.0"
   resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
   integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
 
-globals@^12.1.0:
-  version "12.4.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
-  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+globals@^13.6.0, globals@^13.9.0:
+  version "13.24.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+  integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
   dependencies:
-    type-fest "^0.8.1"
+    type-fest "^0.20.2"
+
+globby@^11.0.2, globby@^11.1.0:
+  version "11.1.0"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+  integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.2.9"
+    ignore "^5.2.0"
+    merge2 "^1.4.1"
+    slash "^3.0.0"
 
 globby@^11.0.3:
   version "11.0.3"
@@ -4547,86 +4204,33 @@ globby@^11.0.3:
     merge2 "^1.3.0"
     slash "^3.0.0"
 
-globby@^6.1.0:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
-  integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
-  dependencies:
-    array-union "^1.0.1"
-    glob "^7.0.3"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-globby@^7.1.1:
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
-  integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
-  dependencies:
-    array-union "^1.0.1"
-    dir-glob "^2.0.0"
-    glob "^7.1.2"
-    ignore "^3.3.5"
-    pify "^3.0.0"
-    slash "^1.0.0"
-
-globby@^9.2.0:
-  version "9.2.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
-  integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
-  dependencies:
-    "@types/glob" "^7.1.1"
-    array-union "^1.0.2"
-    dir-glob "^2.2.2"
-    fast-glob "^2.2.6"
-    glob "^7.1.3"
-    ignore "^4.0.3"
-    pify "^4.0.1"
-    slash "^2.0.0"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
   version "4.2.6"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
   integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
 
-gzip-size@^5.0.0:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
-  integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
+graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
+  version "4.2.11"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+  integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+graphemer@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+  integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+gzip-size@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+  integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
   dependencies:
-    duplexer "^0.1.1"
-    pify "^4.0.1"
+    duplexer "^0.1.2"
 
 handle-thing@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
   integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
 
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.3:
-  version "5.1.5"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
-  integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
-  dependencies:
-    ajv "^6.12.3"
-    har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
-  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
-  dependencies:
-    ansi-regex "^2.0.0"
-
-has-bigints@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
-  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
-
 has-flag@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -4637,58 +4241,18 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-symbols@^1.0.1, has-symbols@^1.0.2:
+has-symbols@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
   integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
 
-has-value@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
-  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
-  dependencies:
-    get-value "^2.0.3"
-    has-values "^0.1.4"
-    isobject "^2.0.0"
-
-has-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
-  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
-  dependencies:
-    get-value "^2.0.6"
-    has-values "^1.0.0"
-    isobject "^3.0.0"
-
-has-values@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
-  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
-
-has-values@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
-  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
-  dependencies:
-    is-number "^3.0.0"
-    kind-of "^4.0.0"
-
-has@^1.0.0, has@^1.0.3:
+has@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
   integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
   dependencies:
     function-bind "^1.1.1"
 
-hash-base@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
-  integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
-  dependencies:
-    inherits "^2.0.4"
-    readable-stream "^3.6.0"
-    safe-buffer "^5.2.0"
-
 hash-sum@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
@@ -4699,43 +4263,16 @@ hash-sum@^2.0.0:
   resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
   integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
 
-hash.js@^1.0.0, hash.js@^1.0.3:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
-  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
-  dependencies:
-    inherits "^2.0.3"
-    minimalistic-assert "^1.0.1"
-
-he@1.2.x, he@^1.1.0:
+he@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
-hex-color-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
-  integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
 highlight.js@^10.7.1:
   version "10.7.3"
   resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
   integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
 
-hmac-drbg@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
-  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
-  dependencies:
-    hash.js "^1.0.3"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.1"
-
-hoopy@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
-  integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
-
 hosted-git-info@^2.1.4:
   version "2.8.9"
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -4758,33 +4295,28 @@ href-content@^2.0.0:
   dependencies:
     remote-content "^2.0.0"
 
-hsl-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
-  integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+html-entities@^2.3.2:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061"
+  integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==
 
-hsla-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
-  integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+html-escaper@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+  integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
 
-html-entities@^1.3.1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
-  integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
-
-html-minifier@^3.2.3:
-  version "3.5.21"
-  resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
-  integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
-  dependencies:
-    camel-case "3.0.x"
-    clean-css "4.2.x"
-    commander "2.17.x"
-    he "1.2.x"
-    param-case "2.1.x"
-    relateurl "0.2.x"
-    uglify-js "3.4.x"
+html-minifier-terser@^6.0.2:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
+  integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==
+  dependencies:
+    camel-case "^4.1.2"
+    clean-css "^5.2.2"
+    commander "^8.3.0"
+    he "^1.2.0"
+    param-case "^3.0.4"
+    relateurl "^0.2.7"
+    terser "^5.10.0"
 
 html-tags@^2.0.0:
   version "2.0.0"
@@ -4796,20 +4328,18 @@ html-tags@^3.1.0:
   resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
   integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
 
-html-webpack-plugin@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
-  integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s=
+html-webpack-plugin@^5.1.0:
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0"
+  integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==
   dependencies:
-    html-minifier "^3.2.3"
-    loader-utils "^0.2.16"
-    lodash "^4.17.3"
-    pretty-error "^2.0.2"
-    tapable "^1.0.0"
-    toposort "^1.0.0"
-    util.promisify "1.0.0"
+    "@types/html-minifier-terser" "^6.0.0"
+    html-minifier-terser "^6.0.2"
+    lodash "^4.17.21"
+    pretty-error "^4.0.0"
+    tapable "^2.0.0"
 
-htmlparser2@^3.10.1, htmlparser2@^3.9.1:
+htmlparser2@^3.9.1:
   version "3.10.1"
   resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
   integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
@@ -4821,23 +4351,22 @@ htmlparser2@^3.10.1, htmlparser2@^3.9.1:
     inherits "^2.0.1"
     readable-stream "^3.1.1"
 
+htmlparser2@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
+  integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.0.0"
+    domutils "^2.5.2"
+    entities "^2.0.0"
+
 http-deceiver@^1.2.7:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
   integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
 
-http-errors@1.7.2:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
-  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.3"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
-http-errors@1.7.3, http-errors@~1.7.2:
+http-errors@1.7.3:
   version "1.7.3"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
   integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
@@ -4848,6 +4377,17 @@ http-errors@1.7.3, http-errors@~1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
+http-errors@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+  integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+  dependencies:
+    depd "2.0.0"
+    inherits "2.0.4"
+    setprototypeof "1.2.0"
+    statuses "2.0.1"
+    toidentifier "1.0.1"
+
 http-errors@~1.6.2:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
@@ -4872,28 +4412,18 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1:
     agent-base "6"
     debug "4"
 
-http-proxy-middleware@0.19.1:
-  version "0.19.1"
-  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
-  integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
-  dependencies:
-    http-proxy "^1.17.0"
-    is-glob "^4.0.0"
-    lodash "^4.17.11"
-    micromatch "^3.1.10"
-
-http-proxy-middleware@^1.0.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665"
-  integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==
+http-proxy-middleware@^2.0.3:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
+  integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
   dependencies:
-    "@types/http-proxy" "^1.17.5"
+    "@types/http-proxy" "^1.17.8"
     http-proxy "^1.18.1"
     is-glob "^4.0.1"
     is-plain-obj "^3.0.0"
     micromatch "^4.0.2"
 
-http-proxy@^1.17.0, http-proxy@^1.18.1:
+http-proxy@^1.18.1:
   version "1.18.1"
   resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
   integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
@@ -4902,20 +4432,6 @@ http-proxy@^1.17.0, http-proxy@^1.18.1:
     follow-redirects "^1.0.0"
     requires-port "^1.0.0"
 
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
-  dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-https-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-  integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-
 https-proxy-agent@5, https-proxy-agent@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
@@ -4924,41 +4440,29 @@ https-proxy-agent@5, https-proxy-agent@^5.0.0:
     agent-base "6"
     debug "4"
 
-human-signals@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
-  integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
 
-iconv-lite@0.4.24, iconv-lite@^0.4.24:
+iconv-lite@0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
-icss-utils@^4.0.0, icss-utils@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
-  integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
-  dependencies:
-    postcss "^7.0.14"
+icss-utils@^5.0.0, icss-utils@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
+  integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
 
-ieee754@^1.1.4:
+ieee754@^1.1.13:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
   integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
 
-iferr@^0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
-  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-
-ignore@^3.3.5:
-  version "3.3.10"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
-  integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
-
-ignore@^4.0.3, ignore@^4.0.6:
+ignore@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
@@ -4968,22 +4472,12 @@ ignore@^5.1.4:
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
   integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
 
-import-cwd@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
-  integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
-  dependencies:
-    import-from "^2.1.0"
-
-import-fresh@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
-  integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
-  dependencies:
-    caller-path "^2.0.0"
-    resolve-from "^3.0.0"
+ignore@^5.2.0:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
+  integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
 
-import-fresh@^3.0.0, import-fresh@^3.1.0:
+import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -4991,36 +4485,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
-import-from@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
-  integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
-  dependencies:
-    resolve-from "^3.0.0"
-
-import-local@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
-  integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
-  dependencies:
-    pkg-dir "^3.0.0"
-    resolve-cwd "^2.0.0"
-
 imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
   integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
 
-indexes-of@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
-  integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
-
-infer-owner@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
-  integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
-
 inflight@^1.0.4:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -5034,111 +4503,31 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
-inherits@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-  integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
-
 inherits@2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-inquirer@^7.0.0, inquirer@^7.1.0:
-  version "7.3.3"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
-  integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
-  dependencies:
-    ansi-escapes "^4.2.1"
-    chalk "^4.1.0"
-    cli-cursor "^3.1.0"
-    cli-width "^3.0.0"
-    external-editor "^3.0.3"
-    figures "^3.0.0"
-    lodash "^4.17.19"
-    mute-stream "0.0.8"
-    run-async "^2.4.0"
-    rxjs "^6.6.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
-    through "^2.3.6"
-
-internal-ip@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
-  integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==
-  dependencies:
-    default-gateway "^4.2.0"
-    ipaddr.js "^1.9.0"
-
-ip-regex@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
-  integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-
-ip@^1.1.0, ip@^1.1.5:
+ip@^1.1.5:
   version "1.1.5"
   resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
   integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
 
-ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
+ipaddr.js@1.9.1:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
   integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
 
-is-absolute-url@^2.0.0:
+ipaddr.js@^2.0.1:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
-  integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
-
-is-absolute-url@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
-  integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
-
-is-accessor-descriptor@^0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
-  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
-  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-arguments@^1.0.4:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
-  integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
-  dependencies:
-    call-bind "^1.0.0"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f"
+  integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==
 
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
   integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
 
-is-arrayish@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
-  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-bigint@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
-  integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
-
-is-binary-path@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
-  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
-  dependencies:
-    binary-extensions "^1.0.0"
-
 is-binary-path@~2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
@@ -5146,23 +4535,6 @@ is-binary-path@~2.1.0:
   dependencies:
     binary-extensions "^2.0.0"
 
-is-boolean-object@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
-  integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
-  dependencies:
-    call-bind "^1.0.2"
-
-is-buffer@^1.1.5:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-callable@^1.1.4, is-callable@^1.2.3:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
-  integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
-
 is-ci@^1.0.10:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
@@ -5170,18 +4542,6 @@ is-ci@^1.0.10:
   dependencies:
     ci-info "^1.5.0"
 
-is-color-stop@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
-  integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
-  dependencies:
-    css-color-names "^0.0.4"
-    hex-color-regex "^1.1.0"
-    hsl-regex "^1.0.0"
-    hsla-regex "^1.0.0"
-    rgb-regex "^1.0.1"
-    rgba-regex "^1.0.0"
-
 is-core-module@^2.2.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
@@ -5189,70 +4549,23 @@ is-core-module@^2.2.0:
   dependencies:
     has "^1.0.3"
 
-is-data-descriptor@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
-  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
-  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-date-object@^1.0.1:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"
-  integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
-
-is-descriptor@^0.1.0:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
-  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
-  dependencies:
-    is-accessor-descriptor "^0.1.6"
-    is-data-descriptor "^0.1.4"
-    kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
-  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
-  dependencies:
-    is-accessor-descriptor "^1.0.0"
-    is-data-descriptor "^1.0.0"
-    kind-of "^6.0.2"
-
-is-directory@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
-  integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-
-is-docker@^2.0.0:
+is-docker@^2.0.0, is-docker@^2.1.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
   integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
 
-is-extendable@^0.1.0, is-extendable@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-
-is-extendable@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
-  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
-  dependencies:
-    is-plain-object "^2.0.4"
-
-is-extglob@^2.1.0, is-extglob@^2.1.1:
+is-extglob@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
   integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
 
+is-file-esm@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-file-esm/-/is-file-esm-1.0.0.tgz#987086b0f5a5318179e9d30f4f2f8d37321e1b5f"
+  integrity sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==
+  dependencies:
+    read-pkg-up "^7.0.1"
+
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
@@ -5263,13 +4576,6 @@ is-fullwidth-code-point@^3.0.0:
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-glob@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
-  integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
-  dependencies:
-    is-extglob "^2.1.0"
-
 is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
@@ -5277,81 +4583,39 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
   dependencies:
     is-extglob "^2.1.1"
 
-is-negative-zero@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
-  integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
-
-is-number-object@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
-  integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
-
-is-number@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
-  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+is-glob@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
-    kind-of "^3.0.2"
+    is-extglob "^2.1.1"
+
+is-interactive@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+  integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
 
 is-number@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
-is-obj@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
-  integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-
-is-path-cwd@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
-  integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
-
-is-path-in-cwd@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
-  integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
-  dependencies:
-    is-path-inside "^2.1.0"
-
-is-path-inside@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
-  integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
-  dependencies:
-    path-is-inside "^1.0.2"
-
-is-plain-obj@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
-  integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-
 is-plain-obj@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
   integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
 
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+is-plain-object@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
   integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
   dependencies:
     isobject "^3.0.1"
 
-is-regex@^1.0.4, is-regex@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
-  integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
-  dependencies:
-    call-bind "^1.0.2"
-    has-symbols "^1.0.2"
-
-is-resolvable@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-  integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+is-plain-object@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+  integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
 
 is-stream@^1.1.0:
   version "1.1.0"
@@ -5363,34 +4627,12 @@ is-stream@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
   integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
 
-is-string@^1.0.5, is-string@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"
-  integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
-
-is-symbol@^1.0.2, is-symbol@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
-  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
-  dependencies:
-    has-symbols "^1.0.2"
-
-is-typedarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-
-is-windows@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
-  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-wsl@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
-  integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+is-unicode-supported@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+  integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
 
-is-wsl@^2.1.1:
+is-wsl@^2.1.1, is-wsl@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
   integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -5402,7 +4644,7 @@ isarray@0.0.1:
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
   integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
 
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
@@ -5412,45 +4654,50 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-isobject@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
-  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
-  dependencies:
-    isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
+isobject@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
   integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
 
-isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
 javascript-stringify@^2.0.1:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79"
   integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==
 
+jest-worker@^27.0.2, jest-worker@^27.4.5:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
+  integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^8.0.0"
+
+jest-worker@^28.0.2:
+  version "28.1.3"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98"
+  integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^8.0.0"
+
+joi@^17.4.0:
+  version "17.12.1"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.1.tgz#3347ecf4cd3301962d42191c021b165eef1f395b"
+  integrity sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==
+  dependencies:
+    "@hapi/hoek" "^9.3.0"
+    "@hapi/topo" "^5.1.0"
+    "@sideway/address" "^4.1.5"
+    "@sideway/formula" "^3.0.1"
+    "@sideway/pinpoint" "^2.0.0"
+
 js-message@1.0.7:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47"
   integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==
 
-js-queue@2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482"
-  integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==
-  dependencies:
-    easy-stack "^1.0.1"
-
-js-tokens@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-
 js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -5464,11 +4711,6 @@ js-yaml@^3.13.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-
 jsesc@^2.5.1:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -5479,12 +4721,17 @@ jsesc@~0.5.0:
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
   integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
 
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+json-buffer@3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+  integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-parse-better-errors@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
   integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
 
-json-parse-even-better-errors@^2.3.0:
+json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
   version "2.3.1"
   resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
   integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -5494,31 +4741,16 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
 
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
-json-stringify-safe@~5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
-json3@^3.3.3:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
-  integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
-
-json5@^0.5.0:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-  integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
 json5@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
@@ -5533,6 +4765,11 @@ json5@^2.1.2:
   dependencies:
     minimist "^1.2.5"
 
+json5@^2.2.3:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+  integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
 jsonfile@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -5549,51 +4786,27 @@ jsonfile@^6.0.1:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
-killable@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
-  integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
-  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
-  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+keyv@^4.5.3:
+  version "4.5.4"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+  integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
   dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
-  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+    json-buffer "3.0.1"
 
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.2:
   version "6.0.3"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
   integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
 
-lamejs@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/lamejs/-/lamejs-1.2.0.tgz#0259f83db4666141a7b671b8caa6369d95177d08"
-  integrity sha512-xEYvsB2sZ9jIccqfUQpQEBdB6UYQDG/ta2xQkH7oEpENb0JHFJii965WVF8ErUMdZzoe7EdIruz1WpICdhZ9Pw==
-  dependencies:
-    use-strict "1.0.1"
+kleur@^4.0.3:
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+  integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
+klona@^2.0.5:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
+  integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
 
 launch-editor-middleware@^2.2.1:
   version "2.2.1"
@@ -5610,7 +4823,23 @@ launch-editor@^2.2.1:
     chalk "^2.3.0"
     shell-quote "^1.6.1"
 
-levn@^0.3.0, levn@~0.3.0:
+launch-editor@^2.6.0:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c"
+  integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==
+  dependencies:
+    picocolors "^1.0.0"
+    shell-quote "^1.8.1"
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+levn@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
   integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
@@ -5618,16 +4847,16 @@ levn@^0.3.0, levn@~0.3.0:
     prelude-ls "~1.1.2"
     type-check "~0.3.2"
 
+lilconfig@^2.0.3:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+  integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
 lines-and-columns@^1.1.6:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
   integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
 
-linkifyjs@^2.1.9:
-  version "2.1.9"
-  resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-2.1.9.tgz#af06e45a2866ff06c4766582590d098a4d584702"
-  integrity sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==
-
 list-stylesheets@^1.2.9:
   version "1.2.9"
   resolved "https://registry.yarnpkg.com/list-stylesheets/-/list-stylesheets-1.2.9.tgz#5f4c8603ed7fc96f703fce481c31cf635b64ab73"
@@ -5636,30 +4865,12 @@ list-stylesheets@^1.2.9:
     cheerio "^0.22.0"
     pick-util "^1.1.3"
 
-loader-fs-cache@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9"
-  integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==
-  dependencies:
-    find-cache-dir "^0.1.1"
-    mkdirp "^0.5.1"
-
-loader-runner@^2.3.1, loader-runner@^2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
-  integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-
-loader-utils@^0.2.16:
-  version "0.2.17"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
-  integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
-  dependencies:
-    big.js "^3.1.3"
-    emojis-list "^2.0.0"
-    json5 "^0.5.0"
-    object-assign "^4.0.1"
+loader-runner@^4.1.0, loader-runner@^4.2.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
+  integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
 
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.0.2, loader-utils@^1.1.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
   integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -5677,14 +4888,6 @@ loader-utils@^2.0.0:
     emojis-list "^3.0.0"
     json5 "^2.1.2"
 
-locate-path@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
-  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
-  dependencies:
-    p-locate "^3.0.0"
-    path-exists "^3.0.0"
-
 locate-path@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
@@ -5752,7 +4955,7 @@ lodash.memoize@^4.1.2:
   resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
   integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
 
-lodash.merge@^4.4.0:
+lodash.merge@^4.4.0, lodash.merge@^4.6.2:
   version "4.6.2"
   resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
   integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
@@ -5777,37 +4980,44 @@ lodash.some@^4.4.0:
   resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
   integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
 
-lodash.transform@^4.6.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
-  integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
 
 lodash.uniq@^4.5.0:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
   integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
 
-lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3:
+lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21:
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
-log-symbols@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
-  integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
+log-symbols@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+  integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
   dependencies:
-    chalk "^2.0.1"
+    chalk "^4.1.0"
+    is-unicode-supported "^0.1.0"
 
-loglevel@^1.6.8:
-  version "1.7.1"
-  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
-  integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
+log-update@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
+  integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==
+  dependencies:
+    ansi-escapes "^3.0.0"
+    cli-cursor "^2.0.0"
+    wrap-ansi "^3.0.1"
 
-lower-case@^1.1.1:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
-  integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+  dependencies:
+    tslib "^2.0.3"
 
 lru-cache@^4.0.1, lru-cache@^4.1.2:
   version "4.1.5"
@@ -5831,13 +5041,12 @@ lru-cache@^6.0.0:
   dependencies:
     yallist "^4.0.0"
 
-make-dir@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
-  integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+magic-string@^0.30.5:
+  version "0.30.7"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.7.tgz#0cecd0527d473298679da95a2d7aeb8c64048505"
+  integrity sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==
   dependencies:
-    pify "^4.0.1"
-    semver "^5.6.0"
+    "@jridgewell/sourcemap-codec" "^1.4.15"
 
 make-dir@^3.0.2, make-dir@^3.1.0:
   version "3.1.0"
@@ -5846,37 +5055,11 @@ make-dir@^3.0.2, make-dir@^3.1.0:
   dependencies:
     semver "^6.0.0"
 
-map-cache@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
-  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
-  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
-  dependencies:
-    object-visit "^1.0.0"
-
-md5.js@^1.3.4:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
-  integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
 mdn-data@2.0.14:
   version "2.0.14"
   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
   integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
 
-mdn-data@2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
-  integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
 media-typer@0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -5894,74 +5077,304 @@ memfs@^3.1.2:
   resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e"
   integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==
   dependencies:
-    fs-monkey "1.0.3"
+    fs-monkey "1.0.3"
+
+memfs@^3.4.3:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6"
+  integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==
+  dependencies:
+    fs-monkey "^1.0.4"
+
+merge-descriptors@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge-source-map@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+  integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
+  dependencies:
+    source-map "^0.6.1"
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+methods@^1.1.2, methods@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8"
+  integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==
+  dependencies:
+    decode-named-character-reference "^1.0.0"
+    micromark-factory-destination "^1.0.0"
+    micromark-factory-label "^1.0.0"
+    micromark-factory-space "^1.0.0"
+    micromark-factory-title "^1.0.0"
+    micromark-factory-whitespace "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-chunked "^1.0.0"
+    micromark-util-classify-character "^1.0.0"
+    micromark-util-html-tag-name "^1.0.0"
+    micromark-util-normalize-identifier "^1.0.0"
+    micromark-util-resolve-all "^1.0.0"
+    micromark-util-subtokenize "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.1"
+    uvu "^0.5.0"
+
+micromark-extension-gfm-autolink-literal@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7"
+  integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-sanitize-uri "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-extension-gfm-footnote@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e"
+  integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==
+  dependencies:
+    micromark-core-commonmark "^1.0.0"
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-normalize-identifier "^1.0.0"
+    micromark-util-sanitize-uri "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
+
+micromark-extension-gfm-strikethrough@^1.0.0:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af"
+  integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==
+  dependencies:
+    micromark-util-chunked "^1.0.0"
+    micromark-util-classify-character "^1.0.0"
+    micromark-util-resolve-all "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
+
+micromark-extension-gfm-table@^1.0.0:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008"
+  integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==
+  dependencies:
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
+
+micromark-extension-gfm-tagfilter@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7"
+  integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==
+  dependencies:
+    micromark-util-types "^1.0.0"
+
+micromark-extension-gfm-task-list-item@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4"
+  integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==
+  dependencies:
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
+
+micromark-extension-gfm@^2.0.1:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf"
+  integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==
+  dependencies:
+    micromark-extension-gfm-autolink-literal "^1.0.0"
+    micromark-extension-gfm-footnote "^1.0.0"
+    micromark-extension-gfm-strikethrough "^1.0.0"
+    micromark-extension-gfm-table "^1.0.0"
+    micromark-extension-gfm-tagfilter "^1.0.0"
+    micromark-extension-gfm-task-list-item "^1.0.0"
+    micromark-util-combine-extensions "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-factory-destination@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f"
+  integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-factory-label@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68"
+  integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
+
+micromark-factory-space@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf"
+  integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-factory-title@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1"
+  integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==
+  dependencies:
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-factory-whitespace@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705"
+  integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==
+  dependencies:
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-util-character@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc"
+  integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==
+  dependencies:
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-util-chunked@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b"
+  integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==
+  dependencies:
+    micromark-util-symbol "^1.0.0"
+
+micromark-util-classify-character@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d"
+  integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-util-combine-extensions@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84"
+  integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==
+  dependencies:
+    micromark-util-chunked "^1.0.0"
+    micromark-util-types "^1.0.0"
+
+micromark-util-decode-numeric-character-reference@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6"
+  integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==
+  dependencies:
+    micromark-util-symbol "^1.0.0"
 
-memory-fs@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
-  integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
+micromark-util-encode@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5"
+  integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==
+
+micromark-util-html-tag-name@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588"
+  integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==
+
+micromark-util-normalize-identifier@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7"
+  integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==
   dependencies:
-    errno "^0.1.3"
-    readable-stream "^2.0.1"
+    micromark-util-symbol "^1.0.0"
 
-memory-fs@^0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
-  integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
+micromark-util-resolve-all@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188"
+  integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==
   dependencies:
-    errno "^0.1.3"
-    readable-stream "^2.0.1"
+    micromark-util-types "^1.0.0"
 
-merge-descriptors@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+micromark-util-sanitize-uri@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d"
+  integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==
+  dependencies:
+    micromark-util-character "^1.0.0"
+    micromark-util-encode "^1.0.0"
+    micromark-util-symbol "^1.0.0"
 
-merge-source-map@^1.1.0:
+micromark-util-subtokenize@^1.0.0:
   version "1.1.0"
-  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
-  integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
+  resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1"
+  integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==
   dependencies:
-    source-map "^0.6.1"
-
-merge-stream@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
-  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+    micromark-util-chunked "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
 
-merge2@^1.2.3, merge2@^1.3.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
-  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+micromark-util-symbol@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142"
+  integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==
 
-methods@^1.1.2, methods@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+micromark-util-types@^1.0.0, micromark-util-types@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283"
+  integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==
 
-microevent.ts@~0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
-  integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==
-
-micromatch@^3.1.10, micromatch@^3.1.4:
-  version "3.1.10"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
-  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    braces "^2.3.1"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    extglob "^2.0.4"
-    fragment-cache "^0.2.1"
-    kind-of "^6.0.2"
-    nanomatch "^1.2.9"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.2"
+micromark@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9"
+  integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==
+  dependencies:
+    "@types/debug" "^4.0.0"
+    debug "^4.0.0"
+    decode-named-character-reference "^1.0.0"
+    micromark-core-commonmark "^1.0.1"
+    micromark-factory-space "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-chunked "^1.0.0"
+    micromark-util-combine-extensions "^1.0.0"
+    micromark-util-decode-numeric-character-reference "^1.0.0"
+    micromark-util-encode "^1.0.0"
+    micromark-util-normalize-identifier "^1.0.0"
+    micromark-util-resolve-all "^1.0.0"
+    micromark-util-sanitize-uri "^1.0.0"
+    micromark-util-subtokenize "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+    micromark-util-types "^1.0.1"
+    uvu "^0.5.0"
 
 micromatch@^4.0.0, micromatch@^4.0.2:
   version "4.0.4"
@@ -5971,32 +5384,44 @@ micromatch@^4.0.0, micromatch@^4.0.2:
     braces "^3.0.1"
     picomatch "^2.2.3"
 
-miller-rabin@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
-  integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+micromatch@^4.0.4, micromatch@^4.0.5:
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
   dependencies:
-    bn.js "^4.0.0"
-    brorand "^1.0.1"
+    braces "^3.0.2"
+    picomatch "^2.3.1"
 
 mime-db@1.48.0, "mime-db@>= 1.43.0 < 2":
   version "1.48.0"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"
   integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
 
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
+mime-db@1.52.0:
+  version "1.52.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24:
   version "2.1.31"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"
   integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
   dependencies:
     mime-db "1.48.0"
 
+mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.34:
+  version "2.1.35"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+  dependencies:
+    mime-db "1.52.0"
+
 mime@1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
-mime@^2.4.4, mime@^2.4.6:
+mime@^2.4.6:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
   integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
@@ -6011,26 +5436,19 @@ mimic-fn@^2.1.0:
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
-mini-css-extract-plugin@^0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e"
-  integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==
+mini-css-extract-plugin@^2.5.3:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz#1aeae2a90a954b6426c9e8311eab36b450f553a0"
+  integrity sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==
   dependencies:
-    loader-utils "^1.1.0"
-    normalize-url "1.9.1"
-    schema-utils "^1.0.0"
-    webpack-sources "^1.1.0"
+    schema-utils "^4.0.0"
+    tapable "^2.2.1"
 
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+minimalistic-assert@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
   integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
 
-minimalistic-crypto-utils@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
 minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -6038,6 +5456,13 @@ minimatch@^3.0.4:
   dependencies:
     brace-expansion "^1.1.7"
 
+minimatch@^3.1.1:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+  dependencies:
+    brace-expansion "^1.1.7"
+
 minimist@^1.2.0, minimist@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
@@ -6050,87 +5475,51 @@ minipass@^3.1.1:
   dependencies:
     yallist "^4.0.0"
 
-mississippi@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
-  integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
-  dependencies:
-    concat-stream "^1.5.0"
-    duplexify "^3.4.2"
-    end-of-stream "^1.1.0"
-    flush-write-stream "^1.0.0"
-    from2 "^2.1.0"
-    parallel-transform "^1.1.0"
-    pump "^3.0.0"
-    pumpify "^1.3.3"
-    stream-each "^1.1.0"
-    through2 "^2.0.0"
-
-mixin-deep@^1.2.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
-  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
-  dependencies:
-    for-in "^1.0.2"
-    is-extendable "^1.0.1"
-
-mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
+mkdirp@^0.5.5:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
   dependencies:
     minimist "^1.2.5"
 
-move-concurrently@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
-  integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
-  dependencies:
-    aproba "^1.1.1"
-    copy-concurrently "^1.0.0"
-    fs-write-stream-atomic "^1.0.8"
-    mkdirp "^0.5.1"
-    rimraf "^2.5.4"
-    run-queue "^1.0.3"
+module-alias@^2.2.2:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.3.tgz#ec2e85c68973bda6ab71ce7c93b763ec96053221"
+  integrity sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==
+
+mri@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
+  integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
+
+mrmime@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4"
+  integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==
 
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
   integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
 
-ms@2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
-  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-
 ms@2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1:
   version "2.1.3"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
-multicast-dns-service-types@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
-  integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
-
-multicast-dns@^6.0.1:
-  version "6.2.3"
-  resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
-  integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
+multicast-dns@^7.2.5:
+  version "7.2.5"
+  resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
+  integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==
   dependencies:
-    dns-packet "^1.3.1"
+    dns-packet "^5.2.2"
     thunky "^1.0.2"
 
-mute-stream@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
-  integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-
 mz@^2.4.0:
   version "2.7.0"
   resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -6140,27 +5529,15 @@ mz@^2.4.0:
     object-assign "^4.0.1"
     thenify-all "^1.0.0"
 
-nan@^2.12.1:
-  version "2.14.2"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
-  integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
-
-nanomatch@^1.2.9:
-  version "1.2.13"
-  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
-  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    fragment-cache "^0.2.1"
-    is-windows "^1.0.2"
-    kind-of "^6.0.2"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
+nanoid@^3.3.7:
+  version "3.3.7"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+  integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
+natural-compare-lite@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+  integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
 
 natural-compare@^1.4.0:
   version "1.4.0"
@@ -6172,7 +5549,12 @@ negotiator@0.6.2:
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
   integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 
-neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
+negotiator@0.6.3:
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+  integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+neo-async@^2.6.2:
   version "2.6.2"
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
@@ -6187,61 +5569,36 @@ nice-try@^1.0.4:
   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
   integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
-no-case@^2.2.0:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
-  integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
   dependencies:
-    lower-case "^1.1.1"
-
-node-forge@^0.10.0:
-  version "0.10.0"
-  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
-  integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
 
-node-ipc@^9.1.1:
-  version "9.1.4"
-  resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.4.tgz#2acf962681afdac2602876d98fe6434d54d9bd3c"
-  integrity sha512-A+f0mn2KxUt1uRTSd5ktxQUsn2OEhj5evo7NUi/powBzMSZ0vocdzDjlq9QN2v3LH6CJi3e5xAenpZ1QwU5A8g==
+node-fetch@^2.6.7:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+  integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
   dependencies:
-    event-pubsub "4.3.0"
-    js-message "1.0.7"
-    js-queue "2.0.2"
+    whatwg-url "^5.0.0"
 
-node-libs-browser@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
-  integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
-  dependencies:
-    assert "^1.1.1"
-    browserify-zlib "^0.2.0"
-    buffer "^4.3.0"
-    console-browserify "^1.1.0"
-    constants-browserify "^1.0.0"
-    crypto-browserify "^3.11.0"
-    domain-browser "^1.1.1"
-    events "^3.0.0"
-    https-browserify "^1.0.0"
-    os-browserify "^0.3.0"
-    path-browserify "0.0.1"
-    process "^0.11.10"
-    punycode "^1.2.4"
-    querystring-es3 "^0.2.0"
-    readable-stream "^2.3.3"
-    stream-browserify "^2.0.1"
-    stream-http "^2.7.2"
-    string_decoder "^1.0.0"
-    timers-browserify "^2.0.4"
-    tty-browserify "0.0.0"
-    url "^0.11.0"
-    util "^0.11.0"
-    vm-browserify "^1.0.1"
+node-forge@^1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
+  integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-releases@^1.1.71:
   version "1.1.73"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
   integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
 
+node-releases@^2.0.14:
+  version "2.0.14"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+  integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
 normalize-package-data@^2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -6257,13 +5614,6 @@ normalize-path@^1.0.0:
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
   integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=
 
-normalize-path@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
-  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
-  dependencies:
-    remove-trailing-separator "^1.0.1"
-
 normalize-path@^3.0.0, normalize-path@~3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -6274,20 +5624,10 @@ normalize-range@^0.1.2:
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
   integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
 
-normalize-url@1.9.1:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
-  integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
-  dependencies:
-    object-assign "^4.0.1"
-    prepend-http "^1.0.0"
-    query-string "^4.1.0"
-    sort-keys "^1.0.0"
-
-normalize-url@^3.0.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
-  integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+normalize-url@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+  integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
 
 npm-run-path@^2.0.0:
   version "2.0.2"
@@ -6296,75 +5636,43 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
-npm-run-path@^4.0.0:
+npm-run-path@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
   integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
   dependencies:
     path-key "^3.0.0"
 
-nth-check@^1.0.2, nth-check@~1.0.1:
+nth-check@^2.0.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+  integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+  dependencies:
+    boolbase "^1.0.0"
+
+nth-check@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
   integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
   dependencies:
     boolbase "~1.0.0"
 
-num2fraction@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
-  integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
-
-oauth-sign@~0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
-  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.0.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
 
-object-copy@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
-  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
-  dependencies:
-    copy-descriptor "^0.1.0"
-    define-property "^0.2.5"
-    kind-of "^3.0.3"
-
-object-hash@^1.1.4:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df"
-  integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==
-
-object-inspect@^1.10.3, object-inspect@^1.9.0:
+object-inspect@^1.9.0:
   version "1.10.3"
   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"
   integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==
 
-object-is@^1.0.1:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
-  integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
 object-keys@^1.0.12, object-keys@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
   integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
 
-object-visit@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
-  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
-  dependencies:
-    isobject "^3.0.0"
-
-object.assign@^4.1.0, object.assign@^4.1.2:
+object.assign@^4.1.0:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
   integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
@@ -6374,40 +5682,15 @@ object.assign@^4.1.0, object.assign@^4.1.2:
     has-symbols "^1.0.1"
     object-keys "^1.1.1"
 
-object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
-  integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.2"
-
-object.pick@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
-  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
-  dependencies:
-    isobject "^3.0.1"
-
-object.values@^1.1.0:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
-  integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.18.2"
-
 obuf@^1.0.0, obuf@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
   integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
 
-on-finished@~2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
-  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+on-finished@2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+  integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
   dependencies:
     ee-first "1.1.1"
 
@@ -6430,33 +5713,28 @@ onetime@^2.0.0:
   dependencies:
     mimic-fn "^1.0.0"
 
-onetime@^5.1.0:
+onetime@^5.1.0, onetime@^5.1.2:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
   integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
   dependencies:
     mimic-fn "^2.1.0"
 
-open@^6.3.0:
-  version "6.4.0"
-  resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
-  integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==
+open@^8.0.2, open@^8.0.9:
+  version "8.4.2"
+  resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
+  integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
   dependencies:
-    is-wsl "^1.1.0"
+    define-lazy-prop "^2.0.0"
+    is-docker "^2.1.1"
+    is-wsl "^2.2.0"
 
-opener@^1.5.1:
+opener@^1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
   integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
 
-opn@^5.5.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
-  integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
-  dependencies:
-    is-wsl "^1.1.0"
-
-optionator@^0.8.1, optionator@^0.8.3:
+optionator@^0.8.1:
   version "0.8.3"
   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
   integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
@@ -6468,59 +5746,45 @@ optionator@^0.8.1, optionator@^0.8.3:
     type-check "~0.3.2"
     word-wrap "~1.2.3"
 
-ora@^3.4.0:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
-  integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==
+optionator@^0.9.1:
+  version "0.9.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+  integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
   dependencies:
-    chalk "^2.4.2"
-    cli-cursor "^2.1.0"
-    cli-spinners "^2.0.0"
-    log-symbols "^2.2.0"
-    strip-ansi "^5.2.0"
-    wcwidth "^1.0.1"
+    "@aashutoshrathi/word-wrap" "^1.2.3"
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
 
-original@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
-  integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
+ora@^5.3.0:
+  version "5.4.1"
+  resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+  integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
   dependencies:
-    url-parse "^1.4.3"
-
-os-browserify@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
-  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
-
-os-tmpdir@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+    bl "^4.1.0"
+    chalk "^4.1.0"
+    cli-cursor "^3.1.0"
+    cli-spinners "^2.5.0"
+    is-interactive "^1.0.0"
+    is-unicode-supported "^0.1.0"
+    log-symbols "^4.1.0"
+    strip-ansi "^6.0.0"
+    wcwidth "^1.0.1"
 
 p-finally@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
   integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
 
-p-finally@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
-  integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
-
-p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1:
+p-limit@^2.2.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
   integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
   dependencies:
     p-try "^2.0.0"
 
-p-locate@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
-  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
-  dependencies:
-    p-limit "^2.0.0"
-
 p-locate@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
@@ -6528,17 +5792,13 @@ p-locate@^4.1.0:
   dependencies:
     p-limit "^2.2.0"
 
-p-map@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
-  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
-
-p-retry@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
-  integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==
+p-retry@^4.5.0:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
+  integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
   dependencies:
-    retry "^0.12.0"
+    "@types/retry" "0.12.0"
+    retry "^0.13.1"
 
 p-try@^2.0.0:
   version "2.2.0"
@@ -6569,26 +5829,13 @@ pac-resolver@^4.1.0:
     ip "^1.1.5"
     netmask "^2.0.1"
 
-pako@~1.0.5:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
-  integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
-parallel-transform@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
-  integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
-  dependencies:
-    cyclist "^1.0.1"
-    inherits "^2.0.3"
-    readable-stream "^2.1.5"
-
-param-case@2.1.x:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
-  integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
+param-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+  integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
   dependencies:
-    no-case "^2.2.0"
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
 
 parent-module@^1.0.0:
   version "1.0.1"
@@ -6597,25 +5844,6 @@ parent-module@^1.0.0:
   dependencies:
     callsites "^3.0.0"
 
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
-  version "5.1.6"
-  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
-  integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
-  dependencies:
-    asn1.js "^5.2.0"
-    browserify-aes "^1.0.0"
-    evp_bytestokey "^1.0.0"
-    pbkdf2 "^3.0.3"
-    safe-buffer "^5.1.1"
-
-parse-json@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
-  integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
-  dependencies:
-    error-ex "^1.3.1"
-    json-parse-better-errors "^1.0.1"
-
 parse-json@^5.0.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -6648,32 +5876,13 @@ parseurl@~1.3.2, parseurl@~1.3.3:
   resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
   integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
 
-pascalcase@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
-  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-
-path-browserify@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
-  integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-dirname@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
-  integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
-
-path-exists@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
-  integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
+pascal-case@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
   dependencies:
-    pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+    no-case "^3.0.4"
+    tslib "^2.0.3"
 
 path-exists@^4.0.0:
   version "4.0.0"
@@ -6685,11 +5894,6 @@ path-is-absolute@^1.0.0:
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
-path-is-inside@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-  integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
-
 path-key@^2.0.0, path-key@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
@@ -6710,13 +5914,6 @@ path-to-regexp@0.1.7:
   resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
   integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 
-path-type@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
-  integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
-  dependencies:
-    pify "^3.0.0"
-
 path-type@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -6730,22 +5927,6 @@ path@^0.12.7:
     process "^0.11.1"
     util "^0.10.3"
 
-pbkdf2@^3.0.3:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
-  integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
-  dependencies:
-    create-hash "^1.1.2"
-    create-hmac "^1.1.4"
-    ripemd160 "^2.0.1"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
-
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
 pick-util@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/pick-util/-/pick-util-1.1.3.tgz#69d9b0ebcb75f828318b1d1f1f1fe49a0bf9abe2"
@@ -6753,51 +5934,25 @@ pick-util@^1.1.3:
   dependencies:
     "@jonkemp/package-utils" "^1.0.6"
 
+picocolors@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
+  integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
   integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
 
-pify@^2.0.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-  integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pify@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
-  integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
-
-pify@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
-  integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-pkg-dir@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
-  integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
-  dependencies:
-    find-up "^1.0.0"
-
-pkg-dir@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
-  integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
-  dependencies:
-    find-up "^3.0.0"
+picomatch@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
 pkg-dir@^4.1.0:
   version "4.2.0"
@@ -6806,13 +5961,6 @@ pkg-dir@^4.1.0:
   dependencies:
     find-up "^4.0.0"
 
-pnp-webpack-plugin@^1.6.4:
-  version "1.6.4"
-  resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
-  integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
-  dependencies:
-    ts-pnp "^1.1.6"
-
 portfinder@^1.0.26:
   version "1.0.28"
   resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
@@ -6822,300 +5970,226 @@ portfinder@^1.0.26:
     debug "^3.1.1"
     mkdirp "^0.5.5"
 
-posix-character-classes@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
-  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
-postcss-calc@^7.0.1:
-  version "7.0.5"
-  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e"
-  integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==
+postcss-calc@^8.2.3:
+  version "8.2.4"
+  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
+  integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
   dependencies:
-    postcss "^7.0.27"
-    postcss-selector-parser "^6.0.2"
-    postcss-value-parser "^4.0.2"
-
-postcss-colormin@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
-  integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
-  dependencies:
-    browserslist "^4.0.0"
-    color "^3.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-selector-parser "^6.0.9"
+    postcss-value-parser "^4.2.0"
 
-postcss-convert-values@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
-  integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+postcss-colormin@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f"
+  integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==
   dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    browserslist "^4.21.4"
+    caniuse-api "^3.0.0"
+    colord "^2.9.1"
+    postcss-value-parser "^4.2.0"
 
-postcss-discard-comments@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
-  integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
+postcss-convert-values@^5.1.3:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393"
+  integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==
   dependencies:
-    postcss "^7.0.0"
+    browserslist "^4.21.4"
+    postcss-value-parser "^4.2.0"
 
-postcss-discard-duplicates@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
-  integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
-  dependencies:
-    postcss "^7.0.0"
+postcss-discard-comments@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
+  integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
 
-postcss-discard-empty@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
-  integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
-  dependencies:
-    postcss "^7.0.0"
+postcss-discard-duplicates@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
+  integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
 
-postcss-discard-overridden@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
-  integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
-  dependencies:
-    postcss "^7.0.0"
+postcss-discard-empty@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
+  integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
 
-postcss-load-config@^2.0.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
-  integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
-  dependencies:
-    cosmiconfig "^5.0.0"
-    import-cwd "^2.0.0"
+postcss-discard-overridden@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
+  integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
 
-postcss-loader@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
-  integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
+postcss-loader@^6.1.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef"
+  integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==
   dependencies:
-    loader-utils "^1.1.0"
-    postcss "^7.0.0"
-    postcss-load-config "^2.0.0"
-    schema-utils "^1.0.0"
+    cosmiconfig "^7.0.0"
+    klona "^2.0.5"
+    semver "^7.3.5"
 
-postcss-merge-longhand@^4.0.11:
-  version "4.0.11"
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
-  integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+postcss-merge-longhand@^5.1.7:
+  version "5.1.7"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16"
+  integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==
   dependencies:
-    css-color-names "0.0.4"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    stylehacks "^4.0.0"
+    postcss-value-parser "^4.2.0"
+    stylehacks "^5.1.1"
 
-postcss-merge-rules@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
-  integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+postcss-merge-rules@^5.1.4:
+  version "5.1.4"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c"
+  integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==
   dependencies:
-    browserslist "^4.0.0"
+    browserslist "^4.21.4"
     caniuse-api "^3.0.0"
-    cssnano-util-same-parent "^4.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
-    vendors "^1.0.0"
+    cssnano-utils "^3.1.0"
+    postcss-selector-parser "^6.0.5"
 
-postcss-minify-font-values@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
-  integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+postcss-minify-font-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
+  integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
   dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-minify-gradients@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
-  integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+postcss-minify-gradients@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
+  integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
   dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    is-color-stop "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    colord "^2.9.1"
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-minify-params@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
-  integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+postcss-minify-params@^5.1.4:
+  version "5.1.4"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352"
+  integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==
   dependencies:
-    alphanum-sort "^1.0.0"
-    browserslist "^4.0.0"
-    cssnano-util-get-arguments "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    uniqs "^2.0.0"
+    browserslist "^4.21.4"
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-minify-selectors@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
-  integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+postcss-minify-selectors@^5.2.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
+  integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
   dependencies:
-    alphanum-sort "^1.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
+    postcss-selector-parser "^6.0.5"
 
-postcss-modules-extract-imports@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
-  integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
-  dependencies:
-    postcss "^7.0.5"
+postcss-modules-extract-imports@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
+  integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
 
-postcss-modules-local-by-default@^3.0.2:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
-  integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
+postcss-modules-local-by-default@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz#7cbed92abd312b94aaea85b68226d3dec39a14e6"
+  integrity sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==
   dependencies:
-    icss-utils "^4.1.1"
-    postcss "^7.0.32"
+    icss-utils "^5.0.0"
     postcss-selector-parser "^6.0.2"
     postcss-value-parser "^4.1.0"
 
-postcss-modules-scope@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
-  integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
-  dependencies:
-    postcss "^7.0.6"
-    postcss-selector-parser "^6.0.0"
-
-postcss-modules-values@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
-  integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
-  dependencies:
-    icss-utils "^4.0.0"
-    postcss "^7.0.6"
-
-postcss-normalize-charset@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
-  integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
+postcss-modules-scope@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz#32cfab55e84887c079a19bbb215e721d683ef134"
+  integrity sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==
   dependencies:
-    postcss "^7.0.0"
+    postcss-selector-parser "^6.0.4"
 
-postcss-normalize-display-values@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
-  integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+postcss-modules-values@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
+  integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
   dependencies:
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    icss-utils "^5.0.0"
 
-postcss-normalize-positions@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
-  integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+postcss-normalize-charset@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
+  integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
+
+postcss-normalize-display-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
+  integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
   dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-repeat-style@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
-  integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+postcss-normalize-positions@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92"
+  integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==
   dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-string@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
-  integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+postcss-normalize-repeat-style@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2"
+  integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==
   dependencies:
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-timing-functions@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
-  integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+postcss-normalize-string@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
+  integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
   dependencies:
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-unicode@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
-  integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+postcss-normalize-timing-functions@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
+  integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
   dependencies:
-    browserslist "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-url@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
-  integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+postcss-normalize-unicode@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030"
+  integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==
   dependencies:
-    is-absolute-url "^2.0.0"
-    normalize-url "^3.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    browserslist "^4.21.4"
+    postcss-value-parser "^4.2.0"
 
-postcss-normalize-whitespace@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
-  integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+postcss-normalize-url@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
+  integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
   dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    normalize-url "^6.0.1"
+    postcss-value-parser "^4.2.0"
 
-postcss-ordered-values@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
-  integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+postcss-normalize-whitespace@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
+  integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
   dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-reduce-initial@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
-  integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+postcss-ordered-values@^5.1.3:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38"
+  integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==
   dependencies:
-    browserslist "^4.0.0"
-    caniuse-api "^3.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
 
-postcss-reduce-transforms@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
-  integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+postcss-reduce-initial@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6"
+  integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==
   dependencies:
-    cssnano-util-get-match "^4.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
+    browserslist "^4.21.4"
+    caniuse-api "^3.0.0"
 
-postcss-selector-parser@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
-  integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
+postcss-reduce-transforms@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
+  integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
   dependencies:
-    dot-prop "^5.2.0"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
+    postcss-value-parser "^4.2.0"
 
-postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
+postcss-selector-parser@^6.0.2:
   version "6.0.6"
   resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
   integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
@@ -7123,35 +6197,40 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
     cssesc "^3.0.0"
     util-deprecate "^1.0.2"
 
-postcss-svgo@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
-  integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
+postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
+  version "6.0.15"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535"
+  integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==
   dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    svgo "^1.0.0"
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
 
-postcss-unique-selectors@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
-  integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+postcss-svgo@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
+  integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
   dependencies:
-    alphanum-sort "^1.0.0"
-    postcss "^7.0.0"
-    uniqs "^2.0.0"
+    postcss-value-parser "^4.2.0"
+    svgo "^2.7.0"
 
-postcss-value-parser@^3.0.0:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
-  integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+postcss-unique-selectors@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
+  integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
+  dependencies:
+    postcss-selector-parser "^6.0.5"
 
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
+postcss-value-parser@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
   integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
 
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
+postcss-value-parser@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@^7.0.14:
   version "7.0.35"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
   integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
@@ -7160,16 +6239,33 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.3
     source-map "^0.6.1"
     supports-color "^6.1.0"
 
+postcss@^7.0.36:
+  version "7.0.39"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309"
+  integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
+  dependencies:
+    picocolors "^0.2.1"
+    source-map "^0.6.1"
+
+postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.33:
+  version "8.4.34"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.34.tgz#563276e86b4ff20dfa5eed0d394d4c53853b2051"
+  integrity sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==
+  dependencies:
+    nanoid "^3.3.7"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
 prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
   integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
 
-prepend-http@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
-  integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-
 prettier-linter-helpers@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
@@ -7182,40 +6278,44 @@ prettier@^1.18.2:
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
   integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
 
-prettier@^2.2.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"
-  integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==
+"prettier@^1.18.2 || ^2.0.0", prettier@^2.4.1:
+  version "2.8.8"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
+  integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
 
-pretty-error@^2.0.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
-  integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
+pretty-error@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
+  integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==
   dependencies:
     lodash "^4.17.20"
-    renderkid "^2.0.4"
+    renderkid "^3.0.0"
 
 process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
-process@^0.11.1, process@^0.11.10:
+process@^0.11.1:
   version "0.11.10"
   resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
   integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
+progress-webpack-plugin@^1.0.12:
+  version "1.0.16"
+  resolved "https://registry.yarnpkg.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz#278f5c1afd21af783aad72c5ec95241520230fe5"
+  integrity sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==
+  dependencies:
+    chalk "^2.1.0"
+    figures "^2.0.0"
+    log-update "^2.3.0"
+
 progress@^2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
-promise-inflight@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
-  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
-
-proxy-addr@~2.0.5:
+proxy-addr@~2.0.7:
   version "2.0.7"
   resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
   integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
@@ -7242,41 +6342,11 @@ proxy-from-env@^1.0.0, proxy-from-env@^1.1.0:
   resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
   integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
 
-prr@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
-  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
 
-psl@^1.1.28:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
-  integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
-
-public-encrypt@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
-  integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
-  dependencies:
-    bn.js "^4.1.0"
-    browserify-rsa "^4.0.0"
-    create-hash "^1.1.0"
-    parse-asn1 "^5.0.0"
-    randombytes "^2.0.1"
-    safe-buffer "^5.1.2"
-
-pump@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
-  integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
-  dependencies:
-    end-of-stream "^1.1.0"
-    once "^1.3.1"
-
 pump@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -7285,39 +6355,17 @@ pump@^3.0.0:
     end-of-stream "^1.1.0"
     once "^1.3.1"
 
-pumpify@^1.3.3:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
-  integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
-  dependencies:
-    duplexify "^3.6.0"
-    inherits "^2.0.3"
-    pump "^2.0.0"
-
-punycode@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-
-punycode@^1.2.4:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-
-punycode@^2.1.0, punycode@^2.1.1:
+punycode@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-q@^1.1.2:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-  integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-
-qs@6.7.0:
-  version "6.7.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
-  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+qs@6.11.0:
+  version "6.11.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+  integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+  dependencies:
+    side-channel "^1.0.4"
 
 qs@^6.9.4:
   version "6.10.1"
@@ -7326,66 +6374,30 @@ qs@^6.9.4:
   dependencies:
     side-channel "^1.0.4"
 
-qs@~6.5.2:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
-  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-
-query-string@^4.1.0:
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
-  integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
-  dependencies:
-    object-assign "^4.1.0"
-    strict-uri-encode "^1.0.0"
-
-querystring-es3@^0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-  integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
-
-querystring@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-  integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-
-querystringify@^2.1.1:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
-  integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
-
 queue-microtask@^1.2.2:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
   integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
 
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+randombytes@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
   integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
   dependencies:
     safe-buffer "^5.1.0"
 
-randomfill@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
-  integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
-  dependencies:
-    randombytes "^2.0.5"
-    safe-buffer "^5.1.0"
-
 range-parser@^1.2.1, range-parser@~1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raw-body@2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
-  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+raw-body@2.5.1:
+  version "2.5.1"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
+  integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
   dependencies:
-    bytes "3.1.0"
-    http-errors "1.7.2"
+    bytes "3.1.2"
+    http-errors "2.0.0"
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
@@ -7399,7 +6411,16 @@ raw-body@^2.2.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
-read-pkg@^5.1.1:
+read-pkg-up@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+  integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+  dependencies:
+    find-up "^4.1.0"
+    read-pkg "^5.2.0"
+    type-fest "^0.8.1"
+
+read-pkg@^5.1.1, read-pkg@^5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
   integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
@@ -7409,7 +6430,17 @@ read-pkg@^5.1.1:
     parse-json "^5.0.0"
     type-fest "^0.6.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+readable-stream@1.1.x:
+  version "1.1.14"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
+  integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.1"
+    isarray "0.0.1"
+    string_decoder "~0.10.x"
+
+readable-stream@^2.0.1:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -7422,16 +6453,6 @@ read-pkg@^5.1.1:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-readable-stream@1.1.x:
-  version "1.1.14"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
-  integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.1"
-    isarray "0.0.1"
-    string_decoder "~0.10.x"
-
 readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0:
   version "3.6.0"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
@@ -7441,30 +6462,30 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0:
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
-readdirp@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
-  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+readable-stream@^3.4.0:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+  integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
   dependencies:
-    graceful-fs "^4.1.11"
-    micromatch "^3.1.10"
-    readable-stream "^2.0.2"
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
 
-readdirp@~3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
-  integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
   dependencies:
     picomatch "^2.2.1"
 
-regenerate-unicode-properties@^8.2.0:
-  version "8.2.0"
-  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
-  integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
+regenerate-unicode-properties@^10.1.0:
+  version "10.1.1"
+  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480"
+  integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==
   dependencies:
-    regenerate "^1.4.0"
+    regenerate "^1.4.2"
 
-regenerate@^1.4.0:
+regenerate@^1.4.2:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
   integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
@@ -7474,67 +6495,46 @@ regenerator-runtime@^0.13.4:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
   integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
 
-regenerator-transform@^0.14.2:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
-  integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
-  dependencies:
-    "@babel/runtime" "^7.8.4"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
-  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
-  dependencies:
-    extend-shallow "^3.0.2"
-    safe-regex "^1.1.0"
+regenerator-runtime@^0.14.0:
+  version "0.14.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+  integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
 
-regexp.prototype.flags@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
-  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
+regenerator-transform@^0.15.2:
+  version "0.15.2"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+  integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
   dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-regexpp@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
-  integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+    "@babel/runtime" "^7.8.4"
 
 regexpp@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
   integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
 
-regexpu-core@^4.7.1:
-  version "4.7.1"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
-  integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
+regexpu-core@^5.3.1:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b"
+  integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==
   dependencies:
-    regenerate "^1.4.0"
-    regenerate-unicode-properties "^8.2.0"
-    regjsgen "^0.5.1"
-    regjsparser "^0.6.4"
-    unicode-match-property-ecmascript "^1.0.4"
-    unicode-match-property-value-ecmascript "^1.2.0"
-
-regjsgen@^0.5.1:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
-  integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
+    "@babel/regjsgen" "^0.8.0"
+    regenerate "^1.4.2"
+    regenerate-unicode-properties "^10.1.0"
+    regjsparser "^0.9.1"
+    unicode-match-property-ecmascript "^2.0.0"
+    unicode-match-property-value-ecmascript "^2.1.0"
 
-regjsparser@^0.6.4:
-  version "0.6.9"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6"
-  integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==
+regjsparser@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+  integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
   dependencies:
     jsesc "~0.5.0"
 
-relateurl@0.2.x:
+relateurl@^0.2.7:
   version "0.2.7"
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+  integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==
 
 remote-content@^2.0.0:
   version "2.0.0"
@@ -7545,96 +6545,38 @@ remote-content@^2.0.0:
     superagent "^6.1.0"
     superagent-proxy "^2.1.0"
 
-remove-trailing-separator@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-renderkid@^2.0.4:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5"
-  integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==
+renderkid@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a"
+  integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==
   dependencies:
-    css-select "^2.0.2"
-    dom-converter "^0.2"
-    htmlparser2 "^3.10.1"
-    lodash "^4.17.20"
-    strip-ansi "^3.0.0"
-
-repeat-element@^1.1.2:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
-  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
-
-repeat-string@^1.6.1:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-request@^2.88.2:
-  version "2.88.2"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
-  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.3"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.5.0"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
+    css-select "^4.1.3"
+    dom-converter "^0.2.0"
+    htmlparser2 "^6.1.0"
+    lodash "^4.17.21"
+    strip-ansi "^6.0.1"
 
 require-directory@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
-require-main-filename@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
-  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
 
 requires-port@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
   integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
 
-resolve-cwd@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
-  integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
-  dependencies:
-    resolve-from "^3.0.0"
-
-resolve-from@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
-  integrity sha1-six699nWiBvItuZTM17rywoYh0g=
-
 resolve-from@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
-resolve-url@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2:
+resolve@^1.10.0, resolve@^1.14.2:
   version "1.20.0"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
   integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@@ -7658,58 +6600,23 @@ restore-cursor@^3.1.0:
     onetime "^5.1.0"
     signal-exit "^3.0.2"
 
-ret@~0.1.10:
-  version "0.1.15"
-  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
-  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-retry@^0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
-  integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+retry@^0.13.1:
+  version "0.13.1"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+  integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
 
 reusify@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
-rgb-regex@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
-  integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
-
-rgba-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
-  integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-
-rimraf@2.6.3:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
-  integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
-  dependencies:
-    glob "^7.1.3"
-
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
-  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
   dependencies:
     glob "^7.1.3"
 
-ripemd160@^2.0.0, ripemd160@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
-  integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-
-run-async@^2.4.0:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
-  integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
-
 run-parallel@^1.1.9:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -7717,47 +6624,28 @@ run-parallel@^1.1.9:
   dependencies:
     queue-microtask "^1.2.2"
 
-run-queue@^1.0.0, run-queue@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
-  integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
-  dependencies:
-    aproba "^1.1.1"
-
-rxjs@^6.6.0:
-  version "6.6.7"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
-  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+sade@^1.7.3:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701"
+  integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==
   dependencies:
-    tslib "^1.9.0"
+    mri "^1.1.0"
 
 safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
   version "5.2.1"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
-safe-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
-  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
-  dependencies:
-    ret "~0.1.10"
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3":
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
-sax@~1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
 schema-utils@2.7.0:
   version "2.7.0"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
@@ -7767,16 +6655,7 @@ schema-utils@2.7.0:
     ajv "^6.12.2"
     ajv-keywords "^3.4.1"
 
-schema-utils@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
-  integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
-  dependencies:
-    ajv "^6.1.0"
-    ajv-errors "^1.0.0"
-    ajv-keywords "^3.1.0"
-
-schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0:
+schema-utils@^2.6.5:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
   integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
@@ -7785,33 +6664,60 @@ schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7
     ajv "^6.12.4"
     ajv-keywords "^3.5.2"
 
+schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe"
+  integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==
+  dependencies:
+    "@types/json-schema" "^7.0.8"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^4.0.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b"
+  integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==
+  dependencies:
+    "@types/json-schema" "^7.0.9"
+    ajv "^8.9.0"
+    ajv-formats "^2.1.1"
+    ajv-keywords "^5.1.0"
+
 select-hose@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
   integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
 
-selfsigned@^1.10.8:
-  version "1.10.11"
-  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9"
-  integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==
+selfsigned@^2.1.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0"
+  integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==
   dependencies:
-    node-forge "^0.10.0"
+    "@types/node-forge" "^1.3.0"
+    node-forge "^1"
 
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.5.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
-  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-
-semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+semver@^6.0.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^6.3.1:
+  version "6.3.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+  integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^7.2.1, semver@^7.3.4, semver@^7.3.7, semver@^7.5.4:
+  version "7.6.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
+  integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
+  dependencies:
+    lru-cache "^6.0.0"
+
 semver@^7.3.2, semver@^7.3.5:
   version "7.3.5"
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
@@ -7819,29 +6725,29 @@ semver@^7.3.2, semver@^7.3.5:
   dependencies:
     lru-cache "^6.0.0"
 
-send@0.17.1:
-  version "0.17.1"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
-  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+send@0.18.0:
+  version "0.18.0"
+  resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
+  integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
   dependencies:
     debug "2.6.9"
-    depd "~1.1.2"
-    destroy "~1.0.4"
+    depd "2.0.0"
+    destroy "1.2.0"
     encodeurl "~1.0.2"
     escape-html "~1.0.3"
     etag "~1.8.1"
     fresh "0.5.2"
-    http-errors "~1.7.2"
+    http-errors "2.0.0"
     mime "1.6.0"
-    ms "2.1.1"
-    on-finished "~2.3.0"
+    ms "2.1.3"
+    on-finished "2.4.1"
     range-parser "~1.2.1"
-    statuses "~1.5.0"
+    statuses "2.0.1"
 
-serialize-javascript@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
-  integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+serialize-javascript@^6.0.0, serialize-javascript@^6.0.1:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
+  integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==
   dependencies:
     randombytes "^2.1.0"
 
@@ -7858,35 +6764,15 @@ serve-index@^1.9.1:
     mime-types "~2.1.17"
     parseurl "~1.3.2"
 
-serve-static@1.14.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
-  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+serve-static@1.15.0:
+  version "1.15.0"
+  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
+  integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
   dependencies:
     encodeurl "~1.0.2"
     escape-html "~1.0.3"
     parseurl "~1.3.3"
-    send "0.17.1"
-
-set-blocking@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-set-value@^2.0.0, set-value@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
-  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-extendable "^0.1.1"
-    is-plain-object "^2.0.3"
-    split-string "^3.0.1"
-
-setimmediate@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-  integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+    send "0.18.0"
 
 setprototypeof@1.1.0:
   version "1.1.0"
@@ -7898,13 +6784,17 @@ setprototypeof@1.1.1:
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
   integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
 
-sha.js@^2.4.0, sha.js@^2.4.8:
-  version "2.4.11"
-  resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
-  integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
+setprototypeof@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+  integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shallow-clone@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+  integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
   dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
+    kind-of "^6.0.2"
 
 shebang-command@^1.2.0:
   version "1.2.0"
@@ -7935,6 +6825,11 @@ shell-quote@^1.6.1:
   resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
   integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
 
+shell-quote@^1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
+  integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
+
 side-channel@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -7949,91 +6844,46 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
   integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
 
-simple-swizzle@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
-  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
-  dependencies:
-    is-arrayish "^0.3.1"
-
-slash@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-  integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
+signal-exit@^3.0.3:
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+  integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
 
-slash@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
-  integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+sirv@^2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0"
+  integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==
+  dependencies:
+    "@polka/url" "^1.0.0-next.24"
+    mrmime "^2.0.0"
+    totalist "^3.0.0"
 
 slash@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
-slice-ansi@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
-  integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
   dependencies:
-    ansi-styles "^3.2.0"
-    astral-regex "^1.0.0"
-    is-fullwidth-code-point "^2.0.0"
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
 
 smart-buffer@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
   integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
 
-snapdragon-node@^2.0.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
-  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
-  dependencies:
-    define-property "^1.0.0"
-    isobject "^3.0.0"
-    snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
-  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
-  dependencies:
-    kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
-  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
-  dependencies:
-    base "^0.11.1"
-    debug "^2.2.0"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    map-cache "^0.2.2"
-    source-map "^0.5.6"
-    source-map-resolve "^0.5.0"
-    use "^3.1.0"
-
-sockjs-client@^1.5.0:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6"
-  integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==
-  dependencies:
-    debug "^3.2.6"
-    eventsource "^1.0.7"
-    faye-websocket "^0.11.3"
-    inherits "^2.0.4"
-    json3 "^3.3.3"
-    url-parse "^1.5.1"
-
-sockjs@^0.3.21:
-  version "0.3.21"
-  resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417"
-  integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==
+sockjs@^0.3.24:
+  version "0.3.24"
+  resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
+  integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
   dependencies:
     faye-websocket "^0.11.3"
-    uuid "^3.4.0"
+    uuid "^8.3.2"
     websocket-driver "^0.7.4"
 
 socks-proxy-agent@5, socks-proxy-agent@^5.0.0:
@@ -8053,43 +6903,25 @@ socks@^2.3.3:
     ip "^1.1.5"
     smart-buffer "^4.1.0"
 
-sort-keys@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
-  integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
-  dependencies:
-    is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0, source-list-map@^2.0.1:
+source-list-map@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
   integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
 
-source-map-resolve@^0.5.0:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
-  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
-  dependencies:
-    atob "^2.1.2"
-    decode-uri-component "^0.2.0"
-    resolve-url "^0.2.1"
-    source-map-url "^0.4.0"
-    urix "^0.1.0"
+source-map-js@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
-source-map-support@~0.5.12:
-  version "0.5.19"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
-  integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+source-map-support@~0.5.20:
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
-source-map-url@^0.4.0:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
-  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
-
-source-map@^0.5.0, source-map@^0.5.6:
+source-map@^0.5.0:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -8099,10 +6931,10 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-source-map@^0.7.3:
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
-  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+source-map@^0.7.4:
+  version "0.7.4"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
+  integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
 
 spdx-correct@^3.0.0:
   version "3.1.1"
@@ -8153,40 +6985,11 @@ spdy@^4.0.2:
     select-hose "^2.0.0"
     spdy-transport "^3.0.0"
 
-split-string@^3.0.1, split-string@^3.0.2:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
-  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
-  dependencies:
-    extend-shallow "^3.0.0"
-
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
-sshpk@^1.7.0:
-  version "1.16.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
-  integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    bcrypt-pbkdf "^1.0.0"
-    dashdash "^1.12.0"
-    ecc-jsbn "~0.1.1"
-    getpass "^0.1.1"
-    jsbn "~0.1.0"
-    safer-buffer "^2.0.2"
-    tweetnacl "~0.14.0"
-
-ssri@^6.0.1:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
-  integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
-  dependencies:
-    figgy-pudding "^3.5.1"
-
 ssri@^8.0.1:
   version "8.0.1"
   resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
@@ -8199,62 +7002,22 @@ stable@^0.1.8:
   resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
   integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
 
-stackframe@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
-  integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
+stackframe@^1.3.4:
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310"
+  integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
 
-static-extend@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
-  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
-  dependencies:
-    define-property "^0.2.5"
-    object-copy "^0.1.0"
+statuses@2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+  integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
 
-"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2":
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
   integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
 
-stream-browserify@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
-  integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
-  dependencies:
-    inherits "~2.0.1"
-    readable-stream "^2.0.2"
-
-stream-each@^1.1.0:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
-  integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
-  dependencies:
-    end-of-stream "^1.1.0"
-    stream-shift "^1.0.0"
-
-stream-http@^2.7.2:
-  version "2.8.3"
-  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
-  integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
-  dependencies:
-    builtin-status-codes "^3.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.3.6"
-    to-arraybuffer "^1.0.0"
-    xtend "^4.0.0"
-
-stream-shift@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
-  integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
-
-strict-uri-encode@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-  integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-
-string-width@^2.0.0:
+string-width@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -8262,15 +7025,6 @@ string-width@^2.0.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^3.0.0, string-width@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
 string-width@^4.1.0, string-width@^4.2.0:
   version "4.2.2"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
@@ -8280,23 +7034,16 @@ string-width@^4.1.0, string-width@^4.2.0:
     is-fullwidth-code-point "^3.0.0"
     strip-ansi "^6.0.0"
 
-string.prototype.trimend@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
-  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-string.prototype.trimstart@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
-  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+string-width@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
 
-string_decoder@^1.0.0, string_decoder@^1.1.1:
+string_decoder@^1.1.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
   integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
@@ -8315,13 +7062,6 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  dependencies:
-    ansi-regex "^2.0.0"
-
 strip-ansi@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@@ -8329,13 +7069,6 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
-  dependencies:
-    ansi-regex "^4.1.0"
-
 strip-ansi@^6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
@@ -8343,6 +7076,13 @@ strip-ansi@^6.0.0:
   dependencies:
     ansi-regex "^5.0.0"
 
+strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
 strip-eof@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -8358,7 +7098,7 @@ strip-indent@^2.0.0:
   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
   integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
 
-strip-json-comments@^3.0.1:
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
@@ -8372,14 +7112,13 @@ style-data@^1.4.7:
     mediaquery-text "^1.1.5"
     pick-util "^1.1.3"
 
-stylehacks@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
-  integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+stylehacks@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9"
+  integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==
   dependencies:
-    browserslist "^4.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
+    browserslist "^4.21.4"
+    postcss-selector-parser "^6.0.4"
 
 superagent-proxy@^2.1.0:
   version "2.1.0"
@@ -8406,11 +7145,6 @@ superagent@^6.1.0:
     readable-stream "^3.6.0"
     semver "^7.3.2"
 
-supports-color@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
 supports-color@^5.3.0:
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -8432,41 +7166,43 @@ supports-color@^7.1.0:
   dependencies:
     has-flag "^4.0.0"
 
+supports-color@^8.0.0:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+  dependencies:
+    has-flag "^4.0.0"
+
 svg-tags@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
   integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
 
-svgo@^1.0.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
-  integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
-  dependencies:
-    chalk "^2.4.1"
-    coa "^2.0.2"
-    css-select "^2.0.0"
-    css-select-base-adapter "^0.1.1"
-    css-tree "1.0.0-alpha.37"
-    csso "^4.0.2"
-    js-yaml "^3.13.1"
-    mkdirp "~0.5.1"
-    object.values "^1.1.0"
-    sax "~1.2.4"
+svgo@^2.7.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+  integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
+  dependencies:
+    "@trysound/sax" "0.2.0"
+    commander "^7.2.0"
+    css-select "^4.1.3"
+    css-tree "^1.1.3"
+    csso "^4.2.0"
+    picocolors "^1.0.0"
     stable "^0.1.8"
-    unquote "~1.1.1"
-    util.promisify "~1.0.0"
 
-table@^5.2.3:
-  version "5.4.6"
-  resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
-  integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+table@^6.0.9:
+  version "6.8.1"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf"
+  integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==
   dependencies:
-    ajv "^6.10.2"
-    lodash "^4.17.14"
-    slice-ansi "^2.1.0"
-    string-width "^3.0.0"
+    ajv "^8.0.1"
+    lodash.truncate "^4.4.2"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.3"
+    strip-ansi "^6.0.1"
 
-tapable@^1.0.0, tapable@^1.1.3:
+tapable@^1.0.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
   integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
@@ -8476,29 +7212,31 @@ tapable@^2.0.0:
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b"
   integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
 
-terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4:
-  version "1.4.5"
-  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b"
-  integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==
-  dependencies:
-    cacache "^12.0.2"
-    find-cache-dir "^2.1.0"
-    is-wsl "^1.1.0"
-    schema-utils "^1.0.0"
-    serialize-javascript "^4.0.0"
-    source-map "^0.6.1"
-    terser "^4.1.2"
-    webpack-sources "^1.4.0"
-    worker-farm "^1.7.0"
-
-terser@^4.1.2:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
-  integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
-  dependencies:
+tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+  integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
+
+terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.3.10:
+  version "5.3.10"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199"
+  integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==
+  dependencies:
+    "@jridgewell/trace-mapping" "^0.3.20"
+    jest-worker "^27.4.5"
+    schema-utils "^3.1.1"
+    serialize-javascript "^6.0.1"
+    terser "^5.26.0"
+
+terser@^5.10.0, terser@^5.26.0:
+  version "5.27.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.0.tgz#70108689d9ab25fef61c4e93e808e9fd092bf20c"
+  integrity sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==
+  dependencies:
+    "@jridgewell/source-map" "^0.3.3"
+    acorn "^8.8.2"
     commander "^2.20.0"
-    source-map "~0.6.1"
-    source-map-support "~0.5.12"
+    source-map-support "~0.5.20"
 
 text-table@^0.2.0:
   version "0.2.0"
@@ -8519,77 +7257,27 @@ thenify-all@^1.0.0:
   dependencies:
     any-promise "^1.0.0"
 
-thread-loader@^2.1.3:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda"
-  integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==
-  dependencies:
-    loader-runner "^2.3.1"
-    loader-utils "^1.1.0"
-    neo-async "^2.6.0"
-
-through2@^2.0.0:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
-  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+thread-loader@^3.0.0:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b"
+  integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==
   dependencies:
-    readable-stream "~2.3.6"
-    xtend "~4.0.1"
-
-through@^2.3.6:
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+    json-parse-better-errors "^1.0.2"
+    loader-runner "^4.1.0"
+    loader-utils "^2.0.0"
+    neo-async "^2.6.2"
+    schema-utils "^3.0.0"
 
 thunky@^1.0.2:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
   integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
 
-timers-browserify@^2.0.4:
-  version "2.0.12"
-  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
-  integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
-  dependencies:
-    setimmediate "^1.0.4"
-
-timsort@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
-  integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-
-tmp@^0.0.33:
-  version "0.0.33"
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
-  integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
-  dependencies:
-    os-tmpdir "~1.0.2"
-
-to-arraybuffer@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-  integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
-
 to-fast-properties@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
   integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
 
-to-object-path@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
-  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
-  dependencies:
-    kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
-  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
-  dependencies:
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-
 to-regex-range@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -8597,56 +7285,38 @@ to-regex-range@^5.0.1:
   dependencies:
     is-number "^7.0.0"
 
-to-regex@^3.0.1, to-regex@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
-  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
-  dependencies:
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    regex-not "^1.0.2"
-    safe-regex "^1.1.0"
-
 toidentifier@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
   integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 
-toposort@^1.0.0:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
-  integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
+toidentifier@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
 
-tough-cookie@~2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
-  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  dependencies:
-    psl "^1.1.28"
-    punycode "^2.1.1"
+totalist@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8"
+  integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==
 
-tryer@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
-  integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
 
-ts-loader@^6.2.2:
-  version "6.2.2"
-  resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.2.2.tgz#dffa3879b01a1a1e0a4b85e2b8421dc0dfff1c58"
-  integrity sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==
+ts-loader@^9.2.5:
+  version "9.5.1"
+  resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89"
+  integrity sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==
   dependencies:
-    chalk "^2.3.0"
-    enhanced-resolve "^4.0.0"
-    loader-utils "^1.0.2"
+    chalk "^4.1.0"
+    enhanced-resolve "^5.0.0"
     micromatch "^4.0.0"
-    semver "^6.0.0"
-
-ts-pnp@^1.1.6:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
-  integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
+    semver "^7.3.4"
+    source-map "^0.7.4"
 
-tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
+tslib@^1.8.1:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -8656,31 +7326,10 @@ tslib@^2.0.1:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
   integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
 
-tslint@^5.20.1:
-  version "5.20.1"
-  resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d"
-  integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    builtin-modules "^1.1.1"
-    chalk "^2.3.0"
-    commander "^2.12.1"
-    diff "^4.0.1"
-    glob "^7.1.1"
-    js-yaml "^3.13.1"
-    minimatch "^3.0.4"
-    mkdirp "^0.5.1"
-    resolve "^1.3.2"
-    semver "^5.3.0"
-    tslib "^1.8.0"
-    tsutils "^2.29.0"
-
-tsutils@^2.29.0:
-  version "2.29.0"
-  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
-  integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
-  dependencies:
-    tslib "^1.8.1"
+tslib@^2.0.3:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
 
 tsutils@^3.21.0:
   version "3.21.0"
@@ -8689,22 +7338,12 @@ tsutils@^3.21.0:
   dependencies:
     tslib "^1.8.1"
 
-tty-browserify@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
-  integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
-
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
   dependencies:
-    safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+    prelude-ls "^1.2.1"
 
 type-check@~0.3.2:
   version "0.3.2"
@@ -8713,10 +7352,10 @@ type-check@~0.3.2:
   dependencies:
     prelude-ls "~1.1.2"
 
-type-fest@^0.21.3:
-  version "0.21.3"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
-  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
 type-fest@^0.6.0:
   version "0.6.0"
@@ -8728,7 +7367,7 @@ type-fest@^0.8.1:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
   integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
 
-type-is@~1.6.17, type-is@~1.6.18:
+type-is@~1.6.18:
   version "1.6.18"
   resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
   integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
@@ -8736,90 +7375,33 @@ type-is@~1.6.17, type-is@~1.6.18:
     media-typer "0.3.0"
     mime-types "~2.1.24"
 
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-typescript@~4.1.5:
-  version "4.1.5"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
-  integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==
-
-uglify-js@3.4.x:
-  version "3.4.10"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
-  integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
-  dependencies:
-    commander "~2.19.0"
-    source-map "~0.6.1"
-
-unbox-primitive@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
-  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
-  dependencies:
-    function-bind "^1.1.1"
-    has-bigints "^1.0.1"
-    has-symbols "^1.0.2"
-    which-boxed-primitive "^1.0.2"
-
-unicode-canonical-property-names-ecmascript@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
-  integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
-
-unicode-match-property-ecmascript@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
-  integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
-  dependencies:
-    unicode-canonical-property-names-ecmascript "^1.0.4"
-    unicode-property-aliases-ecmascript "^1.0.4"
-
-unicode-match-property-value-ecmascript@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
-  integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
-
-unicode-property-aliases-ecmascript@^1.0.4:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
-  integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
-
-union-value@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
-  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
-  dependencies:
-    arr-union "^3.1.0"
-    get-value "^2.0.6"
-    is-extendable "^0.1.1"
-    set-value "^2.0.1"
-
-uniq@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
-  integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
+typescript@~4.5.5:
+  version "4.5.5"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
+  integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
 
-uniqs@^2.0.0:
+unicode-canonical-property-names-ecmascript@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
-  integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
+  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+  integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
 
-unique-filename@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
-  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+unicode-match-property-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+  integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
   dependencies:
-    unique-slug "^2.0.0"
+    unicode-canonical-property-names-ecmascript "^2.0.0"
+    unicode-property-aliases-ecmascript "^2.0.0"
 
-unique-slug@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
-  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
-  dependencies:
-    imurmurhash "^0.1.4"
+unicode-match-property-value-ecmascript@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
+  integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
+  integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
 
 universalify@^0.1.0:
   version "0.1.2"
@@ -8836,28 +7418,13 @@ unpipe@1.0.0, unpipe@~1.0.0:
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
   integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
 
-unquote@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
-  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
-
-unset-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
-  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+update-browserslist-db@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
   dependencies:
-    has-value "^0.3.1"
-    isobject "^3.0.0"
-
-upath@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
-  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-
-upper-case@^1.1.1:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
-  integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
+    escalade "^3.1.1"
+    picocolors "^1.0.0"
 
 uri-js@^4.2.2:
   version "4.4.1"
@@ -8866,76 +7433,11 @@ uri-js@^4.2.2:
   dependencies:
     punycode "^2.1.0"
 
-urix@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
-url-loader@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"
-  integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==
-  dependencies:
-    loader-utils "^1.2.3"
-    mime "^2.4.4"
-    schema-utils "^2.5.0"
-
-url-parse@^1.4.3, url-parse@^1.5.1:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b"
-  integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==
-  dependencies:
-    querystringify "^2.1.1"
-    requires-port "^1.0.0"
-
-url@^0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
-  integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
-  dependencies:
-    punycode "1.3.2"
-    querystring "0.2.0"
-
-use-strict@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/use-strict/-/use-strict-1.0.1.tgz#0bb80d94f49a4a05192b84a8c7d34e95f1a7e3a0"
-  integrity sha512-IeiWvvEXfW5ltKVMkxq6FvNf2LojMKvB2OCeja6+ct24S1XOmQw2dGr2JyndwACWAGJva9B7yPHwAmeA9QCqAQ==
-
-use@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
-  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
 util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
-util.promisify@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
-  integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
-  dependencies:
-    define-properties "^1.1.2"
-    object.getownpropertydescriptors "^2.0.3"
-
-util.promisify@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
-  integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.2"
-    has-symbols "^1.0.1"
-    object.getownpropertydescriptors "^2.1.0"
-
-util@0.10.3:
-  version "0.10.3"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
-  integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
-  dependencies:
-    inherits "2.0.1"
-
 util@^0.10.3:
   version "0.10.4"
   resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
@@ -8943,13 +7445,6 @@ util@^0.10.3:
   dependencies:
     inherits "2.0.3"
 
-util@^0.11.0:
-  version "0.11.1"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
-  integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
-  dependencies:
-    inherits "2.0.3"
-
 utila@~0.4:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
@@ -8960,15 +7455,20 @@ utils-merge@1.0.1:
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
   integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
 
-uuid@^3.3.2, uuid@^3.4.0:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
-  integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+uuid@^8.3.2:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-v-click-outside@^3.1.2:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/v-click-outside/-/v-click-outside-3.2.0.tgz#850ac3f52d66d84b9f7e8002a1bcadcafec5534e"
-  integrity sha512-QD0bDy38SHJXQBjgnllmkI/rbdiwmq9RC+/+pvrFjYJKTn8dtp7Penf9q1lLBta280fYG2q53mgLhQ+3l3z74w==
+uvu@^0.5.0:
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df"
+  integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==
+  dependencies:
+    dequal "^2.0.0"
+    diff "^5.0.0"
+    kleur "^4.0.3"
+    sade "^1.7.3"
 
 v8-compile-cache@^2.0.3:
   version "2.3.0"
@@ -8988,84 +7488,43 @@ vary@~1.1.2:
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
-vendors@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
-  integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
-verror@1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
-  dependencies:
-    assert-plus "^1.0.0"
-    core-util-is "1.0.2"
-    extsprintf "^1.2.0"
-
-vm-browserify@^1.0.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
-  integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-
-vue-advanced-chat@1.5.8:
-  version "1.5.8"
-  resolved "https://registry.yarnpkg.com/vue-advanced-chat/-/vue-advanced-chat-1.5.8.tgz#a57bb474e987d5d2dfbd17c867581854c4c6defe"
-  integrity sha512-PQ/4sDCNoLWJ22jlr8WRGSm5CWTTpISkR8NH1FHx/nETGkzb/e4l1kTSY8ANBia05gXry2WhbVXtyhUAFIteMw==
+vue-advanced-chat@^2.0.10:
+  version "2.0.10"
+  resolved "https://registry.yarnpkg.com/vue-advanced-chat/-/vue-advanced-chat-2.0.10.tgz#ee47eb78306367f195a9233aea250467303fdedd"
+  integrity sha512-s7NXN0nl4pIl8uaOlpB/kcjV8jnE7w8FvdAFhM22J0KH0rhdxiJr3fIeYRR1bpzZj05tZaIEWqJl3ECi8xNptQ==
   dependencies:
     emoji-picker-element "1.12.1"
-    linkifyjs "^2.1.9"
-    v-click-outside "^3.1.2"
-  optionalDependencies:
-    lamejs "1.2.0"
-
-vue-class-component@^7.2.3:
-  version "7.2.6"
-  resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.2.6.tgz#8471e037b8e4762f5a464686e19e5afc708502e4"
-  integrity sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==
-
-vue-eslint-parser@^7.0.0:
-  version "7.6.0"
-  resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561"
-  integrity sha512-QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA==
-  dependencies:
-    debug "^4.1.1"
-    eslint-scope "^5.0.0"
-    eslint-visitor-keys "^1.1.0"
-    espree "^6.2.1"
+    micromark "^3.1.0"
+    micromark-extension-gfm "^2.0.1"
+
+vue-eslint-parser@^8.0.0, vue-eslint-parser@^8.0.1:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz#5d31129a1b3dd89c0069ca0a1c88f970c360bd0d"
+  integrity sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==
+  dependencies:
+    debug "^4.3.2"
+    eslint-scope "^7.0.0"
+    eslint-visitor-keys "^3.1.0"
+    espree "^9.0.0"
     esquery "^1.4.0"
-    lodash "^4.17.15"
+    lodash "^4.17.21"
+    semver "^7.3.5"
 
 vue-hot-reload-api@^2.3.0:
   version "2.3.4"
   resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
   integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
 
-"vue-loader-v16@npm:vue-loader@^16.1.0":
-  version "16.2.0"
-  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.2.0.tgz#046a53308dd47e58efe20ddec1edec027ce3b46e"
-  integrity sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==
+vue-loader@^17.0.0:
+  version "17.4.2"
+  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-17.4.2.tgz#f87f0d8adfcbbe8623de9eba1979d41ba223c6da"
+  integrity sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==
   dependencies:
     chalk "^4.1.0"
     hash-sum "^2.0.0"
-    loader-utils "^2.0.0"
-
-vue-loader@^15.9.2:
-  version "15.9.7"
-  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.7.tgz#15b05775c3e0c38407679393c2ce6df673b01044"
-  integrity sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==
-  dependencies:
-    "@vue/component-compiler-utils" "^3.1.0"
-    hash-sum "^1.0.2"
-    loader-utils "^1.1.0"
-    vue-hot-reload-api "^2.3.0"
-    vue-style-loader "^4.1.0"
+    watchpack "^2.4.0"
 
-vue-property-decorator@^9.1.2:
-  version "9.1.2"
-  resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz#266a2eac61ba6527e2e68a6933cfb98fddab5457"
-  integrity sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==
-
-vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
+vue-style-loader@^4.1.0, vue-style-loader@^4.1.3:
   version "4.1.3"
   resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
   integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==
@@ -9073,41 +7532,29 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
     hash-sum "^1.0.2"
     loader-utils "^1.0.2"
 
-vue-template-compiler@^2.6.11:
-  version "2.6.14"
-  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763"
-  integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==
-  dependencies:
-    de-indent "^1.0.2"
-    he "^1.1.0"
-
 vue-template-es2015-compiler@^1.9.0:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
   integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
 
-vue@^2.6.11:
-  version "2.6.14"
-  resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"
-  integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==
-
-watchpack-chokidar2@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
-  integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
+vue@^3.4.15:
+  version "3.4.15"
+  resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c"
+  integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==
   dependencies:
-    chokidar "^2.1.8"
+    "@vue/compiler-dom" "3.4.15"
+    "@vue/compiler-sfc" "3.4.15"
+    "@vue/runtime-dom" "3.4.15"
+    "@vue/server-renderer" "3.4.15"
+    "@vue/shared" "3.4.15"
 
-watchpack@^1.7.4:
-  version "1.7.5"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
-  integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
+watchpack@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
+  integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
   dependencies:
+    glob-to-regexp "^0.4.1"
     graceful-fs "^4.1.2"
-    neo-async "^2.5.0"
-  optionalDependencies:
-    chokidar "^3.4.1"
-    watchpack-chokidar2 "^2.0.1"
 
 wbuf@^1.1.0, wbuf@^1.7.3:
   version "1.7.3"
@@ -9123,26 +7570,31 @@ wcwidth@^1.0.1:
   dependencies:
     defaults "^1.0.3"
 
-webpack-bundle-analyzer@^3.8.0:
-  version "3.9.0"
-  resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c"
-  integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==
-  dependencies:
-    acorn "^7.1.1"
-    acorn-walk "^7.1.1"
-    bfj "^6.1.1"
-    chalk "^2.4.1"
-    commander "^2.18.0"
-    ejs "^2.6.1"
-    express "^4.16.3"
-    filesize "^3.6.1"
-    gzip-size "^5.0.0"
-    lodash "^4.17.19"
-    mkdirp "^0.5.1"
-    opener "^1.5.1"
-    ws "^6.0.0"
-
-webpack-chain@^6.4.0:
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+webpack-bundle-analyzer@^4.4.0:
+  version "4.10.1"
+  resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454"
+  integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==
+  dependencies:
+    "@discoveryjs/json-ext" "0.5.7"
+    acorn "^8.0.4"
+    acorn-walk "^8.0.0"
+    commander "^7.2.0"
+    debounce "^1.2.1"
+    escape-string-regexp "^4.0.0"
+    gzip-size "^6.0.0"
+    html-escaper "^2.0.2"
+    is-plain-object "^5.0.0"
+    opener "^1.5.2"
+    picocolors "^1.0.0"
+    sirv "^2.0.3"
+    ws "^7.3.1"
+
+webpack-chain@^6.5.1:
   version "6.5.1"
   resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206"
   integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==
@@ -9150,63 +7602,52 @@ webpack-chain@^6.4.0:
     deepmerge "^1.5.2"
     javascript-stringify "^2.0.1"
 
-webpack-dev-middleware@^3.7.2:
-  version "3.7.3"
-  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5"
-  integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==
+webpack-dev-middleware@^5.3.1:
+  version "5.3.3"
+  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f"
+  integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==
   dependencies:
-    memory-fs "^0.4.1"
-    mime "^2.4.4"
-    mkdirp "^0.5.1"
+    colorette "^2.0.10"
+    memfs "^3.4.3"
+    mime-types "^2.1.31"
     range-parser "^1.2.1"
-    webpack-log "^2.0.0"
-
-webpack-dev-server@^3.11.0:
-  version "3.11.2"
-  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708"
-  integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==
-  dependencies:
-    ansi-html "0.0.7"
-    bonjour "^3.5.0"
-    chokidar "^2.1.8"
+    schema-utils "^4.0.0"
+
+webpack-dev-server@^4.7.3:
+  version "4.15.1"
+  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7"
+  integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==
+  dependencies:
+    "@types/bonjour" "^3.5.9"
+    "@types/connect-history-api-fallback" "^1.3.5"
+    "@types/express" "^4.17.13"
+    "@types/serve-index" "^1.9.1"
+    "@types/serve-static" "^1.13.10"
+    "@types/sockjs" "^0.3.33"
+    "@types/ws" "^8.5.5"
+    ansi-html-community "^0.0.8"
+    bonjour-service "^1.0.11"
+    chokidar "^3.5.3"
+    colorette "^2.0.10"
     compression "^1.7.4"
-    connect-history-api-fallback "^1.6.0"
-    debug "^4.1.1"
-    del "^4.1.1"
-    express "^4.17.1"
-    html-entities "^1.3.1"
-    http-proxy-middleware "0.19.1"
-    import-local "^2.0.0"
-    internal-ip "^4.3.0"
-    ip "^1.1.5"
-    is-absolute-url "^3.0.3"
-    killable "^1.0.1"
-    loglevel "^1.6.8"
-    opn "^5.5.0"
-    p-retry "^3.0.1"
-    portfinder "^1.0.26"
-    schema-utils "^1.0.0"
-    selfsigned "^1.10.8"
-    semver "^6.3.0"
+    connect-history-api-fallback "^2.0.0"
+    default-gateway "^6.0.3"
+    express "^4.17.3"
+    graceful-fs "^4.2.6"
+    html-entities "^2.3.2"
+    http-proxy-middleware "^2.0.3"
+    ipaddr.js "^2.0.1"
+    launch-editor "^2.6.0"
+    open "^8.0.9"
+    p-retry "^4.5.0"
+    rimraf "^3.0.2"
+    schema-utils "^4.0.0"
+    selfsigned "^2.1.1"
     serve-index "^1.9.1"
-    sockjs "^0.3.21"
-    sockjs-client "^1.5.0"
+    sockjs "^0.3.24"
     spdy "^4.0.2"
-    strip-ansi "^3.0.1"
-    supports-color "^6.1.0"
-    url "^0.11.0"
-    webpack-dev-middleware "^3.7.2"
-    webpack-log "^2.0.0"
-    ws "^6.2.1"
-    yargs "^13.3.2"
-
-webpack-log@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
-  integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
-  dependencies:
-    ansi-colors "^3.0.0"
-    uuid "^3.3.2"
+    webpack-dev-middleware "^5.3.1"
+    ws "^8.13.0"
 
 webpack-manifest-plugin@^3.1.1:
   version "3.1.1"
@@ -9216,20 +7657,14 @@ webpack-manifest-plugin@^3.1.1:
     tapable "^2.0.0"
     webpack-sources "^2.2.0"
 
-webpack-merge@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
-  integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
-  dependencies:
-    lodash "^4.17.15"
-
-webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
-  integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+webpack-merge@^5.7.3:
+  version "5.10.0"
+  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177"
+  integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==
   dependencies:
-    source-list-map "^2.0.0"
-    source-map "~0.6.1"
+    clone-deep "^4.0.1"
+    flat "^5.0.2"
+    wildcard "^2.0.0"
 
 webpack-sources@^2.2.0:
   version "2.3.0"
@@ -9239,34 +7674,45 @@ webpack-sources@^2.2.0:
     source-list-map "^2.0.1"
     source-map "^0.6.1"
 
-webpack@^4.0.0:
-  version "4.46.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
-  integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
-  dependencies:
-    "@webassemblyjs/ast" "1.9.0"
-    "@webassemblyjs/helper-module-context" "1.9.0"
-    "@webassemblyjs/wasm-edit" "1.9.0"
-    "@webassemblyjs/wasm-parser" "1.9.0"
-    acorn "^6.4.1"
-    ajv "^6.10.2"
-    ajv-keywords "^3.4.1"
+webpack-sources@^3.2.3:
+  version "3.2.3"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
+  integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
+
+webpack-virtual-modules@^0.4.2:
+  version "0.4.6"
+  resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz#3e4008230731f1db078d9cb6f68baf8571182b45"
+  integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==
+
+webpack@^5.54.0:
+  version "5.90.1"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.1.tgz#62ab0c097d7cbe83d32523dbfbb645cdb7c3c01c"
+  integrity sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==
+  dependencies:
+    "@types/eslint-scope" "^3.7.3"
+    "@types/estree" "^1.0.5"
+    "@webassemblyjs/ast" "^1.11.5"
+    "@webassemblyjs/wasm-edit" "^1.11.5"
+    "@webassemblyjs/wasm-parser" "^1.11.5"
+    acorn "^8.7.1"
+    acorn-import-assertions "^1.9.0"
+    browserslist "^4.21.10"
     chrome-trace-event "^1.0.2"
-    enhanced-resolve "^4.5.0"
-    eslint-scope "^4.0.3"
-    json-parse-better-errors "^1.0.2"
-    loader-runner "^2.4.0"
-    loader-utils "^1.2.3"
-    memory-fs "^0.4.1"
-    micromatch "^3.1.10"
-    mkdirp "^0.5.3"
-    neo-async "^2.6.1"
-    node-libs-browser "^2.2.1"
-    schema-utils "^1.0.0"
-    tapable "^1.1.3"
-    terser-webpack-plugin "^1.4.3"
-    watchpack "^1.7.4"
-    webpack-sources "^1.4.1"
+    enhanced-resolve "^5.15.0"
+    es-module-lexer "^1.2.1"
+    eslint-scope "5.1.1"
+    events "^3.2.0"
+    glob-to-regexp "^0.4.1"
+    graceful-fs "^4.2.9"
+    json-parse-even-better-errors "^2.3.1"
+    loader-runner "^4.2.0"
+    mime-types "^2.1.27"
+    neo-async "^2.6.2"
+    schema-utils "^3.2.0"
+    tapable "^2.1.1"
+    terser-webpack-plugin "^5.3.10"
+    watchpack "^2.4.0"
+    webpack-sources "^3.2.3"
 
 websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
   version "0.7.4"
@@ -9282,21 +7728,18 @@ websocket-extensions@>=0.1.1:
   resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
   integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
 
-which-boxed-primitive@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
-  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
-  dependencies:
-    is-bigint "^1.0.1"
-    is-boolean-object "^1.1.0"
-    is-number-object "^1.0.4"
-    is-string "^1.0.5"
-    is-symbol "^1.0.3"
+whatwg-fetch@^3.6.2:
+  version "3.6.20"
+  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70"
+  integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==
 
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
 
 which@^1.2.9:
   version "1.3.1"
@@ -9312,42 +7755,23 @@ which@^2.0.1:
   dependencies:
     isexe "^2.0.0"
 
+wildcard@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"
+  integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
+
 word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
-worker-farm@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
-  integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
-  dependencies:
-    errno "~0.1.7"
-
-worker-rpc@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"
-  integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==
-  dependencies:
-    microevent.ts "~0.1.1"
-
-wrap-ansi@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
-  integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
-  dependencies:
-    ansi-styles "^3.2.0"
-    string-width "^3.0.0"
-    strip-ansi "^5.0.0"
-
-wrap-ansi@^6.2.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
-  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+wrap-ansi@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
+  integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==
   dependencies:
-    ansi-styles "^4.0.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
+    string-width "^2.1.1"
+    strip-ansi "^4.0.0"
 
 wrap-ansi@^7.0.0:
   version "7.0.0"
@@ -9363,35 +7787,21 @@ wrappy@1:
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
-write@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
-  integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
-  dependencies:
-    mkdirp "^0.5.1"
+ws@^7.3.1:
+  version "7.5.9"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
+  integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
-ws@^6.0.0, ws@^6.2.1:
-  version "6.2.2"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
-  integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
-  dependencies:
-    async-limiter "~1.0.0"
+ws@^8.13.0:
+  version "8.16.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
+  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
 
 xregexp@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
   integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=
 
-xtend@^4.0.0, xtend@~4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
-  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
-  integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-
 y18n@^5.0.5:
   version "5.0.8"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
@@ -9412,40 +7822,16 @@ yallist@^4.0.0:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
-yaml@^1.7.2:
+yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
   version "1.10.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
 
-yargs-parser@^13.1.2:
-  version "13.1.2"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
-  integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
-  dependencies:
-    camelcase "^5.0.0"
-    decamelize "^1.2.0"
-
 yargs-parser@^20.2.2:
   version "20.2.7"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
   integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
 
-yargs@^13.3.2:
-  version "13.3.2"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
-  integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
-  dependencies:
-    cliui "^5.0.0"
-    find-up "^3.0.0"
-    get-caller-file "^2.0.1"
-    require-directory "^2.1.1"
-    require-main-filename "^2.0.0"
-    set-blocking "^2.0.0"
-    string-width "^3.0.0"
-    which-module "^2.0.0"
-    y18n "^4.0.0"
-    yargs-parser "^13.1.2"
-
 yargs@^16.0.0:
   version "16.2.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
index 0932545d0aba8e0ef8e6b0d400beac5a2445ea3e..8b341a09c103d3134ca775bc32634796f1a7c7ec 100644 (file)
@@ -1,2 +1,2 @@
-.vac-fade-spinner-enter{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter,.vac-slide-left-leave-to{transform:translateX(10px);opacity:0}.vac-slide-right-enter,.vac-slide-right-leave-to{transform:translateX(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{-webkit-animation:vac-bounce-in .5s;animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@-webkit-keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{-webkit-animation:vac-bounce-image-in .4s;animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@-webkit-keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover)}.vac-menu-list :hover,.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{align-items:center;display:flex;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:50%;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-bold{font-weight:700}.vac-text-italic{font-style:italic}.vac-text-strike{text-decoration:line-through}.vac-text-underline{text-decoration:underline}.vac-text-inline-code{display:inline-block;color:var(--chat-markdown-color);margin:2px 0;padding:2px 3px}.vac-text-inline-code,.vac-text-multiline-code{font-size:12px;background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px}.vac-text-multiline-code{display:block;color:var(--chat-markdown-color-multi);margin:4px 0;padding:7px}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container input[type=search],.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container textarea{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:rgba(0,0,0,.8);outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width:768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:60px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:30px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 2px 0 rgba(0,0,0,.12);display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width:768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(1turn)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width:768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px 10px}.vac-textarea{height:20px;width:100%;line-height:20px;overflow:hidden;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::-moz-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea:-ms-input-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea svg{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);-webkit-animation:vac-scaling .8s ease-in-out infinite alternate;animation:vac-scaling .8s ease-in-out infinite alternate}@-webkit-keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-confirm,.vac-icon-textarea-left .vac-icon-audio-confirm svg,.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-stop svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width:768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::-moz-placeholder{color:transparent}.vac-textarea:-ms-input-placeholder{color:transparent}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea svg{margin:0 5px!important}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width:768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0 10px;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width:768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0 6px;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width:768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:50%!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:" ";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width:768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width:768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;cursor:pointer;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important}.vac-rooms-container .vac-room-selected,.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width:768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width:768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);border-radius:4px;font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::-moz-placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-input:-ms-input-placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width:768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:"";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px 0;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.11),0 1px 5px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:50%!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:filter .4s linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{align-items:center;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width:768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width:768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width:768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width:768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:rgba(0,0,0,.3)}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8))}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-download,.vac-message-file-container .vac-image-buttons .vac-button-view{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px 1px rgba(0,0,0,.1);scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:auto;right:auto}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size:1.2rem;--background:var(--chat-emoji-bg-color);--emoji-padding:0.4rem;--border-color:var(--chat-sidemenu-border-color-search);--button-hover-background:var(--chat-sidemenu-bg-color-hover);--button-active-background:var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:50%!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px solid rgba(0,0,0,.25);border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s linear infinite;animation:vac-spin 1s linear infinite}@media only screen and (max-width:768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes vac-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:rgba(0,0,0,.7);border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}.vac-message-wrapper .vac-offset-current{margin-left:15%}.vac-message-wrapper .vac-message-box{max-width:80%}li[data-v-3f1187ff]{list-style:none;display:block;align-items:center;margin:0;border-radius:0;padding:10px;cursor:pointer;overflow:hidden}li[data-v-3f1187ff]:hover{background-color:#ccf2cf}li[data-v-3f1187ff]:not(:last-child){border-bottom:1px solid #add8e6}.unviewed[data-v-3f1187ff]{font-weight:700}.date[data-v-3f1187ff]{float:right;color:#789;font-size:.9em;font-style:italic}#notifications[data-v-d06c11f4]{position:absolute;top:0;right:5px;text-align:left}.bell[data-v-d06c11f4]{width:40px;height:40px;position:relative;cursor:pointer}.bell-count[data-v-d06c11f4]{position:absolute;width:20px;height:20px;top:5px;right:0;display:flex;justify-content:center;align-items:center;color:#fff;border-radius:10px;background-color:red}.notifications-list[data-v-d06c11f4]{position:absolute;background-color:#fff;z-index:100;right:10px;width:400px;max-height:calc(100vh - 300px);max-width:calc(100vw - 50px);border:1px solid #add8e6;border-radius:3px;overflow-y:scroll}ul[data-v-d06c11f4]{margin:0;padding:0;box-shadow:5px 5px 5px grey}
-/*# sourceMappingURL=app.css.map */
\ No newline at end of file
+.vac-message-wrapper .vac-offset-current{margin-left:15%}.vac-message-wrapper .vac-message-box{max-width:80%}li[data-v-fa1f8db4]{list-style:none;display:block;align-items:center;margin:0;border-radius:0;padding:10px;cursor:pointer;overflow:hidden}li[data-v-fa1f8db4]:hover{background-color:#ccf2cf}li[data-v-fa1f8db4]:not(:last-child){border-bottom:1px solid #add8e6}.unviewed[data-v-fa1f8db4]{font-weight:700}.date[data-v-fa1f8db4]{float:right;color:#789;font-size:.9em;font-style:italic}#notifications[data-v-4610efbd]{position:absolute;top:0;right:5px;text-align:left}.bell[data-v-4610efbd]{width:40px;height:40px;position:relative;cursor:pointer}.bell-count[data-v-4610efbd]{position:absolute;width:20px;height:20px;top:5px;right:0;display:flex;justify-content:center;align-items:center;color:#fff;border-radius:10px;background-color:red}.notifications-list[data-v-4610efbd]{position:absolute;background-color:#fff;z-index:100;right:10px;width:400px;max-height:calc(100vh - 300px);max-width:calc(100vw - 50px);border:1px solid #add8e6;border-radius:3px;overflow-y:scroll}ul[data-v-4610efbd]{margin:0;padding:0;box-shadow:5px 5px 5px grey}.container{display:flex;margin-top:20px;flex-direction:row;@media (max-width:1280px){flex-direction:column}}#main-video{flex:2}#thumbnails-videos{flex:1;display:flex;flex-direction:row;flex-wrap:wrap;overflow-y:auto;margin-left:10px;@media (max-width:1280px){flex-direction:column;margin-left:0}}#thumbnails-videos .box{width:100%;@media (max-width:1280px){width:50%}}
+/*# sourceMappingURL=app.css.map*/
\ No newline at end of file
index 572ff5427e9aeee41f108b3d875a3f8f1077e00b..f3724a9ceb5dc2c2832025a0540957e811ecda5b 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///vue-advanced-chat.css","webpack:///js/components/js/components/Chat.vue","webpack:///js/components/sub/js/components/sub/NotificationMessage.vue","webpack:///js/components/js/components/Notifications.vue"],"names":[],"mappings":"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,eAAe,CAAC,UAAU,CAAC,sFAAsF,aAAa,CAAC,eAAe,CCgK9voC,yCACA,eACA,CACA,sCACA,aACA,CCnHA,oBACA,eAAA,CACA,aAAA,CACA,kBAAA,CACA,QAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CACA,eACA,CACA,0BACA,wBACA,CACA,qCACA,+BACA,CAEA,2BACA,eACA,CACA,uBACA,WAAA,CACA,UAAA,CACA,cAAA,CACA,iBACA,CC6BA,gCACA,iBAAA,CACA,KAAA,CACA,SAAA,CACA,eACA,CACA,uBACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,cACA,CACA,6BACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,OAAA,CACA,OAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,kBAAA,CACA,oBACA,CAEA,qCACA,iBAAA,CACA,qBAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CACA,8BAAA,CACA,4BAAA,CACA,wBAAA,CACA,iBAAA,CACA,iBACA,CAEA,oBACA,QAAA,CACA,SAAA,CACA,2BACA","file":"app.css","sourcesContent":[".vac-fade-spinner-enter{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter,.vac-slide-left-leave-to{transform:translateX(10px);opacity:0}.vac-slide-right-enter,.vac-slide-right-leave-to{transform:translateX(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{-webkit-animation:vac-bounce-in .5s;animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@-webkit-keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{-webkit-animation:vac-bounce-image-in .4s;animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@-webkit-keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover)}.vac-menu-list :hover,.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{align-items:center;display:flex;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:50%;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-bold{font-weight:700}.vac-text-italic{font-style:italic}.vac-text-strike{text-decoration:line-through}.vac-text-underline{text-decoration:underline}.vac-text-inline-code{display:inline-block;color:var(--chat-markdown-color);margin:2px 0;padding:2px 3px}.vac-text-inline-code,.vac-text-multiline-code{font-size:12px;background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px}.vac-text-multiline-code{display:block;color:var(--chat-markdown-color-multi);margin:4px 0;padding:7px}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container input[type=search],.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container textarea{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:rgba(0,0,0,.8);outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width:768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:60px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:30px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 2px 0 rgba(0,0,0,.12);display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width:768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(1turn)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width:768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px 10px}.vac-textarea{height:20px;width:100%;line-height:20px;overflow:hidden;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::-moz-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea svg{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);-webkit-animation:vac-scaling .8s ease-in-out infinite alternate;animation:vac-scaling .8s ease-in-out infinite alternate}@-webkit-keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-confirm,.vac-icon-textarea-left .vac-icon-audio-confirm svg,.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-stop svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width:768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::-moz-placeholder{color:transparent}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea-left .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea svg{margin:0 5px!important}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width:768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0 10px;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width:768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0 6px;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width:768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:50%!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width:768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width:768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;cursor:pointer;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important}.vac-rooms-container .vac-room-selected,.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width:768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width:768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:-webkit-sticky;position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);border-radius:4px;font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::-moz-placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width:768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px 0;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.11),0 1px 5px -1px rgba(0,0,0,.11)}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:50%!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:filter .4s linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{align-items:center;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width:768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width:768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width:768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width:768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:rgba(0,0,0,.3)}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8))}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-download,.vac-message-file-container .vac-image-buttons .vac-button-view{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px 1px rgba(0,0,0,.1);scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:auto;right:auto}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size:1.2rem;--background:var(--chat-emoji-bg-color);--emoji-padding:0.4rem;--border-color:var(--chat-sidemenu-border-color-search);--button-hover-background:var(--chat-sidemenu-bg-color-hover);--button-active-background:var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:50%!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px solid rgba(0,0,0,.25);border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s linear infinite;animation:vac-spin 1s linear infinite}@media only screen and (max-width:768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes vac-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:rgba(0,0,0,.7);border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}","<template>\n  <chat-window\n    :current-user-id=\"currentUserId\"\n    :rooms-loaded=\"rooms.length > 0\"\n    :messages-loaded=\"messagesLoaded\"\n    :single-room=\"true\"\n    :rooms=\"rooms\"\n    :show-files=\"false\"\n    :show-emojis=\"true\"\n    :show-reaction-emojis=\"false\"\n    :show-audio=\"false\"\n    :messages=\"messages\"\n    :message-actions=\"[\n      {\n        name: 'replyMessage',\n        title: 'Répondre'\n      }\n    ]\"\n    :link-options=\"{ disabled: false, target: '_self' }\"\n    :text-messages=\"{\n      ROOMS_EMPTY: 'Aucune conversation',\n      ROOM_EMPTY: 'Aucune conversation sélectionnée',\n      NEW_MESSAGES: 'Nouveaux messages',\n      MESSAGE_DELETED: 'Ce message a été supprimé',\n      MESSAGES_EMPTY: 'Aucun message',\n      CONVERSATION_STARTED: 'La conversation a commencée le :',\n      TYPE_MESSAGE: 'Tapez votre message',\n      SEARCH: 'Rechercher',\n      IS_ONLINE: 'est en ligne',\n      LAST_SEEN: 'dernière connexion ',\n      IS_TYPING: 'est en train de taper...'\n    }\"\n    @send-message=\"sendMessage\"\n  />\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from \"vue-property-decorator\"\nimport ChatWindow, { Message, Messages, Rooms } from \"vue-advanced-chat\"\n\nimport \"vue-advanced-chat/dist/vue-advanced-chat.css\"\n\n@Component({\n  components: {\n    ChatWindow\n  }\n})\nexport default class Chat extends Vue {\n  socket: WebSocket | null = null\n  rooms: Rooms = [\n    {\n      roomId: \"global\",\n      roomName: \"\",\n      avatar: \"\",\n      users: []\n    }\n  ]\n  messagesLoaded = false\n  messages: Messages = []\n  currentUserId: number | null = null\n\n  created() {\n    // get room info\n    let roomInfoStr: string | null = \"\"\n    const roomInfoElm = document.getElementById(\"room-info\")\n    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n    let roomInfo: any = null\n    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n    else throw \"No room info provided\"\n\n    this.rooms = [\n      {\n        roomId: roomInfo.room_name,\n        roomName: roomInfo.room_title,\n        avatar: \"\",\n        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n        users: [\n          {\n            _id: 1,\n            username: \"Fake user 1\",\n            avatar: \"assets/imgs/doe.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"today, 14:30\"\n            }\n          },\n          {\n            _id: 2,\n            username: \"Fake user 2\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          },\n          {\n            _id: 3,\n            username: \"Fake user 3\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          }\n        ]\n      }\n    ]\n    this.connect(roomInfo.room_name)\n    this.currentUserId = roomInfo.user_id\n  }\n\n  connect(roomName: string) {\n    // connect to socket\n    let protocol = \"wss\"\n    if (window.location.protocol != \"https:\") protocol = \"ws\"\n    this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n    this.fetchMessages()\n\n    this.socket.onclose = () => {\n      console.log(\"Chat socket closed\")\n      // try to reconnect\n      // setTimeout(() => {\n      //   this.connect(roomName)\n      // }, 10000)\n    }\n  }\n\n  async fetchMessages() {\n    this.socket!.onmessage = (e) => {\n      const data = JSON.parse(e.data)\n      const type = data.type\n      // do not load messages in case of socket reconnect\n      if (type == \"initial\" && this.messagesLoaded) return\n      const newMessages = data.messages as Message[]\n      this.messages = [...this.messages, ...newMessages]\n      if (type == \"initial\") {\n        this.messagesLoaded = true\n        // scroll chat to bottom\n        const messageContainer = document.querySelector(\".vac-container-scroll\")\n        this.$nextTick(() => {\n          if(messageContainer)\n            messageContainer.scrollTop = messageContainer.scrollHeight\n        })\n      }\n    }\n  }\n\n  sendMessage({ content, replyMessage }: Message) {\n    /** send message to socket */\n    this.socket!.send(\n      JSON.stringify({\n        message: content,\n        replyTo: replyMessage ? replyMessage._id : null\n      })\n    )\n  }\n}\n</script>\n\n<style>\n.vac-message-wrapper .vac-offset-current {\n  margin-left: 15%;\n}\n.vac-message-wrapper .vac-message-box {\n  max-width: 80%;\n}\n</style>\n","<template>\n  <li @click=\"onClick()\" @click.middle=\"onMiddleClick()\">\n    <span :class=\"{ 'unviewed': !viewed, text: true }\">{{ content }}</span>\n    <span class=\"date\">{{ relativeCreationDate }} </span>\n  </li>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from \"vue-property-decorator\"\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n// Define the props by using Vue's canonical way.\nconst NotificationMessageProps = Vue.extend({\n  props: {\n    id: Number,\n    content: String,\n    url: String,\n    viewed: Boolean,\n    creationDate: String\n  }\n})\n\n@Component\nexport default class NotificationMessage extends NotificationMessageProps {\n\n  async setAsViewed() {\n    if (this.$props.viewed === false) {\n      await axios.post(\"/notification\", { id: this.$props.id, viewed: true })\n    }\n  }\n\n  async onClick() {\n    this.setAsViewed()\n    if (this.$props.url) window.location.href = this.$props.url\n  }\n\n  async onMiddleClick() {\n    this.setAsViewed()\n    if (this.$props.url) window.open(this.$props.url, '_blank');\n  }\n\n  get relativeCreationDate() {\n    return formatRelative(new Date(this.$props.creationDate), new Date(), { locale: fr })\n  }\n}\n</script>\n\n<style scoped>\nli {\n  list-style: none;\n  display: block;\n  align-items: center;\n  margin: 0;\n  border-radius: 0;\n  padding: 10px;\n  cursor: pointer;\n  overflow: hidden;\n}\nli:hover {\n  background-color: #ccf2cf;\n}\nli:not(:last-child) {\n  border-bottom: 1px solid lightblue;\n}\n\n.unviewed {\n  font-weight: bold;\n}\n.date {\n    float: right;\n    color: lightslategrey;\n    font-size: 0.9em;\n    font-style: italic;\n}\n</style>\n","<template>\n  <div id=\"notifications\" @focus=\"open\" @focusout=\"close\" tabindex=\"0\">\n    <div class=\"bell\">\n      <img src=\"/static/teleforma/images/bell.svg\" alt=\"Notifications\" title=\"Notifications\" class=\"bell-image\" />\n      <span v-if=\"numberOfUnread > 0\" class=\"bell-count\">{{ numberOfUnread }}</span>\n    </div>\n    <div v-if=\"opened\" class=\"notifications-list\">\n      <!-- <h1 v-if=\"currentUserId\">{{ currentUserId }}</h1>\n      <h1 v-else>Pas d'utilisateur</h1> -->\n      <ul>\n        <NotificationMessage\n          v-for=\"message in messages\"\n          :key=\"message._id\"\n          :id=\"message._id\"\n          :content=\"message.content\"\n          :url=\"message.url\"\n          :viewed=\"message.viewed\"\n          :creation-date=\"message.created\"\n        ></NotificationMessage>\n      </ul>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from \"vue-property-decorator\"\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\n@Component({\n  components: {\n    NotificationMessage\n  }\n})\nexport default class Notifications extends Vue {\n  socket: WebSocket | null = null\n  messagesLoaded = false\n  messages: any[] = []\n  currentUserId: number | null = null\n  opened = false\n\n  created() {\n    // get room info\n    const userId = document.getElementById(\"user_id\")\n    if (!userId) return\n    // this.connect(`notifications_${userId}`)\n    this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n    this.connect()\n  }\n\n  connect() {\n    // connect to socket\n    let protocol = \"wss\"\n    if (window.location.protocol != \"https:\") protocol = \"ws\"\n    this.socket = new WebSocket(\n      protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n    )\n    this.fetchMessages()\n\n    this.socket.onclose = () => {\n      console.log(\"Chat socket closed\")\n    }\n  }\n\n  async fetchMessages() {\n    this.socket!.onmessage = (e) => {\n      const data = JSON.parse(e.data)\n      const type = data.type\n      // debugger;\n      // do not load messages in case of socket reconnect\n      if (type === \"initial\" && this.messagesLoaded) return\n\n      const newMessages = data.messages\n\n      // check if a message with the same id already exists\n      // it means the message have been updated (probably the \"viewed\" state)\n      let existing = null\n      if (type === \"new\" && newMessages.length === 1) {\n        existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n      }\n      \n      // if it exists, then we update it instead of appending a new one\n      if (existing !== null && existing !== -1){\n        this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n      }\n      else\n        this.messages = [...newMessages, ...this.messages]\n      if (type === \"initial\") this.messagesLoaded = true\n    }\n  }\n\n  open() {\n    this.opened = true\n  }\n  close() {\n    this.opened = false\n  }\n\n  get numberOfUnread() {\n    return this.messages.filter(message => !message.viewed).length\n  }\n}\n</script>\n\n<style scoped>\n#notifications {\n  position: absolute;\n  top: 0px;\n  right: 5px;\n  text-align: left;\n}\n.bell {\n  width: 40px;\n  height: 40px;\n  position: relative;\n  cursor: pointer;\n}\n.bell-count {\n  position: absolute;\n  width: 20px;\n  height: 20px;\n  top: 5px;\n  right: 0px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  color: white;\n  border-radius: 10px;\n  background-color: red;\n}\n\n.notifications-list {\n  position: absolute;\n  background-color: white;\n  z-index: 100;\n  right: 10px;\n  width: 400px;\n  max-height: calc(100vh - 300px);\n  max-width: calc(100vw - 50px);\n  border: 1px solid lightblue;\n  border-radius: 3px;\n  overflow-y: scroll;\n}\n\nul {\n  margin: 0;\n  padding: 0;\n  box-shadow: 5px 5px 5px grey;\n}\n</style>\n"]}
\ No newline at end of file
+{"version":3,"file":"app.css","mappings":"AA4KA,yCACE,eACF,CACA,sCACE,aACF,CC/HA,oBACE,eAAgB,CAChB,aAAc,CACd,kBAAmB,CACnB,QAAS,CACT,eAAgB,CAChB,YAAa,CACb,cAAe,CACf,eACF,CACA,0BACE,wBACF,CACA,qCACE,+BACF,CAEA,2BACE,eACF,CACA,uBACE,WAAY,CACZ,UAAqB,CACrB,cAAgB,CAChB,iBACF,CCyCA,gCACE,iBAAkB,CAClB,KAAQ,CACR,SAAU,CACV,eACF,CACA,uBACE,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,cACF,CACA,6BACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,OAAQ,CACR,OAAU,CACV,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,UAAY,CACZ,kBAAmB,CACnB,oBACF,CAEA,qCACE,iBAAkB,CAClB,qBAAuB,CACvB,WAAY,CACZ,UAAW,CACX,WAAY,CACZ,8BAA+B,CAC/B,4BAA6B,CAC7B,wBAA2B,CAC3B,iBAAkB,CAClB,iBACF,CAEA,oBACE,QAAS,CACT,SAAU,CACV,2BACF,CChCA,WACE,YAAa,CACb,eAAgB,CAChB,kBAAmB,CACnB,0BACE,qBACF,CACF,CAEA,YACE,MACF,CACA,mBACE,MAAO,CACP,YAAa,CACb,kBAAmB,CACnB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,0BACE,qBAAsB,CACtB,aACF,CACF,CAEA,wBACE,UAAW,CACX,0BACE,SACF,CACF","sources":["webpack://src/./js/components/ChatComponent.vue","webpack://src/./js/components/sub/NotificationMessage.vue","webpack://src/./js/components/NotificationsBell.vue","webpack://src/./js/video/VideoComponent.vue"],"sourcesContent":["<template>\n  <vue-advanced-chat\n    :current-user-id=\"currentUserId\"\n    :rooms-loaded=\"rooms.length > 0\"\n    :messages-loaded=\"messagesLoaded || null\"\n    single-room=\"true\"\n    :rooms=\"JSON.stringify(rooms)\"\n    :room-id=\"rooms[0].roomId\"\n    show-files=\"false\"\n    show-emojis=\"true\"\n    show-reaction-emojis=\"false\"\n    show-audio=\"false\"\n    :messages=\"JSON.stringify(messages)\"\n    :message-actions=\"\n      JSON.stringify([\n        {\n          name: 'replyMessage',\n          title: 'Répondre'\n        }\n      ])\n    \"\n    :link-options=\"JSON.stringify({ disabled: false, target: '_self' })\"\n    :text-messages=\"\n      JSON.stringify({\n        ROOMS_EMPTY: 'Aucune conversation',\n        ROOM_EMPTY: 'Aucune conversation sélectionnée',\n        NEW_MESSAGES: 'Nouveaux messages',\n        MESSAGE_DELETED: 'Ce message a été supprimé',\n        MESSAGES_EMPTY: 'Aucun message',\n        CONVERSATION_STARTED: 'La conversation a commencée le :',\n        TYPE_MESSAGE: 'Tapez votre message',\n        SEARCH: 'Rechercher',\n        IS_ONLINE: 'est en ligne',\n        LAST_SEEN: 'dernière connexion ',\n        IS_TYPING: 'est en train de taper...'\n      })\n    \"\n    @send-message=\"sendMessage($event.detail[0])\"\n  />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from \"vue\"\nimport { Message, Room, register } from \"vue-advanced-chat\"\nregister()\n\ninterface BaseComponentData {\n  socket: WebSocket | null\n  rooms: Room[]\n  messagesLoaded: boolean\n  messages: Message[]\n  currentUserId: string | null\n}\n\nexport default defineComponent({\n  data(): BaseComponentData {\n    return {\n      socket: null,\n      rooms: [\n        {\n          roomId: \"global\",\n          roomName: \"\",\n          avatar: \"\",\n          users: []\n        }\n      ],\n      messagesLoaded: false,\n      messages: [],\n      currentUserId: null\n    }\n  },\n\n  mounted() {\n    // get room info\n    let roomInfoStr: string | null = \"\"\n    const roomInfoElm = document.getElementById(\"room-info\")\n    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n    let roomInfo: any = null\n    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n    else throw \"No room info provided\"\n    this.rooms = [\n      {\n        roomId: roomInfo.room_name,\n        roomName: roomInfo.room_title,\n        avatar: \"\",\n        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n        users: [\n          {\n            _id: \"1\",\n            username: \"Fake user 1\",\n            avatar: \"assets/imgs/doe.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"today, 14:30\"\n            }\n          },\n          {\n            _id: \"2\",\n            username: \"Fake user 2\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          },\n          {\n            _id: \"3\",\n            username: \"Fake user 3\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          }\n        ]\n      }\n    ]\n    this.connect(roomInfo.room_name)\n    this.currentUserId = roomInfo.user_id\n  },\n\n  methods: {\n    connect(roomName: string) {\n      // connect to socket\n      let protocol = \"wss\"\n      if (window.location.protocol != \"https:\") protocol = \"ws\"\n      this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n      this.fetchMessages()\n\n      this.socket.onclose = () => {\n        console.log(\"Chat socket closed\")\n        // try to reconnect\n        // setTimeout(() => {\n        //   this.connect(roomName)\n        // }, 10000)\n      }\n    },\n\n    async fetchMessages() {\n      this.socket!.onmessage = (e) => {\n        const data = JSON.parse(e.data)\n        const type = data.type\n        // do not load messages in case of socket reconnect\n        if (type == \"initial\" && this.messagesLoaded) return\n        const newMessages = data.messages as Message[]\n        this.messages = [...this.messages, ...newMessages]\n        if (type == \"initial\") {\n          this.messagesLoaded = true\n        }\n      }\n    },\n\n    sendMessage({ content, replyMessage }: Message) {\n      /** send message to socket */\n      this.socket!.send(\n        JSON.stringify({\n          message: content,\n          replyTo: replyMessage ? replyMessage._id : null\n        })\n      )\n    }\n  },\n\n  computed: {\n    showAudio() {\n      return undefined\n    }\n  }\n})\n</script>\n\n<style>\n.vac-message-wrapper .vac-offset-current {\n  margin-left: 15%;\n}\n.vac-message-wrapper .vac-message-box {\n  max-width: 80%;\n}\n</style>\n","<template>\n  <li @click=\"onClick()\" @click.middle=\"onMiddleClick()\">\n    <span :class=\"{ unviewed: !viewed, text: true }\">{{ content }}</span>\n    <span class=\"date\">{{ relativeCreationDate }} </span>\n  </li>\n</template>\n\n<script lang=\"ts\">\n\nimport { defineComponent } from 'vue'\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n\nexport default defineComponent({\n  props: {\n    id: Number,\n    content: String,\n    url: String,\n    viewed: Boolean,\n    creationDate: String\n  },\n\n  methods: {\n    async setAsViewed() {\n      if (this.viewed === false) {\n        await axios.post(\"/notification\", { id: this.id, viewed: true })\n      }\n    },\n\n    async onClick() {\n      await this.setAsViewed()\n      if (this.url) window.location.href = this.url\n    },\n\n    async onMiddleClick() {\n      await this.setAsViewed()\n      if (this.url) window.open(this.url, \"_blank\")\n    }\n  },\n  computed: {\n    relativeCreationDate():string {\n      return formatRelative(new Date(this.creationDate as string), new Date(), { locale: fr })\n    }\n  }\n})\n</script>\n\n<style scoped>\nli {\n  list-style: none;\n  display: block;\n  align-items: center;\n  margin: 0;\n  border-radius: 0;\n  padding: 10px;\n  cursor: pointer;\n  overflow: hidden;\n}\nli:hover {\n  background-color: #ccf2cf;\n}\nli:not(:last-child) {\n  border-bottom: 1px solid lightblue;\n}\n\n.unviewed {\n  font-weight: bold;\n}\n.date {\n  float: right;\n  color: lightslategrey;\n  font-size: 0.9em;\n  font-style: italic;\n}\n</style>\n","<template>\n  <div id=\"notifications\" @focus=\"open\" @focusout=\"close\" tabindex=\"0\">\n    <div class=\"bell\">\n      <img src=\"/static/teleforma/images/bell.svg\" alt=\"Notifications\" title=\"Notifications\" class=\"bell-image\" />\n      <span v-if=\"numberOfUnread > 0\" class=\"bell-count\">{{ numberOfUnread }}</span>\n    </div>\n    <div v-if=\"opened\" class=\"notifications-list\">\n      <!-- <h1 v-if=\"currentUserId\">{{ currentUserId }}</h1>\n      <h1 v-else>Pas d'utilisateur</h1> -->\n      <ul>\n        <notification-message\n          v-for=\"message in messages\"\n          :key=\"message._id\"\n          :id=\"message._id\"\n          :content=\"message.content\"\n          :url=\"message.url\"\n          :viewed=\"message.viewed\"\n          :creation-date=\"message.created\"\n        ></notification-message>\n      </ul>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\ninterface BaseComponentData {\n  socket: WebSocket | null\n  messagesLoaded: boolean\n  messages: any[]\n  currentUserId: number | null\n  opened: boolean\n}\n\nexport default defineComponent({\n  \n  data(): BaseComponentData {\n    return {\n      socket: null,\n      messagesLoaded: false,\n      messages: [],\n      currentUserId: null,\n      opened: false\n    }\n  },\n  components: {\n    NotificationMessage\n  },\n  created() {\n    // get room info\n    const userId = document.getElementById(\"user_id\")\n    if (!userId) return\n    // this.connect(`notifications_${userId}`)\n    this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n    this.connect()\n  },\n\n  methods: {\n    connect() {\n      // connect to socket\n      let protocol = \"wss\"\n      if (window.location.protocol != \"https:\") protocol = \"ws\"\n      this.socket = new WebSocket(\n        protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n      )\n      this.fetchMessages()\n\n      this.socket.onclose = () => {\n        console.log(\"Chat socket closed\")\n      }\n    },\n\n    async fetchMessages() {\n      this.socket!.onmessage = (e) => {\n        const data = JSON.parse(e.data)\n        const type = data.type\n        // debugger;\n        // do not load messages in case of socket reconnect\n        if (type === \"initial\" && this.messagesLoaded) return\n\n        const newMessages = data.messages\n\n        // check if a message with the same id already exists\n        // it means the message have been updated (probably the \"viewed\" state)\n        let existing = null\n        if (type === \"new\" && newMessages.length === 1) {\n          existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n        }\n\n        // if it exists, then we update it instead of appending a new one\n        if (existing !== null && existing !== -1) {\n          this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n        } else this.messages = [...newMessages, ...this.messages]\n        if (type === \"initial\") this.messagesLoaded = true\n      }\n    },\n\n    open() {\n      this.opened = true\n    },\n    close() {\n      this.opened = false\n    }\n  },\n\n  computed: {\n    numberOfUnread(): any {\n      return this.messages.filter((message) => !message.viewed).length\n    }\n  }\n})\n</script>\n\n<style scoped>\n#notifications {\n  position: absolute;\n  top: 0px;\n  right: 5px;\n  text-align: left;\n}\n.bell {\n  width: 40px;\n  height: 40px;\n  position: relative;\n  cursor: pointer;\n}\n.bell-count {\n  position: absolute;\n  width: 20px;\n  height: 20px;\n  top: 5px;\n  right: 0px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  color: white;\n  border-radius: 10px;\n  background-color: red;\n}\n\n.notifications-list {\n  position: absolute;\n  background-color: white;\n  z-index: 100;\n  right: 10px;\n  width: 400px;\n  max-height: calc(100vh - 300px);\n  max-width: calc(100vw - 50px);\n  border: 1px solid lightblue;\n  border-radius: 3px;\n  overflow-y: scroll;\n}\n\nul {\n  margin: 0;\n  padding: 0;\n  box-shadow: 5px 5px 5px grey;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\n\nconst ids = ref([\"video-0\", \"video-1\", \"video-2\"])\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n  controls: false,\n  loop: false,\n  videoPlayers: [\n    {\n      id: \"#video-0\",\n      controls: true,\n      main: true,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/050/817/original/002822-HD-SPECTRUM-COUNTDOWN-01.mp4\"\n    },\n    {\n      id: \"#video-1\",\n      // startSeconds: 0,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/051/313/original/002823-HD-SPECTRUM-COUNTDOWN-02.mp4\"\n    },\n    {\n      id: \"#video-2\",\n      initialSrc: \"https://static.videezy.com/system/resources/previews/000/049/943/original/002831-HD-COUNTDOWN-03.mp4\"\n    },\n    {\n      id: \"#video-3\",\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    }\n  ]\n})\n\nonMounted(() => {\n  syncVideoPlayer.mount()\n  const mainVideo = document.getElementById(\"main-video\").querySelector(\"video\")\n\n  mainVideo.addEventListener(\"loadeddata\", () => {\n    //Video should now be loaded but we can add a second check\n\n    if (mainVideo.readyState >= 1) {\n      resizeVideoContainers()\n    }\n  })\n  // resize videos containers on window resize\n  window.addEventListener(\"resize\", resizeVideoContainers)\n\n})\n\nfunction resizeVideoContainers() {\n  /** resize video containers so it fits a 2/3 - 1/3 */\n\n  console.log(\"resizeVideoContainers\")\n  const mainVideoContainer = document.getElementById(\"main-video\")\n  const mainVideoHeight = mainVideoContainer?.clientHeight\n  // set height to thumbnails list\n  const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n  // check if window size is less than 1280px (thumbnails wraps below in this case)\n  let thumbnailsVideoHeight = mainVideoHeight\n  if (window.innerWidth < 1280) {\n    thumbnailsVideoHeight = mainVideoHeight / 2\n  \n  }\n  console.log(thumbnailsVideos, thumbnailsVideoHeight)\n  \n  thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n}\n\nasync function onPlay() {\n  await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n  await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n  // create area for video1\n  const id = `video-${Math.random().toString(36).substring(2, 9)}`\n  ids.value.push(id)\n  nextTick(() => {\n    // add video\n    syncVideoPlayer.addVideoPlayer({\n      id: `#${id}`,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    })\n  })\n}\n\nasync function onClick(index: number) {\n  syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n  const value = (e.target as HTMLInputElement).value\n  await syncVideoPlayer.timeTo(parseFloat(value))\n}\n</script>\n\n<template>\n  <div>\n    <div class=\"container\">\n      <div id=\"main-video\">\n        <div class=\"box\" id=\"video-0\" :key=\"0\" @click=\"onClick(0)\"></div>\n      </div>\n      <div id=\"thumbnails-videos\">\n        <div v-for=\"(id, i) in ids.slice(1)\" class=\"box\" :id=\"id\" :key=\"i + 1\" @click.prevent=\"onClick(i + 1)\"></div>\n      </div>\n    </div>\n\n    <div class=\"controls\">\n      <button @click=\"onAdd\">Add video</button>\n      <button @click=\"onPlay\">Play</button>\n      <button @click=\"onPause\">Pause</button>\n      <!-- range selector for time -->\n      <div class=\"time\">\n        <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" class=\"slider\" id=\"myRange\" @input=\"onChange\" />\n      </div>\n    </div>\n  </div>\n</template>\n\n<style>\n.container {\n  display: flex;\n  margin-top: 20px;\n  flex-direction: row;\n  @media (max-width: 1280px) {\n    flex-direction: column;\n  }\n}\n\n#main-video {\n  flex: 2;\n}\n#thumbnails-videos {\n  flex: 1;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  overflow-y: auto;\n  margin-left: 10px;\n  @media (max-width: 1280px) {\n    flex-direction: column;\n    margin-left: 0px;\n  }\n}\n\n#thumbnails-videos .box {\n  width: 100%;\n  @media (max-width: 1280px) {\n    width: 50%;\n  }\n}\n</style>\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
index d8cd8b53a54d95d1f778f57843c9ad9a433e0fbb..2df85e4fa15d96a5afc64aec9267667ee0c85a14 100644 (file)
@@ -1,16 +1,12 @@
-(function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=0)})({0:function(e,t,n){e.exports=n("9186")},"00ee":function(e,t,n){var r=n("b622"),o=r("toStringTag"),a={};a[o]="z",e.exports="[object z]"===String(a)},"0366":function(e,t,n){var r=n("1c0b");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},"0538":function(e,t,n){"use strict";var r=n("1c0b"),o=n("861d"),a=[].slice,i={},s=function(e,t,n){if(!(t in i)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";i[t]=Function("C,a","return new C("+r.join(",")+")")}return i[t](e,n)};e.exports=Function.bind||function(e){var t=r(this),n=a.call(arguments,1),i=function(){var r=n.concat(a.call(arguments));return this instanceof i?s(t,r.length,r):t.apply(e,r)};return o(t.prototype)&&(i.prototype=t.prototype),i}},"057f":function(e,t,n){var r=n("fc6a"),o=n("241c").f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return o(e)}catch(t){return i.slice()}};e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?s(e):o(r(e))}},"06cf":function(e,t,n){var r=n("83ab"),o=n("d1e7"),a=n("5c6c"),i=n("fc6a"),s=n("c04e"),c=n("5135"),l=n("0cfb"),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=i(e),t=s(t,!0),l)try{return u(e,t)}catch(n){}if(c(e,t))return a(!o.f.call(e,t),e[t])}},"0a06":function(e,t,n){"use strict";var r=n("c532"),o=n("30b5"),a=n("f6b4"),i=n("5270"),s=n("4a7b");function c(e){this.defaults=e,this.interceptors={request:new a,response:new a}}c.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=s(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[i,void 0],n=Promise.resolve(e);this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));while(t.length)n=n.then(t.shift(),t.shift());return n},c.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=c},"0cfb":function(e,t,n){var r=n("83ab"),o=n("d039"),a=n("cc12");e.exports=!r&&!o((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},"0df6":function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},"19aa":function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},"1be4":function(e,t,n){var r=n("d066");e.exports=r("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,t,n){var r=n("b622"),o=r("iterator"),a=!1;try{var i=0,s={next:function(){return{done:!!i++}},return:function(){a=!0}};s[o]=function(){return this},Array.from(s,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!a)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(c){}return n}},"1cdc":function(e,t,n){var r=n("342f");e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(r)},"1d2b":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},"1d80":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var r=n("d039"),o=n("b622"),a=n("2d00"),i=o("species");e.exports=function(e){return a>=51||!r((function(){var t=[],n=t.constructor={};return n[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},2266:function(e,t,n){var r=n("825a"),o=n("e95a"),a=n("50c4"),i=n("0366"),s=n("35a1"),c=n("2a62"),l=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,n){var u,f,d,p,h,m,g,v=n&&n.that,_=!(!n||!n.AS_ENTRIES),b=!(!n||!n.IS_ITERATOR),y=!(!n||!n.INTERRUPTED),w=i(t,v,1+_+y),x=function(e){return u&&c(u),new l(!0,e)},S=function(e){return _?(r(e),y?w(e[0],e[1],x):w(e[0],e[1])):y?w(e,x):w(e)};if(b)u=e;else{if(f=s(e),"function"!=typeof f)throw TypeError("Target is not iterable");if(o(f)){for(d=0,p=a(e.length);p>d;d++)if(h=S(e[d]),h&&h instanceof l)return h;return new l(!1)}u=f.call(e)}m=u.next;while(!(g=m.call(u)).done){try{h=S(g.value)}catch(k){throw c(u),k}if("object"==typeof h&&h&&h instanceof l)return h}return new l(!1)}},"23cb":function(e,t,n){var r=n("a691"),o=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):a(n,t)}},"23e7":function(e,t,n){var r=n("da84"),o=n("06cf").f,a=n("9112"),i=n("6eeb"),s=n("ce4e"),c=n("e893"),l=n("94ca");e.exports=function(e,t){var n,u,f,d,p,h,m=e.target,g=e.global,v=e.stat;if(u=g?r:v?r[m]||s(m,{}):(r[m]||{}).prototype,u)for(f in t){if(p=t[f],e.noTargetGet?(h=o(u,f),d=h&&h.value):d=u[f],n=l(g?f:m+(v?".":"#")+f,e.forced),!n&&void 0!==d){if(typeof p===typeof d)continue;c(p,d)}(e.sham||d&&d.sham)&&a(p,"sham",!0),i(u,f,p,e)}}},"241c":function(e,t,n){var r=n("ca84"),o=n("7839"),a=o.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},2444:function(e,t,n){"use strict";(function(t){var r=n("c532"),o=n("c8af"),a={"Content-Type":"application/x-www-form-urlencoded"};function i(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function s(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof t&&"[object process]"===Object.prototype.toString.call(t))&&(e=n("b50d")),e}var c={adapter:s(),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(i(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(i(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(a)})),e.exports=c}).call(this,n("4362"))},2626:function(e,t,n){"use strict";var r=n("d066"),o=n("9bf2"),a=n("b622"),i=n("83ab"),s=a("species");e.exports=function(e){var t=r(e),n=o.f;i&&t&&!t[s]&&n(t,s,{configurable:!0,get:function(){return this}})}},"2a62":function(e,t,n){var r=n("825a");e.exports=function(e){var t=e["return"];if(void 0!==t)return r(t.call(e)).value}},"2b0e":function(e,t,n){"use strict";(function(e){
-/*!
- * Vue.js v2.6.14
- * (c) 2014-2021 Evan You
- * Released under the MIT License.
- */
-var n=Object.freeze({});function r(e){return void 0===e||null===e}function o(e){return void 0!==e&&null!==e}function a(e){return!0===e}function i(e){return!1===e}function s(e){return"string"===typeof e||"number"===typeof e||"symbol"===typeof e||"boolean"===typeof e}function c(e){return null!==e&&"object"===typeof e}var l=Object.prototype.toString;function u(e){return"[object Object]"===l.call(e)}function f(e){return"[object RegExp]"===l.call(e)}function d(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return o(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function h(e){return null==e?"":Array.isArray(e)||u(e)&&e.toString===l?JSON.stringify(e,null,2):String(e)}function m(e){var t=parseFloat(e);return isNaN(t)?e:t}function g(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}g("slot,component",!0);var v=g("key,ref,slot,slot-scope,is");function _(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function y(e,t){return b.call(e,t)}function w(e){var t=Object.create(null);return function(n){var r=t[n];return r||(t[n]=e(n))}}var x=/-(\w)/g,S=w((function(e){return e.replace(x,(function(e,t){return t?t.toUpperCase():""}))})),k=w((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),M=/\B([A-Z])/g,A=w((function(e){return e.replace(M,"-$1").toLowerCase()}));function E(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function T(e,t){return e.bind(t)}var R=Function.prototype.bind?T:E;function O(e,t){t=t||0;var n=e.length-t,r=new Array(n);while(n--)r[n]=e[n+t];return r}function C(e,t){for(var n in t)e[n]=t[n];return e}function j(e){for(var t={},n=0;n<e.length;n++)e[n]&&C(t,e[n]);return t}function B(e,t,n){}var I=function(e,t,n){return!1},P=function(e){return e};function L(e,t){if(e===t)return!0;var n=c(e),r=c(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var o=Array.isArray(e),a=Array.isArray(t);if(o&&a)return e.length===t.length&&e.every((function(e,n){return L(e,t[n])}));if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(o||a)return!1;var i=Object.keys(e),s=Object.keys(t);return i.length===s.length&&i.every((function(n){return L(e[n],t[n])}))}catch(l){return!1}}function N(e,t){for(var n=0;n<e.length;n++)if(L(e[n],t))return n;return-1}function D(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var F="data-server-rendered",H=["component","directive","filter"],U=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],$={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:I,isReservedAttr:I,isUnknownElement:I,getTagNamespace:B,parsePlatformTagName:P,mustUseProp:I,async:!0,_lifecycleHooks:U},q=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function V(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function z(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var X=new RegExp("[^"+q.source+".$_\\d]");function Y(e){if(!X.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}var G,W="__proto__"in{},K="undefined"!==typeof window,Z="undefined"!==typeof WXEnvironment&&!!WXEnvironment.platform,Q=Z&&WXEnvironment.platform.toLowerCase(),J=K&&window.navigator.userAgent.toLowerCase(),ee=J&&/msie|trident/.test(J),te=J&&J.indexOf("msie 9.0")>0,ne=J&&J.indexOf("edge/")>0,re=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===Q),oe=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),ae={}.watch,ie=!1;if(K)try{var se={};Object.defineProperty(se,"passive",{get:function(){ie=!0}}),window.addEventListener("test-passive",null,se)}catch(ki){}var ce=function(){return void 0===G&&(G=!K&&!Z&&"undefined"!==typeof e&&(e["process"]&&"server"===e["process"].env.VUE_ENV)),G},le=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ue(e){return"function"===typeof e&&/native code/.test(e.toString())}var fe,de="undefined"!==typeof Symbol&&ue(Symbol)&&"undefined"!==typeof Reflect&&ue(Reflect.ownKeys);fe="undefined"!==typeof Set&&ue(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var pe=B,he=0,me=function(){this.id=he++,this.subs=[]};me.prototype.addSub=function(e){this.subs.push(e)},me.prototype.removeSub=function(e){_(this.subs,e)},me.prototype.depend=function(){me.target&&me.target.addDep(this)},me.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t<n;t++)e[t].update()},me.target=null;var ge=[];function ve(e){ge.push(e),me.target=e}function _e(){ge.pop(),me.target=ge[ge.length-1]}var be=function(e,t,n,r,o,a,i,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=i,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ye={child:{configurable:!0}};ye.child.get=function(){return this.componentInstance},Object.defineProperties(be.prototype,ye);var we=function(e){void 0===e&&(e="");var t=new be;return t.text=e,t.isComment=!0,t};function xe(e){return new be(void 0,void 0,void 0,String(e))}function Se(e){var t=new be(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var ke=Array.prototype,Me=Object.create(ke),Ae=["push","pop","shift","unshift","splice","sort","reverse"];Ae.forEach((function(e){var t=ke[e];z(Me,e,(function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];var o,a=t.apply(this,n),i=this.__ob__;switch(e){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2);break}return o&&i.observeArray(o),i.dep.notify(),a}))}));var Ee=Object.getOwnPropertyNames(Me),Te=!0;function Re(e){Te=e}var Oe=function(e){this.value=e,this.dep=new me,this.vmCount=0,z(e,"__ob__",this),Array.isArray(e)?(W?Ce(e,Me):je(e,Me,Ee),this.observeArray(e)):this.walk(e)};function Ce(e,t){e.__proto__=t}function je(e,t,n){for(var r=0,o=n.length;r<o;r++){var a=n[r];z(e,a,t[a])}}function Be(e,t){var n;if(c(e)&&!(e instanceof be))return y(e,"__ob__")&&e.__ob__ instanceof Oe?n=e.__ob__:Te&&!ce()&&(Array.isArray(e)||u(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new Oe(e)),t&&n&&n.vmCount++,n}function Ie(e,t,n,r,o){var a=new me,i=Object.getOwnPropertyDescriptor(e,t);if(!i||!1!==i.configurable){var s=i&&i.get,c=i&&i.set;s&&!c||2!==arguments.length||(n=e[t]);var l=!o&&Be(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return me.target&&(a.depend(),l&&(l.dep.depend(),Array.isArray(t)&&Ne(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!==t&&r!==r||s&&!c||(c?c.call(e,t):n=t,l=!o&&Be(t),a.notify())}})}}function Pe(e,t,n){if(Array.isArray(e)&&d(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Ie(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Le(e,t){if(Array.isArray(e)&&d(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||y(e,t)&&(delete e[t],n&&n.dep.notify())}}function Ne(e){for(var t=void 0,n=0,r=e.length;n<r;n++)t=e[n],t&&t.__ob__&&t.__ob__.dep.depend(),Array.isArray(t)&&Ne(t)}Oe.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Ie(e,t[n])},Oe.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)Be(e[t])};var De=$.optionMergeStrategies;function Fe(e,t){if(!t)return e;for(var n,r,o,a=de?Reflect.ownKeys(t):Object.keys(t),i=0;i<a.length;i++)n=a[i],"__ob__"!==n&&(r=e[n],o=t[n],y(e,n)?r!==o&&u(r)&&u(o)&&Fe(r,o):Pe(e,n,o));return e}function He(e,t,n){return n?function(){var r="function"===typeof t?t.call(n,n):t,o="function"===typeof e?e.call(n,n):e;return r?Fe(r,o):o}:t?e?function(){return Fe("function"===typeof t?t.call(this,this):t,"function"===typeof e?e.call(this,this):e)}:t:e}function Ue(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?$e(n):n}function $e(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}function qe(e,t,n,r){var o=Object.create(e||null);return t?C(o,t):o}De.data=function(e,t,n){return n?He(e,t,n):t&&"function"!==typeof t?e:He(e,t)},U.forEach((function(e){De[e]=Ue})),H.forEach((function(e){De[e+"s"]=qe})),De.watch=function(e,t,n,r){if(e===ae&&(e=void 0),t===ae&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var o={};for(var a in C(o,e),t){var i=o[a],s=t[a];i&&!Array.isArray(i)&&(i=[i]),o[a]=i?i.concat(s):Array.isArray(s)?s:[s]}return o},De.props=De.methods=De.inject=De.computed=function(e,t,n,r){if(!e)return t;var o=Object.create(null);return C(o,e),t&&C(o,t),o},De.provide=He;var Ve=function(e,t){return void 0===t?e:t};function ze(e,t){var n=e.props;if(n){var r,o,a,i={};if(Array.isArray(n)){r=n.length;while(r--)o=n[r],"string"===typeof o&&(a=S(o),i[a]={type:null})}else if(u(n))for(var s in n)o=n[s],a=S(s),i[a]=u(o)?o:{type:o};else 0;e.props=i}}function Xe(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(u(n))for(var a in n){var i=n[a];r[a]=u(i)?C({from:a},i):{from:i}}else 0}}function Ye(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"===typeof r&&(t[n]={bind:r,update:r})}}function Ge(e,t,n){if("function"===typeof t&&(t=t.options),ze(t,n),Xe(t,n),Ye(t),!t._base&&(t.extends&&(e=Ge(e,t.extends,n)),t.mixins))for(var r=0,o=t.mixins.length;r<o;r++)e=Ge(e,t.mixins[r],n);var a,i={};for(a in e)s(a);for(a in t)y(e,a)||s(a);function s(r){var o=De[r]||Ve;i[r]=o(e[r],t[r],n,r)}return i}function We(e,t,n,r){if("string"===typeof n){var o=e[t];if(y(o,n))return o[n];var a=S(n);if(y(o,a))return o[a];var i=k(a);if(y(o,i))return o[i];var s=o[n]||o[a]||o[i];return s}}function Ke(e,t,n,r){var o=t[e],a=!y(n,e),i=n[e],s=tt(Boolean,o.type);if(s>-1)if(a&&!y(o,"default"))i=!1;else if(""===i||i===A(e)){var c=tt(String,o.type);(c<0||s<c)&&(i=!0)}if(void 0===i){i=Ze(r,o,e);var l=Te;Re(!0),Be(i),Re(l)}return i}function Ze(e,t,n){if(y(t,"default")){var r=t.default;return e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n]?e._props[n]:"function"===typeof r&&"Function"!==Je(t.type)?r.call(e):r}}var Qe=/^\s*function (\w+)/;function Je(e){var t=e&&e.toString().match(Qe);return t?t[1]:""}function et(e,t){return Je(e)===Je(t)}function tt(e,t){if(!Array.isArray(t))return et(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(et(t[n],e))return n;return-1}function nt(e,t,n){ve();try{if(t){var r=t;while(r=r.$parent){var o=r.$options.errorCaptured;if(o)for(var a=0;a<o.length;a++)try{var i=!1===o[a].call(r,e,t,n);if(i)return}catch(ki){ot(ki,r,"errorCaptured hook")}}}ot(e,t,n)}finally{_e()}}function rt(e,t,n,r,o){var a;try{a=n?e.apply(t,n):e.call(t),a&&!a._isVue&&p(a)&&!a._handled&&(a.catch((function(e){return nt(e,r,o+" (Promise/async)")})),a._handled=!0)}catch(ki){nt(ki,r,o)}return a}function ot(e,t,n){if($.errorHandler)try{return $.errorHandler.call(null,e,t,n)}catch(ki){ki!==e&&at(ki,null,"config.errorHandler")}at(e,t,n)}function at(e,t,n){if(!K&&!Z||"undefined"===typeof console)throw e;console.error(e)}var it,st=!1,ct=[],lt=!1;function ut(){lt=!1;var e=ct.slice(0);ct.length=0;for(var t=0;t<e.length;t++)e[t]()}if("undefined"!==typeof Promise&&ue(Promise)){var ft=Promise.resolve();it=function(){ft.then(ut),re&&setTimeout(B)},st=!0}else if(ee||"undefined"===typeof MutationObserver||!ue(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())it="undefined"!==typeof setImmediate&&ue(setImmediate)?function(){setImmediate(ut)}:function(){setTimeout(ut,0)};else{var dt=1,pt=new MutationObserver(ut),ht=document.createTextNode(String(dt));pt.observe(ht,{characterData:!0}),it=function(){dt=(dt+1)%2,ht.data=String(dt)},st=!0}function mt(e,t){var n;if(ct.push((function(){if(e)try{e.call(t)}catch(ki){nt(ki,t,"nextTick")}else n&&n(t)})),lt||(lt=!0,it()),!e&&"undefined"!==typeof Promise)return new Promise((function(e){n=e}))}var gt=new fe;function vt(e){_t(e,gt),gt.clear()}function _t(e,t){var n,r,o=Array.isArray(e);if(!(!o&&!c(e)||Object.isFrozen(e)||e instanceof be)){if(e.__ob__){var a=e.__ob__.dep.id;if(t.has(a))return;t.add(a)}if(o){n=e.length;while(n--)_t(e[n],t)}else{r=Object.keys(e),n=r.length;while(n--)_t(e[r[n]],t)}}}var bt=w((function(e){var t="&"===e.charAt(0);e=t?e.slice(1):e;var n="~"===e.charAt(0);e=n?e.slice(1):e;var r="!"===e.charAt(0);return e=r?e.slice(1):e,{name:e,once:n,capture:r,passive:t}}));function yt(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return rt(r,null,arguments,t,"v-on handler");for(var o=r.slice(),a=0;a<o.length;a++)rt(o[a],null,e,t,"v-on handler")}return n.fns=e,n}function wt(e,t,n,o,i,s){var c,l,u,f;for(c in e)l=e[c],u=t[c],f=bt(c),r(l)||(r(u)?(r(l.fns)&&(l=e[c]=yt(l,s)),a(f.once)&&(l=e[c]=i(f.name,l,f.capture)),n(f.name,l,f.capture,f.passive,f.params)):l!==u&&(u.fns=l,e[c]=u));for(c in t)r(e[c])&&(f=bt(c),o(f.name,t[c],f.capture))}function xt(e,t,n){var i;e instanceof be&&(e=e.data.hook||(e.data.hook={}));var s=e[t];function c(){n.apply(this,arguments),_(i.fns,c)}r(s)?i=yt([c]):o(s.fns)&&a(s.merged)?(i=s,i.fns.push(c)):i=yt([s,c]),i.merged=!0,e[t]=i}function St(e,t,n){var a=t.options.props;if(!r(a)){var i={},s=e.attrs,c=e.props;if(o(s)||o(c))for(var l in a){var u=A(l);kt(i,c,l,u,!0)||kt(i,s,l,u,!1)}return i}}function kt(e,t,n,r,a){if(o(t)){if(y(t,n))return e[n]=t[n],a||delete t[n],!0;if(y(t,r))return e[n]=t[r],a||delete t[r],!0}return!1}function Mt(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}function At(e){return s(e)?[xe(e)]:Array.isArray(e)?Tt(e):void 0}function Et(e){return o(e)&&o(e.text)&&i(e.isComment)}function Tt(e,t){var n,i,c,l,u=[];for(n=0;n<e.length;n++)i=e[n],r(i)||"boolean"===typeof i||(c=u.length-1,l=u[c],Array.isArray(i)?i.length>0&&(i=Tt(i,(t||"")+"_"+n),Et(i[0])&&Et(l)&&(u[c]=xe(l.text+i[0].text),i.shift()),u.push.apply(u,i)):s(i)?Et(l)?u[c]=xe(l.text+i):""!==i&&u.push(xe(i)):Et(i)&&Et(l)?u[c]=xe(l.text+i.text):(a(e._isVList)&&o(i.tag)&&r(i.key)&&o(t)&&(i.key="__vlist"+t+"_"+n+"__"),u.push(i)));return u}function Rt(e){var t=e.$options.provide;t&&(e._provided="function"===typeof t?t.call(e):t)}function Ot(e){var t=Ct(e.$options.inject,e);t&&(Re(!1),Object.keys(t).forEach((function(n){Ie(e,n,t[n])})),Re(!0))}function Ct(e,t){if(e){for(var n=Object.create(null),r=de?Reflect.ownKeys(e):Object.keys(e),o=0;o<r.length;o++){var a=r[o];if("__ob__"!==a){var i=e[a].from,s=t;while(s){if(s._provided&&y(s._provided,i)){n[a]=s._provided[i];break}s=s.$parent}if(!s)if("default"in e[a]){var c=e[a].default;n[a]="function"===typeof c?c.call(t):c}else 0}}return n}}function jt(e,t){if(!e||!e.length)return{};for(var n={},r=0,o=e.length;r<o;r++){var a=e[r],i=a.data;if(i&&i.attrs&&i.attrs.slot&&delete i.attrs.slot,a.context!==t&&a.fnContext!==t||!i||null==i.slot)(n.default||(n.default=[])).push(a);else{var s=i.slot,c=n[s]||(n[s]=[]);"template"===a.tag?c.push.apply(c,a.children||[]):c.push(a)}}for(var l in n)n[l].every(Bt)&&delete n[l];return n}function Bt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function It(e){return e.isComment&&e.asyncFactory}function Pt(e,t,r){var o,a=Object.keys(t).length>0,i=e?!!e.$stable:!a,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(i&&r&&r!==n&&s===r.$key&&!a&&!r.$hasNormal)return r;for(var c in o={},e)e[c]&&"$"!==c[0]&&(o[c]=Lt(t,c,e[c]))}else o={};for(var l in t)l in o||(o[l]=Nt(t,l));return e&&Object.isExtensible(e)&&(e._normalized=o),z(o,"$stable",i),z(o,"$key",s),z(o,"$hasNormal",a),o}function Lt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});e=e&&"object"===typeof e&&!Array.isArray(e)?[e]:At(e);var t=e&&e[0];return e&&(!t||1===e.length&&t.isComment&&!It(t))?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Nt(e,t){return function(){return e[t]}}function Dt(e,t){var n,r,a,i,s;if(Array.isArray(e)||"string"===typeof e)for(n=new Array(e.length),r=0,a=e.length;r<a;r++)n[r]=t(e[r],r);else if("number"===typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(c(e))if(de&&e[Symbol.iterator]){n=[];var l=e[Symbol.iterator](),u=l.next();while(!u.done)n.push(t(u.value,n.length)),u=l.next()}else for(i=Object.keys(e),n=new Array(i.length),r=0,a=i.length;r<a;r++)s=i[r],n[r]=t(e[s],s,r);return o(n)||(n=[]),n._isVList=!0,n}function Ft(e,t,n,r){var o,a=this.$scopedSlots[e];a?(n=n||{},r&&(n=C(C({},r),n)),o=a(n)||("function"===typeof t?t():t)):o=this.$slots[e]||("function"===typeof t?t():t);var i=n&&n.slot;return i?this.$createElement("template",{slot:i},o):o}function Ht(e){return We(this.$options,"filters",e,!0)||P}function Ut(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function $t(e,t,n,r,o){var a=$.keyCodes[t]||n;return o&&r&&!$.keyCodes[t]?Ut(o,r):a?Ut(a,e):r?A(r)!==t:void 0===e}function qt(e,t,n,r,o){if(n)if(c(n)){var a;Array.isArray(n)&&(n=j(n));var i=function(i){if("class"===i||"style"===i||v(i))a=e;else{var s=e.attrs&&e.attrs.type;a=r||$.mustUseProp(t,s,i)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=S(i),l=A(i);if(!(c in a)&&!(l in a)&&(a[i]=n[i],o)){var u=e.on||(e.on={});u["update:"+i]=function(e){n[i]=e}}};for(var s in n)i(s)}else;return e}function Vt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t||(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),Xt(r,"__static__"+e,!1)),r}function zt(e,t,n){return Xt(e,"__once__"+t+(n?"_"+n:""),!0),e}function Xt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!==typeof e[r]&&Yt(e[r],t+"_"+r,n);else Yt(e,t,n)}function Yt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function Gt(e,t){if(t)if(u(t)){var n=e.on=e.on?C({},e.on):{};for(var r in t){var o=n[r],a=t[r];n[r]=o?[].concat(o,a):a}}else;return e}function Wt(e,t,n,r){t=t||{$stable:!n};for(var o=0;o<e.length;o++){var a=e[o];Array.isArray(a)?Wt(a,t,n):a&&(a.proxy&&(a.fn.proxy=!0),t[a.key]=a.fn)}return r&&(t.$key=r),t}function Kt(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];"string"===typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Zt(e,t){return"string"===typeof e?t+e:e}function Qt(e){e._o=zt,e._n=m,e._s=h,e._l=Dt,e._t=Ft,e._q=L,e._i=N,e._m=Vt,e._f=Ht,e._k=$t,e._b=qt,e._v=xe,e._e=we,e._u=Wt,e._g=Gt,e._d=Kt,e._p=Zt}function Jt(e,t,r,o,i){var s,c=this,l=i.options;y(o,"_uid")?(s=Object.create(o),s._original=o):(s=o,o=o._original);var u=a(l._compiled),f=!u;this.data=e,this.props=t,this.children=r,this.parent=o,this.listeners=e.on||n,this.injections=Ct(l.inject,o),this.slots=function(){return c.$slots||Pt(e.scopedSlots,c.$slots=jt(r,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Pt(e.scopedSlots,this.slots())}}),u&&(this.$options=l,this.$slots=this.slots(),this.$scopedSlots=Pt(e.scopedSlots,this.$slots)),l._scopeId?this._c=function(e,t,n,r){var a=pn(s,e,t,n,r,f);return a&&!Array.isArray(a)&&(a.fnScopeId=l._scopeId,a.fnContext=o),a}:this._c=function(e,t,n,r){return pn(s,e,t,n,r,f)}}function en(e,t,r,a,i){var s=e.options,c={},l=s.props;if(o(l))for(var u in l)c[u]=Ke(u,l,t||n);else o(r.attrs)&&nn(c,r.attrs),o(r.props)&&nn(c,r.props);var f=new Jt(r,c,i,a,e),d=s.render.call(null,f._c,f);if(d instanceof be)return tn(d,r,f.parent,s,f);if(Array.isArray(d)){for(var p=At(d)||[],h=new Array(p.length),m=0;m<p.length;m++)h[m]=tn(p[m],r,f.parent,s,f);return h}}function tn(e,t,n,r,o){var a=Se(e);return a.fnContext=n,a.fnOptions=r,t.slot&&((a.data||(a.data={})).slot=t.slot),a}function nn(e,t){for(var n in t)e[S(n)]=t[n]}Qt(Jt.prototype);var rn={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var n=e;rn.prepatch(n,n)}else{var r=e.componentInstance=sn(e,Cn);r.$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var n=t.componentOptions,r=t.componentInstance=e.componentInstance;Ln(r,n.propsData,n.listeners,t,n.children)},insert:function(e){var t=e.context,n=e.componentInstance;n._isMounted||(n._isMounted=!0,Hn(n,"mounted")),e.data.keepAlive&&(t._isMounted?Jn(n):Dn(n,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?Fn(t,!0):t.$destroy())}},on=Object.keys(rn);function an(e,t,n,i,s){if(!r(e)){var l=n.$options._base;if(c(e)&&(e=l.extend(e)),"function"===typeof e){var u;if(r(e.cid)&&(u=e,e=Sn(u,l),void 0===e))return xn(u,t,n,i,s);t=t||{},xr(e),o(t.model)&&un(e.options,t);var f=St(t,e,s);if(a(e.options.functional))return en(e,f,t,n,i);var d=t.on;if(t.on=t.nativeOn,a(e.options.abstract)){var p=t.slot;t={},p&&(t.slot=p)}cn(t);var h=e.options.name||s,m=new be("vue-component-"+e.cid+(h?"-"+h:""),t,void 0,void 0,void 0,n,{Ctor:e,propsData:f,listeners:d,tag:s,children:i},u);return m}}}function sn(e,t){var n={_isComponent:!0,_parentVnode:e,parent:t},r=e.data.inlineTemplate;return o(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns),new e.componentOptions.Ctor(n)}function cn(e){for(var t=e.hook||(e.hook={}),n=0;n<on.length;n++){var r=on[n],o=t[r],a=rn[r];o===a||o&&o._merged||(t[r]=o?ln(a,o):a)}}function ln(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}function un(e,t){var n=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(t.attrs||(t.attrs={}))[n]=t.model.value;var a=t.on||(t.on={}),i=a[r],s=t.model.callback;o(i)?(Array.isArray(i)?-1===i.indexOf(s):i!==s)&&(a[r]=[s].concat(i)):a[r]=s}var fn=1,dn=2;function pn(e,t,n,r,o,i){return(Array.isArray(n)||s(n))&&(o=r,r=n,n=void 0),a(i)&&(o=dn),hn(e,t,n,r,o)}function hn(e,t,n,r,a){if(o(n)&&o(n.__ob__))return we();if(o(n)&&o(n.is)&&(t=n.is),!t)return we();var i,s,c;(Array.isArray(r)&&"function"===typeof r[0]&&(n=n||{},n.scopedSlots={default:r[0]},r.length=0),a===dn?r=At(r):a===fn&&(r=Mt(r)),"string"===typeof t)?(s=e.$vnode&&e.$vnode.ns||$.getTagNamespace(t),i=$.isReservedTag(t)?new be($.parsePlatformTagName(t),n,r,void 0,void 0,e):n&&n.pre||!o(c=We(e.$options,"components",t))?new be(t,n,r,void 0,void 0,e):an(c,n,e,r,t)):i=an(t,n,e,r);return Array.isArray(i)?i:o(i)?(o(s)&&mn(i,s),o(n)&&gn(n),i):we()}function mn(e,t,n){if(e.ns=t,"foreignObject"===e.tag&&(t=void 0,n=!0),o(e.children))for(var i=0,s=e.children.length;i<s;i++){var c=e.children[i];o(c.tag)&&(r(c.ns)||a(n)&&"svg"!==c.tag)&&mn(c,t,n)}}function gn(e){c(e.style)&&vt(e.style),c(e.class)&&vt(e.class)}function vn(e){e._vnode=null,e._staticTrees=null;var t=e.$options,r=e.$vnode=t._parentVnode,o=r&&r.context;e.$slots=jt(t._renderChildren,o),e.$scopedSlots=n,e._c=function(t,n,r,o){return pn(e,t,n,r,o,!1)},e.$createElement=function(t,n,r,o){return pn(e,t,n,r,o,!0)};var a=r&&r.data;Ie(e,"$attrs",a&&a.attrs||n,null,!0),Ie(e,"$listeners",t._parentListeners||n,null,!0)}var _n,bn=null;function yn(e){Qt(e.prototype),e.prototype.$nextTick=function(e){return mt(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,o=n._parentVnode;o&&(t.$scopedSlots=Pt(o.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=o;try{bn=t,e=r.call(t._renderProxy,t.$createElement)}catch(ki){nt(ki,t,"render"),e=t._vnode}finally{bn=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof be||(e=we()),e.parent=o,e}}function wn(e,t){return(e.__esModule||de&&"Module"===e[Symbol.toStringTag])&&(e=e.default),c(e)?t.extend(e):e}function xn(e,t,n,r,o){var a=we();return a.asyncFactory=e,a.asyncMeta={data:t,context:n,children:r,tag:o},a}function Sn(e,t){if(a(e.error)&&o(e.errorComp))return e.errorComp;if(o(e.resolved))return e.resolved;var n=bn;if(n&&o(e.owners)&&-1===e.owners.indexOf(n)&&e.owners.push(n),a(e.loading)&&o(e.loadingComp))return e.loadingComp;if(n&&!o(e.owners)){var i=e.owners=[n],s=!0,l=null,u=null;n.$on("hook:destroyed",(function(){return _(i,n)}));var f=function(e){for(var t=0,n=i.length;t<n;t++)i[t].$forceUpdate();e&&(i.length=0,null!==l&&(clearTimeout(l),l=null),null!==u&&(clearTimeout(u),u=null))},d=D((function(n){e.resolved=wn(n,t),s?i.length=0:f(!0)})),h=D((function(t){o(e.errorComp)&&(e.error=!0,f(!0))})),m=e(d,h);return c(m)&&(p(m)?r(e.resolved)&&m.then(d,h):p(m.component)&&(m.component.then(d,h),o(m.error)&&(e.errorComp=wn(m.error,t)),o(m.loading)&&(e.loadingComp=wn(m.loading,t),0===m.delay?e.loading=!0:l=setTimeout((function(){l=null,r(e.resolved)&&r(e.error)&&(e.loading=!0,f(!1))}),m.delay||200)),o(m.timeout)&&(u=setTimeout((function(){u=null,r(e.resolved)&&h(null)}),m.timeout)))),s=!1,e.loading?e.loadingComp:e.resolved}}function kn(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(o(n)&&(o(n.componentOptions)||It(n)))return n}}function Mn(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Rn(e,t)}function An(e,t){_n.$on(e,t)}function En(e,t){_n.$off(e,t)}function Tn(e,t){var n=_n;return function r(){var o=t.apply(null,arguments);null!==o&&n.$off(e,r)}}function Rn(e,t,n){_n=e,wt(t,n||{},An,En,Tn,e),_n=void 0}function On(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var o=0,a=e.length;o<a;o++)r.$on(e[o],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,o=e.length;r<o;r++)n.$off(e[r],t);return n}var a,i=n._events[e];if(!i)return n;if(!t)return n._events[e]=null,n;var s=i.length;while(s--)if(a=i[s],a===t||a.fn===t){i.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this,n=t._events[e];if(n){n=n.length>1?O(n):n;for(var r=O(arguments,1),o='event handler for "'+e+'"',a=0,i=n.length;a<i;a++)rt(n[a],t,r,t,o)}return t}}var Cn=null;function jn(e){var t=Cn;return Cn=e,function(){Cn=t}}function Bn(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){while(n.$options.abstract&&n.$parent)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}function In(e){e.prototype._update=function(e,t){var n=this,r=n.$el,o=n._vnode,a=jn(n);n._vnode=e,n.$el=o?n.__patch__(o,e):n.__patch__(n.$el,e,t,!1),a(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){var e=this;e._watcher&&e._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Hn(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||_(t.$children,e),e._watcher&&e._watcher.teardown();var n=e._watchers.length;while(n--)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Hn(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}function Pn(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=we),Hn(e,"beforeMount"),r=function(){e._update(e._render(),n)},new rr(e,r,B,{before:function(){e._isMounted&&!e._isDestroyed&&Hn(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Hn(e,"mounted")),e}function Ln(e,t,r,o,a){var i=o.data.scopedSlots,s=e.$scopedSlots,c=!!(i&&!i.$stable||s!==n&&!s.$stable||i&&e.$scopedSlots.$key!==i.$key||!i&&e.$scopedSlots.$key),l=!!(a||e.$options._renderChildren||c);if(e.$options._parentVnode=o,e.$vnode=o,e._vnode&&(e._vnode.parent=o),e.$options._renderChildren=a,e.$attrs=o.data.attrs||n,e.$listeners=r||n,t&&e.$options.props){Re(!1);for(var u=e._props,f=e.$options._propKeys||[],d=0;d<f.length;d++){var p=f[d],h=e.$options.props;u[p]=Ke(p,h,t,e)}Re(!0),e.$options.propsData=t}r=r||n;var m=e.$options._parentListeners;e.$options._parentListeners=r,Rn(e,r,m),l&&(e.$slots=jt(a,o.context),e.$forceUpdate())}function Nn(e){while(e&&(e=e.$parent))if(e._inactive)return!0;return!1}function Dn(e,t){if(t){if(e._directInactive=!1,Nn(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Dn(e.$children[n]);Hn(e,"activated")}}function Fn(e,t){if((!t||(e._directInactive=!0,!Nn(e)))&&!e._inactive){e._inactive=!0;for(var n=0;n<e.$children.length;n++)Fn(e.$children[n]);Hn(e,"deactivated")}}function Hn(e,t){ve();var n=e.$options[t],r=t+" hook";if(n)for(var o=0,a=n.length;o<a;o++)rt(n[o],e,null,e,r);e._hasHookEvent&&e.$emit("hook:"+t),_e()}var Un=[],$n=[],qn={},Vn=!1,zn=!1,Xn=0;function Yn(){Xn=Un.length=$n.length=0,qn={},Vn=zn=!1}var Gn=0,Wn=Date.now;if(K&&!ee){var Kn=window.performance;Kn&&"function"===typeof Kn.now&&Wn()>document.createEvent("Event").timeStamp&&(Wn=function(){return Kn.now()})}function Zn(){var e,t;for(Gn=Wn(),zn=!0,Un.sort((function(e,t){return e.id-t.id})),Xn=0;Xn<Un.length;Xn++)e=Un[Xn],e.before&&e.before(),t=e.id,qn[t]=null,e.run();var n=$n.slice(),r=Un.slice();Yn(),er(n),Qn(r),le&&$.devtools&&le.emit("flush")}function Qn(e){var t=e.length;while(t--){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Hn(r,"updated")}}function Jn(e){e._inactive=!1,$n.push(e)}function er(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Dn(e[t],!0)}function tr(e){var t=e.id;if(null==qn[t]){if(qn[t]=!0,zn){var n=Un.length-1;while(n>Xn&&Un[n].id>e.id)n--;Un.splice(n+1,0,e)}else Un.push(e);Vn||(Vn=!0,mt(Zn))}}var nr=0,rr=function(e,t,n,r,o){this.vm=e,o&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++nr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new fe,this.newDepIds=new fe,this.expression="","function"===typeof t?this.getter=t:(this.getter=Y(t),this.getter||(this.getter=B)),this.value=this.lazy?void 0:this.get()};rr.prototype.get=function(){var e;ve(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(ki){if(!this.user)throw ki;nt(ki,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&vt(e),_e(),this.cleanupDeps()}return e},rr.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},rr.prototype.cleanupDeps=function(){var e=this.deps.length;while(e--){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},rr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():tr(this)},rr.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||c(e)||this.deep){var t=this.value;if(this.value=e,this.user){var n='callback for watcher "'+this.expression+'"';rt(this.cb,this.vm,[e,t],this.vm,n)}else this.cb.call(this.vm,e,t)}}},rr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},rr.prototype.depend=function(){var e=this.deps.length;while(e--)this.deps[e].depend()},rr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||_(this.vm._watchers,this);var e=this.deps.length;while(e--)this.deps[e].removeSub(this);this.active=!1}};var or={enumerable:!0,configurable:!0,get:B,set:B};function ar(e,t,n){or.get=function(){return this[t][n]},or.set=function(e){this[t][n]=e},Object.defineProperty(e,n,or)}function ir(e){e._watchers=[];var t=e.$options;t.props&&sr(e,t.props),t.methods&&mr(e,t.methods),t.data?cr(e):Be(e._data={},!0),t.computed&&fr(e,t.computed),t.watch&&t.watch!==ae&&gr(e,t.watch)}function sr(e,t){var n=e.$options.propsData||{},r=e._props={},o=e.$options._propKeys=[],a=!e.$parent;a||Re(!1);var i=function(a){o.push(a);var i=Ke(a,t,n,e);Ie(r,a,i),a in e||ar(e,"_props",a)};for(var s in t)i(s);Re(!0)}function cr(e){var t=e.$options.data;t=e._data="function"===typeof t?lr(t,e):t||{},u(t)||(t={});var n=Object.keys(t),r=e.$options.props,o=(e.$options.methods,n.length);while(o--){var a=n[o];0,r&&y(r,a)||V(a)||ar(e,"_data",a)}Be(t,!0)}function lr(e,t){ve();try{return e.call(t,t)}catch(ki){return nt(ki,t,"data()"),{}}finally{_e()}}var ur={lazy:!0};function fr(e,t){var n=e._computedWatchers=Object.create(null),r=ce();for(var o in t){var a=t[o],i="function"===typeof a?a:a.get;0,r||(n[o]=new rr(e,i||B,B,ur)),o in e||dr(e,o,a)}}function dr(e,t,n){var r=!ce();"function"===typeof n?(or.get=r?pr(t):hr(n),or.set=B):(or.get=n.get?r&&!1!==n.cache?pr(t):hr(n.get):B,or.set=n.set||B),Object.defineProperty(e,t,or)}function pr(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),me.target&&t.depend(),t.value}}function hr(e){return function(){return e.call(this,this)}}function mr(e,t){e.$options.props;for(var n in t)e[n]="function"!==typeof t[n]?B:R(t[n],e)}function gr(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)vr(e,n,r[o]);else vr(e,n,r)}}function vr(e,t,n,r){return u(n)&&(r=n,n=n.handler),"string"===typeof n&&(n=e[n]),e.$watch(t,n,r)}function _r(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Pe,e.prototype.$delete=Le,e.prototype.$watch=function(e,t,n){var r=this;if(u(t))return vr(r,e,t,n);n=n||{},n.user=!0;var o=new rr(r,e,t,n);if(n.immediate){var a='callback for immediate watcher "'+o.expression+'"';ve(),rt(t,r,[o.value],r,a),_e()}return function(){o.teardown()}}}var br=0;function yr(e){e.prototype._init=function(e){var t=this;t._uid=br++,t._isVue=!0,e&&e._isComponent?wr(t,e):t.$options=Ge(xr(t.constructor),e||{},t),t._renderProxy=t,t._self=t,Bn(t),Mn(t),vn(t),Hn(t,"beforeCreate"),Ot(t),ir(t),Rt(t),Hn(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}function wr(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}function xr(e){var t=e.options;if(e.super){var n=xr(e.super),r=e.superOptions;if(n!==r){e.superOptions=n;var o=Sr(e);o&&C(e.extendOptions,o),t=e.options=Ge(n,e.extendOptions),t.name&&(t.components[t.name]=e)}}return t}function Sr(e){var t,n=e.options,r=e.sealedOptions;for(var o in n)n[o]!==r[o]&&(t||(t={}),t[o]=n[o]);return t}function kr(e){this._init(e)}function Mr(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=O(arguments,1);return n.unshift(this),"function"===typeof e.install?e.install.apply(e,n):"function"===typeof e&&e.apply(null,n),t.push(e),this}}function Ar(e){e.mixin=function(e){return this.options=Ge(this.options,e),this}}function Er(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,o=e._Ctor||(e._Ctor={});if(o[r])return o[r];var a=e.name||n.options.name;var i=function(e){this._init(e)};return i.prototype=Object.create(n.prototype),i.prototype.constructor=i,i.cid=t++,i.options=Ge(n.options,e),i["super"]=n,i.options.props&&Tr(i),i.options.computed&&Rr(i),i.extend=n.extend,i.mixin=n.mixin,i.use=n.use,H.forEach((function(e){i[e]=n[e]})),a&&(i.options.components[a]=i),i.superOptions=n.options,i.extendOptions=e,i.sealedOptions=C({},i.options),o[r]=i,i}}function Tr(e){var t=e.options.props;for(var n in t)ar(e.prototype,"_props",n)}function Rr(e){var t=e.options.computed;for(var n in t)dr(e.prototype,n,t[n])}function Or(e){H.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&u(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"===typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}function Cr(e){return e&&(e.Ctor.options.name||e.tag)}function jr(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"===typeof e?e.split(",").indexOf(t)>-1:!!f(e)&&e.test(t)}function Br(e,t){var n=e.cache,r=e.keys,o=e._vnode;for(var a in n){var i=n[a];if(i){var s=i.name;s&&!t(s)&&Ir(n,a,r,o)}}}function Ir(e,t,n,r){var o=e[t];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[t]=null,_(n,t)}yr(kr),_r(kr),On(kr),In(kr),yn(kr);var Pr=[String,RegExp,Array],Lr={name:"keep-alive",abstract:!0,props:{include:Pr,exclude:Pr,max:[String,Number]},methods:{cacheVNode:function(){var e=this,t=e.cache,n=e.keys,r=e.vnodeToCache,o=e.keyToCache;if(r){var a=r.tag,i=r.componentInstance,s=r.componentOptions;t[o]={name:Cr(s),tag:a,componentInstance:i},n.push(o),this.max&&n.length>parseInt(this.max)&&Ir(t,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Ir(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){Br(e,(function(e){return jr(t,e)}))})),this.$watch("exclude",(function(t){Br(e,(function(e){return!jr(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=kn(e),n=t&&t.componentOptions;if(n){var r=Cr(n),o=this,a=o.include,i=o.exclude;if(a&&(!r||!jr(a,r))||i&&r&&jr(i,r))return t;var s=this,c=s.cache,l=s.keys,u=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;c[u]?(t.componentInstance=c[u].componentInstance,_(l,u),l.push(u)):(this.vnodeToCache=t,this.keyToCache=u),t.data.keepAlive=!0}return t||e&&e[0]}},Nr={KeepAlive:Lr};function Dr(e){var t={get:function(){return $}};Object.defineProperty(e,"config",t),e.util={warn:pe,extend:C,mergeOptions:Ge,defineReactive:Ie},e.set=Pe,e.delete=Le,e.nextTick=mt,e.observable=function(e){return Be(e),e},e.options=Object.create(null),H.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,C(e.options.components,Nr),Mr(e),Ar(e),Er(e),Or(e)}Dr(kr),Object.defineProperty(kr.prototype,"$isServer",{get:ce}),Object.defineProperty(kr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kr,"FunctionalRenderContext",{value:Jt}),kr.version="2.6.14";var Fr=g("style,class"),Hr=g("input,textarea,option,select,progress"),Ur=function(e,t,n){return"value"===n&&Hr(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},$r=g("contenteditable,draggable,spellcheck"),qr=g("events,caret,typing,plaintext-only"),Vr=function(e,t){return Wr(t)||"false"===t?"false":"contenteditable"===e&&qr(t)?t:"true"},zr=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Xr="http://www.w3.org/1999/xlink",Yr=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Gr=function(e){return Yr(e)?e.slice(6,e.length):""},Wr=function(e){return null==e||!1===e};function Kr(e){var t=e.data,n=e,r=e;while(o(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(t=Zr(r.data,t));while(o(n=n.parent))n&&n.data&&(t=Zr(t,n.data));return Qr(t.staticClass,t.class)}function Zr(e,t){return{staticClass:Jr(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function Qr(e,t){return o(e)||o(t)?Jr(e,eo(t)):""}function Jr(e,t){return e?t?e+" "+t:e:t||""}function eo(e){return Array.isArray(e)?to(e):c(e)?no(e):"string"===typeof e?e:""}function to(e){for(var t,n="",r=0,a=e.length;r<a;r++)o(t=eo(e[r]))&&""!==t&&(n&&(n+=" "),n+=t);return n}function no(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}var ro={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},oo=g("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),ao=g("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),io=function(e){return oo(e)||ao(e)};function so(e){return ao(e)?"svg":"math"===e?"math":void 0}var co=Object.create(null);function lo(e){if(!K)return!0;if(io(e))return!1;if(e=e.toLowerCase(),null!=co[e])return co[e];var t=document.createElement(e);return e.indexOf("-")>-1?co[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:co[e]=/HTMLUnknownElement/.test(t.toString())}var uo=g("text,number,password,search,email,tel,url");function fo(e){if("string"===typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}function po(e,t){var n=document.createElement(e);return"select"!==e||t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function ho(e,t){return document.createElementNS(ro[e],t)}function mo(e){return document.createTextNode(e)}function go(e){return document.createComment(e)}function vo(e,t,n){e.insertBefore(t,n)}function _o(e,t){e.removeChild(t)}function bo(e,t){e.appendChild(t)}function yo(e){return e.parentNode}function wo(e){return e.nextSibling}function xo(e){return e.tagName}function So(e,t){e.textContent=t}function ko(e,t){e.setAttribute(t,"")}var Mo=Object.freeze({createElement:po,createElementNS:ho,createTextNode:mo,createComment:go,insertBefore:vo,removeChild:_o,appendChild:bo,parentNode:yo,nextSibling:wo,tagName:xo,setTextContent:So,setStyleScope:ko}),Ao={create:function(e,t){Eo(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Eo(e,!0),Eo(t))},destroy:function(e){Eo(e,!0)}};function Eo(e,t){var n=e.data.ref;if(o(n)){var r=e.context,a=e.componentInstance||e.elm,i=r.$refs;t?Array.isArray(i[n])?_(i[n],a):i[n]===a&&(i[n]=void 0):e.data.refInFor?Array.isArray(i[n])?i[n].indexOf(a)<0&&i[n].push(a):i[n]=[a]:i[n]=a}}var To=new be("",{},[]),Ro=["create","activate","update","remove","destroy"];function Oo(e,t){return e.key===t.key&&e.asyncFactory===t.asyncFactory&&(e.tag===t.tag&&e.isComment===t.isComment&&o(e.data)===o(t.data)&&Co(e,t)||a(e.isAsyncPlaceholder)&&r(t.asyncFactory.error))}function Co(e,t){if("input"!==e.tag)return!0;var n,r=o(n=e.data)&&o(n=n.attrs)&&n.type,a=o(n=t.data)&&o(n=n.attrs)&&n.type;return r===a||uo(r)&&uo(a)}function jo(e,t,n){var r,a,i={};for(r=t;r<=n;++r)a=e[r].key,o(a)&&(i[a]=r);return i}function Bo(e){var t,n,i={},c=e.modules,l=e.nodeOps;for(t=0;t<Ro.length;++t)for(i[Ro[t]]=[],n=0;n<c.length;++n)o(c[n][Ro[t]])&&i[Ro[t]].push(c[n][Ro[t]]);function u(e){return new be(l.tagName(e).toLowerCase(),{},[],void 0,e)}function f(e,t){function n(){0===--n.listeners&&d(e)}return n.listeners=t,n}function d(e){var t=l.parentNode(e);o(t)&&l.removeChild(t,e)}function p(e,t,n,r,i,s,c){if(o(e.elm)&&o(s)&&(e=s[c]=Se(e)),e.isRootInsert=!i,!h(e,t,n,r)){var u=e.data,f=e.children,d=e.tag;o(d)?(e.elm=e.ns?l.createElementNS(e.ns,d):l.createElement(d,e),x(e),b(e,f,t),o(u)&&w(e,t),_(n,e.elm,r)):a(e.isComment)?(e.elm=l.createComment(e.text),_(n,e.elm,r)):(e.elm=l.createTextNode(e.text),_(n,e.elm,r))}}function h(e,t,n,r){var i=e.data;if(o(i)){var s=o(e.componentInstance)&&i.keepAlive;if(o(i=i.hook)&&o(i=i.init)&&i(e,!1),o(e.componentInstance))return m(e,t),_(n,e.elm,r),a(s)&&v(e,t,n,r),!0}}function m(e,t){o(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,y(e)?(w(e,t),x(e)):(Eo(e),t.push(e))}function v(e,t,n,r){var a,s=e;while(s.componentInstance)if(s=s.componentInstance._vnode,o(a=s.data)&&o(a=a.transition)){for(a=0;a<i.activate.length;++a)i.activate[a](To,s);t.push(s);break}_(n,e.elm,r)}function _(e,t,n){o(e)&&(o(n)?l.parentNode(n)===e&&l.insertBefore(e,t,n):l.appendChild(e,t))}function b(e,t,n){if(Array.isArray(t)){0;for(var r=0;r<t.length;++r)p(t[r],n,e.elm,null,!0,t,r)}else s(e.text)&&l.appendChild(e.elm,l.createTextNode(String(e.text)))}function y(e){while(e.componentInstance)e=e.componentInstance._vnode;return o(e.tag)}function w(e,n){for(var r=0;r<i.create.length;++r)i.create[r](To,e);t=e.data.hook,o(t)&&(o(t.create)&&t.create(To,e),o(t.insert)&&n.push(e))}function x(e){var t;if(o(t=e.fnScopeId))l.setStyleScope(e.elm,t);else{var n=e;while(n)o(t=n.context)&&o(t=t.$options._scopeId)&&l.setStyleScope(e.elm,t),n=n.parent}o(t=Cn)&&t!==e.context&&t!==e.fnContext&&o(t=t.$options._scopeId)&&l.setStyleScope(e.elm,t)}function S(e,t,n,r,o,a){for(;r<=o;++r)p(n[r],a,e,t,!1,n,r)}function k(e){var t,n,r=e.data;if(o(r))for(o(t=r.hook)&&o(t=t.destroy)&&t(e),t=0;t<i.destroy.length;++t)i.destroy[t](e);if(o(t=e.children))for(n=0;n<e.children.length;++n)k(e.children[n])}function M(e,t,n){for(;t<=n;++t){var r=e[t];o(r)&&(o(r.tag)?(A(r),k(r)):d(r.elm))}}function A(e,t){if(o(t)||o(e.data)){var n,r=i.remove.length+1;for(o(t)?t.listeners+=r:t=f(e.elm,r),o(n=e.componentInstance)&&o(n=n._vnode)&&o(n.data)&&A(n,t),n=0;n<i.remove.length;++n)i.remove[n](e,t);o(n=e.data.hook)&&o(n=n.remove)?n(e,t):t()}else d(e.elm)}function E(e,t,n,a,i){var s,c,u,f,d=0,h=0,m=t.length-1,g=t[0],v=t[m],_=n.length-1,b=n[0],y=n[_],w=!i;while(d<=m&&h<=_)r(g)?g=t[++d]:r(v)?v=t[--m]:Oo(g,b)?(R(g,b,a,n,h),g=t[++d],b=n[++h]):Oo(v,y)?(R(v,y,a,n,_),v=t[--m],y=n[--_]):Oo(g,y)?(R(g,y,a,n,_),w&&l.insertBefore(e,g.elm,l.nextSibling(v.elm)),g=t[++d],y=n[--_]):Oo(v,b)?(R(v,b,a,n,h),w&&l.insertBefore(e,v.elm,g.elm),v=t[--m],b=n[++h]):(r(s)&&(s=jo(t,d,m)),c=o(b.key)?s[b.key]:T(b,t,d,m),r(c)?p(b,a,e,g.elm,!1,n,h):(u=t[c],Oo(u,b)?(R(u,b,a,n,h),t[c]=void 0,w&&l.insertBefore(e,u.elm,g.elm)):p(b,a,e,g.elm,!1,n,h)),b=n[++h]);d>m?(f=r(n[_+1])?null:n[_+1].elm,S(e,f,n,h,_,a)):h>_&&M(t,d,m)}function T(e,t,n,r){for(var a=n;a<r;a++){var i=t[a];if(o(i)&&Oo(e,i))return a}}function R(e,t,n,s,c,u){if(e!==t){o(t.elm)&&o(s)&&(t=s[c]=Se(t));var f=t.elm=e.elm;if(a(e.isAsyncPlaceholder))o(t.asyncFactory.resolved)?j(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(a(t.isStatic)&&a(e.isStatic)&&t.key===e.key&&(a(t.isCloned)||a(t.isOnce)))t.componentInstance=e.componentInstance;else{var d,p=t.data;o(p)&&o(d=p.hook)&&o(d=d.prepatch)&&d(e,t);var h=e.children,m=t.children;if(o(p)&&y(t)){for(d=0;d<i.update.length;++d)i.update[d](e,t);o(d=p.hook)&&o(d=d.update)&&d(e,t)}r(t.text)?o(h)&&o(m)?h!==m&&E(f,h,m,n,u):o(m)?(o(e.text)&&l.setTextContent(f,""),S(f,null,m,0,m.length-1,n)):o(h)?M(h,0,h.length-1):o(e.text)&&l.setTextContent(f,""):e.text!==t.text&&l.setTextContent(f,t.text),o(p)&&o(d=p.hook)&&o(d=d.postpatch)&&d(e,t)}}}function O(e,t,n){if(a(n)&&o(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var C=g("attrs,class,staticClass,staticStyle,key");function j(e,t,n,r){var i,s=t.tag,c=t.data,l=t.children;if(r=r||c&&c.pre,t.elm=e,a(t.isComment)&&o(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(o(c)&&(o(i=c.hook)&&o(i=i.init)&&i(t,!0),o(i=t.componentInstance)))return m(t,n),!0;if(o(s)){if(o(l))if(e.hasChildNodes())if(o(i=c)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==e.innerHTML)return!1}else{for(var u=!0,f=e.firstChild,d=0;d<l.length;d++){if(!f||!j(f,l[d],n,r)){u=!1;break}f=f.nextSibling}if(!u||f)return!1}else b(t,l,n);if(o(c)){var p=!1;for(var h in c)if(!C(h)){p=!0,w(t,n);break}!p&&c["class"]&&vt(c["class"])}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,s){if(!r(t)){var c=!1,f=[];if(r(e))c=!0,p(t,f);else{var d=o(e.nodeType);if(!d&&Oo(e,t))R(e,t,f,null,null,s);else{if(d){if(1===e.nodeType&&e.hasAttribute(F)&&(e.removeAttribute(F),n=!0),a(n)&&j(e,t,f))return O(t,f,!0),e;e=u(e)}var h=e.elm,m=l.parentNode(h);if(p(t,f,h._leaveCb?null:m,l.nextSibling(h)),o(t.parent)){var g=t.parent,v=y(t);while(g){for(var _=0;_<i.destroy.length;++_)i.destroy[_](g);if(g.elm=t.elm,v){for(var b=0;b<i.create.length;++b)i.create[b](To,g);var w=g.data.hook.insert;if(w.merged)for(var x=1;x<w.fns.length;x++)w.fns[x]()}else Eo(g);g=g.parent}}o(m)?M([e],0,0):o(e.tag)&&k(e)}}return O(t,f,c),t.elm}o(e)&&k(e)}}var Io={create:Po,update:Po,destroy:function(e){Po(e,To)}};function Po(e,t){(e.data.directives||t.data.directives)&&Lo(e,t)}function Lo(e,t){var n,r,o,a=e===To,i=t===To,s=Do(e.data.directives,e.context),c=Do(t.data.directives,t.context),l=[],u=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,o.oldArg=r.arg,Ho(o,"update",t,e),o.def&&o.def.componentUpdated&&u.push(o)):(Ho(o,"bind",t,e),o.def&&o.def.inserted&&l.push(o));if(l.length){var f=function(){for(var n=0;n<l.length;n++)Ho(l[n],"inserted",t,e)};a?xt(t,"insert",f):f()}if(u.length&&xt(t,"postpatch",(function(){for(var n=0;n<u.length;n++)Ho(u[n],"componentUpdated",t,e)})),!a)for(n in s)c[n]||Ho(s[n],"unbind",e,e,i)}var No=Object.create(null);function Do(e,t){var n,r,o=Object.create(null);if(!e)return o;for(n=0;n<e.length;n++)r=e[n],r.modifiers||(r.modifiers=No),o[Fo(r)]=r,r.def=We(t.$options,"directives",r.name,!0);return o}function Fo(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function Ho(e,t,n,r,o){var a=e.def&&e.def[t];if(a)try{a(n.elm,e,n,r,o)}catch(ki){nt(ki,n.context,"directive "+e.name+" "+t+" hook")}}var Uo=[Ao,Io];function $o(e,t){var n=t.componentOptions;if((!o(n)||!1!==n.Ctor.options.inheritAttrs)&&(!r(e.data.attrs)||!r(t.data.attrs))){var a,i,s,c=t.elm,l=e.data.attrs||{},u=t.data.attrs||{};for(a in o(u.__ob__)&&(u=t.data.attrs=C({},u)),u)i=u[a],s=l[a],s!==i&&qo(c,a,i,t.data.pre);for(a in(ee||ne)&&u.value!==l.value&&qo(c,"value",u.value),l)r(u[a])&&(Yr(a)?c.removeAttributeNS(Xr,Gr(a)):$r(a)||c.removeAttribute(a))}}function qo(e,t,n,r){r||e.tagName.indexOf("-")>-1?Vo(e,t,n):zr(t)?Wr(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):$r(t)?e.setAttribute(t,Vr(t,n)):Yr(t)?Wr(n)?e.removeAttributeNS(Xr,Gr(t)):e.setAttributeNS(Xr,t,n):Vo(e,t,n)}function Vo(e,t,n){if(Wr(n))e.removeAttribute(t);else{if(ee&&!te&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var zo={create:$o,update:$o};function Xo(e,t){var n=t.elm,a=t.data,i=e.data;if(!(r(a.staticClass)&&r(a.class)&&(r(i)||r(i.staticClass)&&r(i.class)))){var s=Kr(t),c=n._transitionClasses;o(c)&&(s=Jr(s,eo(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Yo,Go={create:Xo,update:Xo},Wo="__r",Ko="__c";function Zo(e){if(o(e[Wo])){var t=ee?"change":"input";e[t]=[].concat(e[Wo],e[t]||[]),delete e[Wo]}o(e[Ko])&&(e.change=[].concat(e[Ko],e.change||[]),delete e[Ko])}function Qo(e,t,n){var r=Yo;return function o(){var a=t.apply(null,arguments);null!==a&&ta(e,o,n,r)}}var Jo=st&&!(oe&&Number(oe[1])<=53);function ea(e,t,n,r){if(Jo){var o=Gn,a=t;t=a._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=o||e.timeStamp<=0||e.target.ownerDocument!==document)return a.apply(this,arguments)}}Yo.addEventListener(e,t,ie?{capture:n,passive:r}:n)}function ta(e,t,n,r){(r||Yo).removeEventListener(e,t._wrapper||t,n)}function na(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},o=e.data.on||{};Yo=t.elm,Zo(n),wt(n,o,ea,ta,Qo,t.context),Yo=void 0}}var ra,oa={create:na,update:na};function aa(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,a,i=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in o(c.__ob__)&&(c=t.data.domProps=C({},c)),s)n in c||(i[n]="");for(n in c){if(a=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),a===s[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=a;var l=r(a)?"":String(a);ia(i,l)&&(i.value=l)}else if("innerHTML"===n&&ao(i.tagName)&&r(i.innerHTML)){ra=ra||document.createElement("div"),ra.innerHTML="<svg>"+a+"</svg>";var u=ra.firstChild;while(i.firstChild)i.removeChild(i.firstChild);while(u.firstChild)i.appendChild(u.firstChild)}else if(a!==s[n])try{i[n]=a}catch(ki){}}}}function ia(e,t){return!e.composing&&("OPTION"===e.tagName||sa(e,t)||ca(e,t))}function sa(e,t){var n=!0;try{n=document.activeElement!==e}catch(ki){}return n&&e.value!==t}function ca(e,t){var n=e.value,r=e._vModifiers;if(o(r)){if(r.number)return m(n)!==m(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}var la={create:aa,update:aa},ua=w((function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach((function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}));function fa(e){var t=da(e.style);return e.staticStyle?C(e.staticStyle,t):t}function da(e){return Array.isArray(e)?j(e):"string"===typeof e?ua(e):e}function pa(e,t){var n,r={};if(t){var o=e;while(o.componentInstance)o=o.componentInstance._vnode,o&&o.data&&(n=fa(o.data))&&C(r,n)}(n=fa(e.data))&&C(r,n);var a=e;while(a=a.parent)a.data&&(n=fa(a.data))&&C(r,n);return r}var ha,ma=/^--/,ga=/\s*!important$/,va=function(e,t,n){if(ma.test(t))e.style.setProperty(t,n);else if(ga.test(n))e.style.setProperty(A(t),n.replace(ga,""),"important");else{var r=ba(t);if(Array.isArray(n))for(var o=0,a=n.length;o<a;o++)e.style[r]=n[o];else e.style[r]=n}},_a=["Webkit","Moz","ms"],ba=w((function(e){if(ha=ha||document.createElement("div").style,e=S(e),"filter"!==e&&e in ha)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<_a.length;n++){var r=_a[n]+t;if(r in ha)return r}}));function ya(e,t){var n=t.data,a=e.data;if(!(r(n.staticStyle)&&r(n.style)&&r(a.staticStyle)&&r(a.style))){var i,s,c=t.elm,l=a.staticStyle,u=a.normalizedStyle||a.style||{},f=l||u,d=da(t.data.style)||{};t.data.normalizedStyle=o(d.__ob__)?C({},d):d;var p=pa(t,!0);for(s in f)r(p[s])&&va(c,s,"");for(s in p)i=p[s],i!==f[s]&&va(c,s,null==i?"":i)}}var wa={create:ya,update:ya},xa=/\s+/;function Sa(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(xa).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function ka(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(xa).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function Ma(e){if(e){if("object"===typeof e){var t={};return!1!==e.css&&C(t,Aa(e.name||"v")),C(t,e),t}return"string"===typeof e?Aa(e):void 0}}var Aa=w((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Ea=K&&!te,Ta="transition",Ra="animation",Oa="transition",Ca="transitionend",ja="animation",Ba="animationend";Ea&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Oa="WebkitTransition",Ca="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ja="WebkitAnimation",Ba="webkitAnimationEnd"));var Ia=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Pa(e){Ia((function(){Ia(e)}))}function La(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Sa(e,t))}function Na(e,t){e._transitionClasses&&_(e._transitionClasses,t),ka(e,t)}function Da(e,t,n){var r=Ha(e,t),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var s=o===Ta?Ca:Ba,c=0,l=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++c>=i&&l()};setTimeout((function(){c<i&&l()}),a+1),e.addEventListener(s,u)}var Fa=/\b(transform|all)(,|$)/;function Ha(e,t){var n,r=window.getComputedStyle(e),o=(r[Oa+"Delay"]||"").split(", "),a=(r[Oa+"Duration"]||"").split(", "),i=Ua(o,a),s=(r[ja+"Delay"]||"").split(", "),c=(r[ja+"Duration"]||"").split(", "),l=Ua(s,c),u=0,f=0;t===Ta?i>0&&(n=Ta,u=i,f=a.length):t===Ra?l>0&&(n=Ra,u=l,f=c.length):(u=Math.max(i,l),n=u>0?i>l?Ta:Ra:null,f=n?n===Ta?a.length:c.length:0);var d=n===Ta&&Fa.test(r[Oa+"Property"]);return{type:n,timeout:u,propCount:f,hasTransform:d}}function Ua(e,t){while(e.length<t.length)e=e.concat(e);return Math.max.apply(null,t.map((function(t,n){return $a(t)+$a(e[n])})))}function $a(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function qa(e,t){var n=e.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var a=Ma(e.data.transition);if(!r(a)&&!o(n._enterCb)&&1===n.nodeType){var i=a.css,s=a.type,l=a.enterClass,u=a.enterToClass,f=a.enterActiveClass,d=a.appearClass,p=a.appearToClass,h=a.appearActiveClass,g=a.beforeEnter,v=a.enter,_=a.afterEnter,b=a.enterCancelled,y=a.beforeAppear,w=a.appear,x=a.afterAppear,S=a.appearCancelled,k=a.duration,M=Cn,A=Cn.$vnode;while(A&&A.parent)M=A.context,A=A.parent;var E=!M._isMounted||!e.isRootInsert;if(!E||w||""===w){var T=E&&d?d:l,R=E&&h?h:f,O=E&&p?p:u,C=E&&y||g,j=E&&"function"===typeof w?w:v,B=E&&x||_,I=E&&S||b,P=m(c(k)?k.enter:k);0;var L=!1!==i&&!te,N=Xa(j),F=n._enterCb=D((function(){L&&(Na(n,O),Na(n,R)),F.cancelled?(L&&Na(n,T),I&&I(n)):B&&B(n),n._enterCb=null}));e.data.show||xt(e,"insert",(function(){var t=n.parentNode,r=t&&t._pending&&t._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),j&&j(n,F)})),C&&C(n),L&&(La(n,T),La(n,R),Pa((function(){Na(n,T),F.cancelled||(La(n,O),N||(za(P)?setTimeout(F,P):Da(n,s,F)))}))),e.data.show&&(t&&t(),j&&j(n,F)),L||N||F()}}}function Va(e,t){var n=e.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var a=Ma(e.data.transition);if(r(a)||1!==n.nodeType)return t();if(!o(n._leaveCb)){var i=a.css,s=a.type,l=a.leaveClass,u=a.leaveToClass,f=a.leaveActiveClass,d=a.beforeLeave,p=a.leave,h=a.afterLeave,g=a.leaveCancelled,v=a.delayLeave,_=a.duration,b=!1!==i&&!te,y=Xa(p),w=m(c(_)?_.leave:_);0;var x=n._leaveCb=D((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),b&&(Na(n,u),Na(n,f)),x.cancelled?(b&&Na(n,l),g&&g(n)):(t(),h&&h(n)),n._leaveCb=null}));v?v(S):S()}function S(){x.cancelled||(!e.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),d&&d(n),b&&(La(n,l),La(n,f),Pa((function(){Na(n,l),x.cancelled||(La(n,u),y||(za(w)?setTimeout(x,w):Da(n,s,x)))}))),p&&p(n,x),b||y||x())}}function za(e){return"number"===typeof e&&!isNaN(e)}function Xa(e){if(r(e))return!1;var t=e.fns;return o(t)?Xa(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function Ya(e,t){!0!==t.data.show&&qa(t)}var Ga=K?{create:Ya,activate:Ya,remove:function(e,t){!0!==e.data.show?Va(e,t):t()}}:{},Wa=[zo,Go,oa,la,wa,Ga],Ka=Wa.concat(Uo),Za=Bo({nodeOps:Mo,modules:Ka});te&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&ai(e,"input")}));var Qa={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?xt(n,"postpatch",(function(){Qa.componentUpdated(e,t,n)})):Ja(e,t,n.context),e._vOptions=[].map.call(e.options,ni)):("textarea"===n.tag||uo(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",ri),e.addEventListener("compositionend",oi),e.addEventListener("change",oi),te&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ja(e,t,n.context);var r=e._vOptions,o=e._vOptions=[].map.call(e.options,ni);if(o.some((function(e,t){return!L(e,r[t])}))){var a=e.multiple?t.value.some((function(e){return ti(e,o)})):t.value!==t.oldValue&&ti(t.value,o);a&&ai(e,"change")}}}};function Ja(e,t,n){ei(e,t,n),(ee||ne)&&setTimeout((function(){ei(e,t,n)}),0)}function ei(e,t,n){var r=t.value,o=e.multiple;if(!o||Array.isArray(r)){for(var a,i,s=0,c=e.options.length;s<c;s++)if(i=e.options[s],o)a=N(r,ni(i))>-1,i.selected!==a&&(i.selected=a);else if(L(ni(i),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));o||(e.selectedIndex=-1)}}function ti(e,t){return t.every((function(t){return!L(t,e)}))}function ni(e){return"_value"in e?e._value:e.value}function ri(e){e.target.composing=!0}function oi(e){e.target.composing&&(e.target.composing=!1,ai(e.target,"input"))}function ai(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ii(e){return!e.componentInstance||e.data&&e.data.transition?e:ii(e.componentInstance._vnode)}var si={bind:function(e,t,n){var r=t.value;n=ii(n);var o=n.data&&n.data.transition,a=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&o?(n.data.show=!0,qa(n,(function(){e.style.display=a}))):e.style.display=r?a:"none"},update:function(e,t,n){var r=t.value,o=t.oldValue;if(!r!==!o){n=ii(n);var a=n.data&&n.data.transition;a?(n.data.show=!0,r?qa(n,(function(){e.style.display=e.__vOriginalDisplay})):Va(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none"}},unbind:function(e,t,n,r,o){o||(e.style.display=e.__vOriginalDisplay)}},ci={model:Qa,show:si},li={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ui(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ui(kn(t.children)):e}function fi(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var o=n._parentListeners;for(var a in o)t[S(a)]=o[a];return t}function di(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function pi(e){while(e=e.parent)if(e.data.transition)return!0}function hi(e,t){return t.key===e.key&&t.tag===e.tag}var mi=function(e){return e.tag||It(e)},gi=function(e){return"show"===e.name},vi={name:"transition",props:li,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(mi),n.length)){0;var r=this.mode;0;var o=n[0];if(pi(this.$vnode))return o;var a=ui(o);if(!a)return o;if(this._leaving)return di(e,o);var i="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?i+"comment":i+a.tag:s(a.key)?0===String(a.key).indexOf(i)?a.key:i+a.key:a.key;var c=(a.data||(a.data={})).transition=fi(this),l=this._vnode,u=ui(l);if(a.data.directives&&a.data.directives.some(gi)&&(a.data.show=!0),u&&u.data&&!hi(a,u)&&!It(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=C({},c);if("out-in"===r)return this._leaving=!0,xt(f,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),di(e,o);if("in-out"===r){if(It(a))return l;var d,p=function(){d()};xt(c,"afterEnter",p),xt(c,"enterCancelled",p),xt(f,"delayLeave",(function(e){d=e}))}}return o}}},_i=C({tag:String,moveClass:String},li);delete _i.mode;var bi={props:_i,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var o=jn(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,o(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],a=this.children=[],i=fi(this),s=0;s<o.length;s++){var c=o[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))a.push(c),n[c.key]=c,(c.data||(c.data={})).transition=i;else;}if(r){for(var l=[],u=[],f=0;f<r.length;f++){var d=r[f];d.data.transition=i,d.data.pos=d.elm.getBoundingClientRect(),n[d.key]?l.push(d):u.push(d)}this.kept=e(t,null,l),this.removed=u}return e(t,null,a)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(yi),e.forEach(wi),e.forEach(xi),this._reflow=document.body.offsetHeight,e.forEach((function(e){if(e.data.moved){var n=e.elm,r=n.style;La(n,t),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Ca,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Ca,e),n._moveCb=null,Na(n,t))})}})))},methods:{hasMove:function(e,t){if(!Ea)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach((function(e){ka(n,e)})),Sa(n,t),n.style.display="none",this.$el.appendChild(n);var r=Ha(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}};function yi(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function wi(e){e.data.newPos=e.elm.getBoundingClientRect()}function xi(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,o=t.top-n.top;if(r||o){e.data.moved=!0;var a=e.elm.style;a.transform=a.WebkitTransform="translate("+r+"px,"+o+"px)",a.transitionDuration="0s"}}var Si={Transition:vi,TransitionGroup:bi};kr.config.mustUseProp=Ur,kr.config.isReservedTag=io,kr.config.isReservedAttr=Fr,kr.config.getTagNamespace=so,kr.config.isUnknownElement=lo,C(kr.options.directives,ci),C(kr.options.components,Si),kr.prototype.__patch__=K?Za:B,kr.prototype.$mount=function(e,t){return e=e&&K?fo(e):void 0,Pn(this,e,t)},K&&setTimeout((function(){$.devtools&&le&&le.emit("init",kr)}),0),t["a"]=kr}).call(this,n("c8ba"))},"2cf4":function(e,t,n){var r,o,a,i=n("da84"),s=n("d039"),c=n("0366"),l=n("1be4"),u=n("cc12"),f=n("1cdc"),d=n("605d"),p=i.location,h=i.setImmediate,m=i.clearImmediate,g=i.process,v=i.MessageChannel,_=i.Dispatch,b=0,y={},w="onreadystatechange",x=function(e){if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},S=function(e){return function(){x(e)}},k=function(e){x(e.data)},M=function(e){i.postMessage(e+"",p.protocol+"//"+p.host)};h&&m||(h=function(e){var t=[],n=1;while(arguments.length>n)t.push(arguments[n++]);return y[++b]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},r(b),b},m=function(e){delete y[e]},d?r=function(e){g.nextTick(S(e))}:_&&_.now?r=function(e){_.now(S(e))}:v&&!f?(o=new v,a=o.port2,o.port1.onmessage=k,r=c(a.postMessage,a,1)):i.addEventListener&&"function"==typeof postMessage&&!i.importScripts&&p&&"file:"!==p.protocol&&!s(M)?(r=M,i.addEventListener("message",k,!1)):r=w in u("script")?function(e){l.appendChild(u("script"))[w]=function(){l.removeChild(this),x(e)}}:function(e){setTimeout(S(e),0)}),e.exports={set:h,clear:m}},"2d00":function(e,t,n){var r,o,a=n("da84"),i=n("342f"),s=a.process,c=s&&s.versions,l=c&&c.v8;l?(r=l.split("."),o=r[0]<4?1:r[0]+r[1]):i&&(r=i.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/),r&&(o=r[1]))),e.exports=o&&+o},"2d83":function(e,t,n){"use strict";var r=n("387f");e.exports=function(e,t,n,o,a){var i=new Error(e);return r(i,t,n,o,a)}},"2e67":function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},"30b5":function(e,t,n){"use strict";var r=n("c532");function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(r.isURLSearchParams(t))a=t.toString();else{var i=[];r.forEach(t,(function(e,t){null!==e&&"undefined"!==typeof e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),i.push(o(t)+"="+o(e))})))})),a=i.join("&")}if(a){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}},3410:function(e,t,n){var r=n("23e7"),o=n("d039"),a=n("7b0b"),i=n("e163"),s=n("e177"),c=o((function(){i(1)}));r({target:"Object",stat:!0,forced:c,sham:!s},{getPrototypeOf:function(e){return i(a(e))}})},"342f":function(e,t,n){var r=n("d066");e.exports=r("navigator","userAgent")||""},"35a1":function(e,t,n){var r=n("f5df"),o=n("3f8c"),a=n("b622"),i=a("iterator");e.exports=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},"37e8":function(e,t,n){var r=n("83ab"),o=n("9bf2"),a=n("825a"),i=n("df75");e.exports=r?Object.defineProperties:function(e,t){a(e);var n,r=i(t),s=r.length,c=0;while(s>c)o.f(e,n=r[c++],t[n]);return e}},"387f":function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},3934:function(e,t,n){"use strict";var r=n("c532");e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return function(){return!0}}()},"3bbe":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"3ca3":function(e,t,n){"use strict";var r=n("6547").charAt,o=n("69f3"),a=n("7dd0"),i="String Iterator",s=o.set,c=o.getterFor(i);a(String,"String",(function(e){s(this,{type:i,string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?{value:void 0,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},"3f8c":function(e,t){e.exports={}},"428f":function(e,t,n){var r=n("da84");e.exports=r},4362:function(e,t,n){t.nextTick=function(e){var t=Array.prototype.slice.call(arguments);t.shift(),setTimeout((function(){e.apply(null,t)}),0)},t.platform=t.arch=t.execPath=t.title="browser",t.pid=1,t.browser=!0,t.env={},t.argv=[],t.binding=function(e){throw new Error("No such module. (Possibly not yet loaded)")},function(){var e,r="/";t.cwd=function(){return r},t.chdir=function(t){e||(e=n("df7c")),r=e.resolve(t,r)}}(),t.exit=t.kill=t.umask=t.dlopen=t.uptime=t.memoryUsage=t.uvCounters=function(){},t.features={}},"44ad":function(e,t,n){var r=n("d039"),o=n("c6b6"),a="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?a.call(e,""):Object(e)}:Object},"44d2":function(e,t,n){var r=n("b622"),o=n("7c73"),a=n("9bf2"),i=r("unscopables"),s=Array.prototype;void 0==s[i]&&a.f(s,i,{configurable:!0,value:o(null)}),e.exports=function(e){s[i][e]=!0}},"44de":function(e,t,n){var r=n("da84");e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},"467f":function(e,t,n){"use strict";var r=n("2d83");e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},4768:function(e,t,n){},4840:function(e,t,n){var r=n("825a"),o=n("1c0b"),a=n("b622"),i=a("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[i])?t:o(n)}},4930:function(e,t,n){var r=n("2d00"),o=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},"4a7b":function(e,t,n){"use strict";var r=n("c532");e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],a=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function c(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function l(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=c(void 0,t[e]))})),r.forEach(a,l),r.forEach(i,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(void 0,t[o])})),r.forEach(s,(function(r){r in t?n[r]=c(e[r],t[r]):r in e&&(n[r]=c(void 0,e[r]))}));var u=o.concat(a).concat(i).concat(s),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===u.indexOf(e)}));return r.forEach(f,l),n}},"4ae1":function(e,t,n){var r=n("23e7"),o=n("d066"),a=n("1c0b"),i=n("825a"),s=n("861d"),c=n("7c73"),l=n("0538"),u=n("d039"),f=o("Reflect","construct"),d=u((function(){function e(){}return!(f((function(){}),[],e)instanceof e)})),p=!u((function(){f((function(){}))})),h=d||p;r({target:"Reflect",stat:!0,forced:h,sham:h},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(p&&!d)return f(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(l.apply(e,r))}var o=n.prototype,u=c(s(o)?o:Object.prototype),h=Function.apply.call(e,u,t);return s(h)?h:u}})},"4b56":function(e,t,n){},"4d64":function(e,t,n){var r=n("fc6a"),o=n("50c4"),a=n("23cb"),i=function(e){return function(t,n,i){var s,c=r(t),l=o(c.length),u=a(i,l);if(e&&n!=n){while(l>u)if(s=c[u++],s!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"4de4":function(e,t,n){"use strict";var r=n("23e7"),o=n("b727").filter,a=n("1dde"),i=a("filter");r({target:"Array",proto:!0,forced:!i},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,n){"use strict";var r=n("0366"),o=n("7b0b"),a=n("9bdd"),i=n("e95a"),s=n("50c4"),c=n("8418"),l=n("35a1");e.exports=function(e){var t,n,u,f,d,p,h=o(e),m="function"==typeof this?this:Array,g=arguments.length,v=g>1?arguments[1]:void 0,_=void 0!==v,b=l(h),y=0;if(_&&(v=r(v,g>2?arguments[2]:void 0,2)),void 0==b||m==Array&&i(b))for(t=s(h.length),n=new m(t);t>y;y++)p=_?v(h[y],y):h[y],c(n,y,p);else for(f=b.call(h),d=f.next,n=new m;!(u=d.call(f)).done;y++)p=_?a(f,v,[u.value,y],!0):u.value,c(n,y,p);return n.length=y,n}},"50c4":function(e,t,n){var r=n("a691"),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},5135:function(e,t,n){var r=n("7b0b"),o={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return o.call(r(e),t)}},5270:function(e,t,n){"use strict";var r=n("c532"),o=n("c401"),a=n("2e67"),i=n("2444");function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){s(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]}));var t=e.adapter||i.adapter;return t(e).then((function(t){return s(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(s(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},5491:function(e,t,n){"use strict";window.addEventListener("DOMContentLoaded",(function(){var e=document.createElement("video");if(e.canPlayType){var t=""!==e.canPlayType('video/webm; codecs="vp8, vorbis"');if(!t){var n=document.getElementById("content");if(n){var r=document.createElement("p");r.classList.add("warning"),n.prepend(r),r.innerHTML='\n                    Votre navigateur n\'est pas compatible avec le format video <abbr title="WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.">WebM</abbr> des cours en direct.\n                    Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n                '}}}}))},5692:function(e,t,n){var r=n("c430"),o=n("c6cd");(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var r=n("d066"),o=n("241c"),a=n("7418"),i=n("825a");e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},5899:function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(e,t,n){var r=n("1d80"),o=n("5899"),a="["+o+"]",i=RegExp("^"+a+a+"*"),s=RegExp(a+a+"*$"),c=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(s,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"5f02":function(e,t,n){"use strict";e.exports=function(e){return"object"===typeof e&&!0===e.isAxiosError}},"605d":function(e,t,n){var r=n("c6b6"),o=n("da84");e.exports="process"==r(o.process)},6069:function(e,t){e.exports="object"==typeof window},"60da":function(e,t,n){"use strict";var r=n("83ab"),o=n("d039"),a=n("df75"),i=n("7418"),s=n("d1e7"),c=n("7b0b"),l=n("44ad"),u=Object.assign,f=Object.defineProperty;e.exports=!u||o((function(){if(r&&1!==u({b:1},u(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||a(u({},t)).join("")!=o}))?function(e,t){var n=c(e),o=arguments.length,u=1,f=i.f,d=s.f;while(o>u){var p,h=l(arguments[u++]),m=f?a(h).concat(f(h)):a(h),g=m.length,v=0;while(g>v)p=m[v++],r&&!d.call(h,p)||(n[p]=h[p])}return n}:u},6547:function(e,t,n){var r=n("a691"),o=n("1d80"),a=function(e){return function(t,n){var a,i,s=String(o(t)),c=r(n),l=s.length;return c<0||c>=l?e?"":void 0:(a=s.charCodeAt(c),a<55296||a>56319||c+1===l||(i=s.charCodeAt(c+1))<56320||i>57343?e?s.charAt(c):a:e?s.slice(c,c+2):i-56320+(a-55296<<10)+65536)}};e.exports={codeAt:a(!1),charAt:a(!0)}},"65f0":function(e,t,n){var r=n("861d"),o=n("e8b5"),a=n("b622"),i=a("species");e.exports=function(e,t){var n;return o(e)&&(n=e.constructor,"function"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[i],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var r,o,a,i=n("7f9a"),s=n("da84"),c=n("861d"),l=n("9112"),u=n("5135"),f=n("c6cd"),d=n("f772"),p=n("d012"),h="Object already initialized",m=s.WeakMap,g=function(e){return a(e)?o(e):r(e,{})},v=function(e){return function(t){var n;if(!c(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(i||f.state){var _=f.state||(f.state=new m),b=_.get,y=_.has,w=_.set;r=function(e,t){if(y.call(_,e))throw new TypeError(h);return t.facade=e,w.call(_,e,t),t},o=function(e){return b.call(_,e)||{}},a=function(e){return y.call(_,e)}}else{var x=d("state");p[x]=!0,r=function(e,t){if(u(e,x))throw new TypeError(h);return t.facade=e,l(e,x,t),t},o=function(e){return u(e,x)?e[x]:{}},a=function(e){return u(e,x)}}e.exports={set:r,get:o,has:a,enforce:g,getterFor:v}},"6eeb":function(e,t,n){var r=n("da84"),o=n("9112"),a=n("5135"),i=n("ce4e"),s=n("8925"),c=n("69f3"),l=c.get,u=c.enforce,f=String(String).split("String");(e.exports=function(e,t,n,s){var c,l=!!s&&!!s.unsafe,d=!!s&&!!s.enumerable,p=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||o(n,"name",t),c=u(n),c.source||(c.source=f.join("string"==typeof t?t:""))),e!==r?(l?!p&&e[t]&&(d=!0):delete e[t],d?e[t]=n:o(e,t,n)):d?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||s(this)}))},7037:function(e,t,n){function r(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=r=function(e){return typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0):(e.exports=r=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports["default"]=e.exports,e.exports.__esModule=!0),r(t)}n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),e.exports=r,e.exports["default"]=e.exports,e.exports.__esModule=!0},7156:function(e,t,n){var r=n("861d"),o=n("d2bb");e.exports=function(e,t,n){var a,i;return o&&"function"==typeof(a=t.constructor)&&a!==n&&r(i=a.prototype)&&i!==n.prototype&&o(e,i),e}},7418:function(e,t){t.f=Object.getOwnPropertySymbols},"746f":function(e,t,n){var r=n("428f"),o=n("5135"),a=n("e538"),i=n("9bf2").f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||i(t,e,{value:a.f(e)})}},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a77":function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},"7aac":function(e,t,n){"use strict";var r=n("c532");e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,a,i){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(a)&&s.push("domain="+a),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},"7b0b":function(e,t,n){var r=n("1d80");e.exports=function(e){return Object(r(e))}},"7c73":function(e,t,n){var r,o=n("825a"),a=n("37e8"),i=n("7839"),s=n("d012"),c=n("1be4"),l=n("cc12"),u=n("f772"),f=">",d="<",p="prototype",h="script",m=u("IE_PROTO"),g=function(){},v=function(e){return d+h+f+e+d+"/"+h+f},_=function(e){e.write(v("")),e.close();var t=e.parentWindow.Object;return e=null,t},b=function(){var e,t=l("iframe"),n="java"+h+":";return t.style.display="none",c.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(v("document.F=Object")),e.close(),e.F},y=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}y=r?_(r):b();var e=i.length;while(e--)delete y[p][i[e]];return y()};s[m]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(g[p]=o(e),n=new g,g[p]=null,n[m]=e):n=y(),void 0===t?n:a(n,t)}},"7dd0":function(e,t,n){"use strict";var r=n("23e7"),o=n("9ed3"),a=n("e163"),i=n("d2bb"),s=n("d44e"),c=n("9112"),l=n("6eeb"),u=n("b622"),f=n("c430"),d=n("3f8c"),p=n("ae93"),h=p.IteratorPrototype,m=p.BUGGY_SAFARI_ITERATORS,g=u("iterator"),v="keys",_="values",b="entries",y=function(){return this};e.exports=function(e,t,n,u,p,w,x){o(n,t,u);var S,k,M,A=function(e){if(e===p&&C)return C;if(!m&&e in R)return R[e];switch(e){case v:return function(){return new n(this,e)};case _:return function(){return new n(this,e)};case b:return function(){return new n(this,e)}}return function(){return new n(this)}},E=t+" Iterator",T=!1,R=e.prototype,O=R[g]||R["@@iterator"]||p&&R[p],C=!m&&O||A(p),j="Array"==t&&R.entries||O;if(j&&(S=a(j.call(new e)),h!==Object.prototype&&S.next&&(f||a(S)===h||(i?i(S,h):"function"!=typeof S[g]&&c(S,g,y)),s(S,E,!0,!0),f&&(d[E]=y))),p==_&&O&&O.name!==_&&(T=!0,C=function(){return O.call(this)}),f&&!x||R[g]===C||c(R,g,C),d[t]=C,p)if(k={values:A(_),keys:w?C:A(v),entries:A(b)},x)for(M in k)(m||T||!(M in R))&&l(R,M,k[M]);else r({target:t,proto:!0,forced:m||T},k);return k}},"7f9a":function(e,t,n){var r=n("da84"),o=n("8925"),a=r.WeakMap;e.exports="function"===typeof a&&/native code/.test(o(a))},"81da":function(e,t,n){},"825a":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var r=n("d039");e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"83b9":function(e,t,n){"use strict";var r=n("d925"),o=n("e683");e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},8418:function(e,t,n){"use strict";var r=n("c04e"),o=n("9bf2"),a=n("5c6c");e.exports=function(e,t,n){var i=r(t);i in e?o.f(e,i,a(0,n)):e[i]=n}},"861d":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},8925:function(e,t,n){var r=n("c6cd"),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},"8d5c":function(e,t,n){"use strict";n("b6a6")},"8df4":function(e,t,n){"use strict";var r=n("7a77");function o(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e,t=new o((function(t){e=t}));return{token:t,cancel:e}},e.exports=o},"90e3":function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},9112:function(e,t,n){var r=n("83ab"),o=n("9bf2"),a=n("5c6c");e.exports=r?function(e,t,n){return o.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},9186:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("5491");var r=n("2b0e"),o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("chat-window",{attrs:{"current-user-id":e.currentUserId,"rooms-loaded":e.rooms.length>0,"messages-loaded":e.messagesLoaded,"single-room":!0,rooms:e.rooms,"show-files":!1,"show-emojis":!0,"show-reaction-emojis":!1,"show-audio":!1,messages:e.messages,"message-actions":[{name:"replyMessage",title:"Répondre"}],"link-options":{disabled:!1,target:"_self"},"text-messages":{ROOMS_EMPTY:"Aucune conversation",ROOM_EMPTY:"Aucune conversation sélectionnée",NEW_MESSAGES:"Nouveaux messages",MESSAGE_DELETED:"Ce message a été supprimé",MESSAGES_EMPTY:"Aucun message",CONVERSATION_STARTED:"La conversation a commencée le :",TYPE_MESSAGE:"Tapez votre message",SEARCH:"Rechercher",IS_ONLINE:"est en ligne",LAST_SEEN:"dernière connexion ",IS_TYPING:"est en train de taper..."}},on:{"send-message":e.sendMessage}})},a=[];function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e){if(Array.isArray(e))return i(e)}n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),n("a630");function c(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n("fb6a"),n("b0c0");function l(e,t){if(e){if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function u(){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 f(e){return s(e)||c(e)||l(e)||u()}function d(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(l){return void n(l)}s.done?t(c):Promise.resolve(c).then(r,o)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){d(a,r,o,i,s,"next",e)}function s(e){d(a,r,o,i,s,"throw",e)}i(void 0)}))}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t,n){return t&&m(e.prototype,t),n&&m(e,n),e}function v(e,t){return v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},v(e,t)}function _(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}n("4ae1"),n("3410");function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}function y(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var w=n("7037"),x=n.n(w);function S(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e,t){return!t||"object"!==x()(t)&&"function"!==typeof t?S(e):t}function M(e){var t=y();return function(){var n,r=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return k(this,n)}}n("96cf"),n("99af");function A(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}
+(function(){var e={9899:function(e,t,n){e.exports=n(2860)},1816:function(e,t,n){"use strict";var o=n(2652),r=n(1776),s=n(2484),i=n(3640),a=n(6784),l=n(320),c=n(8104),u=n(5108);e.exports=function(e){return new Promise((function(t,n){var d=e.data,f=e.headers;o.isFormData(d)&&delete f["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";f.Authorization="Basic "+btoa(h+":"+m)}var g=a(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(g,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var o="getAllResponseHeaders"in p?l(p.getAllResponseHeaders()):null,s=e.responseType&&"text"!==e.responseType?p.response:p.responseText,i={data:s,status:p.status,statusText:p.statusText,headers:o,config:e,request:p};r(t,n,i),p=null}},p.onabort=function(){p&&(n(u("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(u("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,"ECONNABORTED",p)),p=null},o.isStandardBrowserEnv()){var v=(e.withCredentials||c(g))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;v&&(f[e.xsrfHeaderName]=v)}if("setRequestHeader"in p&&o.forEach(f,(function(e,t){"undefined"===typeof d&&"content-type"===t.toLowerCase()?delete f[t]:p.setRequestHeader(t,e)})),o.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(_){if("json"!==e.responseType)throw _}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),d||(d=null),p.send(d)}))}},2860:function(e,t,n){"use strict";var o=n(2652),r=n(9504),s=n(2508),i=n(6183),a=n(2528);function l(e){var t=new s(e),n=r(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var c=l(a);c.Axios=s,c.create=function(e){return l(i(c.defaults,e))},c.Cancel=n(6432),c.CancelToken=n(6312),c.isCancel=n(9864),c.all=function(e){return Promise.all(e)},c.spread=n(9092),c.isAxiosError=n(6288),e.exports=c,e.exports["default"]=c},6432:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},6312:function(e,t,n){"use strict";var o=n(6432);function r(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new o(e),t(n.reason))}))}r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r((function(t){e=t}));return{token:t,cancel:e}},e.exports=r},9864:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},2508:function(e,t,n){"use strict";var o=n(2652),r=n(3640),s=n(2747),i=n(9088),a=n(6183);function l(e){this.defaults=e,this.interceptors={request:new s,response:new s}}l.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=a(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[i,void 0],n=Promise.resolve(e);this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));while(t.length)n=n.then(t.shift(),t.shift());return n},l.prototype.getUri=function(e){return e=a(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},o.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),o.forEach(["post","put","patch"],(function(e){l.prototype[e]=function(t,n,o){return this.request(a(o||{},{method:e,url:t,data:n}))}})),e.exports=l},2747:function(e,t,n){"use strict";var o=n(2652);function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},6784:function(e,t,n){"use strict";var o=n(7992),r=n(344);e.exports=function(e,t){return e&&!o(t)?r(e,t):t}},5108:function(e,t,n){"use strict";var o=n(7544);e.exports=function(e,t,n,r,s){var i=new Error(e);return o(i,t,n,r,s)}},9088:function(e,t,n){"use strict";var o=n(2652),r=n(712),s=n(9864),i=n(2528);function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){a(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),o.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]}));var t=e.adapter||i.adapter;return t(e).then((function(t){return a(e),t.data=r(t.data,t.headers,e.transformResponse),t}),(function(t){return s(t)||(a(e),t&&t.response&&(t.response.data=r(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},7544:function(e){"use strict";e.exports=function(e,t,n,o,r){return e.config=t,n&&(e.code=n),e.request=o,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},6183:function(e,t,n){"use strict";var o=n(2652);e.exports=function(e,t){t=t||{};var n={},r=["url","method","data"],s=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function l(e,t){return o.isPlainObject(e)&&o.isPlainObject(t)?o.merge(e,t):o.isPlainObject(t)?o.merge({},t):o.isArray(t)?t.slice():t}function c(r){o.isUndefined(t[r])?o.isUndefined(e[r])||(n[r]=l(void 0,e[r])):n[r]=l(e[r],t[r])}o.forEach(r,(function(e){o.isUndefined(t[e])||(n[e]=l(void 0,t[e]))})),o.forEach(s,c),o.forEach(i,(function(r){o.isUndefined(t[r])?o.isUndefined(e[r])||(n[r]=l(void 0,e[r])):n[r]=l(void 0,t[r])})),o.forEach(a,(function(o){o in t?n[o]=l(e[o],t[o]):o in e&&(n[o]=l(void 0,e[o]))}));var u=r.concat(s).concat(i).concat(a),d=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===u.indexOf(e)}));return o.forEach(d,c),n}},1776:function(e,t,n){"use strict";var o=n(5108);e.exports=function(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(o("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},712:function(e,t,n){"use strict";var o=n(2652);e.exports=function(e,t,n){return o.forEach(n,(function(n){e=n(e,t)})),e}},2528:function(e,t,n){"use strict";var o=n(2652),r=n(7700),s={"Content-Type":"application/x-www-form-urlencoded"};function i(e,t){!o.isUndefined(e)&&o.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function a(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(e=n(1816)),e}var l={adapter:a(),transformRequest:[function(e,t){return r(t,"Accept"),r(t,"Content-Type"),o.isFormData(e)||o.isArrayBuffer(e)||o.isBuffer(e)||o.isStream(e)||o.isFile(e)||o.isBlob(e)?e:o.isArrayBufferView(e)?e.buffer:o.isURLSearchParams(e)?(i(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):o.isObject(e)?(i(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),o.forEach(["post","put","patch"],(function(e){l.headers[e]=o.merge(s)})),e.exports=l},9504:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),o=0;o<n.length;o++)n[o]=arguments[o];return e.apply(t,n)}}},3640:function(e,t,n){"use strict";var o=n(2652);function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var s;if(n)s=n(t);else if(o.isURLSearchParams(t))s=t.toString();else{var i=[];o.forEach(t,(function(e,t){null!==e&&"undefined"!==typeof e&&(o.isArray(e)?t+="[]":e=[e],o.forEach(e,(function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),i.push(r(t)+"="+r(e))})))})),s=i.join("&")}if(s){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}},344:function(e){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},2484:function(e,t,n){"use strict";var o=n(2652);e.exports=o.isStandardBrowserEnv()?function(){return{write:function(e,t,n,r,s,i){var a=[];a.push(e+"="+encodeURIComponent(t)),o.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),o.isString(r)&&a.push("path="+r),o.isString(s)&&a.push("domain="+s),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},7992:function(e){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6288:function(e){"use strict";e.exports=function(e){return"object"===typeof e&&!0===e.isAxiosError}},8104:function(e,t,n){"use strict";var o=n(2652);e.exports=o.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var o=e;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=o.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return function(){return!0}}()},7700:function(e,t,n){"use strict";var o=n(2652);e.exports=function(e,t){o.forEach(e,(function(n,o){o!==t&&o.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[o])}))}},320:function(e,t,n){"use strict";var o=n(2652),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,s,i={};return e?(o.forEach(e.split("\n"),(function(e){if(s=e.indexOf(":"),t=o.trim(e.substr(0,s)).toLowerCase(),n=o.trim(e.substr(s+1)),t){if(i[t]&&r.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([n]):i[t]?i[t]+", "+n:n}})),i):i}},9092:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},2652:function(e,t,n){"use strict";var o=n(9504),r=Object.prototype.toString;function s(e){return"[object Array]"===r.call(e)}function i(e){return"undefined"===typeof e}function a(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function l(e){return"[object ArrayBuffer]"===r.call(e)}function c(e){return"undefined"!==typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function d(e){return"string"===typeof e}function f(e){return"number"===typeof e}function p(e){return null!==e&&"object"===typeof e}function h(e){if("[object Object]"!==r.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function m(e){return"[object Date]"===r.call(e)}function g(e){return"[object File]"===r.call(e)}function v(e){return"[object Blob]"===r.call(e)}function _(e){return"[object Function]"===r.call(e)}function b(e){return p(e)&&_(e.pipe)}function y(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function k(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),s(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.call(null,e[r],r,e)}function S(){var e={};function t(t,n){h(e[n])&&h(t)?e[n]=S(e[n],t):h(t)?e[n]=S({},t):s(t)?e[n]=t.slice():e[n]=t}for(var n=0,o=arguments.length;n<o;n++)k(arguments[n],t);return e}function E(e,t,n){return k(t,(function(t,r){e[r]=n&&"function"===typeof t?o(t,n):t})),e}function T(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}e.exports={isArray:s,isArrayBuffer:l,isBuffer:a,isFormData:c,isArrayBufferView:u,isString:d,isNumber:f,isObject:p,isPlainObject:h,isUndefined:i,isDate:m,isFile:g,isBlob:v,isFunction:_,isStream:b,isURLSearchParams:y,isStandardBrowserEnv:w,forEach:k,merge:S,extend:E,trim:x,stripBOM:T}},2904:function(){"use strict";window.addEventListener("DOMContentLoaded",(()=>{const e=document.createElement("video");if(e.canPlayType){const t=""!==e.canPlayType('video/webm; codecs="vp8, vorbis"');if(!t){const e=document.getElementById("content");if(e){const t=document.createElement("p");t.classList.add("warning"),e.prepend(t),t.innerHTML='\n                    Votre navigateur n\'est pas compatible avec le format video <abbr title="WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.">WebM</abbr> des cours en direct.\n                    Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n                '}}}}))},8152:function(e,t){"use strict";t.c=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n}},1896:function(e,t,n){"use strict";var o=n(9063),r=n(4596),s=TypeError;e.exports=function(e){if(o(e))return e;throw new s(r(e)+" is not a function")}},8424:function(e,t,n){"use strict";var o=n(808),r=String,s=TypeError;e.exports=function(e){if(o(e))return e;throw new s(r(e)+" is not an object")}},2196:function(e,t,n){"use strict";var o=n(9740),r=n(4160),s=n(9480),i=function(e){return function(t,n,i){var a,l=o(t),c=s(l),u=r(i,c);if(e&&n!==n){while(c>u)if(a=l[u++],a!==a)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},7934:function(e,t,n){"use strict";var o=n(3528),r=n(1064),s=TypeError,i=Object.getOwnPropertyDescriptor,a=o&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=a?function(e,t){if(r(e)&&!i(e,"length").writable)throw new s("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},5983:function(e,t,n){"use strict";var o=n(1447),r=o({}.toString),s=o("".slice);e.exports=function(e){return s(r(e),8,-1)}},4304:function(e,t,n){"use strict";var o=n(6216),r=n(9976),s=n(4560),i=n(368);e.exports=function(e,t,n){for(var a=r(t),l=i.f,c=s.f,u=0;u<a.length;u++){var d=a[u];o(e,d)||n&&o(n,d)||l(e,d,c(t,d))}}},3652:function(e,t,n){"use strict";var o=n(3528),r=n(368),s=n(9200);e.exports=o?function(e,t,n){return r.f(e,t,s(1,n))}:function(e,t,n){return e[t]=n,e}},9200:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},3244:function(e,t,n){"use strict";var o=n(9063),r=n(368),s=n(316),i=n(1544);e.exports=function(e,t,n,a){a||(a={});var l=a.enumerable,c=void 0!==a.name?a.name:t;if(o(n)&&s(n,c,a),a.global)l?e[t]=n:i(t,n);else{try{a.unsafe?e[t]&&(l=!0):delete e[t]}catch(u){}l?e[t]=n:r.f(e,t,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}},1544:function(e,t,n){"use strict";var o=n(5624),r=Object.defineProperty;e.exports=function(e,t){try{r(o,e,{value:t,configurable:!0,writable:!0})}catch(n){o[e]=t}return t}},3528:function(e,t,n){"use strict";var o=n(6040);e.exports=!o((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},9308:function(e,t,n){"use strict";var o=n(5624),r=n(808),s=o.document,i=r(s)&&r(s.createElement);e.exports=function(e){return i?s.createElement(e):{}}},3272:function(e){"use strict";var t=TypeError,n=9007199254740991;e.exports=function(e){if(e>n)throw t("Maximum allowed index exceeded");return e}},8232:function(e){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},3356:function(e,t,n){"use strict";var o,r,s=n(5624),i=n(8232),a=s.process,l=s.Deno,c=a&&a.versions||l&&l.version,u=c&&c.v8;u&&(o=u.split("."),r=o[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&i&&(o=i.match(/Edge\/(\d+)/),(!o||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/),o&&(r=+o[1]))),e.exports=r},4656:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},3748:function(e,t,n){"use strict";var o=n(5624),r=n(4560).f,s=n(3652),i=n(3244),a=n(1544),l=n(4304),c=n(5272);e.exports=function(e,t){var n,u,d,f,p,h,m=e.target,g=e.global,v=e.stat;if(u=g?o:v?o[m]||a(m,{}):o[m]&&o[m].prototype,u)for(d in t){if(p=t[d],e.dontCallGetSet?(h=r(u,d),f=h&&h.value):f=u[d],n=c(g?d:m+(v?".":"#")+d,e.forced),!n&&void 0!==f){if(typeof p==typeof f)continue;l(p,f)}(e.sham||f&&f.sham)&&s(p,"sham",!0),i(u,d,p,e)}}},6040:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},5744:function(e,t,n){"use strict";var o=n(6040);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},892:function(e,t,n){"use strict";var o=n(5744),r=Function.prototype.call;e.exports=o?r.bind(r):function(){return r.apply(r,arguments)}},3788:function(e,t,n){"use strict";var o=n(3528),r=n(6216),s=Function.prototype,i=o&&Object.getOwnPropertyDescriptor,a=r(s,"name"),l=a&&"something"===function(){}.name,c=a&&(!o||o&&i(s,"name").configurable);e.exports={EXISTS:a,PROPER:l,CONFIGURABLE:c}},1447:function(e,t,n){"use strict";var o=n(5744),r=Function.prototype,s=r.call,i=o&&r.bind.bind(s,s);e.exports=o?i:function(e){return function(){return s.apply(e,arguments)}}},4960:function(e,t,n){"use strict";var o=n(5624),r=n(9063),s=function(e){return r(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?s(o[e]):o[e]&&o[e][t]}},364:function(e,t,n){"use strict";var o=n(1896),r=n(952);e.exports=function(e,t){var n=e[t];return r(n)?void 0:o(n)}},5624:function(e,t,n){"use strict";var o=function(e){return e&&e.Math===Math&&e};e.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof n.g&&n.g)||o("object"==typeof this&&this)||function(){return this}()||Function("return this")()},6216:function(e,t,n){"use strict";var o=n(1447),r=n(6804),s=o({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return s(r(e),t)}},6480:function(e){"use strict";e.exports={}},784:function(e,t,n){"use strict";var o=n(3528),r=n(6040),s=n(9308);e.exports=!o&&!r((function(){return 7!==Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},6212:function(e,t,n){"use strict";var o=n(1447),r=n(6040),s=n(5983),i=Object,a=o("".split);e.exports=r((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"===s(e)?a(e,""):i(e)}:i},8460:function(e,t,n){"use strict";var o=n(1447),r=n(9063),s=n(9136),i=o(Function.toString);r(s.inspectSource)||(s.inspectSource=function(e){return i(e)}),e.exports=s.inspectSource},5444:function(e,t,n){"use strict";var o,r,s,i=n(280),a=n(5624),l=n(808),c=n(3652),u=n(6216),d=n(9136),f=n(8192),p=n(6480),h="Object already initialized",m=a.TypeError,g=a.WeakMap,v=function(e){return s(e)?r(e):o(e,{})},_=function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw new m("Incompatible receiver, "+e+" required");return n}};if(i||d.state){var b=d.state||(d.state=new g);b.get=b.get,b.has=b.has,b.set=b.set,o=function(e,t){if(b.has(e))throw new m(h);return t.facade=e,b.set(e,t),t},r=function(e){return b.get(e)||{}},s=function(e){return b.has(e)}}else{var y=f("state");p[y]=!0,o=function(e,t){if(u(e,y))throw new m(h);return t.facade=e,c(e,y,t),t},r=function(e){return u(e,y)?e[y]:{}},s=function(e){return u(e,y)}}e.exports={set:o,get:r,has:s,enforce:v,getterFor:_}},1064:function(e,t,n){"use strict";var o=n(5983);e.exports=Array.isArray||function(e){return"Array"===o(e)}},9063:function(e){"use strict";var t="object"==typeof document&&document.all;e.exports="undefined"==typeof t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},5272:function(e,t,n){"use strict";var o=n(6040),r=n(9063),s=/#|\.prototype\./,i=function(e,t){var n=l[a(e)];return n===u||n!==c&&(r(t)?o(t):!!t)},a=i.normalize=function(e){return String(e).replace(s,".").toLowerCase()},l=i.data={},c=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},952:function(e){"use strict";e.exports=function(e){return null===e||void 0===e}},808:function(e,t,n){"use strict";var o=n(9063);e.exports=function(e){return"object"==typeof e?null!==e:o(e)}},2804:function(e){"use strict";e.exports=!1},6232:function(e,t,n){"use strict";var o=n(4960),r=n(9063),s=n(6056),i=n(9448),a=Object;e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return r(t)&&s(t.prototype,a(e))}},9480:function(e,t,n){"use strict";var o=n(960);e.exports=function(e){return o(e.length)}},316:function(e,t,n){"use strict";var o=n(1447),r=n(6040),s=n(9063),i=n(6216),a=n(3528),l=n(3788).CONFIGURABLE,c=n(8460),u=n(5444),d=u.enforce,f=u.get,p=String,h=Object.defineProperty,m=o("".slice),g=o("".replace),v=o([].join),_=a&&!r((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),y=e.exports=function(e,t,n){"Symbol("===m(p(t),0,7)&&(t="["+g(p(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!i(e,"name")||l&&e.name!==t)&&(a?h(e,"name",{value:t,configurable:!0}):e.name=t),_&&n&&i(n,"arity")&&e.length!==n.arity&&h(e,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&h(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(r){}var o=d(e);return i(o,"source")||(o.source=v(b,"string"==typeof t?t:"")),e};Function.prototype.toString=y((function(){return s(this)&&f(this).source||c(this)}),"toString")},1736:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var o=+e;return(o>0?n:t)(o)}},368:function(e,t,n){"use strict";var o=n(3528),r=n(784),s=n(4859),i=n(8424),a=n(8732),l=TypeError,c=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",f="configurable",p="writable";t.f=o?s?function(e,t,n){if(i(e),t=a(t),i(n),"function"===typeof e&&"prototype"===t&&"value"in n&&p in n&&!n[p]){var o=u(e,t);o&&o[p]&&(e[t]=n.value,n={configurable:f in n?n[f]:o[f],enumerable:d in n?n[d]:o[d],writable:!1})}return c(e,t,n)}:c:function(e,t,n){if(i(e),t=a(t),i(n),r)try{return c(e,t,n)}catch(o){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},4560:function(e,t,n){"use strict";var o=n(3528),r=n(892),s=n(2460),i=n(9200),a=n(9740),l=n(8732),c=n(6216),u=n(784),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=a(e),t=l(t),u)try{return d(e,t)}catch(n){}if(c(e,t))return i(!r(s.f,e,t),e[t])}},692:function(e,t,n){"use strict";var o=n(9232),r=n(4656),s=r.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,s)}},8167:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},6056:function(e,t,n){"use strict";var o=n(1447);e.exports=o({}.isPrototypeOf)},9232:function(e,t,n){"use strict";var o=n(1447),r=n(6216),s=n(9740),i=n(2196).indexOf,a=n(6480),l=o([].push);e.exports=function(e,t){var n,o=s(e),c=0,u=[];for(n in o)!r(a,n)&&r(o,n)&&l(u,n);while(t.length>c)r(o,n=t[c++])&&(~i(u,n)||l(u,n));return u}},2460:function(e,t){"use strict";var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,r=o&&!n.call({1:2},1);t.f=r?function(e){var t=o(this,e);return!!t&&t.enumerable}:n},7664:function(e,t,n){"use strict";var o=n(892),r=n(9063),s=n(808),i=TypeError;e.exports=function(e,t){var n,a;if("string"===t&&r(n=e.toString)&&!s(a=o(n,e)))return a;if(r(n=e.valueOf)&&!s(a=o(n,e)))return a;if("string"!==t&&r(n=e.toString)&&!s(a=o(n,e)))return a;throw new i("Can't convert object to primitive value")}},9976:function(e,t,n){"use strict";var o=n(4960),r=n(1447),s=n(692),i=n(8167),a=n(8424),l=r([].concat);e.exports=o("Reflect","ownKeys")||function(e){var t=s.f(a(e)),n=i.f;return n?l(t,n(e)):t}},2696:function(e,t,n){"use strict";var o=n(952),r=TypeError;e.exports=function(e){if(o(e))throw new r("Can't call method on "+e);return e}},8192:function(e,t,n){"use strict";var o=n(8196),r=n(7939),s=o("keys");e.exports=function(e){return s[e]||(s[e]=r(e))}},9136:function(e,t,n){"use strict";var o=n(5624),r=n(1544),s="__core-js_shared__",i=o[s]||r(s,{});e.exports=i},8196:function(e,t,n){"use strict";var o=n(2804),r=n(9136);(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.35.1",mode:o?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})},8972:function(e,t,n){"use strict";var o=n(3356),r=n(6040),s=n(5624),i=s.String;e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},4160:function(e,t,n){"use strict";var o=n(3288),r=Math.max,s=Math.min;e.exports=function(e,t){var n=o(e);return n<0?r(n+t,0):s(n,t)}},9740:function(e,t,n){"use strict";var o=n(6212),r=n(2696);e.exports=function(e){return o(r(e))}},3288:function(e,t,n){"use strict";var o=n(1736);e.exports=function(e){var t=+e;return t!==t||0===t?0:o(t)}},960:function(e,t,n){"use strict";var o=n(3288),r=Math.min;e.exports=function(e){var t=o(e);return t>0?r(t,9007199254740991):0}},6804:function(e,t,n){"use strict";var o=n(2696),r=Object;e.exports=function(e){return r(o(e))}},8176:function(e,t,n){"use strict";var o=n(892),r=n(808),s=n(6232),i=n(364),a=n(7664),l=n(1840),c=TypeError,u=l("toPrimitive");e.exports=function(e,t){if(!r(e)||s(e))return e;var n,l=i(e,u);if(l){if(void 0===t&&(t="default"),n=o(l,e,t),!r(n)||s(n))return n;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},8732:function(e,t,n){"use strict";var o=n(8176),r=n(6232);e.exports=function(e){var t=o(e,"string");return r(t)?t:t+""}},4596:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(n){return"Object"}}},7939:function(e,t,n){"use strict";var o=n(1447),r=0,s=Math.random(),i=o(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++r+s,36)}},9448:function(e,t,n){"use strict";var o=n(8972);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},4859:function(e,t,n){"use strict";var o=n(3528),r=n(6040);e.exports=o&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},280:function(e,t,n){"use strict";var o=n(5624),r=n(9063),s=o.WeakMap;e.exports=r(s)&&/native code/.test(String(s))},1840:function(e,t,n){"use strict";var o=n(5624),r=n(8196),s=n(6216),i=n(7939),a=n(8972),l=n(9448),c=o.Symbol,u=r("wks"),d=l?c["for"]||c:c&&c.withoutSetter||i;e.exports=function(e){return s(u,e)||(u[e]=a&&s(c,e)?c[e]:d("Symbol."+e)),u[e]}},3248:function(e,t,n){"use strict";var o=n(3748),r=n(6804),s=n(9480),i=n(7934),a=n(3272),l=n(6040),c=l((function(){return 4294967297!==[].push.call({length:4294967296},1)})),u=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}},d=c||!u();o({target:"Array",proto:!0,arity:1,forced:d},{push:function(e){var t=r(this),n=s(t),o=arguments.length;a(n+o);for(var l=0;l<o;l++)t[n]=arguments[l],n++;return i(t,n),n}})}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,n),s.exports}!function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();!function(){"use strict";n(2904);
 /**
-  * vue-class-component v7.2.6
-  * (c) 2015-present Evan You
-  * @license MIT
-  */
-function E(e){return E="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},E(e)}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e){return O(e)||C(e)||j()}function O(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function C(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function j(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function B(){return"undefined"!==typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function I(e,t){P(e,t),Object.getOwnPropertyNames(t.prototype).forEach((function(n){P(e.prototype,t.prototype,n)})),Object.getOwnPropertyNames(t).forEach((function(n){P(e,t,n)}))}function P(e,t,n){var r=n?Reflect.getOwnMetadataKeys(t,n):Reflect.getOwnMetadataKeys(t);r.forEach((function(r){var o=n?Reflect.getOwnMetadata(r,t,n):Reflect.getOwnMetadata(r,t);n?Reflect.defineMetadata(r,o,e,n):Reflect.defineMetadata(r,o,e)}))}var L={__proto__:[]},N=L instanceof Array;function D(e){var t=E(e);return null==e||"object"!==t&&"function"!==t}function F(e,t){var n=t.prototype._init;t.prototype._init=function(){var t=this,n=Object.getOwnPropertyNames(e);if(e.$options.props)for(var r in e.$options.props)e.hasOwnProperty(r)||n.push(r);n.forEach((function(n){Object.defineProperty(t,n,{get:function(){return e[n]},set:function(t){e[n]=t},configurable:!0})}))};var r=new t;t.prototype._init=n;var o={};return Object.keys(r).forEach((function(e){void 0!==r[e]&&(o[e]=r[e])})),o}var H=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.name=t.name||e._componentTag||e.name;var n=e.prototype;Object.getOwnPropertyNames(n).forEach((function(e){if("constructor"!==e)if(H.indexOf(e)>-1)t[e]=n[e];else{var r=Object.getOwnPropertyDescriptor(n,e);void 0!==r.value?"function"===typeof r.value?(t.methods||(t.methods={}))[e]=r.value:(t.mixins||(t.mixins=[])).push({data:function(){return T({},e,r.value)}}):(r.get||r.set)&&((t.computed||(t.computed={}))[e]={get:r.get,set:r.set})}})),(t.mixins||(t.mixins=[])).push({data:function(){return F(this,e)}});var o=e.__decorators__;o&&(o.forEach((function(e){return e(t)})),delete e.__decorators__);var a=Object.getPrototypeOf(e.prototype),i=a instanceof r["a"]?a.constructor:r["a"],s=i.extend(t);return q(s,e,i),B()&&I(s,e),s}var $={prototype:!0,arguments:!0,callee:!0,caller:!0};function q(e,t,n){Object.getOwnPropertyNames(t).forEach((function(r){if(!$[r]){var o=Object.getOwnPropertyDescriptor(e,r);if(!o||o.configurable){var a=Object.getOwnPropertyDescriptor(t,r);if(!N){if("cid"===r)return;var i=Object.getOwnPropertyDescriptor(n,r);if(!D(a.value)&&i&&i.value===a.value)return}0,Object.defineProperty(e,r,a)}}}))}function V(e){return"function"===typeof e?U(e):function(t){return U(t,e)}}V.registerHooks=function(e){H.push.apply(H,R(e))};var z=V;"undefined"!==typeof Reflect&&Reflect.getMetadata;var X=n("91b2"),Y=n.n(X),G=(n("4768"),function(e){_(n,e);var t=M(n);function n(){var e;return h(this,n),e=t.apply(this,arguments),e.socket=null,e.rooms=[{roomId:"global",roomName:"",avatar:"",users:[]}],e.messagesLoaded=!1,e.messages=[],e.currentUserId=null,e}return g(n,[{key:"created",value:function(){var e="",t=document.getElementById("room-info");t&&(e=t.textContent);var n=null;if(!e)throw"No room info provided";n=JSON.parse(e),this.rooms=[{roomId:n.room_name,roomName:n.room_title,avatar:"",users:[{_id:1,username:"Fake user 1",avatar:"assets/imgs/doe.png",status:{state:"online",lastChanged:"today, 14:30"}},{_id:2,username:"Fake user 2",avatar:"assets/imgs/snow.png",status:{state:"online",lastChanged:"14 July, 20:00"}},{_id:3,username:"Fake user 3",avatar:"assets/imgs/snow.png",status:{state:"online",lastChanged:"14 July, 20:00"}}]}],this.connect(n.room_name),this.currentUserId=n.user_id}},{key:"connect",value:function(e){var t="wss";"https:"!=window.location.protocol&&(t="ws"),this.socket=new WebSocket(t+"://"+window.location.host+"/ws/chat/"+e+"/"),this.fetchMessages(),this.socket.onclose=function(){console.log("Chat socket closed")}}},{key:"fetchMessages",value:function(){var e=p(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.socket.onmessage=function(e){var n=JSON.parse(e.data),r=n.type;if("initial"!=r||!t.messagesLoaded){var o=n.messages;if(t.messages=[].concat(f(t.messages),f(o)),"initial"==r){t.messagesLoaded=!0;var a=document.querySelector(".vac-container-scroll");t.$nextTick((function(){a&&(a.scrollTop=a.scrollHeight)}))}}};case 1:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"sendMessage",value:function(e){var t=e.content,n=e.replyMessage;this.socket.send(JSON.stringify({message:t,replyTo:n?n._id:null}))}}]),n}(r["a"]));G=A([z({components:{ChatWindow:Y.a}})],G);var W=G,K=W;n("8d5c");function Z(e,t,n,r,o,a,i,s){var c,l="function"===typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),i?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=c):o&&(c=s?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,t){return c.call(t),u(e,t)}}else{var f=l.beforeCreate;l.beforeCreate=f?[].concat(f,c):[c]}return{exports:e,options:l}}var Q=Z(K,o,a,!1,null,null,null),J=Q.exports,ee=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"notifications",tabindex:"0"},on:{focus:e.open,focusout:e.close}},[n("div",{staticClass:"bell"},[n("img",{staticClass:"bell-image",attrs:{src:"/static/teleforma/images/bell.svg",alt:"Notifications",title:"Notifications"}}),e.numberOfUnread>0?n("span",{staticClass:"bell-count"},[e._v(e._s(e.numberOfUnread))]):e._e()]),e.opened?n("div",{staticClass:"notifications-list"},[n("ul",e._l(e.messages,(function(e){return n("NotificationMessage",{key:e._id,attrs:{id:e._id,content:e.content,url:e.url,viewed:e.viewed,"creation-date":e.created}})})),1)]):e._e()])},te=[],ne=(n("c740"),n("4de4"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{on:{click:function(t){return e.onClick()},mouseup:function(t){return"button"in t&&1!==t.button?null:e.onMiddleClick()}}},[n("span",{class:{unviewed:!e.viewed,text:!0}},[e._v(e._s(e.content))]),n("span",{staticClass:"date"},[e._v(e._s(e.relativeCreationDate)+" ")])])}),re=[];n("a9e3");function oe(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function ae(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function ie(e){ae(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function se(e){ae(1,arguments);var t=ie(e);return t.setHours(0,0,0,0),t}var ce=864e5;function le(e,t){ae(2,arguments);var n=se(e),r=se(t),o=n.getTime()-oe(n),a=r.getTime()-oe(r);return Math.round((o-a)/ce)}function ue(e){return ae(1,arguments),e instanceof Date||"object"===typeof e&&"[object Date]"===Object.prototype.toString.call(e)}function fe(e){if(ae(1,arguments),!ue(e)&&"number"!==typeof e)return!1;var t=ie(e);return!isNaN(Number(t))}var de={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},pe=function(e,t,n){var r,o=de[e];return r="string"===typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),null!==n&&void 0!==n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},he=pe;function me(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}var ge={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ve={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},_e={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},be={date:me({formats:ge,defaultWidth:"full"}),time:me({formats:ve,defaultWidth:"full"}),dateTime:me({formats:_e,defaultWidth:"full"})},ye=be,we={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xe=function(e,t,n,r){return we[e]},Se=xe;function ke(e){return function(t,n){var r,o=n||{},a=o.context?String(o.context):"standalone";if("formatting"===a&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,s=o.width?String(o.width):i;r=e.formattingValues[s]||e.formattingValues[i]}else{var c=e.defaultWidth,l=o.width?String(o.width):e.defaultWidth;r=e.values[l]||e.values[c]}var u=e.argumentCallback?e.argumentCallback(t):t;return r[u]}}var Me={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Ae={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Ee={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Te={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Re={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Oe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ce=function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},je={ordinalNumber:Ce,era:ke({values:Me,defaultWidth:"wide"}),quarter:ke({values:Ae,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:ke({values:Ee,defaultWidth:"wide"}),day:ke({values:Te,defaultWidth:"wide"}),dayPeriod:ke({values:Re,defaultWidth:"wide",formattingValues:Oe,defaultFormattingWidth:"wide"})},Be=je;function Ie(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(o);if(!a)return null;var i,s=a[0],c=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(c)?Le(c,(function(e){return e.test(s)})):Pe(c,(function(e){return e.test(s)}));i=e.valueCallback?e.valueCallback(l):l,i=n.valueCallback?n.valueCallback(i):i;var u=t.slice(s.length);return{value:i,rest:u}}}function Pe(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function Le(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n}function Ne(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var o=r[0],a=t.match(e.parsePattern);if(!a)return null;var i=e.valueCallback?e.valueCallback(a[0]):a[0];i=n.valueCallback?n.valueCallback(i):i;var s=t.slice(o.length);return{value:i,rest:s}}}var De=/^(\d+)(th|st|nd|rd)?/i,Fe=/\d+/i,He={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Ue={any:[/^b/i,/^(a|c)/i]},$e={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},qe={any:[/1/i,/2/i,/3/i,/4/i]},Ve={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ze={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Xe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Ye={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Ge={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},We={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ke={ordinalNumber:Ne({matchPattern:De,parsePattern:Fe,valueCallback:function(e){return parseInt(e,10)}}),era:Ie({matchPatterns:He,defaultMatchWidth:"wide",parsePatterns:Ue,defaultParseWidth:"any"}),quarter:Ie({matchPatterns:$e,defaultMatchWidth:"wide",parsePatterns:qe,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Ie({matchPatterns:Ve,defaultMatchWidth:"wide",parsePatterns:ze,defaultParseWidth:"any"}),day:Ie({matchPatterns:Xe,defaultMatchWidth:"wide",parsePatterns:Ye,defaultParseWidth:"any"}),dayPeriod:Ie({matchPatterns:Ge,defaultMatchWidth:"any",parsePatterns:We,defaultParseWidth:"any"})},Ze=Ke,Qe={code:"en-US",formatDistance:he,formatLong:ye,formatRelative:Se,localize:Be,match:Ze,options:{weekStartsOn:0,firstWeekContainsDate:1}},Je=Qe;function et(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function tt(e,t){ae(2,arguments);var n=ie(e).getTime(),r=et(t);return new Date(n+r)}function nt(e,t){ae(2,arguments);var n=et(t);return tt(e,-n)}var rt=864e5;function ot(e){ae(1,arguments);var t=ie(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=t.getTime(),o=n-r;return Math.floor(o/rt)+1}function at(e){ae(1,arguments);var t=1,n=ie(e),r=n.getUTCDay(),o=(r<t?7:0)+r-t;return n.setUTCDate(n.getUTCDate()-o),n.setUTCHours(0,0,0,0),n}function it(e){ae(1,arguments);var t=ie(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var o=at(r),a=new Date(0);a.setUTCFullYear(n,0,4),a.setUTCHours(0,0,0,0);var i=at(a);return t.getTime()>=o.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function st(e){ae(1,arguments);var t=it(e),n=new Date(0);n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0);var r=at(n);return r}var ct=6048e5;function lt(e){ae(1,arguments);var t=ie(e),n=at(t).getTime()-st(t).getTime();return Math.round(n/ct)+1}function ut(e,t){ae(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:et(o),i=null==n.weekStartsOn?a:et(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var s=ie(e),c=s.getUTCDay(),l=(c<i?7:0)+c-i;return s.setUTCDate(s.getUTCDate()-l),s.setUTCHours(0,0,0,0),s}function ft(e,t){ae(1,arguments);var n=ie(e),r=n.getUTCFullYear(),o=t||{},a=o.locale,i=a&&a.options&&a.options.firstWeekContainsDate,s=null==i?1:et(i),c=null==o.firstWeekContainsDate?s:et(o.firstWeekContainsDate);if(!(c>=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=new Date(0);l.setUTCFullYear(r+1,0,c),l.setUTCHours(0,0,0,0);var u=ut(l,t),f=new Date(0);f.setUTCFullYear(r,0,c),f.setUTCHours(0,0,0,0);var d=ut(f,t);return n.getTime()>=u.getTime()?r+1:n.getTime()>=d.getTime()?r:r-1}function dt(e,t){ae(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.firstWeekContainsDate,a=null==o?1:et(o),i=null==n.firstWeekContainsDate?a:et(n.firstWeekContainsDate),s=ft(e,t),c=new Date(0);c.setUTCFullYear(s,0,i),c.setUTCHours(0,0,0,0);var l=ut(c,t);return l}var pt=6048e5;function ht(e,t){ae(1,arguments);var n=ie(e),r=ut(n,t).getTime()-dt(n,t).getTime();return Math.round(r/pt)+1}function mt(e,t){var n=e<0?"-":"",r=Math.abs(e).toString();while(r.length<t)r="0"+r;return n+r}var gt={y:function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return mt("yy"===t?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):mt(n+1,2)},d:function(e,t){return mt(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return mt(e.getUTCHours()%12||12,t.length)},H:function(e,t){return mt(e.getUTCHours(),t.length)},m:function(e,t){return mt(e.getUTCMinutes(),t.length)},s:function(e,t){return mt(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds(),o=Math.floor(r*Math.pow(10,n-3));return mt(o,t.length)}},vt=gt,_t={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},bt={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return vt.y(e,t)},Y:function(e,t,n,r){var o=ft(e,r),a=o>0?o:1-o;if("YY"===t){var i=a%100;return mt(i,2)}return"Yo"===t?n.ordinalNumber(a,{unit:"year"}):mt(a,t.length)},R:function(e,t){var n=it(e);return mt(n,t.length)},u:function(e,t){var n=e.getUTCFullYear();return mt(n,t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return mt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return mt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return vt.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return mt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var o=ht(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):mt(o,t.length)},I:function(e,t,n){var r=lt(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):mt(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):vt.d(e,t)},D:function(e,t,n){var r=ot(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):mt(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return mt(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});case"eeee":default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return mt(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});case"cccc":default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return mt(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours(),o=r/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,o=e.getUTCHours();switch(r=12===o?_t.noon:0===o?_t.midnight:o/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,o=e.getUTCHours();switch(r=o>=17?_t.evening:o>=12?_t.afternoon:o>=4?_t.morning:_t.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return vt.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):vt.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):mt(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):mt(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):vt.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vt.s(e,t)},S:function(e,t){return vt.S(e,t)},X:function(e,t,n,r){var o=r._originalDate||e,a=o.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return wt(a);case"XXXX":case"XX":return xt(a);case"XXXXX":case"XXX":default:return xt(a,":")}},x:function(e,t,n,r){var o=r._originalDate||e,a=o.getTimezoneOffset();switch(t){case"x":return wt(a);case"xxxx":case"xx":return xt(a);case"xxxxx":case"xxx":default:return xt(a,":")}},O:function(e,t,n,r){var o=r._originalDate||e,a=o.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+yt(a,":");case"OOOO":default:return"GMT"+xt(a,":")}},z:function(e,t,n,r){var o=r._originalDate||e,a=o.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+yt(a,":");case"zzzz":default:return"GMT"+xt(a,":")}},t:function(e,t,n,r){var o=r._originalDate||e,a=Math.floor(o.getTime()/1e3);return mt(a,t.length)},T:function(e,t,n,r){var o=r._originalDate||e,a=o.getTime();return mt(a,t.length)}};function yt(e,t){var n=e>0?"-":"+",r=Math.abs(e),o=Math.floor(r/60),a=r%60;if(0===a)return n+String(o);var i=t||"";return n+String(o)+i+mt(a,2)}function wt(e,t){if(e%60===0){var n=e>0?"-":"+";return n+mt(Math.abs(e)/60,2)}return xt(e,t)}function xt(e,t){var n=t||"",r=e>0?"-":"+",o=Math.abs(e),a=mt(Math.floor(o/60),2),i=mt(o%60,2);return r+a+n+i}var St=bt;function kt(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}}function Mt(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}}function At(e,t){var n,r=e.match(/(P+)(p+)?/)||[],o=r[1],a=r[2];if(!a)return kt(e,t);switch(o){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;case"PPPP":default:n=t.dateTime({width:"full"});break}return n.replace("{{date}}",kt(o,t)).replace("{{time}}",Mt(a,t))}var Et={p:Mt,P:At},Tt=Et,Rt=["D","DD"],Ot=["YY","YYYY"];function Ct(e){return-1!==Rt.indexOf(e)}function jt(e){return-1!==Ot.indexOf(e)}function Bt(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"))}var It=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Pt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Lt=/^'([^]*?)'?$/,Nt=/''/g,Dt=/[a-zA-Z]/;function Ft(e,t,n){ae(2,arguments);var r=String(t),o=n||{},a=o.locale||Je,i=a.options&&a.options.firstWeekContainsDate,s=null==i?1:et(i),c=null==o.firstWeekContainsDate?s:et(o.firstWeekContainsDate);if(!(c>=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=a.options&&a.options.weekStartsOn,u=null==l?0:et(l),f=null==o.weekStartsOn?u:et(o.weekStartsOn);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!a.localize)throw new RangeError("locale must contain localize property");if(!a.formatLong)throw new RangeError("locale must contain formatLong property");var d=ie(e);if(!fe(d))throw new RangeError("Invalid time value");var p=oe(d),h=nt(d,p),m={firstWeekContainsDate:c,weekStartsOn:f,locale:a,_originalDate:d},g=r.match(Pt).map((function(e){var t=e[0];if("p"===t||"P"===t){var n=Tt[t];return n(e,a.formatLong,m)}return e})).join("").match(It).map((function(n){if("''"===n)return"'";var r=n[0];if("'"===r)return Ht(n);var i=St[r];if(i)return!o.useAdditionalWeekYearTokens&&jt(n)&&Bt(n,t,e),!o.useAdditionalDayOfYearTokens&&Ct(n)&&Bt(n,t,e),i(h,n,a.localize,m);if(r.match(Dt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+r+"`");return n})).join("");return g}function Ht(e){return e.match(Lt)[1].replace(Nt,"'")}function Ut(e,t,n){ae(2,arguments);var r=ie(e),o=ie(t),a=n||{},i=a.locale,s=void 0===i?Je:i,c=a.weekStartsOn,l=void 0===c?0:c;if(!s.localize)throw new RangeError("locale must contain localize property");if(!s.formatLong)throw new RangeError("locale must contain formatLong property");if(!s.formatRelative)throw new RangeError("locale must contain formatRelative property");var u,f=le(r,o);if(isNaN(f))throw new RangeError("Invalid time value");u=f<-6?"other":f<-1?"lastWeek":f<0?"yesterday":f<1?"today":f<2?"tomorrow":f<7?"nextWeek":"other";var d=nt(r,oe(r)),p=nt(o,oe(o)),h=s.formatRelative(u,d,p,{locale:s,weekStartsOn:l});return Ft(r,h,{locale:s,weekStartsOn:l})}var $t={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}},qt=function(e,t,n){var r,o=$t[e];return r="string"===typeof o?o:1===t?o.one:o.other.replace("{{count}}",String(t)),null!==n&&void 0!==n&&n.addSuffix?n.comparison&&n.comparison>0?"dans "+r:"il y a "+r:r},Vt=qt,zt={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},Xt={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Yt={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Gt={date:me({formats:zt,defaultWidth:"full"}),time:me({formats:Xt,defaultWidth:"full"}),dateTime:me({formats:Yt,defaultWidth:"full"})},Wt=Gt,Kt={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"},Zt=function(e,t,n,r){return Kt[e]},Qt=Zt,Jt={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},en={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},tn={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},nn={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},rn={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}},on=function(e,t){var n=Number(e),r=null===t||void 0===t?void 0:t.unit;if(0===n)return"0";var o,a=["year","week","hour","minute","second"];return o=1===n?r&&a.includes(r)?"ère":"er":"ème",n+o},an={ordinalNumber:on,era:ke({values:Jt,defaultWidth:"wide"}),quarter:ke({values:en,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:ke({values:tn,defaultWidth:"wide"}),day:ke({values:nn,defaultWidth:"wide"}),dayPeriod:ke({values:rn,defaultWidth:"wide"})},sn=an,cn=/^(\d+)(ième|ère|ème|er|e)?/i,ln=/\d+/i,un={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},fn={any:[/^av/i,/^ap/i]},dn={narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},pn={any:[/1/i,/2/i,/3/i,/4/i]},hn={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},mn={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},gn={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},vn={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},_n={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},bn={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},yn={ordinalNumber:Ne({matchPattern:cn,parsePattern:ln,valueCallback:function(e){return parseInt(e)}}),era:Ie({matchPatterns:un,defaultMatchWidth:"wide",parsePatterns:fn,defaultParseWidth:"any"}),quarter:Ie({matchPatterns:dn,defaultMatchWidth:"wide",parsePatterns:pn,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Ie({matchPatterns:hn,defaultMatchWidth:"wide",parsePatterns:mn,defaultParseWidth:"any"}),day:Ie({matchPatterns:gn,defaultMatchWidth:"wide",parsePatterns:vn,defaultParseWidth:"any"}),dayPeriod:Ie({matchPatterns:_n,defaultMatchWidth:"any",parsePatterns:bn,defaultParseWidth:"any"})},wn=yn,xn={code:"fr",formatDistance:Vt,formatLong:Wt,formatRelative:Qt,localize:sn,match:wn,options:{weekStartsOn:1,firstWeekContainsDate:4}},Sn=xn,kn=n("bc3a"),Mn=n.n(kn),An=r["a"].extend({props:{id:Number,content:String,url:String,viewed:Boolean,creationDate:String}}),En=function(e){_(n,e);var t=M(n);function n(){return h(this,n),t.apply(this,arguments)}return g(n,[{key:"setAsViewed",value:function(){var e=p(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!1!==this.$props.viewed){e.next=3;break}return e.next=3,Mn.a.post("/notification",{id:this.$props.id,viewed:!0});case 3:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"onClick",value:function(){var e=p(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.setAsViewed(),this.$props.url&&(window.location.href=this.$props.url);case 2:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"onMiddleClick",value:function(){var e=p(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.setAsViewed(),this.$props.url&&window.open(this.$props.url,"_blank");case 2:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"relativeCreationDate",get:function(){return Ut(new Date(this.$props.creationDate),new Date,{locale:Sn})}}]),n}(An);En=A([z],En);var Tn=En,Rn=Tn,On=(n("a58e"),Z(Rn,ne,re,!1,null,"3f1187ff",null)),Cn=On.exports,jn=function(e){_(n,e);var t=M(n);function n(){var e;return h(this,n),e=t.apply(this,arguments),e.socket=null,e.messagesLoaded=!1,e.messages=[],e.currentUserId=null,e.opened=!1,e}return g(n,[{key:"created",value:function(){var e=document.getElementById("user_id");e&&(this.currentUserId=parseInt(e.getAttribute("value"),10),this.connect())}},{key:"connect",value:function(){var e="wss";"https:"!=window.location.protocol&&(e="ws"),this.socket=new WebSocket(e+"://"+window.location.host+"/ws/notification/"+this.currentUserId+"/"),this.fetchMessages(),this.socket.onclose=function(){console.log("Chat socket closed")}}},{key:"fetchMessages",value:function(){var e=p(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.socket.onmessage=function(e){var n=JSON.parse(e.data),r=n.type;if("initial"!==r||!t.messagesLoaded){var o=n.messages,a=null;"new"===r&&1===o.length&&(a=t.messages.findIndex((function(e){return e._id===o[0]._id}))),t.messages=null!==a&&-1!==a?[].concat(f(t.messages.slice(0,a)),[o[0]],f(t.messages.slice(a+1))):[].concat(f(o),f(t.messages)),"initial"===r&&(t.messagesLoaded=!0)}};case 1:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"open",value:function(){this.opened=!0}},{key:"close",value:function(){this.opened=!1}},{key:"numberOfUnread",get:function(){return this.messages.filter((function(e){return!e.viewed})).length}}]),n}(r["a"]);jn=A([z({components:{NotificationMessage:Cn}})],jn);var Bn=jn,In=Bn,Pn=(n("9340"),Z(In,ee,te,!1,null,"d06c11f4",null)),Ln=Pn.exports;Mn.a.defaults.xsrfHeaderName="X-CSRFTOKEN",Mn.a.defaults.xsrfCookieName="csrftoken",Mn.a.defaults.withCredentials=!0,r["a"].config.productionTip=!1,document.getElementById("chat")&&new r["a"]({render:function(e){return e(J)}}).$mount("#chat"),document.getElementById("notifications")&&new r["a"]({render:function(e){return e(Ln)}}).$mount("#notifications")},"91b2":function(e,t,n){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"00ee":function(e,t,n){var r=n("b622"),o=r("toStringTag"),a={};a[o]="z",e.exports="[object z]"===String(a)},"0206":function(e,t){function n(e){return new Int8Array(e)}function r(e){return new Int16Array(e)}function o(e){return new Int32Array(e)}function a(e){return new Float32Array(e)}function i(e){return new Float64Array(e)}function s(e){if(1==e.length)return a(e[0]);var t=e[0];e=e.slice(1);for(var n=[],r=0;r<t;r++)n.push(s(e));return n}function c(e){if(1==e.length)return o(e[0]);var t=e[0];e=e.slice(1);for(var n=[],r=0;r<t;r++)n.push(c(e));return n}function l(e){if(1==e.length)return r(e[0]);var t=e[0];e=e.slice(1);for(var n=[],o=0;o<t;o++)n.push(l(e));return n}function u(e){if(1==e.length)return new Array(e[0]);var t=e[0];e=e.slice(1);for(var n=[],r=0;r<t;r++)n.push(u(e));return n}var f={fill:function(e,t,n,r){if(2==arguments.length)for(var o=0;o<e.length;o++)e[o]=arguments[1];else for(o=t;o<n;o++)e[o]=r}},d={arraycopy:function(e,t,n,r,o){var a=t+o;while(t<a)n[r++]=e[t++]}},p={};function h(e){this.ordinal=e}p.SQRT2=1.4142135623730951,p.FAST_LOG10=function(e){return Math.log10(e)},p.FAST_LOG10_X=function(e,t){return Math.log10(e)*t},h.short_block_allowed=new h(0),h.short_block_coupled=new h(1),h.short_block_dispensed=new h(2),h.short_block_forced=new h(3);var m={};function g(e){this.ordinal=e}m.MAX_VALUE=34028235e31,g.vbr_off=new g(0),g.vbr_mt=new g(1),g.vbr_rh=new g(2),g.vbr_abr=new g(3),g.vbr_mtrh=new g(4),g.vbr_default=g.vbr_mtrh;var v=function(e){};e.exports={System:d,VbrMode:g,Float:m,ShortBlock:h,Util:p,Arrays:f,new_array_n:u,new_byte:n,new_double:i,new_float:a,new_float_n:s,new_int:o,new_int_n:c,new_short:r,new_short_n:l,assert:v}},"0366":function(e,t,n){var r=n("e330"),o=n("59ed"),a=n("40d5"),i=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:a?i(e,t):function(){return e.apply(t,arguments)}}},"04f8":function(e,t,n){var r=n("2d00"),o=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},"06cf":function(e,t,n){var r=n("83ab"),o=n("c65b"),a=n("d1e7"),i=n("5c6c"),s=n("fc6a"),c=n("a04b"),l=n("1a2d"),u=n("0cfb"),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=c(t),u)try{return f(e,t)}catch(n){}if(l(e,t))return i(!o(a.f,e,t),e[t])}},"07fa":function(e,t,n){var r=n("50c4");e.exports=function(e){return r(e.length)}},"09e6":function(e,t,n){var r=n("0206"),o=r.new_float,a=r.new_int;r.assert;function i(){this.global_gain=0,this.sfb_count1=0,this.step=a(39),this.noise=o(39),this.noise_log=o(39)}e.exports=i},"0cb2":function(e,t,n){var r=n("e330"),o=n("7b0b"),a=Math.floor,i=r("".charAt),s=r("".replace),c=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,f,d){var p=n+e.length,h=r.length,m=u;return void 0!==f&&(f=o(f),m=l),s(d,m,(function(o,s){var l;switch(i(s,0)){case"$":return"$";case"&":return e;case"`":return c(t,0,n);case"'":return c(t,p);case"<":l=f[c(s,1,-1)];break;default:var u=+s;if(0===u)return o;if(u>h){var d=a(u/10);return 0===d?o:d<=h?void 0===r[d-1]?i(s,1):r[d-1]+i(s,1):o}l=r[u-1]}return void 0===l?"":l}))}},"0cfb":function(e,t,n){var r=n("83ab"),o=n("d039"),a=n("cc12");e.exports=!r&&!o((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},"0d26":function(e,t,n){var r=n("e330"),o=Error,a=r("".replace),i=function(e){return String(o(e).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,c=s.test(i);e.exports=function(e,t){if(c&&"string"==typeof e&&!o.prepareStackTrace)while(t--)e=a(e,s,"");return e}},"0d51":function(e,t){var n=String;e.exports=function(e){try{return n(e)}catch(t){return"Object"}}},"107c":function(e,t,n){var r=n("d039"),o=n("da84"),a=o.RegExp;e.exports=r((function(){var e=a("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},"13d2":function(e,t,n){var r=n("d039"),o=n("1626"),a=n("1a2d"),i=n("83ab"),s=n("5e77").CONFIGURABLE,c=n("8925"),l=n("69f3"),u=l.enforce,f=l.get,d=Object.defineProperty,p=i&&!r((function(){return 8!==d((function(){}),"length",{value:8}).length})),h=String(String).split("String"),m=e.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||s&&e.name!==t)&&(i?d(e,"name",{value:t,configurable:!0}):e.name=t),p&&n&&a(n,"arity")&&e.length!==n.arity&&d(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?i&&d(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var r=u(e);return a(r,"source")||(r.source=h.join("string"==typeof t?t:"")),e};Function.prototype.toString=m((function(){return o(this)&&f(this).source||c(this)}),"toString")},"13d5":function(e,t,n){"use strict";var r=n("23e7"),o=n("d58f").left,a=n("a640"),i=n("2d00"),s=n("605d"),c=a("reduce"),l=!s&&i>79&&i<83;r({target:"Array",proto:!0,forced:!c||l},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},"14c3":function(e,t,n){var r=n("c65b"),o=n("825a"),a=n("1626"),i=n("c6b6"),s=n("9263"),c=TypeError;e.exports=function(e,t){var n=e.exec;if(a(n)){var l=r(n,e,t);return null!==l&&o(l),l}if("RegExp"===i(e))return r(s,e,t);throw c("RegExp#exec called on incompatible receiver")}},1626:function(e,t){e.exports=function(e){return"function"==typeof e}},1652:function(e,t,n){"use strict";t.__esModule=!0,t.stateify=t.TokenState=t.CharacterState=void 0;var r=n("254c");function o(){return function(e){this.j=[],this.T=e||null}}var a=o();a.prototype={defaultTransition:!1,on:function(e,t){if(e instanceof Array){for(var n=0;n<e.length;n++)this.j.push([e[n],t]);return this}return this.j.push([e,t]),this},next:function(e){for(var t=0;t<this.j.length;t++){var n=this.j[t],r=n[0],o=n[1];if(this.test(e,r))return o}return this.defaultTransition},accepts:function(){return!!this.T},test:function(e,t){return e===t},emit:function(){return this.T}};var i=(0,r.inherits)(a,o(),{test:function(e,t){return e===t||t instanceof RegExp&&t.test(e)}}),s=(0,r.inherits)(a,o(),{jump:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.next(new e(""));return n===this.defaultTransition?(n=new this.constructor(t),this.on(e,n)):t&&(n.T=t),n},test:function(e,t){return e instanceof t}});function c(e,t,n,r){var o=0,a=e.length,s=t,c=[],l=void 0;while(o<a&&(l=s.next(e[o])))s=l,o++;if(o>=a)return[];while(o<a-1)l=new i(r),c.push(l),s.on(e[o],l),s=l,o++;return l=new i(n),c.push(l),s.on(e[a-1],l),c}t.CharacterState=i,t.TokenState=s,t.stateify=c},"182d":function(e,t,n){var r=n("f8cd"),o=RangeError;e.exports=function(e,t){var n=r(e);if(n%t)throw o("Wrong offset");return n}},"1a2d":function(e,t,n){var r=n("e330"),o=n("7b0b"),a=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(o(e),t)}},"1a98":function(e,t,n){"use strict";n.r(t),n.d(t,"detectMobile",(function(){return r}));n("d9e2");function r(){var e=o(),t=e.substr(0,4);return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(t)}function o(){var e=navigator.userAgent||navigator.vendor||window.opera||null;if(!e)throw new Error("Failed to look for user agent information.");return e}},"1be4":function(e,t,n){var r=n("d066");e.exports=r("document","documentElement")},"1d02":function(e,t,n){"use strict";var r=n("ebb5"),o=n("a258").findLastIndex,a=r.aTypedArray,i=r.exportTypedArrayMethod;i("findLastIndex",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:void 0)}))},"1d80":function(e,t,n){var r=n("7234"),o=TypeError;e.exports=function(e){if(r(e))throw o("Can't call method on "+e);return e}},"23cb":function(e,t,n){var r=n("5926"),o=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):a(n,t)}},"23e7":function(e,t,n){var r=n("da84"),o=n("06cf").f,a=n("9112"),i=n("cb2d"),s=n("6374"),c=n("e893"),l=n("94ca");e.exports=function(e,t){var n,u,f,d,p,h,m=e.target,g=e.global,v=e.stat;if(u=g?r:v?r[m]||s(m,{}):(r[m]||{}).prototype,u)for(f in t){if(p=t[f],e.dontCallGetSet?(h=o(u,f),d=h&&h.value):d=u[f],n=l(g?f:m+(v?".":"#")+f,e.forced),!n&&void 0!==d){if(typeof p==typeof d)continue;c(p,d)}(e.sham||d&&d.sham)&&a(p,"sham",!0),i(u,f,p,e)}}},"241c":function(e,t,n){var r=n("ca84"),o=n("7839"),a=o.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},2466:function(e,t){function n(){this.sum=0,this.seen=0,this.want=0,this.pos=0,this.size=0,this.bag=null,this.nVbrNumFrames=0,this.nBytesWritten=0,this.TotalFrameSize=0}e.exports=n},2474:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode),a=r.Float,i=r.ShortBlock,s=r.Util,c=r.Arrays,l=(r.new_array_n,r.new_byte,r.new_double,r.new_float),u=r.new_float_n,f=r.new_int,d=(r.new_int_n,r.assert),p=n("8100"),h=n("4b5e");function m(){var e=new p,t=2.302585092994046,n=2,r=16,m=2,g=16,v=.34,_=1/217621504/(h.BLKSIZE/2),b=.01,y=.8,w=.6,x=.3,S=3.5,k=21,M=.2302585093;function A(e){return e}function E(e,t){for(var n=0,r=0;r<h.BLKSIZE/2;++r)n+=e[r]*t.ATH.eql_w[r];return n*=_,n}function T(t,n,r,o,a,i,c,l,u,f,d){var p=t.internal_flags;if(u<2)e.fft_long(p,o[a],u,f,d),e.fft_short(p,i[c],u,f,d);else if(2==u){for(var m=h.BLKSIZE-1;m>=0;--m){var g=o[a+0][m],v=o[a+1][m];o[a+0][m]=(g+v)*s.SQRT2*.5,o[a+1][m]=(g-v)*s.SQRT2*.5}for(var _=2;_>=0;--_)for(m=h.BLKSIZE_s-1;m>=0;--m){g=i[c+0][_][m],v=i[c+1][_][m];i[c+0][_][m]=(g+v)*s.SQRT2*.5,i[c+1][_][m]=(g-v)*s.SQRT2*.5}}n[0]=A(o[a+0][0]),n[0]*=n[0];for(m=h.BLKSIZE/2-1;m>=0;--m){var b=o[a+0][h.BLKSIZE/2-m],y=o[a+0][h.BLKSIZE/2+m];n[h.BLKSIZE/2-m]=A(.5*(b*b+y*y))}for(_=2;_>=0;--_){r[_][0]=i[c+0][_][0],r[_][0]*=r[_][0];for(m=h.BLKSIZE_s/2-1;m>=0;--m){b=i[c+0][_][h.BLKSIZE_s/2-m],y=i[c+0][_][h.BLKSIZE_s/2+m];r[_][h.BLKSIZE_s/2-m]=A(.5*(b*b+y*y))}}var w=0;for(m=11;m<h.HBLKSIZE;m++)w+=n[m];if(p.tot_ener[u]=w,t.analysis){for(m=0;m<h.HBLKSIZE;m++)p.pinfo.energy[l][u][m]=p.pinfo.energy_save[u][m],p.pinfo.energy_save[u][m]=n[m];p.pinfo.pe[l][u]=p.pe[u]}2==t.athaa_loudapprox&&u<2&&(p.loudness_sq[l][u]=p.loudness_sq_save[u],p.loudness_sq_save[u]=E(n,p))}var R,O,C,j=8,B=23,I=15,P=[1,.79433,.63096,.63096,.63096,.63096,.63096,.25119,.11749];function L(){R=Math.pow(10,(j+1)/16),O=Math.pow(10,(B+1)/16),C=Math.pow(10,I/10)}var N=[3.3246*3.3246,3.23837*3.23837,9.9500500969,9.0247369744,8.1854926609,7.0440875649,2.46209*2.46209,2.284*2.284,4.4892710641,1.96552*1.96552,1.82335*1.82335,1.69146*1.69146,2.4621061921,2.1508568964,1.37074*1.37074,1.31036*1.31036,1.5691069696,1.4555939904,1.16203*1.16203,1.2715945225,1.09428*1.09428,1.0659*1.0659,1.0779838276,1.0382591025,1],D=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],F=[5.5396212496,2.29259*2.29259,4.9868695969,2.12675*2.12675,2.02545*2.02545,1.87894*1.87894,1.74303*1.74303,1.61695*1.61695,2.2499700001,1.39148*1.39148,1.29083*1.29083,1.19746*1.19746,1.2339655056,1.0779838276];function H(e,t,n,r,o,a){var i;if(t>e){if(!(t<e*O))return e+t;i=t/e}else{if(e>=t*O)return e+t;i=e/t}if(d(e>=0),d(t>=0),e+=t,r+3<=6){if(i>=R)return e;var c=0|s.FAST_LOG10_X(i,16);return e*D[c]}var l,u;c=0|s.FAST_LOG10_X(i,16);return t=0!=a?o.ATH.cb_s[n]*o.ATH.adjust:o.ATH.cb_l[n]*o.ATH.adjust,d(t>=0),e<C*t?e>t?(l=1,c<=13&&(l=F[c]),u=s.FAST_LOG10_X(e/t,10/15),e*((N[c]-l)*u+l)):c>13?e:e*F[c]:e*N[c]}var U=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1];function $(e,t,n){var r;if(e<0&&(e=0),t<0&&(t=0),e<=0)return t;if(t<=0)return e;if(r=t>e?t/e:e/t,-2<=n&&n<=2){if(r>=R)return e+t;var o=0|s.FAST_LOG10_X(r,16);return(e+t)*U[o]}return r<O?e+t:(e<t&&(e=t),e)}function q(e,t){var n=e.internal_flags;if(n.channels_out>1){for(var r=0;r<h.SBMAX_l;r++){var o=n.thm[0].l[r],a=n.thm[1].l[r];n.thm[0].l[r]+=a*t,n.thm[1].l[r]+=o*t}for(r=0;r<h.SBMAX_s;r++)for(var i=0;i<3;i++){o=n.thm[0].s[r][i],a=n.thm[1].s[r][i];n.thm[0].s[r][i]+=a*t,n.thm[1].s[r][i]+=o*t}}}function V(e){for(var t=0;t<h.SBMAX_l;t++)if(!(e.thm[0].l[t]>1.58*e.thm[1].l[t]||e.thm[1].l[t]>1.58*e.thm[0].l[t])){var n=e.mld_l[t]*e.en[3].l[t],r=Math.max(e.thm[2].l[t],Math.min(e.thm[3].l[t],n));n=e.mld_l[t]*e.en[2].l[t];var o=Math.max(e.thm[3].l[t],Math.min(e.thm[2].l[t],n));e.thm[2].l[t]=r,e.thm[3].l[t]=o}for(t=0;t<h.SBMAX_s;t++)for(var a=0;a<3;a++)if(!(e.thm[0].s[t][a]>1.58*e.thm[1].s[t][a]||e.thm[1].s[t][a]>1.58*e.thm[0].s[t][a])){n=e.mld_s[t]*e.en[3].s[t][a],r=Math.max(e.thm[2].s[t][a],Math.min(e.thm[3].s[t][a],n));n=e.mld_s[t]*e.en[2].s[t][a];o=Math.max(e.thm[3].s[t][a],Math.min(e.thm[2].s[t][a],n));e.thm[2].s[t][a]=r,e.thm[3].s[t][a]=o}}function z(e,t,n){var r=t,o=Math.pow(10,n);t*=2,r*=2;for(var a=0;a<h.SBMAX_l;a++){if(f=e.ATH.cb_l[e.bm_l[a]]*o,c=Math.min(Math.max(e.thm[0].l[a],f),Math.max(e.thm[1].l[a],f)),l=Math.max(e.thm[2].l[a],f),u=Math.max(e.thm[3].l[a],f),c*t<l+u){var i=c*r/(l+u);l*=i,u*=i,d(l+u>0)}e.thm[2].l[a]=Math.min(l,e.thm[2].l[a]),e.thm[3].l[a]=Math.min(u,e.thm[3].l[a])}o*=h.BLKSIZE_s/h.BLKSIZE;for(a=0;a<h.SBMAX_s;a++)for(var s=0;s<3;s++){var c,l,u,f;if(f=e.ATH.cb_s[e.bm_s[a]]*o,c=Math.min(Math.max(e.thm[0].s[a][s],f),Math.max(e.thm[1].s[a][s],f)),l=Math.max(e.thm[2].s[a][s],f),u=Math.max(e.thm[3].s[a][s],f),c*t<l+u){i=c*t/(l+u);l*=i,u*=i,d(l+u>0)}e.thm[2].s[a][s]=Math.min(e.thm[2].s[a][s],l),e.thm[3].s[a][s]=Math.min(e.thm[3].s[a][s],u)}}function X(e,t,n,r,o){var a,i,s=0,c=0;for(a=i=0;a<h.SBMAX_s;++i,++a){var l=e.bo_s[a],u=e.npart_s,f=l<u?l:u;while(i<f)d(t[i]>=0),d(n[i]>=0),s+=t[i],c+=n[i],i++;if(e.en[r].s[a][o]=s,e.thm[r].s[a][o]=c,i>=u){++a;break}d(t[i]>=0),d(n[i]>=0);var p=e.PSY.bo_s_weight[a],m=1-p;s=p*t[i],c=p*n[i],e.en[r].s[a][o]+=s,e.thm[r].s[a][o]+=c,s=m*t[i],c=m*n[i]}for(;a<h.SBMAX_s;++a)e.en[r].s[a][o]=0,e.thm[r].s[a][o]=0}function Y(e,t,n,r){var o,a,i=0,s=0;for(o=a=0;o<h.SBMAX_l;++a,++o){var c=e.bo_l[o],l=e.npart_l,u=c<l?c:l;while(a<u)d(t[a]>=0),d(n[a]>=0),i+=t[a],s+=n[a],a++;if(e.en[r].l[o]=i,e.thm[r].l[o]=s,a>=l){++o;break}d(t[a]>=0),d(n[a]>=0);var f=e.PSY.bo_l_weight[o],p=1-f;i=f*t[a],s=f*n[a],e.en[r].l[o]+=i,e.thm[r].l[o]+=s,i=p*t[a],s=p*n[a]}for(;o<h.SBMAX_l;++o)e.en[r].l[o]=0,e.thm[r].l[o]=0}function G(e,t,n,r,o,a){var i,s,c=e.internal_flags;for(s=i=0;s<c.npart_s;++s){for(var l=0,u=0,f=c.numlines_s[s],p=0;p<f;++p,++i){var v=t[a][i];l+=v,u<v&&(u=v)}n[s]=l}for(d(s==c.npart_s),d(129==i),i=s=0;s<c.npart_s;s++){var _=c.s3ind_s[s][0],b=c.s3_ss[i++]*n[_];++_;while(_<=c.s3ind_s[s][1])b+=c.s3_ss[i]*n[_],++i,++_;var y=m*c.nb_s1[o][s];if(r[s]=Math.min(b,y),c.blocktype_old[1&o]==h.SHORT_TYPE){y=g*c.nb_s2[o][s];var w=r[s];r[s]=Math.min(y,w)}c.nb_s2[o][s]=c.nb_s1[o][s],c.nb_s1[o][s]=b,d(r[s]>=0)}for(;s<=h.CBANDS;++s)n[s]=0,r[s]=0}function W(e,t,n,r){var o=e.internal_flags;e.short_blocks!=i.short_block_coupled||0!=t[0]&&0!=t[1]||(t[0]=t[1]=0);for(var a=0;a<o.channels_out;a++)r[a]=h.NORM_TYPE,e.short_blocks==i.short_block_dispensed&&(t[a]=1),e.short_blocks==i.short_block_forced&&(t[a]=0),0!=t[a]?(d(o.blocktype_old[a]!=h.START_TYPE),o.blocktype_old[a]==h.SHORT_TYPE&&(r[a]=h.STOP_TYPE)):(r[a]=h.SHORT_TYPE,o.blocktype_old[a]==h.NORM_TYPE&&(o.blocktype_old[a]=h.START_TYPE),o.blocktype_old[a]==h.STOP_TYPE&&(o.blocktype_old[a]=h.SHORT_TYPE)),n[a]=o.blocktype_old[a],o.blocktype_old[a]=r[a]}function K(e,t,n){return n>=1?e:n<=0?t:t>0?Math.pow(e/t,n)*t:0}var Z=[11.8,13.6,17.2,32,46.5,51.3,57.5,67.1,71.5,84.6,97.6,130];function Q(e,n){for(var r=309.07,o=0;o<h.SBMAX_s-1;o++)for(var a=0;a<3;a++){var i=e.thm.s[o][a];if(d(o<Z.length),i>0){var c=i*n,l=e.en.s[o][a];l>c&&(l>1e10*c?r+=Z[o]*(10*t):(d(c>0),r+=Z[o]*s.FAST_LOG10(l/c)))}}return r}var J=[6.8,5.8,5.8,6.4,6.5,9.9,12.1,14.4,15,18.9,21.6,26.9,34.2,40.2,46.8,56.5,60.7,73.9,85.7,93.4,126.1];function ee(e,n){for(var r=281.0575,o=0;o<h.SBMAX_l-1;o++){var a=e.thm.l[o];if(d(o<J.length),a>0){var i=a*n,c=e.en.l[o];c>i&&(c>1e10*i?r+=J[o]*(10*t):(d(i>0),r+=J[o]*s.FAST_LOG10(c/i)))}}return r}function te(e,t,n,r,o){var a,i;for(a=i=0;a<e.npart_l;++a){var s,c=0,l=0;for(s=0;s<e.numlines_l[a];++s,++i){var u=t[i];d(u>=0),c+=u,l<u&&(l=u)}n[a]=c,r[a]=l,o[a]=c*e.rnumlines_l[a],d(e.rnumlines_l[a]>=0),d(c>=0),d(n[a]>=0),d(r[a]>=0),d(o[a]>=0)}}function ne(e,t,n,r){var o=P.length-1,a=0,i=n[a]+n[a+1];if(d(i>=0),i>0){var s=t[a];s<t[a+1]&&(s=t[a+1]),d(e.numlines_l[a]+e.numlines_l[a+1]-1>0),i=20*(2*s-i)/(i*(e.numlines_l[a]+e.numlines_l[a+1]-1));var c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;for(a=1;a<e.npart_l-1;a++)if(i=n[a-1]+n[a]+n[a+1],d(i>=0),i>0){s=t[a-1];s<t[a]&&(s=t[a]),s<t[a+1]&&(s=t[a+1]),d(e.numlines_l[a-1]+e.numlines_l[a]+e.numlines_l[a+1]-1>0),i=20*(3*s-i)/(i*(e.numlines_l[a-1]+e.numlines_l[a]+e.numlines_l[a+1]-1));c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;if(d(a>0),d(a==e.npart_l-1),i=n[a-1]+n[a],d(i>=0),i>0){s=t[a-1];s<t[a]&&(s=t[a]),d(e.numlines_l[a-1]+e.numlines_l[a]-1>0),i=20*(2*s-i)/(i*(e.numlines_l[a-1]+e.numlines_l[a]-1));c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;d(a==e.npart_l-1)}var re=[-1730326e-23,-.01703172,-1349528e-23,.0418072,-673278e-22,-.0876324,-30835e-21,.1863476,-1104424e-22,-.627638];function oe(t,n,r,o,a,i,c,l){var u=t.internal_flags;if(o<2)e.fft_long(u,c[l],o,n,r);else if(2==o)for(var f=h.BLKSIZE-1;f>=0;--f){var d=c[l+0][f],p=c[l+1][f];c[l+0][f]=(d+p)*s.SQRT2*.5,c[l+1][f]=(d-p)*s.SQRT2*.5}i[0]=A(c[l+0][0]),i[0]*=i[0];for(f=h.BLKSIZE/2-1;f>=0;--f){var m=c[l+0][h.BLKSIZE/2-f],g=c[l+0][h.BLKSIZE/2+f];i[h.BLKSIZE/2-f]=A(.5*(m*m+g*g))}var v=0;for(f=11;f<h.HBLKSIZE;f++)v+=i[f];if(u.tot_ener[o]=v,t.analysis){for(f=0;f<h.HBLKSIZE;f++)u.pinfo.energy[a][o][f]=u.pinfo.energy_save[o][f],u.pinfo.energy_save[o][f]=i[f];u.pinfo.pe[a][o]=u.pe[o]}}function ae(t,n,r,o,a,i,c,l){var u=t.internal_flags;if(0==a&&o<2&&e.fft_short(u,c[l],o,n,r),2==o)for(var f=h.BLKSIZE_s-1;f>=0;--f){var d=c[l+0][a][f],p=c[l+1][a][f];c[l+0][a][f]=(d+p)*s.SQRT2*.5,c[l+1][a][f]=(d-p)*s.SQRT2*.5}i[a][0]=c[l+0][a][0],i[a][0]*=i[a][0];for(f=h.BLKSIZE_s/2-1;f>=0;--f){var m=c[l+0][a][h.BLKSIZE_s/2-f],g=c[l+0][a][h.BLKSIZE_s/2+f];i[a][h.BLKSIZE_s/2-f]=A(.5*(m*m+g*g))}}function ie(e,t,n,r){var o=e.internal_flags;2==e.athaa_loudapprox&&n<2&&(o.loudness_sq[t][n]=o.loudness_sq_save[n],o.loudness_sq_save[n]=E(r,o))}this.L3psycho_anal_ns=function(e,t,a,i,s,p,m,g,v,_){var b,S,M,A,E,R,O,C,j,B,I=e.internal_flags,L=u([2,h.BLKSIZE]),N=u([2,3,h.BLKSIZE_s]),D=l(h.CBANDS+1),F=l(h.CBANDS+1),U=l(h.CBANDS+2),$=f(2),Z=f(2),J=u([2,576]),oe=f(h.CBANDS+2),ae=f(h.CBANDS+2);for(c.fill(ae,0),b=I.channels_out,e.mode==MPEGMode.JOINT_STEREO&&(b=4),j=e.VBR==o.vbr_off?0==I.ResvMax?0:I.ResvSize/I.ResvMax*.5:e.VBR==o.vbr_rh||e.VBR==o.vbr_mtrh||e.VBR==o.vbr_mt?.6:1,S=0;S<I.channels_out;S++){var ie=t[S],se=a+576-350-k+192;for(d(re.length==(k-1)/2),A=0;A<576;A++){var ce,le;for(ce=ie[se+A+10],le=0,E=0;E<(k-1)/2-1;E+=2)ce+=re[E]*(ie[se+A+E]+ie[se+A+k-E]),le+=re[E+1]*(ie[se+A+E+1]+ie[se+A+k-E-1]);J[S][A]=ce+le}s[i][S].en.assign(I.en[S]),s[i][S].thm.assign(I.thm[S]),b>2&&(p[i][S].en.assign(I.en[S+2]),p[i][S].thm.assign(I.thm[S+2]))}for(S=0;S<b;S++){var ue,fe,de,pe=l(12),he=[0,0,0,0],me=l(12),ge=1,ve=l(h.CBANDS),_e=l(h.CBANDS),be=[0,0,0,0],ye=l(h.HBLKSIZE),we=u([3,h.HBLKSIZE_s]);for(d(I.npart_s<=h.CBANDS),d(I.npart_l<=h.CBANDS),A=0;A<3;A++)pe[A]=I.nsPsy.last_en_subshort[S][A+6],d(I.nsPsy.last_en_subshort[S][A+4]>0),me[A]=pe[A]/I.nsPsy.last_en_subshort[S][A+4],he[0]+=pe[A];if(2==S)for(A=0;A<576;A++){var xe,Se;xe=J[0][A],Se=J[1][A],J[0][A]=xe+Se,J[1][A]=xe-Se}var ke=J[1&S],Me=0;for(A=0;A<9;A++){for(var Ae=Me+64,Ee=1;Me<Ae;Me++)Ee<Math.abs(ke[Me])&&(Ee=Math.abs(ke[Me]));I.nsPsy.last_en_subshort[S][A]=pe[A+3]=Ee,he[1+A/3]+=Ee,Ee>pe[A+3-2]?(d(pe[A+3-2]>0),Ee/=pe[A+3-2]):pe[A+3-2]>10*Ee?(d(Ee>0),Ee=pe[A+3-2]/(10*Ee)):Ee=0,me[A+3]=Ee}if(e.analysis){var Te=me[0];for(A=1;A<12;A++)Te<me[A]&&(Te=me[A]);I.pinfo.ers[i][S]=I.pinfo.ers_save[S],I.pinfo.ers_save[S]=Te}for(de=3==S?I.nsPsy.attackthre_s:I.nsPsy.attackthre,A=0;A<12;A++)0==be[A/3]&&me[A]>de&&(be[A/3]=A%3+1);for(A=1;A<4;A++){var Re;he[A-1]>he[A]?(d(he[A]>0),Re=he[A-1]/he[A]):(d(he[A-1]>0),Re=he[A]/he[A-1]),Re<1.7&&(be[A]=0,1==A&&(be[0]=0))}for(0!=be[0]&&0!=I.nsPsy.lastAttacks[S]&&(be[0]=0),3!=I.nsPsy.lastAttacks[S]&&be[0]+be[1]+be[2]+be[3]==0||(ge=0,0!=be[1]&&0!=be[0]&&(be[1]=0),0!=be[2]&&0!=be[1]&&(be[2]=0),0!=be[3]&&0!=be[2]&&(be[3]=0)),S<2?Z[S]=ge:0==ge&&(Z[0]=Z[1]=0),v[S]=I.tot_ener[S],fe=N,ue=L,T(e,ye,we,ue,1&S,fe,1&S,i,S,t,a),te(I,ye,D,ve,_e),ne(I,ve,_e,oe),C=0;C<3;C++){var Oe,Ce;for(G(e,we,F,U,S,C),X(I,F,U,S,C),O=0;O<h.SBMAX_s;O++){if(Ce=I.thm[S].s[O][C],Ce*=y,be[C]>=2||1==be[C+1]){var je=0!=C?C-1:2;Ee=K(I.thm[S].s[O][je],Ce,w*j);Ce=Math.min(Ce,Ee)}if(1==be[C]){je=0!=C?C-1:2,Ee=K(I.thm[S].s[O][je],Ce,x*j);Ce=Math.min(Ce,Ee)}else if(0!=C&&3==be[C-1]||0==C&&3==I.nsPsy.lastAttacks[S]){je=2!=C?C+1:0,Ee=K(I.thm[S].s[O][je],Ce,x*j);Ce=Math.min(Ce,Ee)}Oe=pe[3*C+3]+pe[3*C+4]+pe[3*C+5],6*pe[3*C+5]<Oe&&(Ce*=.5,6*pe[3*C+4]<Oe&&(Ce*=.5)),I.thm[S].s[O][C]=Ce}}for(I.nsPsy.lastAttacks[S]=be[2],R=0,M=0;M<I.npart_l;M++){var Be=I.s3ind[M][0],Ie=D[Be]*P[oe[Be]],Pe=I.s3_ll[R++]*Ie;while(++Be<=I.s3ind[M][1])Ie=D[Be]*P[oe[Be]],Pe=H(Pe,I.s3_ll[R++]*Ie,Be,Be-M,I,0);Pe*=.158489319246111,I.blocktype_old[1&S]==h.SHORT_TYPE?U[M]=Pe:U[M]=K(Math.min(Pe,Math.min(n*I.nb_1[S][M],r*I.nb_2[S][M])),Pe,j),I.nb_2[S][M]=I.nb_1[S][M],I.nb_1[S][M]=Pe}for(;M<=h.CBANDS;++M)D[M]=0,U[M]=0;Y(I,D,U,S)}(e.mode!=MPEGMode.STEREO&&e.mode!=MPEGMode.JOINT_STEREO||e.interChRatio>0&&q(e,e.interChRatio),e.mode==MPEGMode.JOINT_STEREO)&&(V(I),B=e.msfix,Math.abs(B)>0&&z(I,B,e.ATHlower*I.ATH.adjust));for(W(e,Z,_,$),S=0;S<b;S++){var Le,Ne,De,Fe=0;S>1?(Le=g,Fe=-2,Ne=h.NORM_TYPE,_[0]!=h.SHORT_TYPE&&_[1]!=h.SHORT_TYPE||(Ne=h.SHORT_TYPE),De=p[i][S-2]):(Le=m,Fe=0,Ne=_[S],De=s[i][S]),Ne==h.SHORT_TYPE?Le[Fe+S]=Q(De,I.masking_lower):Le[Fe+S]=ee(De,I.masking_lower),e.analysis&&(I.pinfo.pe[i][S]=Le[Fe+S])}return 0};var se=[-1730326e-23,-.01703172,-1349528e-23,.0418072,-673278e-22,-.0876324,-30835e-21,.1863476,-1104424e-22,-.627638];function ce(e,t,n,r,o,a,i,s,c,f){for(var p=u([2,576]),h=e.internal_flags,m=h.channels_out,g=e.mode==MPEGMode.JOINT_STEREO?4:m,v=0;v<m;v++){firbuf=t[v];var _=n+576-350-k+192;d(se.length==(k-1)/2);for(var b=0;b<576;b++){var y,w;y=firbuf[_+b+10],w=0;for(var x=0;x<(k-1)/2-1;x+=2)y+=se[x]*(firbuf[_+b+x]+firbuf[_+b+k-x]),w+=se[x+1]*(firbuf[_+b+x+1]+firbuf[_+b+k-x-1]);p[v][b]=y+w}o[r][v].en.assign(h.en[v]),o[r][v].thm.assign(h.thm[v]),g>2&&(a[r][v].en.assign(h.en[v+2]),a[r][v].thm.assign(h.thm[v+2]))}for(v=0;v<g;v++){var S=l(12),M=l(12),A=[0,0,0,0],E=p[1&v],T=0,R=3==v?h.nsPsy.attackthre_s:h.nsPsy.attackthre,O=1;if(2==v)for(b=0,x=576;x>0;++b,--x){var C=p[0][b],j=p[1][b];p[0][b]=C+j,p[1][b]=C-j}for(b=0;b<3;b++)M[b]=h.nsPsy.last_en_subshort[v][b+6],d(h.nsPsy.last_en_subshort[v][b+4]>0),S[b]=M[b]/h.nsPsy.last_en_subshort[v][b+4],A[0]+=M[b];for(b=0;b<9;b++){for(var B=T+64,I=1;T<B;T++)I<Math.abs(E[T])&&(I=Math.abs(E[T]));h.nsPsy.last_en_subshort[v][b]=M[b+3]=I,A[1+b/3]+=I,I>M[b+3-2]?(d(M[b+3-2]>0),I/=M[b+3-2]):M[b+3-2]>10*I?(d(I>0),I=M[b+3-2]/(10*I)):I=0,S[b+3]=I}for(b=0;b<3;++b){var P=M[3*b+3]+M[3*b+4]+M[3*b+5],L=1;6*M[3*b+5]<P&&(L*=.5,6*M[3*b+4]<P&&(L*=.5)),s[v][b]=L}if(e.analysis){var N=S[0];for(b=1;b<12;b++)N<S[b]&&(N=S[b]);h.pinfo.ers[r][v]=h.pinfo.ers_save[v],h.pinfo.ers_save[v]=N}for(b=0;b<12;b++)0==c[v][b/3]&&S[b]>R&&(c[v][b/3]=b%3+1);for(b=1;b<4;b++){var D=A[b-1],F=A[b],H=Math.max(D,F);H<4e4&&D<1.7*F&&F<1.7*D&&(1==b&&c[v][0]<=c[v][b]&&(c[v][0]=0),c[v][b]=0)}c[v][0]<=h.nsPsy.lastAttacks[v]&&(c[v][0]=0),3!=h.nsPsy.lastAttacks[v]&&c[v][0]+c[v][1]+c[v][2]+c[v][3]==0||(O=0,0!=c[v][1]&&0!=c[v][0]&&(c[v][1]=0),0!=c[v][2]&&0!=c[v][1]&&(c[v][2]=0),0!=c[v][3]&&0!=c[v][2]&&(c[v][3]=0)),v<2?f[v]=O:0==O&&(f[0]=f[1]=0),i[v]=h.tot_ener[v]}}function le(e,t,n){if(0==n)for(var r=0;r<e.npart_s;r++)e.nb_s2[t][r]=e.nb_s1[t][r],e.nb_s1[t][r]=0}function ue(e,t){for(var n=0;n<e.npart_l;n++)e.nb_2[t][n]=e.nb_1[t][n],e.nb_1[t][n]=0}function fe(e,t,n,r){var o=P.length-1,a=0,i=n[a]+n[a+1];if(d(i>=0),i>0){var s=t[a];s<t[a+1]&&(s=t[a+1]),d(e.numlines_s[a]+e.numlines_s[a+1]-1>0),i=20*(2*s-i)/(i*(e.numlines_s[a]+e.numlines_s[a+1]-1));var c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;for(a=1;a<e.npart_s-1;a++)if(i=n[a-1]+n[a]+n[a+1],d(a+1<e.npart_s),d(i>=0),i>0){s=t[a-1];s<t[a]&&(s=t[a]),s<t[a+1]&&(s=t[a+1]),d(e.numlines_s[a-1]+e.numlines_s[a]+e.numlines_s[a+1]-1>0),i=20*(3*s-i)/(i*(e.numlines_s[a-1]+e.numlines_s[a]+e.numlines_s[a+1]-1));c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;if(d(a>0),d(a==e.npart_s-1),i=n[a-1]+n[a],d(i>=0),i>0){s=t[a-1];s<t[a]&&(s=t[a]),d(e.numlines_s[a-1]+e.numlines_s[a]-1>0),i=20*(2*s-i)/(i*(e.numlines_s[a-1]+e.numlines_s[a]-1));c=0|i;c>o&&(c=o),r[a]=c}else r[a]=0;d(a==e.npart_s-1)}function de(e,t,n,r,o,a){var i,s,c,u=e.internal_flags,f=new float[h.CBANDS],p=l(h.CBANDS),m=new int[h.CBANDS];for(c=s=0;c<u.npart_s;++c){var g=0,v=0,_=u.numlines_s[c];for(i=0;i<_;++i,++s){var b=t[a][s];g+=b,v<b&&(v=b)}n[c]=g,d(g>=0),f[c]=v,d(_>0),p[c]=g/_,d(p[c]>=0)}for(d(c==u.npart_s),d(129==s);c<h.CBANDS;++c)f[c]=0,p[c]=0;for(fe(u,f,p,m),s=c=0;c<u.npart_s;c++){var y,w,x,S,k,M=u.s3ind_s[c][0],A=u.s3ind_s[c][1];y=m[M],w=1,S=u.s3_ss[s]*n[M]*P[m[M]],++s,++M;while(M<=A)y+=m[M],w+=1,x=u.s3_ss[s]*n[M]*P[m[M]],S=$(S,x,M-c),++s,++M;y=(1+2*y)/(2*w),k=.5*P[y],S*=k,r[c]=S,u.nb_s2[o][c]=u.nb_s1[o][c],u.nb_s1[o][c]=S,x=f[c],x*=u.minval_s[c],x*=k,r[c]>x&&(r[c]=x),u.masking_lower>1&&(r[c]*=u.masking_lower),r[c]>n[c]&&(r[c]=n[c]),u.masking_lower<1&&(r[c]*=u.masking_lower),d(r[c]>=0)}for(;c<h.CBANDS;++c)n[c]=0,r[c]=0}function pe(e,t,o,a,i){var s,c=l(h.CBANDS),u=l(h.CBANDS),p=f(h.CBANDS+2);te(e,t,o,c,u),ne(e,c,u,p);var m=0;for(s=0;s<e.npart_l;s++){var g,v,_,b,y=e.s3ind[s][0],w=e.s3ind[s][1],S=0,k=0;S=p[y],k+=1,v=e.s3_ll[m]*o[y]*P[p[y]],++m,++y;while(y<=w)S+=p[y],k+=1,g=e.s3_ll[m]*o[y]*P[p[y]],b=$(v,g,y-s),v=b,++m,++y;if(S=(1+2*S)/(2*k),_=.5*P[S],v*=_,e.blocktype_old[1&i]==h.SHORT_TYPE){var M=n*e.nb_1[i][s];a[s]=M>0?Math.min(v,M):Math.min(v,o[s]*x)}else{var A=r*e.nb_2[i][s],E=n*e.nb_1[i][s];A<=0&&(A=v),E<=0&&(E=v),M=e.blocktype_old[1&i]==h.NORM_TYPE?Math.min(E,A):E,a[s]=Math.min(v,M)}e.nb_2[i][s]=e.nb_1[i][s],e.nb_1[i][s]=v,g=c[s],g*=e.minval_l[s],g*=_,a[s]>g&&(a[s]=g),e.masking_lower>1&&(a[s]*=e.masking_lower),a[s]>o[s]&&(a[s]=o[s]),e.masking_lower<1&&(a[s]*=e.masking_lower),d(a[s]>=0)}for(;s<h.CBANDS;++s)o[s]=0,a[s]=0}function he(e,t){var n=e.internal_flags;e.short_blocks!=i.short_block_coupled||0!=t[0]&&0!=t[1]||(t[0]=t[1]=0);for(var r=0;r<n.channels_out;r++)e.short_blocks==i.short_block_dispensed&&(t[r]=1),e.short_blocks==i.short_block_forced&&(t[r]=0)}function me(e,t,n){for(var r=e.internal_flags,o=0;o<r.channels_out;o++){var a=h.NORM_TYPE;0!=t[o]?(d(r.blocktype_old[o]!=h.START_TYPE),r.blocktype_old[o]==h.SHORT_TYPE&&(a=h.STOP_TYPE)):(a=h.SHORT_TYPE,r.blocktype_old[o]==h.NORM_TYPE&&(r.blocktype_old[o]=h.START_TYPE),r.blocktype_old[o]==h.STOP_TYPE&&(r.blocktype_old[o]=h.SHORT_TYPE)),n[o]=r.blocktype_old[o],r.blocktype_old[o]=a}}function ge(e,t,n,r,o,a,i){for(var s,c,l=2*a,u=a>0?Math.pow(10,o):1,f=0;f<i;++f){var p=e[2][f],h=e[3][f],m=t[0][f],g=t[1][f],v=t[2][f],_=t[3][f];if(m<=1.58*g&&g<=1.58*m){var b=n[f]*h,y=n[f]*p;c=Math.max(v,Math.min(_,b)),s=Math.max(_,Math.min(v,y))}else c=v,s=_;if(a>0){var w,x,S=r[f]*u;if(w=Math.min(Math.max(m,S),Math.max(g,S)),v=Math.max(c,S),_=Math.max(s,S),x=v+_,x>0&&w*l<x){var k=w*l/x;v*=k,_*=k,d(x>0)}c=Math.min(v,c),s=Math.min(_,s)}c>p&&(c=p),s>h&&(s=h),t[2][f]=c,t[3][f]=s}}function ve(e,t){var n,r=e;return n=r>=0?27*-r:r*t,n<=-72?0:Math.exp(n*M)}function _e(e){var t=0,n=0,r=0;for(r=0;ve(r,e)>1e-20;r-=1);o=r,a=0;while(Math.abs(a-o)>1e-12)r=(a+o)/2,ve(r,e)>0?a=r:o=r;t=o;var o,a;r=0;for(r=0;ve(r,e)>1e-20;r+=1);o=0,a=r;while(Math.abs(a-o)>1e-12)r=(a+o)/2,ve(r,e)>0?o=r:a=r;n=a;var i,s=0,c=1e3;for(i=0;i<=c;++i){r=t+i*(n-t)/c;var l=ve(r,e);s+=l}var u=(c+1)/(s*(n-t));return u}function be(e){var t,n,r,o;return t=e,t*=t>=0?3:1.5,t>=.5&&t<=2.5?(o=t-.5,n=8*(o*o-2*o)):n=0,t+=.474,r=15.811389+7.5*t-17.5*Math.sqrt(1+t*t),r<=-60?0:(t=Math.exp((n+r)*M),t/=.6609193,t)}function ye(e){return e<0&&(e=0),e*=.001,13*Math.atan(.76*e)+3.5*Math.atan(e*e/56.25)}function we(e,t,n,r,o,a,i,s,c,u,p,m){var g,_=l(h.CBANDS+1),b=s/(m>15?1152:384),y=f(h.HBLKSIZE);s/=c;var w=0,x=0;for(g=0;g<h.CBANDS;g++){var S;for(j=ye(s*w),_[g]=s*w,S=w;ye(s*S)-j<v&&S<=c/2;S++);e[g]=S-w,x=g+1;while(w<S)d(w<h.HBLKSIZE),y[w++]=g;if(w>c/2){w=c/2,++g;break}}d(g<h.CBANDS),_[g]=s*w;for(var k=0;k<m;k++){var M,A,E,T,R;E=u[k],T=u[k+1],M=0|Math.floor(.5+p*(E-.5)),M<0&&(M=0),A=0|Math.floor(.5+p*(T-.5)),A>c/2&&(A=c/2),n[k]=(y[M]+y[A])/2,t[k]=y[A];var O=b*T;i[k]=(O-_[t[k]])/(_[t[k]+1]-_[t[k]]),i[k]<0?i[k]=0:i[k]>1&&(i[k]=1),R=ye(s*u[k]*p),R=Math.min(R,15.5)/15.5,a[k]=Math.pow(10,1.25*(1-Math.cos(Math.PI*R))-2.5)}w=0;for(var C=0;C<x;C++){var j,B,I=e[C];j=ye(s*w),B=ye(s*(w+I-1)),r[C]=.5*(j+B),j=ye(s*(w-.5)),B=ye(s*(w+I-.5)),o[C]=B-j,w+=I}return x}function xe(e,t,n,r,o,a){var i,s=u([h.CBANDS,h.CBANDS]),c=0;if(a)for(var f=0;f<t;f++)for(i=0;i<t;i++){var d=be(n[f]-n[i])*r[i];s[f][i]=d*o[f]}else for(i=0;i<t;i++){var p=15+Math.min(21/n[i],12),m=_e(p);for(f=0;f<t;f++){d=m*ve(n[f]-n[i],p)*r[i];s[f][i]=d*o[f]}}for(f=0;f<t;f++){for(i=0;i<t;i++)if(s[f][i]>0)break;for(e[f][0]=i,i=t-1;i>0;i--)if(s[f][i]>0)break;e[f][1]=i,c+=e[f][1]-e[f][0]+1}var g=l(c),v=0;for(f=0;f<t;f++)for(i=e[f][0];i<=e[f][1];i++)g[v++]=s[f][i];return g}function Se(e){var t=ye(e);return t=Math.min(t,15.5)/15.5,Math.pow(10,1.25*(1-Math.cos(Math.PI*t))-2.5)}function ke(e,t){e<-.3&&(e=3410),e/=1e3,e=Math.max(.1,e);var n=3.64*Math.pow(e,-.8)-6.8*Math.exp(-.6*Math.pow(e-3.4,2))+6*Math.exp(-.15*Math.pow(e-8.7,2))+.001*(.6+.04*t)*Math.pow(e,4);return n}this.L3psycho_anal_vbr=function(e,t,n,r,o,a,i,s,c,d){var p,m,g=e.internal_flags,v=l(h.HBLKSIZE),_=u([3,h.HBLKSIZE_s]),b=u([2,h.BLKSIZE]),S=u([2,3,h.BLKSIZE_s]),k=u([4,h.CBANDS]),M=u([4,h.CBANDS]),A=u([4,3]),E=.6,T=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],R=f(2),O=e.mode==MPEGMode.JOINT_STEREO?4:g.channels_out;ce(e,t,n,r,o,a,c,A,T,R),he(e,R);for(var C=0;C<O;C++){var j=1&C;p=b,oe(e,t,n,C,r,v,p,j),ie(e,r,C,v),0!=R[j]?pe(g,v,k[C],M[C],C):ue(g,C)}R[0]+R[1]==2&&e.mode==MPEGMode.JOINT_STEREO&&ge(k,M,g.mld_cb_l,g.ATH.cb_l,e.ATHlower*g.ATH.adjust,e.msfix,g.npart_l);for(C=0;C<O;C++){j=1&C;0!=R[j]&&Y(g,k[C],M[C],C)}for(var B=0;B<3;B++){for(C=0;C<O;++C){j=1&C;0!=R[j]?le(g,C,B):(m=S,ae(e,t,n,C,B,_,m,j),de(e,_,k[C],M[C],C,B))}R[0]+R[1]==0&&e.mode==MPEGMode.JOINT_STEREO&&ge(k,M,g.mld_cb_s,g.ATH.cb_s,e.ATHlower*g.ATH.adjust,e.msfix,g.npart_s);for(C=0;C<O;++C){j=1&C;0==R[j]&&X(g,k[C],M[C],C,B)}}for(C=0;C<O;C++){j=1&C;if(0==R[j])for(var I=0;I<h.SBMAX_s;I++){var P=l(3);for(B=0;B<3;B++){var L=g.thm[C].s[I][B];if(L*=y,T[C][B]>=2||1==T[C][B+1]){var N=0!=B?B-1:2,D=K(g.thm[C].s[I][N],L,w*E);L=Math.min(L,D)}else if(1==T[C][B]){N=0!=B?B-1:2,D=K(g.thm[C].s[I][N],L,x*E);L=Math.min(L,D)}else if(0!=B&&3==T[C][B-1]||0==B&&3==g.nsPsy.lastAttacks[C]){N=2!=B?B+1:0,D=K(g.thm[C].s[I][N],L,x*E);L=Math.min(L,D)}L*=A[C][B],P[B]=L}for(B=0;B<3;B++)g.thm[C].s[I][B]=P[B]}}for(C=0;C<O;C++)g.nsPsy.lastAttacks[C]=T[C][2];me(e,R,d);for(C=0;C<O;C++){var F,H,U,$;C>1?(F=s,H=-2,U=h.NORM_TYPE,d[0]!=h.SHORT_TYPE&&d[1]!=h.SHORT_TYPE||(U=h.SHORT_TYPE),$=a[r][C-2]):(F=i,H=0,U=d[C],$=o[r][C]),U==h.SHORT_TYPE?F[H+C]=Q($,g.masking_lower):F[H+C]=ee($,g.masking_lower),e.analysis&&(g.pinfo.pe[r][C]=F[H+C])}return 0},this.psymodel_init=function(n){var r,i=n.internal_flags,s=!0,c=13,u=24,f=0,p=0,m=-8.25,g=-4.5,v=l(h.CBANDS),_=l(h.CBANDS),y=l(h.CBANDS),w=n.out_samplerate;switch(n.experimentalZ){default:case 0:s=!0;break;case 1:s=n.VBR!=o.vbr_mtrh&&n.VBR!=o.vbr_mt;break;case 2:s=!1;break;case 3:c=8,f=-1.75,p=-.0125,m=-8.25,g=-2.25;break}for(i.ms_ener_ratio_old=.25,i.blocktype_old[0]=i.blocktype_old[1]=h.NORM_TYPE,r=0;r<4;++r){for(var x=0;x<h.CBANDS;++x)i.nb_1[r][x]=1e20,i.nb_2[r][x]=1e20,i.nb_s1[r][x]=i.nb_s2[r][x]=1;for(var k=0;k<h.SBMAX_l;k++)i.en[r].l[k]=1e20,i.thm[r].l[k]=1e20;for(x=0;x<3;++x){for(k=0;k<h.SBMAX_s;k++)i.en[r].s[k][x]=1e20,i.thm[r].s[k][x]=1e20;i.nsPsy.lastAttacks[r]=0}for(x=0;x<9;x++)i.nsPsy.last_en_subshort[r][x]=10}for(i.loudness_sq_save[0]=i.loudness_sq_save[1]=0,i.npart_l=we(i.numlines_l,i.bo_l,i.bm_l,v,_,i.mld_l,i.PSY.bo_l_weight,w,h.BLKSIZE,i.scalefac_band.l,h.BLKSIZE/1152,h.SBMAX_l),d(i.npart_l<h.CBANDS),r=0;r<i.npart_l;r++){var M=f;v[r]>=c&&(M=p*(v[r]-c)/(u-c)+f*(u-v[r])/(u-c)),y[r]=Math.pow(10,M/10),i.numlines_l[r]>0?i.rnumlines_l[r]=1/i.numlines_l[r]:i.rnumlines_l[r]=0}i.s3_ll=xe(i.s3ind,i.npart_l,v,_,y,s);var A;x=0;for(r=0;r<i.npart_l;r++){R=a.MAX_VALUE;for(var E=0;E<i.numlines_l[r];E++,x++){var T=w*x/(1e3*h.BLKSIZE);O=this.ATHformula(1e3*T,n)-20,O=Math.pow(10,.1*O),O*=i.numlines_l[r],R>O&&(R=O)}i.ATH.cb_l[r]=R,R=20*v[r]/10-20,R>6&&(R=100),R<-15&&(R=-15),R-=8,i.minval_l[r]=Math.pow(10,R/10)*i.numlines_l[r]}for(i.npart_s=we(i.numlines_s,i.bo_s,i.bm_s,v,_,i.mld_s,i.PSY.bo_s_weight,w,h.BLKSIZE_s,i.scalefac_band.s,h.BLKSIZE_s/384,h.SBMAX_s),d(i.npart_s<h.CBANDS),x=0,r=0;r<i.npart_s;r++){var R;M=m;v[r]>=c&&(M=g*(v[r]-c)/(u-c)+m*(u-v[r])/(u-c)),y[r]=Math.pow(10,M/10),R=a.MAX_VALUE;for(E=0;E<i.numlines_s[r];E++,x++){var O;T=w*x/(1e3*h.BLKSIZE_s);O=this.ATHformula(1e3*T,n)-20,O=Math.pow(10,.1*O),O*=i.numlines_s[r],R>O&&(R=O)}i.ATH.cb_s[r]=R,R=7*v[r]/12-7,v[r]>12&&(R*=1+3.1*Math.log(1+R)),v[r]<12&&(R*=1+2.3*Math.log(1-R)),R<-15&&(R=-15),R-=8,i.minval_s[r]=Math.pow(10,R/10)*i.numlines_s[r]}i.s3_ss=xe(i.s3ind_s,i.npart_s,v,_,y,s),L(),e.init_fft(i),i.decay=Math.exp(-1*t/(b*w/192)),A=S,0!=(2&n.exp_nspsytune)&&(A=1),Math.abs(n.msfix)>0&&(A=n.msfix),n.msfix=A;for(var C=0;C<i.npart_l;C++)i.s3ind[C][1]>i.npart_l-1&&(i.s3ind[C][1]=i.npart_l-1);var j=576*i.mode_gr/w;if(i.ATH.decay=Math.pow(10,-1.2*j),i.ATH.adjust=.01,i.ATH.adjustLimit=1,d(i.bo_l[h.SBMAX_l-1]<=i.npart_l),d(i.bo_s[h.SBMAX_s-1]<=i.npart_s),-1!=n.ATHtype){var B=n.out_samplerate/h.BLKSIZE,I=0;for(T=0,r=0;r<h.BLKSIZE/2;++r)T+=B,i.ATH.eql_w[r]=1/Math.pow(10,this.ATHformula(T,n)/10),I+=i.ATH.eql_w[r];for(I=1/I,r=h.BLKSIZE/2;--r>=0;)i.ATH.eql_w[r]*=I}for(C=x=0;C<i.npart_s;++C)for(r=0;r<i.numlines_s[C];++r)++x;d(129==x);for(C=x=0;C<i.npart_l;++C)for(r=0;r<i.numlines_l[C];++r)++x;for(d(513==x),x=0,r=0;r<i.npart_l;r++){T=w*(x+i.numlines_l[r]/2)/(1*h.BLKSIZE);i.mld_cb_l[r]=Se(T),x+=i.numlines_l[r]}for(;r<h.CBANDS;++r)i.mld_cb_l[r]=1;for(x=0,r=0;r<i.npart_s;r++){T=w*(x+i.numlines_s[r]/2)/(1*h.BLKSIZE_s);i.mld_cb_s[r]=Se(T),x+=i.numlines_s[r]}for(;r<h.CBANDS;++r)i.mld_cb_s[r]=1;return 0},this.ATHformula=function(e,t){var n;switch(t.ATHtype){case 0:n=ke(e,9);break;case 1:n=ke(e,-1);break;case 2:n=ke(e,0);break;case 3:n=ke(e,1)+6;break;case 4:n=ke(e,t.ATHcurve);break;default:n=ke(e,0);break}return n}}e.exports=m},"254c":function(e,t,n){"use strict";function r(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object.create(e.prototype);for(var o in n)r[o]=n[o];return r.constructor=t,t.prototype=r,t}t.__esModule=!0,t.inherits=r},2695:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float,r.new_float_n,r.new_int),a=(r.new_int_n,r.assert,n("f3b5"));function i(){this.tt=[[null,null],[null,null]],this.main_data_begin=0,this.private_bits=0,this.resvDrain_pre=0,this.resvDrain_post=0,this.scfsi=[o(4),o(4)];for(var e=0;e<2;e++)for(var t=0;t<2;t++)this.tt[e][t]=new a}e.exports=i},"2ba4":function(e,t,n){var r=n("40d5"),o=Function.prototype,a=o.apply,i=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?i.bind(a):function(){return i.apply(a,arguments)})},"2d00":function(e,t,n){var r,o,a=n("da84"),i=n("342f"),s=a.process,c=a.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(r=u.split("."),o=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&i&&(r=i.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/),r&&(o=+r[1]))),e.exports=o},"2d78":function(e,t,n){"use strict";t.__esModule=!0,t.tokenize=t.test=t.scanner=t.parser=t.options=t.inherits=t.find=void 0;var r=n("254c"),o=n("316e"),a=u(o),i=n("b7fe"),s=u(i),c=n("4128"),l=u(c);function u(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var f=function(e){return l.run(s.run(e))},d=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=f(e),r=[],o=0;o<n.length;o++){var a=n[o];!a.isLink||t&&a.type!==t||r.push(a.toObject())}return r},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=f(e);return 1===n.length&&n[0].isLink&&(!t||n[0].type===t)};t.find=d,t.inherits=r.inherits,t.options=a,t.parser=l,t.scanner=s,t.test=p,t.tokenize=f},"2f21":function(e,t,n){var r=n("0206"),o=r.System,a=(r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays);r.new_array_n,r.new_byte,r.new_double,r.new_float,r.new_float_n,r.new_int,r.new_int_n,r.assert;function i(){var e=64.82,t=(i.YULE_ORDER,.95),n=(i.MAX_SAMP_FREQ,i.RMS_WINDOW_TIME_NUMERATOR),r=i.RMS_WINDOW_TIME_DENOMINATOR,s=(i.MAX_SAMPLES_PER_WINDOW,[[.038575994352,-3.84664617118067,-.02160367184185,7.81501653005538,-.00123395316851,-11.34170355132042,-9291677959e-14,13.05504219327545,-.01655260341619,-12.28759895145294,.02161526843274,9.4829380631979,-.02074045215285,-5.87257861775999,.00594298065125,2.75465861874613,.00306428023191,-.86984376593551,.00012025322027,.13919314567432,.00288463683916],[.0541865640643,-3.47845948550071,-.02911007808948,6.36317777566148,-.00848709379851,-8.54751527471874,-.00851165645469,9.4769360780128,-.00834990904936,-8.81498681370155,.02245293253339,6.85401540936998,-.02596338512915,-4.39470996079559,.01624864962975,2.19611684890774,-.00240879051584,-.75104302451432,.00674613682247,.13149317958808,-.00187763777362],[.15457299681924,-2.37898834973084,-.09331049056315,2.84868151156327,-.06247880153653,-2.64577170229825,.02163541888798,2.23697657451713,-.05588393329856,-1.67148153367602,.04781476674921,1.00595954808547,.00222312597743,-.45953458054983,.03174092540049,.16378164858596,-.01390589421898,-.05032077717131,.00651420667831,.0234789740702,-.00881362733839],[.30296907319327,-1.61273165137247,-.22613988682123,1.0797749225997,-.08587323730772,-.2565625775407,.03282930172664,-.1627671912044,-.00915702933434,-.22638893773906,-.02364141202522,.39120800788284,-.00584456039913,-.22138138954925,.06276101321749,.04500235387352,-828086748e-14,.02005851806501,.00205861885564,.00302439095741,-.02950134983287],[.33642304856132,-1.49858979367799,-.2557224142557,.87350271418188,-.11828570177555,.12205022308084,.11921148675203,-.80774944671438,-.07834489609479,.47854794562326,-.0046997791438,-.12453458140019,-.0058950022444,-.04067510197014,.05724228140351,.08333755284107,.00832043980773,-.04237348025746,-.0163538138454,.02977207319925,-.0176017656815],[.4491525660845,-.62820619233671,-.14351757464547,.29661783706366,-.22784394429749,-.372563729424,-.01419140100551,.00213767857124,.04078262797139,-.42029820170918,-.12398163381748,.22199650564824,.04097565135648,.00613424350682,.10478503600251,.06747620744683,-.01863887810927,.05784820375801,-.03193428438915,.03222754072173,.00541907748707],[.56619470757641,-1.04800335126349,-.75464456939302,.29156311971249,.1624213774223,-.26806001042947,.16744243493672,.00819999645858,-.18901604199609,.45054734505008,.3093178284183,-.33032403314006,-.27562961986224,.0673936833311,.00647310677246,-.04784254229033,.08647503780351,.01639907836189,-.0378898455484,.01807364323573,-.00588215443421],[.58100494960553,-.51035327095184,-.53174909058578,-.31863563325245,-.14289799034253,-.20256413484477,.17520704835522,.1472815413433,.02377945217615,.38952639978999,.15558449135573,-.23313271880868,-.25344790059353,-.05246019024463,.01628462406333,-.02505961724053,.06920467763959,.02442357316099,-.03721611395801,.01818801111503,-.00749618797172],[.53648789255105,-.2504987195602,-.42163034350696,-.43193942311114,-.00275953611929,-.03424681017675,.04267842219415,-.04678328784242,-.10214864179676,.26408300200955,.14590772289388,.15113130533216,-.02459864859345,-.17556493366449,-.11202315195388,-.18823009262115,-.04060034127,.05477720428674,.0478866554818,.0470440968812,-.02217936801134]]),c=[[.98621192462708,-1.97223372919527,-1.97242384925416,.97261396931306,.98621192462708],[.98500175787242,-1.96977855582618,-1.97000351574484,.9702284756635,.98500175787242],[.97938932735214,-1.95835380975398,-1.95877865470428,.95920349965459,.97938932735214],[.97531843204928,-1.95002759149878,-1.95063686409857,.95124613669835,.97531843204928],[.97316523498161,-1.94561023566527,-1.94633046996323,.94705070426118,.97316523498161],[.96454515552826,-1.92783286977036,-1.92909031105652,.93034775234268,.96454515552826],[.96009142950541,-1.91858953033784,-1.92018285901082,.92177618768381,.96009142950541],[.95856916599601,-1.9154210807478,-1.91713833199203,.91885558323625,.95856916599601],[.94597685600279,-1.88903307939452,-1.89195371200558,.89487434461664,.94597685600279]];function l(e,t,n,r,o,a){while(0!=o--)n[r]=1e-10+e[t+0]*a[0]-n[r-1]*a[1]+e[t-1]*a[2]-n[r-2]*a[3]+e[t-2]*a[4]-n[r-3]*a[5]+e[t-3]*a[6]-n[r-4]*a[7]+e[t-4]*a[8]-n[r-5]*a[9]+e[t-5]*a[10]-n[r-6]*a[11]+e[t-6]*a[12]-n[r-7]*a[13]+e[t-7]*a[14]-n[r-8]*a[15]+e[t-8]*a[16]-n[r-9]*a[17]+e[t-9]*a[18]-n[r-10]*a[19]+e[t-10]*a[20],++r,++t}function u(e,t,n,r,o,a){while(0!=o--)n[r]=e[t+0]*a[0]-n[r-1]*a[1]+e[t-1]*a[2]-n[r-2]*a[3]+e[t-2]*a[4],++r,++t}function f(e,t){for(var o=0;o<MAX_ORDER;o++)e.linprebuf[o]=e.lstepbuf[o]=e.loutbuf[o]=e.rinprebuf[o]=e.rstepbuf[o]=e.routbuf[o]=0;switch(0|t){case 48e3:e.reqindex=0;break;case 44100:e.reqindex=1;break;case 32e3:e.reqindex=2;break;case 24e3:e.reqindex=3;break;case 22050:e.reqindex=4;break;case 16e3:e.reqindex=5;break;case 12e3:e.reqindex=6;break;case 11025:e.reqindex=7;break;case 8e3:e.reqindex=8;break;default:return INIT_GAIN_ANALYSIS_ERROR}return e.sampleWindow=0|(t*n+r-1)/r,e.lsum=0,e.rsum=0,e.totsamp=0,a.ill(e.A,0),INIT_GAIN_ANALYSIS_OK}function d(e){return e*e}function p(n,r){var o,a=0;for(o=0;o<r;o++)a+=n[o];if(0==a)return GAIN_NOT_ENOUGH_SAMPLES;var s=0|Math.ceil(a*(1-t));for(o=r;o-- >0;)if((s-=n[o])<=0)break;return e-o/i.STEPS_per_dB}this.InitGainAnalysis=function(e,t){return f(e,t)!=INIT_GAIN_ANALYSIS_OK?INIT_GAIN_ANALYSIS_ERROR:(e.linpre=MAX_ORDER,e.rinpre=MAX_ORDER,e.lstep=MAX_ORDER,e.rstep=MAX_ORDER,e.lout=MAX_ORDER,e.rout=MAX_ORDER,a.fill(e.B,0),INIT_GAIN_ANALYSIS_OK)},this.AnalyzeSamples=function(e,t,n,r,a,f,p){var h,m,g,v,_,b,y;if(0==f)return GAIN_ANALYSIS_OK;switch(y=0,_=f,p){case 1:r=t,a=n;break;case 2:break;default:return GAIN_ANALYSIS_ERROR}f<MAX_ORDER?(o.arraycopy(t,n,e.linprebuf,MAX_ORDER,f),o.arraycopy(r,a,e.rinprebuf,MAX_ORDER,f)):(o.arraycopy(t,n,e.linprebuf,MAX_ORDER,MAX_ORDER),o.arraycopy(r,a,e.rinprebuf,MAX_ORDER,MAX_ORDER));while(_>0){b=_>e.sampleWindow-e.totsamp?e.sampleWindow-e.totsamp:_,y<MAX_ORDER?(h=e.linpre+y,m=e.linprebuf,g=e.rinpre+y,v=e.rinprebuf,b>MAX_ORDER-y&&(b=MAX_ORDER-y)):(h=n+y,m=t,g=a+y,v=r),l(m,h,e.lstepbuf,e.lstep+e.totsamp,b,s[e.reqindex]),l(v,g,e.rstepbuf,e.rstep+e.totsamp,b,s[e.reqindex]),u(e.lstepbuf,e.lstep+e.totsamp,e.loutbuf,e.lout+e.totsamp,b,c[e.reqindex]),u(e.rstepbuf,e.rstep+e.totsamp,e.routbuf,e.rout+e.totsamp,b,c[e.reqindex]),h=e.lout+e.totsamp,m=e.loutbuf,g=e.rout+e.totsamp,v=e.routbuf;var w=b%8;while(0!=w--)e.lsum+=d(m[h++]),e.rsum+=d(v[g++]);w=b/8;while(0!=w--)e.lsum+=d(m[h+0])+d(m[h+1])+d(m[h+2])+d(m[h+3])+d(m[h+4])+d(m[h+5])+d(m[h+6])+d(m[h+7]),h+=8,e.rsum+=d(v[g+0])+d(v[g+1])+d(v[g+2])+d(v[g+3])+d(v[g+4])+d(v[g+5])+d(v[g+6])+d(v[g+7]),g+=8;if(_-=b,y+=b,e.totsamp+=b,e.totsamp==e.sampleWindow){var x=10*i.STEPS_per_dB*Math.log10((e.lsum+e.rsum)/e.totsamp*.5+1e-37),S=x<=0?0:0|x;S>=e.A.length&&(S=e.A.length-1),e.A[S]++,e.lsum=e.rsum=0,o.arraycopy(e.loutbuf,e.totsamp,e.loutbuf,0,MAX_ORDER),o.arraycopy(e.routbuf,e.totsamp,e.routbuf,0,MAX_ORDER),o.arraycopy(e.lstepbuf,e.totsamp,e.lstepbuf,0,MAX_ORDER),o.arraycopy(e.rstepbuf,e.totsamp,e.rstepbuf,0,MAX_ORDER),e.totsamp=0}if(e.totsamp>e.sampleWindow)return GAIN_ANALYSIS_ERROR}return f<MAX_ORDER?(o.arraycopy(e.linprebuf,f,e.linprebuf,0,MAX_ORDER-f),o.arraycopy(e.rinprebuf,f,e.rinprebuf,0,MAX_ORDER-f),o.arraycopy(t,n,e.linprebuf,MAX_ORDER-f,f),o.arraycopy(r,a,e.rinprebuf,MAX_ORDER-f,f)):(o.arraycopy(t,n+f-MAX_ORDER,e.linprebuf,0,MAX_ORDER),o.arraycopy(r,a+f-MAX_ORDER,e.rinprebuf,0,MAX_ORDER)),GAIN_ANALYSIS_OK},this.GetTitleGain=function(e){for(var t=p(e.A,e.A.length),n=0;n<e.A.length;n++)e.B[n]+=e.A[n],e.A[n]=0;for(n=0;n<MAX_ORDER;n++)e.linprebuf[n]=e.lstepbuf[n]=e.loutbuf[n]=e.rinprebuf[n]=e.rstepbuf[n]=e.routbuf[n]=0;return e.totsamp=0,e.lsum=e.rsum=0,t}}i.STEPS_per_dB=100,i.MAX_dB=120,i.GAIN_NOT_ENOUGH_SAMPLES=-24601,i.GAIN_ANALYSIS_ERROR=0,i.GAIN_ANALYSIS_OK=1,i.INIT_GAIN_ANALYSIS_ERROR=0,i.INIT_GAIN_ANALYSIS_OK=1,i.YULE_ORDER=10,i.MAX_ORDER=i.YULE_ORDER,i.MAX_SAMP_FREQ=48e3,i.RMS_WINDOW_TIME_NUMERATOR=1,i.RMS_WINDOW_TIME_DENOMINATOR=20,i.MAX_SAMPLES_PER_WINDOW=i.MAX_SAMP_FREQ*i.RMS_WINDOW_TIME_NUMERATOR/i.RMS_WINDOW_TIME_DENOMINATOR+1,e.exports=i},"316e":function(e,t,n){"use strict";t.__esModule=!0;var 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},o={defaultProtocol:"http",events:null,format:s,formatHref:s,nl2br:!1,tagName:"a",target:c,validate:!0,ignoreTags:[],attributes:null,className:"linkified"};function a(e){e=e||{},this.defaultProtocol=e.hasOwnProperty("defaultProtocol")?e.defaultProtocol:o.defaultProtocol,this.events=e.hasOwnProperty("events")?e.events:o.events,this.format=e.hasOwnProperty("format")?e.format:o.format,this.formatHref=e.hasOwnProperty("formatHref")?e.formatHref:o.formatHref,this.nl2br=e.hasOwnProperty("nl2br")?e.nl2br:o.nl2br,this.tagName=e.hasOwnProperty("tagName")?e.tagName:o.tagName,this.target=e.hasOwnProperty("target")?e.target:o.target,this.validate=e.hasOwnProperty("validate")?e.validate:o.validate,this.ignoreTags=[],this.attributes=e.attributes||e.linkAttributes||o.attributes,this.className=e.hasOwnProperty("className")?e.className:e.linkClass||o.className;for(var t=e.hasOwnProperty("ignoreTags")?e.ignoreTags:o.ignoreTags,n=0;n<t.length;n++)this.ignoreTags.push(t[n].toUpperCase())}function i(e,t){for(var n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function s(e){return e}function c(e,t){return"url"===t?"_blank":null}t.defaults=o,t.Options=a,t.contains=i,a.prototype={resolve:function(e){var t=e.toHref(this.defaultProtocol);return{formatted:this.get("format",e.toString(),e),formattedHref:this.get("formatHref",t,e),tagName:this.get("tagName",t,e),className:this.get("className",t,e),target:this.get("target",t,e),events:this.getObject("events",t,e),attributes:this.getObject("attributes",t,e)}},check:function(e){return this.get("validate",e.toString(),e)},get:function(e,t,n){var a=void 0,i=this[e];if(!i)return i;switch("undefined"===typeof i?"undefined":r(i)){case"function":return i(t,n.type);case"object":return a=i.hasOwnProperty(n.type)?i[n.type]:o[e],"function"===typeof a?a(t,n.type):a}return i},getObject:function(e,t,n){var r=this[e];return"function"===typeof r?r(t,n.type):r}}},"342f":function(e,t,n){var r=n("d066");e.exports=r("navigator","userAgent")||""},"37e8":function(e,t,n){var r=n("83ab"),o=n("aed9"),a=n("9bf2"),i=n("825a"),s=n("fc6a"),c=n("df75");t.f=r&&!o?Object.defineProperties:function(e,t){i(e);var n,r=s(t),o=c(t),l=o.length,u=0;while(l>u)a.f(e,n=o[u++],r[n]);return e}},3967:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode);r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float,r.new_float_n,r.new_int,r.new_int_n,r.assert;function a(){function e(e,t,n,r,o,a,i,s,c,l,u,f,d,p,h){this.vbr_q=e,this.quant_comp=t,this.quant_comp_s=n,this.expY=r,this.st_lrm=o,this.st_s=a,this.masking_adj=i,this.masking_adj_short=s,this.ath_lower=c,this.ath_curve=l,this.ath_sensitivity=u,this.interch=f,this.safejoint=d,this.sfb21mod=p,this.msfix=h}function t(e,t,n,r,o,a,i,s,c,l,u,f,d,p){this.quant_comp=t,this.quant_comp_s=n,this.safejoint=r,this.nsmsfix=o,this.st_lrm=a,this.st_s=i,this.nsbass=s,this.scale=c,this.masking_adj=l,this.ath_lower=u,this.ath_curve=f,this.interch=d,this.sfscale=p}var n;this.setModules=function(e){n=e};var r=[new e(0,9,9,0,5.2,125,-4.2,-6.3,4.8,1,0,0,2,21,.97),new e(1,9,9,0,5.3,125,-3.6,-5.6,4.5,1.5,0,0,2,21,1.35),new e(2,9,9,0,5.6,125,-2.2,-3.5,2.8,2,0,0,2,21,1.49),new e(3,9,9,1,5.8,130,-1.8,-2.8,2.6,3,-4,0,2,20,1.64),new e(4,9,9,1,6,135,-.7,-1.1,1.1,3.5,-8,0,2,0,1.79),new e(5,9,9,1,6.4,140,.5,.4,-7.5,4,-12,2e-4,0,0,1.95),new e(6,9,9,1,6.6,145,.67,.65,-14.7,6.5,-19,4e-4,0,0,2.3),new e(7,9,9,1,6.6,145,.8,.75,-19.7,8,-22,6e-4,0,0,2.7),new e(8,9,9,1,6.6,145,1.2,1.15,-27.5,10,-23,7e-4,0,0,0),new e(9,9,9,1,6.6,145,1.6,1.6,-36,11,-25,8e-4,0,0,0),new e(10,9,9,1,6.6,145,2,2,-36,12,-25,8e-4,0,0,0)],a=[new e(0,9,9,0,4.2,25,-7,-4,7.5,1,0,0,2,26,.97),new e(1,9,9,0,4.2,25,-5.6,-3.6,4.5,1.5,0,0,2,21,1.35),new e(2,9,9,0,4.2,25,-4.4,-1.8,2,2,0,0,2,18,1.49),new e(3,9,9,1,4.2,25,-3.4,-1.25,1.1,3,-4,0,2,15,1.64),new e(4,9,9,1,4.2,25,-2.2,.1,0,3.5,-8,0,2,0,1.79),new e(5,9,9,1,4.2,25,-1,1.65,-7.7,4,-12,2e-4,0,0,1.95),new e(6,9,9,1,4.2,25,-0,2.47,-7.7,6.5,-19,4e-4,0,0,2),new e(7,9,9,1,4.2,25,.5,2,-14.5,8,-22,6e-4,0,0,2),new e(8,9,9,1,4.2,25,1,2.4,-22,10,-23,7e-4,0,0,2),new e(9,9,9,1,4.2,25,1.5,2.95,-30,11,-25,8e-4,0,0,2),new e(10,9,9,1,4.2,25,2,2.95,-36,12,-30,8e-4,0,0,2)];function i(e,t,n){var i=e.VBR==o.vbr_rh?r:a,s=e.VBR_q_frac,c=i[t],u=i[t+1],f=c;c.st_lrm=c.st_lrm+s*(u.st_lrm-c.st_lrm),c.st_s=c.st_s+s*(u.st_s-c.st_s),c.masking_adj=c.masking_adj+s*(u.masking_adj-c.masking_adj),c.masking_adj_short=c.masking_adj_short+s*(u.masking_adj_short-c.masking_adj_short),c.ath_lower=c.ath_lower+s*(u.ath_lower-c.ath_lower),c.ath_curve=c.ath_curve+s*(u.ath_curve-c.ath_curve),c.ath_sensitivity=c.ath_sensitivity+s*(u.ath_sensitivity-c.ath_sensitivity),c.interch=c.interch+s*(u.interch-c.interch),c.msfix=c.msfix+s*(u.msfix-c.msfix),l(e,f.vbr_q),0!=n?e.quant_comp=f.quant_comp:Math.abs(e.quant_comp- -1)>0||(e.quant_comp=f.quant_comp),0!=n?e.quant_comp_short=f.quant_comp_s:Math.abs(e.quant_comp_short- -1)>0||(e.quant_comp_short=f.quant_comp_s),0!=f.expY&&(e.experimentalY=0!=f.expY),0!=n?e.internal_flags.nsPsy.attackthre=f.st_lrm:Math.abs(e.internal_flags.nsPsy.attackthre- -1)>0||(e.internal_flags.nsPsy.attackthre=f.st_lrm),0!=n?e.internal_flags.nsPsy.attackthre_s=f.st_s:Math.abs(e.internal_flags.nsPsy.attackthre_s- -1)>0||(e.internal_flags.nsPsy.attackthre_s=f.st_s),0!=n?e.maskingadjust=f.masking_adj:Math.abs(e.maskingadjust-0)>0||(e.maskingadjust=f.masking_adj),0!=n?e.maskingadjust_short=f.masking_adj_short:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=f.masking_adj_short),0!=n?e.ATHlower=-f.ath_lower/10:Math.abs(10*-e.ATHlower-0)>0||(e.ATHlower=-f.ath_lower/10),0!=n?e.ATHcurve=f.ath_curve:Math.abs(e.ATHcurve- -1)>0||(e.ATHcurve=f.ath_curve),0!=n?e.athaa_sensitivity=f.ath_sensitivity:Math.abs(e.athaa_sensitivity- -1)>0||(e.athaa_sensitivity=f.ath_sensitivity),f.interch>0&&(0!=n?e.interChRatio=f.interch:Math.abs(e.interChRatio- -1)>0||(e.interChRatio=f.interch)),f.safejoint>0&&(e.exp_nspsytune=e.exp_nspsytune|f.safejoint),f.sfb21mod>0&&(e.exp_nspsytune=e.exp_nspsytune|f.sfb21mod<<20),0!=n?e.msfix=f.msfix:Math.abs(e.msfix- -1)>0||(e.msfix=f.msfix),0==n&&(e.VBR_q=t,e.VBR_q_frac=s)}var s=[new t(8,9,9,0,0,6.6,145,0,.95,0,-30,11,.0012,1),new t(16,9,9,0,0,6.6,145,0,.95,0,-25,11,.001,1),new t(24,9,9,0,0,6.6,145,0,.95,0,-20,11,.001,1),new t(32,9,9,0,0,6.6,145,0,.95,0,-15,11,.001,1),new t(40,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(48,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(56,9,9,0,0,6.6,145,0,.95,0,-6,11,8e-4,1),new t(64,9,9,0,0,6.6,145,0,.95,0,-2,11,8e-4,1),new t(80,9,9,0,0,6.6,145,0,.95,0,0,8,7e-4,1),new t(96,9,9,0,2.5,6.6,145,0,.95,0,1,5.5,6e-4,1),new t(112,9,9,0,2.25,6.6,145,0,.95,0,2,4.5,5e-4,1),new t(128,9,9,0,1.95,6.4,140,0,.95,0,3,4,2e-4,1),new t(160,9,9,1,1.79,6,135,0,.95,-2,5,3.5,0,1),new t(192,9,9,1,1.49,5.6,125,0,.97,-4,7,3,0,0),new t(224,9,9,1,1.25,5.2,125,0,.98,-6,9,2,0,0),new t(256,9,9,1,.97,5.2,125,0,1,-8,10,1,0,0),new t(320,9,9,1,.9,5.2,125,0,1,-10,12,0,0,0)];function c(e,t,r){var a=t,i=n.nearestBitrateFullIndex(t);if(e.VBR=o.vbr_abr,e.VBR_mean_bitrate_kbps=a,e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,320),e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.brate=e.VBR_mean_bitrate_kbps,e.VBR_mean_bitrate_kbps>320&&(e.disable_reservoir=!0),s[i].safejoint>0&&(e.exp_nspsytune=2|e.exp_nspsytune),s[i].sfscale>0&&(e.internal_flags.noise_shaping=2),Math.abs(s[i].nsbass)>0){var c=int(4*s[i].nsbass);c<0&&(c+=64),e.exp_nspsytune=e.exp_nspsytune|c<<2}return 0!=r?e.quant_comp=s[i].quant_comp:Math.abs(e.quant_comp- -1)>0||(e.quant_comp=s[i].quant_comp),0!=r?e.quant_comp_short=s[i].quant_comp_s:Math.abs(e.quant_comp_short- -1)>0||(e.quant_comp_short=s[i].quant_comp_s),0!=r?e.msfix=s[i].nsmsfix:Math.abs(e.msfix- -1)>0||(e.msfix=s[i].nsmsfix),0!=r?e.internal_flags.nsPsy.attackthre=s[i].st_lrm:Math.abs(e.internal_flags.nsPsy.attackthre- -1)>0||(e.internal_flags.nsPsy.attackthre=s[i].st_lrm),0!=r?e.internal_flags.nsPsy.attackthre_s=s[i].st_s:Math.abs(e.internal_flags.nsPsy.attackthre_s- -1)>0||(e.internal_flags.nsPsy.attackthre_s=s[i].st_s),0!=r?e.scale=s[i].scale:Math.abs(e.scale- -1)>0||(e.scale=s[i].scale),0!=r?e.maskingadjust=s[i].masking_adj:Math.abs(e.maskingadjust-0)>0||(e.maskingadjust=s[i].masking_adj),s[i].masking_adj>0?0!=r?e.maskingadjust_short=.9*s[i].masking_adj:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=.9*s[i].masking_adj):0!=r?e.maskingadjust_short=1.1*s[i].masking_adj:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=1.1*s[i].masking_adj),0!=r?e.ATHlower=-s[i].ath_lower/10:Math.abs(10*-e.ATHlower-0)>0||(e.ATHlower=-s[i].ath_lower/10),0!=r?e.ATHcurve=s[i].ath_curve:Math.abs(e.ATHcurve- -1)>0||(e.ATHcurve=s[i].ath_curve),0!=r?e.interChRatio=s[i].interch:Math.abs(e.interChRatio- -1)>0||(e.interChRatio=s[i].interch),t}function l(e,t){var n=0;return 0>t&&(n=-1,t=0),9<t&&(n=-1,t=9),e.VBR_q=t,e.VBR_q_frac=0,n}this.apply_preset=function(e,t,n){switch(t){case Lame.R3MIX:t=Lame.V3,e.VBR=o.vbr_mtrh;break;case Lame.MEDIUM:t=Lame.V4,e.VBR=o.vbr_rh;break;case Lame.MEDIUM_FAST:t=Lame.V4,e.VBR=o.vbr_mtrh;break;case Lame.STANDARD:t=Lame.V2,e.VBR=o.vbr_rh;break;case Lame.STANDARD_FAST:t=Lame.V2,e.VBR=o.vbr_mtrh;break;case Lame.EXTREME:t=Lame.V0,e.VBR=o.vbr_rh;break;case Lame.EXTREME_FAST:t=Lame.V0,e.VBR=o.vbr_mtrh;break;case Lame.INSANE:return t=320,e.preset=t,c(e,t,n),e.VBR=o.vbr_off,t}switch(e.preset=t,t){case Lame.V9:return i(e,9,n),t;case Lame.V8:return i(e,8,n),t;case Lame.V7:return i(e,7,n),t;case Lame.V6:return i(e,6,n),t;case Lame.V5:return i(e,5,n),t;case Lame.V4:return i(e,4,n),t;case Lame.V3:return i(e,3,n),t;case Lame.V2:return i(e,2,n),t;case Lame.V1:return i(e,1,n),t;case Lame.V0:return i(e,0,n),t;default:break}return 8<=t&&t<=320?c(e,t,n):(e.preset=0,t)}}e.exports=a},"3a9b":function(e,t,n){var r=n("e330");e.exports=r({}.isPrototypeOf)},"3bbe":function(e,t,n){var r=n("1626"),o=String,a=TypeError;e.exports=function(e){if("object"==typeof e||r(e))return e;throw a("Can't set "+o(e)+" as a prototype")}},"3c5d":function(e,t,n){"use strict";var r=n("da84"),o=n("c65b"),a=n("ebb5"),i=n("07fa"),s=n("182d"),c=n("7b0b"),l=n("d039"),u=r.RangeError,f=r.Int8Array,d=f&&f.prototype,p=d&&d.set,h=a.aTypedArray,m=a.exportTypedArrayMethod,g=!l((function(){var e=new Uint8ClampedArray(2);return o(p,e,{length:1,0:3},1),3!==e[1]})),v=g&&a.NATIVE_ARRAY_BUFFER_VIEWS&&l((function(){var e=new f(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));m("set",(function(e){h(this);var t=s(arguments.length>1?arguments[1]:void 0,1),n=c(e);if(g)return o(p,this,n,t);var r=this.length,a=i(n),l=0;if(a+t>r)throw u("Wrong length");while(l<a)this[t+l]=n[l++]}),!g||v)},"3f8c":function(e,t){e.exports={}},"40d5":function(e,t,n){var r=n("d039");e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},4128:function(e,t,n){"use strict";t.__esModule=!0,t.start=t.run=t.TOKENS=t.State=void 0;var r=n("1652"),o=n("bea1"),a=s(o),i=n("7656");function s(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var c=function(e){return new r.TokenState(e)},l=c(),u=c(),f=c(),d=c(),p=c(),h=c(),m=c(),g=c(o.URL),v=c(),_=c(o.URL),b=c(o.URL),y=c(),w=c(),x=c(),S=c(),k=c(),M=c(o.URL),A=c(o.URL),E=c(o.URL),T=c(o.URL),R=c(),O=c(),C=c(),j=c(),B=c(),I=c(),P=c(o.EMAIL),L=c(),N=c(o.EMAIL),D=c(o.MAILTOEMAIL),F=c(),H=c(),U=c(),$=c(),q=c(o.NL);l.on(i.NL,q).on(i.PROTOCOL,u).on(i.MAILTO,f).on(i.SLASH,d),u.on(i.SLASH,d),d.on(i.SLASH,p),l.on(i.TLD,h).on(i.DOMAIN,h).on(i.LOCALHOST,g).on(i.NUM,h),p.on(i.TLD,b).on(i.DOMAIN,b).on(i.NUM,b).on(i.LOCALHOST,b),h.on(i.DOT,m),B.on(i.DOT,I),m.on(i.TLD,g).on(i.DOMAIN,h).on(i.NUM,h).on(i.LOCALHOST,h),I.on(i.TLD,P).on(i.DOMAIN,B).on(i.NUM,B).on(i.LOCALHOST,B),g.on(i.DOT,m),P.on(i.DOT,I),g.on(i.COLON,v).on(i.SLASH,b),v.on(i.NUM,_),_.on(i.SLASH,b),P.on(i.COLON,L),L.on(i.NUM,N);var V=[i.DOMAIN,i.AT,i.LOCALHOST,i.NUM,i.PLUS,i.POUND,i.PROTOCOL,i.SLASH,i.TLD,i.UNDERSCORE,i.SYM,i.AMPERSAND],z=[i.COLON,i.DOT,i.QUERY,i.PUNCTUATION,i.CLOSEBRACE,i.CLOSEBRACKET,i.CLOSEANGLEBRACKET,i.CLOSEPAREN,i.OPENBRACE,i.OPENBRACKET,i.OPENANGLEBRACKET,i.OPENPAREN];b.on(i.OPENBRACE,w).on(i.OPENBRACKET,x).on(i.OPENANGLEBRACKET,S).on(i.OPENPAREN,k),y.on(i.OPENBRACE,w).on(i.OPENBRACKET,x).on(i.OPENANGLEBRACKET,S).on(i.OPENPAREN,k),w.on(i.CLOSEBRACE,b),x.on(i.CLOSEBRACKET,b),S.on(i.CLOSEANGLEBRACKET,b),k.on(i.CLOSEPAREN,b),M.on(i.CLOSEBRACE,b),A.on(i.CLOSEBRACKET,b),E.on(i.CLOSEANGLEBRACKET,b),T.on(i.CLOSEPAREN,b),R.on(i.CLOSEBRACE,b),O.on(i.CLOSEBRACKET,b),C.on(i.CLOSEANGLEBRACKET,b),j.on(i.CLOSEPAREN,b),w.on(V,M),x.on(V,A),S.on(V,E),k.on(V,T),w.on(z,R),x.on(z,O),S.on(z,C),k.on(z,j),M.on(V,M),A.on(V,A),E.on(V,E),T.on(V,T),M.on(z,M),A.on(z,A),E.on(z,E),T.on(z,T),R.on(V,M),O.on(V,A),C.on(V,E),j.on(V,T),R.on(z,R),O.on(z,O),C.on(z,C),j.on(z,j),b.on(V,b),y.on(V,b),b.on(z,y),y.on(z,y),f.on(i.TLD,D).on(i.DOMAIN,D).on(i.NUM,D).on(i.LOCALHOST,D),D.on(V,D).on(z,F),F.on(V,D).on(z,F);var X=[i.DOMAIN,i.NUM,i.PLUS,i.POUND,i.QUERY,i.UNDERSCORE,i.SYM,i.AMPERSAND,i.TLD];h.on(X,H).on(i.AT,U),g.on(X,H).on(i.AT,U),m.on(X,H),H.on(X,H).on(i.AT,U).on(i.DOT,$),$.on(X,H),U.on(i.TLD,B).on(i.DOMAIN,B).on(i.LOCALHOST,P);var Y=function(e){var t=e.length,n=0,r=[],a=[];while(n<t){var i=l,s=null,c=null,u=0,f=null,d=-1;while(n<t&&!(s=i.next(e[n])))a.push(e[n++]);while(n<t&&(c=s||i.next(e[n])))s=null,i=c,i.accepts()?(d=0,f=i):d>=0&&d++,n++,u++;if(d<0)for(var p=n-u;p<n;p++)a.push(e[p]);else{a.length>0&&(r.push(new o.TEXT(a)),a=[]),n-=d,u-=d;var h=f.emit();r.push(new h(e.slice(n-u,n)))}}return a.length>0&&r.push(new o.TEXT(a)),r};t.State=r.TokenState,t.TOKENS=a,t.run=Y,t.start=l},"42ca":function(e,t,n){"use strict";n("cc2b")},"44ad":function(e,t,n){var r=n("e330"),o=n("d039"),a=n("c6b6"),i=Object,s=r("".split);e.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?s(e,""):i(e)}:i},"44e7":function(e,t,n){var r=n("861d"),o=n("c6b6"),a=n("b622"),i=a("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},"46f3":function(e,t,n){"use strict";function r(){return function(e){e&&(this.v=e)}}t.__esModule=!0,t.createTokenClass=r},4840:function(e,t,n){var r=n("825a"),o=n("5087"),a=n("7234"),i=n("b622"),s=i("species");e.exports=function(e,t){var n,i=r(e).constructor;return void 0===i||a(n=r(i)[s])?t:o(n)}},"485a":function(e,t,n){var r=n("c65b"),o=n("1626"),a=n("861d"),i=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&o(n=e.toString)&&!a(s=r(n,e)))return s;if(o(n=e.valueOf)&&!a(s=r(n,e)))return s;if("string"!==t&&o(n=e.toString)&&!a(s=r(n,e)))return s;throw i("Can't convert object to primitive value")}},"4a65":function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),a=(r.new_float_n,r.new_int),i=(r.new_int_n,r.assert),s=n("f052"),c=n("4b5e"),l=n("9828"),u=n("bd8b");function f(e){var t=e;this.quantize=t,this.iteration_loop=function(e,t,n,r){var f,d=e.internal_flags,p=o(l.SFBMAX),h=o(576),m=a(2),g=0,v=d.l3_side,_=new s(g);this.quantize.rv.ResvFrameBegin(e,_),g=_.bits;for(var b=0;b<d.mode_gr;b++){f=this.quantize.qupvt.on_pe(e,t,m,g,b,b),d.mode_ext==c.MPG_MD_MS_LR&&(this.quantize.ms_convert(d.l3_side,b),this.quantize.qupvt.reduce_side(m,n[b],g,f));for(var y=0;y<d.channels_out;y++){var w,x,S=v.tt[b][y];S.block_type!=c.SHORT_TYPE?(w=0,x=d.PSY.mask_adjust-w):(w=0,x=d.PSY.mask_adjust_short-w),d.masking_lower=Math.pow(10,.1*x),this.quantize.init_outer_loop(d,S),this.quantize.init_xrpow(d,S,h)&&(this.quantize.qupvt.calc_xmin(e,r[b][y],S,p),this.quantize.outer_loop(e,S,p,h,y,m[y])),this.quantize.iteration_finish_one(d,b,y),i(S.part2_3_length<=u.MAX_BITS_PER_CHANNEL),i(S.part2_3_length<=m[y])}}this.quantize.rv.ResvFrameEnd(d,g)}}e.exports=f},"4b11":function(e,t){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},"4b5e":function(e,t,n){var r=n("0206"),o=r.System,a=r.VbrMode,i=(r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n),s=(r.new_byte,r.new_double,r.new_float),c=r.new_float_n,l=r.new_int,u=(r.new_int_n,r.assert);function f(){var e=n("f3e2"),t=n("f26d"),r=f.FFTOFFSET,d=f.MPG_MD_MS_LR,p=null;this.psy=null;var h=null,m=null,g=null;this.setModules=function(e,t,n,r){p=e,this.psy=t,h=t,m=r,g=n};var v=new e;function _(e){var t,n;if(0!=e.ATH.useAdjust)if(n=e.loudness_sq[0][0],t=e.loudness_sq[1][0],2==e.channels_out?(n+=e.loudness_sq[0][1],t+=e.loudness_sq[1][1]):(n+=n,t+=t),2==e.mode_gr&&(n=Math.max(n,t)),n*=.5,n*=e.ATH.aaSensitivityP,n>.03125)e.ATH.adjust>=1?e.ATH.adjust=1:e.ATH.adjust<e.ATH.adjustLimit&&(e.ATH.adjust=e.ATH.adjustLimit),e.ATH.adjustLimit=1;else{var r=31.98*n+625e-6;e.ATH.adjust>=r?(e.ATH.adjust*=.075*r+.925,e.ATH.adjust<r&&(e.ATH.adjust=r)):e.ATH.adjustLimit>=r?e.ATH.adjust=r:e.ATH.adjust<e.ATH.adjustLimit&&(e.ATH.adjust=e.ATH.adjustLimit),e.ATH.adjustLimit=r}else e.ATH.adjust=1}function b(e){var t,n;for(u(0<=e.bitrate_index&&e.bitrate_index<16),u(0<=e.mode_ext&&e.mode_ext<4),e.bitrate_stereoMode_Hist[e.bitrate_index][4]++,e.bitrate_stereoMode_Hist[15][4]++,2==e.channels_out&&(e.bitrate_stereoMode_Hist[e.bitrate_index][e.mode_ext]++,e.bitrate_stereoMode_Hist[15][e.mode_ext]++),t=0;t<e.mode_gr;++t)for(n=0;n<e.channels_out;++n){var r=0|e.l3_side.tt[t][n].block_type;0!=e.l3_side.tt[t][n].mixed_block_flag&&(r=4),e.bitrate_blockType_Hist[e.bitrate_index][r]++,e.bitrate_blockType_Hist[e.bitrate_index][5]++,e.bitrate_blockType_Hist[15][r]++,e.bitrate_blockType_Hist[15][5]++}}function y(e,t){var n,r,o=e.internal_flags;if(0==o.lame_encode_frame_init){var a,i,c=s(2014),l=s(2014);for(o.lame_encode_frame_init=1,a=0,i=0;a<286+576*(1+o.mode_gr);++a)a<576*o.mode_gr?(c[a]=0,2==o.channels_out&&(l[a]=0)):(c[a]=t[0][i],2==o.channels_out&&(l[a]=t[1][i]),++i);for(r=0;r<o.mode_gr;r++)for(n=0;n<o.channels_out;n++)o.l3_side.tt[r][n].block_type=f.SHORT_TYPE;v.mdct_sub48(o,c,l),u(576>=f.FFTOFFSET),u(o.mf_size>=f.BLKSIZE+e.framesize-f.FFTOFFSET),u(o.mf_size>=512+e.framesize-32)}}this.lame_encode_mp3_frame=function(e,n,s,u,w,x){var S,k=i([2,2]);k[0][0]=new t,k[0][1]=new t,k[1][0]=new t,k[1][1]=new t;var M,A=i([2,2]);A[0][0]=new t,A[0][1]=new t,A[1][0]=new t,A[1][1]=new t;var E,T,R,O=[null,null],C=e.internal_flags,j=c([2,4]),B=[.5,.5],I=[[0,0],[0,0]],P=[[0,0],[0,0]];if(O[0]=n,O[1]=s,0==C.lame_encode_frame_init&&y(e,O),C.padding=0,(C.slot_lag-=C.frac_SpF)<0&&(C.slot_lag+=e.out_samplerate,C.padding=1),0!=C.psymodel){var L,N=[null,null],D=0,F=l(2);for(R=0;R<C.mode_gr;R++){for(T=0;T<C.channels_out;T++)N[T]=O[T],D=576+576*R-f.FFTOFFSET;if(L=e.VBR==a.vbr_mtrh||e.VBR==a.vbr_mt?h.L3psycho_anal_vbr(e,N,D,R,k,A,I[R],P[R],j[R],F):h.L3psycho_anal_ns(e,N,D,R,k,A,I[R],P[R],j[R],F),0!=L)return-4;for(e.mode==MPEGMode.JOINT_STEREO&&(B[R]=j[R][2]+j[R][3],B[R]>0&&(B[R]=j[R][3]/B[R])),T=0;T<C.channels_out;T++){var H=C.l3_side.tt[R][T];H.block_type=F[T],H.mixed_block_flag=0}}}else for(R=0;R<C.mode_gr;R++)for(T=0;T<C.channels_out;T++)C.l3_side.tt[R][T].block_type=f.NORM_TYPE,C.l3_side.tt[R][T].mixed_block_flag=0,P[R][T]=I[R][T]=700;if(_(C),v.mdct_sub48(C,O[0],O[1]),C.mode_ext=f.MPG_MD_LR_LR,e.force_ms)C.mode_ext=f.MPG_MD_MS_LR;else if(e.mode==MPEGMode.JOINT_STEREO){var U=0,$=0;for(R=0;R<C.mode_gr;R++)for(T=0;T<C.channels_out;T++)U+=P[R][T],$+=I[R][T];if(U<=1*$){var q=C.l3_side.tt[0],V=C.l3_side.tt[C.mode_gr-1];q[0].block_type==q[1].block_type&&V[0].block_type==V[1].block_type&&(C.mode_ext=f.MPG_MD_MS_LR)}}if(C.mode_ext==d?(M=A,E=P):(M=k,E=I),e.analysis&&null!=C.pinfo)for(R=0;R<C.mode_gr;R++)for(T=0;T<C.channels_out;T++)C.pinfo.ms_ratio[R]=C.ms_ratio[R],C.pinfo.ms_ener_ratio[R]=B[R],C.pinfo.blocktype[R][T]=C.l3_side.tt[R][T].block_type,C.pinfo.pe[R][T]=E[R][T],o.arraycopy(C.l3_side.tt[R][T].xr,0,C.pinfo.xr[R][T],0,576),C.mode_ext==d&&(C.pinfo.ers[R][T]=C.pinfo.ers[R][T+2],o.arraycopy(C.pinfo.energy[R][T+2],0,C.pinfo.energy[R][T],0,C.pinfo.energy[R][T].length));if(e.VBR==a.vbr_off||e.VBR==a.vbr_abr){var z,X;for(z=0;z<18;z++)C.nsPsy.pefirbuf[z]=C.nsPsy.pefirbuf[z+1];for(X=0,R=0;R<C.mode_gr;R++)for(T=0;T<C.channels_out;T++)X+=E[R][T];for(C.nsPsy.pefirbuf[18]=X,X=C.nsPsy.pefirbuf[9],z=0;z<9;z++)X+=(C.nsPsy.pefirbuf[z]+C.nsPsy.pefirbuf[18-z])*f.fircoef[z];for(X=3350*C.mode_gr*C.channels_out/X,R=0;R<C.mode_gr;R++)for(T=0;T<C.channels_out;T++)E[R][T]*=X}if(C.iteration_loop.iteration_loop(e,E,B,M),p.format_bitstream(e),S=p.copy_buffer(C,u,w,x,1),e.bWriteVbrTag&&m.addVbrFrame(e),e.analysis&&null!=C.pinfo){for(T=0;T<C.channels_out;T++){var Y;for(Y=0;Y<r;Y++)C.pinfo.pcmdata[T][Y]=C.pinfo.pcmdata[T][Y+e.framesize];for(Y=r;Y<1600;Y++)C.pinfo.pcmdata[T][Y]=O[T][Y-r]}g.set_frame_pinfo(e,M)}return b(C),S}}f.ENCDELAY=576,f.POSTDELAY=1152,f.MDCTDELAY=48,f.FFTOFFSET=224+f.MDCTDELAY,f.DECDELAY=528,f.SBLIMIT=32,f.CBANDS=64,f.SBPSY_l=21,f.SBPSY_s=12,f.SBMAX_l=22,f.SBMAX_s=13,f.PSFB21=6,f.PSFB12=6,f.BLKSIZE=1024,f.HBLKSIZE=f.BLKSIZE/2+1,f.BLKSIZE_s=256,f.HBLKSIZE_s=f.BLKSIZE_s/2+1,f.NORM_TYPE=0,f.START_TYPE=1,f.SHORT_TYPE=2,f.STOP_TYPE=3,f.MPG_MD_LR_LR=0,f.MPG_MD_LR_I=1,f.MPG_MD_MS_LR=2,f.MPG_MD_MS_I=3,f.fircoef=[-.1039435,-.1892065,5*-.0432472,-.155915,3898045e-23,.0467745*5,.50455,.756825,.187098*5],e.exports=f},"4c1d":function(e,t,n){"use strict";n.r(t),n.d(t,"roomsValidation",(function(){return o})),n.d(t,"partcipantsValidation",(function(){return a})),n.d(t,"messagesValidation",(function(){return i}));var r=n("53ca");n("d9e2");function o(e){var t=[{key:"roomId",type:["string","number"]},{key:"roomName",type:["string"]},{key:"users",type:["array"]}],n=function(e,t){return t.every((function(t){var n=!1;return("array"===t.type[0]&&Array.isArray(e[t.key])||t.type.find((function(n){return n===Object(r["a"])(e[t.key])})))&&(n=!0),n&&s(e,t.key)}))};if(!n(e,t))throw new Error("Rooms object is not valid! Must contain roomId[String, Number], roomName[String] and users[Array]")}function a(e){var t=[{key:"_id",type:["string","number"]},{key:"username",type:["string"]}],n=function(e,t){return t.every((function(t){var n=t.type.find((function(n){return n===Object(r["a"])(e[t.key])}));return n&&s(e,t.key)}))};if(!n(e,t))throw new Error("Participants object is not valid! Must contain _id[String, Number] and username[String]")}function i(e){var t=[{key:"_id",type:["string","number"]},{key:"content",type:["string","number"]},{key:"senderId",type:["string","number"]}],n=function(e,t){return t.every((function(t){var n=t.type.find((function(n){return n===Object(r["a"])(e[t.key])}));return n&&s(e,t.key)}))};if(!n(e,t))throw new Error("Messages object is not valid! Must contain _id[String, Number], content[String, Number] and senderId[String, Number]")}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&null!==e[t]&&void 0!==e[t]}},"4d64":function(e,t,n){var r=n("fc6a"),o=n("23cb"),a=n("07fa"),i=function(e){return function(t,n,i){var s,c=r(t),l=a(c),u=o(i,l);if(e&&n!=n){while(l>u)if(s=c[u++],s!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},5087:function(e,t,n){var r=n("68ee"),o=n("0d51"),a=TypeError;e.exports=function(e){if(r(e))return e;throw a(o(e)+" is not a constructor")}},"50c4":function(e,t,n){var r=n("5926"),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},"53ca":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)}n.d(t,"a",(function(){return r}))},5692:function(e,t,n){var r=n("c430"),o=n("c6cd");(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.25.0",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.25.0/LICENSE",source:"https://github.com/zloirock/core-js"})},"56ef":function(e,t,n){var r=n("d066"),o=n("e330"),a=n("241c"),i=n("7418"),s=n("825a"),c=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=a.f(s(e)),n=i.f;return n?c(t,n(e)):t}},"577e":function(e,t,n){var r=n("f5df"),o=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return o(e)}},"58b1":function(e,t,n){var r=n("0206"),o=r.assert;function a(){var e;this.setModules=function(t){e=t},this.ResvFrameBegin=function(t,n){var r,a=t.internal_flags,i=a.l3_side,s=e.getframebits(t);n.bits=(s-8*a.sideinfo_len)/a.mode_gr;var c=2048*a.mode_gr-8;t.brate>320?r=8*int(1e3*t.brate/(t.out_samplerate/1152)/8+.5):(r=11520,t.strict_ISO&&(r=8*int(32e4/(t.out_samplerate/1152)/8+.5))),a.ResvMax=r-s,a.ResvMax>c&&(a.ResvMax=c),(a.ResvMax<0||t.disable_reservoir)&&(a.ResvMax=0);var l=n.bits*a.mode_gr+Math.min(a.ResvSize,a.ResvMax);return l>r&&(l=r),o(0==a.ResvMax%8),o(a.ResvMax>=0),i.resvDrain_pre=0,null!=a.pinfo&&(a.pinfo.mean_bits=n.bits/2,a.pinfo.resvsize=a.ResvSize),l},this.ResvMaxBits=function(e,t,n,r){var o,a=e.internal_flags,i=a.ResvSize,s=a.ResvMax;0!=r&&(i+=t),0!=(1&a.substep_shaping)&&(s*=.9),n.bits=t,10*i>9*s?(o=i-9*s/10,n.bits+=o,a.substep_shaping|=128):(o=0,a.substep_shaping&=127,e.disable_reservoir||0!=(1&a.substep_shaping)||(n.bits-=.1*t));var c=i<6*a.ResvMax/10?i:6*a.ResvMax/10;return c-=o,c<0&&(c=0),c},this.ResvAdjust=function(e,t){e.ResvSize-=t.part2_3_length+t.part2_length},this.ResvFrameEnd=function(e,t){var n,r=e.l3_side;e.ResvSize+=t*e.mode_gr;var a=0;r.resvDrain_post=0,r.resvDrain_pre=0,0!=(n=e.ResvSize%8)&&(a+=n),n=e.ResvSize-a-e.ResvMax,n>0&&(o(0==n%8),o(n>=0),a+=n);var i=Math.min(8*r.main_data_begin,a)/8;r.resvDrain_pre+=8*i,a-=8*i,e.ResvSize-=8*i,r.main_data_begin-=i,r.resvDrain_post+=a,e.ResvSize-=a}}e.exports=a},5926:function(e,t,n){var r=n("b42e");e.exports=function(e){var t=+e;return t!==t||0===t?0:r(t)}},"59ed":function(e,t,n){var r=n("1626"),o=n("0d51"),a=TypeError;e.exports=function(e){if(r(e))return e;throw a(o(e)+" is not a function")}},"5b81":function(e,t,n){"use strict";var r=n("23e7"),o=n("c65b"),a=n("e330"),i=n("1d80"),s=n("1626"),c=n("7234"),l=n("44e7"),u=n("577e"),f=n("dc4a"),d=n("90d8"),p=n("0cb2"),h=n("b622"),m=n("c430"),g=h("replace"),v=TypeError,_=a("".indexOf),b=a("".replace),y=a("".slice),w=Math.max,x=function(e,t,n){return n>e.length?-1:""===t?n:_(e,t,n)};r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,a,h,S,k,M,A,E,T=i(this),R=0,O=0,C="";if(!c(e)){if(n=l(e),n&&(r=u(i(d(e))),!~_(r,"g")))throw v("`.replaceAll` does not allow non-global regexes");if(a=f(e,g),a)return o(a,e,T,t);if(m&&n)return b(u(T),e,t)}h=u(T),S=u(e),k=s(t),k||(t=u(t)),M=S.length,A=w(1,M),R=x(h,S,0);while(-1!==R)E=k?u(t(S,R,h)):p(S,h,R,[],void 0,t),C+=y(h,O,R)+E,O=R+M,R=x(h,S,R+A);return O<h.length&&(C+=y(h,O)),C}})},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"5e77":function(e,t,n){var r=n("83ab"),o=n("1a2d"),a=Function.prototype,i=r&&Object.getOwnPropertyDescriptor,s=o(a,"name"),c=s&&"something"===function(){}.name,l=s&&(!r||r&&i(a,"name").configurable);e.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},"5f84":function(e,t){function n(e,t,n,r){this.xlen=e,this.linmax=t,this.table=n,this.hlen=r}var r={t1HB:[1,1,1,0],t2HB:[1,2,1,3,1,1,3,2,0],t3HB:[3,2,1,1,1,1,3,2,0],t5HB:[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],t6HB:[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],t7HB:[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],t8HB:[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],t9HB:[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],t10HB:[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34,46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],t11HB:[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],t12HB:[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],t13HB:[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19,3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51,36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],t15HB:[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,19,17,15,24,41,34,59,48,40,64,50,78,62,80,56,33,29,28,25,43,39,63,55,93,76,59,93,72,54,75,50,29,52,22,42,40,67,57,95,79,72,57,89,69,49,66,46,27,77,37,35,66,58,52,91,74,62,48,79,63,90,62,40,38,125,32,60,56,50,92,78,65,55,87,71,51,73,51,70,30,109,53,49,94,88,75,66,122,91,73,56,42,64,44,21,25,90,43,41,77,73,63,56,92,77,66,47,67,48,53,36,20,71,34,67,60,58,49,88,76,67,106,71,54,38,39,23,15,109,53,51,47,90,82,58,57,48,72,57,41,23,27,62,9,86,42,40,37,70,64,52,43,70,55,42,25,29,18,11,11,118,68,30,55,50,46,74,65,49,39,24,16,22,13,14,7,91,44,39,38,34,63,52,45,31,52,28,19,14,8,9,3,123,60,58,53,47,43,32,22,37,24,17,12,15,10,2,1,71,37,34,30,28,20,17,26,21,16,10,6,8,6,2,0],t16HB:[1,5,14,44,74,63,110,93,172,149,138,242,225,195,376,17,3,4,12,20,35,62,53,47,83,75,68,119,201,107,207,9,15,13,23,38,67,58,103,90,161,72,127,117,110,209,206,16,45,21,39,69,64,114,99,87,158,140,252,212,199,387,365,26,75,36,68,65,115,101,179,164,155,264,246,226,395,382,362,9,66,30,59,56,102,185,173,265,142,253,232,400,388,378,445,16,111,54,52,100,184,178,160,133,257,244,228,217,385,366,715,10,98,48,91,88,165,157,148,261,248,407,397,372,380,889,884,8,85,84,81,159,156,143,260,249,427,401,392,383,727,713,708,7,154,76,73,141,131,256,245,426,406,394,384,735,359,710,352,11,139,129,67,125,247,233,229,219,393,743,737,720,885,882,439,4,243,120,118,115,227,223,396,746,742,736,721,712,706,223,436,6,202,224,222,218,216,389,386,381,364,888,443,707,440,437,1728,4,747,211,210,208,370,379,734,723,714,1735,883,877,876,3459,865,2,377,369,102,187,726,722,358,711,709,866,1734,871,3458,870,434,0,12,10,7,11,10,17,11,9,13,12,10,7,5,3,1,3],t24HB:[15,13,46,80,146,262,248,434,426,669,653,649,621,517,1032,88,14,12,21,38,71,130,122,216,209,198,327,345,319,297,279,42,47,22,41,74,68,128,120,221,207,194,182,340,315,295,541,18,81,39,75,70,134,125,116,220,204,190,178,325,311,293,271,16,147,72,69,135,127,118,112,210,200,188,352,323,306,285,540,14,263,66,129,126,119,114,214,202,192,180,341,317,301,281,262,12,249,123,121,117,113,215,206,195,185,347,330,308,291,272,520,10,435,115,111,109,211,203,196,187,353,332,313,298,283,531,381,17,427,212,208,205,201,193,186,177,169,320,303,286,268,514,377,16,335,199,197,191,189,181,174,333,321,305,289,275,521,379,371,11,668,184,183,179,175,344,331,314,304,290,277,530,383,373,366,10,652,346,171,168,164,318,309,299,287,276,263,513,375,368,362,6,648,322,316,312,307,302,292,284,269,261,512,376,370,364,359,4,620,300,296,294,288,282,273,266,515,380,374,369,365,361,357,2,1033,280,278,274,267,264,259,382,378,372,367,363,360,358,356,0,43,20,19,17,15,13,11,9,7,6,4,7,5,3,1,3],t32HB:[1,10,8,20,12,20,16,32,14,12,24,0,28,16,24,16],t33HB:[15,28,26,48,22,40,36,64,14,24,20,32,12,16,8,0],t1l:[1,4,3,5],t2l:[1,4,7,4,5,7,6,7,8],t3l:[2,3,7,4,4,7,6,7,8],t5l:[1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10],t6l:[3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9],t7l:[1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12],t8l:[2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13],t9l:[3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11],t10l:[1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13],t11l:[2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12],t12l:[4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12],t13l:[1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18],t15l:[3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15],t16_5l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12],t16l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10],t24l:[4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6],t32l:[1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10],t33l:[4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]};r.ht=[new n(0,0,null,null),new n(2,0,r.t1HB,r.t1l),new n(3,0,r.t2HB,r.t2l),new n(3,0,r.t3HB,r.t3l),new n(0,0,null,null),new n(4,0,r.t5HB,r.t5l),new n(4,0,r.t6HB,r.t6l),new n(6,0,r.t7HB,r.t7l),new n(6,0,r.t8HB,r.t8l),new n(6,0,r.t9HB,r.t9l),new n(8,0,r.t10HB,r.t10l),new n(8,0,r.t11HB,r.t11l),new n(8,0,r.t12HB,r.t12l),new n(16,0,r.t13HB,r.t13l),new n(0,0,null,r.t16_5l),new n(16,0,r.t15HB,r.t15l),new n(1,1,r.t16HB,r.t16l),new n(2,3,r.t16HB,r.t16l),new n(3,7,r.t16HB,r.t16l),new n(4,15,r.t16HB,r.t16l),new n(6,63,r.t16HB,r.t16l),new n(8,255,r.t16HB,r.t16l),new n(10,1023,r.t16HB,r.t16l),new n(13,8191,r.t16HB,r.t16l),new n(4,15,r.t24HB,r.t24l),new n(5,31,r.t24HB,r.t24l),new n(6,63,r.t24HB,r.t24l),new n(7,127,r.t24HB,r.t24l),new n(8,255,r.t24HB,r.t24l),new n(9,511,r.t24HB,r.t24l),new n(11,2047,r.t24HB,r.t24l),new n(13,8191,r.t24HB,r.t24l),new n(0,0,r.t32HB,r.t32l),new n(0,0,r.t33HB,r.t33l)],r.largetbl=[65540,327685,458759,589832,655369,655370,720906,720907,786443,786444,786444,851980,851980,851980,917517,655370,262149,393222,524295,589832,655369,720906,720906,720907,786443,786443,786444,851980,917516,851980,917516,655370,458759,524295,589832,655369,720905,720906,786442,786443,851979,786443,851979,851980,851980,917516,917517,720905,589832,589832,655369,720905,720906,786442,786442,786443,851979,851979,917515,917516,917516,983052,983052,786441,655369,655369,720905,720906,786442,786442,851978,851979,851979,917515,917516,917516,983052,983052,983053,720905,655370,655369,720906,720906,786442,851978,851979,917515,851979,917515,917516,983052,983052,983052,1048588,786441,720906,720906,720906,786442,851978,851979,851979,851979,917515,917516,917516,917516,983052,983052,1048589,786441,720907,720906,786442,786442,851979,851979,851979,917515,917516,983052,983052,983052,983052,1114125,1114125,786442,720907,786443,786443,851979,851979,851979,917515,917515,983051,983052,983052,983052,1048588,1048589,1048589,786442,786443,786443,786443,851979,851979,917515,917515,983052,983052,983052,983052,1048588,983053,1048589,983053,851978,786444,851979,786443,851979,917515,917516,917516,917516,983052,1048588,1048588,1048589,1114125,1114125,1048589,786442,851980,851980,851979,851979,917515,917516,983052,1048588,1048588,1048588,1048588,1048589,1048589,983053,1048589,851978,851980,917516,917516,917516,917516,983052,983052,983052,983052,1114124,1048589,1048589,1048589,1048589,1179661,851978,983052,917516,917516,917516,983052,983052,1048588,1048588,1048589,1179661,1114125,1114125,1114125,1245197,1114125,851978,917517,983052,851980,917516,1048588,1048588,983052,1048589,1048589,1114125,1179661,1114125,1245197,1114125,1048589,851978,655369,655369,655369,720905,720905,786441,786441,786441,851977,851977,851977,851978,851978,851978,851978,655366],r.table23=[65538,262147,458759,262148,327684,458759,393222,458759,524296],r.table56=[65539,262148,458758,524296,262148,327684,524294,589831,458757,524294,589831,655368,524295,524295,589832,655369],r.bitrate_table=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],[0,8,16,24,32,40,48,56,64,-1,-1,-1,-1,-1,-1,-1]],r.samplerate_table=[[22050,24e3,16e3,-1],[44100,48e3,32e3,-1],[11025,12e3,8e3,-1]],r.scfsi_band=[0,6,11,16,21],e.exports=r},"605d":function(e,t,n){var r=n("c6b6"),o=n("da84");e.exports="process"==r(o.process)},6374:function(e,t,n){var r=n("da84"),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},6547:function(e,t,n){var r=n("e330"),o=n("5926"),a=n("577e"),i=n("1d80"),s=r("".charAt),c=r("".charCodeAt),l=r("".slice),u=function(e){return function(t,n){var r,u,f=a(i(t)),d=o(n),p=f.length;return d<0||d>=p?e?"":void 0:(r=c(f,d),r<55296||r>56319||d+1===p||(u=c(f,d+1))<56320||u>57343?e?s(f,d):r:e?l(f,d,d+2):u-56320+(r-55296<<10)+65536)}};e.exports={codeAt:u(!1),charAt:u(!0)}},"67b2":function(e,t){function n(e){var t=e;this.ordinal=function(){return t}}n.STEREO=new n(0),n.JOINT_STEREO=new n(1),n.DUAL_CHANNEL=new n(2),n.MONO=new n(3),n.NOT_SET=new n(4),e.exports=n},"68ee":function(e,t,n){var r=n("e330"),o=n("d039"),a=n("1626"),i=n("f5df"),s=n("d066"),c=n("8925"),l=function(){},u=[],f=s("Reflect","construct"),d=/^\s*(?:class|function)\b/,p=r(d.exec),h=!d.exec(l),m=function(e){if(!a(e))return!1;try{return f(l,u,e),!0}catch(t){return!1}},g=function(e){if(!a(e))return!1;switch(i(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!p(d,c(e))}catch(t){return!0}};g.sham=!0,e.exports=!f||o((function(){var e;return m(m.call)||!m(Object)||!m((function(){e=!0}))||e}))?g:m},"69b2":function(e,t,n){var r=n("0206"),o=r.System,a=(r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays),i=(r.new_array_n,r.new_byte),s=(r.new_double,r.new_float,r.new_float_n),c=r.new_int,l=(r.new_int_n,r.assert),u=n("d9be"),f=n("5f84"),d=n("4b5e"),p=n("bd8b");function h(){var e=this,t=32773,n=32,r=null,h=null,m=null,g=null;this.setModules=function(e,t,n,o){r=e,h=t,m=n,g=o};var v=null,_=0,b=0,y=0;function w(e){o.arraycopy(e.header[e.w_ptr].buf,0,v,b,e.sideinfo_len),b+=e.sideinfo_len,_+=8*e.sideinfo_len,e.w_ptr=e.w_ptr+1&p.MAX_HEADER_BUF-1}function x(e,t,r){l(r<n-2);while(r>0){var o;0==y&&(y=8,b++,l(b<Lame.LAME_MAXMP3BUFFER),l(e.header[e.w_ptr].write_timing>=_),e.header[e.w_ptr].write_timing==_&&w(e),v[b]=0),o=Math.min(r,y),r-=o,y-=o,l(r<n),l(y<n),v[b]|=t>>r<<y,_+=o}}function S(e,t,r){l(r<n-2);while(r>0){var o;0==y&&(y=8,b++,l(b<Lame.LAME_MAXMP3BUFFER),v[b]=0),o=Math.min(r,y),r-=o,y-=o,l(r<n),l(y<n),v[b]|=t>>r<<y,_+=o}}function k(e,t){var n,r=e.internal_flags;if(l(t>=0),t>=8&&(x(r,76,8),t-=8),t>=8&&(x(r,65,8),t-=8),t>=8&&(x(r,77,8),t-=8),t>=8&&(x(r,69,8),t-=8),t>=32){var o=m.getLameShortVersion();if(t>=32)for(n=0;n<o.length&&t>=8;++n)t-=8,x(r,o.charAt(n),8)}for(;t>=1;t-=1)x(r,r.ancillary_flag,1),r.ancillary_flag^=e.disable_reservoir?0:1;l(0==t)}function M(e,t,r){var o=e.header[e.h_ptr].ptr;while(r>0){var a=Math.min(r,8-(7&o));r-=a,l(r<n),e.header[e.h_ptr].buf[o>>3]|=t>>r<<8-(7&o)-a,o+=a}e.header[e.h_ptr].ptr=o}function A(e,n){e<<=8;for(var r=0;r<8;r++)e<<=1,n<<=1,0!=(65536&(n^e))&&(n^=t);return n}function E(e,t){var n,r,i,s=e.internal_flags;if(n=s.l3_side,s.header[s.h_ptr].ptr=0,a.fill(s.header[s.h_ptr].buf,0,s.sideinfo_len,0),e.out_samplerate<16e3?M(s,4094,12):M(s,4095,12),M(s,e.version,1),M(s,1,2),M(s,e.error_protection?0:1,1),M(s,s.bitrate_index,4),M(s,s.samplerate_index,2),M(s,s.padding,1),M(s,e.extension,1),M(s,e.mode.ordinal(),2),M(s,s.mode_ext,2),M(s,e.copyright,1),M(s,e.original,1),M(s,e.emphasis,2),e.error_protection&&M(s,0,16),1==e.version){for(l(n.main_data_begin>=0),M(s,n.main_data_begin,9),2==s.channels_out?M(s,n.private_bits,3):M(s,n.private_bits,5),i=0;i<s.channels_out;i++){var c;for(c=0;c<4;c++)M(s,n.scfsi[i][c],1)}for(r=0;r<2;r++)for(i=0;i<s.channels_out;i++){var u=n.tt[r][i];M(s,u.part2_3_length+u.part2_length,12),M(s,u.big_values/2,9),M(s,u.global_gain,8),M(s,u.scalefac_compress,4),u.block_type!=d.NORM_TYPE?(M(s,1,1),M(s,u.block_type,2),M(s,u.mixed_block_flag,1),14==u.table_select[0]&&(u.table_select[0]=16),M(s,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),M(s,u.table_select[1],5),M(s,u.subblock_gain[0],3),M(s,u.subblock_gain[1],3),M(s,u.subblock_gain[2],3)):(M(s,0,1),14==u.table_select[0]&&(u.table_select[0]=16),M(s,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),M(s,u.table_select[1],5),14==u.table_select[2]&&(u.table_select[2]=16),M(s,u.table_select[2],5),l(0<=u.region0_count&&u.region0_count<16),l(0<=u.region1_count&&u.region1_count<8),M(s,u.region0_count,4),M(s,u.region1_count,3)),M(s,u.preflag,1),M(s,u.scalefac_scale,1),M(s,u.count1table_select,1)}}else for(l(n.main_data_begin>=0),M(s,n.main_data_begin,8),M(s,n.private_bits,s.channels_out),r=0,i=0;i<s.channels_out;i++){u=n.tt[r][i];M(s,u.part2_3_length+u.part2_length,12),M(s,u.big_values/2,9),M(s,u.global_gain,8),M(s,u.scalefac_compress,9),u.block_type!=d.NORM_TYPE?(M(s,1,1),M(s,u.block_type,2),M(s,u.mixed_block_flag,1),14==u.table_select[0]&&(u.table_select[0]=16),M(s,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),M(s,u.table_select[1],5),M(s,u.subblock_gain[0],3),M(s,u.subblock_gain[1],3),M(s,u.subblock_gain[2],3)):(M(s,0,1),14==u.table_select[0]&&(u.table_select[0]=16),M(s,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),M(s,u.table_select[1],5),14==u.table_select[2]&&(u.table_select[2]=16),M(s,u.table_select[2],5),l(0<=u.region0_count&&u.region0_count<16),l(0<=u.region1_count&&u.region1_count<8),M(s,u.region0_count,4),M(s,u.region1_count,3)),M(s,u.scalefac_scale,1),M(s,u.count1table_select,1)}e.error_protection&&CRC_writeheader(s,s.header[s.h_ptr].buf);var f=s.h_ptr;l(s.header[f].ptr==8*s.sideinfo_len),s.h_ptr=f+1&p.MAX_HEADER_BUF-1,s.header[s.h_ptr].write_timing=s.header[f].write_timing+t,s.h_ptr==s.w_ptr&&o.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n")}function T(e,t){var n,r=f.ht[t.count1table_select+32],o=0,a=t.big_values,i=t.big_values;for(l(t.count1table_select<2),n=(t.count1-t.big_values)/4;n>0;--n){var s,c=0,u=0;s=t.l3_enc[a+0],0!=s&&(u+=8,t.xr[i+0]<0&&c++,l(s<=1)),s=t.l3_enc[a+1],0!=s&&(u+=4,c*=2,t.xr[i+1]<0&&c++,l(s<=1)),s=t.l3_enc[a+2],0!=s&&(u+=2,c*=2,t.xr[i+2]<0&&c++,l(s<=1)),s=t.l3_enc[a+3],0!=s&&(u++,c*=2,t.xr[i+3]<0&&c++,l(s<=1)),a+=4,i+=4,x(e,c+r.table[u],r.hlen[u]),o+=r.hlen[u]}return o}function R(e,t,r,o,a){var i=f.ht[t],s=0;if(l(t<32),0==t)return s;for(var c=r;c<o;c+=2){var u=0,d=0,p=i.xlen,h=i.xlen,m=0,g=a.l3_enc[c],v=a.l3_enc[c+1];if(0!=g&&(a.xr[c]<0&&m++,u--),t>15){if(g>14){var _=g-15;l(_<=i.linmax),m|=_<<1,d=p,g=15}if(v>14){var b=v-15;l(b<=i.linmax),m<<=p,m|=b,d+=p,v=15}h=16}0!=v&&(m<<=1,a.xr[c+1]<0&&m++,u--),l((g|v)<16),g=g*h+v,d-=u,u+=i.hlen[g],l(u<=n),l(d<=n),x(e,i.table[g],u),x(e,m,d),s+=u+d}return s}function O(e,t){var n=3*e.scalefac_band.s[3];n>t.big_values&&(n=t.big_values);var r=R(e,t.table_select[0],0,n,t);return r+=R(e,t.table_select[1],n,t.big_values,t),r}function C(e,t){var n,r,o,a;n=t.big_values,l(0<=n&&n<=576);var i=t.region0_count+1;return l(0<=i),l(i<e.scalefac_band.l.length),o=e.scalefac_band.l[i],i+=t.region1_count+1,l(0<=i),l(i<e.scalefac_band.l.length),a=e.scalefac_band.l[i],o>n&&(o=n),a>n&&(a=n),r=R(e,t.table_select[0],0,o,t),r+=R(e,t.table_select[1],o,a,t),r+=R(e,t.table_select[2],a,n,t),r}function j(e){var t,n,r,o,a=0,i=e.internal_flags,s=i.l3_side;if(1==e.version)for(t=0;t<2;t++)for(n=0;n<i.channels_out;n++){var c=s.tt[t][n],f=u.slen1_tab[c.scalefac_compress],p=u.slen2_tab[c.scalefac_compress];for(o=0,r=0;r<c.sfbdivide;r++)-1!=c.scalefac[r]&&(x(i,c.scalefac[r],f),o+=f);for(;r<c.sfbmax;r++)-1!=c.scalefac[r]&&(x(i,c.scalefac[r],p),o+=p);l(o==c.part2_length),c.block_type==d.SHORT_TYPE?o+=O(i,c):o+=C(i,c),o+=T(i,c),l(o==c.part2_3_length+c.part2_length),a+=o}else for(t=0,n=0;n<i.channels_out;n++){c=s.tt[t][n];var h,m,g=0;if(l(null!=c.sfb_partition_table),o=0,r=0,m=0,c.block_type==d.SHORT_TYPE){for(;m<4;m++){var v=c.sfb_partition_table[m]/3,_=c.slen[m];for(h=0;h<v;h++,r++)x(i,Math.max(c.scalefac[3*r+0],0),_),x(i,Math.max(c.scalefac[3*r+1],0),_),x(i,Math.max(c.scalefac[3*r+2],0),_),g+=3*_}o+=O(i,c)}else{for(;m<4;m++){v=c.sfb_partition_table[m],_=c.slen[m];for(h=0;h<v;h++,r++)x(i,Math.max(c.scalefac[r],0),_),g+=_}o+=C(i,c)}o+=T(i,c),l(o==c.part2_3_length),l(g==c.part2_length),a+=g+o}return a}function B(){this.total=0}function I(t,n){var r,a,i,s,c,l=t.internal_flags;return c=l.w_ptr,s=l.h_ptr-1,-1==s&&(s=p.MAX_HEADER_BUF-1),r=l.header[s].write_timing-_,n.total=r,r>=0&&(a=1+s-c,s<c&&(a=1+s-c+p.MAX_HEADER_BUF),r-=8*a*l.sideinfo_len),i=e.getframebits(t),r+=i,n.total+=i,n.total%8!=0?n.total=1+n.total/8:n.total=n.total/8,n.total+=b+1,r<0&&o.err.println("strange error flushing buffer ... \n"),r}this.getframebits=function(e){var t,n=e.internal_flags;t=0!=n.bitrate_index?f.bitrate_table[e.version][n.bitrate_index]:e.brate,l(8<=t&&t<=640);var r=0|72e3*(e.version+1)*t/e.out_samplerate+n.padding;return 8*r},this.CRC_writeheader=function(e,t){var n=65535;n=A(255&t[2],n),n=A(255&t[3],n);for(var r=6;r<e.sideinfo_len;r++)n=A(255&t[r],n);t[4]=byte(n>>8),t[5]=byte(255&n)},this.flush_bitstream=function(e){var t,n,o=e.internal_flags,a=o.h_ptr-1;if(-1==a&&(a=p.MAX_HEADER_BUF-1),t=o.l3_side,!((n=I(e,new B))<0)){if(k(e,n),l(o.header[a].write_timing+this.getframebits(e)==_),o.ResvSize=0,t.main_data_begin=0,o.findReplayGain){var i=r.GetTitleGain(o.rgdata);l(NEQ(i,GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES)),o.RadioGain=0|Math.floor(10*i+.5)}o.findPeakSample&&(o.noclipGainChange=0|Math.ceil(20*Math.log10(o.PeakSample/32767)*10),o.noclipGainChange>0&&(EQ(e.scale,1)||EQ(e.scale,0))?o.noclipScale=Math.floor(32767/o.PeakSample*100)/100:o.noclipScale=-1)}},this.add_dummy_byte=function(e,t,n){var r,o=e.internal_flags;while(n-- >0)for(S(o,t,8),r=0;r<p.MAX_HEADER_BUF;++r)o.header[r].write_timing+=8},this.format_bitstream=function(e){var t,n=e.internal_flags;t=n.l3_side;var r=this.getframebits(e);k(e,t.resvDrain_pre),E(e,r);var a=8*n.sideinfo_len;if(a+=j(e),k(e,t.resvDrain_post),a+=t.resvDrain_post,t.main_data_begin+=(r-a)/8,I(e,new B)!=n.ResvSize&&o.err.println("Internal buffer inconsistency. flushbits <> ResvSize"),8*t.main_data_begin!=n.ResvSize&&(o.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size:             %d \nresv drain (post)         %d \nresv drain (pre)          %d \nheader and sideinfo:      %d \ndata bits:                %d \ntotal bits:               %d (remainder: %d) \nbitsperframe:             %d \n",8*t.main_data_begin,n.ResvSize,t.resvDrain_post,t.resvDrain_pre,8*n.sideinfo_len,a-t.resvDrain_post-8*n.sideinfo_len,a,a%8,r),o.err.println("This is a fatal error.  It has several possible causes:"),o.err.println("90%%  LAME compiled with buggy version of gcc using advanced optimizations"),o.err.println(" 9%%  Your system is overclocked"),o.err.println(" 1%%  bug in LAME encoding library"),n.ResvSize=8*t.main_data_begin),l(_%8==0),_>1e9){var i;for(i=0;i<p.MAX_HEADER_BUF;++i)n.header[i].write_timing-=_;_=0}return 0},this.copy_buffer=function(e,t,n,a,i){var u=b+1;if(u<=0)return 0;if(0!=a&&u>a)return-1;if(o.arraycopy(v,0,t,n,u),b=-1,y=0,0!=i){var f=c(1);if(f[0]=e.nMusicCRC,g.updateMusicCRC(f,t,n,u),e.nMusicCRC=f[0],u>0&&(e.VBR_seek_table.nBytesWritten+=u),e.decode_on_the_fly){var d,p=s([2,1152]),m=u,_=-1;while(0!=_)if(_=h.hip_decode1_unclipped(e.hip,t,n,m,p[0],p[1]),m=0,-1==_&&(_=0),_>0){if(l(_<=1152),e.findPeakSample){for(d=0;d<_;d++)p[0][d]>e.PeakSample?e.PeakSample=p[0][d]:-p[0][d]>e.PeakSample&&(e.PeakSample=-p[0][d]);if(e.channels_out>1)for(d=0;d<_;d++)p[1][d]>e.PeakSample?e.PeakSample=p[1][d]:-p[1][d]>e.PeakSample&&(e.PeakSample=-p[1][d])}if(e.findReplayGain&&r.AnalyzeSamples(e.rgdata,p[0],0,p[1],0,_,e.channels_out)==GainAnalysis.GAIN_ANALYSIS_ERROR)return-6}}}return u},this.init_bit_stream_w=function(e){v=i(Lame.LAME_MAXMP3BUFFER),e.h_ptr=e.w_ptr=0,e.header[e.h_ptr].write_timing=0,b=-1,y=0,_=0}}h.EQ=function(e,t){return Math.abs(e)>Math.abs(t)?Math.abs(e-t)<=1e-6*Math.abs(e):Math.abs(e-t)<=1e-6*Math.abs(t)},h.NEQ=function(e,t){return!h.EQ(e,t)},e.exports=h},"69f3":function(e,t,n){var r,o,a,i=n("cdce"),s=n("da84"),c=n("e330"),l=n("861d"),u=n("9112"),f=n("1a2d"),d=n("c6cd"),p=n("f772"),h=n("d012"),m="Object already initialized",g=s.TypeError,v=s.WeakMap,_=function(e){return a(e)?o(e):r(e,{})},b=function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return n}};if(i||d.state){var y=d.state||(d.state=new v),w=c(y.get),x=c(y.has),S=c(y.set);r=function(e,t){if(x(y,e))throw g(m);return t.facade=e,S(y,e,t),t},o=function(e){return w(y,e)||{}},a=function(e){return x(y,e)}}else{var k=p("state");h[k]=!0,r=function(e,t){if(f(e,k))throw g(m);return t.facade=e,u(e,k,t),t},o=function(e){return f(e,k)?e[k]:{}},a=function(e){return f(e,k)}}e.exports={set:r,get:o,has:a,enforce:_,getterFor:b}},7156:function(e,t,n){var r=n("1626"),o=n("861d"),a=n("d2bb");e.exports=function(e,t,n){var i,s;return a&&r(i=t.constructor)&&i!==n&&o(s=i.prototype)&&s!==n.prototype&&a(e,s),e}},7234:function(e,t){e.exports=function(e){return null===e||void 0===e}},"725d":function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),a=(r.new_float_n,r.new_int),i=(r.new_int_n,r.assert,n("2f21"));function s(){this.linprebuf=o(2*i.MAX_ORDER),this.linpre=0,this.lstepbuf=o(i.MAX_SAMPLES_PER_WINDOW+i.MAX_ORDER),this.lstep=0,this.loutbuf=o(i.MAX_SAMPLES_PER_WINDOW+i.MAX_ORDER),this.lout=0,this.rinprebuf=o(2*i.MAX_ORDER),this.rinpre=0,this.rstepbuf=o(i.MAX_SAMPLES_PER_WINDOW+i.MAX_ORDER),this.rstep=0,this.routbuf=o(i.MAX_SAMPLES_PER_WINDOW+i.MAX_ORDER),this.rout=0,this.sampleWindow=0,this.totsamp=0,this.lsum=0,this.rsum=0,this.freqindex=0,this.first=0,this.A=a(0|i.STEPS_per_dB*i.MAX_dB),this.B=a(0|i.STEPS_per_dB*i.MAX_dB)}e.exports=s},7276:function(e,t){function n(){this.over_noise=0,this.tot_noise=0,this.max_noise=0,this.over_count=0,this.over_SSD=0,this.bits=0}e.exports=n},7418:function(e,t){t.f=Object.getOwnPropertySymbols},"74fe":function(e,t,n){e.exports=n("2d78")},7656:function(e,t,n){"use strict";t.__esModule=!0,t.AMPERSAND=t.CLOSEPAREN=t.CLOSEANGLEBRACKET=t.CLOSEBRACKET=t.CLOSEBRACE=t.OPENPAREN=t.OPENANGLEBRACKET=t.OPENBRACKET=t.OPENBRACE=t.WS=t.TLD=t.SYM=t.UNDERSCORE=t.SLASH=t.MAILTO=t.PROTOCOL=t.QUERY=t.POUND=t.PLUS=t.NUM=t.NL=t.LOCALHOST=t.PUNCTUATION=t.DOT=t.COLON=t.AT=t.DOMAIN=t.Base=void 0;var r=n("46f3"),o=n("254c"),a=(0,r.createTokenClass)();function i(e){var t=e?{v:e}:{};return(0,o.inherits)(a,(0,r.createTokenClass)(),t)}a.prototype={toString:function(){return this.v+""}};var s=i(),c=i("@"),l=i(":"),u=i("."),f=i(),d=i(),p=i("\n"),h=i(),m=i("+"),g=i("#"),v=i(),_=i("mailto:"),b=i("?"),y=i("/"),w=i("_"),x=i(),S=i(),k=i(),M=i("{"),A=i("["),E=i("<"),T=i("("),R=i("}"),O=i("]"),C=i(">"),j=i(")"),B=i("&");t.Base=a,t.DOMAIN=s,t.AT=c,t.COLON=l,t.DOT=u,t.PUNCTUATION=f,t.LOCALHOST=d,t.NL=p,t.NUM=h,t.PLUS=m,t.POUND=g,t.QUERY=b,t.PROTOCOL=v,t.MAILTO=_,t.SLASH=y,t.UNDERSCORE=w,t.SYM=x,t.TLD=S,t.WS=k,t.OPENBRACE=M,t.OPENBRACKET=A,t.OPENANGLEBRACKET=E,t.OPENPAREN=T,t.CLOSEBRACE=R,t.CLOSEBRACKET=O,t.CLOSEANGLEBRACKET=C,t.CLOSEPAREN=j,t.AMPERSAND=B},"77d9":function(e,t,n){n("1d02")},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,t,n){var r=n("1d80"),o=Object;e.exports=function(e){return o(r(e))}},"7c73":function(e,t,n){var r,o=n("825a"),a=n("37e8"),i=n("7839"),s=n("d012"),c=n("1be4"),l=n("cc12"),u=n("f772"),f=">",d="<",p="prototype",h="script",m=u("IE_PROTO"),g=function(){},v=function(e){return d+h+f+e+d+"/"+h+f},_=function(e){e.write(v("")),e.close();var t=e.parentWindow.Object;return e=null,t},b=function(){var e,t=l("iframe"),n="java"+h+":";return t.style.display="none",c.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(v("document.F=Object")),e.close(),e.F},y=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}y="undefined"!=typeof document?document.domain&&r?_(r):b():_(r);var e=i.length;while(e--)delete y[p][i[e]];return y()};s[m]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(g[p]=o(e),n=new g,g[p]=null,n[m]=e):n=y(),void 0===t?n:a.f(n,t)}},8100:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util),a=(r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),i=(r.new_float_n,r.new_int,r.new_int_n,r.assert,n("4b5e"));function s(){var e=a(i.BLKSIZE),t=a(i.BLKSIZE_s/2),n=[.9238795325112867,.3826834323650898,.9951847266721969,.0980171403295606,.9996988186962042,.02454122852291229,.9999811752826011,.006135884649154475];function r(e,t,r){var a,i,s,c=0;r<<=1;var l=t+r;a=4;do{var u,f,d,p,h,m,g;g=a>>1,p=a,h=a<<1,m=h+p,a=h<<1,i=t,s=i+g;do{S=e[i+0]-e[i+p],x=e[i+0]+e[i+p],E=e[i+h]-e[i+m],M=e[i+h]+e[i+m],e[i+h]=x-M,e[i+0]=x+M,e[i+m]=S-E,e[i+p]=S+E,S=e[s+0]-e[s+p],x=e[s+0]+e[s+p],E=o.SQRT2*e[s+m],M=o.SQRT2*e[s+h],e[s+h]=x-M,e[s+0]=x+M,e[s+m]=S-E,e[s+p]=S+E,s+=a,i+=a}while(i<l);for(f=n[c+0],u=n[c+1],d=1;d<g;d++){var v,_;v=1-2*u*u,_=2*u*f,i=t+d,s=t+p-d;do{var b,y,w,x,S,k,M,A,E,T;y=_*e[i+p]-v*e[s+p],b=v*e[i+p]+_*e[s+p],S=e[i+0]-b,x=e[i+0]+b,k=e[s+0]-y,w=e[s+0]+y,y=_*e[i+m]-v*e[s+m],b=v*e[i+m]+_*e[s+m],E=e[i+h]-b,M=e[i+h]+b,T=e[s+h]-y,A=e[s+h]+y,y=u*M-f*T,b=f*M+u*T,e[i+h]=x-b,e[i+0]=x+b,e[s+m]=k-y,e[s+p]=k+y,y=f*A-u*E,b=u*A+f*E,e[s+h]=w-b,e[s+0]=w+b,e[i+m]=S-y,e[i+p]=S+y,s+=a,i+=a}while(i<l);v=f,f=v*n[c+0]-u*n[c+1],u=v*n[c+1]+u*n[c+0]}c+=2}while(a<r)}var s=[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254];this.fft_short=function(e,n,o,a,c){for(var l=0;l<3;l++){var u=i.BLKSIZE_s/2,f=65535&192*(l+1),d=i.BLKSIZE_s/8-1;do{var p,h,m,g,v,_=255&s[d<<2];p=t[_]*a[o][c+_+f],v=t[127-_]*a[o][c+_+f+128],h=p-v,p+=v,m=t[_+64]*a[o][c+_+f+64],v=t[63-_]*a[o][c+_+f+192],g=m-v,m+=v,u-=4,n[l][u+0]=p+m,n[l][u+2]=p-m,n[l][u+1]=h+g,n[l][u+3]=h-g,p=t[_+1]*a[o][c+_+f+1],v=t[126-_]*a[o][c+_+f+129],h=p-v,p+=v,m=t[_+65]*a[o][c+_+f+65],v=t[62-_]*a[o][c+_+f+193],g=m-v,m+=v,n[l][u+i.BLKSIZE_s/2+0]=p+m,n[l][u+i.BLKSIZE_s/2+2]=p-m,n[l][u+i.BLKSIZE_s/2+1]=h+g,n[l][u+i.BLKSIZE_s/2+3]=h-g}while(--d>=0);r(n[l],u,i.BLKSIZE_s/2)}},this.fft_long=function(t,n,o,a,c){var l=i.BLKSIZE/8-1,u=i.BLKSIZE/2;do{var f,d,p,h,m,g=255&s[l];f=e[g]*a[o][c+g],m=e[g+512]*a[o][c+g+512],d=f-m,f+=m,p=e[g+256]*a[o][c+g+256],m=e[g+768]*a[o][c+g+768],h=p-m,p+=m,u-=4,n[u+0]=f+p,n[u+2]=f-p,n[u+1]=d+h,n[u+3]=d-h,f=e[g+1]*a[o][c+g+1],m=e[g+513]*a[o][c+g+513],d=f-m,f+=m,p=e[g+257]*a[o][c+g+257],m=e[g+769]*a[o][c+g+769],h=p-m,p+=m,n[u+i.BLKSIZE/2+0]=f+p,n[u+i.BLKSIZE/2+2]=f-p,n[u+i.BLKSIZE/2+1]=d+h,n[u+i.BLKSIZE/2+3]=d-h}while(--l>=0);r(n,u,i.BLKSIZE/2)},this.init_fft=function(n){for(var r=0;r<i.BLKSIZE;r++)e[r]=.42-.5*Math.cos(2*Math.PI*(r+.5)/i.BLKSIZE)+.08*Math.cos(4*Math.PI*(r+.5)/i.BLKSIZE);for(r=0;r<i.BLKSIZE_s/2;r++)t[r]=.5*(1-Math.cos(2*Math.PI*(r+.5)/i.BLKSIZE_s))}}e.exports=s},"825a":function(e,t,n){var r=n("861d"),o=String,a=TypeError;e.exports=function(e){if(r(e))return e;throw a(o(e)+" is not an object")}},"83ab":function(e,t,n){var r=n("d039");e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"861d":function(e,t,n){var r=n("1626"),o="object"==typeof document&&document.all,a="undefined"==typeof o&&void 0!==o;e.exports=a?function(e){return"object"==typeof e?null!==e:r(e)||e===o}:function(e){return"object"==typeof e?null!==e:r(e)}},"874e":function(e,t,n){"use strict";(function(e){var t=n("da58");function r(){}function o(e){return e()}function a(){return Object.create(null)}function i(e){e.forEach(o)}function s(e){return"function"===typeof e}function c(e,t){return e!=e?t==t:e!==t||e&&"object"===typeof e||"function"===typeof e}let l,u;function f(e,t){return l||(l=document.createElement("a")),l.href=t,e===l.href}function d(e){return 0===Object.keys(e).length}function p(e){return e&&s(e.destroy)?e.destroy:r}function h(e,t){e.appendChild(t)}function m(e,t,n){e.insertBefore(t,n||null)}function g(e){e.parentNode.removeChild(e)}function v(e){return document.createElement(e)}function _(e){return document.createTextNode(e)}function b(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function y(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function w(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function x(e,t){e.value=null==t?"":t}function S(e,t,n,r){null===n?e.style.removeProperty(t):e.style.setProperty(t,n,r?"important":"")}function k(e){u=e}const M=[],A=[],E=[],T=[],R=Promise.resolve();let O=!1;function C(){O||(O=!0,R.then(L))}function j(){return C(),R}function B(e){E.push(e)}const I=new Set;let P=0;function L(){const e=u;do{while(P<M.length){const e=M[P];P++,k(e),N(e.$$)}k(null),M.length=0,P=0;while(A.length)A.pop()();for(let e=0;e<E.length;e+=1){const t=E[e];I.has(t)||(I.add(t),t())}E.length=0}while(M.length);while(T.length)T.pop()();O=!1,I.clear(),k(e)}function N(e){if(null!==e.fragment){e.update(),i(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(B)}}const D=new Set;function F(e,t){e&&e.i&&(D.delete(e),e.i(t))}const H="undefined"!==typeof window?window:"undefined"!==typeof globalThis?globalThis:e;function U(e,t){e.d(1),t.delete(e.key)}function $(e,t,n,r,o,a,i,s,c,l,u,f){let d=e.length,p=a.length,h=d;const m={};while(h--)m[e[h].key]=h;const g=[],v=new Map,_=new Map;h=p;while(h--){const e=f(o,a,h),s=n(e);let c=i.get(s);c?r&&c.p(e,t):(c=l(s,e),c.c()),v.set(s,g[h]=c),s in m&&_.set(s,Math.abs(h-m[s]))}const b=new Set,y=new Set;function w(e){F(e,1),e.m(s,u),i.set(e.key,e),u=e.first,p--}while(d&&p){const t=g[p-1],n=e[d-1],r=t.key,o=n.key;t===n?(u=t.first,d--,p--):v.has(o)?!i.has(r)||b.has(r)?w(t):y.has(o)?d--:_.get(r)>_.get(o)?(y.add(r),w(t)):(b.add(o),d--):(c(n,i),d--)}while(d--){const t=e[d];v.has(t.key)||c(t,i)}while(p)w(g[p-1]);return g}function q(e,t,n,r){const{fragment:a,on_mount:c,on_destroy:l,after_update:u}=e.$$;a&&a.m(t,n),r||B(()=>{const t=c.map(o).filter(s);l?l.push(...t):i(t),e.$$.on_mount=[]}),u.forEach(B)}function V(e,t){const n=e.$$;null!==n.fragment&&(i(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function z(e,t){-1===e.$$.dirty[0]&&(M.push(e),C(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function X(e,t,n,o,s,c,l,f=[-1]){const d=u;k(e);const p=e.$$={fragment:null,ctx:null,props:c,update:r,not_equal:s,bound:a(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(d?d.$$.context:[]),callbacks:a(),dirty:f,skip_bound:!1,root:t.target||d.$$.root};l&&l(p.root);let h=!1;p.ctx=n?n(e,t.props||{},(t,n,...r)=>{const o=r.length?r[0]:n;return p.ctx&&s(p.ctx[t],p.ctx[t]=o)&&(!p.skip_bound&&p.bound[t]&&p.bound[t](o),h&&z(e,t)),n}):[],p.update(),h=!0,i(p.before_update),p.fragment=!!o&&o(p.ctx),t.target&&(p.fragment&&p.fragment.c(),q(e,t.target,void 0,void 0),L()),k(d)}class Y{$destroy(){V(this,1),this.$destroy=r}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!d(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const G=[[-1,"✨","custom"],[0,"😀","smileys-emotion"],[1,"👋","people-body"],[3,"🐱","animals-nature"],[4,"🍎","food-drink"],[5,"🏠️","travel-places"],[6,"⚽","activities"],[7,"📝","objects"],[8,"⛔️","symbols"],[9,"🏁","flags"]].map(([e,t,n])=>({id:e,emoji:t,name:n})),W=G.slice(1),K=G[0],Z=2,Q=6,J="function"===typeof requestIdleCallback?requestIdleCallback:setTimeout;function ee(e){return e.unicode.includes("‍")}const te={"🫠":14,"🥲":13.1,"🥻":12.1,"🥰":11,"🤩":5,"👱‍♀️":4,"🤣":3,"👁️‍🗨️":2,"😀":1,"😐️":.7,"😃":.6},ne=1e3,re="🖐️",oe=8,ae=["😊","😒","♥️","👍️","😍","😂","😭","☺️","😔","😩","😏","💕","🙌","😘"],ie='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',se=(e,t)=>e<t?-1:e>t?1:0,ce=(e,t)=>{const n=document.createElement("canvas");n.width=n.height=1;const r=n.getContext("2d");return r.textBaseline="top",r.font="100px "+ie,r.fillStyle=t,r.scale(.01,.01),r.fillText(e,0,0),r.getImageData(0,0,1,1).data},le=(e,t)=>{const n=[...e].join(","),r=[...t].join(",");return n===r&&!n.startsWith("0,0,0,")};function ue(e){const t=ce(e,"#000"),n=ce(e,"#fff");return t&&n&&le(t,n)}function fe(){const e=Object.entries(te);try{for(const[t,n]of e)if(ue(t))return n}catch(t){}return e[0][1]}const de=new Promise(e=>J(()=>e(fe()))),pe=new Map,he="️",me="\ud83c",ge="‍",ve=127995,_e=57339;function be(e,t){if(0===t)return e;const n=e.indexOf(ge);return-1!==n?e.substring(0,n)+String.fromCodePoint(ve+t-1)+e.substring(n):(e.endsWith(he)&&(e=e.substring(0,e.length-1)),e+me+String.fromCodePoint(_e+t-1))}function ye(e){e.preventDefault(),e.stopPropagation()}function we(e,t,n){return t+=e?-1:1,t<0?t=n.length-1:t>=n.length&&(t=0),t}function xe(e,t){const n=new Set,r=[];for(const o of e){const e=t(o);n.has(e)||(n.add(e),r.push(o))}return r}function Se(e,t){const n=e=>{const n={};for(const r of e)"number"===typeof r.tone&&r.version<=t&&(n[r.tone]=r.unicode);return n};return e.map(({unicode:e,skins:t,shortcodes:r,url:o,name:a,category:i})=>({unicode:e,name:a,shortcodes:r,url:o,category:i,id:e||a,skins:t&&n(t),title:(r||[]).join(", ")}))}const ke=requestAnimationFrame;let Me,Ae="function"===typeof ResizeObserver;function Ee(e,t){let n;return Ae?(n=new ResizeObserver(e=>t(e[0].contentRect.width)),n.observe(e)):ke(()=>t(e.getBoundingClientRect().width)),{destroy(){n&&n.disconnect()}}}function Te(e){{const t=document.createRange();return t.selectNode(e.firstChild),t.getBoundingClientRect().width}}function Re(e,t,n){for(const r of e){const e=n(r),o=Te(e);"undefined"===typeof Me&&(Me=Te(t));const a=o/1.8<Me;pe.set(r.unicode,a)}}function Oe(e){return xe(e,e=>e)}const{Map:Ce}=H;function je(e,t,n){const r=e.slice();return r[63]=t[n],r[65]=n,r}function Be(e,t,n){const r=e.slice();return r[66]=t[n],r[65]=n,r}function Ie(e,t,n){const r=e.slice();return r[63]=t[n],r[65]=n,r}function Pe(e,t,n){const r=e.slice();return r[69]=t[n],r}function Le(e,t,n){const r=e.slice();return r[72]=t[n],r[65]=n,r}function Ne(e,t){let n,r,o,a,i,s,c,l=t[72]+"";return{key:e,first:null,c(){n=v("div"),r=_(l),y(n,"id",o="skintone-"+t[65]),y(n,"class",a="emoji hide-focus "+(t[65]===t[20]?"active":"")),y(n,"aria-selected",i=t[65]===t[20]),y(n,"role","option"),y(n,"title",s=t[0].skinTones[t[65]]),y(n,"tabindex","-1"),y(n,"aria-label",c=t[0].skinTones[t[65]]),this.first=n},m(e,t){m(e,n,t),h(n,r)},p(e,u){t=e,512&u[0]&&l!==(l=t[72]+"")&&w(r,l),512&u[0]&&o!==(o="skintone-"+t[65])&&y(n,"id",o),1049088&u[0]&&a!==(a="emoji hide-focus "+(t[65]===t[20]?"active":""))&&y(n,"class",a),1049088&u[0]&&i!==(i=t[65]===t[20])&&y(n,"aria-selected",i),513&u[0]&&s!==(s=t[0].skinTones[t[65]])&&y(n,"title",s),513&u[0]&&c!==(c=t[0].skinTones[t[65]])&&y(n,"aria-label",c)},d(e){e&&g(n)}}}function De(e,t){let n,r,o,a,i,s,c,l,u,f=t[69].emoji+"";function d(){return t[49](t[69])}return{key:e,first:null,c(){n=v("button"),r=v("div"),o=_(f),y(r,"class","nav-emoji emoji"),y(n,"role","tab"),y(n,"class","nav-button"),y(n,"aria-controls",a="tab-"+t[69].id),y(n,"aria-label",i=t[0].categories[t[69].name]),y(n,"aria-selected",s=!t[4]&&t[13].id===t[69].id),y(n,"title",c=t[0].categories[t[69].name]),this.first=n},m(e,t){m(e,n,t),h(n,r),h(r,o),l||(u=b(n,"click",d),l=!0)},p(e,r){t=e,4096&r[0]&&f!==(f=t[69].emoji+"")&&w(o,f),4096&r[0]&&a!==(a="tab-"+t[69].id)&&y(n,"aria-controls",a),4097&r[0]&&i!==(i=t[0].categories[t[69].name])&&y(n,"aria-label",i),12304&r[0]&&s!==(s=!t[4]&&t[13].id===t[69].id)&&y(n,"aria-selected",s),4097&r[0]&&c!==(c=t[0].categories[t[69].name])&&y(n,"title",c)},d(e){e&&g(n),l=!1,u()}}}function Fe(e){let t,n;return{c(){t=v("img"),y(t,"class","custom-emoji"),f(t.src,n=e[63].url)||y(t,"src",n),y(t,"alt",""),y(t,"loading","lazy")},m(e,n){m(e,t,n)},p(e,r){32768&r[0]&&!f(t.src,n=e[63].url)&&y(t,"src",n)},d(e){e&&g(t)}}}function He(e){let t,n=e[27](e[63],e[8])+"";return{c(){t=_(n)},m(e,n){m(e,t,n)},p(e,r){33024&r[0]&&n!==(n=e[27](e[63],e[8])+"")&&w(t,n)},d(e){e&&g(t)}}}function Ue(e,t){let n,r,o,a,i,s,c;function l(e,t){return e[63].unicode?He:Fe}let u=l(t),f=u(t);return{key:e,first:null,c(){n=v("button"),f.c(),y(n,"role",r=t[4]?"option":"menuitem"),y(n,"aria-selected",o=t[4]?t[65]==t[5]:""),y(n,"aria-label",a=t[28](t[63],t[8])),y(n,"title",i=t[63].title),y(n,"class",s="emoji "+(t[4]&&t[65]===t[5]?"active":"")),y(n,"id",c="emo-"+t[63].id),this.first=n},m(e,t){m(e,n,t),f.m(n,null)},p(e,d){t=e,u===(u=l(t))&&f?f.p(t,d):(f.d(1),f=u(t),f&&(f.c(),f.m(n,null))),16&d[0]&&r!==(r=t[4]?"option":"menuitem")&&y(n,"role",r),32816&d[0]&&o!==(o=t[4]?t[65]==t[5]:"")&&y(n,"aria-selected",o),33024&d[0]&&a!==(a=t[28](t[63],t[8]))&&y(n,"aria-label",a),32768&d[0]&&i!==(i=t[63].title)&&y(n,"title",i),32816&d[0]&&s!==(s="emoji "+(t[4]&&t[65]===t[5]?"active":""))&&y(n,"class",s),32768&d[0]&&c!==(c="emo-"+t[63].id)&&y(n,"id",c)},d(e){e&&g(n),f.d()}}}function $e(e,t){let n,r,o,a,i,s,c,l,u=(t[4]?t[0].searchResultsLabel:t[66].category?t[66].category:t[15].length>1?t[0].categories.custom:t[0].categories[t[13].name])+"",f=[],d=new Ce,p=t[66].emojis;const b=e=>e[63].id;for(let h=0;h<p.length;h+=1){let e=Ie(t,p,h),n=b(e);d.set(n,f[h]=Ue(n,e))}return{key:e,first:null,c(){n=v("div"),r=_(u),i=v("div");for(let e=0;e<f.length;e+=1)f[e].c();y(n,"id",o="menu-label-"+t[65]),y(n,"class",a="category "+(1===t[15].length&&""===t[15][0].category?"gone":"")),y(n,"aria-hidden","true"),y(i,"class","emoji-menu"),y(i,"role",s=t[4]?"listbox":"menu"),y(i,"aria-labelledby",c="menu-label-"+t[65]),y(i,"id",l=t[4]?"search-results":""),this.first=n},m(e,t){m(e,n,t),h(n,r),m(e,i,t);for(let n=0;n<f.length;n+=1)f[n].m(i,null)},p(e,h){t=e,40977&h[0]&&u!==(u=(t[4]?t[0].searchResultsLabel:t[66].category?t[66].category:t[15].length>1?t[0].categories.custom:t[0].categories[t[13].name])+"")&&w(r,u),32768&h[0]&&o!==(o="menu-label-"+t[65])&&y(n,"id",o),32768&h[0]&&a!==(a="category "+(1===t[15].length&&""===t[15][0].category?"gone":""))&&y(n,"class",a),402686256&h[0]&&(p=t[66].emojis,f=$(f,h,b,1,t,p,d,i,U,Ue,null,Ie)),16&h[0]&&s!==(s=t[4]?"listbox":"menu")&&y(i,"role",s),32768&h[0]&&c!==(c="menu-label-"+t[65])&&y(i,"aria-labelledby",c),16&h[0]&&l!==(l=t[4]?"search-results":"")&&y(i,"id",l)},d(e){e&&g(n),e&&g(i);for(let t=0;t<f.length;t+=1)f[t].d()}}}function qe(e){let t,n;return{c(){t=v("img"),y(t,"class","custom-emoji"),f(t.src,n=e[63].url)||y(t,"src",n),y(t,"alt",""),y(t,"loading","lazy")},m(e,n){m(e,t,n)},p(e,r){1024&r[0]&&!f(t.src,n=e[63].url)&&y(t,"src",n)},d(e){e&&g(t)}}}function Ve(e){let t,n=e[27](e[63],e[8])+"";return{c(){t=_(n)},m(e,n){m(e,t,n)},p(e,r){1280&r[0]&&n!==(n=e[27](e[63],e[8])+"")&&w(t,n)},d(e){e&&g(t)}}}function ze(e,t){let n,r,o,a;function i(e,t){return e[63].unicode?Ve:qe}let s=i(t),c=s(t);return{key:e,first:null,c(){n=v("button"),c.c(),y(n,"role","menuitem"),y(n,"aria-label",r=t[28](t[63],t[8])),y(n,"title",o=t[63].title),y(n,"class","emoji"),y(n,"id",a="fav-"+t[63].id),this.first=n},m(e,t){m(e,n,t),c.m(n,null)},p(e,l){t=e,s===(s=i(t))&&c?c.p(t,l):(c.d(1),c=s(t),c&&(c.c(),c.m(n,null))),1280&l[0]&&r!==(r=t[28](t[63],t[8]))&&y(n,"aria-label",r),1024&l[0]&&o!==(o=t[63].title)&&y(n,"title",o),1024&l[0]&&a!==(a="fav-"+t[63].id)&&y(n,"id",a)},d(e){e&&g(n),c.d()}}}function Xe(e){let t,n,o,a,s,c,l,u,f,d,k,M,A,E,T,R,O,C,j,B,I,P,L,N,D,F,H,q,V,z,X,Y,G,W,K,Z,Q,J,ee,te,ne,re,oe,ae,ie=e[0].searchLabel+"",se=e[0].searchDescription+"",ce=e[0].skinToneDescription+"",le=[],ue=new Ce,fe=[],de=new Ce,pe=[],he=new Ce,me=[],ge=new Ce,ve=e[9];const _e=e=>e[72];for(let r=0;r<ve.length;r+=1){let t=Le(e,ve,r),n=_e(t);ue.set(n,le[r]=Ne(n,t))}let be=e[12];const ye=e=>e[69].id;for(let r=0;r<be.length;r+=1){let t=Pe(e,be,r),n=ye(t);de.set(n,fe[r]=De(n,t))}let we=e[15];const xe=e=>e[66].category;for(let r=0;r<we.length;r+=1){let t=Be(e,we,r),n=xe(t);he.set(n,pe[r]=$e(n,t))}let Se=e[10];const ke=e=>e[63].id;for(let r=0;r<Se.length;r+=1){let t=je(e,Se,r),n=ke(t);ge.set(n,me[r]=ze(n,t))}return{c(){t=v("section"),n=v("div"),o=v("div"),a=v("div"),s=v("input"),f=v("label"),d=_(ie),k=v("span"),M=_(se),A=v("div"),E=v("button"),T=_(e[21]),C=v("span"),j=_(ce),B=v("div");for(let e=0;e<le.length;e+=1)le[e].c();D=v("div");for(let e=0;e<fe.length;e+=1)fe[e].c();H=v("div"),q=v("div"),V=v("div"),z=_(e[18]),Y=v("div"),G=v("div");for(let e=0;e<pe.length;e+=1)pe[e].c();J=v("div");for(let e=0;e<me.length;e+=1)me[e].c();ne=v("button"),ne.textContent="😀",y(n,"class","pad-top"),y(s,"id","search"),y(s,"class","search"),y(s,"type","search"),y(s,"role","combobox"),y(s,"enterkeyhint","search"),y(s,"placeholder",c=e[0].searchLabel),y(s,"autocapitalize","none"),y(s,"autocomplete","off"),y(s,"spellcheck","true"),y(s,"aria-expanded",l=!(!e[4]||!e[1].length)),y(s,"aria-controls","search-results"),y(s,"aria-describedby","search-description"),y(s,"aria-autocomplete","list"),y(s,"aria-activedescendant",u=e[26]?"emo-"+e[26]:""),y(f,"class","sr-only"),y(f,"for","search"),y(k,"id","search-description"),y(k,"class","sr-only"),y(a,"class","search-wrapper"),y(E,"id","skintone-button"),y(E,"class",R="emoji "+(e[6]?"hide-focus":"")),y(E,"aria-label",e[23]),y(E,"title",e[23]),y(E,"aria-describedby","skintone-description"),y(E,"aria-haspopup","listbox"),y(E,"aria-expanded",e[6]),y(E,"aria-controls","skintone-list"),y(A,"class",O="skintone-button-wrapper "+(e[19]?"expanded":"")),y(C,"id","skintone-description"),y(C,"class","sr-only"),y(B,"id","skintone-list"),y(B,"class",I="skintone-list "+(e[6]?"":"hidden no-animate")),S(B,"transform","translateY("+(e[6]?0:"calc(-1 * var(--num-skintones) * var(--total-emoji-size))")+")"),y(B,"role","listbox"),y(B,"aria-label",P=e[0].skinTonesLabel),y(B,"aria-activedescendant",L="skintone-"+e[20]),y(B,"aria-hidden",N=!e[6]),y(o,"class","search-row"),y(D,"class","nav"),y(D,"role","tablist"),S(D,"grid-template-columns","repeat("+e[12].length+", 1fr)"),y(D,"aria-label",F=e[0].categoriesLabel),y(q,"class","indicator"),S(q,"transform","translateX("+(e[24]?-1:1)*e[11]*100+"%)"),y(H,"class","indicator-wrapper"),y(V,"class",X="message "+(e[18]?"":"gone")),y(V,"role","alert"),y(V,"aria-live","polite"),y(Y,"class",W="tabpanel "+(!e[14]||e[18]?"gone":"")),y(Y,"role",K=e[4]?"region":"tabpanel"),y(Y,"aria-label",Z=e[4]?e[0].searchResultsLabel:e[0].categories[e[13].name]),y(Y,"id",Q=e[4]?"":"tab-"+e[13].id),y(Y,"tabindex","0"),y(J,"class",ee="favorites emoji-menu "+(e[18]?"gone":"")),y(J,"role","menu"),y(J,"aria-label",te=e[0].favoritesLabel),S(J,"padding-inline-end",e[25]+"px"),y(ne,"aria-hidden","true"),y(ne,"tabindex","-1"),y(ne,"class","abs-pos hidden emoji"),y(t,"class","picker"),y(t,"aria-label",re=e[0].regionLabel),y(t,"style",e[22])},m(r,i){m(r,t,i),h(t,n),h(t,o),h(o,a),h(a,s),x(s,e[2]),h(a,f),h(f,d),h(a,k),h(k,M),h(o,A),h(A,E),h(E,T),h(o,C),h(C,j),h(o,B);for(let e=0;e<le.length;e+=1)le[e].m(B,null);e[48](B),h(t,D);for(let e=0;e<fe.length;e+=1)fe[e].m(D,null);h(t,H),h(H,q),h(t,V),h(V,z),h(t,Y),h(Y,G);for(let e=0;e<pe.length;e+=1)pe[e].m(G,null);e[50](Y),h(t,J);for(let e=0;e<me.length;e+=1)me[e].m(J,null);h(t,ne),e[51](ne),e[52](t),oe||(ae=[b(s,"input",e[47]),b(s,"keydown",e[30]),b(E,"click",e[35]),b(B,"focusout",e[38]),b(B,"click",e[34]),b(B,"keydown",e[36]),b(B,"keyup",e[37]),b(D,"keydown",e[32]),p(e[29].call(null,G)),b(Y,"click",e[33]),b(J,"click",e[33])],oe=!0)},p(e,n){1&n[0]&&c!==(c=e[0].searchLabel)&&y(s,"placeholder",c),18&n[0]&&l!==(l=!(!e[4]||!e[1].length))&&y(s,"aria-expanded",l),67108864&n[0]&&u!==(u=e[26]?"emo-"+e[26]:"")&&y(s,"aria-activedescendant",u),4&n[0]&&x(s,e[2]),1&n[0]&&ie!==(ie=e[0].searchLabel+"")&&w(d,ie),1&n[0]&&se!==(se=e[0].searchDescription+"")&&w(M,se),2097152&n[0]&&w(T,e[21]),64&n[0]&&R!==(R="emoji "+(e[6]?"hide-focus":""))&&y(E,"class",R),8388608&n[0]&&y(E,"aria-label",e[23]),8388608&n[0]&&y(E,"title",e[23]),64&n[0]&&y(E,"aria-expanded",e[6]),524288&n[0]&&O!==(O="skintone-button-wrapper "+(e[19]?"expanded":""))&&y(A,"class",O),1&n[0]&&ce!==(ce=e[0].skinToneDescription+"")&&w(j,ce),1049089&n[0]&&(ve=e[9],le=$(le,n,_e,1,e,ve,ue,B,U,Ne,null,Le)),64&n[0]&&I!==(I="skintone-list "+(e[6]?"":"hidden no-animate"))&&y(B,"class",I),64&n[0]&&S(B,"transform","translateY("+(e[6]?0:"calc(-1 * var(--num-skintones) * var(--total-emoji-size))")+")"),1&n[0]&&P!==(P=e[0].skinTonesLabel)&&y(B,"aria-label",P),1048576&n[0]&&L!==(L="skintone-"+e[20])&&y(B,"aria-activedescendant",L),64&n[0]&&N!==(N=!e[6])&&y(B,"aria-hidden",N),12305&n[0]|1&n[1]&&(be=e[12],fe=$(fe,n,ye,1,e,be,de,D,U,De,null,Pe)),4096&n[0]&&S(D,"grid-template-columns","repeat("+e[12].length+", 1fr)"),1&n[0]&&F!==(F=e[0].categoriesLabel)&&y(D,"aria-label",F),16779264&n[0]&&S(q,"transform","translateX("+(e[24]?-1:1)*e[11]*100+"%)"),262144&n[0]&&w(z,e[18]),262144&n[0]&&X!==(X="message "+(e[18]?"":"gone"))&&y(V,"class",X),402694449&n[0]&&(we=e[15],pe=$(pe,n,xe,1,e,we,he,G,U,$e,null,Be)),278528&n[0]&&W!==(W="tabpanel "+(!e[14]||e[18]?"gone":""))&&y(Y,"class",W),16&n[0]&&K!==(K=e[4]?"region":"tabpanel")&&y(Y,"role",K),8209&n[0]&&Z!==(Z=e[4]?e[0].searchResultsLabel:e[0].categories[e[13].name])&&y(Y,"aria-label",Z),8208&n[0]&&Q!==(Q=e[4]?"":"tab-"+e[13].id)&&y(Y,"id",Q),402654464&n[0]&&(Se=e[10],me=$(me,n,ke,1,e,Se,ge,J,U,ze,null,je)),262144&n[0]&&ee!==(ee="favorites emoji-menu "+(e[18]?"gone":""))&&y(J,"class",ee),1&n[0]&&te!==(te=e[0].favoritesLabel)&&y(J,"aria-label",te),33554432&n[0]&&S(J,"padding-inline-end",e[25]+"px"),1&n[0]&&re!==(re=e[0].regionLabel)&&y(t,"aria-label",re),4194304&n[0]&&y(t,"style",e[22])},i:r,o:r,d(n){n&&g(t);for(let e=0;e<le.length;e+=1)le[e].d();e[48](null);for(let e=0;e<fe.length;e+=1)fe[e].d();for(let e=0;e<pe.length;e+=1)pe[e].d();e[50](null);for(let e=0;e<me.length;e+=1)me[e].d();e[51](null),e[52](null),oe=!1,i(ae)}}}function Ye(e,t,n){let r,o,a,i,s,c,l,u,f,d,{skinToneEmoji:p}=t,{i18n:h}=t,{database:m}=t,{customEmoji:g}=t,{customCategorySorting:v}=t,_=!0,b=[],y=[],w="",x="",S=!1,k=-1,M=!1,E=!1,T=0,R=0,O="",C=[],B=[],I=oe,P=!1,L=0,N=0,D=W,F=!1;const H=e=>{r.getRootNode().getElementById(e).focus()},U=(e,t)=>{r.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))},$=(e,t)=>t&&e.skins&&e.skins[t]||e.unicode,q=(e,t)=>Oe([e.name||$(e,t),...e.shortcodes||[]]).join(", "),V=e=>/^skintone-/.test(e.id);function z(e){return Ee(e,t=>{{const o=getComputedStyle(r),a=parseInt(o.getPropertyValue("--num-columns"),10),i="rtl"===o.getPropertyValue("direction"),s=e.parentElement.getBoundingClientRect().width,c=s-t;n(46,I=a),n(25,L=c),n(24,P=i)}})}function X(e){const t=r.getRootNode(),a=e=>t.getElementById("emo-"+e.id);Re(e,o,a),n(1,b=b)}function Y(e){return!e.unicode||!ee(e)||pe.get(e.unicode)}async function G(e){const t=await de;return e.filter(({version:e})=>!e||e<=t)}async function te(e){return Se(e,await de)}async function re(e){if("undefined"===typeof e)return[];const t=-1===e?g:await m.getEmojiByGroup(e);return te(await G(t))}async function se(e){return te(await G(await m.getEmojiBySearchQuery(e)))}function ce(e){if(!S||!b.length)return;const t=t=>{ye(e),n(5,k=we(t,k,b))};switch(e.key){case"ArrowDown":return t(!1);case"ArrowUp":return t(!0);case"Enter":if(-1!==k)return ye(e),fe(b[k].id);b.length&&n(5,k=0)}}function le(e){n(2,w=""),n(44,x=""),n(5,k=-1),n(11,N=D.findIndex(t=>t.id===e.id))}function ue(e){const{target:t,key:n}=e,r=t=>{t&&(ye(e),t.focus())};switch(n){case"ArrowLeft":return r(t.previousSibling);case"ArrowRight":return r(t.nextSibling);case"Home":return r(t.parentElement.firstChild);case"End":return r(t.parentElement.lastChild)}}async function fe(e){const t=await m.getEmojiByUnicodeOrName(e),n=[...b,...B].find(t=>t.id===e),r=n.unicode&&$(n,T);await m.incrementFavoriteEmojiCount(e),U("emoji-click",{emoji:t,skinTone:T,...r&&{unicode:r},...n.name&&{name:n.name}})}async function he(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;ye(e);const n=t.id.substring(4);fe(n)}async function me(e){const{target:t}=e;if(!V(t))return;ye(e);const r=parseInt(t.id.slice(9),10);n(8,T=r),n(6,M=!1),H("skintone-button"),U("skin-tone-change",{skinTone:r}),m.setPreferredSkinTone(r)}async function ge(e){n(6,M=!M),n(20,R=T),M&&(ye(e),ke(()=>H("skintone-"+R)))}function ve(e){if(!M)return;const t=async t=>{ye(e),n(20,R=t),await j(),H("skintone-"+R)};switch(e.key){case"ArrowUp":return t(we(!0,R,C));case"ArrowDown":return t(we(!1,R,C));case"Home":return t(0);case"End":return t(C.length-1);case"Enter":return me(e);case"Escape":return ye(e),n(6,M=!1),H("skintone-button")}}function _e(e){if(M)switch(e.key){case" ":return me(e)}}async function Me(e){const{relatedTarget:t}=e;t&&V(t)||n(6,M=!1)}function Ae(){w=this.value,n(2,w)}function Te(e){A[e?"unshift":"push"](()=>{s=e,n(7,s)})}de.then(e=>{e||n(18,i=h.emojiUnsupportedMessage)});const Ce=e=>le(e);function je(e){A[e?"unshift":"push"](()=>{a=e,n(3,a)})}function Be(e){A[e?"unshift":"push"](()=>{o=e,n(17,o)})}function Ie(e){A[e?"unshift":"push"](()=>{r=e,n(16,r)})}return e.$$set=e=>{"skinToneEmoji"in e&&n(40,p=e.skinToneEmoji),"i18n"in e&&n(0,h=e.i18n),"database"in e&&n(39,m=e.database),"customEmoji"in e&&n(41,g=e.customEmoji),"customCategorySorting"in e&&n(42,v=e.customCategorySorting)},e.$$.update=()=>{if(1280&e.$$.dirty[1]&&g&&m&&n(39,m.customEmoji=g,m),1&e.$$.dirty[0]|256&e.$$.dirty[1]){async function t(){let e=!1;const t=setTimeout(()=>{e=!0,n(18,i=h.loadingMessage)},ne);try{await m.ready(),n(14,F=!0)}catch(r){console.error(r),n(18,i=h.networkErrorMessage)}finally{clearTimeout(t),e&&(e=!1,n(18,i=""))}}m&&t()}if(6144&e.$$.dirty[0]|1024&e.$$.dirty[1]&&(g&&g.length?n(12,D=[K,...W]):D!==W&&(N&&n(11,N--,N),n(12,D=W))),4&e.$$.dirty[0]&&J(()=>{n(44,x=(w||"").trim()),n(5,k=-1)}),6144&e.$$.dirty[0]&&n(13,f=D[N]),24576&e.$$.dirty[0]|8192&e.$$.dirty[1]){async function r(){if(F){if(x.length>=Z){const e=x,t=await se(e);e===x&&(n(1,b=t),n(4,S=!0))}else if(f){const e=f.id,t=await re(e);e===f.id&&(n(1,b=t),n(4,S=!1))}}else n(1,b=[]),n(4,S=!1)}r()}if(4112&e.$$.dirty[0]&&n(22,l=`\n  --font-family: ${ie};\n  --num-groups: ${D.length}; \n  --indicator-opacity: ${S?0:1}; \n  --num-skintones: ${Q};`),16384&e.$$.dirty[0]|256&e.$$.dirty[1]){async function o(){F&&n(8,T=await m.getPreferredSkinTone())}o()}if(512&e.$$.dirty[1]&&n(9,C=Array(Q).fill().map((e,t)=>be(p,t))),768&e.$$.dirty[0]&&n(21,c=C[T]),257&e.$$.dirty[0]&&n(23,O=h.skinToneLabel.replace("{skinTone}",h.skinTones[T])),16384&e.$$.dirty[0]|256&e.$$.dirty[1]){async function _(){n(45,u=(await Promise.all(ae.map(e=>m.getEmojiByUnicodeOrName(e)))).filter(Boolean))}F&&_()}if(16384&e.$$.dirty[0]|49408&e.$$.dirty[1]){async function A(){const e=await m.getTopFavoriteEmoji(I),t=await te(xe([...e,...u],e=>e.unicode||e.name).slice(0,I));n(10,B=t)}F&&u&&A()}if(10&e.$$.dirty[0]){const e=b.filter(e=>e.unicode).filter(e=>ee(e)&&!pe.has(e.unicode));e.length?ke(()=>X(e)):(n(1,b=b.filter(Y)),ke(()=>{(a||{}).scrollTop=0}))}if(e.$$.dirty[0],e.$$.dirty[1],18&e.$$.dirty[0]|2048&e.$$.dirty[1]){function R(){if(S)return[{category:"",emojis:b}];const e=new Map;for(const t of b){const n=t.category||"";let r=e.get(n);r||(r=[],e.set(n,r)),r.push(t)}return[...e.entries()].map(([e,t])=>({category:e,emojis:t})).sort((e,t)=>v(e.category,t.category))}n(15,y=R())}34&e.$$.dirty[0]&&n(26,d=-1!==k&&b[k].id),192&e.$$.dirty[0]&&(M?s.addEventListener("transitionend",()=>{n(19,E=!0)},{once:!0}):n(19,E=!1))},[h,b,w,a,S,k,M,s,T,C,B,N,D,f,F,y,r,o,i,E,R,c,l,O,P,L,d,$,q,z,ce,le,ue,he,me,ge,ve,_e,Me,m,p,g,v,_,x,u,I,Ae,Te,Ce,je,Be,Ie]}class Ge extends Y{constructor(e){super(),X(this,e,Ye,Xe,c,{skinToneEmoji:40,i18n:0,database:39,customEmoji:41,customCategorySorting:42},null,[-1,-1,-1])}}const We="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",Ke="en";var Ze={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading…",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}};const Qe=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji"];class Je extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});const t=document.createElement("style");t.textContent=":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}",this.shadowRoot.appendChild(t),this._ctx={locale:Ke,dataSource:We,skinToneEmoji:re,customCategorySorting:se,customEmoji:null,i18n:Ze,...e};for(const n of Qe)"database"!==n&&Object.prototype.hasOwnProperty.call(this,n)&&(this._ctx[n]=this[n],delete this[n]);this._dbFlush()}connectedCallback(){this._cmp=new Ge({target:this.shadowRoot,props:this._ctx})}disconnectedCallback(){this._cmp.$destroy(),this._cmp=void 0;const{database:e}=this._ctx;e&&e.close().catch(e=>console.error(e))}static get observedAttributes(){return["locale","data-source","skin-tone-emoji"]}attributeChangedCallback(e,t,n){this._set(e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),n)}_set(e,t){this._ctx[e]=t,this._cmp&&this._cmp.$set({[e]:t}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){const{locale:e,dataSource:n,database:r}=this._ctx;r&&r.locale===e&&r.dataSource===n||this._set("database",new t["a"]({locale:e,dataSource:n}))}_dbFlush(){Promise.resolve().then(()=>this._dbCreate())}}const et={};for(const n of Qe)et[n]={get(){return"database"===n&&this._dbCreate(),this._ctx[n]},set(e){if("database"===n)throw new Error("database is read-only");this._set(n,e)}};Object.defineProperties(Je.prototype,et),customElements.get("emoji-picker")||customElements.define("emoji-picker",Je)}).call(this,n("c8ba"))},8925:function(e,t,n){var r=n("e330"),o=n("1626"),a=n("c6cd"),i=r(Function.toString);o(a.inspectSource)||(a.inspectSource=function(e){return i(e)}),e.exports=a.inspectSource},"8aa5":function(e,t,n){"use strict";var r=n("6547").charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},"8cba":function(e,t){function n(){var e="http://www.mp3dev.org/",t=3,n=98,r=4,o=0,a=93;this.getLameVersion=function(){return t+"."+n+"."+r},this.getLameShortVersion=function(){return t+"."+n+"."+r},this.getLameVeryShortVersion=function(){return"LAME"+t+"."+n+"r"},this.getPsyVersion=function(){return o+"."+a},this.getLameUrl=function(){return e},this.getLameOsBitness=function(){return"32bits"}}e.exports=n},"907a":function(e,t,n){"use strict";var r=n("ebb5"),o=n("07fa"),a=n("5926"),i=r.aTypedArray,s=r.exportTypedArrayMethod;s("at",(function(e){var t=i(this),n=o(t),r=a(e),s=r>=0?r:n+r;return s<0||s>=n?void 0:t[s]}))},"90d8":function(e,t,n){var r=n("c65b"),o=n("1a2d"),a=n("3a9b"),i=n("ad6d"),s=RegExp.prototype;e.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||o(e,"flags")||!a(s,e)?t:r(i,e)}},"90e3":function(e,t,n){var r=n("e330"),o=0,a=Math.random(),i=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++o+a,36)}},9112:function(e,t,n){var r=n("83ab"),o=n("9bf2"),a=n("5c6c");e.exports=r?function(e,t,n){return o.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},9263:function(e,t,n){"use strict";var r=n("c65b"),o=n("e330"),a=n("577e"),i=n("ad6d"),s=n("9f7f"),c=n("5692"),l=n("7c73"),u=n("69f3").get,f=n("fce3"),d=n("107c"),p=c("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,m=h,g=o("".charAt),v=o("".indexOf),_=o("".replace),b=o("".slice),y=function(){var e=/a/,t=/b*/g;return r(h,e,"a"),r(h,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),w=s.BROKEN_CARET,x=void 0!==/()??/.exec("")[1],S=y||x||w||f||d;S&&(m=function(e){var t,n,o,s,c,f,d,S=this,k=u(S),M=a(e),A=k.raw;if(A)return A.lastIndex=S.lastIndex,t=r(m,A,M),S.lastIndex=A.lastIndex,t;var E=k.groups,T=w&&S.sticky,R=r(i,S),O=S.source,C=0,j=M;if(T&&(R=_(R,"y",""),-1===v(R,"g")&&(R+="g"),j=b(M,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==g(M,S.lastIndex-1))&&(O="(?: "+O+")",j=" "+j,C++),n=new RegExp("^(?:"+O+")",R)),x&&(n=new RegExp("^"+O+"$(?!\\s)",R)),y&&(o=S.lastIndex),s=r(h,T?n:S,j),T?s?(s.input=b(s.input,C),s[0]=b(s[0],C),s.index=S.lastIndex,S.lastIndex+=s[0].length):S.lastIndex=0:y&&s&&(S.lastIndex=S.global?s.index+s[0].length:o),x&&s&&s.length>1&&r(p,s[0],n,(function(){for(c=1;c<arguments.length-2;c++)void 0===arguments[c]&&(s[c]=void 0)})),s&&E)for(s.groups=f=l(null),c=0;c<E.length;c++)d=E[c],f[d[0]]=s[d[1]];return s}),e.exports=m},"947f":function(e,t,n){var r=n("67b2");function o(){this.class_id=0,this.num_samples=0,this.num_channels=0,this.in_samplerate=0,this.out_samplerate=0,this.scale=0,this.scale_left=0,this.scale_right=0,this.analysis=!1,this.bWriteVbrTag=!1,this.decode_only=!1,this.quality=0,this.mode=r.STEREO,this.force_ms=!1,this.free_format=!1,this.findReplayGain=!1,this.decode_on_the_fly=!1,this.write_id3tag_automatic=!1,this.brate=0,this.compression_ratio=0,this.copyright=0,this.original=0,this.extension=0,this.emphasis=0,this.error_protection=0,this.strict_ISO=!1,this.disable_reservoir=!1,this.quant_comp=0,this.quant_comp_short=0,this.experimentalY=!1,this.experimentalZ=0,this.exp_nspsytune=0,this.preset=0,this.VBR=null,this.VBR_q_frac=0,this.VBR_q=0,this.VBR_mean_bitrate_kbps=0,this.VBR_min_bitrate_kbps=0,this.VBR_max_bitrate_kbps=0,this.VBR_hard_min=0,this.lowpassfreq=0,this.highpassfreq=0,this.lowpasswidth=0,this.highpasswidth=0,this.maskingadjust=0,this.maskingadjust_short=0,this.ATHonly=!1,this.ATHshort=!1,this.noATH=!1,this.ATHtype=0,this.ATHcurve=0,this.ATHlower=0,this.athaa_type=0,this.athaa_loudapprox=0,this.athaa_sensitivity=0,this.short_blocks=null,this.useTemporal=!1,this.interChRatio=0,this.msfix=0,this.tune=!1,this.tune_value_a=0,this.version=0,this.encoder_delay=0,this.encoder_padding=0,this.framesize=0,this.frameNum=0,this.lame_allocated_gfp=0,this.internal_flags=null}e.exports=o},"94ca":function(e,t,n){var r=n("d039"),o=n("1626"),a=/#|\.prototype\./,i=function(e,t){var n=c[s(e)];return n==u||n!=l&&(o(t)?r(t):!!t)},s=i.normalize=function(e){return String(e).replace(a,".").toLowerCase()},c=i.data={},l=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},9828:function(e,t,n){var r=n("4b5e"),o={};o.SFBMAX=3*r.SBMAX_s,e.exports=o},"986a":function(e,t,n){"use strict";var r=n("ebb5"),o=n("a258").findLast,a=r.aTypedArray,i=r.exportTypedArrayMethod;i("findLast",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:void 0)}))},"9bf2":function(e,t,n){var r=n("83ab"),o=n("0cfb"),a=n("aed9"),i=n("825a"),s=n("a04b"),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,f="enumerable",d="configurable",p="writable";t.f=r?a?function(e,t,n){if(i(e),t=s(t),i(n),"function"===typeof e&&"prototype"===t&&"value"in n&&p in n&&!n[p]){var r=u(e,t);r&&r[p]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:f in n?n[f]:r[f],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(i(e),t=s(t),i(n),o)try{return l(e,t,n)}catch(r){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"9f7f":function(e,t,n){var r=n("d039"),o=n("da84"),a=o.RegExp,i=r((function(){var e=a("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),s=i||r((function(){return!a("a","y").sticky})),c=i||r((function(){var e=a("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));e.exports={BROKEN_CARET:c,MISSED_STICKY:s,UNSUPPORTED_Y:i}},a04b:function(e,t,n){var r=n("c04e"),o=n("d9b5");e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},a1b7:function(e,t,n){var r=n("4b5e"),o=n("0206"),a=o.System,i=(o.VbrMode,o.Float,o.ShortBlock,o.Util,o.Arrays,o.new_array_n,o.new_byte,o.new_double,o.new_float),s=o.new_float_n;o.new_int,o.new_int_n,o.assert;function c(){this.l=i(r.SBMAX_l),this.s=s([r.SBMAX_s,3]);var e=this;this.assign=function(t){a.arraycopy(t.l,0,e.l,0,r.SBMAX_l);for(var n=0;n<r.SBMAX_s;n++)for(var o=0;o<3;o++)e.s[n][o]=t.s[n][o]}}e.exports=c},a1f0:function(e,t,n){"use strict";var r=n("23e7"),o=n("c65b"),a=n("e330"),i=n("dcc3"),s=n("1d80"),c=n("50c4"),l=n("577e"),u=n("825a"),f=n("7234"),d=n("c6b6"),p=n("44e7"),h=n("90d8"),m=n("dc4a"),g=n("cb2d"),v=n("d039"),_=n("b622"),b=n("4840"),y=n("8aa5"),w=n("14c3"),x=n("69f3"),S=n("c430"),k=_("matchAll"),M="RegExp String",A=M+" Iterator",E=x.set,T=x.getterFor(A),R=RegExp.prototype,O=TypeError,C=a("".indexOf),j=a("".matchAll),B=!!j&&!v((function(){j("a",/./)})),I=i((function(e,t,n,r){E(this,{type:A,regexp:e,string:t,global:n,unicode:r,done:!1})}),M,(function(){var e=T(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=w(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""===l(r[0])&&(t.lastIndex=y(n,c(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),P=function(e){var t,n,r,o=u(this),a=l(e),i=b(o,RegExp),s=l(h(o));return t=new i(i===RegExp?o.source:o,s),n=!!~C(s,"g"),r=!!~C(s,"u"),t.lastIndex=c(o.lastIndex),new I(t,a,n,r)};r({target:"String",proto:!0,forced:B},{matchAll:function(e){var t,n,r,a,i=s(this);if(f(e)){if(B)return j(i,e)}else{if(p(e)&&(t=l(s(h(e))),!~C(t,"g")))throw O("`.matchAll` does not allow non-global regexes");if(B)return j(i,e);if(r=m(e,k),void 0===r&&S&&"RegExp"==d(e)&&(r=P),r)return o(r,e,i)}return n=l(i),a=new RegExp(e,"g"),S?o(P,a,n):a[k](n)}}),S||k in R||g(R,k,P)},a258:function(e,t,n){var r=n("0366"),o=n("44ad"),a=n("7b0b"),i=n("07fa"),s=function(e){var t=1==e;return function(n,s,c){var l,u,f=a(n),d=o(f),p=r(s,c),h=i(d);while(h-- >0)if(l=d[h],u=p(l,h,f),u)switch(e){case 0:return l;case 1:return h}return t?-1:void 0}};e.exports={findLast:s(0),findLastIndex:s(1)}},a26a:function(e,t){function n(){this.setModules=function(e,t){e,t}}e.exports=n},a640:function(e,t,n){"use strict";var r=n("d039");e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},ab36:function(e,t,n){var r=n("861d"),o=n("9112");e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},abf5:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),a=(r.new_float_n,r.new_int,r.new_int_n,r.assert,n("4b5e"));function i(){this.useAdjust=0,this.aaSensitivityP=0,this.adjust=0,this.adjustLimit=0,this.decay=0,this.floor=0,this.l=o(a.SBMAX_l),this.s=o(a.SBMAX_s),this.psfb21=o(a.PSFB21),this.psfb12=o(a.PSFB12),this.cb_l=o(a.CBANDS),this.cb_s=o(a.CBANDS),this.eql_w=o(a.BLKSIZE/2)}e.exports=i},ad6d:function(e,t,n){"use strict";var r=n("825a");e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},ae93:function(e,t,n){"use strict";var r,o,a,i=n("d039"),s=n("1626"),c=n("861d"),l=n("7c73"),u=n("e163"),f=n("cb2d"),d=n("b622"),p=n("c430"),h=d("iterator"),m=!1;[].keys&&(a=[].keys(),"next"in a?(o=u(u(a)),o!==Object.prototype&&(r=o)):m=!0);var g=!c(r)||i((function(){var e={};return r[h].call(e)!==e}));g?r={}:p&&(r=l(r)),s(r[h])||f(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}},aeb0:function(e,t,n){var r=n("9bf2").f;e.exports=function(e,t,n){n in e||r(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},aed9:function(e,t,n){var r=n("83ab"),o=n("d039");e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},b42e:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var t=+e;return(t>0?r:n)(t)}},b622:function(e,t,n){var r=n("da84"),o=n("5692"),a=n("1a2d"),i=n("90e3"),s=n("04f8"),c=n("fdbf"),l=o("wks"),u=r.Symbol,f=u&&u["for"],d=c?u:u&&u.withoutSetter||i;e.exports=function(e){if(!a(l,e)||!s&&"string"!=typeof l[e]){var t="Symbol."+e;s&&a(u,e)?l[e]=u[e]:l[e]=c&&f?f(t):d(t)}return l[e]}},b7fe:function(e,t,n){"use strict";t.__esModule=!0,t.start=t.run=t.TOKENS=t.State=void 0;var r=n("1652"),o=n("7656"),a=i(o);function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var s="aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw".split("|"),c="0123456789".split(""),l="0123456789abcdefghijklmnopqrstuvwxyz".split(""),u=[" ","\f","\r","\t","\v"," "," ","᠎"],f=[],d=function(e){return new r.CharacterState(e)},p=d(),h=d(o.NUM),m=d(o.DOMAIN),g=d(),v=d(o.WS);p.on("@",d(o.AT)).on(".",d(o.DOT)).on("+",d(o.PLUS)).on("#",d(o.POUND)).on("?",d(o.QUERY)).on("/",d(o.SLASH)).on("_",d(o.UNDERSCORE)).on(":",d(o.COLON)).on("{",d(o.OPENBRACE)).on("[",d(o.OPENBRACKET)).on("<",d(o.OPENANGLEBRACKET)).on("(",d(o.OPENPAREN)).on("}",d(o.CLOSEBRACE)).on("]",d(o.CLOSEBRACKET)).on(">",d(o.CLOSEANGLEBRACKET)).on(")",d(o.CLOSEPAREN)).on("&",d(o.AMPERSAND)).on([",",";","!",'"',"'"],d(o.PUNCTUATION)),p.on("\n",d(o.NL)).on(u,v),v.on(u,v);for(var _=0;_<s.length;_++){var b=(0,r.stateify)(s[_],p,o.TLD,o.DOMAIN);f.push.apply(f,b)}var y=(0,r.stateify)("file",p,o.DOMAIN,o.DOMAIN),w=(0,r.stateify)("ftp",p,o.DOMAIN,o.DOMAIN),x=(0,r.stateify)("http",p,o.DOMAIN,o.DOMAIN),S=(0,r.stateify)("mailto",p,o.DOMAIN,o.DOMAIN);f.push.apply(f,y),f.push.apply(f,w),f.push.apply(f,x),f.push.apply(f,S);var k=y.pop(),M=w.pop(),A=x.pop(),E=S.pop(),T=d(o.DOMAIN),R=d(o.PROTOCOL),O=d(o.MAILTO);M.on("s",T).on(":",R),A.on("s",T).on(":",R),f.push(T),k.on(":",R),T.on(":",R),E.on(":",O);var C=(0,r.stateify)("localhost",p,o.LOCALHOST,o.DOMAIN);f.push.apply(f,C),p.on(c,h),h.on("-",g).on(c,h).on(l,m),m.on("-",g).on(l,m);for(var j=0;j<f.length;j++)f[j].on("-",g).on(l,m);g.on("-",g).on(c,m).on(l,m),p.defaultTransition=d(o.SYM);var B=function(e){var t=e.replace(/[A-Z]/g,(function(e){return e.toLowerCase()})),n=e.length,r=[],o=0;while(o<n){var a=p,i=null,s=0,c=null,l=-1;while(o<n&&(i=a.next(t[o])))a=i,a.accepts()?(l=0,c=a):l>=0&&l++,s++,o++;if(!(l<0)){o-=l,s-=l;var u=c.emit();r.push(new u(e.substr(o-s,s)))}}return r},I=p;t.State=r.CharacterState,t.TOKENS=a,t.run=B,t.start=I},b980:function(e,t,n){var r=n("d039"),o=n("5c6c");e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},bb22:function(e,t,n){var r=n("ff81"),o=n("0206"),a=(o.System,o.VbrMode),i=o.Float,s=(o.ShortBlock,o.Util),c=(o.Arrays,o.new_array_n,o.new_byte,o.new_double,o.new_float),l=(o.new_float_n,o.new_int),u=(o.new_int_n,o.assert),f=n("4b5e"),d=n("f052"),p=n("bd8b");function h(){var e=null,t=null,n=null;function o(e){return u(0<=e+h.Q_MAX2&&e<h.Q_MAX),x[e+h.Q_MAX2]}this.setModules=function(r,o,a){e=r,t=o,n=a},this.IPOW20=function(e){return u(0<=e&&e<h.Q_MAX),S[e]};var m=2220446049250313e-31,g=h.IXMAX_VAL,v=g+2,_=h.Q_MAX,b=h.Q_MAX2,y=(h.LARGE_BITS,100);this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var w=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0];this.pretab=w,this.sfBandIndex=[new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0])];var x=c(_+b+1),S=c(_),k=c(v),M=c(v);function A(e,t){var r=n.ATHformula(t,e);return r-=y,r=Math.pow(10,r/10+e.ATHlower),r}function E(e){for(var t=e.internal_flags.ATH.l,n=e.internal_flags.ATH.psfb21,r=e.internal_flags.ATH.s,o=e.internal_flags.ATH.psfb12,a=e.internal_flags,s=e.out_samplerate,c=0;c<f.SBMAX_l;c++){var l=a.scalefac_band.l[c],u=a.scalefac_band.l[c+1];t[c]=i.MAX_VALUE;for(var d=l;d<u;d++){var p=d*s/1152,h=A(e,p);t[c]=Math.min(t[c],h)}}for(c=0;c<f.PSFB21;c++){l=a.scalefac_band.psfb21[c],u=a.scalefac_band.psfb21[c+1];n[c]=i.MAX_VALUE;for(d=l;d<u;d++){p=d*s/1152,h=A(e,p);n[c]=Math.min(n[c],h)}}for(c=0;c<f.SBMAX_s;c++){l=a.scalefac_band.s[c],u=a.scalefac_band.s[c+1];r[c]=i.MAX_VALUE;for(d=l;d<u;d++){p=d*s/384,h=A(e,p);r[c]=Math.min(r[c],h)}r[c]*=a.scalefac_band.s[c+1]-a.scalefac_band.s[c]}for(c=0;c<f.PSFB12;c++){l=a.scalefac_band.psfb12[c],u=a.scalefac_band.psfb12[c+1];o[c]=i.MAX_VALUE;for(d=l;d<u;d++){p=d*s/384,h=A(e,p);o[c]=Math.min(o[c],h)}o[c]*=a.scalefac_band.s[13]-a.scalefac_band.s[12]}if(e.noATH){for(c=0;c<f.SBMAX_l;c++)t[c]=1e-20;for(c=0;c<f.PSFB21;c++)n[c]=1e-20;for(c=0;c<f.SBMAX_s;c++)r[c]=1e-20;for(c=0;c<f.PSFB12;c++)o[c]=1e-20}a.ATH.floor=10*Math.log10(A(e,-1))}function T(e){this.s=e}this.adj43=M,this.iteration_init=function(t){var n,r=t.internal_flags,o=r.l3_side;if(0==r.iteration_init_init){for(r.iteration_init_init=1,o.main_data_begin=0,E(t),k[0]=0,n=1;n<v;n++)k[n]=Math.pow(n,4/3);for(n=0;n<v-1;n++)M[n]=n+1-Math.pow(.5*(k[n]+k[n+1]),.75);for(M[n]=.5,n=0;n<_;n++)S[n]=Math.pow(2,-.1875*(n-210));for(n=0;n<=_+b;n++)x[n]=Math.pow(2,.25*(n-210-b));var a,i,s,c;for(e.huffman_init(r),n=t.exp_nspsytune>>2&63,n>=32&&(n-=64),a=Math.pow(10,n/4/10),n=t.exp_nspsytune>>8&63,n>=32&&(n-=64),i=Math.pow(10,n/4/10),n=t.exp_nspsytune>>14&63,n>=32&&(n-=64),s=Math.pow(10,n/4/10),n=t.exp_nspsytune>>20&63,n>=32&&(n-=64),c=s*Math.pow(10,n/4/10),n=0;n<f.SBMAX_l;n++){l=n<=6?a:n<=13?i:n<=20?s:c,r.nsPsy.longfact[n]=l}for(n=0;n<f.SBMAX_s;n++){var l;l=n<=5?a:n<=10?i:n<=11?s:c,r.nsPsy.shortfact[n]=l}}},this.on_pe=function(e,n,r,o,a,i){var s,c,f=e.internal_flags,h=0,m=l(2),g=new d(h),v=t.ResvMaxBits(e,o,g,i);h=g.bits;var _=h+v;for(_>p.MAX_BITS_PER_GRANULE&&(_=p.MAX_BITS_PER_GRANULE),s=0,c=0;c<f.channels_out;++c)r[c]=Math.min(p.MAX_BITS_PER_CHANNEL,h/f.channels_out),m[c]=0|r[c]*n[a][c]/700-r[c],m[c]>3*o/4&&(m[c]=3*o/4),m[c]<0&&(m[c]=0),m[c]+r[c]>p.MAX_BITS_PER_CHANNEL&&(m[c]=Math.max(0,p.MAX_BITS_PER_CHANNEL-r[c])),s+=m[c];if(s>v)for(c=0;c<f.channels_out;++c)m[c]=v*m[c]/s;for(c=0;c<f.channels_out;++c)r[c]+=m[c],v-=m[c];for(s=0,c=0;c<f.channels_out;++c)s+=r[c];if(s>p.MAX_BITS_PER_GRANULE){var b=0;for(c=0;c<f.channels_out;++c)r[c]*=p.MAX_BITS_PER_GRANULE,r[c]/=s,b+=r[c];u(b<=p.MAX_BITS_PER_GRANULE)}return _},this.reduce_side=function(e,t,n,r){u(r<=p.MAX_BITS_PER_GRANULE),u(e[0]+e[1]<=p.MAX_BITS_PER_GRANULE);var o=.33*(.5-t)/.5;o<0&&(o=0),o>.5&&(o=.5);var a=0|.5*o*(e[0]+e[1]);a>p.MAX_BITS_PER_CHANNEL-e[0]&&(a=p.MAX_BITS_PER_CHANNEL-e[0]),a<0&&(a=0),e[1]>=125&&(e[1]-a>125?(e[0]<n&&(e[0]+=a),e[1]-=a):(e[0]+=e[1]-125,e[1]=125)),a=e[0]+e[1],a>r&&(e[0]=r*e[0]/a,e[1]=r*e[1]/a),u(e[0]<=p.MAX_BITS_PER_CHANNEL),u(e[1]<=p.MAX_BITS_PER_CHANNEL),u(e[0]+e[1]<=p.MAX_BITS_PER_GRANULE)},this.athAdjust=function(e,t,n){var r=90.30873362,o=94.82444863,a=s.FAST_LOG10_X(t,10),i=e*e,c=0;return a-=n,i>1e-20&&(c=1+s.FAST_LOG10_X(i,10/r)),c<0&&(c=0),a*=c,a+=n+r-o,Math.pow(10,.1*a)},this.calc_xmin=function(e,t,n,r){var o,i=0,s=e.internal_flags,c=0,l=0,u=s.ATH,d=n.xr,p=e.VBR==a.vbr_mtrh?1:0,h=s.masking_lower;for(e.VBR!=a.vbr_mtrh&&e.VBR!=a.vbr_mt||(h=1),o=0;o<n.psy_lmax;o++){k=e.VBR==a.vbr_rh||e.VBR==a.vbr_mtrh?athAdjust(u.adjust,u.l[o],u.floor):u.adjust*u.l[o],w=n.width[o],M=k/w,A=m,T=w>>1,E=0;do{R=d[c]*d[c],E+=R,A+=R<M?R:M,c++,O=d[c]*d[c],E+=O,A+=O<M?O:M,c++}while(--T>0);if(E>k&&l++,o==f.SBPSY_l){var g=k*s.nsPsy.longfact[o];A<g&&(A=g)}if(0!=p&&(k=A),!e.ATHonly){var v=t.en.l[o];if(v>0)g=E*t.thm.l[o]*h/v,0!=p&&(g*=s.nsPsy.longfact[o]),k<g&&(k=g)}r[i++]=0!=p?k:k*s.nsPsy.longfact[o]}var _=575;if(n.block_type!=f.SHORT_TYPE){var b=576;while(0!=b--&&BitStream.EQ(d[b],0))_=b}n.max_nonzero_coeff=_;for(var y=n.sfb_smin;o<n.psymax;y++,o+=3){var w,x,S;for(S=e.VBR==a.vbr_rh||e.VBR==a.vbr_mtrh?athAdjust(u.adjust,u.s[y],u.floor):u.adjust*u.s[y],w=n.width[o],x=0;x<3;x++){var k,M,A,E=0,T=w>>1;M=S/w,A=m;do{var R,O;R=d[c]*d[c],E+=R,A+=R<M?R:M,c++,O=d[c]*d[c],E+=O,A+=O<M?O:M,c++}while(--T>0);if(E>S&&l++,y==f.SBPSY_s){g=S*s.nsPsy.shortfact[y];A<g&&(A=g)}if(k=0!=p?A:S,!e.ATHonly&&!e.ATHshort){v=t.en.s[y][x];if(v>0)g=E*t.thm.s[y][x]*h/v,0!=p&&(g*=s.nsPsy.shortfact[y]),k<g&&(k=g)}r[i++]=0!=p?k:k*s.nsPsy.shortfact[y]}e.useTemporal&&(r[i-3]>r[i-3+1]&&(r[i-3+1]+=(r[i-3]-r[i-3+1])*s.decay),r[i-3+1]>r[i-3+2]&&(r[i-3+2]+=(r[i-3+1]-r[i-3+2])*s.decay))}return l},this.calc_noise_core=function(e,t,n,r){var o=0,a=t.s,i=e.l3_enc;if(a>e.count1)while(0!=n--){l=e.xr[a],a++,o+=l*l,l=e.xr[a],a++,o+=l*l}else if(a>e.big_values){var s=c(2);s[0]=0,s[1]=r;while(0!=n--){l=Math.abs(e.xr[a])-s[i[a]],a++,o+=l*l,l=Math.abs(e.xr[a])-s[i[a]],a++,o+=l*l}}else while(0!=n--){var l;l=Math.abs(e.xr[a])-k[i[a]]*r,a++,o+=l*l,l=Math.abs(e.xr[a])-k[i[a]]*r,a++,o+=l*l}return t.s=a,o},this.calc_noise=function(e,t,n,r,a){var i,c,l=0,u=0,f=0,d=0,p=0,h=-20,m=0,g=e.scalefac,v=0;for(r.over_SSD=0,i=0;i<e.psymax;i++){var _,b=e.global_gain-(g[v++]+(0!=e.preflag?w[i]:0)<<e.scalefac_scale+1)-8*e.subblock_gain[e.window[i]],y=0;if(null!=a&&a.step[i]==b)y=a.noise[i],m+=e.width[i],n[l++]=y/t[u++],y=a.noise_log[i];else{var x,S=o(b);if(c=e.width[i]>>1,m+e.width[i]>e.max_nonzero_coeff)x=e.max_nonzero_coeff-m+1,c=x>0?x>>1:0;var k=new T(m);y=this.calc_noise_core(e,k,c,S),m=k.s,null!=a&&(a.step[i]=b,a.noise[i]=y),y=n[l++]=y/t[u++],y=s.FAST_LOG10(Math.max(y,1e-20)),null!=a&&(a.noise_log[i]=y)}if(null!=a&&(a.global_gain=e.global_gain),p+=y,y>0)_=Math.max(0|10*y+.5,1),r.over_SSD+=_*_,f++,d+=y;h=Math.max(h,y)}return r.over_count=f,r.tot_noise=p,r.over_noise=d,r.max_noise=h,f},this.set_pinfo=function(e,t,n,r,o){var a,i,s,l,d,p=e.internal_flags,h=0==t.scalefac_scale?.5:1,m=t.scalefac,g=c(L3Side.SFBMAX),v=c(L3Side.SFBMAX),_=new CalcNoiseResult;calc_xmin(e,n,t,g),calc_noise(t,g,v,_,null);var b=0;for(i=t.sfb_lmax,t.block_type!=f.SHORT_TYPE&&0==t.mixed_block_flag&&(i=22),a=0;a<i;a++){var y=p.scalefac_band.l[a],x=p.scalefac_band.l[a+1],S=x-y;for(l=0;b<x;b++)l+=t.xr[b]*t.xr[b];l/=S,d=1e15,p.pinfo.en[r][o][a]=d*l,p.pinfo.xfsf[r][o][a]=d*g[a]*v[a]/S,n.en.l[a]>0&&!e.ATHonly?l/=n.en.l[a]:l=0,p.pinfo.thr[r][o][a]=d*Math.max(l*n.thm.l[a],p.ATH.l[a]),p.pinfo.LAMEsfb[r][o][a]=0,0!=t.preflag&&a>=11&&(p.pinfo.LAMEsfb[r][o][a]=-h*w[a]),a<f.SBPSY_l&&(u(m[a]>=0),p.pinfo.LAMEsfb[r][o][a]-=h*m[a])}if(t.block_type==f.SHORT_TYPE)for(i=a,a=t.sfb_smin;a<f.SBMAX_s;a++){y=p.scalefac_band.s[a],x=p.scalefac_band.s[a+1],S=x-y;for(var k=0;k<3;k++){for(l=0,s=y;s<x;s++)l+=t.xr[b]*t.xr[b],b++;l=Math.max(l/S,1e-20),d=1e15,p.pinfo.en_s[r][o][3*a+k]=d*l,p.pinfo.xfsf_s[r][o][3*a+k]=d*g[i]*v[i]/S,n.en.s[a][k]>0?l/=n.en.s[a][k]:l=0,(e.ATHonly||e.ATHshort)&&(l=0),p.pinfo.thr_s[r][o][3*a+k]=d*Math.max(l*n.thm.s[a][k],p.ATH.s[a]),p.pinfo.LAMEsfb_s[r][o][3*a+k]=-2*t.subblock_gain[k],a<f.SBPSY_s&&(p.pinfo.LAMEsfb_s[r][o][3*a+k]-=h*m[i]),i++}}p.pinfo.LAMEqss[r][o]=t.global_gain,p.pinfo.LAMEmainbits[r][o]=t.part2_3_length+t.part2_length,p.pinfo.LAMEsfbits[r][o]=t.part2_length,p.pinfo.over[r][o]=_.over_count,p.pinfo.max_noise[r][o]=10*_.max_noise,p.pinfo.over_noise[r][o]=10*_.over_noise,p.pinfo.tot_noise[r][o]=10*_.tot_noise,p.pinfo.over_SSD[r][o]=_.over_SSD}}h.Q_MAX=257,h.Q_MAX2=116,h.LARGE_BITS=1e5,h.IXMAX_VAL=8206,e.exports=h},bd43:function(e,t,n){"use strict";n.r(t),n.d(t,"isImageFile",(function(){return a})),n.d(t,"isVideoFile",(function(){return i})),n.d(t,"isImageVideoFile",(function(){return s})),n.d(t,"isAudioFile",(function(){return c}));var r=n("c9d9");function o(e,t){if(t&&t.type)return e.some((function(e){return t.type.toLowerCase().includes(e)}))}function a(e){return o(r["b"],e)}function i(e){return o(r["c"],e)}function s(e){return o(r["b"],e)||o(r["c"],e)}function c(e){return o(r["a"],e)}},bd8b:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte),a=r.new_double,i=r.new_float,s=r.new_float_n,c=r.new_int,l=r.new_int_n,u=(r.assert,n("2695")),f=n("ff81"),d=n("c0be"),p=n("2466"),h=n("a1b7"),m=n("4b5e"),g=n("9828");function v(){var e=40;function t(){this.write_timing=0,this.ptr=0,this.buf=o(e)}this.Class_ID=0,this.lame_encode_frame_init=0,this.iteration_init_init=0,this.fill_buffer_resample_init=0,this.mfbuf=s([2,v.MFSIZE]),this.mode_gr=0,this.channels_in=0,this.channels_out=0,this.resample_ratio=0,this.mf_samples_to_encode=0,this.mf_size=0,this.VBR_min_bitrate=0,this.VBR_max_bitrate=0,this.bitrate_index=0,this.samplerate_index=0,this.mode_ext=0,this.lowpass1=0,this.lowpass2=0,this.highpass1=0,this.highpass2=0,this.noise_shaping=0,this.noise_shaping_amp=0,this.substep_shaping=0,this.psymodel=0,this.noise_shaping_stop=0,this.subblock_gain=0,this.use_best_huffman=0,this.full_outer_loop=0,this.l3_side=new u,this.ms_ratio=i(2),this.padding=0,this.frac_SpF=0,this.slot_lag=0,this.tag_spec=null,this.nMusicCRC=0,this.OldValue=c(2),this.CurrentStep=c(2),this.masking_lower=0,this.bv_scf=c(576),this.pseudohalf=c(g.SFBMAX),this.sfb21_extra=!1,this.inbuf_old=new Array(2),this.blackfilt=new Array(2*v.BPC+1),this.itime=a(2),this.sideinfo_len=0,this.sb_sample=s([2,2,18,m.SBLIMIT]),this.amp_filter=i(32),this.header=new Array(v.MAX_HEADER_BUF),this.h_ptr=0,this.w_ptr=0,this.ancillary_flag=0,this.ResvSize=0,this.ResvMax=0,this.scalefac_band=new f,this.minval_l=i(m.CBANDS),this.minval_s=i(m.CBANDS),this.nb_1=s([4,m.CBANDS]),this.nb_2=s([4,m.CBANDS]),this.nb_s1=s([4,m.CBANDS]),this.nb_s2=s([4,m.CBANDS]),this.s3_ss=null,this.s3_ll=null,this.decay=0,this.thm=new Array(4),this.en=new Array(4),this.tot_ener=i(4),this.loudness_sq=s([2,2]),this.loudness_sq_save=i(2),this.mld_l=i(m.SBMAX_l),this.mld_s=i(m.SBMAX_s),this.bm_l=c(m.SBMAX_l),this.bo_l=c(m.SBMAX_l),this.bm_s=c(m.SBMAX_s),this.bo_s=c(m.SBMAX_s),this.npart_l=0,this.npart_s=0,this.s3ind=l([m.CBANDS,2]),this.s3ind_s=l([m.CBANDS,2]),this.numlines_s=c(m.CBANDS),this.numlines_l=c(m.CBANDS),this.rnumlines_l=i(m.CBANDS),this.mld_cb_l=i(m.CBANDS),this.mld_cb_s=i(m.CBANDS),this.numlines_s_num1=0,this.numlines_l_num1=0,this.pe=i(4),this.ms_ratio_s_old=0,this.ms_ratio_l_old=0,this.ms_ener_ratio_old=0,this.blocktype_old=c(2),this.nsPsy=new d,this.VBR_seek_table=new p,this.ATH=null,this.PSY=null,this.nogap_total=0,this.nogap_current=0,this.decode_on_the_fly=!0,this.findReplayGain=!0,this.findPeakSample=!0,this.PeakSample=0,this.RadioGain=0,this.AudiophileGain=0,this.rgdata=null,this.noclipGainChange=0,this.noclipScale=0,this.bitrate_stereoMode_Hist=l([16,5]),this.bitrate_blockType_Hist=l([16,6]),this.pinfo=null,this.hip=null,this.in_buffer_nsamples=0,this.in_buffer_0=null,this.in_buffer_1=null,this.iteration_loop=null;for(var n=0;n<this.en.length;n++)this.en[n]=new h;for(n=0;n<this.thm.length;n++)this.thm[n]=new h;for(n=0;n<this.header.length;n++)this.header[n]=new t}v.MFSIZE=3456+m.ENCDELAY-m.MDCTDELAY,v.MAX_HEADER_BUF=256,v.MAX_BITS_PER_CHANNEL=4095,v.MAX_BITS_PER_GRANULE=7680,v.BPC=320,e.exports=v},bea1:function(e,t,n){"use strict";t.__esModule=!0,t.URL=t.TEXT=t.NL=t.EMAIL=t.MAILTOEMAIL=t.Base=void 0;var r=n("46f3"),o=n("254c"),a=n("7656");function i(e){return e instanceof a.DOMAIN||e instanceof a.TLD}var s=(0,r.createTokenClass)();s.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],t=0;t<this.v.length;t++)e.push(this.v[t].toString());return e.join("")},toHref:function(){return this.toString()},toObject:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http";return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var c=(0,o.inherits)(s,(0,r.createTokenClass)(),{type:"email",isLink:!0}),l=(0,o.inherits)(s,(0,r.createTokenClass)(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),u=(0,o.inherits)(s,(0,r.createTokenClass)(),{type:"text"}),f=(0,o.inherits)(s,(0,r.createTokenClass)(),{type:"nl"}),d=(0,o.inherits)(s,(0,r.createTokenClass)(),{type:"url",isLink:!0,toHref:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http",t=!1,n=!1,r=this.v,o=[],s=0;while(r[s]instanceof a.PROTOCOL)t=!0,o.push(r[s].toString().toLowerCase()),s++;while(r[s]instanceof a.SLASH)n=!0,o.push(r[s].toString()),s++;while(i(r[s]))o.push(r[s].toString().toLowerCase()),s++;for(;s<r.length;s++)o.push(r[s].toString());return o=o.join(""),t||n||(o=e+"://"+o),o},hasProtocol:function(){return this.v[0]instanceof a.PROTOCOL}});t.Base=s,t.MAILTOEMAIL=c,t.EMAIL=l,t.NL=f,t.TEXT=u,t.URL=d},c04e:function(e,t,n){var r=n("c65b"),o=n("861d"),a=n("d9b5"),i=n("dc4a"),s=n("485a"),c=n("b622"),l=TypeError,u=c("toPrimitive");e.exports=function(e,t){if(!o(e)||a(e))return e;var n,c=i(e,u);if(c){if(void 0===t&&(t="default"),n=r(c,e,t),!o(n)||a(n))return n;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},c0be:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),a=r.new_float_n,i=r.new_int,s=(r.new_int_n,r.assert,n("4b5e"));function c(){this.last_en_subshort=a([4,9]),this.lastAttacks=i(4),this.pefirbuf=o(19),this.longfact=o(s.SBMAX_l),this.shortfact=o(s.SBMAX_s),this.attackthre=0,this.attackthre_s=0}e.exports=c},c28b:function(e,t,n){!function(t,n){e.exports=n()}(0,(function(){var e="__v-click-outside",t="undefined"!=typeof window,n="undefined"!=typeof navigator,r=t&&("ontouchstart"in window||n&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"];function o(e){var t=e.event,n=e.handler;(0,e.middleware)(t)&&n(t)}function a(t,n){var a=function(e){var t="function"==typeof e;if(!t&&"object"!=typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:t?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||r,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:!!e.capture}}(n.value),i=a.handler,s=a.middleware,c=a.detectIframe,l=a.capture;if(a.isActive){if(t[e]=a.events.map((function(e){return{event:e,srcTarget:document.documentElement,handler:function(e){return function(e){var t=e.el,n=e.event,r=e.handler,a=e.middleware,i=n.composedPath&&n.composedPath()||n.path;(i?i.indexOf(t)<0:!t.contains(n.target))&&o({event:n,handler:r,middleware:a})}({el:t,event:e,handler:i,middleware:s})},capture:l}})),c){var u={event:"blur",srcTarget:window,handler:function(e){return function(e){var t=e.el,n=e.event,r=e.handler,a=e.middleware;setTimeout((function(){var e=document.activeElement;e&&"IFRAME"===e.tagName&&!t.contains(e)&&o({event:n,handler:r,middleware:a})}),0)}({el:t,event:e,handler:i,middleware:s})},capture:l};t[e]=[].concat(t[e],[u])}t[e].forEach((function(n){var r=n.event,o=n.srcTarget,a=n.handler;return setTimeout((function(){t[e]&&o.addEventListener(r,a,l)}),0)}))}}function i(t){(t[e]||[]).forEach((function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)})),delete t[e]}var s=t?{bind:a,update:function(e,t){var n=t.value,r=t.oldValue;JSON.stringify(n)!==JSON.stringify(r)&&(i(e),a(e,{value:n}))},unbind:i}:{};return{install:function(e){e.directive("click-outside",s)},directive:s}}))},c430:function(e,t){e.exports=!1},c65b:function(e,t,n){var r=n("40d5"),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},c6b6:function(e,t,n){var r=n("e330"),o=r({}.toString),a=r("".slice);e.exports=function(e){return a(o(e),8,-1)}},c6cd:function(e,t,n){var r=n("da84"),o=n("6374"),a="__core-js_shared__",i=r[a]||o(a,{});e.exports=i},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},c9d9:function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return a}));var r=["png","jpg","jpeg","webp","svg","gif"],o=["mp4","video/ogg","webm","quicktime"],a=["mp3","audio/ogg","wav","mpeg"]},ca84:function(e,t,n){var r=n("e330"),o=n("1a2d"),a=n("fc6a"),i=n("4d64").indexOf,s=n("d012"),c=r([].push);e.exports=function(e,t){var n,r=a(e),l=0,u=[];for(n in r)!o(s,n)&&o(r,n)&&c(u,n);while(t.length>l)o(r,n=t[l++])&&(~i(u,n)||c(u,n));return u}},cb2d:function(e,t,n){var r=n("1626"),o=n("9bf2"),a=n("13d2"),i=n("6374");e.exports=function(e,t,n,s){s||(s={});var c=s.enumerable,l=void 0!==s.name?s.name:t;if(r(n)&&a(n,l,s),s.global)c?e[t]=n:i(t,n);else{try{s.unsafe?e[t]&&(c=!0):delete e[t]}catch(u){}c?e[t]=n:o.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},cc12:function(e,t,n){var r=n("da84"),o=n("861d"),a=r.document,i=o(a)&&o(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},cc2b:function(e,t,n){},cdce:function(e,t,n){var r=n("da84"),o=n("1626"),a=r.WeakMap;e.exports=o(a)&&/native code/.test(String(a))},d012:function(e,t){e.exports={}},d039:function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},d066:function(e,t,n){var r=n("da84"),o=n("1626"),a=function(e){return o(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?a(r[e]):r[e]&&r[e][t]}},d1e7:function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,a=o&&!r.call({1:2},1);t.f=a?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},d2bb:function(e,t,n){var r=n("e330"),o=n("825a"),a=n("3bbe");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{e=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),e(n,[]),t=n instanceof Array}catch(i){}return function(n,r){return o(n),a(r),t?e(n,r):n.__proto__=r,n}}():void 0)},d44e:function(e,t,n){var r=n("9bf2").f,o=n("1a2d"),a=n("b622"),i=a("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},d58f:function(e,t,n){var r=n("59ed"),o=n("7b0b"),a=n("44ad"),i=n("07fa"),s=TypeError,c=function(e){return function(t,n,c,l){r(n);var u=o(t),f=a(u),d=i(u),p=e?d-1:0,h=e?-1:1;if(c<2)while(1){if(p in f){l=f[p],p+=h;break}if(p+=h,e?p<0:d<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=h)p in f&&(l=n(l,f[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},d9b5:function(e,t,n){var r=n("d066"),o=n("1626"),a=n("3a9b"),i=n("fdbf"),s=Object;e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&a(t.prototype,s(e))}},d9be:function(e,t,n){var r=n("0206"),o=r.System,a=(r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays),i=(r.new_array_n,r.new_byte,r.new_double,r.new_float,r.new_float_n,r.new_int),s=(r.new_int_n,r.assert),c=n("4b5e"),l=n("5f84"),u=n("f3b5"),f=n("bb22");function d(){var e=null;function t(e){this.bits=0|e}this.qupvt=null,this.setModules=function(t){this.qupvt=t,e=t};var n=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]];function r(e,t,n,r,o,a){var i=.5946/t;s(e>0),e>>=1;while(0!=e--)o[a++]=i>n[r++]?0:1,o[a++]=i>n[r++]?0:1}function p(t,n,r,o,a,i){s(t>0),t>>=1;var c=t%2;t>>=1;while(0!=t--){var l,u,f,d,p,h,m,g;l=r[o++]*n,u=r[o++]*n,p=0|l,f=r[o++]*n,h=0|u,d=r[o++]*n,m=0|f,l+=e.adj43[p],g=0|d,u+=e.adj43[h],a[i++]=0|l,f+=e.adj43[m],a[i++]=0|u,d+=e.adj43[g],a[i++]=0|f,a[i++]=0|d}0!=c&&(l=r[o++]*n,u=r[o++]*n,p=0|l,h=0|u,l+=e.adj43[p],u+=e.adj43[h],a[i++]=0|l,a[i++]=0|u)}function h(t,n,o,i,l){var u,f,d,h=0,m=0,g=0,v=0,_=n,b=0,y=_,w=0,x=t,S=0;for(d=null!=l&&i.global_gain==l.global_gain,f=i.block_type==c.SHORT_TYPE?38:21,u=0;u<=f;u++){var k=-1;if((d||i.block_type==c.NORM_TYPE)&&(k=i.global_gain-(i.scalefac[u]+(0!=i.preflag?e.pretab[u]:0)<<i.scalefac_scale+1)-8*i.subblock_gain[i.window[u]]),s(i.width[u]>=0),d&&l.step[u]==k)0!=m&&(p(m,o,x,S,y,w),m=0),0!=g&&(r(g,o,x,S,y,w),g=0);else{var M,A=i.width[u];if(h+i.width[u]>i.max_nonzero_coeff)M=i.max_nonzero_coeff-h+1,a.fill(n,i.max_nonzero_coeff,576,0),A=M,A<0&&(A=0),u=f+1;if(0==m&&0==g&&(y=_,w=b,x=t,S=v),null!=l&&l.sfb_count1>0&&u>=l.sfb_count1&&l.step[u]>0&&k>=l.step[u]?(0!=m&&(p(m,o,x,S,y,w),m=0,y=_,w=b,x=t,S=v),g+=A):(0!=g&&(r(g,o,x,S,y,w),g=0,y=_,w=b,x=t,S=v),m+=A),A<=0){0!=g&&(r(g,o,x,S,y,w),g=0),0!=m&&(p(m,o,x,S,y,w),m=0);break}}u<=f&&(b+=i.width[u],v+=i.width[u],h+=i.width[u])}0!=m&&(p(m,o,x,S,y,w),m=0),0!=g&&(r(g,o,x,S,y,w),g=0)}function m(e,t,n){var r=0,o=0;do{var a=e[t++],i=e[t++];r<a&&(r=a),o<i&&(o=i)}while(t<n);return r<o&&(r=o),r}function g(e,t,n,r,o,a){var i,s=65536*l.ht[r].xlen+l.ht[o].xlen,c=0;do{var u=e[t++],f=e[t++];0!=u&&(u>14&&(u=15,c+=s),u*=16),0!=f&&(f>14&&(f=15,c+=s),u+=f),c+=l.largetbl[u]}while(t<n);return i=65535&c,c>>=16,c>i&&(c=i,r=o),a.bits+=c,r}function v(e,t,n,r){var o=0,a=l.ht[1].hlen;do{var i=2*e[t+0]+e[t+1];t+=2,o+=a[i]}while(t<n);return r.bits+=o,1}function _(e,t,n,r,o){var a,i,s=0,c=l.ht[r].xlen;i=2==r?l.table23:l.table56;do{var u=e[t+0]*c+e[t+1];t+=2,s+=i[u]}while(t<n);return a=65535&s,s>>=16,s>a&&(s=a,r++),o.bits+=s,r}function b(e,t,n,r,o){var a=0,i=0,s=0,c=l.ht[r].xlen,u=l.ht[r].hlen,f=l.ht[r+1].hlen,d=l.ht[r+2].hlen;do{var p=e[t+0]*c+e[t+1];t+=2,a+=u[p],i+=f[p],s+=d[p]}while(t<n);var h=r;return a>i&&(a=i,h++),a>s&&(a=s,h=r+2),o.bits+=a,h}var y=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];function w(e,t,n,r){var o=m(e,t,n);switch(o){case 0:return o;case 1:return v(e,t,n,r);case 2:case 3:return _(e,t,n,y[o-1],r);case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:return b(e,t,n,y[o-1],r);default:if(o>f.IXMAX_VAL)return r.bits=f.LARGE_BITS,-1;var a,i;for(o-=15,a=24;a<32;a++)if(l.ht[a].linmax>=o)break;for(i=a-8;i<24;i++)if(l.ht[i].linmax>=o)break;return g(e,t,n,i,a,r)}}function x(e,n,r,o,a,i,s){for(var c=n.big_values,l=0;l<=22;l++)o[l]=f.LARGE_BITS;for(l=0;l<16;l++){var u=e.scalefac_band.l[l+1];if(u>=c)break;var d=0,p=new t(d),h=w(r,0,u,p);d=p.bits;for(var m=0;m<8;m++){var g=e.scalefac_band.l[l+m+2];if(g>=c)break;var v=d;p=new t(v);var _=w(r,u,g,p);v=p.bits,o[l+m]>v&&(o[l+m]=v,a[l+m]=l,i[l+m]=h,s[l+m]=_)}}}function S(e,n,r,o,a,i,s,l){for(var u=n.big_values,f=2;f<c.SBMAX_l+1;f++){var d=e.scalefac_band.l[f];if(d>=u)break;var p=a[f-2]+n.count1bits;if(r.part2_3_length<=p)break;var h=new t(p),m=w(o,d,u,h);p=h.bits,r.part2_3_length<=p||(r.assign(n),r.part2_3_length=p,r.region0_count=i[f-2],r.region1_count=f-2-i[f-2],r.table_select[0]=s[f-2],r.table_select[1]=l[f-2],r.table_select[2]=m)}}this.noquant_count_bits=function(e,n,r){var o=n.l3_enc,a=Math.min(576,n.max_nonzero_coeff+2>>1<<1);for(null!=r&&(r.sfb_count1=0);a>1;a-=2)if(0!=(o[a-1]|o[a-2]))break;n.count1=a;for(var i=0,u=0;a>3;a-=4){var f;if((2147483647&(o[a-1]|o[a-2]|o[a-3]|o[a-4]))>1)break;f=2*(2*(2*o[a-4]+o[a-3])+o[a-2])+o[a-1],i+=l.t32l[f],u+=l.t33l[f]}var d=i;if(n.count1table_select=0,i>u&&(d=u,n.count1table_select=1),n.count1bits=d,n.big_values=a,0==a)return d;if(n.block_type==c.SHORT_TYPE)i=3*e.scalefac_band.s[3],i>n.big_values&&(i=n.big_values),u=n.big_values;else if(n.block_type==c.NORM_TYPE){if(s(a<=576),i=n.region0_count=e.bv_scf[a-2],u=n.region1_count=e.bv_scf[a-1],s(i+u+2<c.SBPSY_l),u=e.scalefac_band.l[i+u+2],i=e.scalefac_band.l[i+1],u<a){var p=new t(d);n.table_select[2]=w(o,u,a,p),d=p.bits}}else n.region0_count=7,n.region1_count=c.SBMAX_l-1-7-1,i=e.scalefac_band.l[8],u=a,i>u&&(i=u);if(i=Math.min(i,a),u=Math.min(u,a),s(i>=0),s(u>=0),0<i){p=new t(d);n.table_select[0]=w(o,0,i,p),d=p.bits}if(i<u){p=new t(d);n.table_select[1]=w(o,i,u,p),d=p.bits}if(2==e.use_best_huffman&&(n.part2_3_length=d,best_huffman_divide(e,n),d=n.part2_3_length),null!=r&&n.block_type==c.NORM_TYPE){var h=0;while(e.scalefac_band.l[h]<n.big_values)h++;r.sfb_count1=h}return d},this.count_bits=function(t,n,r,o){var a=r.l3_enc,i=f.IXMAX_VAL/e.IPOW20(r.global_gain);if(r.xrpow_max>i)return f.LARGE_BITS;if(h(n,a,e.IPOW20(r.global_gain),r,o),0!=(2&t.substep_shaping))for(var c=0,l=r.global_gain+r.scalefac_scale,u=.634521682242439/e.IPOW20(l),d=0;d<r.sfbmax;d++){var p,m=r.width[d];if(s(m>=0),0==t.pseudohalf[d])c+=m;else for(p=c,c+=m;p<c;++p)a[p]=n[p]>=u?a[p]:0}return this.noquant_count_bits(t,r,o)},this.best_huffman_divide=function(e,n){var r=new u,o=n.l3_enc,a=i(23),f=i(23),d=i(23),p=i(23);if(n.block_type!=c.SHORT_TYPE||1!=e.mode_gr){r.assign(n),n.block_type==c.NORM_TYPE&&(x(e,n,o,a,f,d,p),S(e,r,n,o,a,f,d,p));var h=r.big_values;if(!(0==h||(o[h-2]|o[h-1])>1)&&(h=n.count1+2,!(h>576))){r.assign(n),r.count1=h;var m=0,g=0;for(s(h<=576);h>r.big_values;h-=4){var v=2*(2*(2*o[h-4]+o[h-3])+o[h-2])+o[h-1];m+=l.t32l[v],g+=l.t33l[v]}if(r.big_values=h,r.count1table_select=0,m>g&&(m=g,r.count1table_select=1),r.count1bits=m,r.block_type==c.NORM_TYPE)S(e,r,n,o,a,f,d,p);else{if(r.part2_3_length=m,m=e.scalefac_band.l[8],m>h&&(m=h),m>0){var _=new t(r.part2_3_length);r.table_select[0]=w(o,0,m,_),r.part2_3_length=_.bits}if(h>m){_=new t(r.part2_3_length);r.table_select[1]=w(o,m,h,_),r.part2_3_length=_.bits}n.part2_3_length>r.part2_3_length&&n.assign(r)}}}};var k=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],M=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],A=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],E=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];function T(e,t){for(var n,r=t.tt[1][e],o=t.tt[0][e],a=0;a<l.scfsi_band.length-1;a++){for(n=l.scfsi_band[a];n<l.scfsi_band[a+1];n++)if(o.scalefac[n]!=r.scalefac[n]&&r.scalefac[n]>=0)break;if(n==l.scfsi_band[a+1]){for(n=l.scfsi_band[a];n<l.scfsi_band[a+1];n++)r.scalefac[n]=-1;t.scfsi[e][a]=1}}var i=0,s=0;for(n=0;n<11;n++)-1!=r.scalefac[n]&&(s++,i<r.scalefac[n]&&(i=r.scalefac[n]));for(var u=0,f=0;n<c.SBPSY_l;n++)-1!=r.scalefac[n]&&(f++,u<r.scalefac[n]&&(u=r.scalefac[n]));for(a=0;a<16;a++)if(i<k[a]&&u<M[a]){var d=A[a]*s+E[a]*f;r.part2_length>d&&(r.part2_length=d,r.scalefac_compress=a)}}function R(e,t){for(var n=0;n<t;++n)if(e[n]<0)return!1;return!0}d.slen1_tab=A,d.slen2_tab=E,this.best_scalefac_store=function(t,n,r,o){var a,i,l,u,f=o.tt[n][r],d=0;for(l=0,a=0;a<f.sfbmax;a++){var p=f.width[a];for(s(p>=0),l+=p,u=-p;u<0;u++)if(0!=f.l3_enc[u+l])break;0==u&&(f.scalefac[a]=d=-2)}if(0==f.scalefac_scale&&0==f.preflag){var h=0;for(a=0;a<f.sfbmax;a++)f.scalefac[a]>0&&(h|=f.scalefac[a]);if(0==(1&h)&&0!=h){for(a=0;a<f.sfbmax;a++)f.scalefac[a]>0&&(f.scalefac[a]>>=1);f.scalefac_scale=d=1}}if(0==f.preflag&&f.block_type!=c.SHORT_TYPE&&2==t.mode_gr){for(a=11;a<c.SBPSY_l;a++)if(f.scalefac[a]<e.pretab[a]&&-2!=f.scalefac[a])break;if(a==c.SBPSY_l){for(a=11;a<c.SBPSY_l;a++)f.scalefac[a]>0&&(f.scalefac[a]-=e.pretab[a]);f.preflag=d=1}}for(i=0;i<4;i++)o.scfsi[r][i]=0;for(2==t.mode_gr&&1==n&&o.tt[0][r].block_type!=c.SHORT_TYPE&&o.tt[1][r].block_type!=c.SHORT_TYPE&&(T(r,o),d=0),a=0;a<f.sfbmax;a++)-2==f.scalefac[a]&&(f.scalefac[a]=0);0!=d&&(2==t.mode_gr?this.scale_bitcount(f):this.scale_bitcount_lsf(t,f))};var O=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],C=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],j=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(t){var n,r,o,a=0,i=0,l=t.scalefac;if(s(R(l,t.sfbmax)),t.block_type==c.SHORT_TYPE)o=O,0!=t.mixed_block_flag&&(o=C);else if(o=j,0==t.preflag){for(r=11;r<c.SBPSY_l;r++)if(l[r]<e.pretab[r])break;if(r==c.SBPSY_l)for(t.preflag=1,r=11;r<c.SBPSY_l;r++)l[r]-=e.pretab[r]}for(r=0;r<t.sfbdivide;r++)a<l[r]&&(a=l[r]);for(;r<t.sfbmax;r++)i<l[r]&&(i=l[r]);for(t.part2_length=f.LARGE_BITS,n=0;n<16;n++)a<k[n]&&i<M[n]&&t.part2_length>o[n]&&(t.part2_length=o[n],t.scalefac_compress=n);return t.part2_length==f.LARGE_BITS};var B=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(t,n){var r,a,l,u,f,d,p,h,m=i(4),g=n.scalefac;for(r=0!=n.preflag?2:0,p=0;p<4;p++)m[p]=0;if(n.block_type==c.SHORT_TYPE){a=1;var v=e.nr_of_sfb_block[r][a];for(h=0,l=0;l<4;l++)for(u=v[l]/3,p=0;p<u;p++,h++)for(f=0;f<3;f++)g[3*h+f]>m[l]&&(m[l]=g[3*h+f])}else{a=0;v=e.nr_of_sfb_block[r][a];for(h=0,l=0;l<4;l++)for(u=v[l],p=0;p<u;p++,h++)g[h]>m[l]&&(m[l]=g[h])}for(d=!1,l=0;l<4;l++)m[l]>B[r][l]&&(d=!0);if(!d){var _,b,y,w;for(n.sfb_partition_table=e.nr_of_sfb_block[r][a],l=0;l<4;l++)n.slen[l]=I[m[l]];switch(_=n.slen[0],b=n.slen[1],y=n.slen[2],w=n.slen[3],r){case 0:n.scalefac_compress=(5*_+b<<4)+(y<<2)+w;break;case 1:n.scalefac_compress=400+(5*_+b<<2)+y;break;case 2:n.scalefac_compress=500+3*_+b;break;default:o.err.printf("intensity stereo not implemented yet\n");break}}if(!d)for(s(null!=n.sfb_partition_table),n.part2_length=0,l=0;l<4;l++)n.part2_length+=n.slen[l]*n.sfb_partition_table[l];return d};var I=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(e){for(var t=2;t<=576;t+=2){var r,o=0;while(e.scalefac_band.l[++o]<t);r=n[o][0];while(e.scalefac_band.l[r+1]>t)r--;r<0&&(r=n[o][0]),e.bv_scf[t-2]=r,r=n[o][1];while(e.scalefac_band.l[r+e.bv_scf[t-2]+2]>t)r--;r<0&&(r=n[o][1]),e.bv_scf[t-1]=r}}}e.exports=d},d9e2:function(e,t,n){var r=n("23e7"),o=n("da84"),a=n("2ba4"),i=n("e5cb"),s="WebAssembly",c=o[s],l=7!==Error("e",{cause:7}).cause,u=function(e,t){var n={};n[e]=i(e,t,l),r({global:!0,constructor:!0,arity:1,forced:l},n)},f=function(e,t){if(c&&c[e]){var n={};n[e]=i(s+"."+e,t,l),r({target:s,stat:!0,constructor:!0,arity:1,forced:l},n)}};u("Error",(function(e){return function(t){return a(e,this,arguments)}})),u("EvalError",(function(e){return function(t){return a(e,this,arguments)}})),u("RangeError",(function(e){return function(t){return a(e,this,arguments)}})),u("ReferenceError",(function(e){return function(t){return a(e,this,arguments)}})),u("SyntaxError",(function(e){return function(t){return a(e,this,arguments)}})),u("TypeError",(function(e){return function(t){return a(e,this,arguments)}})),u("URIError",(function(e){return function(t){return a(e,this,arguments)}})),f("CompileError",(function(e){return function(t){return a(e,this,arguments)}})),f("LinkError",(function(e){return function(t){return a(e,this,arguments)}})),f("RuntimeError",(function(e){return function(t){return a(e,this,arguments)}}))},da58:function(e,t,n){"use strict";function r(e){if("string"!==typeof e||!e)throw new Error("expected a non-empty string, got: "+e)}function o(e){if("number"!==typeof e)throw new Error("expected a number, got: "+e)}n.d(t,"a",(function(){return Me}));const a=1,i=1,s="emoji",c="keyvalue",l="favorites",u="tokens",f="tokens",d="unicode",p="count",h="group",m="order",g="group-order",v="eTag",_="url",b="skinTone",y="readonly",w="readwrite",x="skinUnicodes",S="skinUnicodes",k="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",M="en";function A(e,t){const n=new Set,r=[];for(const o of e){const e=t(o);n.has(e)||(n.add(e),r.push(o))}return r}function E(e){return A(e,e=>e.unicode)}function T(e){function t(t,n,r){const o=n?e.createObjectStore(t,{keyPath:n}):e.createObjectStore(t);if(r)for(const[e,[a,i]]of Object.entries(r))o.createIndex(e,a,{multiEntry:i});return o}t(c),t(s,d,{[f]:[u,!0],[g]:[[h,m]],[x]:[S,!0]}),t(l,void 0,{[p]:[""]})}const R={},O={},C={};function j(e,t,n){n.onerror=()=>t(n.error),n.onblocked=()=>t(new Error("IDB blocked")),n.onsuccess=()=>e(n.result)}async function B(e){const t=await new Promise((t,n)=>{const r=indexedDB.open(e,a);R[e]=r,r.onupgradeneeded=e=>{e.oldVersion<i&&T(r.result)},j(t,n,r)});return t.onclose=()=>L(e),t}function I(e){return O[e]||(O[e]=B(e)),O[e]}function P(e,t,n,r){return new Promise((o,a)=>{const i=e.transaction(t,n,{durability:"relaxed"}),s="string"===typeof t?i.objectStore(t):t.map(e=>i.objectStore(e));let c;r(s,i,e=>{c=e}),i.oncomplete=()=>o(c),i.onerror=()=>a(i.error)})}function L(e){const t=R[e],n=t&&t.result;if(n){n.close();const t=C[e];if(t)for(const e of t)e()}delete R[e],delete O[e],delete C[e]}function N(e){return new Promise((t,n)=>{L(e);const r=indexedDB.deleteDatabase(e);j(t,n,r)})}function D(e,t){let n=C[e];n||(n=C[e]=[]),n.push(t)}const F=new Set([":D","XD",":'D","O:)",":X",":P",";P","XP",":L",":Z",":j","8D","XO","8)",":B",":O",":S",":'o","Dx","X(","D:",":C",">0)",":3","</3","<3","\\M/",":E","8#"]);function H(e){return e.split(/[\s_]+/).map(e=>!e.match(/\w/)||F.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}const U=2;function $(e){return e.filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=U)}function q(e){const t=e.map(({annotation:e,emoticon:t,group:n,order:r,shortcodes:o,skins:a,tags:i,emoji:s,version:c})=>{const l=[...new Set($([...(o||[]).map(H).flat(),...i.map(H).flat(),...H(e),t]))].sort(),u={annotation:e,group:n,order:r,tags:i,tokens:l,unicode:s,version:c};if(t&&(u.emoticon=t),o&&(u.shortcodes=o),a){u.skinTones=[],u.skinUnicodes=[],u.skinVersions=[];for(const{tone:e,emoji:t,version:n}of a)u.skinTones.push(e),u.skinUnicodes.push(t),u.skinVersions.push(n)}return u});return t}function V(e,t,n,r){e[t](n).onsuccess=e=>r&&r(e.target.result)}function z(e,t,n){V(e,"get",t,n)}function X(e,t,n){V(e,"getAll",t,n)}function Y(e){e.commit&&e.commit()}function G(e,t){let n=e[0];for(let r=1;r<e.length;r++){const o=e[r];t(n)>t(o)&&(n=o)}return n}function W(e,t){const n=G(e,e=>e.length),r=[];for(const o of n)e.some(e=>-1===e.findIndex(e=>t(e)===t(o)))||r.push(o);return r}async function K(e){return!await oe(e,c,_)}async function Z(e,t,n){const[r,o]=await Promise.all([v,_].map(t=>oe(e,c,t)));return r===n&&o===t}async function Q(e,t){const n=50;return P(e,s,y,(e,r,o)=>{let a;const i=()=>{e.getAll(a&&IDBKeyRange.lowerBound(a,!0),n).onsuccess=e=>{const r=e.target.result;for(const n of r)if(a=n.unicode,t(n))return o(n);if(r.length<n)return o();i()}};i()})}async function J(e,t,n,r){try{const o=q(t);await P(e,[s,c],w,([e,t],a)=>{let i,s,c=0;function l(){2===++c&&u()}function u(){if(i!==r||s!==n){e.clear();for(const t of o)e.put(t);t.put(r,v),t.put(n,_),Y(a)}}z(t,v,e=>{i=e,l()}),z(t,_,e=>{s=e,l()})})}finally{}}async function ee(e,t){return P(e,s,y,(e,n,r)=>{const o=IDBKeyRange.bound([t,0],[t+1,0],!1,!0);X(e.index(g),o,r)})}async function te(e,t){const n=$(H(t));return n.length?P(e,s,y,(e,t,r)=>{const o=[],a=()=>{o.length===n.length&&i()},i=()=>{const e=W(o,e=>e.unicode);r(e.sort((e,t)=>e.order<t.order?-1:1))};for(let s=0;s<n.length;s++){const t=n[s],r=s===n.length-1?IDBKeyRange.bound(t,t+"￿",!1,!0):IDBKeyRange.only(t);X(e.index(f),r,e=>{o.push(e),a()})}}):[]}async function ne(e,t){const n=await te(e,t);if(!n.length){const n=e=>(e.shortcodes||[]).includes(t.toLowerCase());return await Q(e,n)||null}return n.filter(e=>{const n=(e.shortcodes||[]).map(e=>e.toLowerCase());return n.includes(t.toLowerCase())})[0]||null}async function re(e,t){return P(e,s,y,(e,n,r)=>z(e,t,n=>{if(n)return r(n);z(e.index(x),t,e=>r(e||null))}))}function oe(e,t,n){return P(e,t,y,(e,t,r)=>z(e,n,r))}function ae(e,t,n,r){return P(e,t,w,(e,t)=>{e.put(r,n),Y(t)})}function ie(e,t){return P(e,l,w,(e,n)=>z(e,t,r=>{e.put((r||0)+1,t),Y(n)}))}function se(e,t,n){return 0===n?[]:P(e,[l,s],y,([e,r],o,a)=>{const i=[];e.index(p).openCursor(void 0,"prev").onsuccess=e=>{const o=e.target.result;if(!o)return a(i);function s(e){if(i.push(e),i.length===n)return a(i);o.continue()}const c=o.primaryKey,l=t.byName(c);if(l)return s(l);z(r,c,e=>{if(e)return s(e);o.continue()})}})}const ce="";function le(e,t){const n=new Map;for(const o of e){const e=t(o);for(const t of e){let e=n;for(let n=0;n<t.length;n++){const r=t.charAt(n);let o=e.get(r);o||(o=new Map,e.set(r,o)),e=o}let r=e.get(ce);r||(r=[],e.set(ce,r)),r.push(o)}}const r=(e,t)=>{let r=n;for(let n=0;n<e.length;n++){const t=e.charAt(n),o=r.get(t);if(!o)return[];r=o}if(t){const e=r.get(ce);return e||[]}const o=[],a=[r];while(a.length){const e=a.shift(),t=[...e.entries()].sort((e,t)=>e[0]<t[0]?-1:1);for(const[n,r]of t)n===ce?o.push(...r):a.push(r)}return o};return r}const ue=["name","url"];function fe(e){const t=e&&Array.isArray(e),n=t&&e.length&&(!e[0]||ue.some(t=>!(t in e[0])));if(!t||n)throw new Error("Custom emojis are in the wrong format")}function de(e){fe(e);const t=(e,t)=>e.name.toLowerCase()<t.name.toLowerCase()?-1:1,n=e.sort(t),r=e=>[...new Set((e.shortcodes||[]).map(e=>H(e)).flat())],o=le(e,r),a=e=>o(e,!0),i=e=>o(e,!1),s=e=>{const n=H(e),r=n.map((e,t)=>(t<n.length-1?a:i)(e));return W(r,e=>e.name).sort(t)},c=new Map,l=new Map;for(const d of e){l.set(d.name.toLowerCase(),d);for(const e of d.shortcodes||[])c.set(e.toLowerCase(),d)}const u=e=>c.get(e.toLowerCase()),f=e=>l.get(e.toLowerCase());return{all:n,search:s,byShortcode:u,byName:f}}function pe(e){if(!e)return e;if(delete e.tokens,e.skinTones){const t=e.skinTones.length;e.skins=Array(t);for(let n=0;n<t;n++)e.skins[n]={tone:e.skinTones[n],unicode:e.skinUnicodes[n],version:e.skinVersions[n]};delete e.skinTones,delete e.skinUnicodes,delete e.skinVersions}return e}function he(e){e||console.warn("emoji-picker-element is more efficient if the dataSource server exposes an ETag header.")}const me=["annotation","emoji","group","order","tags","version"];function ge(e){if(!e||!Array.isArray(e)||!e[0]||"object"!==typeof e[0]||me.some(t=>!(t in e[0])))throw new Error("Emoji data is in the wrong format")}function ve(e,t){if(2!==Math.floor(e.status/100))throw new Error("Failed to fetch: "+t+":  "+e.status)}async function _e(e){const t=await fetch(e,{method:"HEAD"});ve(t,e);const n=t.headers.get("etag");return he(n),n}async function be(e){const t=await fetch(e);ve(t,e);const n=t.headers.get("etag");he(n);const r=await t.json();return ge(r),[n,r]}function ye(e){var t="",n=new Uint8Array(e),r=n.byteLength,o=-1;while(++o<r)t+=String.fromCharCode(n[o]);return t}function we(e){var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),o=-1;while(++o<t)r[o]=e.charCodeAt(o);return n}async function xe(e){const t=JSON.stringify(e),n=we(t),r=await crypto.subtle.digest("SHA-1",n),o=ye(r),a=btoa(o);return a}async function Se(e,t){let n,r=await _e(t);if(!r){const e=await be(t);r=e[0],n=e[1],r||(r=await xe(n))}if(await Z(e,t,r));else{if(!n){const e=await be(t);n=e[1]}await J(e,n,t,r)}}async function ke(e,t){let[n,r]=await be(t);n||(n=await xe(r)),await J(e,r,t,n)}class Me{constructor({dataSource:e=k,locale:t=M,customEmoji:n=[]}={}){this.dataSource=e,this.locale=t,this._dbName="emoji-picker-element-"+this.locale,this._db=void 0,this._lazyUpdate=void 0,this._custom=de(n),this._clear=this._clear.bind(this),this._ready=this._init()}async _init(){const e=this._db=await I(this._dbName);D(this._dbName,this._clear);const t=this.dataSource,n=await K(e);n?await ke(e,t):this._lazyUpdate=Se(e,t)}async ready(){const e=async()=>(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return o(e),await this.ready(),E(await ee(this._db,e)).map(pe)}async getEmojiBySearchQuery(e){r(e),await this.ready();const t=this._custom.search(e),n=E(await te(this._db,e)).map(pe);return[...t,...n]}async getEmojiByShortcode(e){r(e),await this.ready();const t=this._custom.byShortcode(e);return t||pe(await ne(this._db,e))}async getEmojiByUnicodeOrName(e){r(e),await this.ready();const t=this._custom.byName(e);return t||pe(await re(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await oe(this._db,c,b)||0}async setPreferredSkinTone(e){return o(e),await this.ready(),ae(this._db,c,b,e)}async incrementFavoriteEmojiCount(e){return r(e),await this.ready(),ie(this._db,e)}async getTopFavoriteEmoji(e){return o(e),await this.ready(),(await se(this._db,this._custom,e)).map(pe)}set customEmoji(e){this._custom=de(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch(e){}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await L(this._dbName)}async delete(){await this._shutdown(),await N(this._dbName)}}},da84:function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},db3f:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte),a=(r.new_double,r.new_float,r.new_float_n,r.new_int,r.new_int_n,r.assert);Lame=n("dead"),Presets=n("3967"),GainAnalysis=n("2f21"),QuantizePVT=n("bb22"),Quantize=n("dbb1"),Takehiro=n("d9be"),Reservoir=n("58b1"),MPEGMode=n("67b2"),BitStream=n("69b2");n("4b5e");var i=n("8cba"),s=n("e107");function c(){this.setModules=function(e,t){e,t}}function l(){this.setModules=function(e,t,n){e,t,n}}function u(){}function f(){this.setModules=function(e,t){e,t}}function d(e,t,n){3!=arguments.length&&(console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"),e=1,t=44100,n=128);var r=new Lame,d=new c,p=new GainAnalysis,h=new BitStream,m=new Presets,g=new QuantizePVT,v=new Quantize,_=new s,b=new i,y=new f,w=new Reservoir,x=new Takehiro,S=new l,k=new u;r.setModules(p,h,m,g,v,_,b,y,k),h.setModules(p,k,b,_),y.setModules(h,b),m.setModules(r),v.setModules(h,w,g,x),g.setModules(x,w,r.enc.psy),w.setModules(h),x.setModules(g),_.setModules(r,h,b),d.setModules(S,k),S.setModules(b,y,m);var M=r.lame_init();M.num_channels=e,M.in_samplerate=t,M.brate=n,M.mode=MPEGMode.STEREO,M.quality=3,M.bWriteVbrTag=!1,M.disable_reservoir=!0,M.write_id3tag_automatic=!1;var A=r.lame_init_params(M);a(0==A);var E=1152,T=0|1.25*E+7200,R=o(T);this.encodeBuffer=function(t,n){1==e&&(n=t),a(t.length==n.length),t.length>E&&(E=t.length,T=0|1.25*E+7200,R=o(T));var i=r.lame_encode_buffer(M,t,n,t.length,R,0,T);return new Int8Array(R.subarray(0,i))},this.flush=function(){var e=r.lame_encode_flush(M,R,0,T);return new Int8Array(R.subarray(0,e))}}function p(){this.dataOffset=0,this.dataLen=0,this.channels=0,this.sampleRate=0}function h(e){return e.charCodeAt(0)<<24|e.charCodeAt(1)<<16|e.charCodeAt(2)<<8|e.charCodeAt(3)}p.RIFF=h("RIFF"),p.WAVE=h("WAVE"),p.fmt_=h("fmt "),p.data=h("data"),p.readHeader=function(e){var t=new p,n=e.getUint32(0,!1);if(p.RIFF==n){e.getUint32(4,!0);if(p.WAVE==e.getUint32(8,!1)&&p.fmt_==e.getUint32(12,!1)){var r=e.getUint32(16,!0),o=20;switch(r){case 16:case 18:t.channels=e.getUint16(o+2,!0),t.sampleRate=e.getUint32(o+4,!0);break;default:throw"extended fmt chunk not implemented"}o+=r;var a=p.data,i=0;while(a!=n){if(n=e.getUint32(o,!1),i=e.getUint32(o+4,!0),a==n)break;o+=i+8}return t.dataLen=i,t.dataOffset=o+8,t}}},e.exports.Mp3Encoder=d,e.exports.WavHeader=p},dbb1:function(e,t,n){var r=n("0206"),o=r.System,a=r.VbrMode,i=(r.Float,r.ShortBlock,r.Util),s=r.Arrays,c=(r.new_array_n,r.new_byte,r.new_double,r.new_float),l=(r.new_float_n,r.new_int,r.new_int_n,r.assert),u=n("a26a"),f=n("7276"),d=n("09e6"),p=n("4b5e"),h=n("f3b5"),m=n("9828");function g(){var e,t,n;this.rv=null,this.qupvt=null;var r,g=new u;function v(e,t,n,r){r=0;for(var o=0;o<=n;++o){var a=Math.abs(e.xr[o]);r+=a,t[o]=Math.sqrt(a*Math.sqrt(a)),t[o]>e.xrpow_max&&(e.xrpow_max=t[o])}return r}function _(e,t){var r=e.ATH,o=t.xr;if(t.block_type!=p.SHORT_TYPE)for(var a=!1,i=p.PSFB21-1;i>=0&&!a;i--){var s=e.scalefac_band.psfb21[i],c=e.scalefac_band.psfb21[i+1],l=n.athAdjust(r.adjust,r.psfb21[i],r.floor);e.nsPsy.longfact[21]>1e-12&&(l*=e.nsPsy.longfact[21]);for(var u=c-1;u>=s;u--){if(!(Math.abs(o[u])<l)){a=!0;break}o[u]=0}}else for(var f=0;f<3;f++)for(a=!1,i=p.PSFB12-1;i>=0&&!a;i--){s=3*e.scalefac_band.s[12]+(e.scalefac_band.s[13]-e.scalefac_band.s[12])*f+(e.scalefac_band.psfb12[i]-e.scalefac_band.psfb12[0]),c=s+(e.scalefac_band.psfb12[i+1]-e.scalefac_band.psfb12[i]);var d=n.athAdjust(r.adjust,r.psfb12[i],r.floor);e.nsPsy.shortfact[12]>1e-12&&(d*=e.nsPsy.shortfact[12]);for(u=c-1;u>=s;u--){if(!(Math.abs(o[u])<d)){a=!0;break}o[u]=0}}}function b(e){this.ordinal=e}function y(e,t,n,o,a){var i,s=e.CurrentStep[o],c=!1,u=e.OldValue[o],f=b.BINSEARCH_NONE;for(t.global_gain=u,n-=t.part2_length,l(0!=s);;){var d;if(i=r.count_bits(e,a,t,null),1==s||i==n)break;i>n?(f==b.BINSEARCH_DOWN&&(c=!0),c&&(s/=2),f=b.BINSEARCH_UP,d=s):(f==b.BINSEARCH_UP&&(c=!0),c&&(s/=2),f=b.BINSEARCH_DOWN,d=-s),t.global_gain+=d,t.global_gain<0&&(t.global_gain=0,c=!0),t.global_gain>255&&(t.global_gain=255,c=!0)}l(t.global_gain>=0),l(t.global_gain<256);while(i>n&&t.global_gain<255)t.global_gain++,i=r.count_bits(e,a,t,null);return e.CurrentStep[o]=u-t.global_gain>=4?4:2,e.OldValue[o]=t.global_gain,t.part2_3_length=i,i}function w(e){for(var t=0;t<e.sfbmax;t++)if(e.scalefac[t]+e.subblock_gain[e.window[t]]==0)return!1;return!0}function x(e){return i.FAST_LOG10(.368+.632*e*e*e)}function S(e,t){for(var n=1e-37,r=0;r<t.psymax;r++)n+=x(e[r]);return Math.max(1e-20,n)}function k(e,t,n,r,o){var a;switch(e){default:case 9:t.over_count>0?(a=n.over_SSD<=t.over_SSD,n.over_SSD==t.over_SSD&&(a=n.bits<t.bits)):a=n.max_noise<0&&10*n.max_noise+n.bits<=10*t.max_noise+t.bits;break;case 0:a=n.over_count<t.over_count||n.over_count==t.over_count&&n.over_noise<t.over_noise||n.over_count==t.over_count&&BitStream.EQ(n.over_noise,t.over_noise)&&n.tot_noise<t.tot_noise;break;case 8:n.max_noise=S(o,r);case 1:a=n.max_noise<t.max_noise;break;case 2:a=n.tot_noise<t.tot_noise;break;case 3:a=n.tot_noise<t.tot_noise&&n.max_noise<t.max_noise;break;case 4:a=n.max_noise<=0&&t.max_noise>.2||n.max_noise<=0&&t.max_noise<0&&t.max_noise>n.max_noise-.2&&n.tot_noise<t.tot_noise||n.max_noise<=0&&t.max_noise>0&&t.max_noise>n.max_noise-.2&&n.tot_noise<t.tot_noise+t.over_noise||n.max_noise>0&&t.max_noise>-.05&&t.max_noise>n.max_noise-.1&&n.tot_noise+n.over_noise<t.tot_noise+t.over_noise||n.max_noise>0&&t.max_noise>-.1&&t.max_noise>n.max_noise-.15&&n.tot_noise+n.over_noise+n.over_noise<t.tot_noise+t.over_noise+t.over_noise;break;case 5:a=n.over_noise<t.over_noise||BitStream.EQ(n.over_noise,t.over_noise)&&n.tot_noise<t.tot_noise;break;case 6:a=n.over_noise<t.over_noise||BitStream.EQ(n.over_noise,t.over_noise)&&(n.max_noise<t.max_noise||BitStream.EQ(n.max_noise,t.max_noise)&&n.tot_noise<=t.tot_noise);break;case 7:a=n.over_count<t.over_count||n.over_noise<t.over_noise;break}return 0==t.over_count&&(a=a&&n.bits<t.bits),a}function M(e,t,n,r,o){var a,i=e.internal_flags;a=0==t.scalefac_scale?1.2968395546510096:1.6817928305074292;for(var s=0,c=0;c<t.sfbmax;c++)s<n[c]&&(s=n[c]);var l=i.noise_shaping_amp;switch(3==l&&(l=o?2:1),l){case 2:break;case 1:s>1?s=Math.pow(s,.5):s*=.95;break;case 0:default:s>1?s=1:s*=.95;break}var u=0;for(c=0;c<t.sfbmax;c++){var f,d=t.width[c];if(u+=d,!(n[c]<s)){if(0!=(2&i.substep_shaping)&&(i.pseudohalf[c]=0==i.pseudohalf[c]?1:0,0==i.pseudohalf[c]&&2==i.noise_shaping_amp))return;for(t.scalefac[c]++,f=-d;f<0;f++)r[u+f]*=a,r[u+f]>t.xrpow_max&&(t.xrpow_max=r[u+f]);if(2==i.noise_shaping_amp)return}}}function A(e,t){for(var r=1.2968395546510096,o=0,a=0;a<e.sfbmax;a++){var i=e.width[a],s=e.scalefac[a];if(0!=e.preflag&&(s+=n.pretab[a]),o+=i,0!=(1&s)){s++;for(var c=-i;c<0;c++)t[o+c]*=r,t[o+c]>e.xrpow_max&&(e.xrpow_max=t[o+c])}e.scalefac[a]=s>>1}e.preflag=0,e.scalefac_scale=1}function E(e,t,r){var o,a=t.scalefac;for(o=0;o<t.sfb_lmax;o++)if(a[o]>=16)return!0;for(var i=0;i<3;i++){var s=0,c=0;for(o=t.sfb_lmax+i;o<t.sfbdivide;o+=3)s<a[o]&&(s=a[o]);for(;o<t.sfbmax;o+=3)c<a[o]&&(c=a[o]);if(!(s<16&&c<8)){if(t.subblock_gain[i]>=7)return!0;t.subblock_gain[i]++;var u=e.scalefac_band.l[t.sfb_lmax];for(o=t.sfb_lmax+i;o<t.sfbmax;o+=3){var f=t.width[o],d=a[o];if(l(d>=0),d-=4>>t.scalefac_scale,d>=0)a[o]=d,u+=3*f;else{a[o]=0;var p=210+(d<<t.scalefac_scale+1);m=n.IPOW20(p),u+=f*(i+1);for(var h=-f;h<0;h++)r[u+h]*=m,r[u+h]>t.xrpow_max&&(t.xrpow_max=r[u+h]);u+=f*(3-i-1)}}var m=n.IPOW20(202);u+=t.width[o]*(i+1);for(h=-t.width[o];h<0;h++)r[u+h]*=m,r[u+h]>t.xrpow_max&&(t.xrpow_max=r[u+h])}}return!1}function T(e,t,n,o,a){var i=e.internal_flags;M(e,t,n,o,a);var c=w(t);return!c&&(c=2==i.mode_gr?r.scale_bitcount(t):r.scale_bitcount_lsf(i,t),!c||(i.noise_shaping>1&&(s.fill(i.pseudohalf,0),0==t.scalefac_scale?(A(t,o),c=!1):t.block_type==p.SHORT_TYPE&&i.subblock_gain>0&&(c=E(i,t,o)||w(t))),c||(c=2==i.mode_gr?r.scale_bitcount(t):r.scale_bitcount_lsf(i,t)),!c))}this.setModules=function(o,a,i,s){e=o,t=a,this.rv=a,n=i,this.qupvt=i,r=s,g.setModules(n,r)},this.ms_convert=function(e,t){for(var n=0;n<576;++n){var r=e.tt[t][0].xr[n],o=e.tt[t][1].xr[n];e.tt[t][0].xr[n]=(r+o)*(.5*i.SQRT2),e.tt[t][1].xr[n]=(r-o)*(.5*i.SQRT2)}},this.init_xrpow=function(e,t,n){var r=0,o=0|t.max_nonzero_coeff;if(l(null!=n),t.xrpow_max=0,l(0<=o&&o<=575),s.fill(n,o,576,0),r=v(t,n,o,r),r>1e-20){var a=0;0!=(2&e.substep_shaping)&&(a=1);for(var i=0;i<t.psymax;i++)e.pseudohalf[i]=a;return!0}return s.fill(t.l3_enc,0,576,0),!1},this.init_outer_loop=function(e,t){t.part2_3_length=0,t.big_values=0,t.count1=0,t.global_gain=210,t.scalefac_compress=0,t.table_select[0]=0,t.table_select[1]=0,t.table_select[2]=0,t.subblock_gain[0]=0,t.subblock_gain[1]=0,t.subblock_gain[2]=0,t.subblock_gain[3]=0,t.region0_count=0,t.region1_count=0,t.preflag=0,t.scalefac_scale=0,t.count1table_select=0,t.part2_length=0,t.sfb_lmax=p.SBPSY_l,t.sfb_smin=p.SBPSY_s,t.psy_lmax=e.sfb21_extra?p.SBMAX_l:p.SBPSY_l,t.psymax=t.psy_lmax,t.sfbmax=t.sfb_lmax,t.sfbdivide=11;for(var r=0;r<p.SBMAX_l;r++)t.width[r]=e.scalefac_band.l[r+1]-e.scalefac_band.l[r],t.window[r]=3;if(t.block_type==p.SHORT_TYPE){var a=c(576);t.sfb_smin=0,t.sfb_lmax=0,0!=t.mixed_block_flag&&(t.sfb_smin=3,t.sfb_lmax=2*e.mode_gr+4),t.psymax=t.sfb_lmax+3*((e.sfb21_extra?p.SBMAX_s:p.SBPSY_s)-t.sfb_smin),t.sfbmax=t.sfb_lmax+3*(p.SBPSY_s-t.sfb_smin),t.sfbdivide=t.sfbmax-18,t.psy_lmax=t.sfb_lmax;var i=e.scalefac_band.l[t.sfb_lmax];o.arraycopy(t.xr,0,a,0,576);for(r=t.sfb_smin;r<p.SBMAX_s;r++)for(var l=e.scalefac_band.s[r],u=e.scalefac_band.s[r+1],f=0;f<3;f++)for(var d=l;d<u;d++)t.xr[i++]=a[3*d+f];var h=t.sfb_lmax;for(r=t.sfb_smin;r<p.SBMAX_s;r++)t.width[h]=t.width[h+1]=t.width[h+2]=e.scalefac_band.s[r+1]-e.scalefac_band.s[r],t.window[h]=0,t.window[h+1]=1,t.window[h+2]=2,h+=3}t.count1bits=0,t.sfb_partition_table=n.nr_of_sfb_block[0][0],t.slen[0]=0,t.slen[1]=0,t.slen[2]=0,t.slen[3]=0,t.max_nonzero_coeff=575,s.fill(t.scalefac,0),_(e,t)},b.BINSEARCH_NONE=new b(0),b.BINSEARCH_UP=new b(1),b.BINSEARCH_DOWN=new b(2),this.trancate_smallspectrums=function(e,t,o,a){var i=c(m.SFBMAX);if((0!=(4&e.substep_shaping)||t.block_type!=p.SHORT_TYPE)&&0==(128&e.substep_shaping)){n.calc_noise(t,o,i,new f,null);for(var l=0;l<576;l++){var u=0;0!=t.l3_enc[l]&&(u=Math.abs(t.xr[l])),a[l]=u}l=0;var d=8;t.block_type==p.SHORT_TYPE&&(d=6);do{var h,g,v,_,b=t.width[d];if(l+=b,!(i[d]>=1)&&(s.sort(a,l-b,b),!BitStream.EQ(a[l-1],0))){h=(1-i[d])*o[d],g=0,_=0;do{var y;for(v=1;_+v<b;v++)if(BitStream.NEQ(a[_+l-b],a[_+l+v-b]))break;if(y=a[_+l-b]*a[_+l-b]*v,h<y){0!=_&&(g=a[_+l-b-1]);break}h-=y,_+=v}while(_<b);if(!BitStream.EQ(g,0))do{Math.abs(t.xr[l-b])<=g&&(t.l3_enc[l-b]=0)}while(--b>0)}}while(++d<t.psymax);t.part2_3_length=r.noquant_count_bits(e,t,null)}},this.outer_loop=function(e,t,i,s,u,g){var v,_=e.internal_flags,b=new h,w=c(576),x=c(m.SFBMAX),S=new f,M=new d,A=9999999,E=!1,R=!1,O=0;if(y(_,t,g,u,s),0==_.noise_shaping)return 100;n.calc_noise(t,i,x,S,M),S.bits=t.part2_3_length,b.assign(t);var C=0;o.arraycopy(s,0,w,0,576);while(!E){do{var j,B=new f,I=255;if(j=0!=(2&_.substep_shaping)?20:3,_.sfb21_extra){if(x[b.sfbmax]>1)break;if(b.block_type==p.SHORT_TYPE&&(x[b.sfbmax+1]>1||x[b.sfbmax+2]>1))break}if(!T(e,b,x,s,R))break;0!=b.scalefac_scale&&(I=254);var P=g-b.part2_length;if(P<=0)break;while((b.part2_3_length=r.count_bits(_,s,b,M))>P&&b.global_gain<=I)b.global_gain++;if(b.global_gain>I)break;if(0==S.over_count){while((b.part2_3_length=r.count_bits(_,s,b,M))>A&&b.global_gain<=I)b.global_gain++;if(b.global_gain>I)break}if(n.calc_noise(b,i,x,B,M),B.bits=b.part2_3_length,v=t.block_type!=p.SHORT_TYPE?e.quant_comp:e.quant_comp_short,v=k(v,S,B,b,x)?1:0,0!=v)A=t.part2_3_length,S=B,t.assign(b),C=0,o.arraycopy(s,0,w,0,576);else if(0==_.full_outer_loop){if(++C>j&&0==S.over_count)break;if(3==_.noise_shaping_amp&&R&&C>30)break;if(3==_.noise_shaping_amp&&R&&b.global_gain-O>15)break}}while(b.global_gain+b.scalefac_scale<255);3==_.noise_shaping_amp?R?E=!0:(b.assign(t),o.arraycopy(w,0,s,0,576),C=0,O=b.global_gain,R=!0):E=!0}return l(t.global_gain+t.scalefac_scale<=255),e.VBR==a.vbr_rh||e.VBR==a.vbr_mtrh?o.arraycopy(w,0,s,0,576):0!=(1&_.substep_shaping)&&trancate_smallspectrums(_,t,i,s),S.over_count},this.iteration_finish_one=function(e,n,o){var a=e.l3_side,i=a.tt[n][o];r.best_scalefac_store(e,n,o,a),1==e.use_best_huffman&&r.best_huffman_divide(e,i),t.ResvAdjust(e,i)},this.VBR_encode_granule=function(e,t,n,r,a,i,u){var f,d,p=e.internal_flags,m=new h,g=c(576),v=u,_=u+1,b=(u+i)/2,y=0,w=p.sfb21_extra;l(v<=LameInternalFlags.MAX_BITS_PER_CHANNEL),s.fill(m.l3_enc,0);do{l(b>=i),l(b<=u),l(i<=u),p.sfb21_extra=!(b>v-42)&&w,d=outer_loop(e,t,n,r,a,b),d<=0?(y=1,_=t.part2_3_length,m.assign(t),o.arraycopy(r,0,g,0,576),u=_-32,f=u-i,b=(u+i)/2):(i=b+32,f=u-i,b=(u+i)/2,0!=y&&(y=2,t.assign(m),o.arraycopy(g,0,r,0,576)))}while(f>12);p.sfb21_extra=w,2==y&&o.arraycopy(m.l3_enc,0,t.l3_enc,0,576),l(t.part2_3_length<=v)},this.get_framebits=function(n,r){var o=n.internal_flags;o.bitrate_index=o.VBR_min_bitrate;var a=e.getframebits(n);o.bitrate_index=1,a=e.getframebits(n);for(var i=1;i<=o.VBR_max_bitrate;i++){o.bitrate_index=i;var s=new MeanBits(a);r[i]=t.ResvFrameBegin(n,s),a=s.bits}},this.VBR_old_prepare=function(e,r,o,a,i,s,c,l,u){var f,d=e.internal_flags,h=0,m=1,g=0;d.bitrate_index=d.VBR_max_bitrate;var v=t.ResvFrameBegin(e,new MeanBits(0))/d.mode_gr;get_framebits(e,s);for(var _=0;_<d.mode_gr;_++){var b=n.on_pe(e,r,l[_],v,_,0);d.mode_ext==p.MPG_MD_MS_LR&&(ms_convert(d.l3_side,_),n.reduce_side(l[_],o[_],v,b));for(var y=0;y<d.channels_out;++y){var w=d.l3_side.tt[_][y];w.block_type!=p.SHORT_TYPE?(h=1.28/(1+Math.exp(3.5-r[_][y]/300))-.05,f=d.PSY.mask_adjust-h):(h=2.56/(1+Math.exp(3.5-r[_][y]/300))-.14,f=d.PSY.mask_adjust_short-h),d.masking_lower=Math.pow(10,.1*f),init_outer_loop(d,w),u[_][y]=n.calc_xmin(e,a[_][y],w,i[_][y]),0!=u[_][y]&&(m=0),c[_][y]=126,g+=l[_][y]}}for(_=0;_<d.mode_gr;_++)for(y=0;y<d.channels_out;y++)g>s[d.VBR_max_bitrate]&&(l[_][y]*=s[d.VBR_max_bitrate],l[_][y]/=g),c[_][y]>l[_][y]&&(c[_][y]=l[_][y]);return m},this.bitpressure_strategy=function(e,t,n,r){for(var o=0;o<e.mode_gr;o++)for(var a=0;a<e.channels_out;a++){for(var i=e.l3_side.tt[o][a],s=t[o][a],c=0,l=0;l<i.psy_lmax;l++)s[c++]*=1+.029*l*l/p.SBMAX_l/p.SBMAX_l;if(i.block_type==p.SHORT_TYPE)for(l=i.sfb_smin;l<p.SBMAX_s;l++)s[c++]*=1+.029*l*l/p.SBMAX_s/p.SBMAX_s,s[c++]*=1+.029*l*l/p.SBMAX_s/p.SBMAX_s,s[c++]*=1+.029*l*l/p.SBMAX_s/p.SBMAX_s;r[o][a]=0|Math.max(n[o][a],.9*r[o][a])}},this.VBR_new_prepare=function(e,r,o,a,i,s){var c,l=e.internal_flags,u=1,f=0,d=0;if(e.free_format){l.bitrate_index=0;h=new MeanBits(f);c=t.ResvFrameBegin(e,h),f=h.bits,i[0]=c}else{l.bitrate_index=l.VBR_max_bitrate;var h=new MeanBits(f);t.ResvFrameBegin(e,h),f=h.bits,get_framebits(e,i),c=i[l.VBR_max_bitrate]}for(var m=0;m<l.mode_gr;m++){n.on_pe(e,r,s[m],f,m,0),l.mode_ext==p.MPG_MD_MS_LR&&ms_convert(l.l3_side,m);for(var g=0;g<l.channels_out;++g){var v=l.l3_side.tt[m][g];l.masking_lower=Math.pow(10,.1*l.PSY.mask_adjust),init_outer_loop(l,v),0!=n.calc_xmin(e,o[m][g],v,a[m][g])&&(u=0),d+=s[m][g]}}for(m=0;m<l.mode_gr;m++)for(g=0;g<l.channels_out;g++)d>c&&(s[m][g]*=c,s[m][g]/=d);return u},this.calc_target_bits=function(r,o,a,i,s,c){var l,u,f,d,h=r.internal_flags,m=h.l3_side,g=0;h.bitrate_index=h.VBR_max_bitrate;var v=new MeanBits(g);for(c[0]=t.ResvFrameBegin(r,v),g=v.bits,h.bitrate_index=1,g=e.getframebits(r)-8*h.sideinfo_len,s[0]=g/(h.mode_gr*h.channels_out),g=r.VBR_mean_bitrate_kbps*r.framesize*1e3,0!=(1&h.substep_shaping)&&(g*=1.09),g/=r.out_samplerate,g-=8*h.sideinfo_len,g/=h.mode_gr*h.channels_out,l=.93+.07*(11-r.compression_ratio)/5.5,l<.9&&(l=.9),l>1&&(l=1),u=0;u<h.mode_gr;u++){var _=0;for(f=0;f<h.channels_out;f++){if(i[u][f]=int(l*g),o[u][f]>700){var b=int((o[u][f]-700)/1.4),y=m.tt[u][f];i[u][f]=int(l*g),y.block_type==p.SHORT_TYPE&&b<g/2&&(b=g/2),b>3*g/2?b=3*g/2:b<0&&(b=0),i[u][f]+=b}i[u][f]>LameInternalFlags.MAX_BITS_PER_CHANNEL&&(i[u][f]=LameInternalFlags.MAX_BITS_PER_CHANNEL),_+=i[u][f]}if(_>LameInternalFlags.MAX_BITS_PER_GRANULE)for(f=0;f<h.channels_out;++f)i[u][f]*=LameInternalFlags.MAX_BITS_PER_GRANULE,i[u][f]/=_}if(h.mode_ext==p.MPG_MD_MS_LR)for(u=0;u<h.mode_gr;u++)n.reduce_side(i[u],a[u],g*h.channels_out,LameInternalFlags.MAX_BITS_PER_GRANULE);for(d=0,u=0;u<h.mode_gr;u++)for(f=0;f<h.channels_out;f++)i[u][f]>LameInternalFlags.MAX_BITS_PER_CHANNEL&&(i[u][f]=LameInternalFlags.MAX_BITS_PER_CHANNEL),d+=i[u][f];if(d>c[0])for(u=0;u<h.mode_gr;u++)for(f=0;f<h.channels_out;f++)i[u][f]*=c[0],i[u][f]/=d}}e.exports=g},dc4a:function(e,t,n){var r=n("59ed"),o=n("7234");e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},dcc3:function(e,t,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),a=n("5c6c"),i=n("d44e"),s=n("3f8c"),c=function(){return this};e.exports=function(e,t,n,l){var u=t+" Iterator";return e.prototype=o(r,{next:a(+!l,n)}),i(e,u,!1,!0),s[u]=c,e}},dead:function(e,t,n){var r=n("0206"),o=r.System,a=r.VbrMode,i=(r.Float,r.ShortBlock),s=(r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),c=(r.new_float_n,r.new_int,r.new_int_n),l=r.new_short_n,u=r.assert,f=n("2474"),d=n("947f"),p=n("bd8b"),h=n("abf5"),m=n("725d"),g=n("4a65"),v=n("69b2"),_=n("5f84"),b=n("4b5e");function y(){var e=this,t=131072;y.V9=410,y.V8=420,y.V7=430,y.V6=440,y.V5=450,y.V4=460,y.V3=470,y.V2=480,y.V1=490,y.V0=500,y.R3MIX=1e3,y.STANDARD=1001,y.EXTREME=1002,y.INSANE=1003,y.STANDARD_FAST=1004,y.EXTREME_FAST=1005,y.MEDIUM=1006,y.MEDIUM_FAST=1007;var n,r,w,x,S,k=16384+t;y.LAME_MAXMP3BUFFER=k;var M,A,E,T=new f;function R(){this.mask_adjust=0,this.mask_adjust_short=0,this.bo_l_weight=s(b.SBMAX_l),this.bo_s_weight=s(b.SBMAX_s)}function O(){this.lowerlimit=0}function C(e,t){this.lowpass=t}this.enc=new b,this.setModules=function(e,t,o,a,i,s,c,l,u){n=e,r=t,w=o,x=a,S=i,M=s,c,A=l,E=u,this.enc.setModules(r,T,x,M)};var j=4294479419;function B(e){var t;return e.class_id=j,t=e.internal_flags=new p,e.mode=MPEGMode.NOT_SET,e.original=1,e.in_samplerate=44100,e.num_channels=2,e.num_samples=-1,e.bWriteVbrTag=!0,e.quality=-1,e.short_blocks=null,t.subblock_gain=-1,e.lowpassfreq=0,e.highpassfreq=0,e.lowpasswidth=-1,e.highpasswidth=-1,e.VBR=a.vbr_off,e.VBR_q=4,e.ATHcurve=-1,e.VBR_mean_bitrate_kbps=128,e.VBR_min_bitrate_kbps=0,e.VBR_max_bitrate_kbps=0,e.VBR_hard_min=0,t.VBR_min_bitrate=1,t.VBR_max_bitrate=13,e.quant_comp=-1,e.quant_comp_short=-1,e.msfix=-1,t.resample_ratio=1,t.OldValue[0]=180,t.OldValue[1]=180,t.CurrentStep[0]=4,t.CurrentStep[1]=4,t.masking_lower=1,t.nsPsy.attackthre=-1,t.nsPsy.attackthre_s=-1,e.scale=-1,e.athaa_type=-1,e.ATHtype=-1,e.athaa_loudapprox=-1,e.athaa_sensitivity=0,e.useTemporal=null,e.interChRatio=-1,t.mf_samples_to_encode=b.ENCDELAY+b.POSTDELAY,e.encoder_padding=0,t.mf_size=b.ENCDELAY-b.MDCTDELAY,e.findReplayGain=!1,e.decode_on_the_fly=!1,t.decode_on_the_fly=!1,t.findReplayGain=!1,t.findPeakSample=!1,t.RadioGain=0,t.AudiophileGain=0,t.noclipGainChange=0,t.noclipScale=-1,e.preset=0,e.write_id3tag_automatic=!0,0}function I(e){return e>1?0:e<=0?1:Math.cos(Math.PI/2*e)}function P(e,t){var n=44100;return t>=48e3?n=48e3:t>=44100?n=44100:t>=32e3?n=32e3:t>=24e3?n=24e3:t>=22050?n=22050:t>=16e3?n=16e3:t>=12e3?n=12e3:t>=11025?n=11025:t>=8e3&&(n=8e3),-1==e?n:(e<=15960&&(n=44100),e<=15250&&(n=32e3),e<=11220&&(n=24e3),e<=9970&&(n=22050),e<=7230&&(n=16e3),e<=5420&&(n=12e3),e<=4510&&(n=11025),e<=3970&&(n=8e3),t<n?t>44100?48e3:t>32e3?44100:t>24e3?32e3:t>22050?24e3:t>16e3?22050:t>12e3?16e3:t>11025?12e3:t>8e3?11025:8e3:n)}function L(e,t){switch(e){case 44100:return t.version=1,0;case 48e3:return t.version=1,1;case 32e3:return t.version=1,2;case 22050:return t.version=0,0;case 24e3:return t.version=0,1;case 16e3:return t.version=0,2;case 11025:return t.version=0,0;case 12e3:return t.version=0,1;case 8e3:return t.version=0,2;default:return t.version=0,-1}}function N(e,t,n){n<16e3&&(t=2);for(var r=_.bitrate_table[t][1],o=2;o<=14;o++)_.bitrate_table[t][o]>0&&Math.abs(_.bitrate_table[t][o]-e)<Math.abs(r-e)&&(r=_.bitrate_table[t][o]);return r}function D(e,t,n){n<16e3&&(t=2);for(var r=0;r<=14;r++)if(_.bitrate_table[t][r]>0&&_.bitrate_table[t][r]==e)return r;return-1}function F(t,n){var r=[new C(8,2e3),new C(16,3700),new C(24,3900),new C(32,5500),new C(40,7e3),new C(48,7500),new C(56,1e4),new C(64,11e3),new C(80,13500),new C(96,15100),new C(112,15600),new C(128,17e3),new C(160,17500),new C(192,18600),new C(224,19400),new C(256,19700),new C(320,20500)],o=e.nearestBitrateFullIndex(n);t.lowerlimit=r[o].lowpass}function H(e){var t=e.internal_flags,n=32,r=-1;if(t.lowpass1>0){for(var a=999,i=0;i<=31;i++){var s=i/31;s>=t.lowpass2&&(n=Math.min(n,i)),t.lowpass1<s&&s<t.lowpass2&&(a=Math.min(a,i))}t.lowpass1=999==a?(n-.75)/31:(a-.75)/31,t.lowpass2=n/31}if(t.highpass2>0&&t.highpass2<.75/31*.9&&(t.highpass1=0,t.highpass2=0,o.err.println("Warning: highpass filter disabled.  highpass frequency too small\n")),t.highpass2>0){var c=-1;for(i=0;i<=31;i++){s=i/31;s<=t.highpass1&&(r=Math.max(r,i)),t.highpass1<s&&s<t.highpass2&&(c=Math.max(c,i))}t.highpass1=r/31,t.highpass2=-1==c?(r+.75)/31:(c+.75)/31}for(i=0;i<32;i++){var l,u;s=i/31;l=t.highpass2>t.highpass1?I((t.highpass2-s)/(t.highpass2-t.highpass1+1e-20)):1,u=t.lowpass2>t.lowpass1?I((s-t.lowpass1)/(t.lowpass2-t.lowpass1+1e-20)):1,t.amp_filter[i]=l*u}}function U(e){var t=e.internal_flags;switch(e.quality){default:case 9:t.psymodel=0,t.noise_shaping=0,t.noise_shaping_amp=0,t.noise_shaping_stop=0,t.use_best_huffman=0,t.full_outer_loop=0;break;case 8:e.quality=7;case 7:t.psymodel=1,t.noise_shaping=0,t.noise_shaping_amp=0,t.noise_shaping_stop=0,t.use_best_huffman=0,t.full_outer_loop=0;break;case 6:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=0,t.full_outer_loop=0;break;case 5:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=0,t.full_outer_loop=0;break;case 4:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 3:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=1,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 2:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=1,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 1:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=2,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 0:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=2,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break}}function $(e){var t=e.internal_flags;e.frameNum=0,e.write_id3tag_automatic&&A.id3tag_write_v2(e),t.bitrate_stereoMode_Hist=c([16,5]),t.bitrate_blockType_Hist=c([16,6]),t.PeakSample=0,e.bWriteVbrTag&&M.InitVbrTag(e)}function q(e,t){(null==e.in_buffer_0||e.in_buffer_nsamples<t)&&(e.in_buffer_0=s(t),e.in_buffer_1=s(t),e.in_buffer_nsamples=t)}function V(e){var t=b.BLKSIZE+e.framesize-b.FFTOFFSET;return t=Math.max(t,512+e.framesize-32),u(p.MFSIZE>=t),t}function z(e,t,o,a,i,s,c){var l,f,d,h,m,g=e.internal_flags,_=0,y=[null,null],w=[null,null];if(g.Class_ID!=j)return-3;if(0==a)return 0;if(m=r.copy_buffer(g,i,s,c,0),m<0)return m;if(s+=m,_+=m,w[0]=t,w[1]=o,v.NEQ(e.scale,0)&&v.NEQ(e.scale,1))for(f=0;f<a;++f)w[0][f]*=e.scale,2==g.channels_out&&(w[1][f]*=e.scale);if(v.NEQ(e.scale_left,0)&&v.NEQ(e.scale_left,1))for(f=0;f<a;++f)w[0][f]*=e.scale_left;if(v.NEQ(e.scale_right,0)&&v.NEQ(e.scale_right,1))for(f=0;f<a;++f)w[1][f]*=e.scale_right;if(2==e.num_channels&&1==g.channels_out)for(f=0;f<a;++f)w[0][f]=.5*(w[0][f]+w[1][f]),w[1][f]=0;h=V(e),y[0]=g.mfbuf[0],y[1]=g.mfbuf[1];var x=0;while(a>0){var S=[null,null],k=0,M=0;S[0]=w[0],S[1]=w[1];var A=new Y;if(Q(e,y,S,x,a,A),k=A.n_in,M=A.n_out,g.findReplayGain&&!g.decode_on_the_fly&&n.AnalyzeSamples(g.rgdata,y[0],g.mf_size,y[1],g.mf_size,M,g.channels_out)==GainAnalysis.GAIN_ANALYSIS_ERROR)return-6;if(a-=k,x+=k,g.channels_out,g.mf_size+=M,u(g.mf_size<=p.MFSIZE),g.mf_samples_to_encode<1&&(g.mf_samples_to_encode=b.ENCDELAY+b.POSTDELAY),g.mf_samples_to_encode+=M,g.mf_size>=h){var E=c-_;if(0==c&&(E=0),l=X(e,y[0],y[1],i,s,E),l<0)return l;for(s+=l,_+=l,g.mf_size-=e.framesize,g.mf_samples_to_encode-=e.framesize,d=0;d<g.channels_out;d++)for(f=0;f<g.mf_size;f++)y[d][f]=y[d][f+e.framesize]}}return u(0==a),_}function X(t,n,r,o,a,i){var s=e.enc.lame_encode_mp3_frame(t,n,r,o,a,i);return t.frameNum++,s}function Y(){this.n_in=0,this.n_out=0}function G(){this.num_used=0}function W(e,t){return 0!=t?W(t,e%t):e}function K(e,t,n){var r=Math.PI*t;e/=n,e<0&&(e=0),e>1&&(e=1);var o=e-.5,a=.42-.5*Math.cos(2*e*Math.PI)+.08*Math.cos(4*e*Math.PI);return Math.abs(o)<1e-9?r/Math.PI:a*Math.sin(n*r*o)/(Math.PI*n*o)}function Z(e,t,n,r,o,a,i,c,l){var f,d,h=e.internal_flags,m=0,g=e.out_samplerate/W(e.out_samplerate,e.in_samplerate);g>p.BPC&&(g=p.BPC);var v=Math.abs(h.resample_ratio-Math.floor(.5+h.resample_ratio))<1e-4?1:0,_=1/h.resample_ratio;_>1&&(_=1);var b=31;0==b%2&&--b,b+=v;var y=b+1;if(0==h.fill_buffer_resample_init){for(h.inbuf_old[0]=s(y),h.inbuf_old[1]=s(y),f=0;f<=2*g;++f)h.blackfilt[f]=s(y);for(h.itime[0]=0,h.itime[1]=0,m=0;m<=2*g;m++){var w=0,x=(m-g)/(2*g);for(f=0;f<=b;f++)w+=h.blackfilt[m][f]=K(f-x,_,b);for(f=0;f<=b;f++)h.blackfilt[m][f]/=w}h.fill_buffer_resample_init=1}var S=h.inbuf_old[l];for(d=0;d<r;d++){var k,M;if(k=d*h.resample_ratio,m=0|Math.floor(k-h.itime[l]),b+m-b/2>=i)break;x=k-h.itime[l]-(m+b%2*.5);u(Math.abs(x)<=.501),M=0|Math.floor(2*x*g+g+.5);var A=0;for(f=0;f<=b;++f){var E,T=f+m-b/2;u(T<i),u(T+y>=0),E=T<0?S[y+T]:o[a+T],A+=E*h.blackfilt[M][f]}t[n+d]=A}if(c.num_used=Math.min(i,b+m-b/2),h.itime[l]+=c.num_used-d*h.resample_ratio,c.num_used>=y)for(f=0;f<y;f++)S[f]=o[a+c.num_used+f-y];else{var R=y-c.num_used;for(f=0;f<R;++f)S[f]=S[f+c.num_used];for(m=0;f<y;++f,++m)S[f]=o[a+m];u(m==c.num_used)}return d}function Q(e,t,n,r,o,a){var i=e.internal_flags;if(i.resample_ratio<.9999||i.resample_ratio>1.0001)for(var s=0;s<i.channels_out;s++){var c=new G;a.n_out=Z(e,t[s],i.mf_size,e.framesize,n[s],r,o,c,s),a.n_in=c.num_used}else{a.n_out=Math.min(e.framesize,o),a.n_in=a.n_out;for(var l=0;l<a.n_out;++l)t[0][i.mf_size+l]=n[0][r+l],2==i.channels_out&&(t[1][i.mf_size+l]=n[1][r+l])}}this.lame_init=function(){var e=new d,t=B(e);return 0!=t?null:(e.lame_allocated_gfp=1,e)},this.nearestBitrateFullIndex=function(e){var t=[8,16,24,32,40,48,56,64,80,96,112,128,160,192,224,256,320],n=0,r=0,o=0,a=0;a=t[16],o=16,r=t[16],n=16;for(var i=0;i<16;i++)if(Math.max(e,t[i+1])!=e){a=t[i+1],o=i+1,r=t[i],n=i;break}return a-e>e-r?n:o},this.lame_init_params=function(e){var t=e.internal_flags;if(t.Class_ID=0,null==t.ATH&&(t.ATH=new h),null==t.PSY&&(t.PSY=new R),null==t.rgdata&&(t.rgdata=new m),t.channels_in=e.num_channels,1==t.channels_in&&(e.mode=MPEGMode.MONO),t.channels_out=e.mode==MPEGMode.MONO?1:2,t.mode_ext=b.MPG_MD_MS_LR,e.mode==MPEGMode.MONO&&(e.force_ms=!1),e.VBR==a.vbr_off&&128!=e.VBR_mean_bitrate_kbps&&0==e.brate&&(e.brate=e.VBR_mean_bitrate_kbps),e.VBR==a.vbr_off||e.VBR==a.vbr_mtrh||e.VBR==a.vbr_mt||(e.free_format=!1),e.VBR==a.vbr_off&&0==e.brate&&v.EQ(e.compression_ratio,0)&&(e.compression_ratio=11.025),e.VBR==a.vbr_off&&e.compression_ratio>0&&(0==e.out_samplerate&&(e.out_samplerate=map2MP3Frequency(int(.97*e.in_samplerate))),e.brate=0|16*e.out_samplerate*t.channels_out/(1e3*e.compression_ratio),t.samplerate_index=L(e.out_samplerate,e),e.free_format||(e.brate=N(e.brate,e.version,e.out_samplerate))),0!=e.out_samplerate&&(e.out_samplerate<16e3?(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,64)):e.out_samplerate<32e3?(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,160)):(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,32),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,320))),0==e.lowpassfreq){var o=16e3;switch(e.VBR){case a.vbr_off:var s=new O;F(s,e.brate),o=s.lowerlimit;break;case a.vbr_abr:s=new O;F(s,e.VBR_mean_bitrate_kbps),o=s.lowerlimit;break;case a.vbr_rh:var c=[19500,19e3,18600,18e3,17500,16e3,15600,14900,12500,1e4,3950];if(0<=e.VBR_q&&e.VBR_q<=9){var l=c[e.VBR_q],d=c[e.VBR_q+1],p=e.VBR_q_frac;o=linear_int(l,d,p)}else o=19500;break;default:c=[19500,19e3,18500,18e3,17500,16500,15500,14500,12500,9500,3950];if(0<=e.VBR_q&&e.VBR_q<=9){l=c[e.VBR_q],d=c[e.VBR_q+1],p=e.VBR_q_frac;o=linear_int(l,d,p)}else o=19500}e.mode!=MPEGMode.MONO||e.VBR!=a.vbr_off&&e.VBR!=a.vbr_abr||(o*=1.5),e.lowpassfreq=0|o}if(0==e.out_samplerate&&(2*e.lowpassfreq>e.in_samplerate&&(e.lowpassfreq=e.in_samplerate/2),e.out_samplerate=P(0|e.lowpassfreq,e.in_samplerate)),e.lowpassfreq=Math.min(20500,e.lowpassfreq),e.lowpassfreq=Math.min(e.out_samplerate/2,e.lowpassfreq),e.VBR==a.vbr_off&&(e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.brate)),e.VBR==a.vbr_abr&&(e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.VBR_mean_bitrate_kbps)),e.bWriteVbrTag||(e.findReplayGain=!1,e.decode_on_the_fly=!1,t.findPeakSample=!1),t.findReplayGain=e.findReplayGain,t.decode_on_the_fly=e.decode_on_the_fly,t.decode_on_the_fly&&(t.findPeakSample=!0),t.findReplayGain&&n.InitGainAnalysis(t.rgdata,e.out_samplerate)==GainAnalysis.INIT_GAIN_ANALYSIS_ERROR)return e.internal_flags=null,-6;switch(t.decode_on_the_fly&&!e.decode_only&&(null!=t.hip&&E.hip_decode_exit(t.hip),t.hip=E.hip_decode_init()),t.mode_gr=e.out_samplerate<=24e3?1:2,e.framesize=576*t.mode_gr,e.encoder_delay=b.ENCDELAY,t.resample_ratio=e.in_samplerate/e.out_samplerate,e.VBR){case a.vbr_mt:case a.vbr_rh:case a.vbr_mtrh:var y=[5.7,6.5,7.3,8.2,10,11.9,13,14,15,16.5];e.compression_ratio=y[e.VBR_q];break;case a.vbr_abr:e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.VBR_mean_bitrate_kbps);break;default:e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.brate);break}if(e.mode==MPEGMode.NOT_SET&&(e.mode=MPEGMode.JOINT_STEREO),e.highpassfreq>0?(t.highpass1=2*e.highpassfreq,e.highpasswidth>=0?t.highpass2=2*(e.highpassfreq+e.highpasswidth):t.highpass2=2*e.highpassfreq,t.highpass1/=e.out_samplerate,t.highpass2/=e.out_samplerate):(t.highpass1=0,t.highpass2=0),e.lowpassfreq>0?(t.lowpass2=2*e.lowpassfreq,e.lowpasswidth>=0?(t.lowpass1=2*(e.lowpassfreq-e.lowpasswidth),t.lowpass1<0&&(t.lowpass1=0)):t.lowpass1=2*e.lowpassfreq,t.lowpass1/=e.out_samplerate,t.lowpass2/=e.out_samplerate):(t.lowpass1=0,t.lowpass2=0),H(e),t.samplerate_index=L(e.out_samplerate,e),t.samplerate_index<0)return e.internal_flags=null,-1;if(e.VBR==a.vbr_off){if(e.free_format)t.bitrate_index=0;else if(e.brate=N(e.brate,e.version,e.out_samplerate),t.bitrate_index=D(e.brate,e.version,e.out_samplerate),t.bitrate_index<=0)return e.internal_flags=null,-1}else t.bitrate_index=1;e.analysis&&(e.bWriteVbrTag=!1),null!=t.pinfo&&(e.bWriteVbrTag=!1),r.init_bit_stream_w(t);for(var k,M=t.samplerate_index+3*e.version+6*(e.out_samplerate<16e3?1:0),A=0;A<b.SBMAX_l+1;A++)t.scalefac_band.l[A]=x.sfBandIndex[M].l[A];for(A=0;A<b.PSFB21+1;A++){var C=(t.scalefac_band.l[22]-t.scalefac_band.l[21])/b.PSFB21,B=t.scalefac_band.l[21]+A*C;t.scalefac_band.psfb21[A]=B}t.scalefac_band.psfb21[b.PSFB21]=576;for(A=0;A<b.SBMAX_s+1;A++)t.scalefac_band.s[A]=x.sfBandIndex[M].s[A];for(A=0;A<b.PSFB12+1;A++){C=(t.scalefac_band.s[13]-t.scalefac_band.s[12])/b.PSFB12,B=t.scalefac_band.s[12]+A*C;t.scalefac_band.psfb12[A]=B}for(t.scalefac_band.psfb12[b.PSFB12]=192,1==e.version?t.sideinfo_len=1==t.channels_out?21:36:t.sideinfo_len=1==t.channels_out?13:21,e.error_protection&&(t.sideinfo_len+=2),$(e),t.Class_ID=j,k=0;k<19;k++)t.nsPsy.pefirbuf[k]=700*t.mode_gr*t.channels_out;switch(-1==e.ATHtype&&(e.ATHtype=4),u(e.VBR_q<=9),u(e.VBR_q>=0),e.VBR){case a.vbr_mt:e.VBR=a.vbr_mtrh;case a.vbr_mtrh:null==e.useTemporal&&(e.useTemporal=!1),w.apply_preset(e,500-10*e.VBR_q,0),e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),e.quality<5&&(e.quality=0),e.quality>5&&(e.quality=5),t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,e.experimentalY?t.sfb21_extra=!1:t.sfb21_extra=e.out_samplerate>44e3,t.iteration_loop=new VBRNewIterationLoop(S);break;case a.vbr_rh:w.apply_preset(e,500-10*e.VBR_q,0),t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,e.experimentalY?t.sfb21_extra=!1:t.sfb21_extra=e.out_samplerate>44e3,e.quality>6&&(e.quality=6),e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),t.iteration_loop=new VBROldIterationLoop(S);break;default:var I;t.sfb21_extra=!1,e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),I=e.VBR,I==a.vbr_off&&(e.VBR_mean_bitrate_kbps=e.brate),w.apply_preset(e,e.VBR_mean_bitrate_kbps,0),e.VBR=I,t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,I==a.vbr_off?t.iteration_loop=new g(S):t.iteration_loop=new ABRIterationLoop(S);break}if(u(e.scale>=0),e.VBR!=a.vbr_off){if(t.VBR_min_bitrate=1,t.VBR_max_bitrate=14,e.out_samplerate<16e3&&(t.VBR_max_bitrate=8),0!=e.VBR_min_bitrate_kbps&&(e.VBR_min_bitrate_kbps=N(e.VBR_min_bitrate_kbps,e.version,e.out_samplerate),t.VBR_min_bitrate=D(e.VBR_min_bitrate_kbps,e.version,e.out_samplerate),t.VBR_min_bitrate<0))return-1;if(0!=e.VBR_max_bitrate_kbps&&(e.VBR_max_bitrate_kbps=N(e.VBR_max_bitrate_kbps,e.version,e.out_samplerate),t.VBR_max_bitrate=D(e.VBR_max_bitrate_kbps,e.version,e.out_samplerate),t.VBR_max_bitrate<0))return-1;e.VBR_min_bitrate_kbps=_.bitrate_table[e.version][t.VBR_min_bitrate],e.VBR_max_bitrate_kbps=_.bitrate_table[e.version][t.VBR_max_bitrate],e.VBR_mean_bitrate_kbps=Math.min(_.bitrate_table[e.version][t.VBR_max_bitrate],e.VBR_mean_bitrate_kbps),e.VBR_mean_bitrate_kbps=Math.max(_.bitrate_table[e.version][t.VBR_min_bitrate],e.VBR_mean_bitrate_kbps)}return e.tune&&(t.PSY.mask_adjust+=e.tune_value_a,t.PSY.mask_adjust_short+=e.tune_value_a),U(e),u(e.scale>=0),e.athaa_type<0?t.ATH.useAdjust=3:t.ATH.useAdjust=e.athaa_type,t.ATH.aaSensitivityP=Math.pow(10,e.athaa_sensitivity/-10),null==e.short_blocks&&(e.short_blocks=i.short_block_allowed),e.short_blocks!=i.short_block_allowed||e.mode!=MPEGMode.JOINT_STEREO&&e.mode!=MPEGMode.STEREO||(e.short_blocks=i.short_block_coupled),e.quant_comp<0&&(e.quant_comp=1),e.quant_comp_short<0&&(e.quant_comp_short=0),e.msfix<0&&(e.msfix=0),e.exp_nspsytune=1|e.exp_nspsytune,e.internal_flags.nsPsy.attackthre<0&&(e.internal_flags.nsPsy.attackthre=f.NSATTACKTHRE),e.internal_flags.nsPsy.attackthre_s<0&&(e.internal_flags.nsPsy.attackthre_s=f.NSATTACKTHRE_S),u(e.scale>=0),e.scale<0&&(e.scale=1),e.ATHtype<0&&(e.ATHtype=4),e.ATHcurve<0&&(e.ATHcurve=4),e.athaa_loudapprox<0&&(e.athaa_loudapprox=2),e.interChRatio<0&&(e.interChRatio=0),null==e.useTemporal&&(e.useTemporal=!0),t.slot_lag=t.frac_SpF=0,e.VBR==a.vbr_off&&(t.slot_lag=t.frac_SpF=72e3*(e.version+1)*e.brate%e.out_samplerate|0),x.iteration_init(e),T.psymodel_init(e),u(e.scale>=0),0},this.lame_encode_flush=function(e,t,n,o){var a,i,s,c,u=e.internal_flags,f=l([2,1152]),d=0,p=u.mf_samples_to_encode-b.POSTDELAY,h=V(e);if(u.mf_samples_to_encode<1)return 0;a=0,e.in_samplerate!=e.out_samplerate&&(p+=16*e.out_samplerate/e.in_samplerate),s=e.framesize-p%e.framesize,s<576&&(s+=e.framesize),e.encoder_padding=s,c=(p+s)/e.framesize;while(c>0&&d>=0){var m=h-u.mf_size,g=e.frameNum;m*=e.in_samplerate,m/=e.out_samplerate,m>1152&&(m=1152),m<1&&(m=1),i=o-a,0==o&&(i=0),d=this.lame_encode_buffer(e,f[0],f[1],m,t,n,i),n+=d,a+=d,c-=g!=e.frameNum?1:0}if(u.mf_samples_to_encode=0,d<0)return d;if(i=o-a,0==o&&(i=0),r.flush_bitstream(e),d=r.copy_buffer(u,t,n,i,1),d<0)return d;if(n+=d,a+=d,i=o-a,0==o&&(i=0),e.write_id3tag_automatic){if(A.id3tag_write_v1(e),d=r.copy_buffer(u,t,n,i,0),d<0)return d;a+=d}return a},this.lame_encode_buffer=function(e,t,n,r,o,a,i){var s=e.internal_flags,c=[null,null];if(s.Class_ID!=j)return-3;if(0==r)return 0;q(s,r),c[0]=s.in_buffer_0,c[1]=s.in_buffer_1;for(var l=0;l<r;l++)c[0][l]=t[l],s.channels_in>1&&(c[1][l]=n[l]);return z(e,c[0],c[1],r,o,a,i)}}e.exports=y},df75:function(e,t,n){var r=n("ca84"),o=n("7839");e.exports=Object.keys||function(e){return r(e,o)}},e107:function(e,t,n){var r=n("0206"),o=r.System,a=r.VbrMode,i=(r.Float,r.ShortBlock),s=(r.Util,r.Arrays),c=(r.new_array_n,r.new_byte),l=(r.new_double,r.new_float,r.new_float_n,r.new_int,r.new_int_n,r.assert);function u(){var e,t,n;this.setModules=function(r,o,a){e=r,t=o,n=a};var r=1,f=2,d=4,p=8,h=u.NUMTOCENTRIES,m=u.MAXFRAMESIZE,g=h+4+4+4+4+4,v=g+9+1+1+8+1+1+3+1+1+2+4+2+2,_=128,b=64,y=32,w=null,x="Xing",S="Info",k=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];function M(e,t){if(e.nVbrNumFrames++,e.sum+=t,e.seen++,!(e.seen<e.want)&&(e.pos<e.size&&(e.bag[e.pos]=e.sum,e.pos++,e.seen=0),e.pos==e.size)){for(var n=1;n<e.size;n+=2)e.bag[n/2]=e.bag[n];e.want*=2,e.pos/=2}}function A(e,t){if(!(e.pos<=0))for(var n=1;n<h;++n){var r,o,a=n/h,i=0|Math.floor(a*e.pos);i>e.pos-1&&(i=e.pos-1),r=e.bag[i],o=e.sum;var s=0|256*r/o;s>255&&(s=255),t[n]=255&s}}function E(e,t){var n=255&e[t+0];return n<<=8,n|=255&e[t+1],n<<=8,n|=255&e[t+2],n<<=8,n|=255&e[t+3],n}function T(e,t,n){e[t+0]=255&n>>24,e[t+1]=255&n>>16,e[t+2]=255&n>>8,e[t+3]=255&n}function R(e,t,n){e[t+0]=255&n>>8,e[t+1]=255&n}function O(e,t){return new String(e,t,x.length(),w).equals(x)||new String(e,t,S.length(),w).equals(S)}function C(e,t,n){return 255&(e<<t|n&~(-1<<t))}function j(t,n){var r=t.internal_flags;n[0]=C(n[0],8,255),n[1]=C(n[1],3,7),n[1]=C(n[1],1,t.out_samplerate<16e3?0:1),n[1]=C(n[1],1,t.version),n[1]=C(n[1],2,1),n[1]=C(n[1],1,t.error_protection?0:1),n[2]=C(n[2],4,r.bitrate_index),n[2]=C(n[2],2,r.samplerate_index),n[2]=C(n[2],1,0),n[2]=C(n[2],1,t.extension),n[3]=C(n[3],2,t.mode.ordinal()),n[3]=C(n[3],2,r.mode_ext),n[3]=C(n[3],1,t.copyright),n[3]=C(n[3],1,t.original),n[3]=C(n[3],2,t.emphasis),n[0]=255;var o,i,s=241&n[1];o=1==t.version?_:t.out_samplerate<16e3?y:b,t.VBR==a.vbr_off&&(o=t.brate),i=t.free_format?0:255&16*e.BitrateIndex(o,t.version,t.out_samplerate),1==t.version?(n[1]=255&(10|s),s=13&n[2],n[2]=255&(i|s)):(n[1]=255&(2|s),s=13&n[2],n[2]=255&(i|s))}function B(e,t){var n=t^e;return t=t>>8^k[255&n],t}function I(e,t,r,o,a){var s,c,l,u=e.internal_flags,f=0,d=e.encoder_delay,p=e.encoder_padding,h=100-10*e.VBR_q-e.quality,m=n.getLameVeryShortVersion(),g=0,v=[1,5,3,2,4,0,3],_=0|(e.lowpassfreq/100+.5>255?255:e.lowpassfreq/100+.5),b=0,y=0,w=0,x=e.internal_flags.noise_shaping,S=0,k=0,M=0,A=0,E=0,O=0!=(1&e.exp_nspsytune),C=0!=(2&e.exp_nspsytune),j=!1,I=!1,P=e.internal_flags.nogap_total,L=e.internal_flags.nogap_current,N=e.ATHtype,D=0;switch(e.VBR){case vbr_abr:l=e.VBR_mean_bitrate_kbps;break;case vbr_off:l=e.brate;break;default:l=e.VBR_min_bitrate_kbps}switch(s=e.VBR.ordinal()<v.length?v[e.VBR.ordinal()]:0,c=16*g+s,u.findReplayGain&&(u.RadioGain>510&&(u.RadioGain=510),u.RadioGain<-510&&(u.RadioGain=-510),y=8192,y|=3072,u.RadioGain>=0?y|=u.RadioGain:(y|=512,y|=-u.RadioGain)),u.findPeakSample&&(b=Math.abs(0|u.PeakSample/32767*Math.pow(2,23)+.5)),-1!=P&&(L>0&&(I=!0),L<P-1&&(j=!0)),D=N+((O?1:0)<<4)+((C?1:0)<<5)+((j?1:0)<<6)+((I?1:0)<<7),h<0&&(h=0),e.mode){case MONO:S=0;break;case STEREO:S=1;break;case DUAL_CHANNEL:S=2;break;case JOINT_STEREO:S=e.force_ms?4:3;break;case NOT_SET:default:S=7;break}M=e.in_samplerate<=32e3?0:48e3==e.in_samplerate?2:e.in_samplerate>48e3?3:1,(e.short_blocks==i.short_block_forced||e.short_blocks==i.short_block_dispensed||-1==e.lowpassfreq&&-1==e.highpassfreq||e.scale_left<e.scale_right||e.scale_left>e.scale_right||e.disable_reservoir&&e.brate<320||e.noATH||e.ATHonly||0==N||e.in_samplerate<=32e3)&&(k=1),A=x+(S<<2)+(k<<5)+(M<<6),E=u.nMusicCRC,T(r,o+f,h),f+=4;for(var F=0;F<9;F++)r[o+f+F]=255&m.charAt(F);f+=9,r[o+f]=255&c,f++,r[o+f]=255&_,f++,T(r,o+f,b),f+=4,R(r,o+f,y),f+=2,R(r,o+f,w),f+=2,r[o+f]=255&D,f++,r[o+f]=l>=255?255:255&l,f++,r[o+f]=255&d>>4,r[o+f+1]=255&(d<<4)+(p>>8),r[o+f+2]=255&p,f+=3,r[o+f]=255&A,f++,r[o+f++]=0,R(r,o+f,e.preset),f+=2,T(r,o+f,t),f+=4,R(r,o+f,E),f+=2;for(var H=0;H<f;H++)a=B(r[o+H],a);return R(r,o+f,a),f+=2,f}function P(e){e.seek(0);var t,n=c(10);return e.readFully(n),t=new String(n,"ISO-8859-1").startsWith("ID3")?0:((127&n[6])<<21|(127&n[7])<<14|(127&n[8])<<7|127&n[9])+n.length,t}this.addVbrFrame=function(e){var t=e.internal_flags,n=Tables.bitrate_table[e.version][t.bitrate_index];l(null!=t.VBR_seek_table.bag),M(t.VBR_seek_table,n)},this.getVbrTag=function(e){var t=new VBRTagData,n=0;t.flags=0;var o=e[n+1]>>3&1,a=e[n+2]>>2&3,i=e[n+3]>>6&3,s=e[n+2]>>4&15;if(s=Tables.bitrate_table[o][s],e[n+1]>>4==14?t.samprate=Tables.samplerate_table[2][a]:t.samprate=Tables.samplerate_table[o][a],n+=0!=o?3!=i?36:21:3!=i?21:13,!O(e,n))return null;n+=4,t.hId=o;var c=t.flags=E(e,n);if(n+=4,0!=(c&r)&&(t.frames=E(e,n),n+=4),0!=(c&f)&&(t.bytes=E(e,n),n+=4),0!=(c&d)){if(null!=t.toc)for(var l=0;l<h;l++)t.toc[l]=e[n+l];n+=h}t.vbrScale=-1,0!=(c&p)&&(t.vbrScale=E(e,n),n+=4),t.headersize=72e3*(o+1)*s/t.samprate,n+=21;var u=e[n+0]<<4;u+=e[n+1]>>4;var m=(15&e[n+1])<<8;return m+=255&e[n+2],(u<0||u>3e3)&&(u=-1),(m<0||m>3e3)&&(m=-1),t.encDelay=u,t.encPadding=m,t},this.InitVbrTag=function(e){var n,r=e.internal_flags;n=1==e.version?_:e.out_samplerate<16e3?y:b,e.VBR==a.vbr_off&&(n=e.brate);var o=72e3*(e.version+1)*n/e.out_samplerate,i=r.sideinfo_len+v;if(r.VBR_seek_table.TotalFrameSize=o,o<i||o>m)e.bWriteVbrTag=!1;else{r.VBR_seek_table.nVbrNumFrames=0,r.VBR_seek_table.nBytesWritten=0,r.VBR_seek_table.sum=0,r.VBR_seek_table.seen=0,r.VBR_seek_table.want=1,r.VBR_seek_table.pos=0,null==r.VBR_seek_table.bag&&(r.VBR_seek_table.bag=new int[400],r.VBR_seek_table.size=400);var s=c(m);j(e,s);for(var l=r.VBR_seek_table.TotalFrameSize,u=0;u<l;++u)t.add_dummy_byte(e,255&s[u],1)}},this.updateMusicCRC=function(e,t,n,r){for(var o=0;o<r;++o)e[0]=B(t[n+o],e[0])},this.getLameTagFrame=function(e,n){var i=e.internal_flags;if(!e.bWriteVbrTag)return 0;if(i.Class_ID!=Lame.LAME_ID)return 0;if(i.VBR_seek_table.pos<=0)return 0;if(n.length<i.VBR_seek_table.TotalFrameSize)return i.VBR_seek_table.TotalFrameSize;s.fill(n,0,i.VBR_seek_table.TotalFrameSize,0),j(e,n);var l=c(h);if(e.free_format)for(var u=1;u<h;++u)l[u]=255&255*u/100;else A(i.VBR_seek_table,l);var m=i.sideinfo_len;e.error_protection&&(m-=2),e.VBR==a.vbr_off?(n[m++]=255&S.charAt(0),n[m++]=255&S.charAt(1),n[m++]=255&S.charAt(2),n[m++]=255&S.charAt(3)):(n[m++]=255&x.charAt(0),n[m++]=255&x.charAt(1),n[m++]=255&x.charAt(2),n[m++]=255&x.charAt(3)),T(n,m,r+f+d+p),m+=4,T(n,m,i.VBR_seek_table.nVbrNumFrames),m+=4;var g=i.VBR_seek_table.nBytesWritten+i.VBR_seek_table.TotalFrameSize;T(n,m,0|g),m+=4,o.arraycopy(l,0,n,m,l.length),m+=l.length,e.error_protection&&t.CRC_writeheader(i,n);var v=0;for(u=0;u<m;u++)v=B(n[u],v);return m+=I(e,g,n,m,v),i.VBR_seek_table.TotalFrameSize},this.putVbrTag=function(e,t){var n=e.internal_flags;if(n.VBR_seek_table.pos<=0)return-1;if(t.seek(t.length()),0==t.length())return-1;var r=P(t);t.seek(r);var o=c(m),a=getLameTagFrame(e,o);return a>o.length?-1:(a<1||t.write(o,0,a),0)}}u.NUMTOCENTRIES=100,u.MAXFRAMESIZE=2880,e.exports=u},e163:function(e,t,n){var r=n("1a2d"),o=n("1626"),a=n("7b0b"),i=n("f772"),s=n("e177"),c=i("IE_PROTO"),l=Object,u=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var t=a(e);if(r(t,c))return t[c];var n=t.constructor;return o(n)&&t instanceof n?n.prototype:t instanceof l?u:null}},e177:function(e,t,n){var r=n("d039");e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},e330:function(e,t,n){var r=n("40d5"),o=Function.prototype,a=o.bind,i=o.call,s=r&&a.bind(i,i);e.exports=r?function(e){return e&&s(e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},e391:function(e,t,n){var r=n("577e");e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},e5cb:function(e,t,n){"use strict";var r=n("d066"),o=n("1a2d"),a=n("9112"),i=n("3a9b"),s=n("d2bb"),c=n("e893"),l=n("aeb0"),u=n("7156"),f=n("e391"),d=n("ab36"),p=n("0d26"),h=n("b980"),m=n("83ab"),g=n("c430");e.exports=function(e,t,n,v){var _="stackTraceLimit",b=v?2:1,y=e.split("."),w=y[y.length-1],x=r.apply(null,y);if(x){var S=x.prototype;if(!g&&o(S,"cause")&&delete S.cause,!n)return x;var k=r("Error"),M=t((function(e,t){var n=f(v?t:e,void 0),r=v?new x(e):new x;return void 0!==n&&a(r,"message",n),h&&a(r,"stack",p(r.stack,2)),this&&i(S,this)&&u(r,this,M),arguments.length>b&&d(r,arguments[b]),r}));if(M.prototype=S,"Error"!==w?s?s(M,k):c(M,k,{name:!0}):m&&_ in x&&(l(M,x,_),l(M,x,"prepareStackTrace")),c(M,x),!g)try{S.name!==w&&a(S,"name",w),S.constructor=M}catch(A){}return M}}},e893:function(e,t,n){var r=n("1a2d"),o=n("56ef"),a=n("06cf"),i=n("9bf2");e.exports=function(e,t,n){for(var s=o(t),c=i.f,l=a.f,u=0;u<s.length;u++){var f=s[u];r(e,f)||n&&r(n,f)||c(e,f,l(t,f))}}},ebb5:function(e,t,n){"use strict";var r,o,a,i=n("4b11"),s=n("83ab"),c=n("da84"),l=n("1626"),u=n("861d"),f=n("1a2d"),d=n("f5df"),p=n("0d51"),h=n("9112"),m=n("cb2d"),g=n("9bf2").f,v=n("3a9b"),_=n("e163"),b=n("d2bb"),y=n("b622"),w=n("90e3"),x=n("69f3"),S=x.enforce,k=x.get,M=c.Int8Array,A=M&&M.prototype,E=c.Uint8ClampedArray,T=E&&E.prototype,R=M&&_(M),O=A&&_(A),C=Object.prototype,j=c.TypeError,B=y("toStringTag"),I=w("TYPED_ARRAY_TAG"),P="TypedArrayConstructor",L=i&&!!b&&"Opera"!==d(c.opera),N=!1,D={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},H=function(e){if(!u(e))return!1;var t=d(e);return"DataView"===t||f(D,t)||f(F,t)},U=function(e){var t=_(e);if(u(t)){var n=k(t);return n&&f(n,P)?n[P]:U(t)}},$=function(e){if(!u(e))return!1;var t=d(e);return f(D,t)||f(F,t)},q=function(e){if($(e))return e;throw j("Target is not a typed array")},V=function(e){if(l(e)&&(!b||v(R,e)))return e;throw j(p(e)+" is not a typed array constructor")},z=function(e,t,n,r){if(s){if(n)for(var o in D){var a=c[o];if(a&&f(a.prototype,e))try{delete a.prototype[e]}catch(i){try{a.prototype[e]=t}catch(l){}}}O[e]&&!n||m(O,e,n?t:L&&A[e]||t,r)}},X=function(e,t,n){var r,o;if(s){if(b){if(n)for(r in D)if(o=c[r],o&&f(o,e))try{delete o[e]}catch(a){}if(R[e]&&!n)return;try{return m(R,e,n?t:L&&R[e]||t)}catch(a){}}for(r in D)o=c[r],!o||o[e]&&!n||m(o,e,t)}};for(r in D)o=c[r],a=o&&o.prototype,a?S(a)[P]=o:L=!1;for(r in F)o=c[r],a=o&&o.prototype,a&&(S(a)[P]=o);if((!L||!l(R)||R===Function.prototype)&&(R=function(){throw j("Incorrect invocation")},L))for(r in D)c[r]&&b(c[r],R);if((!L||!O||O===C)&&(O=R.prototype,L))for(r in D)c[r]&&b(c[r].prototype,O);if(L&&_(T)!==O&&b(T,O),s&&!f(O,B))for(r in N=!0,g(O,B,{get:function(){return u(this)?this[I]:void 0}}),D)c[r]&&h(c[r],I,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:L,TYPED_ARRAY_TAG:N&&I,aTypedArray:q,aTypedArrayConstructor:V,exportTypedArrayMethod:z,exportTypedArrayStaticMethod:X,getTypedArrayConstructor:U,isView:H,isTypedArray:$,TypedArray:R,TypedArrayPrototype:O}},f052:function(e,t){function n(e){this.bits=e}e.exports=n},f26d:function(e,t,n){var r=n("a1b7");function o(){this.thm=new r,this.en=new r}e.exports=o},f3b5:function(e,t,n){var r=n("0206"),o=(r.System,r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float),a=(r.new_float_n,r.new_int),i=(r.new_int_n,r.assert,n("9828"));function s(){this.xr=o(576),this.l3_enc=a(576),this.scalefac=a(i.SFBMAX),this.xrpow_max=0,this.part2_3_length=0,this.big_values=0,this.count1=0,this.global_gain=0,this.scalefac_compress=0,this.block_type=0,this.mixed_block_flag=0,this.table_select=a(3),this.subblock_gain=a(4),this.region0_count=0,this.region1_count=0,this.preflag=0,this.scalefac_scale=0,this.count1table_select=0,this.part2_length=0,this.sfb_lmax=0,this.sfb_smin=0,this.psy_lmax=0,this.sfbmax=0,this.psymax=0,this.sfbdivide=0,this.width=a(i.SFBMAX),this.window=a(i.SFBMAX),this.count1bits=0,this.sfb_partition_table=null,this.slen=a(4),this.max_nonzero_coeff=0;var e=this;function t(e){return new Int32Array(e)}function n(e){return new Float32Array(e)}this.assign=function(r){e.xr=n(r.xr),e.l3_enc=t(r.l3_enc),e.scalefac=t(r.scalefac),e.xrpow_max=r.xrpow_max,e.part2_3_length=r.part2_3_length,e.big_values=r.big_values,e.count1=r.count1,e.global_gain=r.global_gain,e.scalefac_compress=r.scalefac_compress,e.block_type=r.block_type,e.mixed_block_flag=r.mixed_block_flag,e.table_select=t(r.table_select),e.subblock_gain=t(r.subblock_gain),e.region0_count=r.region0_count,e.region1_count=r.region1_count,e.preflag=r.preflag,e.scalefac_scale=r.scalefac_scale,e.count1table_select=r.count1table_select,e.part2_length=r.part2_length,e.sfb_lmax=r.sfb_lmax,e.sfb_smin=r.sfb_smin,e.psy_lmax=r.psy_lmax,e.sfbmax=r.sfbmax,e.psymax=r.psymax,e.sfbdivide=r.sfbdivide,e.width=t(r.width),e.window=t(r.window),e.count1bits=r.count1bits,e.sfb_partition_table=r.sfb_partition_table.slice(0),e.slen=t(r.slen),e.max_nonzero_coeff=r.max_nonzero_coeff}}e.exports=s},f3e2:function(e,t,n){var r=n("0206"),o=r.System,a=(r.VbrMode,r.Float,r.ShortBlock,r.Util),i=r.Arrays,s=(r.new_array_n,r.new_byte,r.new_double,r.new_float),c=(r.new_float_n,r.new_int,r.new_int_n,r.assert,n("4b5e"));function l(){var e=[-.1482523854003001,32.308141959636465,296.40344946382766,883.1344870032432,11113.947376231741,1057.2713659324597,305.7402417275812,30.825928907280012,3.8533188138216365,59.42900443849514,709.5899960123345,5281.91112291017,-5829.66483675846,-817.6293103748613,-76.91656988279972,-4.594269939176596,.9063471690191471,.1960342806591213,-.15466694054279598,34.324387823855965,301.8067566458425,817.599602898885,11573.795901679885,1181.2520595540152,321.59731579894424,31.232021761053772,3.7107095756221318,53.650946155329365,684.167428119626,5224.56624370173,-6366.391851890084,-908.9766368219582,-89.83068876699639,-5.411397422890401,.8206787908286602,.3901806440322567,-.16070888947830023,36.147034243915876,304.11815768187864,732.7429163887613,11989.60988270091,1300.012278487897,335.28490093152146,31.48816102859945,3.373875931311736,47.232241542899175,652.7371796173471,5132.414255594984,-6909.087078780055,-1001.9990371107289,-103.62185754286375,-6.104916304710272,.7416505462720353,.5805693545089249,-.16636367662261495,37.751650073343995,303.01103387567713,627.9747488785183,12358.763425278165,1412.2779918482834,346.7496836825721,31.598286663170416,3.1598635433980946,40.57878626349686,616.1671130880391,5007.833007176154,-7454.040671756168,-1095.7960341867115,-118.24411666465777,-6.818469345853504,.6681786379192989,.7653668647301797,-.1716176790982088,39.11551877123304,298.3413246578966,503.5259106886539,12679.589408408976,1516.5821921214542,355.9850766329023,31.395241710249053,2.9164211881972335,33.79716964664243,574.8943997801362,4853.234992253242,-7997.57021486075,-1189.7624067269965,-133.6444792601766,-7.7202770609839915,.5993769336819237,.9427934736519954,-.17645823955292173,40.21879108166477,289.9982036694474,359.3226160751053,12950.259102786438,1612.1013903507662,362.85067106591504,31.045922092242872,2.822222032597987,26.988862316190684,529.8996541764288,4671.371946949588,-8535.899136645805,-1282.5898586244496,-149.58553632943463,-8.643494270763135,.5345111359507916,1.111140466039205,-.36174739330527045,41.04429910497807,277.5463268268618,195.6386023135583,13169.43812144731,1697.6433561479398,367.40983966190305,30.557037410382826,2.531473372857427,20.070154905927314,481.50208566532336,4464.970341588308,-9065.36882077239,-1373.62841526722,-166.1660487028118,-9.58289321133207,.4729647758913199,1.268786568327291,-.36970682634889585,41.393213350082036,261.2935935556502,12.935476055240873,13336.131683328815,1772.508612059496,369.76534388639965,29.751323653701338,2.4023193045459172,13.304795348228817,430.5615775526625,4237.0568611071185,-9581.931701634761,-1461.6913552409758,-183.12733958476446,-10.718010163869403,.41421356237309503,1.414213562373095,-.37677560326535325,41.619486213528496,241.05423794991074,-187.94665032361226,13450.063605744153,1836.153896465782,369.4908799925761,29.001847876923147,2.0714759319987186,6.779591200894186,377.7767837205709,3990.386575512536,-10081.709459700915,-1545.947424837898,-200.3762958015653,-11.864482073055006,.3578057213145241,1.546020906725474,-.3829366947518991,41.1516456456653,216.47684307105183,-406.1569483347166,13511.136535077321,1887.8076599260432,367.3025214564151,28.136213436723654,1.913880671464418,.3829366947518991,323.85365704338597,3728.1472257487526,-10561.233882199509,-1625.2025997821418,-217.62525175416,-13.015432208941645,.3033466836073424,1.66293922460509,-.5822628872992417,40.35639251440489,188.20071124269245,-640.2706748618148,13519.21490106562,1927.6022433578062,362.8197642637487,26.968821921868447,1.7463817695935329,-5.62650678237171,269.3016715297017,3453.386536448852,-11016.145278780888,-1698.6569643425091,-234.7658734267683,-14.16351421663124,.2504869601913055,1.76384252869671,-.5887180101749253,39.23429103868072,155.76096234403798,-889.2492977967378,13475.470561874661,1955.0535223723712,356.4450994756727,25.894952980042156,1.5695032905781554,-11.181939564328772,214.80884394039484,3169.1640829158237,-11443.321309975563,-1765.1588461316153,-251.68908574481912,-15.49755935939164,.198912367379658,1.847759065022573,-.7912582233652842,37.39369355329111,119.699486012458,-1151.0956593239027,13380.446257078214,1970.3952110853447,348.01959814116185,24.731487364283044,1.3850130831637748,-16.421408865300393,161.05030052864092,2878.3322807850063,-11838.991423510031,-1823.985884688674,-268.2854986386903,-16.81724543849939,.1483359875383474,1.913880671464418,-.7960642926861912,35.2322109610459,80.01928065061526,-1424.0212633405113,13235.794061869668,1973.804052543835,337.9908651258184,23.289159354463873,1.3934255946442087,-21.099669467133474,108.48348407242611,2583.700758091299,-12199.726194855148,-1874.2780658979746,-284.2467154529415,-18.11369784385905,.09849140335716425,1.961570560806461,-.998795456205172,32.56307803611191,36.958364584370486,-1706.075448829146,13043.287458812016,1965.3831106103316,326.43182772364605,22.175018750622293,1.198638339011324,-25.371248002043963,57.53505923036915,2288.41886619975,-12522.674544337233,-1914.8400385312243,-299.26241273417224,-19.37805630698734,.04912684976946725,1.990369453344394,.035780907*a.SQRT2*.5/2384e-9,.017876148*a.SQRT2*.5/2384e-9,.003134727*a.SQRT2*.5/2384e-9,.002457142*a.SQRT2*.5/2384e-9,971317e-9*a.SQRT2*.5/2384e-9,218868e-9*a.SQRT2*.5/2384e-9,101566e-9*a.SQRT2*.5/2384e-9,13828e-9*a.SQRT2*.5/2384e-9,12804.797818791945,1945.5515939597317,313.4244966442953,20.801593959731544,1995.1556208053692,9.000838926174497,-29.20218120805369],t=12,n=36,r=[[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,940084909404969e-27,6423305872147839e-28,2382191739347918e-28,5456116108943412e-27,4878985199565852e-27,4240448995017367e-27,3559909094758252e-27,2858043359288075e-27,2156177623817898e-27,1475637723558783e-27,8371015190102974e-28,2599706096327376e-28,-5456116108943412e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758252e-27,-2858043359288076e-27,-2156177623817898e-27,-1475637723558783e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347923e-28,-6423305872147843e-28,-9400849094049696e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049694e-28,-642330587214784e-27,-2382191739347918e-28],[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,9400849094049688e-28,6423305872147841e-28,2382191739347918e-28,5456116108943413e-27,4878985199565852e-27,4240448995017367e-27,3559909094758253e-27,2858043359288075e-27,2156177623817898e-27,1475637723558782e-27,8371015190102975e-28,2599706096327376e-28,-5461314069809755e-27,-4921085770524055e-27,-4343405037091838e-27,-3732668368707687e-27,-3093523840190885e-27,-2430835727329465e-27,-1734679010007751e-27,-974825365660928e-27,-2797435120168326e-28,0,0,0,0,0,0,-2283748241799531e-28,-4037858874020686e-28,-2146547464825323e-28],[.1316524975873958,.414213562373095,.7673269879789602,1.091308501069271,1.303225372841206,1.56968557711749,1.920982126971166,2.414213562373094,3.171594802363212,4.510708503662055,7.595754112725146,22.90376554843115,.984807753012208,.6427876096865394,.3420201433256688,.9396926207859084,-.1736481776669303,-.7660444431189779,.8660254037844387,.5,-.5144957554275265,-.4717319685649723,-.3133774542039019,-.1819131996109812,-.09457419252642064,-.04096558288530405,-.01419856857247115,-.003699974673760037,.8574929257125442,.8817419973177052,.9496286491027329,.9833145924917901,.9955178160675857,.9991605581781475,.999899195244447,.9999931550702802],[0,0,0,0,0,0,2283748241799531e-28,4037858874020686e-28,2146547464825323e-28,5461314069809755e-27,4921085770524055e-27,4343405037091838e-27,3732668368707687e-27,3093523840190885e-27,2430835727329466e-27,1734679010007751e-27,974825365660928e-27,2797435120168326e-28,-5456116108943413e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758253e-27,-2858043359288075e-27,-2156177623817898e-27,-1475637723558782e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347913e-28,-6423305872147834e-28,-9400849094049688e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049688e-28,-6423305872147841e-28,-2382191739347918e-28]],l=r[c.SHORT_TYPE],u=r[c.SHORT_TYPE],f=r[c.SHORT_TYPE],d=r[c.SHORT_TYPE],p=[0,1,16,17,8,9,24,25,4,5,20,21,12,13,28,29,2,3,18,19,10,11,26,27,6,7,22,23,14,15,30,31];function h(t,n,r){for(var o,i,s,c=10,l=n+238-14-286,u=-15;u<0;u++){var f,d,p;f=e[c+-10],d=t[l+-224]*f,p=t[n+224]*f,f=e[c+-9],d+=t[l+-160]*f,p+=t[n+160]*f,f=e[c+-8],d+=t[l+-96]*f,p+=t[n+96]*f,f=e[c+-7],d+=t[l+-32]*f,p+=t[n+32]*f,f=e[c+-6],d+=t[l+32]*f,p+=t[n+-32]*f,f=e[c+-5],d+=t[l+96]*f,p+=t[n+-96]*f,f=e[c+-4],d+=t[l+160]*f,p+=t[n+-160]*f,f=e[c+-3],d+=t[l+224]*f,p+=t[n+-224]*f,f=e[c+-2],d+=t[n+-256]*f,p-=t[l+256]*f,f=e[c+-1],d+=t[n+-192]*f,p-=t[l+192]*f,f=e[c+0],d+=t[n+-128]*f,p-=t[l+128]*f,f=e[c+1],d+=t[n+-64]*f,p-=t[l+64]*f,f=e[c+2],d+=t[n+0]*f,p-=t[l+0]*f,f=e[c+3],d+=t[n+64]*f,p-=t[l+-64]*f,f=e[c+4],d+=t[n+128]*f,p-=t[l+-128]*f,f=e[c+5],d+=t[n+192]*f,p-=t[l+-192]*f,d*=e[c+6],f=p-d,r[30+2*u]=p+d,r[31+2*u]=e[c+7]*f,c+=18,n--,l++}p=t[n+-16]*e[c+-10],d=t[n+-32]*e[c+-2],p+=(t[n+-48]-t[n+16])*e[c+-9],d+=t[n+-96]*e[c+-1],p+=(t[n+-80]+t[n+48])*e[c+-8],d+=t[n+-160]*e[c+0],p+=(t[n+-112]-t[n+80])*e[c+-7],d+=t[n+-224]*e[c+1],p+=(t[n+-144]+t[n+112])*e[c+-6],d-=t[n+32]*e[c+2],p+=(t[n+-176]-t[n+144])*e[c+-5],d-=t[n+96]*e[c+3],p+=(t[n+-208]+t[n+176])*e[c+-4],d-=t[n+160]*e[c+4],p+=(t[n+-240]-t[n+208])*e[c+-3],d-=t[n+224],o=d-p,i=d+p,p=r[14],d=r[15]-p,r[31]=i+p,r[30]=o+d,r[15]=o-d,r[14]=i-p,s=r[28]-r[0],r[0]+=r[28],r[28]=s*e[c+-36+7],s=r[29]-r[1],r[1]+=r[29],r[29]=s*e[c+-36+7],s=r[26]-r[2],r[2]+=r[26],r[26]=s*e[c+-72+7],s=r[27]-r[3],r[3]+=r[27],r[27]=s*e[c+-72+7],s=r[24]-r[4],r[4]+=r[24],r[24]=s*e[c+-108+7],s=r[25]-r[5],r[5]+=r[25],r[25]=s*e[c+-108+7],s=r[22]-r[6],r[6]+=r[22],r[22]=s*a.SQRT2,s=r[23]-r[7],r[7]+=r[23],r[23]=s*a.SQRT2-r[7],r[7]-=r[6],r[22]-=r[7],r[23]-=r[22],s=r[6],r[6]=r[31]-s,r[31]=r[31]+s,s=r[7],r[7]=r[30]-s,r[30]=r[30]+s,s=r[22],r[22]=r[15]-s,r[15]=r[15]+s,s=r[23],r[23]=r[14]-s,r[14]=r[14]+s,s=r[20]-r[8],r[8]+=r[20],r[20]=s*e[c+-180+7],s=r[21]-r[9],r[9]+=r[21],r[21]=s*e[c+-180+7],s=r[18]-r[10],r[10]+=r[18],r[18]=s*e[c+-216+7],s=r[19]-r[11],r[11]+=r[19],r[19]=s*e[c+-216+7],s=r[16]-r[12],r[12]+=r[16],r[16]=s*e[c+-252+7],s=r[17]-r[13],r[13]+=r[17],r[17]=s*e[c+-252+7],s=-r[20]+r[24],r[20]+=r[24],r[24]=s*e[c+-216+7],s=-r[21]+r[25],r[21]+=r[25],r[25]=s*e[c+-216+7],s=r[4]-r[8],r[4]+=r[8],r[8]=s*e[c+-216+7],s=r[5]-r[9],r[5]+=r[9],r[9]=s*e[c+-216+7],s=r[0]-r[12],r[0]+=r[12],r[12]=s*e[c+-72+7],s=r[1]-r[13],r[1]+=r[13],r[13]=s*e[c+-72+7],s=r[16]-r[28],r[16]+=r[28],r[28]=s*e[c+-72+7],s=-r[17]+r[29],r[17]+=r[29],r[29]=s*e[c+-72+7],s=a.SQRT2*(r[2]-r[10]),r[2]+=r[10],r[10]=s,s=a.SQRT2*(r[3]-r[11]),r[3]+=r[11],r[11]=s,s=a.SQRT2*(-r[18]+r[26]),r[18]+=r[26],r[26]=s-r[18],s=a.SQRT2*(-r[19]+r[27]),r[19]+=r[27],r[27]=s-r[19],s=r[2],r[19]-=r[3],r[3]-=s,r[2]=r[31]-s,r[31]+=s,s=r[3],r[11]-=r[19],r[18]-=s,r[3]=r[30]-s,r[30]+=s,s=r[18],r[27]-=r[11],r[19]-=s,r[18]=r[15]-s,r[15]+=s,s=r[19],r[10]-=s,r[19]=r[14]-s,r[14]+=s,s=r[10],r[11]-=s,r[10]=r[23]-s,r[23]+=s,s=r[11],r[26]-=s,r[11]=r[22]-s,r[22]+=s,s=r[26],r[27]-=s,r[26]=r[7]-s,r[7]+=s,s=r[27],r[27]=r[6]-s,r[6]+=s,s=a.SQRT2*(r[0]-r[4]),r[0]+=r[4],r[4]=s,s=a.SQRT2*(r[1]-r[5]),r[1]+=r[5],r[5]=s,s=a.SQRT2*(r[16]-r[20]),r[16]+=r[20],r[20]=s,s=a.SQRT2*(r[17]-r[21]),r[17]+=r[21],r[21]=s,s=-a.SQRT2*(r[8]-r[12]),r[8]+=r[12],r[12]=s-r[8],s=-a.SQRT2*(r[9]-r[13]),r[9]+=r[13],r[13]=s-r[9],s=-a.SQRT2*(r[25]-r[29]),r[25]+=r[29],r[29]=s-r[25],s=-a.SQRT2*(r[24]+r[28]),r[24]-=r[28],r[28]=s-r[24],s=r[24]-r[16],r[24]=s,s=r[20]-s,r[20]=s,s=r[28]-s,r[28]=s,s=r[25]-r[17],r[25]=s,s=r[21]-s,r[21]=s,s=r[29]-s,r[29]=s,s=r[17]-r[1],r[17]=s,s=r[9]-s,r[9]=s,s=r[25]-s,r[25]=s,s=r[5]-s,r[5]=s,s=r[21]-s,r[21]=s,s=r[13]-s,r[13]=s,s=r[29]-s,r[29]=s,s=r[1]-r[0],r[1]=s,s=r[16]-s,r[16]=s,s=r[17]-s,r[17]=s,s=r[8]-s,r[8]=s,s=r[9]-s,r[9]=s,s=r[24]-s,r[24]=s,s=r[25]-s,r[25]=s,s=r[4]-s,r[4]=s,s=r[5]-s,r[5]=s,s=r[20]-s,r[20]=s,s=r[21]-s,r[21]=s,s=r[12]-s,r[12]=s,s=r[13]-s,r[13]=s,s=r[28]-s,r[28]=s,s=r[29]-s,r[29]=s,s=r[0],r[0]+=r[31],r[31]-=s,s=r[1],r[1]+=r[30],r[30]-=s,s=r[16],r[16]+=r[15],r[15]-=s,s=r[17],r[17]+=r[14],r[14]-=s,s=r[8],r[8]+=r[23],r[23]-=s,s=r[9],r[9]+=r[22],r[22]-=s,s=r[24],r[24]+=r[7],r[7]-=s,s=r[25],r[25]+=r[6],r[6]-=s,s=r[4],r[4]+=r[27],r[27]-=s,s=r[5],r[5]+=r[26],r[26]-=s,s=r[20],r[20]+=r[11],r[11]-=s,s=r[21],r[21]+=r[10],r[10]-=s,s=r[12],r[12]+=r[19],r[19]-=s,s=r[13],r[13]+=r[18],r[18]-=s,s=r[28],r[28]+=r[3],r[3]-=s,s=r[29],r[29]+=r[2],r[2]-=s}function m(e,t){for(var n=0;n<3;n++){var o,a,i,s,l,u;s=e[t+6]*r[c.SHORT_TYPE][0]-e[t+15],o=e[t+0]*r[c.SHORT_TYPE][2]-e[t+9],a=s+o,i=s-o,s=e[t+15]*r[c.SHORT_TYPE][0]+e[t+6],o=e[t+9]*r[c.SHORT_TYPE][2]+e[t+0],l=s+o,u=-s+o,o=2069978111953089e-26*(e[t+3]*r[c.SHORT_TYPE][1]-e[t+12]),s=2069978111953089e-26*(e[t+12]*r[c.SHORT_TYPE][1]+e[t+3]),e[t+0]=190752519173728e-25*a+o,e[t+15]=190752519173728e-25*-l+s,i=.8660254037844387*i*1907525191737281e-26,l=.5*l*1907525191737281e-26+s,e[t+3]=i-l,e[t+6]=i+l,a=.5*a*1907525191737281e-26-o,u=.8660254037844387*u*1907525191737281e-26,e[t+9]=a+u,e[t+12]=a-u,t++}}function g(e,t,n){var r,o,a,i,s,c,l,f,d,p,h,m,g,v,_,b,y,w;a=n[17]-n[9],s=n[15]-n[11],c=n[14]-n[12],l=n[0]+n[8],f=n[1]+n[7],d=n[2]+n[6],p=n[3]+n[5],e[t+17]=l+d-p-(f-n[4]),o=(l+d-p)*u[19]+(f-n[4]),r=(a-s-c)*u[18],e[t+5]=r+o,e[t+6]=r-o,i=(n[16]-n[10])*u[18],f=f*u[19]+n[4],r=a*u[12]+i+s*u[13]+c*u[14],o=-l*u[16]+f-d*u[17]+p*u[15],e[t+1]=r+o,e[t+2]=r-o,r=a*u[13]-i-s*u[14]+c*u[12],o=-l*u[17]+f-d*u[15]+p*u[16],e[t+9]=r+o,e[t+10]=r-o,r=a*u[14]-i+s*u[12]-c*u[13],o=l*u[15]-f+d*u[16]-p*u[17],e[t+13]=r+o,e[t+14]=r-o,h=n[8]-n[0],g=n[6]-n[2],v=n[5]-n[3],_=n[17]+n[9],b=n[16]+n[10],y=n[15]+n[11],w=n[14]+n[12],e[t+0]=_+y+w+(b+n[13]),r=(_+y+w)*u[19]-(b+n[13]),o=(h-g+v)*u[18],e[t+11]=r+o,e[t+12]=r-o,m=(n[7]-n[1])*u[18],b=n[13]-b*u[19],r=_*u[15]-b+y*u[16]+w*u[17],o=h*u[14]+m+g*u[12]+v*u[13],e[t+3]=r+o,e[t+4]=r-o,r=-_*u[17]+b-y*u[15]-w*u[16],o=h*u[13]+m-g*u[14]-v*u[12],e[t+7]=r+o,e[t+8]=r-o,r=-_*u[16]+b-y*u[17]-w*u[15],o=h*u[12]-m+g*u[13]-v*u[14],e[t+15]=r+o,e[t+16]=r-o}this.mdct_sub48=function(e,a,u){for(var v=a,_=286,b=0;b<e.channels_out;b++){for(var y=0;y<e.mode_gr;y++){for(var w,x=e.l3_side.tt[y][b],S=x.xr,k=0,M=e.sb_sample[b][1-y],A=0,E=0;E<9;E++)for(h(v,_,M[A]),h(v,_+32,M[A+1]),A+=2,_+=64,w=1;w<32;w+=2)M[A-1][w]*=-1;for(w=0;w<32;w++,k+=18){var T=x.block_type,R=e.sb_sample[b][y],O=e.sb_sample[b][1-y];if(0!=x.mixed_block_flag&&w<2&&(T=0),e.amp_filter[w]<1e-12)i.fill(S,k+0,k+18,0);else{if(e.amp_filter[w]<1)for(E=0;E<18;E++)O[E][p[w]]*=e.amp_filter[w];if(T==c.SHORT_TYPE){for(E=-t/4;E<0;E++){var C=r[c.SHORT_TYPE][E+3];S[k+3*E+9]=R[9+E][p[w]]*C-R[8-E][p[w]],S[k+3*E+18]=R[14-E][p[w]]*C+R[15+E][p[w]],S[k+3*E+10]=R[15+E][p[w]]*C-R[14-E][p[w]],S[k+3*E+19]=O[2-E][p[w]]*C+O[3+E][p[w]],S[k+3*E+11]=O[3+E][p[w]]*C-O[2-E][p[w]],S[k+3*E+20]=O[8-E][p[w]]*C+O[9+E][p[w]]}m(S,k)}else{var j=s(18);for(E=-n/4;E<0;E++){var B,I;B=r[T][E+27]*O[E+9][p[w]]+r[T][E+36]*O[8-E][p[w]],I=r[T][E+9]*R[E+9][p[w]]-r[T][E+18]*R[8-E][p[w]],j[E+9]=B-I*l[3+E+9],j[E+18]=B*l[3+E+9]+I}g(S,k,j)}}if(T!=c.SHORT_TYPE&&0!=w)for(E=7;E>=0;--E){var P,L;P=S[k+E]*f[20+E]+S[k+-1-E]*d[28+E],L=S[k+E]*d[28+E]-S[k+-1-E]*f[20+E],S[k+-1-E]=P,S[k+E]=L}}}if(v=u,_=286,1==e.mode_gr)for(var N=0;N<18;N++)o.arraycopy(e.sb_sample[b][1][N],0,e.sb_sample[b][0][N],0,32)}}}e.exports=l},f5df:function(e,t,n){var r=n("00ee"),o=n("1626"),a=n("c6b6"),i=n("b622"),s=i("toStringTag"),c=Object,l="Arguments"==a(function(){return arguments}()),u=function(e,t){try{return e[t]}catch(n){}};e.exports=r?a:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=u(t=c(e),s))?n:l?a(t):"Object"==(r=a(t))&&o(t.callee)?"Arguments":r}},f772:function(e,t,n){var r=n("5692"),o=n("90e3"),a=r("keys");e.exports=function(e){return a[e]||(a[e]=o(e))}},f8cd:function(e,t,n){var r=n("5926"),o=RangeError;e.exports=function(e){var t=r(e);if(t<0)throw o("The argument can't be less than 0");return t}},fa9e:function(e,t,n){n("986a")},fb15:function(e,t,n){"use strict";if(n.r(t),"undefined"!==typeof window){var r=window.document.currentScript,o=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-card-window",style:[{height:e.height},e.cssVars]},[t("div",{staticClass:"vac-chat-container"},[e.singleRoom?e._e():t("rooms-list",{attrs:{"current-user-id":e.currentUserId,rooms:e.orderedRooms,"loading-rooms":e.loadingRooms,"rooms-loaded":e.roomsLoaded,room:e.room,"room-actions":e.roomActions,"text-messages":e.t,"show-search":e.showSearch,"show-add-room":e.showAddRoom,"show-rooms-list":e.showRoomsList,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"is-mobile":e.isMobile,"scroll-distance":e.scrollDistance},on:{"fetch-room":e.fetchRoom,"fetch-more-rooms":e.fetchMoreRooms,"loading-more-rooms":function(t){e.loadingMoreRooms=t},"add-room":e.addRoom,"room-action-handler":e.roomActionHandler},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("room",{attrs:{"current-user-id":e.currentUserId,rooms:e.rooms,"room-id":e.room.roomId||"","load-first-room":e.loadFirstRoom,messages:e.messages,"room-message":e.roomMessage,"messages-loaded":e.messagesLoaded,"menu-actions":e.menuActions,"message-actions":e.messageActions,"message-selection-actions":e.messageSelectionActions,"auto-scroll":e.autoScroll,"show-send-icon":e.showSendIcon,"show-files":e.showFiles,"show-audio":e.showAudio,"audio-bit-rate":e.audioBitRate,"audio-sample-rate":e.audioSampleRate,"show-emojis":e.showEmojis,"show-reaction-emojis":e.showReactionEmojis,"show-new-messages-divider":e.showNewMessagesDivider,"show-footer":e.showFooter,"text-messages":e.t,"single-room":e.singleRoom,"show-rooms-list":e.showRoomsList,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"is-mobile":e.isMobile,"loading-rooms":e.loadingRooms,"room-info-enabled":e.roomInfoEnabled,"textarea-action-enabled":e.textareaActionEnabled,"textarea-auto-focus":e.textareaAutoFocus,"user-tags-enabled":e.userTagsEnabled,"emojis-suggestion-enabled":e.emojisSuggestionEnabled,"scroll-distance":e.scrollDistance,"accepted-files":e.acceptedFiles,"templates-text":e.templatesText,"username-options":e.usernameOptions},on:{"toggle-rooms-list":e.toggleRoomsList,"room-info":e.roomInfo,"fetch-messages":e.fetchMessages,"send-message":e.sendMessage,"edit-message":e.editMessage,"delete-message":e.deleteMessage,"open-file":e.openFile,"open-user-tag":e.openUserTag,"open-failed-message":e.openFailedMessage,"menu-action-handler":e.menuActionHandler,"message-action-handler":e.messageActionHandler,"message-selection-action-handler":e.messageSelectionActionHandler,"send-message-reaction":e.sendMessageReaction,"typing-message":e.typingMessage,"textarea-action-handler":e.textareaActionHandler},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1),t("transition",{attrs:{name:"vac-fade-preview",appear:""}},[e.showMediaPreview?t("media-preview",{attrs:{file:e.previewFile},on:{"close-media-preview":function(t){e.showMediaPreview=!1}}}):e._e()],1)],1)},i=[];function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(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<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.showRoomsList,expression:"showRoomsList"}],staticClass:"vac-rooms-container",class:{"vac-rooms-container-full":e.isMobile,"vac-app-border-r":!e.isMobile}},[e._t("rooms-header"),e._t("rooms-list-search",(function(){return[t("rooms-search",{attrs:{rooms:e.rooms,"loading-rooms":e.loadingRooms,"text-messages":e.textMessages,"show-search":e.showSearch,"show-add-room":e.showAddRoom},on:{"search-room":e.searchRoom,"add-room":function(t){return e.$emit("add-room")}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})]})),t("loader",{attrs:{show:e.loadingRooms},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),e.loadingRooms||e.rooms.length?e._e():t("div",{staticClass:"vac-rooms-empty"},[e._t("rooms-empty",(function(){return[e._v(" "+e._s(e.textMessages.ROOMS_EMPTY)+" ")]}))],2),e.loadingRooms?e._e():t("div",{staticClass:"vac-room-list",attrs:{id:"rooms-list"}},[e._l(e.filteredRooms,(function(n){return t("div",{key:n.roomId,staticClass:"vac-room-item",class:{"vac-room-selected":e.selectedRoomId===n.roomId},attrs:{id:n.roomId},on:{click:function(t){return e.openRoom(n)}}},[t("room-content",{attrs:{"current-user-id":e.currentUserId,room:n,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"text-messages":e.textMessages,"room-actions":e.roomActions},on:{"room-action-handler":function(t){return e.$emit("room-action-handler",t)}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1)})),t("transition",{attrs:{name:"vac-fade-message"}},[e.rooms.length&&!e.loadingRooms?t("div",{attrs:{id:"infinite-loader-rooms"}},[t("loader",{attrs:{show:e.showLoader,infinite:!0},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1):e._e()])],2)],2)},f=[],d=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-fade-spinner",appear:""}},[e.show?t("div",{staticClass:"vac-loader-wrapper",class:{"vac-container-center":!e.infinite,"vac-container-top":e.infinite}},[e._t("spinner-icon",(function(){return[t("div",{attrs:{id:"vac-circle"}})]}),null,{show:e.show,infinite:e.infinite})],2):e._e()])},p=[],h={name:"Loader",props:{show:{type:Boolean,default:!1},infinite:{type:Boolean,default:!1}}},m=h;function g(e,t,n,r,o,a,i,s){var c,l="function"===typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),i?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=c):o&&(c=s?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,t){return c.call(t),u(e,t)}}else{var f=l.beforeCreate;l.beforeCreate=f?[].concat(f,c):[c]}return{exports:e,options:l}}var v=g(m,d,p,!1,null,null,null),_=v.exports,b=function(){var e=this,t=e._self._c;return t("div",{class:{"vac-box-search":e.showSearchBar,"vac-box-empty":!e.showSearchBar}},[e.showSearch?[!e.loadingRooms&&e.rooms.length?t("div",{staticClass:"vac-icon-search"},[e._t("search-icon",(function(){return[t("svg-icon",{attrs:{name:"search"}})]}))],2):e._e(),!e.loadingRooms&&e.rooms.length?t("input",{staticClass:"vac-input",attrs:{type:"search",placeholder:e.textMessages.SEARCH,autocomplete:"off"},on:{input:function(t){return e.$emit("search-room",t)}}}):e._e()]:e._e(),e.showAddRoom?t("div",{staticClass:"vac-svg-button vac-add-icon",on:{click:function(t){return e.$emit("add-room")}}},[e._t("add-icon",(function(){return[t("svg-icon",{attrs:{name:"add"}})]}))],2):e._e()],2)},y=[],w=function(){var e=this,t=e._self._c;return t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",width:"24",height:"24",viewBox:"0 0 ".concat(e.size," ").concat(e.size)}},[t("path",{attrs:{id:e.svgId,d:e.svgItem[e.name].path}}),e.svgItem[e.name].path2?t("path",{attrs:{id:e.svgId,d:e.svgItem[e.name].path2}}):e._e()])},x=[],S={name:"SvgIcon",props:{name:{type:String,default:null},param:{type:String,default:null}},data:function(){return{svgItem:{search:{path:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},add:{path:"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},toggle:{path:"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z"},menu:{path:"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z"},close:{path:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"},file:{path:"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},paperclip:{path:"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z"},"close-outline":{path:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},send:{path:"M2,21L23,12L2,3V10L17,12L2,14V21Z"},emoji:{path:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"},document:{path:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"},pencil:{path:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"},checkmark:{path:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},"double-checkmark":{path:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"},eye:{path:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z"},dropdown:{path:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},deleted:{path:"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z"},microphone:{size:"large",path:"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z"},"audio-play":{size:"medium",path:"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684   c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84   c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z"},"audio-pause":{size:"medium",path:"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z",path2:"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z"}}}},computed:{svgId:function(){var e=this.param?"-"+this.param:"";return"vac-icon-".concat(this.name).concat(e)},size:function(){var e=this.svgItem[this.name];return"large"===e.size?512:"medium"===e.size?48:24}}},k=S,M=g(k,w,x,!1,null,null,null),A=M.exports,E={name:"RoomsSearch",components:{SvgIcon:A},props:{textMessages:{type:Object,required:!0},showSearch:{type:Boolean,required:!0},showAddRoom:{type:Boolean,required:!0},rooms:{type:Array,required:!0},loadingRooms:{type:Boolean,required:!0}},emits:["search-room","add-room"],computed:{showSearchBar:function(){return this.showSearch||this.showAddRoom}}},T=E,R=g(T,b,y,!1,null,null,null),O=R.exports,C=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-room-container"},[e._t("room-list-item",(function(){return[e._t("room-list-avatar",(function(){return[e.room.avatar?t("div",{staticClass:"vac-avatar",style:{"background-image":"url('".concat(e.room.avatar,"')")}}):e._e()]}),null,{room:e.room}),t("div",{staticClass:"vac-name-container vac-text-ellipsis"},[t("div",{staticClass:"vac-title-container"},[e.userStatus?t("div",{staticClass:"vac-state-circle",class:{"vac-state-online":"online"===e.userStatus}}):e._e(),t("div",{staticClass:"vac-room-name vac-text-ellipsis"},[e._v(" "+e._s(e.room.roomName)+" ")]),e.room.lastMessage?t("div",{staticClass:"vac-text-date"},[e._v(" "+e._s(e.room.lastMessage.timestamp)+" ")]):e._e()]),t("div",{staticClass:"vac-text-last",class:{"vac-message-new":e.room.lastMessage&&e.room.lastMessage["new"]&&!e.typingUsers}},[e.isMessageCheckmarkVisible?t("span",[e._t("checkmark-icon",(function(){return[t("svg-icon",{staticClass:"vac-icon-check",attrs:{name:e.room.lastMessage.distributed?"double-checkmark":"checkmark",param:e.room.lastMessage.seen?"seen":""}})]}),null,{message:e.room.lastMessage})],2):e._e(),e.room.lastMessage&&!e.room.lastMessage.deleted&&e.isAudio?t("div",{staticClass:"vac-text-ellipsis"},[e._t("microphone-icon",(function(){return[t("svg-icon",{staticClass:"vac-icon-microphone",attrs:{name:"microphone"}})]})),e._v(" "+e._s(e.formattedDuration)+" ")],2):e.room.lastMessage?t("format-message",{attrs:{content:e.getLastMessage,deleted:!!e.room.lastMessage.deleted&&!e.typingUsers,users:e.room.users,linkify:!1,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"single-line":!0},scopedSlots:e._u([{key:"deleted-icon",fn:function(t){return[e._t("deleted-icon",null,null,t)]}}],null,!0)}):e._e(),!e.room.lastMessage&&e.typingUsers?t("div",{staticClass:"vac-text-ellipsis"},[e._v(" "+e._s(e.typingUsers)+" ")]):e._e(),t("div",{staticClass:"vac-room-options-container"},[e.room.unreadCount?t("div",{staticClass:"vac-badge-counter vac-room-badge"},[e._v(" "+e._s(e.room.unreadCount)+" ")]):e._e(),e._t("room-list-options",(function(){return[e.roomActions.length?t("div",{staticClass:"vac-svg-button vac-list-room-options",on:{click:function(t){t.stopPropagation(),e.roomMenuOpened=e.room.roomId}}},[e._t("room-list-options-icon",(function(){return[t("svg-icon",{attrs:{name:"dropdown",param:"room"}})]}))],2):e._e(),e.roomActions.length?t("transition",{attrs:{name:"vac-slide-left"}},[e.roomMenuOpened===e.room.roomId?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeRoomMenu,expression:"closeRoomMenu"}],staticClass:"vac-menu-options"},[t("div",{staticClass:"vac-menu-list"},e._l(e.roomActions,(function(n){return t("div",{key:n.name},[t("div",{staticClass:"vac-menu-item",on:{click:function(t){return t.stopPropagation(),e.roomActionHandler(n)}}},[e._v(" "+e._s(n.title)+" ")])])})),0)]):e._e()]):e._e()]}),null,{room:e.room})],2)],1)])]}),null,{room:e.room})],2)},j=[],B=n("c28b"),I=n.n(B),P=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-format-message-wrapper",class:{"vac-text-ellipsis":e.singleLine}},[e.textFormatting.disabled?t("div",{domProps:{innerHTML:e._s(e.formattedContent)}}):t("div",{class:{"vac-text-ellipsis":e.singleLine}},e._l(e.linkifiedMessage,(function(n,r){return t("div",{key:r,staticClass:"vac-format-container"},[t(n.url?"a":"span",{tag:"component",class:{"vac-text-ellipsis":e.singleLine,"vac-text-bold":n.bold,"vac-text-italic":e.deleted||n.italic,"vac-text-strike":n.strike,"vac-text-underline":n.underline,"vac-text-inline-code":!e.singleLine&&n.inline,"vac-text-multiline-code":!e.singleLine&&n.multiline,"vac-text-tag":!e.singleLine&&!e.reply&&n.tag},attrs:{href:n.href,target:n.href?e.linkOptions.target:null,rel:n.href?e.linkOptions.rel:null},on:{click:function(t){return e.openTag(n)}}},[e._t("deleted-icon",(function(){return[e.deleted?t("svg-icon",{staticClass:"vac-icon-deleted",attrs:{name:"deleted"}}):e._e()]}),null,{deleted:e.deleted}),n.url&&n.image?[t("div",{staticClass:"vac-image-link-container"},[t("div",{staticClass:"vac-image-link",style:{"background-image":"url('".concat(n.value,"')"),height:n.height}})]),t("div",{staticClass:"vac-image-link-message"},[t("span",[e._v(e._s(n.value))])])]:[t("span",{domProps:{innerHTML:e._s(n.value)}},[e._v(" "+e._s(n.value)+" ")])]],2)],1)})),0)])},L=[];function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e){if(Array.isArray(e))return N(e)}function F(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function H(e,t){if(e){if("string"===typeof e)return N(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?N(e,t):void 0}}n("d9e2");function U(){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 $(e){return D(e)||F(e)||H(e)||U()}n("a1f0"),n("5b81");var q=n("74fe"),V=function(e,t,n){var r,o={bold:n.bold,italic:n.italic,strike:n.strike,underline:n.underline,multilineCode:n.multilineCode,inlineCode:n.inlineCode},a=(r={},s(r,o.bold,{end:"\\"+o.bold,allowed_chars:".",type:"bold"}),s(r,o.italic,{end:o.italic,allowed_chars:".",type:"italic"}),s(r,o.strike,{end:o.strike,allowed_chars:".",type:"strike"}),s(r,o.underline,{end:o.underline,allowed_chars:".",type:"underline"}),s(r,o.multilineCode,{end:o.multilineCode,allowed_chars:"(.|\n)",type:"multiline-code"}),s(r,o.inlineCode,{end:o.inlineCode,allowed_chars:".",type:"inline-code"}),s(r,"<usertag>",{allowed_chars:".",end:"</usertag>",type:"tag"}),r),i=z(e,a),c=X(i,a),l=[].concat.apply([],c);return t&&K(l),l};function z(e,t){var n=[],r=-1,o=null,a=q.find(e),i=!1;if(a.length>0&&(r=e.indexOf(a[0].value),i=!0),Object.keys(t).forEach((function(t){var n=e.indexOf(t);n>=0&&(r<0||n<r)&&(r=n,o=t,i=!1)})),i&&-1!==o){var s=e.substr(0,r),c=e.substr(r,a[0].value.length),l=e.substr(r+a[0].value.length);return n.push(s),n.push(c),n=n.concat(z(l,t)),n}if(o){var u=e.substr(0,r),f=o,d=e.substr(r+f.length);if(e.replace(/\s/g,"").length===2*f.length)return[e];var p=d.match(new RegExp("^("+(t[f].allowed_chars||".")+"*"+(t[f].end?"?":"")+")"+(t[f].end?"("+t[f].end+")":""),"m"));if(p&&p[1]){u&&n.push(u);var h={start:f,content:z(p[1],t),end:p[2],type:t[f].type};n.push(h),d=d.substr(p[0].length)}else u+=f,n.push(u);return n=n.concat(z(d,t)),n}return e?[e]:[]}function X(e,t){var n=[];return e.forEach((function(e){"string"===typeof e?n.push({types:[],value:e}):t[e.start]&&n.push(Y(e))})),n}function Y(e){var t=[];return G(e,t,[]),t}function G(e,t,n){e.content.forEach((function(r){"string"===typeof r?t.push({types:W(n.concat([e.type])),value:r}):G(r,t,W([r.type].concat([e.type]).concat(n)))}))}function W(e){return $(new Set(e))}function K(e){var t=[];return e.forEach((function(e){var n=q.find(e.value);if(n.length){var r=e.value.replace(n[0].value,"");t.push({types:e.types,value:r}),e.types=["url"].concat(e.types),e.href=n[0].href,e.value=n[0].value}t.push(e)})),t}var Z=n("c9d9"),Q={name:"FormatMessage",components:{SvgIcon:A},props:{content:{type:[String,Number],required:!0},deleted:{type:Boolean,default:!1},users:{type:Array,default:function(){return[]}},linkify:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!1},reply:{type:Boolean,default:!1},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0}},emits:["open-user-tag"],computed:{linkifiedMessage:function(){var e=this,t=V(this.formatTags(this.content),this.linkify&&!this.linkOptions.disabled,this.textFormatting);return t.forEach((function(t){t.url=e.checkType(t,"url"),t.bold=e.checkType(t,"bold"),t.italic=e.checkType(t,"italic"),t.strike=e.checkType(t,"strike"),t.underline=e.checkType(t,"underline"),t.inline=e.checkType(t,"inline-code"),t.multiline=e.checkType(t,"multiline-code"),t.tag=e.checkType(t,"tag"),t.image=e.checkImageType(t),t.value=e.replaceEmojiByElement(t.value)})),t},formattedContent:function(){return this.formatTags(this.content)}},methods:{checkType:function(e,t){return-1!==e.types.indexOf(t)},checkImageType:function(e){var t=e.value.lastIndexOf("."),n=e.value.lastIndexOf("/");n>t&&(t=-1);var r=e.value.substring(t+1,e.value.length),o=t>0&&Z["b"].some((function(e){return r.toLowerCase().includes(e)}));return o&&this.setImageSize(e),o},setImageSize:function(e){var t=new Image;function n(r){var o=r.path[0].width/150;e.height=Math.round(r.path[0].height/o)+"px",t.removeEventListener("load",n)}t.src=e.value,t.addEventListener("load",n)},formatTags:function(e){var t=this,n="<usertag>",r="</usertag>",o=$(e.matchAll(new RegExp(n,"gi"))).map((function(e){return e.index})),a=e;return o.forEach((function(o){var i=a.substring(o+n.length,a.indexOf(r,o)),s=t.users.find((function(e){return e._id===i}));e=e.replaceAll(i,"@".concat((null===s||void 0===s?void 0:s.username)||"unknown"))})),e},openTag:function(e){if(!this.singleLine&&this.checkType(e,"tag")){var t=this.users.find((function(t){return-1!==e.value.indexOf(t.username)}));this.$emit("open-user-tag",t)}},replaceEmojiByElement:function(e){var t;if(this.singleLine)t=16;else{var n=this.containsOnlyEmojis();t=n?28:20}return e.replaceAll(/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFF]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])/g,(function(e){return'<span style="font-size: '.concat(t,'px">').concat(e,"</span>")}))},containsOnlyEmojis:function(){var e=this.content.replace(new RegExp("[\0-ữf]","g"),""),t=this.content.replace(new RegExp("[\n\rs]+|( )+","g"),"");return e.length===t.length}}},J=Q,ee=g(J,P,L,!1,null,null,null),te=ee.exports,ne=function(e,t,n){if(e.typingUsers&&e.typingUsers.length){var r=e.users.filter((function(n){if(n._id!==t&&-1!==e.typingUsers.indexOf(n._id)&&(!n.status||"offline"!==n.status.state))return!0}));if(!r.length)return;return 2===e.users.length?n.IS_TYPING:r.map((function(e){return e.username})).join(", ")+" "+n.IS_TYPING}},re=n("bd43"),oe=re.isAudioFile,ae={name:"RoomsContent",components:{SvgIcon:A,FormatMessage:te},directives:{clickOutside:I.a.directive},props:{currentUserId:{type:[String,Number],required:!0},room:{type:Object,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},textMessages:{type:Object,required:!0},roomActions:{type:Array,required:!0}},emits:["room-action-handler"],data:function(){return{roomMenuOpened:null}},computed:{getLastMessage:function(){var e=this,t=this.typingUsers;if(t)return t;var n=this.room.lastMessage.deleted?this.textMessages.MESSAGE_DELETED:this.room.lastMessage.content;if(this.room.users.length<=2)return n;var r=this.room.users.find((function(t){return t._id===e.room.lastMessage.senderId}));return this.room.lastMessage.username?"".concat(this.room.lastMessage.username," - ").concat(n):r&&r._id!==this.currentUserId?"".concat(r.username," - ").concat(n):n},userStatus:function(){var e=this;if(this.room.users&&2===this.room.users.length){var t=this.room.users.find((function(t){return t._id!==e.currentUserId}));return t&&t.status?t.status.state:null}},typingUsers:function(){return ne(this.room,this.currentUserId,this.textMessages)},isMessageCheckmarkVisible:function(){return!this.typingUsers&&this.room.lastMessage&&!this.room.lastMessage.deleted&&this.room.lastMessage.senderId===this.currentUserId&&(this.room.lastMessage.saved||this.room.lastMessage.distributed||this.room.lastMessage.seen)},formattedDuration:function(){var e,t,n=null===(e=this.room.lastMessage)||void 0===e||null===(t=e.files)||void 0===t?void 0:t[0];if(n){if(!n.duration)return"".concat(n.name,".").concat(n.extension);var r=Math.floor(n.duration);return(r-(r%=60))/60+(r>9?":":":0")+r}return""},isAudio:function(){return!!this.room.lastMessage.files&&oe(this.room.lastMessage.files[0])}},methods:{roomActionHandler:function(e){this.closeRoomMenu(),this.$emit("room-action-handler",{action:e,roomId:this.room.roomId})},closeRoomMenu:function(){this.roomMenuOpened=null}}},ie=ae,se=g(ie,C,j,!1,null,null,null),ce=se.exports,le=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return n&&""!==n?e.filter((function(e){return r?ue(e[t]).startsWith(ue(n)):ue(e[t]).includes(ue(n))})):e};function ue(e){return e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"")}var fe={name:"RoomsList",components:{Loader:_,RoomsSearch:O,RoomContent:ce},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},showRoomsList:{type:Boolean,required:!0},showSearch:{type:Boolean,required:!0},showAddRoom:{type:Boolean,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},isMobile:{type:Boolean,required:!0},rooms:{type:Array,required:!0},loadingRooms:{type:Boolean,required:!0},roomsLoaded:{type:Boolean,required:!0},room:{type:Object,required:!0},roomActions:{type:Array,required:!0},scrollDistance:{type:Number,required:!0}},emits:["add-room","room-action-handler","loading-more-rooms","fetch-room","fetch-more-rooms"],data:function(){return{filteredRooms:this.rooms||[],observer:null,showLoader:!0,loadingMoreRooms:!1,selectedRoomId:""}},watch:{rooms:{deep:!0,handler:function(e,t){this.filteredRooms=e,(e.length!==t.length||this.roomsLoaded)&&(this.loadingMoreRooms=!1)}},loadingRooms:function(e){var t=this;e||setTimeout((function(){return t.initIntersectionObserver()}))},loadingMoreRooms:function(e){this.$emit("loading-more-rooms",e)},roomsLoaded:{immediate:!0,handler:function(e){e&&(this.loadingMoreRooms=!1,this.loadingRooms||(this.showLoader=!1))}},room:{immediate:!0,handler:function(e){e&&!this.isMobile&&(this.selectedRoomId=e.roomId)}}},methods:{initIntersectionObserver:function(){var e=this;this.observer&&(this.showLoader=!0,this.observer.disconnect());var t=document.getElementById("infinite-loader-rooms");if(t){var n={root:document.getElementById("rooms-list"),rootMargin:"".concat(this.scrollDistance,"px"),threshold:0};this.observer=new IntersectionObserver((function(t){t[0].isIntersecting&&e.loadMoreRooms()}),n),this.observer.observe(t)}},searchRoom:function(e){this.filteredRooms=le(this.rooms,"roomName",e.target.value)},openRoom:function(e){(e.roomId!==this.room.roomId||this.isMobile)&&(this.isMobile||(this.selectedRoomId=e.roomId),this.$emit("fetch-room",{room:e}))},loadMoreRooms:function(){if(!this.loadingMoreRooms){if(this.roomsLoaded)return this.loadingMoreRooms=!1,void(this.showLoader=!1);this.$emit("fetch-more-rooms"),this.loadingMoreRooms=!0}}}},de=fe,pe=g(de,u,f,!1,null,null,null),he=pe.exports,me=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.isMobile&&!e.showRoomsList||!e.isMobile||e.singleRoom,expression:"(isMobile && !showRoomsList) || !isMobile || singleRoom"}],staticClass:"vac-col-messages",on:{touchstart:e.touchStart}},[e.showNoRoom?e._t("no-room-selected",(function(){return[t("div",{staticClass:"vac-container-center vac-room-empty"},[t("div",[e._v(e._s(e.textMessages.ROOM_EMPTY))])])]})):t("room-header",{attrs:{"current-user-id":e.currentUserId,"text-messages":e.textMessages,"single-room":e.singleRoom,"show-rooms-list":e.showRoomsList,"is-mobile":e.isMobile,"room-info-enabled":e.roomInfoEnabled,"menu-actions":e.menuActions,room:e.room,"message-selection-enabled":e.messageSelectionEnabled,"message-selection-actions":e.messageSelectionActions,"selected-messages-total":e.selectedMessages.length},on:{"toggle-rooms-list":function(t){return e.$emit("toggle-rooms-list")},"room-info":function(t){return e.$emit("room-info")},"menu-action-handler":function(t){return e.$emit("menu-action-handler",t)},"message-selection-action-handler":e.messageSelectionActionHandler,"cancel-message-selection":function(t){e.messageSelectionEnabled=!1}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{ref:"scrollContainer",staticClass:"vac-container-scroll",attrs:{id:"messages-list"},on:{scroll:e.onContainerScroll}},[t("loader",{attrs:{show:e.loadingMessages},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{staticClass:"vac-messages-container"},[t("div",{class:{"vac-messages-hidden":e.loadingMessages}},[t("transition",{attrs:{name:"vac-fade-message"}},[t("div",[e.showNoMessages?t("div",{staticClass:"vac-text-started"},[e._t("messages-empty",(function(){return[e._v(" "+e._s(e.textMessages.MESSAGES_EMPTY)+" ")]}))],2):e._e(),e.showMessagesStarted?t("div",{staticClass:"vac-text-started"},[e._v(" "+e._s(e.textMessages.CONVERSATION_STARTED)+" "+e._s(e.messages[0].date)+" ")]):e._e()])]),e.messages.length&&!e.messagesLoaded?t("div",{attrs:{id:"infinite-loader-messages"}},[t("loader",{attrs:{show:!0,infinite:!0},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1):e._e(),t("transition-group",{key:e.roomId,attrs:{name:"vac-fade-message",tag:"span"}},e._l(e.messages,(function(n,r){return t("div",{key:n.indexId||n._id},[t("room-message",{attrs:{"current-user-id":e.currentUserId,message:n,index:r,messages:e.messages,"edited-message-id":e.editedMessageId,"message-actions":e.messageActions,"room-users":e.room.users,"text-messages":e.textMessages,"new-messages":e.newMessages,"show-reaction-emojis":e.showReactionEmojis,"show-new-messages-divider":e.showNewMessagesDivider,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"username-options":e.usernameOptions,"message-selection-enabled":e.messageSelectionEnabled,"selected-messages":e.selectedMessages},on:{"message-added":e.onMessageAdded,"message-action-handler":e.messageActionHandler,"open-file":e.openFile,"open-user-tag":e.openUserTag,"open-failed-message":function(t){return e.$emit("open-failed-message",t)},"send-message-reaction":e.sendMessageReaction,"select-message":e.selectMessage,"unselect-message":e.unselectMessage},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1)})),0)],1)])],1),e.loadingMessages?e._e():t("div",[t("transition",{attrs:{name:"vac-bounce"}},[e.scrollIcon?t("div",{staticClass:"vac-icon-scroll",on:{click:e.scrollToBottom}},[t("transition",{attrs:{name:"vac-bounce"}},[e.scrollMessagesCount?t("div",{staticClass:"vac-badge-counter vac-messages-count"},[e._v(" "+e._s(e.scrollMessagesCount)+" ")]):e._e()]),e._t("scroll-icon",(function(){return[t("svg-icon",{attrs:{name:"dropdown",param:"scroll"}})]}))],2):e._e()])],1),t("room-footer",{attrs:{room:e.room,"room-id":e.roomId,"room-message":e.roomMessage,"text-messages":e.textMessages,"show-send-icon":e.showSendIcon,"show-files":e.showFiles,"show-audio":e.showAudio,"show-emojis":e.showEmojis,"show-footer":e.showFooter,"accepted-files":e.acceptedFiles,"textarea-action-enabled":e.textareaActionEnabled,"textarea-auto-focus":e.textareaAutoFocus,"user-tags-enabled":e.userTagsEnabled,"emojis-suggestion-enabled":e.emojisSuggestionEnabled,"templates-text":e.templatesText,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"audio-bit-rate":e.audioBitRate,"audio-sample-rate":e.audioSampleRate,"init-reply-message":e.initReplyMessage,"init-edit-message":e.initEditMessage},on:{"update-edited-message-id":function(t){e.editedMessageId=t},"edit-message":function(t){return e.$emit("edit-message",t)},"send-message":function(t){return e.$emit("send-message",t)},"typing-message":function(t){return e.$emit("typing-message",t)},"textarea-action-handler":function(t){return e.$emit("textarea-action-handler",t)}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],2)},ge=[],ve=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-room-header vac-app-border-b"},[e._t("room-header",(function(){return[t("div",{staticClass:"vac-room-wrapper"},[t("transition",{attrs:{name:"vac-slide-up"}},[e.messageSelectionEnabled?t("div",{staticClass:"vac-room-selection"},[e._l(e.messageSelectionActions,(function(n){return t("div",{key:n.name,attrs:{id:n.name}},[t("div",{staticClass:"vac-selection-button",on:{click:function(t){return e.messageSelectionActionHandler(n)}}},[e._v(" "+e._s(n.title)+" "),t("span",{staticClass:"vac-selection-button-count"},[e._v(" "+e._s(e.selectedMessagesTotal)+" ")])])])})),t("div",{staticClass:"vac-selection-cancel vac-item-clickable",on:{click:function(t){return e.$emit("cancel-message-selection")}}},[e._v(" "+e._s(e.textMessages.CANCEL_SELECT_MESSAGE)+" ")])],2):e._e()]),!e.messageSelectionEnabled&&e.messageSelectionAnimationEnded?[e.singleRoom?e._e():t("div",{staticClass:"vac-svg-button vac-toggle-button",class:{"vac-rotate-icon-init":!e.isMobile,"vac-rotate-icon":!e.showRoomsList&&!e.isMobile},on:{click:function(t){return e.$emit("toggle-rooms-list")}}},[e._t("toggle-icon",(function(){return[t("svg-icon",{attrs:{name:"toggle"}})]}))],2),t("div",{staticClass:"vac-info-wrapper",class:{"vac-item-clickable":e.roomInfoEnabled},on:{click:function(t){return e.$emit("room-info")}}},[e._t("room-header-avatar",(function(){return[e.room.avatar?t("div",{staticClass:"vac-avatar",style:{"background-image":"url('".concat(e.room.avatar,"')")}}):e._e()]}),null,{room:e.room}),e._t("room-header-info",(function(){return[t("div",{staticClass:"vac-text-ellipsis"},[t("div",{staticClass:"vac-room-name vac-text-ellipsis"},[e._v(" "+e._s(e.room.roomName)+" ")]),e.typingUsers?t("div",{staticClass:"vac-room-info vac-text-ellipsis"},[e._v(" "+e._s(e.typingUsers)+" ")]):t("div",{staticClass:"vac-room-info vac-text-ellipsis"},[e._v(" "+e._s(e.userStatus)+" ")])])]}),null,{room:e.room,typingUsers:e.typingUsers,userStatus:e.userStatus})],2),e.room.roomId?e._t("room-options",(function(){return[e.menuActions.length?t("div",{staticClass:"vac-svg-button vac-room-options",on:{click:function(t){e.menuOpened=!e.menuOpened}}},[e._t("menu-icon",(function(){return[t("svg-icon",{attrs:{name:"menu"}})]}))],2):e._e(),e.menuActions.length?t("transition",{attrs:{name:"vac-slide-left"}},[e.menuOpened?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeMenu,expression:"closeMenu"}],staticClass:"vac-menu-options"},[t("div",{staticClass:"vac-menu-list"},e._l(e.menuActions,(function(n){return t("div",{key:n.name},[t("div",{staticClass:"vac-menu-item",on:{click:function(t){return e.menuActionHandler(n)}}},[e._v(" "+e._s(n.title)+" ")])])})),0)]):e._e()]):e._e()]})):e._e()]:e._e()],2)]}),null,{room:e.room,typingUsers:e.typingUsers,userStatus:e.userStatus})],2)},_e=[],be={name:"RoomHeader",components:{SvgIcon:A},directives:{clickOutside:I.a.directive},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},singleRoom:{type:Boolean,required:!0},showRoomsList:{type:Boolean,required:!0},isMobile:{type:Boolean,required:!0},roomInfoEnabled:{type:Boolean,required:!0},menuActions:{type:Array,required:!0},room:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0},messageSelectionActions:{type:Array,required:!0},selectedMessagesTotal:{type:Number,required:!0}},emits:["toggle-rooms-list","room-info","menu-action-handler","cancel-message-selection","message-selection-action-handler"],data:function(){return{menuOpened:!1,messageSelectionAnimationEnded:!0}},computed:{typingUsers:function(){return ne(this.room,this.currentUserId,this.textMessages)},userStatus:function(){var e=this;if(this.room.users&&2===this.room.users.length){var t=this.room.users.find((function(t){return t._id!==e.currentUserId}));if(t.status){var n="";return"online"===t.status.state?n=this.textMessages.IS_ONLINE:t.status.lastChanged&&(n=this.textMessages.LAST_SEEN+t.status.lastChanged),n}}}},watch:{messageSelectionEnabled:function(e){var t=this;e?this.messageSelectionAnimationEnded=!1:setTimeout((function(){t.messageSelectionAnimationEnded=!0}),300)}},methods:{menuActionHandler:function(e){this.closeMenu(),this.$emit("menu-action-handler",e)},closeMenu:function(){this.menuOpened=!1},messageSelectionActionHandler:function(e){this.$emit("message-selection-action-handler",e)}}},ye=be,we=g(ye,ve,_e,!1,null,null,null),xe=we.exports,Se=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:Object.keys(e.room).length&&e.showFooter,expression:"Object.keys(room).length && showFooter"}],staticClass:"vac-room-footer",class:{"vac-app-box-shadow":e.shadowFooter},attrs:{id:"room-footer"}},[t("room-emojis",{attrs:{"filtered-emojis":e.filteredEmojis,"select-item":e.selectEmojiItem,"active-up-or-down":e.activeUpOrDownEmojis},on:{"select-emoji":function(t){return e.selectEmoji(t)},"activate-item":function(t){e.activeUpOrDownEmojis=0}}}),t("room-users-tag",{attrs:{"filtered-users-tag":e.filteredUsersTag,"select-item":e.selectUsersTagItem,"active-up-or-down":e.activeUpOrDownUsersTag},on:{"select-user-tag":function(t){return e.selectUserTag(t)},"activate-item":function(t){e.activeUpOrDownUsersTag=0}}}),t("room-templates-text",{attrs:{"filtered-templates-text":e.filteredTemplatesText,"select-item":e.selectTemplatesTextItem,"active-up-or-down":e.activeUpOrDownTemplatesText},on:{"select-template-text":function(t){return e.selectTemplateText(t)},"activate-item":function(t){e.activeUpOrDownTemplatesText=0}}}),t("room-message-reply",{attrs:{room:e.room,"message-reply":e.messageReply,"text-formatting":e.textFormatting,"link-options":e.linkOptions},on:{"reset-message":e.resetMessage},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("room-files",{attrs:{files:e.files},on:{"remove-file":e.removeFile,"reset-message":e.resetMessage},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{staticClass:"vac-box-footer",class:{"vac-box-footer-border":!e.files.length}},[e.showAudio&&!e.files.length?t("div",{staticClass:"vac-icon-textarea-left"},[e.isRecording?[t("div",{staticClass:"vac-svg-button vac-icon-audio-stop",on:{click:e.stopRecorder}},[e._t("audio-stop-icon",(function(){return[t("svg-icon",{attrs:{name:"close-outline"}})]}))],2),t("div",{staticClass:"vac-dot-audio-record"}),t("div",{staticClass:"vac-dot-audio-record-time"},[e._v(" "+e._s(e.recordedTime)+" ")]),t("div",{staticClass:"vac-svg-button vac-icon-audio-confirm",on:{click:function(t){return e.toggleRecorder(!1)}}},[e._t("audio-stop-icon",(function(){return[t("svg-icon",{attrs:{name:"checkmark"}})]}))],2)]:t("div",{staticClass:"vac-svg-button",on:{click:function(t){return e.toggleRecorder(!0)}}},[e._t("microphone-icon",(function(){return[t("svg-icon",{staticClass:"vac-icon-microphone",attrs:{name:"microphone"}})]}))],2)],2):e._e(),t("textarea",{ref:"roomTextarea",staticClass:"vac-textarea",class:{"vac-textarea-outline":e.editedMessage._id},style:{"min-height":"20px","padding-left":"12px"},attrs:{id:"roomTextarea",placeholder:e.textMessages.TYPE_MESSAGE},on:{input:e.onChangeInput,keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.escapeTextarea.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.selectItem.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:void t.preventDefault()},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:e.selectItem.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:void t.preventDefault()},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:e.updateActiveUpOrDown(-1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:void t.preventDefault()},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:e.updateActiveUpOrDown(1)}],paste:e.onPasteImage}}),t("div",{staticClass:"vac-icon-textarea"},[e.editedMessage._id?t("div",{staticClass:"vac-svg-button",on:{click:e.resetMessage}},[e._t("edit-close-icon",(function(){return[t("svg-icon",{attrs:{name:"close-outline"}})]}))],2):e._e(),e.showEmojis?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:function(){return e.emojiOpened=!1},expression:"() => (emojiOpened = false)"}]},[e._t("emoji-picker",(function(){return[t("emoji-picker-container",{attrs:{"emoji-opened":e.emojiOpened,"position-top":!0},on:{"add-emoji":e.addEmoji,"open-emoji":function(t){e.emojiOpened=t}},scopedSlots:e._u([{key:"emoji-picker-icon",fn:function(){return[e._t("emoji-picker-icon")]},proxy:!0}],null,!0)})]}),{addEmoji:e.addEmoji},{emojiOpened:e.emojiOpened})],2):e._e(),e.showFiles?t("div",{staticClass:"vac-svg-button",on:{click:e.launchFilePicker}},[e._t("paperclip-icon",(function(){return[t("svg-icon",{attrs:{name:"paperclip"}})]}))],2):e._e(),e.textareaActionEnabled?t("div",{staticClass:"vac-svg-button",on:{click:e.textareaActionHandler}},[e._t("custom-action-icon",(function(){return[t("svg-icon",{attrs:{name:"deleted"}})]}))],2):e._e(),e.showFiles?t("input",{ref:"file",staticStyle:{display:"none"},attrs:{type:"file",multiple:"",accept:e.acceptedFiles},on:{change:function(t){return e.onFileChange(t.target.files)}}}):e._e(),e.showSendIcon?t("div",{staticClass:"vac-svg-button",class:{"vac-send-disabled":e.isMessageEmpty},on:{click:e.sendMessage}},[e._t("send-icon",(function(){return[t("svg-icon",{attrs:{name:"send",param:e.isMessageEmpty||e.isFileLoading?"disabled":""}})]}))],2):e._e()])])],1)},ke=[],Me=n("53ca");function Ae(){
-/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
-Ae=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(A){s=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,a=Object.create(o.prototype),i=new S(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return M()}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var s=y(i,n);if(s){if(s===u)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=l(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,i),a}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(A){return{type:"throw",arg:A}}}e.wrap=c;var u={};function f(){}function d(){}function p(){}var h={};s(h,o,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(k([])));g&&g!==t&&n.call(g,o)&&(h=g);var v=p.prototype=f.prototype=Object.create(h);function _(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function r(o,a,i,s){var c=l(e[o],e,a);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==Object(Me["a"])(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,i,s)}),(function(e){r("throw",e,i,s)})):t.resolve(f).then((function(e){u.value=e,i(u)}),(function(e){return r("throw",e,i,s)}))}s(c.arg)}var o;this._invoke=function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}}function y(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator["return"]&&(t.method="return",t.arg=void 0,y(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function k(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:M}}function M(){return{value:void 0,done:!0}}return d.prototype=p,s(v,"constructor",p),s(p,"constructor",d),d.displayName=s(p,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,s(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},_(b.prototype),s(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new b(c(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},_(v),s(v,i,"Generator"),s(v,o,(function(){return this})),s(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=k,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;x(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}function Ee(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(l){return void n(l)}s.done?t(c):Promise.resolve(c).then(r,o)}function Te(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){Ee(a,r,o,i,s,"next",e)}function s(e){Ee(a,r,o,i,s,"throw",e)}i(void 0)}))}}n("874e");var Re=n("da58"),Oe=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-emoji-wrapper"},[t("div",{staticClass:"vac-svg-button",class:{"vac-emoji-reaction":e.emojiReaction},on:{click:e.openEmoji}},[e._t("emoji-picker-icon",(function(){return[t("svg-icon",{attrs:{name:"emoji",param:e.emojiReaction?"reaction":""}})]}))],2),e.emojiOpened?[t("transition",{attrs:{name:"vac-slide-up",appear:""}},[t("div",{staticClass:"vac-emoji-picker",class:{"vac-picker-reaction":e.emojiReaction},style:{height:"".concat(e.emojiPickerHeight,"px"),top:e.positionTop?e.emojiPickerHeight:"".concat(e.emojiPickerTop,"px"),right:e.emojiPickerRight,display:e.emojiPickerTop||!e.emojiReaction?"initial":"none"}},[e.emojiOpened?t("emoji-picker",{ref:"emojiPicker"}):e._e()],1)])]:e._e()],2)},Ce=[],je={name:"EmojiPickerContainer",components:{SvgIcon:A},props:{emojiOpened:{type:Boolean,default:!1},emojiReaction:{type:Boolean,default:!1},positionTop:{type:Boolean,default:!1},positionRight:{type:Boolean,default:!1}},emits:["add-emoji","open-emoji"],data:function(){return{emojiPickerHeight:320,emojiPickerTop:0,emojiPickerRight:""}},watch:{emojiOpened:function(e){var t=this;e&&setTimeout((function(){t.addCustomStyling(),t.$refs.emojiPicker.shadowRoot.addEventListener("emoji-click",(function(e){var n=e.detail;t.$emit("add-emoji",{unicode:n.unicode})}))}),0)}},methods:{addCustomStyling:function(){var e=".picker {\n\t\t\t\tborder: none;\n\t\t\t}",t=".nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}",n=".search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}",r="input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}",o=document.createElement("style");o.textContent=e+t+n+r,this.$refs.emojiPicker.shadowRoot.appendChild(o)},openEmoji:function(e){this.$emit("open-emoji",!this.emojiOpened),this.setEmojiPickerPosition(e.clientY,e.view.innerWidth,e.view.innerHeight)},setEmojiPickerPosition:function(e,t,n){var r=t<500||n<700,o=document.getElementById("room-footer");if(o)if(r)this.emojiPickerRight=t/2-(this.positionTop?200:150)+"px",this.emojiPickerTop=100,this.emojiPickerHeight=n-200;else{var a=o.getBoundingClientRect().top,i=a-e>this.emojiPickerHeight-50;this.emojiPickerTop=i?e+10:e-this.emojiPickerHeight-10,this.emojiPickerRight=this.positionTop?"0px":this.positionRight?"60px":""}else r&&(this.emojiPickerRight="-50px")}}},Be=je,Ie=g(Be,Oe,Ce,!1,null,null,null),Pe=Ie.exports,Le=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-slide-up"}},[e.files.length?t("div",{staticClass:"vac-room-files-container",style:{bottom:"".concat(e.footerHeight,"px")}},[t("div",{staticClass:"vac-files-box"},e._l(e.files,(function(n,r){return t("div",{key:r},[t("room-file",{attrs:{file:n,index:r},on:{"remove-file":function(t){return e.$emit("remove-file",t)}}})],1)})),0),t("div",{staticClass:"vac-icon-close"},[t("div",{staticClass:"vac-svg-button",on:{click:function(t){return e.$emit("reset-message")}}},[e._t("reply-close-icon",(function(){return[t("svg-icon",{attrs:{name:"close-outline"}})]}))],2)])]):e._e()])},Ne=[],De=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-room-file-container"},[t("loader",{attrs:{show:e.file.loading},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{staticClass:"vac-svg-button vac-icon-remove",on:{click:function(t){return e.$emit("remove-file",e.index)}}},[e._t("image-close-icon",(function(){return[t("svg-icon",{attrs:{name:"close",param:"image"}})]}))],2),e.isImage?t("div",{staticClass:"vac-message-image",class:{"vac-blur-loading":e.file.loading},style:{"background-image":"url('".concat(e.file.localUrl||e.file.url,"')")}}):e.isVideo?t("video",{class:{"vac-blur-loading":e.file.loading},attrs:{controls:""}},[t("source",{attrs:{src:e.file.localUrl||e.file.url}})]):t("div",{staticClass:"vac-file-container",class:{"vac-blur-loading":e.file.loading}},[t("div",[e._t("file-icon",(function(){return[t("svg-icon",{attrs:{name:"file"}})]}))],2),t("div",{staticClass:"vac-text-ellipsis"},[e._v(" "+e._s(e.file.name)+" ")]),e.file.extension?t("div",{staticClass:"vac-text-ellipsis vac-text-extension"},[e._v(" "+e._s(e.file.extension)+" ")]):e._e()])],1)},Fe=[],He=n("bd43"),Ue=He.isImageFile,$e=He.isVideoFile,qe={name:"RoomFiles",components:{Loader:_,SvgIcon:A},props:{file:{type:Object,required:!0},index:{type:Number,required:!0}},emits:["remove-file"],computed:{isImage:function(){return Ue(this.file)},isVideo:function(){return $e(this.file)}}},Ve=qe,ze=g(Ve,De,Fe,!1,null,null,null),Xe=ze.exports,Ye={name:"RoomFiles",components:{SvgIcon:A,RoomFile:Xe},props:{files:{type:Array,required:!0}},emits:["remove-file","reset-message"],computed:{footerHeight:function(){return document.getElementById("room-footer").clientHeight}}},Ge=Ye,We=g(Ge,Le,Ne,!1,null,null,null),Ke=We.exports,Ze=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-slide-up"}},[e.messageReply?t("div",{staticClass:"vac-reply-container",style:{bottom:"".concat(e.footerHeight,"px")}},[t("div",{staticClass:"vac-reply-box"},[t("div",{staticClass:"vac-reply-info"},[t("div",{staticClass:"vac-reply-username"},[e._v(" "+e._s(e.messageReply.username)+" ")]),t("div",{staticClass:"vac-reply-content"},[t("format-message",{attrs:{content:e.messageReply.content,users:e.room.users,"text-formatting":e.textFormatting,"link-options":e.linkOptions,reply:!0},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1)]),e.isImage?t("img",{staticClass:"vac-image-reply",attrs:{src:e.firstFile.url}}):e.isVideo?t("video",{staticClass:"vac-image-reply",attrs:{controls:""}},[t("source",{attrs:{src:e.firstFile.url}})]):e.isAudio?t("audio-player",{staticClass:"vac-audio-reply",attrs:{src:e.firstFile.url},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}):e.isOtherFile?t("div",{staticClass:"vac-image-reply vac-file-container"},[t("div",[e._t("file-icon",(function(){return[t("svg-icon",{attrs:{name:"file"}})]}))],2),t("div",{staticClass:"vac-text-ellipsis"},[e._v(" "+e._s(e.firstFile.name)+" ")]),e.firstFile.extension?t("div",{staticClass:"vac-text-ellipsis vac-text-extension"},[e._v(" "+e._s(e.firstFile.extension)+" ")]):e._e()]):e._e()],1),t("div",{staticClass:"vac-icon-reply"},[t("div",{staticClass:"vac-svg-button",on:{click:function(t){return e.$emit("reset-message")}}},[e._t("reply-close-icon",(function(){return[t("svg-icon",{attrs:{name:"close-outline"}})]}))],2)])]):e._e()])},Qe=[],Je=function(){var e=this,t=e._self._c;return t("div",[t("div",{staticClass:"vac-audio-player"},[t("div",{staticClass:"vac-svg-button",on:{click:e.playback}},[e.isPlaying?e._t("audio-pause-icon",(function(){return[t("svg-icon",{attrs:{name:"audio-pause"}})]})):e._t("audio-play-icon",(function(){return[t("svg-icon",{attrs:{name:"audio-play"}})]}))],2),t("audio-control",{attrs:{percentage:e.progress,"message-selection-enabled":e.messageSelectionEnabled},on:{"change-linehead":e.onUpdateProgress,"hover-audio-progress":function(t){return e.$emit("hover-audio-progress",t)}}}),t("audio",{attrs:{id:e.playerUniqId,src:e.audioSource}})],1)])},et=[],tt=function(){var e=this,t=e._self._c;return t("div",{ref:"progress",staticClass:"vac-player-bar",on:{mousedown:e.onMouseDown,mouseover:function(t){return e.$emit("hover-audio-progress",!0)},mouseout:function(t){return e.$emit("hover-audio-progress",!1)}}},[t("div",{staticClass:"vac-player-progress"},[t("div",{staticClass:"vac-line-container"},[t("div",{staticClass:"vac-line-progress",style:{width:"".concat(e.percentage,"%")}}),t("div",{staticClass:"vac-line-dot",class:{"vac-line-dot__active":e.isMouseDown},style:{left:"".concat(e.percentage,"%")}})])])])},nt=[],rt={props:{percentage:{type:Number,default:0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["hover-audio-progress","change-linehead"],data:function(){return{isMouseDown:!1}},methods:{onMouseDown:function(e){if(!this.messageSelectionEnabled){this.isMouseDown=!0;var t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("mouseup",this.onMouseUp)}},onMouseUp:function(e){if(!this.messageSelectionEnabled){this.isMouseDown=!1,document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove);var t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t)}},onMouseMove:function(e){if(!this.messageSelectionEnabled){var t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t)}},calculateLineHeadPosition:function(e,t){var n=t.getBoundingClientRect().width,r=t.getBoundingClientRect().left,o=(e.clientX-r)/n;return o=o<0?0:o,o=o>1?1:o,o}}},ot=rt,at=g(ot,tt,nt,!1,null,null,null),it=at.exports,st={name:"AudioPlayer",components:{SvgIcon:A,AudioControl:it},props:{messageId:{type:[String,Number],default:null},src:{type:String,default:null},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["hover-audio-progress","update-progress-time"],data:function(){return{isPlaying:!1,duration:this.convertTimeMMSS(0),playedTime:this.convertTimeMMSS(0),progress:0}},computed:{playerUniqId:function(){return"audio-player".concat(this.messageId)},audioSource:function(){return this.src?this.src:(this.resetProgress(),null)}},mounted:function(){var e=this;this.player=document.getElementById(this.playerUniqId),this.player.addEventListener("ended",(function(){e.isPlaying=!1})),this.player.addEventListener("loadeddata",(function(){e.resetProgress(),e.duration=e.convertTimeMMSS(e.player.duration),e.updateProgressTime()})),this.player.addEventListener("timeupdate",this.onTimeUpdate)},methods:{convertTimeMMSS:function(e){return new Date(1e3*e).toISOString().substr(14,5)},playback:function(){var e=this;!this.messageSelectionEnabled&&this.audioSource&&(this.isPlaying?this.player.pause():setTimeout((function(){return e.player.play()})),this.isPlaying=!this.isPlaying)},resetProgress:function(){this.isPlaying&&this.player.pause(),this.duration=this.convertTimeMMSS(0),this.playedTime=this.convertTimeMMSS(0),this.progress=0,this.isPlaying=!1,this.updateProgressTime()},onTimeUpdate:function(){this.playedTime=this.convertTimeMMSS(this.player.currentTime),this.progress=this.player.currentTime/this.player.duration*100,this.updateProgressTime()},onUpdateProgress:function(e){e&&(this.player.currentTime=e*this.player.duration)},updateProgressTime:function(){this.$emit("update-progress-time",this.progress>1?this.playedTime:this.duration)}}},ct=st,lt=g(ct,Je,et,!1,null,null,null),ut=lt.exports,ft=n("bd43"),dt=ft.isAudioFile,pt=ft.isImageFile,ht=ft.isVideoFile,mt={name:"RoomMessageReply",components:{SvgIcon:A,FormatMessage:te,AudioPlayer:ut},props:{room:{type:Object,required:!0},messageReply:{type:Object,default:null},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0}},emits:["reset-message"],computed:{footerHeight:function(){return document.getElementById("room-footer").clientHeight},firstFile:function(){var e,t;return null!==(e=this.messageReply)&&void 0!==e&&null!==(t=e.files)&&void 0!==t&&t.length?this.messageReply.files[0]:{}},isImage:function(){return pt(this.firstFile)},isVideo:function(){return ht(this.firstFile)},isAudio:function(){return dt(this.firstFile)},isOtherFile:function(){var e,t;return(null===(e=this.messageReply)||void 0===e||null===(t=e.files)||void 0===t?void 0:t.length)&&!this.isAudio&&!this.isVideo&&!this.isImage}}},gt=mt,vt=g(gt,Ze,Qe,!1,null,null,null),_t=vt.exports,bt=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-slide-up"}},[e.filteredUsersTag.length?t("div",{staticClass:"vac-tags-container",style:{bottom:"".concat(e.footerHeight,"px")}},e._l(e.filteredUsersTag,(function(n,r){return t("div",{key:n._id,staticClass:"vac-tags-box",class:{"vac-tags-box-active":r===e.activeItem},on:{mouseover:function(t){e.activeItem=r},click:function(t){return e.$emit("select-user-tag",n)}}},[t("div",{staticClass:"vac-tags-info"},[n.avatar?t("div",{staticClass:"vac-avatar vac-tags-avatar",style:{"background-image":"url('".concat(n.avatar,"')")}}):e._e(),t("div",{staticClass:"vac-tags-username"},[e._v(" "+e._s(n.username)+" ")])])])})),0):e._e()])},yt=[],wt={name:"RoomUsersTag",props:{filteredUsersTag:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-user-tag","activate-item"],data:function(){return{activeItem:null}},computed:{footerHeight:function(){return document.getElementById("room-footer").clientHeight}},watch:{filteredUsersTag:function(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem:function(e){e&&this.$emit("select-user-tag",this.filteredUsersTag[this.activeItem])},activeUpOrDown:function(){this.activeUpOrDown>0&&this.activeItem<this.filteredUsersTag.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},xt=wt,St=g(xt,bt,yt,!1,null,null,null),kt=St.exports,Mt=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-slide-up"}},[e.filteredEmojis.length?t("div",{staticClass:"vac-emojis-container",style:{bottom:"".concat(e.footerHeight,"px")}},e._l(e.filteredEmojis,(function(n,r){return t("div",{key:n,staticClass:"vac-emoji-element",class:{"vac-emoji-element-active":r===e.activeItem},on:{mouseover:function(t){e.activeItem=r},click:function(t){return e.$emit("select-emoji",n)}}},[e._v(" "+e._s(n)+" ")])})),0):e._e()])},At=[],Et={name:"RoomEmojis",props:{filteredEmojis:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-emoji","activate-item"],data:function(){return{activeItem:null}},computed:{footerHeight:function(){return document.getElementById("room-footer").clientHeight}},watch:{filteredEmojis:function(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem:function(e){e&&this.$emit("select-emoji",this.filteredEmojis[this.activeItem])},activeUpOrDown:function(){this.activeUpOrDown>0&&this.activeItem<this.filteredEmojis.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},Tt=Et,Rt=g(Tt,Mt,At,!1,null,null,null),Ot=Rt.exports,Ct=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-slide-up"}},[e.filteredTemplatesText.length?t("div",{staticClass:"vac-template-container vac-app-box-shadow",style:{bottom:"".concat(e.footerHeight,"px")}},e._l(e.filteredTemplatesText,(function(n,r){return t("div",{key:r,staticClass:"vac-template-box",class:{"vac-template-active":r===e.activeItem},on:{mouseover:function(t){e.activeItem=r},click:function(t){return e.$emit("select-template-text",n)}}},[t("div",{staticClass:"vac-template-info"},[t("div",{staticClass:"vac-template-tag"},[e._v(" /"+e._s(n.tag)+" ")]),t("div",{staticClass:"vac-template-text"},[e._v(" "+e._s(n.text)+" ")])])])})),0):e._e()])},jt=[],Bt={name:"RoomTemplatesText",props:{filteredTemplatesText:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-template-text","activate-item"],data:function(){return{activeItem:null}},computed:{footerHeight:function(){return document.getElementById("room-footer").clientHeight}},watch:{filteredTemplatesText:function(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem:function(e){e&&this.$emit("select-template-text",this.filteredTemplatesText[this.activeItem])},activeUpOrDown:function(){this.activeUpOrDown>0&&this.activeItem<this.filteredTemplatesText.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},It=Bt,Pt=g(It,Ct,jt,!1,null,null,null),Lt=Pt.exports;function Nt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ft(e,t,n){return t&&Dt(e.prototype,t),n&&Dt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var Ht;n("907a"),n("3c5d"),n("fa9e"),n("77d9");try{Ht=n("db3f")}catch(Sr){Ht={missing:!0}}var Ut=Ht,$t=Ut.Mp3Encoder,qt=function(){function e(t){if(Nt(this,e),Ht.missing)throw new Error('You must add lamejs in your dependencies to use the audio recorder. Please run "npm install lamejs --save"');this.bitRate=t.bitRate,this.sampleRate=t.sampleRate,this.dataBuffer=[],this.encoder=new $t(1,this.sampleRate,this.bitRate)}return Ft(e,[{key:"encode",value:function(e){for(var t=1152,n=this._convertBuffer(e),r=n.length,o=0;r>=0;o+=t){var a=n.subarray(o,o+t),i=this.encoder.encodeBuffer(a);this.dataBuffer.push(new Int8Array(i)),r-=t}}},{key:"finish",value:function(){this.dataBuffer.push(this.encoder.flush());var e=new Blob(this.dataBuffer,{type:"audio/mp3"});return this.dataBuffer=[],{id:Date.now(),blob:e,url:URL.createObjectURL(e)}}},{key:"_floatTo16BitPCM",value:function(e,t){for(var n=0;n<e.length;n++){var r=Math.max(-1,Math.min(1,e[n]));t[n]=r<0?32768*r:32767*r}}},{key:"_convertBuffer",value:function(e){var t=new Float32Array(e),n=new Int16Array(e.length);return this._floatTo16BitPCM(t,n),n}}]),e}(),Vt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Nt(this,e),this.beforeRecording=t.beforeRecording,this.pauseRecording=t.pauseRecording,this.afterRecording=t.afterRecording,this.micFailed=t.micFailed,this.encoderOptions={bitRate:t.bitRate,sampleRate:t.sampleRate},this.bufferSize=4096,this.records=[],this.isPause=!1,this.isRecording=!1,this.duration=0,this.volume=0,this._duration=0}return Ft(e,[{key:"start",value:function(){var e={video:!1,audio:{channelCount:1,echoCancellation:!1}};this.beforeRecording&&this.beforeRecording("start recording"),navigator.mediaDevices.getUserMedia(e).then(this._micCaptured.bind(this))["catch"](this._micError.bind(this)),this.isPause=!1,this.isRecording=!0,this.lameEncoder||(this.lameEncoder=new qt(this.encoderOptions))}},{key:"stop",value:function(){this.stream.getTracks().forEach((function(e){return e.stop()})),this.input.disconnect(),this.processor.disconnect(),this.context.close();var e=null;e=this.lameEncoder.finish(),e.duration=this.duration,this.records.push(e),this._duration=0,this.duration=0,this.isPause=!1,this.isRecording=!1,this.afterRecording&&this.afterRecording(e)}},{key:"pause",value:function(){this.stream.getTracks().forEach((function(e){return e.stop()})),this.input.disconnect(),this.processor.disconnect(),this._duration=this.duration,this.isPause=!0,this.pauseRecording&&this.pauseRecording("pause recording")}},{key:"_micCaptured",value:function(e){var t=this;this.context=new(window.AudioContext||window.webkitAudioContext),this.duration=this._duration,this.input=this.context.createMediaStreamSource(e),this.processor=this.context.createScriptProcessor(this.bufferSize,1,1),this.stream=e,this.processor.onaudioprocess=function(e){var n=e.inputBuffer.getChannelData(0),r=0;t.lameEncoder&&t.lameEncoder.encode(n);for(var o=0;o<n.length;++o)r+=n[o]*n[o];t.duration=parseFloat(t._duration)+parseFloat(t.context.currentTime.toFixed(2)),t.volume=Math.sqrt(r/n.length).toFixed(2)},this.input.connect(this.processor),this.processor.connect(this.context.destination)}},{key:"_micError",value:function(e){this.micFailed&&this.micFailed(e)}}]),e}(),zt=n("1a98"),Xt=zt.detectMobile,Yt={name:"RoomFooter",components:{SvgIcon:A,EmojiPickerContainer:Pe,RoomFiles:Ke,RoomMessageReply:_t,RoomUsersTag:kt,RoomEmojis:Ot,RoomTemplatesText:Lt},directives:{clickOutside:I.a.directive},props:{room:{type:Object,required:!0},roomId:{type:[String,Number],required:!0},roomMessage:{type:String,default:null},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},textMessages:{type:Object,required:!0},showSendIcon:{type:Boolean,required:!0},showFiles:{type:Boolean,required:!0},showAudio:{type:Boolean,required:!0},showEmojis:{type:Boolean,required:!0},showFooter:{type:Boolean,required:!0},acceptedFiles:{type:String,required:!0},textareaActionEnabled:{type:Boolean,required:!0},textareaAutoFocus:{type:Boolean,required:!0},userTagsEnabled:{type:Boolean,required:!0},emojisSuggestionEnabled:{type:Boolean,required:!0},templatesText:{type:Array,default:null},audioBitRate:{type:Number,required:!0},audioSampleRate:{type:Number,required:!0},initReplyMessage:{type:Object,default:null},initEditMessage:{type:Object,default:null}},emits:["edit-message","send-message","update-edited-message-id","textarea-action-handler","typing-message"],data:function(){return{message:"",editedMessage:{},messageReply:null,cursorRangePosition:null,files:[],fileDialog:!1,selectUsersTagItem:null,selectEmojiItem:null,selectTemplatesTextItem:null,format:"mp3",activeUpOrDownEmojis:null,activeUpOrDownUsersTag:null,activeUpOrDownTemplatesText:null,emojisDB:new Re["a"],emojiOpened:!1,keepKeyboardOpen:!1,filteredEmojis:[],filteredUsersTag:[],selectedUsersTag:[],filteredTemplatesText:[],recorder:this.initRecorder(),isRecording:!1}},computed:{isMessageEmpty:function(){return!this.files.length&&!this.message.trim()},isFileLoading:function(){return this.files.some((function(e){return e.loading}))},recordedTime:function(){return new Date(1e3*this.recorder.duration).toISOString().substr(14,5)},shadowFooter:function(){return!!this.filteredEmojis.length||!!this.filteredUsersTag.length||!!this.filteredTemplatesText.length||!!this.files.length||!!this.messageReply}},watch:{roomId:function(){var e=this;this.resetMessage(!0,!0),this.roomMessage&&(this.message=this.roomMessage,setTimeout((function(){return e.onChangeInput()})))},message:function(e){this.getTextareaRef().value=e},roomMessage:{immediate:!0,handler:function(e){e&&(this.message=this.roomMessage)}},editedMessage:function(e){this.$emit("update-edited-message-id",e._id)},initReplyMessage:function(e){this.replyMessage(e)},initEditMessage:function(e){this.editMessage(e)}},mounted:function(){var e=this,t=Xt(),n=!0;this.getTextareaRef().addEventListener("keyup",(function(r){"Enter"!==r.key||r.shiftKey||e.fileDialog||(t?(e.message=e.message+"\n",setTimeout((function(){return e.onChangeInput()}))):!n||e.filteredEmojis.length||e.filteredUsersTag.length||e.filteredTemplatesText.length||e.sendMessage()),n=!r.isComposing,setTimeout((function(){e.updateFooterLists()}),60)})),this.getTextareaRef().addEventListener("click",(function(){t&&(e.keepKeyboardOpen=!0),e.updateFooterLists()})),this.getTextareaRef().addEventListener("blur",(function(){setTimeout((function(){e.resetFooterList()}),100),t&&setTimeout((function(){return e.keepKeyboardOpen=!1}))}))},beforeDestroy:function(){this.stopRecorder()},methods:{getTextareaRef:function(){return this.$refs.roomTextarea},focusTextarea:function(e){var t=this;Xt()&&e||this.getTextareaRef()&&(this.getTextareaRef().focus(),this.cursorRangePosition&&setTimeout((function(){t.getTextareaRef().setSelectionRange(t.cursorRangePosition,t.cursorRangePosition),t.cursorRangePosition=null})))},onChangeInput:function(){var e,t,n;(null!==(e=this.getTextareaRef())&&void 0!==e&&e.value||""===(null===(t=this.getTextareaRef())||void 0===t?void 0:t.value))&&(this.message=null===(n=this.getTextareaRef())||void 0===n?void 0:n.value);this.keepKeyboardOpen=!0,this.resizeTextarea(),this.$emit("typing-message",this.message)},resizeTextarea:function(){var e=this.getTextareaRef();if(e){var t=window.getComputedStyle(e,null).getPropertyValue("padding-top").replace("px","");e.style.height=0,e.style.height=e.scrollHeight-2*t+"px"}},escapeTextarea:function(){this.filteredEmojis.length?this.filteredEmojis=[]:this.filteredUsersTag.length?this.filteredUsersTag=[]:this.filteredTemplatesText.length?this.filteredTemplatesText=[]:this.resetMessage()},onPasteImage:function(e){var t,n=this,r=null===(t=e.clipboardData)||void 0===t?void 0:t.items;r&&Array.from(r).forEach((function(e){if(e.type.includes("image")){var t=e.getAsFile();n.onFileChange([t])}}))},updateActiveUpOrDown:function(e){this.filteredEmojis.length?this.activeUpOrDownEmojis=e:this.filteredUsersTag.length?this.activeUpOrDownUsersTag=e:this.filteredTemplatesText.length&&(this.activeUpOrDownTemplatesText=e)},selectItem:function(){this.filteredEmojis.length?this.selectEmojiItem=!0:this.filteredUsersTag.length?this.selectUsersTagItem=!0:this.filteredTemplatesText.length&&(this.selectTemplatesTextItem=!0)},selectEmoji:function(e){if(this.selectEmojiItem=!1,e){var t=this.getCharPosition(":"),n=t.position,r=t.endPosition;this.message=this.message.substr(0,n-1)+e+this.message.substr(r,this.message.length-1),this.cursorRangePosition=n,this.focusTextarea()}},selectTemplateText:function(e){if(this.selectTemplatesTextItem=!1,e){var t=this.getCharPosition("/"),n=t.position,r=t.endPosition,o=this.message.substr(r,r).length?"":" ";this.message=this.message.substr(0,n-1)+e.text+o+this.message.substr(r,this.message.length-1),this.cursorRangePosition=n+e.text.length+o.length+1,this.focusTextarea()}},addEmoji:function(e){this.message+=e.unicode,this.focusTextarea(!0)},launchFilePicker:function(){this.$refs.file.value="",this.$refs.file.click()},onFileChange:function(e){var t=this;return Te(Ae().mark((function n(){return Ae().wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.fileDialog=!0,t.focusTextarea(),Array.from(e).forEach(function(){var e=Te(Ae().mark((function e(n){var r,o,a,i;return Ae().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=URL.createObjectURL(n),o=n.name.lastIndexOf("."),t.files.push({loading:!0,name:n.name.substring(0,o),size:n.size,type:n.type,extension:n.name.substring(o+1),localUrl:r}),e.next=5,fetch(r).then((function(e){return e.blob()}));case 5:a=e.sent,i=t.files.find((function(e){return e.localUrl===r})),i&&(i.blob=a,i.loading=!1,delete i.loading);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),setTimeout((function(){return t.fileDialog=!1}),500);case 4:case"end":return n.stop()}}),n)})))()},removeFile:function(e){this.files.splice(e,1),this.focusTextarea()},toggleRecorder:function(e){var t=this;if(this.isRecording=e,this.recorder.isRecording)try{this.recorder.stop();var n=this.recorder.records[0];this.files.push({blob:n.blob,name:"audio.".concat(this.format),size:n.blob.size,duration:n.duration,type:n.blob.type,audio:!0,localUrl:URL.createObjectURL(n.blob)}),this.recorder=this.initRecorder(),this.sendMessage()}catch(r){setTimeout((function(){return t.stopRecorder()}),100)}else setTimeout((function(){return t.recorder.start()}),200)},stopRecorder:function(){var e=this;if(this.recorder.isRecording)try{this.recorder.stop(),this.recorder=this.initRecorder()}catch(t){setTimeout((function(){return e.stopRecorder()}),100)}},textareaActionHandler:function(){this.$emit("textarea-action-handler",this.message)},sendMessage:function(){var e=this.message.trim();if((this.files.length||e)&&!this.isFileLoading){this.selectedUsersTag.forEach((function(t){e=e.replace("@".concat(t.username),"<usertag>".concat(t._id,"</usertag>"))}));var t,n=this.files.length?this.files:null;if(this.editedMessage._id)(this.editedMessage.content!==e||null!==(t=this.editedMessage.files)&&void 0!==t&&t.length||this.files.length)&&this.$emit("edit-message",{messageId:this.editedMessage._id,newContent:e,files:n,replyMessage:this.messageReply,usersTag:this.selectedUsersTag});else this.$emit("send-message",{content:e,files:n,replyMessage:this.messageReply,usersTag:this.selectedUsersTag});this.resetMessage(!0)}},editMessage:function(e){var t=this;this.resetMessage(),this.editedMessage=l({},e);var n=e.content,r=n,o="<usertag>",a="</usertag>",i=$(n.matchAll(new RegExp(o,"gi"))).map((function(e){return e.index}));i.forEach((function(e){var i=r.substring(e+o.length,r.indexOf(a,e)),s=t.room.users.find((function(e){return e._id===i}));n=n.replace("".concat(o).concat(i).concat(a),"@".concat((null===s||void 0===s?void 0:s.username)||"unknown")),t.selectUserTag(s,!0)})),this.message=n,e.files&&(this.files=$(e.files)),setTimeout((function(){return t.resizeTextarea()}))},replyMessage:function(e){this.editedMessage={},this.messageReply=e,this.focusTextarea()},updateFooterLists:function(){this.updateFooterList("@"),this.updateFooterList(":"),this.updateFooterList("/")},updateFooterList:function(e){if(this.getTextareaRef()&&(":"!==e||this.emojisSuggestionEnabled)&&("@"!==e||this.userTagsEnabled&&this.room.users)&&("/"!==e||this.templatesText)){var t=this.getTextareaRef().selectionStart,n=t;while(n>0&&this.message.charAt(n-1)!==e&&(" "!==this.message.charAt(n-1)||":"!==e))n--;var r=this.message.charAt(n-2),o=!r.match(/^[0-9a-zA-Z]+$/);if(this.message.charAt(n-1)!==e||r&&" "!==r&&!o)this.resetFooterList(e);else{var a=this.message.substring(n,t);":"===e?this.updateEmojis(a):"@"===e?this.updateShowUsersTag(a):"/"===e&&this.updateShowTemplatesText(a)}}},updateShowUsersTag:function(e){var t=this;this.filteredUsersTag=le(this.room.users,"username",e,!0).filter((function(e){return e._id!==t.currentUserId}))},selectUserTag:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.selectUsersTagItem=!1,e){var n=this.getCharPosition("@"),r=n.position,o=n.endPosition,a=this.message.substr(o,o).length?"":" ";this.message=this.message.substr(0,r)+e.username+a+this.message.substr(o,this.message.length-1),this.selectedUsersTag=[].concat($(this.selectedUsersTag),[l({},e)]),t||(this.cursorRangePosition=r+e.username.length+a.length+1),this.focusTextarea()}},updateShowTemplatesText:function(e){this.filteredTemplatesText=le(this.templatesText,"tag",e,!0)},getCharPosition:function(e){var t=this.getTextareaRef().selectionStart,n=t;while(n>0&&this.message.charAt(n-1)!==e)n--;var r=this.getTextareaRef().selectionEnd;return{position:n,endPosition:r}},updateEmojis:function(e){var t=this;return Te(Ae().mark((function n(){var r;return Ae().wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(e){n.next=2;break}return n.abrupt("return");case 2:return n.next=4,t.emojisDB.getEmojiBySearchQuery(e);case 4:r=n.sent,t.filteredEmojis=r.map((function(e){return e.unicode}));case 6:case"end":return n.stop()}}),n)})))()},resetFooterList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;":"===e?this.filteredEmojis=[]:"@"===e?this.filteredUsersTag=[]:("/"===e||(this.filteredEmojis=[],this.filteredUsersTag=[]),this.filteredTemplatesText=[])},resetMessage:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n||this.$emit("typing-message",null),this.selectedUsersTag=[],this.resetFooterList(),this.resetTextareaSize(),this.message="",this.editedMessage={},this.messageReply=null,this.files=[],this.emojiOpened=!1,this.preventKeyboardFromClosing(),!this.textareaAutoFocus&&n||setTimeout((function(){return e.focusTextarea(t)}))},resetTextareaSize:function(){this.getTextareaRef()&&(this.getTextareaRef().style.height="20px")},preventKeyboardFromClosing:function(){this.keepKeyboardOpen&&this.getTextareaRef().focus()},initRecorder:function(){return this.isRecording=!1,new Vt({bitRate:this.audioBitRate,sampleRate:this.audioSampleRate,beforeRecording:null,afterRecording:null,pauseRecording:null,micFailed:this.micFailed})},micFailed:function(){this.isRecording=!1,this.recorder=this.initRecorder()}}},Gt=Yt,Wt=g(Gt,Se,ke,!1,null,null,null),Kt=Wt.exports,Zt=function(){var e=this,t=e._self._c;return t("div",{ref:"message",staticClass:"vac-message-wrapper",attrs:{id:e.message._id}},[e.showDate?t("div",{staticClass:"vac-card-info vac-card-date"},[e._v(" "+e._s(e.message.date)+" ")]):e._e(),e.newMessage._id===e.message._id?t("div",{staticClass:"vac-line-new"},[e._v(" "+e._s(e.textMessages.NEW_MESSAGES)+" ")]):e._e(),e.message.system?t("div",{staticClass:"vac-card-info vac-card-system"},[e._t("system-message",(function(){return[t("format-message",{attrs:{content:e.message.content,users:e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions},on:{"open-user-tag":e.openUserTag},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})]}),null,{message:e.message})],2):t("div",{staticClass:"vac-message-box",class:{"vac-offset-current":e.message.senderId===e.currentUserId},on:{click:e.selectMessage}},[e._t("message",(function(){return[e.message.avatar&&e.message.senderId!==e.currentUserId?t("div",{staticClass:"vac-avatar",style:{"background-image":"url('".concat(e.message.avatar,"')")}}):e._e(),e.hasSenderUserAvatar&&!e.message.avatar?t("div",{staticClass:"vac-avatar-offset"}):e._e(),t("div",{staticClass:"vac-message-container",class:{"vac-message-container-offset":e.messageOffset}},[t("div",{staticClass:"vac-message-card",class:{"vac-message-highlight":e.isMessageHover,"vac-message-current":e.message.senderId===e.currentUserId,"vac-message-deleted":e.message.deleted,"vac-item-clickable":e.messageSelectionEnabled,"vac-message-selected":e.isMessageSelected},on:{mouseover:e.onHoverMessage,mouseleave:e.onLeaveMessage}},[e.showUsername?t("div",{staticClass:"vac-text-username",class:{"vac-username-reply":!e.message.deleted&&e.message.replyMessage}},[t("span",[e._v(e._s(e.message.username))])]):e._e(),!e.message.deleted&&e.message.replyMessage?t("message-reply",{attrs:{message:e.message,"room-users":e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}):e._e(),e.message.deleted?t("div",[e._t("deleted-icon",(function(){return[t("svg-icon",{staticClass:"vac-icon-deleted",attrs:{name:"deleted"}})]})),t("span",[e._v(e._s(e.textMessages.MESSAGE_DELETED))])],2):e.message.files&&e.message.files.length?!e.isAudio||e.message.files.length>1?t("message-files",{attrs:{"current-user-id":e.currentUserId,message:e.message,"room-users":e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions,"message-selection-enabled":e.messageSelectionEnabled},on:{"open-file":e.openFile,"open-user-tag":e.openUserTag},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}):[t("audio-player",{attrs:{"message-id":e.message._id,src:e.message.files[0].url,"message-selection-enabled":e.messageSelectionEnabled},on:{"update-progress-time":function(t){e.progressTime=t},"hover-audio-progress":function(t){e.hoverAudioProgress=t}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),e.message.deleted?e._e():t("div",{staticClass:"vac-progress-time"},[e._v(" "+e._s(e.progressTime)+" ")])]:t("format-message",{attrs:{content:e.message.content,users:e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions},on:{"open-user-tag":e.openUserTag},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{staticClass:"vac-text-timestamp"},[e.message.edited&&!e.message.deleted?t("div",{staticClass:"vac-icon-edited"},[e._t("pencil-icon",(function(){return[t("svg-icon",{attrs:{name:"pencil"}})]}))],2):e._e(),t("span",[e._v(e._s(e.message.timestamp))]),e.isCheckmarkVisible?t("span",[e._t("checkmark-icon",(function(){return[t("svg-icon",{staticClass:"vac-icon-check",attrs:{name:e.message.distributed?"double-checkmark":"checkmark",param:e.message.seen?"seen":""}})]}),null,{message:e.message})],2):e._e()]),t("message-actions",{attrs:{"current-user-id":e.currentUserId,message:e.message,"message-actions":e.messageActions,"show-reaction-emojis":e.showReactionEmojis,"message-hover":e.messageHover,"hover-message-id":e.hoverMessageId,"hover-audio-progress":e.hoverAudioProgress},on:{"update-message-hover":function(t){e.messageHover=t},"update-options-opened":function(t){e.optionsOpened=t},"update-emoji-opened":function(t){e.emojiOpened=t},"message-action-handler":e.messageActionHandler,"send-message-reaction":e.sendMessageReaction},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],2),t("message-reactions",{attrs:{"current-user-id":e.currentUserId,message:e.message},on:{"send-message-reaction":e.sendMessageReaction}})],1),e._t("message-failure",(function(){return[e.message.failure&&e.message.senderId===e.currentUserId?t("div",{staticClass:"vac-failure-container vac-svg-button",class:{"vac-failure-container-avatar":e.message.avatar&&e.message.senderId===e.currentUserId},on:{click:function(t){return e.$emit("open-failed-message",{message:e.message})}}},[t("div",{staticClass:"vac-failure-text"},[e._v(" ! ")])]):e._e()]}),null,{message:e.message}),e.message.avatar&&e.message.senderId===e.currentUserId?t("div",{staticClass:"vac-avatar vac-avatar-current",style:{"background-image":"url('".concat(e.message.avatar,"')")}}):e._e(),e.hasCurrentUserAvatar&&!e.message.avatar?t("div",{staticClass:"vac-avatar-current-offset"}):e._e()]}),null,{message:e.message})],2)])},Qt=[],Jt=(n("13d5"),function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-reply-message"},[t("div",{staticClass:"vac-reply-username"},[e._v(" "+e._s(e.replyUsername)+" ")]),e.isImage?t("div",{staticClass:"vac-image-reply-container"},[t("div",{staticClass:"vac-message-image vac-message-image-reply",style:{"background-image":"url('".concat(e.firstFile.url,"')")}})]):e.isVideo?t("div",{staticClass:"vac-video-reply-container"},[t("video",{attrs:{width:"100%",height:"100%",controls:""}},[t("source",{attrs:{src:e.firstFile.url}})])]):e.isAudio?t("audio-player",{attrs:{src:e.firstFile.url},on:{"update-progress-time":function(t){e.progressTime=t},"hover-audio-progress":function(t){e.hoverAudioProgress=t}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}):e.isOtherFile?t("div",{staticClass:"vac-file-container"},[t("div",[e._t("file-icon",(function(){return[t("svg-icon",{attrs:{name:"file"}})]}))],2),t("div",{staticClass:"vac-text-ellipsis"},[e._v(" "+e._s(e.firstFile.name)+" ")]),e.firstFile.extension?t("div",{staticClass:"vac-text-ellipsis vac-text-extension"},[e._v(" "+e._s(e.firstFile.extension)+" ")]):e._e()]):e._e(),t("div",{staticClass:"vac-reply-content"},[t("format-message",{attrs:{content:e.message.replyMessage.content,users:e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions,reply:!0},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1)],1)}),en=[],tn=n("bd43"),nn=tn.isAudioFile,rn=tn.isImageFile,on=tn.isVideoFile,an={name:"MessageReply",components:{AudioPlayer:ut,SvgIcon:A,FormatMessage:te},props:{message:{type:Object,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},roomUsers:{type:Array,required:!0}},computed:{replyUsername:function(){var e=this.message.replyMessage.senderId,t=this.roomUsers.find((function(t){return t._id===e}));return t?t.username:""},firstFile:function(){var e,t;return null!==(e=this.message.replyMessage)&&void 0!==e&&null!==(t=e.files)&&void 0!==t&&t.length?this.message.replyMessage.files[0]:{}},isAudio:function(){return nn(this.firstFile)},isImage:function(){return rn(this.firstFile)},isVideo:function(){return on(this.firstFile)},isOtherFile:function(){var e;return(null===(e=this.message.replyMessage.files)||void 0===e?void 0:e.length)&&!this.isAudio&&!this.isVideo&&!this.isImage}}},sn=an,cn=g(sn,Jt,en,!1,null,null,null),ln=cn.exports,un=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-message-files-container"},[e._l(e.imageVideoFiles,(function(n,r){return t("div",{key:r+"iv"},[t("message-file",{attrs:{file:n,"current-user-id":e.currentUserId,message:e.message,index:r,"message-selection-enabled":e.messageSelectionEnabled},on:{"open-file":function(t){return e.$emit("open-file",t)}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],1)})),e._l(e.otherFiles,(function(n,r){return t("div",{key:r+"a",staticClass:"vac-file-wrapper"},[n.progress>=0?t("progress-bar",{style:{top:"44px"},attrs:{progress:n.progress}}):e._e(),t("div",{staticClass:"vac-file-container",class:{"vac-file-container-progress":n.progress>=0},on:{click:function(t){return e.openFile(t,n,"download")}}},[t("div",{staticClass:"vac-svg-button"},[e._t("document-icon",(function(){return[t("svg-icon",{attrs:{name:"document"}})]}))],2),t("div",{staticClass:"vac-text-ellipsis"},[e._v(" "+e._s(n.name)+" ")]),n.extension?t("div",{staticClass:"vac-text-ellipsis vac-text-extension"},[e._v(" "+e._s(n.extension)+" ")]):e._e()])],1)})),t("format-message",{attrs:{content:e.message.content,users:e.roomUsers,"text-formatting":e.textFormatting,"link-options":e.linkOptions},on:{"open-user-tag":function(t){return e.$emit("open-user-tag",t)}},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)})],2)},fn=[],dn=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"vac-fade-spinner",appear:""}},[t("div",{ref:"progress",staticClass:"vac-progress-wrapper"},[t("svg",{attrs:{height:2*e.radius,width:2*e.radius}},[t("circle",{style:{strokeDashoffset:e.strokeDashoffset,strokeLinecap:"round"},attrs:{stroke:"rgba(255, 255, 255, 0.7)","stroke-dasharray":e.circumference+" "+e.circumference,"stroke-width":e.stroke,fill:"transparent",r:e.normalizedRadius,cx:e.radius,cy:e.radius}})]),t("div",{staticClass:"vac-progress-content",style:{height:2*e.radius-19+"px",width:2*e.radius-19+"px"}},[t("div",{staticClass:"vac-progress-text"},[e._v(" "+e._s(e.progress)),t("span",{staticClass:"vac-progress-pourcent"},[e._v("%")])])])])])},pn=[],hn={name:"ProgressBar",props:{progress:{type:Number,default:0}},data:function(){var e=35,t=4,n=e-2*t,r=2*n*Math.PI;return{radius:e,stroke:t,normalizedRadius:n,circumference:r}},computed:{strokeDashoffset:function(){return this.circumference-this.progress/100*this.circumference}}},mn=hn,gn=g(mn,dn,pn,!1,null,null,null),vn=gn.exports,_n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-message-file-container"},[e.isImage?t("div",{ref:"imageRef"+e.index,staticClass:"vac-message-image-container",on:{mouseover:function(t){e.imageHover=!0},mouseleave:function(t){e.imageHover=!1},click:function(t){return e.openFile(t,"preview")}}},[e.file.progress>=0?t("progress-bar",{style:{top:"".concat(e.imageResponsive.loaderTop,"px")},attrs:{progress:e.file.progress}}):t("loader",{style:{top:"".concat(e.imageResponsive.loaderTop,"px")},attrs:{show:e.isImageLoading},scopedSlots:e._u([e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)}),t("div",{staticClass:"vac-message-image",class:{"vac-blur-loading":e.isImageLoading&&e.message.senderId===e.currentUserId},style:{"background-image":"url('".concat(e.isImageLoading&&e.file.preview||e.file.url,"')"),"max-height":"".concat(e.imageResponsive.maxHeight,"px")}},[t("transition",{attrs:{name:"vac-fade-image"}},[e.messageSelectionEnabled||!e.imageHover||e.isImageLoading?e._e():t("div",{staticClass:"vac-image-buttons"},[t("div",{staticClass:"vac-svg-button vac-button-view",on:{click:function(t){return e.openFile(t,"preview")}}},[e._t("eye-icon",(function(){return[t("svg-icon",{attrs:{name:"eye"}})]}))],2),t("div",{staticClass:"vac-svg-button vac-button-download",on:{click:function(t){return e.openFile(t,"download")}}},[e._t("document-icon",(function(){return[t("svg-icon",{attrs:{name:"document"}})]}))],2)])])],1)],1):e.isVideo?t("div",{staticClass:"vac-video-container",on:{click:function(t){return t.preventDefault(),e.openFile("preview")}}},[e.file.progress>=0?t("progress-bar",{attrs:{progress:e.file.progress}}):e._e(),t("video",{attrs:{width:"100%",height:"100%",controls:""}},[t("source",{attrs:{src:e.file.url}})])],1):e._e()])},bn=[],yn=n("bd43"),wn=yn.isImageFile,xn=yn.isVideoFile,Sn={name:"MessageFile",components:{SvgIcon:A,Loader:_,ProgressBar:vn},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},file:{type:Object,required:!0},index:{type:Number,required:!0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["open-file"],data:function(){return{imageResponsive:"",imageLoading:!1,imageHover:!1}},computed:{isImageLoading:function(){return-1!==this.file.url.indexOf("blob:http")||this.imageLoading},isImage:function(){return wn(this.file)},isVideo:function(){return xn(this.file)}},watch:{file:{immediate:!0,handler:function(){this.checkImgLoad()}}},mounted:function(){var e=this.$refs["imageRef"+this.index];e&&(this.imageResponsive={maxHeight:e.clientWidth-18,loaderTop:e.clientHeight/2-9})},methods:{checkImgLoad:function(){var e=this;if(wn(this.file)){this.imageLoading=!0;var t=new Image;t.src=this.file.url,t.addEventListener("load",(function(){return e.imageLoading=!1}))}},openFile:function(e,t){this.messageSelectionEnabled||(e.stopPropagation(),this.$emit("open-file",{file:this.file,action:t}))}}},kn=Sn,Mn=g(kn,_n,bn,!1,null,null,null),An=Mn.exports,En=n("bd43"),Tn=En.isImageVideoFile,Rn={name:"MessageFiles",components:{SvgIcon:A,FormatMessage:te,ProgressBar:vn,MessageFile:An},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},roomUsers:{type:Array,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["open-file","open-user-tag"],computed:{imageVideoFiles:function(){return this.message.files.filter((function(e){return Tn(e)}))},otherFiles:function(){return this.message.files.filter((function(e){return!Tn(e)}))}},methods:{openFile:function(e,t,n){this.messageSelectionEnabled||(e.stopPropagation(),this.$emit("open-file",{file:t,action:n}))}}},On=Rn,Cn=g(On,un,fn,!1,null,null,null),jn=Cn.exports,Bn=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vac-message-actions-wrapper"},[t("div",{staticClass:"vac-options-container",style:{display:e.hoverAudioProgress?"none":"initial",width:e.filteredMessageActions.length&&e.showReactionEmojis?"70px":"45px"}},[t("transition-group",{attrs:{name:"vac-slide-left",tag:"span"}},[e.isMessageActions||e.isMessageReactions?t("div",{key:"1",staticClass:"vac-blur-container",class:{"vac-options-me":e.message.senderId===e.currentUserId}}):e._e(),e.isMessageActions?t("div",{key:"2",ref:"actionIcon",staticClass:"vac-svg-button vac-message-options",on:{click:e.openOptions}},[e._t("dropdown-icon",(function(){return[t("svg-icon",{attrs:{name:"dropdown",param:"message"}})]}))],2):e._e(),e.isMessageReactions?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeEmoji,expression:"closeEmoji"}],key:"3"},[e._t("emoji-picker",(function(){return[t("emoji-picker-container",{staticClass:"vac-message-emojis",style:{right:e.isMessageActions?"30px":"5px"},attrs:{"emoji-opened":e.emojiOpened,"emoji-reaction":!0,"position-right":e.message.senderId===e.currentUserId},on:{"add-emoji":e.sendMessageReaction,"open-emoji":e.openEmoji},scopedSlots:e._u([{key:"emoji-picker-icon",fn:function(){return[e._t("emoji-picker-reaction-icon")]},proxy:!0}],null,!0)})]}),{addEmoji:e.sendMessageReaction},{emojiOpened:e.emojiOpened})],2):e._e()])],1),e.filteredMessageActions.length?t("transition",{attrs:{name:e.message.senderId===e.currentUserId?"vac-slide-left":"vac-slide-right"}},[e.optionsOpened?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeOptions,expression:"closeOptions"}],ref:"menuOptions",staticClass:"vac-menu-options",class:{"vac-menu-left":e.message.senderId!==e.currentUserId},style:{top:"".concat(e.menuOptionsTop,"px")}},[t("div",{staticClass:"vac-menu-list"},e._l(e.filteredMessageActions,(function(n){return t("div",{key:n.name},[t("div",{staticClass:"vac-menu-item",on:{click:function(t){return e.messageActionHandler(n)}}},[e._v(" "+e._s(n.title)+" ")])])})),0)]):e._e()]):e._e()],1)},In=[],Pn={name:"MessageActions",components:{SvgIcon:A,EmojiPickerContainer:Pe},directives:{clickOutside:I.a.directive},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},messageActions:{type:Array,required:!0},showReactionEmojis:{type:Boolean,required:!0},messageHover:{type:Boolean,required:!0},hoverMessageId:{type:[String,Number],default:null},hoverAudioProgress:{type:Boolean,required:!0}},emits:["update-emoji-opened","update-options-opened","update-message-hover","message-action-handler","send-message-reaction"],data:function(){return{menuOptionsTop:0,optionsOpened:!1,optionsClosing:!1,emojiOpened:!1}},computed:{isMessageActions:function(){return this.filteredMessageActions.length&&this.messageHover&&!this.message.deleted&&!this.message.disableActions&&!this.hoverAudioProgress},isMessageReactions:function(){return this.showReactionEmojis&&this.messageHover&&!this.message.deleted&&!this.message.disableReactions&&!this.hoverAudioProgress},filteredMessageActions:function(){return this.message.senderId===this.currentUserId?this.messageActions:this.messageActions.filter((function(e){return!e.onlyMe}))}},watch:{emojiOpened:function(e){this.$emit("update-emoji-opened",e),e&&(this.optionsOpened=!1)},optionsOpened:function(e){this.$emit("update-options-opened",e)}},methods:{openOptions:function(){var e=this;this.optionsClosing||(this.optionsOpened=!this.optionsOpened,this.optionsOpened&&setTimeout((function(){var t=document.getElementById("room-footer");if(t&&e.$refs.menuOptions&&e.$refs.actionIcon){var n=e.$refs.menuOptions.getBoundingClientRect().height,r=e.$refs.actionIcon.getBoundingClientRect().top,o=t.getBoundingClientRect().top,a=o-r>n+50;e.menuOptionsTop=a?30:-n}})))},closeOptions:function(){var e=this;this.optionsOpened=!1,this.optionsClosing=!0,this.updateMessageHover(),setTimeout((function(){return e.optionsClosing=!1}),100)},openEmoji:function(){this.emojiOpened=!this.emojiOpened},closeEmoji:function(){this.emojiOpened=!1,this.updateMessageHover()},updateMessageHover:function(){this.hoverMessageId!==this.message._id&&this.$emit("update-message-hover",!1)},messageActionHandler:function(e){this.closeOptions(),this.$emit("message-action-handler",e)},sendMessageReaction:function(e,t){this.$emit("send-message-reaction",{emoji:e,reaction:t}),this.closeEmoji()}}},Ln=Pn,Nn=g(Ln,Bn,In,!1,null,null,null),Dn=Nn.exports,Fn=function(){var e=this,t=e._self._c;return e.message.deleted?e._e():t("transition-group",{attrs:{name:"vac-slide-left",tag:"span"}},e._l(e.message.reactions,(function(n,r){return t("button",{directives:[{name:"show",rawName:"v-show",value:n.length,expression:"reaction.length"}],key:r+0,staticClass:"vac-button-reaction",class:{"vac-reaction-me":-1!==n.indexOf(e.currentUserId)},style:{float:e.message.senderId===e.currentUserId?"right":"left"},on:{click:function(t){return e.sendMessageReaction({unicode:r},n)}}},[e._v(" "+e._s(r)),t("span",[e._v(e._s(n.length))])])})),0)},Hn=[],Un={name:"MessageReactions",props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0}},emits:["send-message-reaction"],methods:{sendMessageReaction:function(e,t){this.$emit("send-message-reaction",{emoji:e,reaction:t})}}},$n=Un,qn=g($n,Fn,Hn,!1,null,null,null),Vn=qn.exports,zn=n("4c1d"),Xn=zn.messagesValidation,Yn=n("bd43"),Gn=Yn.isAudioFile,Wn={name:"RoomMessage",components:{SvgIcon:A,FormatMessage:te,AudioPlayer:ut,MessageReply:ln,MessageFiles:jn,MessageActions:Dn,MessageReactions:Vn},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},index:{type:Number,required:!0},message:{type:Object,required:!0},messages:{type:Array,required:!0},editedMessageId:{type:[String,Number],default:null},roomUsers:{type:Array,default:function(){return[]}},messageActions:{type:Array,required:!0},newMessages:{type:Array,default:function(){return[]}},showReactionEmojis:{type:Boolean,required:!0},showNewMessagesDivider:{type:Boolean,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},usernameOptions:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0},selectedMessages:{type:Array,default:function(){return[]}}},emits:["message-added","open-file","open-user-tag","open-failed-message","message-action-handler","send-message-reaction","select-message","unselect-message"],data:function(){return{hoverMessageId:null,messageHover:!1,optionsOpened:!1,emojiOpened:!1,newMessage:{},progressTime:"- : -",hoverAudioProgress:!1}},computed:{showUsername:function(){return!(!this.usernameOptions.currentUser&&this.message.senderId===this.currentUserId)&&this.roomUsers.length>=this.usernameOptions.minUsers},showDate:function(){return this.index>0&&this.message.date!==this.messages[this.index-1].date},messageOffset:function(){return this.index>0&&this.message.senderId!==this.messages[this.index-1].senderId},isMessageHover:function(){return this.editedMessageId===this.message._id||this.hoverMessageId===this.message._id},isAudio:function(){var e;return null===(e=this.message.files)||void 0===e?void 0:e.some((function(e){return Gn(e)}))},isCheckmarkVisible:function(){return this.message.senderId===this.currentUserId&&!this.message.deleted&&(this.message.saved||this.message.distributed||this.message.seen)},hasCurrentUserAvatar:function(){var e=this;return this.messages.some((function(t){return t.senderId===e.currentUserId&&t.avatar}))},hasSenderUserAvatar:function(){var e=this;return this.messages.some((function(t){return t.senderId!==e.currentUserId&&t.avatar}))},isMessageSelected:function(){var e=this;return this.messageSelectionEnabled&&!!this.selectedMessages.find((function(t){return t._id===e.message._id}))}},watch:{newMessages:{immediate:!0,deep:!0,handler:function(e){e.length&&this.showNewMessagesDivider?this.newMessage=e.reduce((function(e,t){return t.index<e.index?t:e})):this.newMessage={}}},messageSelectionEnabled:function(){this.resetMessageHover()}},mounted:function(){Xn(this.message),this.$emit("message-added",{message:this.message,index:this.index,ref:this.$refs.message})},methods:{onHoverMessage:function(){this.messageSelectionEnabled||(this.messageHover=!0,this.canEditMessage()&&(this.hoverMessageId=this.message._id))},canEditMessage:function(){return!this.message.deleted},onLeaveMessage:function(){this.messageSelectionEnabled||(this.optionsOpened||this.emojiOpened||(this.messageHover=!1),this.hoverMessageId=null)},resetMessageHover:function(){this.messageHover=!1,this.hoverMessageId=null},openFile:function(e){this.$emit("open-file",{message:this.message,file:e})},openUserTag:function(e){this.$emit("open-user-tag",{user:e})},messageActionHandler:function(e){var t=this;this.resetMessageHover(),setTimeout((function(){t.$emit("message-action-handler",{action:e,message:t.message})}),300)},sendMessageReaction:function(e){var t=e.emoji,n=e.reaction;this.$emit("send-message-reaction",{messageId:this.message._id,reaction:t,remove:n&&-1!==n.indexOf(this.currentUserId)}),this.messageHover=!1},selectMessage:function(){this.messageSelectionEnabled&&(this.isMessageSelected?this.$emit("unselect-message",this.message._id):this.$emit("select-message",this.message))}}},Kn=Wn,Zn=g(Kn,Zt,Qt,!1,null,null,null),Qn=Zn.exports,Jn={name:"Room",components:{Loader:_,SvgIcon:A,RoomHeader:xe,RoomFooter:Kt,RoomMessage:Qn},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},singleRoom:{type:Boolean,required:!0},showRoomsList:{type:Boolean,required:!0},isMobile:{type:Boolean,required:!0},rooms:{type:Array,required:!0},roomId:{type:[String,Number],required:!0},loadFirstRoom:{type:Boolean,required:!0},messages:{type:Array,required:!0},roomMessage:{type:String,default:null},messagesLoaded:{type:Boolean,required:!0},menuActions:{type:Array,required:!0},messageActions:{type:Array,required:!0},messageSelectionActions:{type:Array,required:!0},autoScroll:{type:Object,required:!0},showSendIcon:{type:Boolean,required:!0},showFiles:{type:Boolean,required:!0},showAudio:{type:Boolean,required:!0},audioBitRate:{type:Number,required:!0},audioSampleRate:{type:Number,required:!0},showEmojis:{type:Boolean,required:!0},showReactionEmojis:{type:Boolean,required:!0},showNewMessagesDivider:{type:Boolean,required:!0},showFooter:{type:Boolean,required:!0},acceptedFiles:{type:String,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},loadingRooms:{type:Boolean,required:!0},roomInfoEnabled:{type:Boolean,required:!0},textareaActionEnabled:{type:Boolean,required:!0},textareaAutoFocus:{type:Boolean,required:!0},userTagsEnabled:{type:Boolean,required:!0},emojisSuggestionEnabled:{type:Boolean,required:!0},scrollDistance:{type:Number,required:!0},templatesText:{type:Array,default:null},usernameOptions:{type:Object,required:!0}},emits:["toggle-rooms-list","room-info","menu-action-handler","message-selection-action-handler","edit-message","send-message","delete-message","message-action-handler","fetch-messages","send-message-reaction","typing-message","open-file","open-user-tag","open-failed-message","textarea-action-handler"],data:function(){return{editedMessageId:null,initReplyMessage:null,initEditMessage:null,infiniteState:null,loadingMessages:!1,observer:null,showLoader:!0,loadingMoreMessages:!1,scrollIcon:!1,scrollMessagesCount:0,newMessages:[],messageSelectionEnabled:!1,selectedMessages:[]}},computed:{room:function(){var e=this;return this.rooms.find((function(t){return t.roomId===e.roomId}))||{}},showNoMessages:function(){return this.roomId&&!this.messages.length&&!this.loadingMessages&&!this.loadingRooms},showNoRoom:function(){var e=!this.rooms.length&&!this.loadingRooms||!this.roomId&&!this.loadFirstRoom;return e&&(this.loadingMessages=!1),e},showMessagesStarted:function(){return this.messages.length&&this.messagesLoaded}},watch:{loadingMessages:function(e){var t=this;e?this.infiniteState=null:(this.infiniteState&&this.infiniteState.loaded(),setTimeout((function(){return t.initIntersectionObserver()})))},roomId:function(){this.onRoomChanged()},messages:{deep:!0,handler:function(e,t){var n=this;e.forEach((function(e,t){n.showNewMessagesDivider&&!e.seen&&e.senderId!==n.currentUserId&&n.newMessages.push({_id:e._id,index:t})})),(null===t||void 0===t?void 0:t.length)===(null===e||void 0===e?void 0:e.length)-1&&(this.newMessages=[]),this.infiniteState&&this.infiniteState.loaded(),setTimeout((function(){return n.loadingMoreMessages=!1}))}},messagesLoaded:function(e){e&&(this.loadingMessages=!1),this.infiniteState&&this.infiniteState.complete()}},mounted:function(){this.newMessages=[]},methods:{initIntersectionObserver:function(){var e=this;this.observer&&(this.showLoader=!0,this.observer.disconnect());var t=document.getElementById("infinite-loader-messages");if(t){var n={root:document.getElementById("messages-list"),rootMargin:"".concat(this.scrollDistance,"px"),threshold:0};this.observer=new IntersectionObserver((function(t){t[0].isIntersecting&&e.loadMoreMessages()}),n),this.observer.observe(t)}},preventTopScroll:function(){for(var e=this,t=this.$refs.scrollContainer,n=t.scrollHeight,r=new ResizeObserver((function(o){t.scrollHeight!==n&&e.$refs.scrollContainer&&(e.$refs.scrollContainer.scrollTo({top:t.scrollHeight-n}),r.disconnect())})),o=0;o<t.children.length;o++)r.observe(t.children[o])},touchStart:function(e){var t=this;if(!this.singleRoom&&1===e.changedTouches.length){var n=e.changedTouches[0].clientX,r=e.changedTouches[0].clientY;addEventListener("touchend",(function(e){return t.touchEnd(e,n,r)}),{once:!0})}},touchEnd:function(e,t,n){if(1===e.changedTouches.length){var r=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY,a=r-t>100,i=Math.abs(o-n)>50;a&&!i&&this.$emit("toggle-rooms-list")}},onRoomChanged:function(){var e=this;this.loadingMessages=!0,this.scrollIcon=!1,this.scrollMessagesCount=0,this.resetMessageSelection(),!this.messages.length&&this.messagesLoaded&&(this.loadingMessages=!1);var t=this.$watch((function(){return e.messages}),(function(n){if(n&&n.length){var r=e.$refs.scrollContainer;r&&(t(),setTimeout((function(){r.scrollTo({top:r.scrollHeight}),e.loadingMessages=!1})))}}))},resetMessageSelection:function(){this.messageSelectionEnabled=!1,this.selectedMessages=[]},selectMessage:function(e){this.selectedMessages.push(e)},unselectMessage:function(e){this.selectedMessages=this.selectedMessages.filter((function(t){return t._id!==e}))},onMessageAdded:function(e){var t=this,n=e.message,r=e.index,o=e.ref;if(r===this.messages.length-1){var a=o.offsetHeight+60;setTimeout((function(){var e=t.getBottomScroll(t.$refs.scrollContainer)>a;n.senderId===t.currentUserId?e?t.autoScroll.send.newAfterScrollUp&&t.scrollToBottom():t.autoScroll.send["new"]&&t.scrollToBottom():e?t.autoScroll.receive.newAfterScrollUp?t.scrollToBottom():(t.scrollIcon=!0,t.scrollMessagesCount++):t.autoScroll.receive["new"]?t.scrollToBottom():(t.scrollIcon=!0,t.scrollMessagesCount++)}))}},onContainerScroll:function(e){if(e.target){var t=this.getBottomScroll(e.target);t<60&&(this.scrollMessagesCount=0),this.scrollIcon=t>500||this.scrollMessagesCount}},loadMoreMessages:function(){var e=this;this.loadingMessages||setTimeout((function(){if(!e.loadingMoreMessages){if(e.messagesLoaded||!e.roomId)return e.loadingMoreMessages=!1,void(e.showLoader=!1);e.preventTopScroll(),e.$emit("fetch-messages"),e.loadingMoreMessages=!0}}),500)},messageActionHandler:function(e){var t=e.action,n=e.message;switch(t.name){case"replyMessage":return void(this.initReplyMessage=n);case"editMessage":return void(this.initEditMessage=n);case"deleteMessage":return this.$emit("delete-message",n);case"selectMessages":return this.selectedMessages=[n],void(this.messageSelectionEnabled=!0);default:return this.$emit("message-action-handler",{action:t,message:n})}},messageSelectionActionHandler:function(e){this.$emit("message-selection-action-handler",{action:e,messages:this.selectedMessages}),this.resetMessageSelection()},sendMessageReaction:function(e){this.$emit("send-message-reaction",e)},getBottomScroll:function(e){var t=e.scrollHeight,n=e.clientHeight,r=e.scrollTop;return t-n-r},scrollToBottom:function(){var e=this;setTimeout((function(){var t=e.$refs.scrollContainer;t.classList.add("vac-scroll-smooth"),t.scrollTo({top:t.scrollHeight,behavior:"smooth"}),setTimeout((function(){return t.classList.remove("vac-scroll-smooth")}))}),50)},openFile:function(e){var t=e.message,n=e.file;this.$emit("open-file",{message:t,file:n})},openUserTag:function(e){this.$emit("open-user-tag",e)}}},er=Jn,tr=g(er,me,ge,!1,null,null,null),nr=tr.exports,rr=function(){var e=this,t=e._self._c;return t("div",{ref:"modal",staticClass:"vac-media-preview",attrs:{tabindex:"0"},on:{click:function(t){return t.stopPropagation(),e.closeModal.apply(null,arguments)},keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.closeModal.apply(null,arguments)}}},[t("transition",{attrs:{name:"vac-bounce-preview",appear:""}},[e.isImage?t("div",{staticClass:"vac-media-preview-container"},[t("div",{staticClass:"vac-image-preview",style:{"background-image":"url('".concat(e.file.url,"')")}})]):e.isVideo?t("div",{staticClass:"vac-media-preview-container"},[t("video",{attrs:{width:"100%",height:"100%",controls:"",autoplay:""}},[t("source",{attrs:{src:e.file.url}})])]):e._e()]),t("div",{staticClass:"vac-svg-button"},[e._t("preview-close-icon",(function(){return[t("svg-icon",{attrs:{name:"close-outline",param:"preview"}})]}))],2)],1)},or=[],ar=n("bd43"),ir=ar.isImageFile,sr=ar.isVideoFile,cr={name:"MediaPreview",components:{SvgIcon:A},props:{file:{type:Object,required:!0}},emits:["close-media-preview"],computed:{isImage:function(){return ir(this.file)},isVideo:function(){return sr(this.file)}},mounted:function(){this.$refs.modal.focus()},methods:{closeModal:function(){this.$emit("close-media-preview")}}},lr=cr,ur=g(lr,rr,or,!1,null,null,null),fr=ur.exports,dr={ROOMS_EMPTY:"No rooms",ROOM_EMPTY:"No room selected",NEW_MESSAGES:"New Messages",MESSAGE_DELETED:"This message was deleted",MESSAGES_EMPTY:"No messages",CONVERSATION_STARTED:"Conversation started on:",TYPE_MESSAGE:"Type message",SEARCH:"Search",IS_ONLINE:"is online",LAST_SEEN:"last seen ",IS_TYPING:"is writing...",CANCEL_SELECT_MESSAGE:"Cancel"},pr={light:{general:{color:"#0a0a0a",colorButtonClear:"#1976d2",colorButton:"#fff",backgroundColorButton:"#1976d2",backgroundInput:"#fff",colorPlaceholder:"#9ca6af",colorCaret:"#1976d2",colorSpinner:"#333",borderStyle:"1px solid #e1e4e8",backgroundScrollIcon:"#fff"},container:{border:"none",borderRadius:"4px",boxShadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)"},header:{background:"#fff",colorRoomName:"#0a0a0a",colorRoomInfo:"#9ca6af"},footer:{background:"#f8f9fa",borderStyleInput:"1px solid #e1e4e8",borderInputSelected:"#1976d2",backgroundReply:"#e5e5e6",backgroundTagActive:"#e5e5e6",backgroundTag:"#f8f9fa"},content:{background:"#f8f9fa"},sidemenu:{background:"#fff",backgroundHover:"#f6f6f6",backgroundActive:"#e5effa",colorActive:"#1976d2",borderColorSearch:"#e1e5e8"},dropdown:{background:"#fff",backgroundHover:"#f6f6f6"},message:{background:"#fff",backgroundMe:"#ccf2cf",color:"#0a0a0a",colorStarted:"#9ca6af",backgroundDeleted:"#dadfe2",backgroundSelected:"#c2dcf2",colorDeleted:"#757e85",colorUsername:"#9ca6af",colorTimestamp:"#828c94",backgroundDate:"#e5effa",colorDate:"#505a62",backgroundSystem:"#e5effa",colorSystem:"#505a62",backgroundMedia:"rgba(0, 0, 0, 0.15)",backgroundReply:"rgba(0, 0, 0, 0.08)",colorReplyUsername:"#0a0a0a",colorReply:"#6e6e6e",colorTag:"#0d579c",backgroundImage:"#ddd",colorNewMessages:"#1976d2",backgroundScrollCounter:"#0696c7",colorScrollCounter:"#fff",backgroundReaction:"#eee",borderStyleReaction:"1px solid #eee",backgroundReactionHover:"#fff",borderStyleReactionHover:"1px solid #ddd",colorReactionCounter:"#0a0a0a",backgroundReactionMe:"#cfecf5",borderStyleReactionMe:"1px solid #3b98b8",backgroundReactionHoverMe:"#cfecf5",borderStyleReactionHoverMe:"1px solid #3b98b8",colorReactionCounterMe:"#0b59b3",backgroundAudioRecord:"#eb4034",backgroundAudioLine:"rgba(0, 0, 0, 0.15)",backgroundAudioProgress:"#455247",backgroundAudioProgressSelector:"#455247",colorFileExtension:"#757e85"},markdown:{background:"rgba(239, 239, 239, 0.7)",border:"rgba(212, 212, 212, 0.9)",color:"#e01e5a",colorMulti:"#0a0a0a"},room:{colorUsername:"#0a0a0a",colorMessage:"#67717a",colorTimestamp:"#a2aeb8",colorStateOnline:"#4caf50",colorStateOffline:"#9ca6af",backgroundCounterBadge:"#0696c7",colorCounterBadge:"#fff"},emoji:{background:"#fff"},icons:{search:"#9ca6af",add:"#1976d2",toggle:"#0a0a0a",menu:"#0a0a0a",close:"#9ca6af",closeImage:"#fff",file:"#1976d2",paperclip:"#1976d2",closeOutline:"#000",closePreview:"#fff",send:"#1976d2",sendDisabled:"#9ca6af",emoji:"#1976d2",emojiReaction:"rgba(0, 0, 0, 0.3)",document:"#1976d2",pencil:"#9e9e9e",checkmark:"#9e9e9e",checkmarkSeen:"#0696c7",eye:"#fff",dropdownMessage:"#fff",dropdownMessageBackground:"rgba(0, 0, 0, 0.25)",dropdownRoom:"#9e9e9e",dropdownScroll:"#0a0a0a",microphone:"#1976d2",audioPlay:"#455247",audioPause:"#455247",audioCancel:"#eb4034",audioConfirm:"#1ba65b"}},dark:{general:{color:"#fff",colorButtonClear:"#fff",colorButton:"#fff",backgroundColorButton:"#1976d2",backgroundInput:"#202223",colorPlaceholder:"#596269",colorCaret:"#fff",colorSpinner:"#fff",borderStyle:"none",backgroundScrollIcon:"#fff"},container:{border:"none",borderRadius:"4px",boxShadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)"},header:{background:"#181a1b",colorRoomName:"#fff",colorRoomInfo:"#9ca6af"},footer:{background:"#131415",borderStyleInput:"none",borderInputSelected:"#1976d2",backgroundReply:"#1b1c1c",backgroundTagActive:"#1b1c1c",backgroundTag:"#131415"},content:{background:"#131415"},sidemenu:{background:"#181a1b",backgroundHover:"#202224",backgroundActive:"#151617",colorActive:"#fff",borderColorSearch:"#181a1b"},dropdown:{background:"#2a2c33",backgroundHover:"#26282e"},message:{background:"#22242a",backgroundMe:"#1f7e80",color:"#fff",colorStarted:"#9ca6af",backgroundDeleted:"#1b1c21",backgroundSelected:"#c2dcf2",colorDeleted:"#a2a5a8",colorUsername:"#b3bac9",colorTimestamp:"#ebedf2",backgroundDate:"rgba(0, 0, 0, 0.3)",colorDate:"#bec5cc",backgroundSystem:"rgba(0, 0, 0, 0.3)",colorSystem:"#bec5cc",backgroundMedia:"rgba(0, 0, 0, 0.18)",backgroundReply:"rgba(0, 0, 0, 0.18)",colorReplyUsername:"#fff",colorReply:"#d6d6d6",colorTag:"#f0c60a",backgroundImage:"#ddd",colorNewMessages:"#fff",backgroundScrollCounter:"#1976d2",colorScrollCounter:"#fff",backgroundReaction:"none",borderStyleReaction:"none",backgroundReactionHover:"#202223",borderStyleReactionHover:"none",colorReactionCounter:"#fff",backgroundReactionMe:"#4e9ad1",borderStyleReactionMe:"none",backgroundReactionHoverMe:"#4e9ad1",borderStyleReactionHoverMe:"none",colorReactionCounterMe:"#fff",backgroundAudioRecord:"#eb4034",backgroundAudioLine:"rgba(255, 255, 255, 0.15)",backgroundAudioProgress:"#b7d4d3",backgroundAudioProgressSelector:"#b7d4d3",colorFileExtension:"#a2a5a8"},markdown:{background:"rgba(239, 239, 239, 0.7)",border:"rgba(212, 212, 212, 0.9)",color:"#e01e5a",colorMulti:"#0a0a0a"},room:{colorUsername:"#fff",colorMessage:"#6c7278",colorTimestamp:"#6c7278",colorStateOnline:"#4caf50",colorStateOffline:"#596269",backgroundCounterBadge:"#1976d2",colorCounterBadge:"#fff"},emoji:{background:"#343740"},icons:{search:"#596269",add:"#fff",toggle:"#fff",menu:"#fff",close:"#9ca6af",closeImage:"#fff",file:"#1976d2",paperclip:"#fff",closeOutline:"#fff",closePreview:"#fff",send:"#fff",sendDisabled:"#646a70",emoji:"#fff",emojiReaction:"#fff",document:"#1976d2",pencil:"#ebedf2",checkmark:"#ebedf2",checkmarkSeen:"#f0d90a",eye:"#fff",dropdownMessage:"#fff",dropdownMessageBackground:"rgba(0, 0, 0, 0.25)",dropdownRoom:"#fff",dropdownScroll:"#0a0a0a",microphone:"#fff",audioPlay:"#b7d4d3",audioPause:"#b7d4d3",audioCancel:"#eb4034",audioConfirm:"#1ba65b"}}},hr=function(e){var t=e.general,n=e.container,r=e.header,o=e.footer,a=e.sidemenu,i=e.content,s=e.dropdown,c=e.message,l=e.markdown,u=e.room,f=e.emoji,d=e.icons;return{"--chat-color":t.color,"--chat-color-button-clear":t.colorButtonClear,"--chat-color-button":t.colorButton,"--chat-bg-color-button":t.backgroundColorButton,"--chat-bg-color-input":t.backgroundInput,"--chat-color-spinner":t.colorSpinner,"--chat-color-placeholder":t.colorPlaceholder,"--chat-color-caret":t.colorCaret,"--chat-border-style":t.borderStyle,"--chat-bg-scroll-icon":t.backgroundScrollIcon,"--chat-container-border":n.border,"--chat-container-border-radius":n.borderRadius,"--chat-container-box-shadow":n.boxShadow,"--chat-header-bg-color":r.background,"--chat-header-color-name":r.colorRoomName,"--chat-header-color-info":r.colorRoomInfo,"--chat-footer-bg-color":o.background,"--chat-border-style-input":o.borderStyleInput,"--chat-border-color-input-selected":o.borderInputSelected,"--chat-footer-bg-color-reply":o.backgroundReply,"--chat-footer-bg-color-tag-active":o.backgroundTagActive,"--chat-footer-bg-color-tag":o.backgroundTag,"--chat-content-bg-color":i.background,"--chat-sidemenu-bg-color":a.background,"--chat-sidemenu-bg-color-hover":a.backgroundHover,"--chat-sidemenu-bg-color-active":a.backgroundActive,"--chat-sidemenu-color-active":a.colorActive,"--chat-sidemenu-border-color-search":a.borderColorSearch,"--chat-dropdown-bg-color":s.background,"--chat-dropdown-bg-color-hover":s.backgroundHover,"--chat-message-bg-color":c.background,"--chat-message-bg-color-me":c.backgroundMe,"--chat-message-color-started":c.colorStarted,"--chat-message-bg-color-deleted":c.backgroundDeleted,"--chat-message-bg-color-selected":c.backgroundSelected,"--chat-message-color-deleted":c.colorDeleted,"--chat-message-color-username":c.colorUsername,"--chat-message-color-timestamp":c.colorTimestamp,"--chat-message-bg-color-date":c.backgroundDate,"--chat-message-color-date":c.colorDate,"--chat-message-bg-color-system":c.backgroundSystem,"--chat-message-color-system":c.colorSystem,"--chat-message-color":c.color,"--chat-message-bg-color-media":c.backgroundMedia,"--chat-message-bg-color-reply":c.backgroundReply,"--chat-message-color-reply-username":c.colorReplyUsername,"--chat-message-color-reply-content":c.colorReply,"--chat-message-color-tag":c.colorTag,"--chat-message-bg-color-image":c.backgroundImage,"--chat-message-color-new-messages":c.colorNewMessages,"--chat-message-bg-color-scroll-counter":c.backgroundScrollCounter,"--chat-message-color-scroll-counter":c.colorScrollCounter,"--chat-message-bg-color-reaction":c.backgroundReaction,"--chat-message-border-style-reaction":c.borderStyleReaction,"--chat-message-bg-color-reaction-hover":c.backgroundReactionHover,"--chat-message-border-style-reaction-hover":c.borderStyleReactionHover,"--chat-message-color-reaction-counter":c.colorReactionCounter,"--chat-message-bg-color-reaction-me":c.backgroundReactionMe,"--chat-message-border-style-reaction-me":c.borderStyleReactionMe,"--chat-message-bg-color-reaction-hover-me":c.backgroundReactionHoverMe,"--chat-message-border-style-reaction-hover-me":c.borderStyleReactionHoverMe,"--chat-message-color-reaction-counter-me":c.colorReactionCounterMe,"--chat-message-bg-color-audio-record":c.backgroundAudioRecord,"--chat-message-bg-color-audio-line":c.backgroundAudioLine,"--chat-message-bg-color-audio-progress":c.backgroundAudioProgress,"--chat-message-bg-color-audio-progress-selector":c.backgroundAudioProgressSelector,"--chat-message-color-file-extension":c.colorFileExtension,"--chat-markdown-bg":l.background,"--chat-markdown-border":l.border,"--chat-markdown-color":l.color,"--chat-markdown-color-multi":l.colorMulti,"--chat-room-color-username":u.colorUsername,"--chat-room-color-message":u.colorMessage,"--chat-room-color-timestamp":u.colorTimestamp,"--chat-room-color-online":u.colorStateOnline,"--chat-room-color-offline":u.colorStateOffline,"--chat-room-bg-color-badge":u.backgroundCounterBadge,"--chat-room-color-badge":u.colorCounterBadge,"--chat-emoji-bg-color":f.background,"--chat-icon-color-search":d.search,"--chat-icon-color-add":d.add,"--chat-icon-color-toggle":d.toggle,"--chat-icon-color-menu":d.menu,"--chat-icon-color-close":d.close,"--chat-icon-color-close-image":d.closeImage,"--chat-icon-color-file":d.file,"--chat-icon-color-paperclip":d.paperclip,"--chat-icon-color-close-outline":d.closeOutline,"--chat-icon-color-close-preview":d.closePreview,"--chat-icon-color-send":d.send,"--chat-icon-color-send-disabled":d.sendDisabled,"--chat-icon-color-emoji":d.emoji,"--chat-icon-color-emoji-reaction":d.emojiReaction,"--chat-icon-color-document":d.document,"--chat-icon-color-pencil":d.pencil,"--chat-icon-color-checkmark":d.checkmark,"--chat-icon-color-checkmark-seen":d.checkmarkSeen,"--chat-icon-color-eye":d.eye,"--chat-icon-color-dropdown-message":d.dropdownMessage,"--chat-icon-bg-dropdown-message":d.dropdownMessageBackground,"--chat-icon-color-dropdown-room":d.dropdownRoom,"--chat-icon-color-dropdown-scroll":d.dropdownScroll,"--chat-icon-color-microphone":d.microphone,"--chat-icon-color-audio-play":d.audioPlay,"--chat-icon-color-audio-pause":d.audioPause,"--chat-icon-color-audio-cancel":d.audioCancel,"--chat-icon-color-audio-confirm":d.audioConfirm}},mr=n("4c1d"),gr=mr.roomsValidation,vr=mr.partcipantsValidation,_r={name:"ChatContainer",components:{RoomsList:he,Room:nr,MediaPreview:fr},props:{height:{type:String,default:"600px"},theme:{type:String,default:"light"},styles:{type:Object,default:function(){return{}}},responsiveBreakpoint:{type:Number,default:900},singleRoom:{type:Boolean,default:!1},roomsListOpened:{type:Boolean,default:!0},textMessages:{type:Object,default:null},currentUserId:{type:[String,Number],default:""},rooms:{type:Array,default:function(){return[]}},roomsOrder:{type:String,default:"desc"},loadingRooms:{type:Boolean,default:!1},roomsLoaded:{type:Boolean,default:!1},roomId:{type:[String,Number],default:null},loadFirstRoom:{type:Boolean,default:!0},messages:{type:Array,default:function(){return[]}},messagesLoaded:{type:Boolean,default:!1},roomActions:{type:Array,default:function(){return[]}},menuActions:{type:Array,default:function(){return[]}},messageActions:{type:Array,default:function(){return[{name:"replyMessage",title:"Reply"},{name:"editMessage",title:"Edit Message",onlyMe:!0},{name:"deleteMessage",title:"Delete Message",onlyMe:!0},{name:"selectMessages",title:"Select"}]}},messageSelectionActions:{type:Array,default:function(){return[]}},autoScroll:{type:Object,default:function(){return{send:{new:!0,newAfterScrollUp:!0},receive:{new:!0,newAfterScrollUp:!1}}}},showSearch:{type:Boolean,default:!0},showAddRoom:{type:Boolean,default:!0},showSendIcon:{type:Boolean,default:!0},showFiles:{type:Boolean,default:!0},showAudio:{type:Boolean,default:!0},audioBitRate:{type:Number,default:128},audioSampleRate:{type:Number,default:44100},showEmojis:{type:Boolean,default:!0},showReactionEmojis:{type:Boolean,default:!0},showNewMessagesDivider:{type:Boolean,default:!0},showFooter:{type:Boolean,default:!0},textFormatting:{type:Object,default:function(){return{disabled:!1,italic:"_",bold:"*",strike:"~",underline:"°",multilineCode:"```",inlineCode:"`"}}},linkOptions:{type:Object,default:function(){return{disabled:!1,target:"_blank",rel:null}}},roomInfoEnabled:{type:Boolean,default:!1},textareaActionEnabled:{type:Boolean,default:!1},textareaAutoFocus:{type:Boolean,default:!0},userTagsEnabled:{type:Boolean,default:!0},emojisSuggestionEnabled:{type:Boolean,default:!0},roomMessage:{type:String,default:""},scrollDistance:{type:Number,default:60},acceptedFiles:{type:String,default:"*"},templatesText:{type:Array,default:null},mediaPreviewEnabled:{type:Boolean,default:!0},usernameOptions:{type:Object,default:function(){return{minUsers:3,currentUser:!1}}}},emits:["toggle-rooms-list","room-info","fetch-messages","send-message","edit-message","delete-message","open-file","open-user-tag","open-failed-message","menu-action-handler","message-action-handler","send-message-reaction","typing-message","textarea-action-handler","fetch-more-rooms","add-room","room-action-handler","message-selection-action-handler"],data:function(){return{room:{},loadingMoreRooms:!1,showRoomsList:!0,isMobile:!1,showMediaPreview:!1,previewFile:{}}},computed:{t:function(){return l(l({},dr),this.textMessages)},cssVars:function(){var e=this,t=pr[this.theme],n={};return Object.keys(t).map((function(r){n[r]=l(l({},t[r]),e.styles[r]||{})})),hr(n)},orderedRooms:function(){var e=this;return this.rooms.slice().sort((function(t,n){var r=t.index||0,o=n.index||0;return"asc"===e.roomsOrder?r<o?-1:o<r?1:0:r>o?-1:o>r?1:0}))}},watch:{rooms:{immediate:!0,deep:!0,handler:function(e,t){var n=this;if(e[0]&&e.find((function(e){return e.roomId===n.room.roomId}))||(this.showRoomsList=!0),!this.loadingMoreRooms&&this.loadFirstRoom&&e[0]&&(!t||e.length!==t.length))if(this.roomId){var r=e.find((function(e){return e.roomId===n.roomId}))||{};this.fetchRoom({room:r})}else!this.isMobile||this.singleRoom?this.fetchRoom({room:this.orderedRooms[0]}):this.showRoomsList=!0}},loadingRooms:function(e){e&&(this.room={})},roomId:{immediate:!0,handler:function(e,t){if(e&&!this.loadingRooms&&this.rooms.length){var n=this.rooms.find((function(t){return t.roomId===e}));this.fetchRoom({room:n})}else t&&!e&&(this.room={})}},room:function(e){e&&0!==Object.entries(e).length&&(gr(e),e.users.forEach((function(e){vr(e)})))},roomsListOpened:function(e){this.showRoomsList=e}},created:function(){var e=this;this.updateResponsive(),window.addEventListener("resize",(function(t){t.isTrusted&&e.updateResponsive()}))},methods:{updateResponsive:function(){this.isMobile=window.innerWidth<this.responsiveBreakpoint},toggleRoomsList:function(){this.showRoomsList=!this.showRoomsList,this.isMobile&&(this.room={}),this.$emit("toggle-rooms-list",{opened:this.showRoomsList})},fetchRoom:function(e){var t=e.room;this.room=t,this.fetchMessages({reset:!0}),this.isMobile&&(this.showRoomsList=!1)},fetchMoreRooms:function(){this.$emit("fetch-more-rooms")},roomInfo:function(){this.$emit("room-info",this.room)},addRoom:function(){this.$emit("add-room")},fetchMessages:function(e){this.$emit("fetch-messages",{room:this.room,options:e})},sendMessage:function(e){this.$emit("send-message",l(l({},e),{},{roomId:this.room.roomId}))},editMessage:function(e){this.$emit("edit-message",l(l({},e),{},{roomId:this.room.roomId}))},deleteMessage:function(e){this.$emit("delete-message",{message:e,roomId:this.room.roomId})},openFile:function(e){var t=e.message,n=e.file;this.mediaPreviewEnabled&&"preview"===n.action?(this.previewFile=n.file,this.showMediaPreview=!0):this.$emit("open-file",{message:t,file:n})},openUserTag:function(e){var t=e.user;this.$emit("open-user-tag",{user:t})},openFailedMessage:function(e){var t=e.message;this.$emit("open-failed-message",{message:t,roomId:this.room.roomId})},menuActionHandler:function(e){this.$emit("menu-action-handler",{action:e,roomId:this.room.roomId})},roomActionHandler:function(e){var t=e.action,n=e.roomId;this.$emit("room-action-handler",{action:t,roomId:n})},messageActionHandler:function(e){this.$emit("message-action-handler",l(l({},e),{},{roomId:this.room.roomId}))},messageSelectionActionHandler:function(e){this.$emit("message-selection-action-handler",l(l({},e),{},{roomId:this.room.roomId}))},sendMessageReaction:function(e){this.$emit("send-message-reaction",l(l({},e),{},{roomId:this.room.roomId}))},typingMessage:function(e){this.$emit("typing-message",{message:e,roomId:this.room.roomId})},textareaActionHandler:function(e){this.$emit("textarea-action-handler",{message:e,roomId:this.room.roomId})}}},br=_r,yr=(n("42ca"),g(br,a,i,!1,null,null,null)),wr=yr.exports;Object.defineProperty(wr,"install",{configurable:!1,enumerable:!1,value:function(e){e.component("ChatWindow",wr)}});var xr=wr;t["default"]=xr},fc6a:function(e,t,n){var r=n("44ad"),o=n("1d80");e.exports=function(e){return r(o(e))}},fce3:function(e,t,n){var r=n("d039"),o=n("da84"),a=o.RegExp;e.exports=r((function(){var e=a(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},fdbf:function(e,t,n){var r=n("04f8");e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},ff81:function(e,t,n){var r=n("0206"),o=r.System,a=(r.VbrMode,r.Float,r.ShortBlock,r.Util,r.Arrays,r.new_array_n,r.new_byte,r.new_double,r.new_float,r.new_float_n,r.new_int),i=(r.new_int_n,r.assert,n("4b5e"));function s(e,t,n,r){this.l=a(1+i.SBMAX_l),this.s=a(1+i.SBMAX_s),this.psfb21=a(1+i.PSFB21),this.psfb12=a(1+i.PSFB12);var s=this.l,c=this.s;4==arguments.length&&(this.arrL=arguments[0],this.arrS=arguments[1],this.arr21=arguments[2],this.arr12=arguments[3],o.arraycopy(this.arrL,0,s,0,Math.min(this.arrL.length,this.l.length)),o.arraycopy(this.arrS,0,c,0,Math.min(this.arrS.length,this.s.length)),o.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),o.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}e.exports=s}})},9340:function(e,t,n){"use strict";n("4b56")},"94ca":function(e,t,n){var r=n("d039"),o=/#|\.prototype\./,a=function(e,t){var n=s[i(e)];return n==l||n!=c&&("function"==typeof t?r(t):!!t)},i=a.normalize=function(e){return String(e).replace(o,".").toLowerCase()},s=a.data={},c=a.NATIVE="N",l=a.POLYFILL="P";e.exports=a},"96cf":function(e,t,n){var r=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(j){c=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,a=Object.create(o.prototype),i=new R(r||[]);return a._invoke=M(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(j){return{type:"throw",arg:j}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",p="executing",h="completed",m={};function g(){}function v(){}function _(){}var b={};b[a]=function(){return this};var y=Object.getPrototypeOf,w=y&&y(y(O([])));w&&w!==n&&r.call(w,a)&&(b=w);var x=_.prototype=g.prototype=Object.create(b);function S(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(o,a,i,s){var c=u(e[o],e,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"===typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(f).then((function(e){l.value=e,i(l)}),(function(e){return n("throw",e,i,s)}))}s(c.arg)}var o;function a(e,r){function a(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(a,a):a()}this._invoke=a}function M(e,t,n){var r=f;return function(o,a){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw a;return C()}n.method=o,n.arg=a;while(1){var i=n.delegate;if(i){var s=A(i,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=u(e,t,n);if("normal"===c.type){if(r=n.done?h:d,c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=h,n.method="throw",n.arg=c.arg)}}}function A(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,A(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var a=o.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function R(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function O(e){if(e){var n=e[a];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){while(++o<e.length)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return i.next=i}}return{next:C}}function C(){return{value:t,done:!0}}return v.prototype=x.constructor=_,_.constructor=v,v.displayName=c(_,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,_):(e.__proto__=_,c(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},S(k.prototype),k.prototype[i]=function(){return this},e.AsyncIterator=k,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new k(l(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(x),c(x,s,"Generator"),x[a]=function(){return this},x.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){while(t.length){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=O,R.prototype={constructor:R,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(T),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(c&&l){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;T(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:O(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},"99af":function(e,t,n){"use strict";var r=n("23e7"),o=n("d039"),a=n("e8b5"),i=n("861d"),s=n("7b0b"),c=n("50c4"),l=n("8418"),u=n("65f0"),f=n("1dde"),d=n("b622"),p=n("2d00"),h=d("isConcatSpreadable"),m=9007199254740991,g="Maximum allowed index exceeded",v=p>=51||!o((function(){var e=[];return e[h]=!1,e.concat()[0]!==e})),_=f("concat"),b=function(e){if(!i(e))return!1;var t=e[h];return void 0!==t?!!t:a(e)},y=!v||!_;r({target:"Array",proto:!0,forced:y},{concat:function(e){var t,n,r,o,a,i=s(this),f=u(i,0),d=0;for(t=-1,r=arguments.length;t<r;t++)if(a=-1===t?i:arguments[t],b(a)){if(o=c(a.length),d+o>m)throw TypeError(g);for(n=0;n<o;n++,d++)n in a&&l(f,d,a[n])}else{if(d>=m)throw TypeError(g);l(f,d++,a)}return f.length=d,f}})},"9bdd":function(e,t,n){var r=n("825a"),o=n("2a62");e.exports=function(e,t,n,a){try{return a?t(r(n)[0],n[1]):t(n)}catch(i){throw o(e),i}}},"9bf2":function(e,t,n){var r=n("83ab"),o=n("0cfb"),a=n("825a"),i=n("c04e"),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(a(e),t=i(t,!0),a(n),o)try{return s(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"9ed3":function(e,t,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),a=n("5c6c"),i=n("d44e"),s=n("3f8c"),c=function(){return this};e.exports=function(e,t,n){var l=t+" Iterator";return e.prototype=o(r,{next:a(1,n)}),i(e,l,!1,!0),s[l]=c,e}},a4b4:function(e,t,n){var r=n("342f");e.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(e,t,n){"use strict";var r=n("23e7"),o=n("da84"),a=n("d066"),i=n("c430"),s=n("83ab"),c=n("4930"),l=n("fdbf"),u=n("d039"),f=n("5135"),d=n("e8b5"),p=n("861d"),h=n("825a"),m=n("7b0b"),g=n("fc6a"),v=n("c04e"),_=n("5c6c"),b=n("7c73"),y=n("df75"),w=n("241c"),x=n("057f"),S=n("7418"),k=n("06cf"),M=n("9bf2"),A=n("d1e7"),E=n("9112"),T=n("6eeb"),R=n("5692"),O=n("f772"),C=n("d012"),j=n("90e3"),B=n("b622"),I=n("e538"),P=n("746f"),L=n("d44e"),N=n("69f3"),D=n("b727").forEach,F=O("hidden"),H="Symbol",U="prototype",$=B("toPrimitive"),q=N.set,V=N.getterFor(H),z=Object[U],X=o.Symbol,Y=a("JSON","stringify"),G=k.f,W=M.f,K=x.f,Z=A.f,Q=R("symbols"),J=R("op-symbols"),ee=R("string-to-symbol-registry"),te=R("symbol-to-string-registry"),ne=R("wks"),re=o.QObject,oe=!re||!re[U]||!re[U].findChild,ae=s&&u((function(){return 7!=b(W({},"a",{get:function(){return W(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=G(z,t);r&&delete z[t],W(e,t,n),r&&e!==z&&W(z,t,r)}:W,ie=function(e,t){var n=Q[e]=b(X[U]);return q(n,{type:H,tag:e,description:t}),s||(n.description=t),n},se=l?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof X},ce=function(e,t,n){e===z&&ce(J,t,n),h(e);var r=v(t,!0);return h(n),f(Q,r)?(n.enumerable?(f(e,F)&&e[F][r]&&(e[F][r]=!1),n=b(n,{enumerable:_(0,!1)})):(f(e,F)||W(e,F,_(1,{})),e[F][r]=!0),ae(e,r,n)):W(e,r,n)},le=function(e,t){h(e);var n=g(t),r=y(n).concat(he(n));return D(r,(function(t){s&&!fe.call(n,t)||ce(e,t,n[t])})),e},ue=function(e,t){return void 0===t?b(e):le(b(e),t)},fe=function(e){var t=v(e,!0),n=Z.call(this,t);return!(this===z&&f(Q,t)&&!f(J,t))&&(!(n||!f(this,t)||!f(Q,t)||f(this,F)&&this[F][t])||n)},de=function(e,t){var n=g(e),r=v(t,!0);if(n!==z||!f(Q,r)||f(J,r)){var o=G(n,r);return!o||!f(Q,r)||f(n,F)&&n[F][r]||(o.enumerable=!0),o}},pe=function(e){var t=K(g(e)),n=[];return D(t,(function(e){f(Q,e)||f(C,e)||n.push(e)})),n},he=function(e){var t=e===z,n=K(t?J:g(e)),r=[];return D(n,(function(e){!f(Q,e)||t&&!f(z,e)||r.push(Q[e])})),r};if(c||(X=function(){if(this instanceof X)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=j(e),n=function(e){this===z&&n.call(J,e),f(this,F)&&f(this[F],t)&&(this[F][t]=!1),ae(this,t,_(1,e))};return s&&oe&&ae(z,t,{configurable:!0,set:n}),ie(t,e)},T(X[U],"toString",(function(){return V(this).tag})),T(X,"withoutSetter",(function(e){return ie(j(e),e)})),A.f=fe,M.f=ce,k.f=de,w.f=x.f=pe,S.f=he,I.f=function(e){return ie(B(e),e)},s&&(W(X[U],"description",{configurable:!0,get:function(){return V(this).description}}),i||T(z,"propertyIsEnumerable",fe,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:X}),D(y(ne),(function(e){P(e)})),r({target:H,stat:!0,forced:!c},{for:function(e){var t=String(e);if(f(ee,t))return ee[t];var n=X(t);return ee[t]=n,te[n]=t,n},keyFor:function(e){if(!se(e))throw TypeError(e+" is not a symbol");if(f(te,e))return te[e]},useSetter:function(){oe=!0},useSimple:function(){oe=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!s},{create:ue,defineProperty:ce,defineProperties:le,getOwnPropertyDescriptor:de}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:pe,getOwnPropertySymbols:he}),r({target:"Object",stat:!0,forced:u((function(){S.f(1)}))},{getOwnPropertySymbols:function(e){return S.f(m(e))}}),Y){var me=!c||u((function(){var e=X();return"[null]"!=Y([e])||"{}"!=Y({a:e})||"{}"!=Y(Object(e))}));r({target:"JSON",stat:!0,forced:me},{stringify:function(e,t,n){var r,o=[e],a=1;while(arguments.length>a)o.push(arguments[a++]);if(r=t,(p(t)||void 0!==e)&&!se(e))return d(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!se(t))return t}),o[1]=t,Y.apply(null,o)}})}X[U][$]||E(X[U],$,X[U].valueOf),L(X,H),C[F]=!0},a58e:function(e,t,n){"use strict";n("81da")},a630:function(e,t,n){var r=n("23e7"),o=n("4df4"),a=n("1c7e"),i=!a((function(e){Array.from(e)}));r({target:"Array",stat:!0,forced:i},{from:o})},a691:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},a79d:function(e,t,n){"use strict";var r=n("23e7"),o=n("c430"),a=n("fea9"),i=n("d039"),s=n("d066"),c=n("4840"),l=n("cdf9"),u=n("6eeb"),f=!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}));if(r({target:"Promise",proto:!0,real:!0,forced:f},{finally:function(e){var t=c(this,s("Promise")),n="function"==typeof e;return this.then(n?function(n){return l(t,e()).then((function(){return n}))}:e,n?function(n){return l(t,e()).then((function(){throw n}))}:e)}}),!o&&"function"==typeof a){var d=s("Promise").prototype["finally"];a.prototype["finally"]!==d&&u(a.prototype,"finally",d,{unsafe:!0})}},a9e3:function(e,t,n){"use strict";var r=n("83ab"),o=n("da84"),a=n("94ca"),i=n("6eeb"),s=n("5135"),c=n("c6b6"),l=n("7156"),u=n("c04e"),f=n("d039"),d=n("7c73"),p=n("241c").f,h=n("06cf").f,m=n("9bf2").f,g=n("58a8").trim,v="Number",_=o[v],b=_.prototype,y=c(d(b))==v,w=function(e){var t,n,r,o,a,i,s,c,l=u(e,!1);if("string"==typeof l&&l.length>2)if(l=g(l),t=l.charCodeAt(0),43===t||45===t){if(n=l.charCodeAt(2),88===n||120===n)return NaN}else if(48===t){switch(l.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(a=l.slice(2),i=a.length,s=0;s<i;s++)if(c=a.charCodeAt(s),c<48||c>o)return NaN;return parseInt(a,r)}return+l};if(a(v,!_(" 0o1")||!_("0b1")||_("+0x1"))){for(var x,S=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof S&&(y?f((function(){b.valueOf.call(n)})):c(n)!=v)?l(new _(w(t)),n,S):w(t)},k=r?p(_):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),M=0;k.length>M;M++)s(_,x=k[M])&&!s(S,x)&&m(S,x,h(_,x));S.prototype=b,b.constructor=S,i(o,v,S)}},ae93:function(e,t,n){"use strict";var r,o,a,i=n("d039"),s=n("e163"),c=n("9112"),l=n("5135"),u=n("b622"),f=n("c430"),d=u("iterator"),p=!1,h=function(){return this};[].keys&&(a=[].keys(),"next"in a?(o=s(s(a)),o!==Object.prototype&&(r=o)):p=!0);var m=void 0==r||i((function(){var e={};return r[d].call(e)!==e}));m&&(r={}),f&&!m||l(r,d)||c(r,d,h),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},b041:function(e,t,n){"use strict";var r=n("00ee"),o=n("f5df");e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(e,t,n){var r=n("83ab"),o=n("9bf2").f,a=Function.prototype,i=a.toString,s=/^\s*function ([^ (]*)/,c="name";r&&!(c in a)&&o(a,c,{configurable:!0,get:function(){try{return i.call(this).match(s)[1]}catch(e){return""}}})},b50d:function(e,t,n){"use strict";var r=n("c532"),o=n("467f"),a=n("7aac"),i=n("30b5"),s=n("83b9"),c=n("c345"),l=n("3934"),u=n("2d83");e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var g=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(g,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in p?c(p.getAllResponseHeaders()):null,a=e.responseType&&"text"!==e.responseType?p.response:p.responseText,i={data:a,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};o(t,n,i),p=null}},p.onabort=function(){p&&(n(u("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(u("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var v=(e.withCredentials||l(g))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(_){if("json"!==e.responseType)throw _}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),f||(f=null),p.send(f)}))}},b575:function(e,t,n){var r,o,a,i,s,c,l,u,f=n("da84"),d=n("06cf").f,p=n("2cf4").set,h=n("1cdc"),m=n("a4b4"),g=n("605d"),v=f.MutationObserver||f.WebKitMutationObserver,_=f.document,b=f.process,y=f.Promise,w=d(f,"queueMicrotask"),x=w&&w.value;x||(r=function(){var e,t;g&&(e=b.domain)&&e.exit();while(o){t=o.fn,o=o.next;try{t()}catch(n){throw o?i():a=void 0,n}}a=void 0,e&&e.enter()},h||g||m||!v||!_?y&&y.resolve?(l=y.resolve(void 0),l.constructor=y,u=l.then,i=function(){u.call(l,r)}):i=g?function(){b.nextTick(r)}:function(){p.call(f,r)}:(s=!0,c=_.createTextNode(""),new v(r).observe(c,{characterData:!0}),i=function(){c.data=s=!s})),e.exports=x||function(e){var t={fn:e,next:void 0};a&&(a.next=t),o||(o=t,i()),a=t}},b622:function(e,t,n){var r=n("da84"),o=n("5692"),a=n("5135"),i=n("90e3"),s=n("4930"),c=n("fdbf"),l=o("wks"),u=r.Symbol,f=c?u:u&&u.withoutSetter||i;e.exports=function(e){return a(l,e)&&(s||"string"==typeof l[e])||(s&&a(u,e)?l[e]=u[e]:l[e]=f("Symbol."+e)),l[e]}},b6a6:function(e,t,n){},b727:function(e,t,n){var r=n("0366"),o=n("44ad"),a=n("7b0b"),i=n("50c4"),s=n("65f0"),c=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,u=4==e,f=6==e,d=7==e,p=5==e||f;return function(h,m,g,v){for(var _,b,y=a(h),w=o(y),x=r(m,g,3),S=i(w.length),k=0,M=v||s,A=t?M(h,S):n||d?M(h,0):void 0;S>k;k++)if((p||k in w)&&(_=w[k],b=x(_,k,y),e))if(t)A[k]=b;else if(b)switch(e){case 3:return!0;case 5:return _;case 6:return k;case 2:c.call(A,_)}else switch(e){case 4:return!1;case 7:c.call(A,_)}return f?-1:l||u?u:A}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterOut:l(7)}},bc3a:function(e,t,n){e.exports=n("cee4")},c04e:function(e,t,n){var r=n("861d");e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},c345:function(e,t,n){"use strict";var r=n("c532"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,i={};return e?(r.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=r.trim(e.substr(0,a)).toLowerCase(),n=r.trim(e.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([n]):i[t]?i[t]+", "+n:n}})),i):i}},c401:function(e,t,n){"use strict";var r=n("c532");e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},c430:function(e,t){e.exports=!1},c532:function(e,t,n){"use strict";var r=n("1d2b"),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function i(e){return"undefined"===typeof e}function s(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function c(e){return"[object ArrayBuffer]"===o.call(e)}function l(e){return"undefined"!==typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function f(e){return"string"===typeof e}function d(e){return"number"===typeof e}function p(e){return null!==e&&"object"===typeof e}function h(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function m(e){return"[object Date]"===o.call(e)}function g(e){return"[object File]"===o.call(e)}function v(e){return"[object Blob]"===o.call(e)}function _(e){return"[object Function]"===o.call(e)}function b(e){return p(e)&&_(e.pipe)}function y(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function w(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function S(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}function k(){var e={};function t(t,n){h(e[n])&&h(t)?e[n]=k(e[n],t):h(t)?e[n]=k({},t):a(t)?e[n]=t.slice():e[n]=t}for(var n=0,r=arguments.length;n<r;n++)S(arguments[n],t);return e}function M(e,t,n){return S(t,(function(t,o){e[o]=n&&"function"===typeof t?r(t,n):t})),e}function A(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}e.exports={isArray:a,isArrayBuffer:c,isBuffer:s,isFormData:l,isArrayBufferView:u,isString:f,isNumber:d,isObject:p,isPlainObject:h,isUndefined:i,isDate:m,isFile:g,isBlob:v,isFunction:_,isStream:b,isURLSearchParams:y,isStandardBrowserEnv:x,forEach:S,merge:k,extend:M,trim:w,stripBOM:A}},c6b6:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},c6cd:function(e,t,n){var r=n("da84"),o=n("ce4e"),a="__core-js_shared__",i=r[a]||o(a,{});e.exports=i},c740:function(e,t,n){"use strict";var r=n("23e7"),o=n("b727").findIndex,a=n("44d2"),i="findIndex",s=!0;i in[]&&Array(1)[i]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),a(i)},c8af:function(e,t,n){"use strict";var r=n("c532");e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},ca84:function(e,t,n){var r=n("5135"),o=n("fc6a"),a=n("4d64").indexOf,i=n("d012");e.exports=function(e,t){var n,s=o(e),c=0,l=[];for(n in s)!r(i,n)&&r(s,n)&&l.push(n);while(t.length>c)r(s,n=t[c++])&&(~a(l,n)||l.push(n));return l}},cc12:function(e,t,n){var r=n("da84"),o=n("861d"),a=r.document,i=o(a)&&o(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},cca6:function(e,t,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(e,t,n){var r=n("825a"),o=n("861d"),a=n("f069");e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=a.f(e),i=n.resolve;return i(t),n.promise}},ce4e:function(e,t,n){var r=n("da84"),o=n("9112");e.exports=function(e,t){try{o(r,e,t)}catch(n){r[e]=t}return t}},cee4:function(e,t,n){"use strict";var r=n("c532"),o=n("1d2b"),a=n("0a06"),i=n("4a7b"),s=n("2444");function c(e){var t=new a(e),n=o(a.prototype.request,t);return r.extend(n,a.prototype,t),r.extend(n,t),n}var l=c(s);l.Axios=a,l.create=function(e){return c(i(l.defaults,e))},l.Cancel=n("7a77"),l.CancelToken=n("8df4"),l.isCancel=n("2e67"),l.all=function(e){return Promise.all(e)},l.spread=n("0df6"),l.isAxiosError=n("5f02"),e.exports=l,e.exports.default=l},d012:function(e,t){e.exports={}},d039:function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},d066:function(e,t,n){var r=n("428f"),o=n("da84"),a=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?a(r[e])||a(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},d1e7:function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,a=o&&!r.call({1:2},1);t.f=a?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},d28b:function(e,t,n){var r=n("746f");r("iterator")},d2bb:function(e,t,n){var r=n("825a"),o=n("3bbe");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,e.call(n,[]),t=n instanceof Array}catch(a){}return function(n,a){return r(n),o(a),t?e.call(n,a):n.__proto__=a,n}}():void 0)},d3b7:function(e,t,n){var r=n("00ee"),o=n("6eeb"),a=n("b041");r||o(Object.prototype,"toString",a,{unsafe:!0})},d44e:function(e,t,n){var r=n("9bf2").f,o=n("5135"),a=n("b622"),i=a("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},d925:function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},da84:function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},ddb0:function(e,t,n){var r=n("da84"),o=n("fdbc"),a=n("e260"),i=n("9112"),s=n("b622"),c=s("iterator"),l=s("toStringTag"),u=a.values;for(var f in o){var d=r[f],p=d&&d.prototype;if(p){if(p[c]!==u)try{i(p,c,u)}catch(m){p[c]=u}if(p[l]||i(p,l,f),o[f])for(var h in a)if(p[h]!==a[h])try{i(p,h,a[h])}catch(m){p[h]=a[h]}}}},df75:function(e,t,n){var r=n("ca84"),o=n("7839");e.exports=Object.keys||function(e){return r(e,o)}},df7c:function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,o=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!o){n=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":e.slice(n,r)}function o(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}t.resolve=function(){for(var t="",r=!1,a=arguments.length-1;a>=-1&&!r;a--){var i=a>=0?arguments[a]:e.cwd();if("string"!==typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(t=i+"/"+t,r="/"===i.charAt(0))}return t=n(o(t.split("/"),(function(e){return!!e})),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),i="/"===a(e,-1);return e=n(o(e.split("/"),(function(e){return!!e})),!r).join("/"),e||r||(e="."),e&&i&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(o(e,(function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t<e.length;t++)if(""!==e[t])break;for(var n=e.length-1;n>=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var o=r(e.split("/")),a=r(n.split("/")),i=Math.min(o.length,a.length),s=i,c=0;c<i;c++)if(o[c]!==a[c]){s=c;break}var l=[];for(c=s;c<o.length;c++)l.push("..");return l=l.concat(a.slice(s)),l.join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){if("string"!==typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,o=!0,a=e.length-1;a>=1;--a)if(t=e.charCodeAt(a),47===t){if(!o){r=a;break}}else o=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,o=!0,a=0,i=e.length-1;i>=0;--i){var s=e.charCodeAt(i);if(47!==s)-1===r&&(o=!1,r=i+1),46===s?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){n=i+1;break}}return-1===t||-1===r||0===a||1===a&&t===r-1&&t===n+1?"":e.slice(t,r)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("4362"))},e01a:function(e,t,n){"use strict";var r=n("23e7"),o=n("83ab"),a=n("da84"),i=n("5135"),s=n("861d"),c=n("9bf2").f,l=n("e893"),u=a.Symbol;if(o&&"function"==typeof u&&(!("description"in u.prototype)||void 0!==u().description)){var f={},d=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof d?new u(e):void 0===e?u():u(e);return""===e&&(f[t]=!0),t};l(d,u);var p=d.prototype=u.prototype;p.constructor=d;var h=p.toString,m="Symbol(test)"==String(u("test")),g=/^Symbol\((.*)\)[^)]+$/;c(p,"description",{configurable:!0,get:function(){var e=s(this)?this.valueOf():this,t=h.call(e);if(i(f,e))return"";var n=m?t.slice(7,-1):t.replace(g,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:d})}},e163:function(e,t,n){var r=n("5135"),o=n("7b0b"),a=n("f772"),i=n("e177"),s=a("IE_PROTO"),c=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=o(e),r(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?c:null}},e177:function(e,t,n){var r=n("d039");e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},e260:function(e,t,n){"use strict";var r=n("fc6a"),o=n("44d2"),a=n("3f8c"),i=n("69f3"),s=n("7dd0"),c="Array Iterator",l=i.set,u=i.getterFor(c);e.exports=s(Array,"Array",(function(e,t){l(this,{type:c,target:r(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),a.Arguments=a.Array,o("keys"),o("values"),o("entries")},e2cc:function(e,t,n){var r=n("6eeb");e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},e538:function(e,t,n){var r=n("b622");t.f=r},e667:function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},e683:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},e6cf:function(e,t,n){"use strict";var r,o,a,i,s=n("23e7"),c=n("c430"),l=n("da84"),u=n("d066"),f=n("fea9"),d=n("6eeb"),p=n("e2cc"),h=n("d2bb"),m=n("d44e"),g=n("2626"),v=n("861d"),_=n("1c0b"),b=n("19aa"),y=n("8925"),w=n("2266"),x=n("1c7e"),S=n("4840"),k=n("2cf4").set,M=n("b575"),A=n("cdf9"),E=n("44de"),T=n("f069"),R=n("e667"),O=n("69f3"),C=n("94ca"),j=n("b622"),B=n("6069"),I=n("605d"),P=n("2d00"),L=j("species"),N="Promise",D=O.get,F=O.set,H=O.getterFor(N),U=f&&f.prototype,$=f,q=U,V=l.TypeError,z=l.document,X=l.process,Y=T.f,G=Y,W=!!(z&&z.createEvent&&l.dispatchEvent),K="function"==typeof PromiseRejectionEvent,Z="unhandledrejection",Q="rejectionhandled",J=0,ee=1,te=2,ne=1,re=2,oe=!1,ae=C(N,(function(){var e=y($)!==String($);if(!e&&66===P)return!0;if(c&&!q["finally"])return!0;if(P>=51&&/native code/.test($))return!1;var t=new $((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))},r=t.constructor={};return r[L]=n,oe=t.then((function(){}))instanceof n,!oe||!e&&B&&!K})),ie=ae||!x((function(e){$.all(e)["catch"]((function(){}))})),se=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},ce=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;M((function(){var r=e.value,o=e.state==ee,a=0;while(n.length>a){var i,s,c,l=n[a++],u=o?l.ok:l.fail,f=l.resolve,d=l.reject,p=l.domain;try{u?(o||(e.rejection===re&&de(e),e.rejection=ne),!0===u?i=r:(p&&p.enter(),i=u(r),p&&(p.exit(),c=!0)),i===l.promise?d(V("Promise-chain cycle")):(s=se(i))?s.call(i,f,d):f(i)):d(r)}catch(h){p&&!c&&p.exit(),d(h)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&ue(e)}))}},le=function(e,t,n){var r,o;W?(r=z.createEvent("Event"),r.promise=t,r.reason=n,r.initEvent(e,!1,!0),l.dispatchEvent(r)):r={promise:t,reason:n},!K&&(o=l["on"+e])?o(r):e===Z&&E("Unhandled promise rejection",n)},ue=function(e){k.call(l,(function(){var t,n=e.facade,r=e.value,o=fe(e);if(o&&(t=R((function(){I?X.emit("unhandledRejection",r,n):le(Z,n,r)})),e.rejection=I||fe(e)?re:ne,t.error))throw t.value}))},fe=function(e){return e.rejection!==ne&&!e.parent},de=function(e){k.call(l,(function(){var t=e.facade;I?X.emit("rejectionHandled",t):le(Q,t,e.value)}))},pe=function(e,t,n){return function(r){e(t,r,n)}},he=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=te,ce(e,!0))},me=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw V("Promise can't be resolved itself");var r=se(t);r?M((function(){var n={done:!1};try{r.call(t,pe(me,n,e),pe(he,n,e))}catch(o){he(n,o,e)}})):(e.value=t,e.state=ee,ce(e,!1))}catch(o){he({done:!1},o,e)}}};if(ae&&($=function(e){b(this,$,N),_(e),r.call(this);var t=D(this);try{e(pe(me,t),pe(he,t))}catch(n){he(t,n)}},q=$.prototype,r=function(e){F(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=p(q,{then:function(e,t){var n=H(this),r=Y(S(this,$));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=I?X.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&ce(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r,t=D(e);this.promise=e,this.resolve=pe(me,t),this.reject=pe(he,t)},T.f=Y=function(e){return e===$||e===a?new o(e):G(e)},!c&&"function"==typeof f&&U!==Object.prototype)){i=U.then,oe||(d(U,"then",(function(e,t){var n=this;return new $((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),d(U,"catch",q["catch"],{unsafe:!0}));try{delete U.constructor}catch(ge){}h&&h(U,q)}s({global:!0,wrap:!0,forced:ae},{Promise:$}),m($,N,!1,!0),g(N),a=u(N),s({target:N,stat:!0,forced:ae},{reject:function(e){var t=Y(this);return t.reject.call(void 0,e),t.promise}}),s({target:N,stat:!0,forced:c||ae},{resolve:function(e){return A(c&&this===a?$:this,e)}}),s({target:N,stat:!0,forced:ie},{all:function(e){var t=this,n=Y(t),r=n.resolve,o=n.reject,a=R((function(){var n=_(t.resolve),a=[],i=0,s=1;w(e,(function(e){var c=i++,l=!1;a.push(void 0),s++,n.call(t,e).then((function(e){l||(l=!0,a[c]=e,--s||r(a))}),o)})),--s||r(a)}));return a.error&&o(a.value),n.promise},race:function(e){var t=this,n=Y(t),r=n.reject,o=R((function(){var o=_(t.resolve);w(e,(function(e){o.call(t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(e,t,n){var r=n("5135"),o=n("56ef"),a=n("06cf"),i=n("9bf2");e.exports=function(e,t){for(var n=o(t),s=i.f,c=a.f,l=0;l<n.length;l++){var u=n[l];r(e,u)||s(e,u,c(t,u))}}},e8b5:function(e,t,n){var r=n("c6b6");e.exports=Array.isArray||function(e){return"Array"==r(e)}},e95a:function(e,t,n){var r=n("b622"),o=n("3f8c"),a=r("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||i[a]===e)}},f069:function(e,t,n){"use strict";var r=n("1c0b"),o=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},f5df:function(e,t,n){var r=n("00ee"),o=n("c6b6"),a=n("b622"),i=a("toStringTag"),s="Arguments"==o(function(){return arguments}()),c=function(e,t){try{return e[t]}catch(n){}};e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=c(t=Object(e),i))?n:s?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},f6b4:function(e,t,n){"use strict";var r=n("c532");function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},f772:function(e,t,n){var r=n("5692"),o=n("90e3"),a=r("keys");e.exports=function(e){return a[e]||(a[e]=o(e))}},fb6a:function(e,t,n){"use strict";var r=n("23e7"),o=n("861d"),a=n("e8b5"),i=n("23cb"),s=n("50c4"),c=n("fc6a"),l=n("8418"),u=n("b622"),f=n("1dde"),d=f("slice"),p=u("species"),h=[].slice,m=Math.max;r({target:"Array",proto:!0,forced:!d},{slice:function(e,t){var n,r,u,f=c(this),d=s(f.length),g=i(e,d),v=i(void 0===t?d:t,d);if(a(f)&&(n=f.constructor,"function"!=typeof n||n!==Array&&!a(n.prototype)?o(n)&&(n=n[p],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return h.call(f,g,v);for(r=new(void 0===n?Array:n)(m(v-g,0)),u=0;g<v;g++,u++)g in f&&l(r,u,f[g]);return r.length=u,r}})},fc6a:function(e,t,n){var r=n("44ad"),o=n("1d80");e.exports=function(e){return r(o(e))}},fdbc:function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(e,t,n){var r=n("4930");e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fea9:function(e,t,n){var r=n("da84");e.exports=r.Promise}});
+* @vue/compat v3.4.15
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/
+function e(e,t){const n=new Set(e.split(","));return t?e=>n.has(e.toLowerCase()):e=>n.has(e)}const t={},o=[],r=()=>{},s=()=>!1,i=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),a=e=>e.startsWith("onUpdate:"),l=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},u=Object.prototype.hasOwnProperty,d=(e,t)=>u.call(e,t),f=Array.isArray,p=e=>"[object Map]"===k(e),h=e=>"[object Set]"===k(e),m=e=>"[object Date]"===k(e),g=e=>"[object RegExp]"===k(e),v=e=>"function"===typeof e,_=e=>"string"===typeof e,b=e=>"symbol"===typeof e,y=e=>null!==e&&"object"===typeof e,x=e=>(y(e)||v(e))&&v(e.then)&&v(e.catch),w=Object.prototype.toString,k=e=>w.call(e),S=e=>k(e).slice(8,-1),E=e=>"[object Object]"===k(e),T=e=>_(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,M=e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),A=e=>{const t=Object.create(null);return n=>{const o=t[n];return o||(t[n]=e(n))}},R=/-(\w)/g,C=A((e=>e.replace(R,((e,t)=>t?t.toUpperCase():"")))),O=/\B([A-Z])/g,I=A((e=>e.replace(O,"-$1").toLowerCase())),B=A((e=>e.charAt(0).toUpperCase()+e.slice(1))),P=A((e=>{const t=e?`on${B(e)}`:"";return t})),L=(e,t)=>!Object.is(e,t),N=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},j=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},F=e=>{const t=parseFloat(e);return isNaN(t)?e:t},D=e=>{const t=_(e)?Number(e):NaN;return isNaN(t)?e:t};let H;const U=()=>H||(H="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{}),V="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error",$=e(V);function z(e){if(f(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=_(o)?G(o):z(o);if(r)for(const e in r)t[e]=r[e]}return t}if(_(e)||y(e))return e}const q=/;(?![^(]*\))/g,Y=/:([^]+)/,X=/\/\*[^]*?\*\//g;function G(e){const t={};return e.replace(X,"").split(q).forEach((e=>{if(e){const n=e.split(Y);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function W(e){let t="";if(_(e))t=e;else if(f(e))for(let n=0;n<e.length;n++){const o=W(e[n]);o&&(t+=o+" ")}else if(y(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function K(e){if(!e)return null;let{class:t,style:n}=e;return t&&!_(t)&&(e.class=W(t)),n&&(e.style=z(n)),e}const Z="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Q=e(Z);function J(e){return!!e||""===e}function ee(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=te(e[o],t[o]);return n}function te(e,t){if(e===t)return!0;let n=m(e),o=m(t);if(n||o)return!(!n||!o)&&e.getTime()===t.getTime();if(n=b(e),o=b(t),n||o)return e===t;if(n=f(e),o=f(t),n||o)return!(!n||!o)&&ee(e,t);if(n=y(e),o=y(t),n||o){if(!n||!o)return!1;const r=Object.keys(e).length,s=Object.keys(t).length;if(r!==s)return!1;for(const n in e){const o=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(o&&!r||!o&&r||!te(e[n],t[n]))return!1}}return String(e)===String(t)}function ne(e,t){return e.findIndex((e=>te(e,t)))}const oe=e=>_(e)?e:null==e?"":f(e)||y(e)&&(e.toString===w||!v(e.toString))?JSON.stringify(e,re,2):String(e),re=(e,t)=>t&&t.__v_isRef?re(e,t.value):p(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n],o)=>(e[se(t,o)+" =>"]=n,e)),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map((e=>se(e)))}:b(t)?se(t):!y(t)||f(t)||E(t)?t:String(t),se=(e,t="")=>{var n;return b(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ie,ae;class le{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ie,!e&&ie&&(this.index=(ie.scopes||(ie.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=ie;try{return ie=this,e()}finally{ie=t}}else 0}on(){ie=this}off(){ie=this.parent}stop(e){if(this._active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this._active=!1}}}function ce(e){return new le(e)}function ue(e,t=ie){t&&t.active&&t.effects.push(e)}function de(){return ie}function fe(e){ie&&ie.cleanups.push(e)}class pe{constructor(e,t,n,o){this.fn=e,this.trigger=t,this.scheduler=n,this.active=!0,this.deps=[],this._dirtyLevel=2,this._trackId=0,this._runnings=0,this._shouldSchedule=!1,this._depsLength=0,ue(this,o)}get dirty(){if(1===this._dirtyLevel){ke();for(let e=0;e<this._depsLength;e++){const t=this.deps[e];if(t.computed&&(he(t.computed),this._dirtyLevel>=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),Se()}return this._dirtyLevel>=2}set dirty(e){this._dirtyLevel=e?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=ye,t=ae;try{return ye=!0,ae=this,this._runnings++,me(this),this.fn()}finally{ge(this),this._runnings--,ae=t,ye=e}}stop(){var e;this.active&&(me(this),ge(this),null==(e=this.onStop)||e.call(this),this.active=!1)}}function he(e){return e.value}function me(e){e._trackId++,e._depsLength=0}function ge(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t<e.deps.length;t++)ve(e.deps[t],e);e.deps.length=e._depsLength}}function ve(e,t){const n=e.get(t);void 0!==n&&t._trackId!==n&&(e.delete(t),0===e.size&&e.cleanup())}function _e(e,t){e.effect instanceof pe&&(e=e.effect.fn);const n=new pe(e,r,(()=>{n.dirty&&n.run()}));t&&(l(n,t),t.scope&&ue(n,t.scope)),t&&t.lazy||n.run();const o=n.run.bind(n);return o.effect=n,o}function be(e){e.effect.stop()}let ye=!0,xe=0;const we=[];function ke(){we.push(ye),ye=!1}function Se(){const e=we.pop();ye=void 0===e||e}function Ee(){xe++}function Te(){xe--;while(!xe&&Ae.length)Ae.shift()()}function Me(e,t,n){if(t.get(e)!==e._trackId){t.set(e,e._trackId);const n=e.deps[e._depsLength];n!==t?(n&&ve(n,e),e.deps[e._depsLength++]=t):e._depsLength++}}const Ae=[];function Re(e,t,n){Ee();for(const o of e.keys())if(o._dirtyLevel<t&&e.get(o)===o._trackId){const e=o._dirtyLevel;o._dirtyLevel=t,0===e&&(o._shouldSchedule=!0,o.trigger())}Ce(e),Te()}function Ce(e){for(const t of e.keys())t.scheduler&&t._shouldSchedule&&(!t._runnings||t.allowRecurse)&&e.get(t)===t._trackId&&(t._shouldSchedule=!1,Ae.push(t.scheduler))}const Oe=(e,t)=>{const n=new Map;return n.cleanup=e,n.computed=t,n},Ie=new WeakMap,Be=Symbol(""),Pe=Symbol("");function Le(e,t,n){if(ye&&ae){let t=Ie.get(e);t||Ie.set(e,t=new Map);let o=t.get(n);o||t.set(n,o=Oe((()=>t.delete(n)))),Me(ae,o,void 0)}}function Ne(e,t,n,o,r,s){const i=Ie.get(e);if(!i)return;let a=[];if("clear"===t)a=[...i.values()];else if("length"===n&&f(e)){const e=Number(o);i.forEach(((t,n)=>{("length"===n||!b(n)&&n>=e)&&a.push(t)}))}else switch(void 0!==n&&a.push(i.get(n)),t){case"add":f(e)?T(n)&&a.push(i.get("length")):(a.push(i.get(Be)),p(e)&&a.push(i.get(Pe)));break;case"delete":f(e)||(a.push(i.get(Be)),p(e)&&a.push(i.get(Pe)));break;case"set":p(e)&&a.push(i.get(Be));break}Ee();for(const l of a)l&&Re(l,2,void 0);Te()}function je(e,t){var n;return null==(n=Ie.get(e))?void 0:n.get(t)}const Fe=e("__proto__,__v_isRef,__isVue"),De=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(b)),He=Ue();function Ue(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=Bt(this);for(let t=0,r=this.length;t<r;t++)Le(n,"get",t+"");const o=n[t](...e);return-1===o||!1===o?n[t](...e.map(Bt)):o}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){ke(),Ee();const n=Bt(this)[t].apply(this,e);return Te(),Se(),n}})),e}function Ve(e){const t=Bt(this);return Le(t,"has",e),t.hasOwnProperty(e)}class $e{constructor(e=!1,t=!1){this._isReadonly=e,this._shallow=t}get(e,t,n){const o=this._isReadonly,r=this._shallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(o?r?xt:yt:r?bt:_t).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const s=f(e);if(!o){if(s&&d(He,t))return Reflect.get(He,t,n);if("hasOwnProperty"===t)return Ve}const i=Reflect.get(e,t,n);return(b(t)?De.has(t):Fe(t))?i:(o||Le(e,"get",t),r?i:Ut(i)?s&&T(t)?i:i.value:y(i)?o?Tt(i):St(i):i)}}class ze extends $e{constructor(e=!1){super(!1,e)}set(e,t,n,o){let r=e[t];if(!this._shallow){const t=Ct(r);if(Ot(n)||Ct(n)||(r=Bt(r),n=Bt(n)),!f(e)&&Ut(r)&&!Ut(n))return!t&&(r.value=n,!0)}const s=f(e)&&T(t)?Number(t)<e.length:d(e,t),i=Reflect.set(e,t,n,o);return e===Bt(o)&&(s?L(n,r)&&Ne(e,"set",t,n,r):Ne(e,"add",t,n)),i}deleteProperty(e,t){const n=d(e,t),o=e[t],r=Reflect.deleteProperty(e,t);return r&&n&&Ne(e,"delete",t,void 0,o),r}has(e,t){const n=Reflect.has(e,t);return b(t)&&De.has(t)||Le(e,"has",t),n}ownKeys(e){return Le(e,"iterate",f(e)?"length":Be),Reflect.ownKeys(e)}}class qe extends $e{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const Ye=new ze,Xe=new qe,Ge=new ze(!0),We=new qe(!0),Ke=e=>e,Ze=e=>Reflect.getPrototypeOf(e);function Qe(e,t,n=!1,o=!1){e=e["__v_raw"];const r=Bt(e),s=Bt(t);n||(L(t,s)&&Le(r,"get",t),Le(r,"get",s));const{has:i}=Ze(r),a=o?Ke:n?Nt:Lt;return i.call(r,t)?a(e.get(t)):i.call(r,s)?a(e.get(s)):void(e!==r&&e.get(t))}function Je(e,t=!1){const n=this["__v_raw"],o=Bt(n),r=Bt(e);return t||(L(e,r)&&Le(o,"has",e),Le(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function et(e,t=!1){return e=e["__v_raw"],!t&&Le(Bt(e),"iterate",Be),Reflect.get(e,"size",e)}function tt(e){e=Bt(e);const t=Bt(this),n=Ze(t),o=n.has.call(t,e);return o||(t.add(e),Ne(t,"add",e,e)),this}function nt(e,t){t=Bt(t);const n=Bt(this),{has:o,get:r}=Ze(n);let s=o.call(n,e);s||(e=Bt(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?L(t,i)&&Ne(n,"set",e,t,i):Ne(n,"add",e,t),this}function ot(e){const t=Bt(this),{has:n,get:o}=Ze(t);let r=n.call(t,e);r||(e=Bt(e),r=n.call(t,e));const s=o?o.call(t,e):void 0,i=t.delete(e);return r&&Ne(t,"delete",e,void 0,s),i}function rt(){const e=Bt(this),t=0!==e.size,n=void 0,o=e.clear();return t&&Ne(e,"clear",void 0,void 0,n),o}function st(e,t){return function(n,o){const r=this,s=r["__v_raw"],i=Bt(s),a=t?Ke:e?Nt:Lt;return!e&&Le(i,"iterate",Be),s.forEach(((e,t)=>n.call(o,a(e),a(t),r)))}}function it(e,t,n){return function(...o){const r=this["__v_raw"],s=Bt(r),i=p(s),a="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,c=r[e](...o),u=n?Ke:t?Nt:Lt;return!t&&Le(s,"iterate",l?Pe:Be),{next(){const{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function at(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function lt(){const e={get(e){return Qe(this,e)},get size(){return et(this)},has:Je,add:tt,set:nt,delete:ot,clear:rt,forEach:st(!1,!1)},t={get(e){return Qe(this,e,!1,!0)},get size(){return et(this)},has:Je,add:tt,set:nt,delete:ot,clear:rt,forEach:st(!1,!0)},n={get(e){return Qe(this,e,!0)},get size(){return et(this,!0)},has(e){return Je.call(this,e,!0)},add:at("add"),set:at("set"),delete:at("delete"),clear:at("clear"),forEach:st(!0,!1)},o={get(e){return Qe(this,e,!0,!0)},get size(){return et(this,!0)},has(e){return Je.call(this,e,!0)},add:at("add"),set:at("set"),delete:at("delete"),clear:at("clear"),forEach:st(!0,!0)},r=["keys","values","entries",Symbol.iterator];return r.forEach((r=>{e[r]=it(r,!1,!1),n[r]=it(r,!0,!1),t[r]=it(r,!1,!0),o[r]=it(r,!0,!0)})),[e,n,t,o]}const[ct,ut,dt,ft]=lt();function pt(e,t){const n=t?e?ft:dt:e?ut:ct;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(d(n,o)&&o in t?n:t,o,r)}const ht={get:pt(!1,!1)},mt={get:pt(!1,!0)},gt={get:pt(!0,!1)},vt={get:pt(!0,!0)};const _t=new WeakMap,bt=new WeakMap,yt=new WeakMap,xt=new WeakMap;function wt(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kt(e){return e["__v_skip"]||!Object.isExtensible(e)?0:wt(S(e))}function St(e){return Ct(e)?e:At(e,!1,Ye,ht,_t)}function Et(e){return At(e,!1,Ge,mt,bt)}function Tt(e){return At(e,!0,Xe,gt,yt)}function Mt(e){return At(e,!0,We,vt,xt)}function At(e,t,n,o,r){if(!y(e))return e;if(e["__v_raw"]&&(!t||!e["__v_isReactive"]))return e;const s=r.get(e);if(s)return s;const i=kt(e);if(0===i)return e;const a=new Proxy(e,2===i?o:n);return r.set(e,a),a}function Rt(e){return Ct(e)?Rt(e["__v_raw"]):!(!e||!e["__v_isReactive"])}function Ct(e){return!(!e||!e["__v_isReadonly"])}function Ot(e){return!(!e||!e["__v_isShallow"])}function It(e){return Rt(e)||Ct(e)}function Bt(e){const t=e&&e["__v_raw"];return t?Bt(t):e}function Pt(e){return j(e,"__v_skip",!0),e}const Lt=e=>y(e)?St(e):e,Nt=e=>y(e)?Tt(e):e;class jt{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this["__v_isReadonly"]=!1,this.effect=new pe((()=>e(this._value)),(()=>Ht(this,1)),(()=>this.dep&&Ce(this.dep))),this.effect.computed=this,this.effect.active=this._cacheable=!o,this["__v_isReadonly"]=n}get value(){const e=Bt(this);return e._cacheable&&!e.effect.dirty||L(e._value,e._value=e.effect.run())&&Ht(e,2),Dt(e),e.effect._dirtyLevel>=1&&Ht(e,1),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function Ft(e,t,n=!1){let o,s;const i=v(e);i?(o=e,s=r):(o=e.get,s=e.set);const a=new jt(o,s,i||!s,n);return a}function Dt(e){ye&&ae&&(e=Bt(e),Me(ae,e.dep||(e.dep=Oe((()=>e.dep=void 0),e instanceof jt?e:void 0)),void 0))}function Ht(e,t=2,n){e=Bt(e);const o=e.dep;o&&Re(o,t,void 0)}function Ut(e){return!(!e||!0!==e.__v_isRef)}function Vt(e){return zt(e,!1)}function $t(e){return zt(e,!0)}function zt(e,t){return Ut(e)?e:new qt(e,t)}class qt{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Bt(e),this._value=t?e:Lt(e)}get value(){return Dt(this),this._value}set value(e){const t=this.__v_isShallow||Ot(e)||Ct(e);e=t?e:Bt(e),L(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Lt(e),Ht(this,2,e))}}function Yt(e){Ht(e,2,void 0)}function Xt(e){return Ut(e)?e.value:e}function Gt(e){return v(e)?e():Xt(e)}const Wt={get:(e,t,n)=>Xt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ut(r)&&!Ut(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Kt(e){return Rt(e)?e:new Proxy(e,Wt)}class Zt{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>Dt(this)),(()=>Ht(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}function Qt(e){return new Zt(e)}function Jt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=on(e,n);return t}class en{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return je(Bt(this._object),this._key)}}class tn{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function nn(e,t,n){return Ut(e)?e:v(e)?new tn(e):y(e)&&arguments.length>1?on(e,t,n):Vt(e)}function on(e,t,n){const o=e[t];return Ut(o)?o:new en(e,t,n)}const rn={GET:"get",HAS:"has",ITERATE:"iterate"},sn={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"};function an(e,t){}const ln={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",WATCH_GETTER:2,2:"WATCH_GETTER",WATCH_CALLBACK:3,3:"WATCH_CALLBACK",WATCH_CLEANUP:4,4:"WATCH_CLEANUP",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER"},cn={["sp"]:"serverPrefetch hook",["bc"]:"beforeCreate hook",["c"]:"created hook",["bm"]:"beforeMount hook",["m"]:"mounted hook",["bu"]:"beforeUpdate hook",["u"]:"updated",["bum"]:"beforeUnmount hook",["um"]:"unmounted hook",["a"]:"activated hook",["da"]:"deactivated hook",["ec"]:"errorCaptured hook",["rtc"]:"renderTracked hook",["rtg"]:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."};function un(e,t,n,o){let r;try{r=o?e(...o):e()}catch(s){fn(s,t,n)}return r}function dn(e,t,n,o){if(v(e)){const r=un(e,t,n,o);return r&&x(r)&&r.catch((e=>{fn(e,t,n)})),r}const r=[];for(let s=0;s<e.length;s++)r.push(dn(e[s],t,n,o));return r}function fn(e,t,n,o=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;while(o){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return;o=o.parent}const i=t.appContext.config.errorHandler;if(i)return void un(i,null,10,[e,r,s])}pn(e,n,r,o)}function pn(e,t,n,o=!0){console.error(e)}let hn=!1,mn=!1;const gn=[];let vn=0;const _n=[];let bn=null,yn=0;const xn=Promise.resolve();let wn=null;function kn(e){const t=wn||xn;return e?t.then(this?e.bind(this):e):t}function Sn(e){let t=vn+1,n=gn.length;while(t<n){const o=t+n>>>1,r=gn[o],s=On(r);s<e||s===e&&r.pre?t=o+1:n=o}return t}function En(e){gn.length&&gn.includes(e,hn&&e.allowRecurse?vn+1:vn)||(null==e.id?gn.push(e):gn.splice(Sn(e.id),0,e),Tn())}function Tn(){hn||mn||(mn=!0,wn=xn.then(Bn))}function Mn(e){const t=gn.indexOf(e);t>vn&&gn.splice(t,1)}function An(e){f(e)?_n.push(...e):bn&&bn.includes(e,e.allowRecurse?yn+1:yn)||_n.push(e),Tn()}function Rn(e,t,n=(hn?vn+1:0)){for(0;n<gn.length;n++){const t=gn[n];if(t&&t.pre){if(e&&t.id!==e.uid)continue;0,gn.splice(n,1),n--,t()}}}function Cn(e){if(_n.length){const e=[...new Set(_n)].sort(((e,t)=>On(e)-On(t)));if(_n.length=0,bn)return void bn.push(...e);for(bn=e,yn=0;yn<bn.length;yn++)bn[yn]();bn=null,yn=0}}const On=e=>null==e.id?1/0:e.id,In=(e,t)=>{const n=On(e)-On(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Bn(e){mn=!1,hn=!0,gn.sort(In);try{for(vn=0;vn<gn.length;vn++){const e=gn[vn];e&&!1!==e.active&&un(e,null,14)}}finally{vn=0,gn.length=0,Cn(e),hn=!1,wn=null,(gn.length||_n.length)&&Bn(e)}}let Pn,Ln=[],Nn=!1;function jn(e,t){var n,o;if(Pn=e,Pn)Pn.enabled=!0,Ln.forEach((({event:e,args:t})=>Pn.emit(e,...t))),Ln=[];else if("undefined"!==typeof window&&window.HTMLElement&&!(null==(o=null==(n=window.navigator)?void 0:n.userAgent)?void 0:o.includes("jsdom"))){const e=t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[];e.push((e=>{jn(e,t)})),setTimeout((()=>{Pn||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Nn=!0,Ln=[])}),3e3)}else Nn=!0,Ln=[]}const Fn={GLOBAL_MOUNT:"GLOBAL_MOUNT",GLOBAL_MOUNT_CONTAINER:"GLOBAL_MOUNT_CONTAINER",GLOBAL_EXTEND:"GLOBAL_EXTEND",GLOBAL_PROTOTYPE:"GLOBAL_PROTOTYPE",GLOBAL_SET:"GLOBAL_SET",GLOBAL_DELETE:"GLOBAL_DELETE",GLOBAL_OBSERVABLE:"GLOBAL_OBSERVABLE",GLOBAL_PRIVATE_UTIL:"GLOBAL_PRIVATE_UTIL",CONFIG_SILENT:"CONFIG_SILENT",CONFIG_DEVTOOLS:"CONFIG_DEVTOOLS",CONFIG_KEY_CODES:"CONFIG_KEY_CODES",CONFIG_PRODUCTION_TIP:"CONFIG_PRODUCTION_TIP",CONFIG_IGNORED_ELEMENTS:"CONFIG_IGNORED_ELEMENTS",CONFIG_WHITESPACE:"CONFIG_WHITESPACE",CONFIG_OPTION_MERGE_STRATS:"CONFIG_OPTION_MERGE_STRATS",INSTANCE_SET:"INSTANCE_SET",INSTANCE_DELETE:"INSTANCE_DELETE",INSTANCE_DESTROY:"INSTANCE_DESTROY",INSTANCE_EVENT_EMITTER:"INSTANCE_EVENT_EMITTER",INSTANCE_EVENT_HOOKS:"INSTANCE_EVENT_HOOKS",INSTANCE_CHILDREN:"INSTANCE_CHILDREN",INSTANCE_LISTENERS:"INSTANCE_LISTENERS",INSTANCE_SCOPED_SLOTS:"INSTANCE_SCOPED_SLOTS",INSTANCE_ATTRS_CLASS_STYLE:"INSTANCE_ATTRS_CLASS_STYLE",OPTIONS_DATA_FN:"OPTIONS_DATA_FN",OPTIONS_DATA_MERGE:"OPTIONS_DATA_MERGE",OPTIONS_BEFORE_DESTROY:"OPTIONS_BEFORE_DESTROY",OPTIONS_DESTROYED:"OPTIONS_DESTROYED",WATCH_ARRAY:"WATCH_ARRAY",PROPS_DEFAULT_THIS:"PROPS_DEFAULT_THIS",V_ON_KEYCODE_MODIFIER:"V_ON_KEYCODE_MODIFIER",CUSTOM_DIR:"CUSTOM_DIR",ATTR_FALSE_VALUE:"ATTR_FALSE_VALUE",ATTR_ENUMERATED_COERCION:"ATTR_ENUMERATED_COERCION",TRANSITION_CLASSES:"TRANSITION_CLASSES",TRANSITION_GROUP_ROOT:"TRANSITION_GROUP_ROOT",COMPONENT_ASYNC:"COMPONENT_ASYNC",COMPONENT_FUNCTIONAL:"COMPONENT_FUNCTIONAL",COMPONENT_V_MODEL:"COMPONENT_V_MODEL",RENDER_FUNCTION:"RENDER_FUNCTION",FILTERS:"FILTERS",PRIVATE_APIS:"PRIVATE_APIS"};function Dn(e,t,...n){}const Hn={MODE:2};function Un(e){l(Hn,e)}function Vn(e,t){const n=t&&t.type.compatConfig;return n&&e in n?n[e]:Hn[e]}function $n(e,t,n=!1){if(!n&&t&&t.type.__isBuiltIn)return!1;const o=Vn("MODE",t)||2,r=Vn(e,t),s=v(o)?o(t&&t.type):o;return 2===s?!1!==r:!0===r||"suppress-warning"===r}function zn(e,t,...n){if(!$n(e,t))throw new Error(`${e} compat has been disabled.`)}function qn(e,t,...n){return $n(e,t)}function Yn(e,t,...n){const o=$n(e,t);return o}const Xn=new WeakMap;function Gn(e){let t=Xn.get(e);return t||Xn.set(e,t=Object.create(null)),t}function Wn(e,t,n){if(f(t))t.forEach((t=>Wn(e,t,n)));else{t.startsWith("hook:")?zn("INSTANCE_EVENT_HOOKS",e,t):zn("INSTANCE_EVENT_EMITTER",e);const o=Gn(e);(o[t]||(o[t]=[])).push(n)}return e.proxy}function Kn(e,t,n){const o=(...r)=>{Zn(e,t,o),n.call(e.proxy,...r)};return o.fn=n,Wn(e,t,o),e.proxy}function Zn(e,t,n){zn("INSTANCE_EVENT_EMITTER",e);const o=e.proxy;if(!t)return Xn.set(e,Object.create(null)),o;if(f(t))return t.forEach((t=>Zn(e,t,n))),o;const r=Gn(e),s=r[t];return s?n?(r[t]=s.filter((e=>!(e===n||e.fn===n))),o):(r[t]=void 0,o):o}function Qn(e,t,n){const o=Gn(e)[t];return o&&dn(o.map((t=>t.bind(e.proxy))),e,6,n),e.proxy}const Jn="onModelCompat:";function eo(e){const{type:t,shapeFlag:n,props:o,dynamicProps:r}=e,s=t;if(6&n&&o&&"modelValue"in o){if(!$n("COMPONENT_V_MODEL",{type:t}))return;0;const e=s.model||{};to(e,s.mixins);const{prop:n="value",event:i="input"}=e;"modelValue"!==n&&(o[n]=o.modelValue,delete o.modelValue),r&&(r[r.indexOf("modelValue")]=n),o[Jn+i]=o["onUpdate:modelValue"],delete o["onUpdate:modelValue"]}}function to(e,t){t&&t.forEach((t=>{t.model&&l(e,t.model),t.mixins&&to(e,t.mixins)}))}function no(e,t,n){if(!$n("COMPONENT_V_MODEL",e))return;const o=e.vnode.props,r=o&&o[Jn+t];r&&un(r,e,6,n)}function oo(e,n,...o){if(e.isUnmounted)return;const r=e.vnode.props||t;let s=o;const i=n.startsWith("update:"),a=i&&n.slice(7);if(a&&a in r){const e=`${"modelValue"===a?"model":a}Modifiers`,{number:n,trim:i}=r[e]||t;i&&(s=o.map((e=>_(e)?e.trim():e))),n&&(s=o.map(F))}let l;let c=r[l=P(n)]||r[l=P(C(n))];!c&&i&&(c=r[l=P(I(n))]),c&&dn(c,e,6,s);const u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,dn(u,e,6,s)}return no(e,n,s),Qn(e,n,s)}function ro(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},a=!1;if(!v(e)){const o=e=>{const n=ro(e,t,!0);n&&(a=!0,l(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||a?(f(s)?s.forEach((e=>i[e]=null)):l(i,s),y(e)&&o.set(e,i),i):(y(e)&&o.set(e,null),null)}function so(e,t){return!(!e||!i(t))&&(!!t.startsWith(Jn)||(t=t.slice(2).replace(/Once$/,""),d(e,t[0].toLowerCase()+t.slice(1))||d(e,I(t))||d(e,t)))}let io=null,ao=null;function lo(e){const t=io;return io=e,ao=e&&e.type.__scopeId||null,ao||(ao=e&&e.type._scopeId||null),t}function co(e){ao=e}function uo(){ao=null}const fo=e=>po;function po(e,t=io,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&Ba(-1);const r=lo(t);let s;try{s=e(...n)}finally{lo(r),o._d&&Ba(1)}return s};return o._n=!0,o._c=!0,o._d=!0,n&&(o._ns=!0),o}function ho(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[i],slots:l,attrs:c,emit:u,render:d,renderCache:f,data:p,setupState:h,ctx:m,inheritAttrs:g}=e;let v,_;const b=lo(e);try{if(4&n.shapeFlag){const e=r||o,t=e;v=Za(d.call(t,e,f,s,h,p,m)),_=c}else{const e=t;0,v=Za(e.length>1?e(s,{attrs:c,slots:l,emit:u}):e(s,null)),_=t.props?c:go(c)}}catch(x){Ma.length=0,fn(x,e,1),v=za(Ea)}let y=v;if(_&&!1!==g){const e=Object.keys(_),{shapeFlag:t}=y;e.length&&7&t&&(i&&e.some(a)&&(_=vo(_,i)),y=Xa(y,_))}if($n("INSTANCE_ATTRS_CLASS_STYLE",e)&&4&n.shapeFlag&&7&y.shapeFlag){const{class:e,style:t}=n.props||{};(e||t)&&(y=Xa(y,{class:e,style:t}))}return n.dirs&&(y=Xa(y),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&(y.transition=n.transition),v=y,lo(b),v}function mo(e,t=!0){let n;for(let o=0;o<e.length;o++){const t=e[o];if(!ja(t))return;if(t.type!==Ea||"v-if"===t.children){if(n)return;n=t}}return n}const go=e=>{let t;for(const n in e)("class"===n||"style"===n||i(n))&&((t||(t={}))[n]=e[n]);return t},vo=(e,t)=>{const n={};for(const o in e)a(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function _o(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:a,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!r&&!a||a&&a.$stable)||o!==i&&(o?!i||bo(o,i,c):!!i);if(1024&l)return!0;if(16&l)return o?bo(o,i,c):!!i;if(8&l){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==o[n]&&!so(c,n))return!0}}return!1}function bo(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;r<o.length;r++){const s=o[r];if(t[s]!==e[s]&&!so(n,s))return!0}return!1}function yo({vnode:e,parent:t},n){while(t){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}const xo="components",wo="directives",ko="filters";function So(e,t){return Ro(xo,e,!0,t)||e}const Eo=Symbol.for("v-ndc");function To(e){return _(e)?Ro(xo,e,!1)||e:e||Eo}function Mo(e){return Ro(wo,e)}function Ao(e){return Ro(ko,e)}function Ro(e,t,n=!0,o=!1){const r=io||sl;if(r){const n=r.type;if(e===xo){const e=Sl(n,!1);if(e&&(e===t||e===C(t)||e===B(C(t))))return n}const s=Co(r[e]||n[e],t)||Co(r.appContext[e],t);return!s&&o?n:s}}function Co(e,t){return e&&(e[t]||e[C(t)]||e[B(C(t))])}const Oo=e=>e.__isSuspense;let Io=0;const Bo={name:"Suspense",__isSuspense:!0,process(e,t,n,o,r,s,i,a,l,c){if(null==e)No(t,n,o,r,s,i,a,l,c);else{if(s&&s.deps>0)return void(t.suspense=e.suspense);jo(e,t,n,o,r,i,a,l,c)}},hydrate:Do,create:Fo,normalize:Ho},Po=Bo;function Lo(e,t){const n=e.props&&e.props[t];v(n)&&n()}function No(e,t,n,o,r,s,i,a,l){const{p:c,o:{createElement:u}}=l,d=u("div"),f=e.suspense=Fo(e,r,o,t,d,n,s,i,a,l);c(null,f.pendingBranch=e.ssContent,d,null,o,f,s,i),f.deps>0?(Lo(e,"onPending"),Lo(e,"onFallback"),c(null,e.ssFallback,t,n,o,null,s,i),$o(f,e.ssFallback)):f.resolve(!1,!0)}function jo(e,t,n,o,r,s,i,a,{p:l,um:c,o:{createElement:u}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const f=t.ssContent,p=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:g,isHydrating:v}=d;if(m)d.pendingBranch=f,Fa(f,m)?(l(m,f,d.hiddenContainer,null,r,d,s,i,a),d.deps<=0?d.resolve():g&&(v||(l(h,p,n,o,r,null,s,i,a),$o(d,p)))):(d.pendingId=Io++,v?(d.isHydrating=!1,d.activeBranch=m):c(m,r,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(l(null,f,d.hiddenContainer,null,r,d,s,i,a),d.deps<=0?d.resolve():(l(h,p,n,o,r,null,s,i,a),$o(d,p))):h&&Fa(f,h)?(l(h,f,n,o,r,d,s,i,a),d.resolve(!0)):(l(null,f,d.hiddenContainer,null,r,d,s,i,a),d.deps<=0&&d.resolve()));else if(h&&Fa(f,h))l(h,f,n,o,r,d,s,i,a),$o(d,f);else if(Lo(t,"onPending"),d.pendingBranch=f,512&f.shapeFlag?d.pendingId=f.component.suspenseId:d.pendingId=Io++,l(null,f,d.hiddenContainer,null,r,d,s,i,a),d.deps<=0)d.resolve();else{const{timeout:e,pendingId:t}=d;e>0?setTimeout((()=>{d.pendingId===t&&d.fallback(p)}),e):0===e&&d.fallback(p)}}function Fo(e,t,n,o,r,s,i,a,l,c,u=!1){const{p:d,m:f,um:p,n:h,o:{parentNode:m,remove:g}}=c;let v;const _=zo(e);_&&(null==t?void 0:t.pendingBranch)&&(v=t.pendingId,t.deps++);const b=e.props?D(e.props.timeout):void 0;const y=s,x={vnode:e,parent:t,parentComponent:n,namespace:i,container:o,hiddenContainer:r,deps:0,pendingId:Io++,timeout:"number"===typeof b?b:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){const{vnode:o,activeBranch:r,pendingBranch:i,pendingId:a,effects:l,parentComponent:c,container:u}=x;let d=!1;x.isHydrating?x.isHydrating=!1:e||(d=r&&i.transition&&"out-in"===i.transition.mode,d&&(r.transition.afterLeave=()=>{a===x.pendingId&&(f(i,u,s===y?h(r):s,0),An(l))}),r&&(m(r.el)!==x.hiddenContainer&&(s=h(r)),p(r,c,x,!0)),d||f(i,u,s,0)),$o(x,i),x.pendingBranch=null,x.isInFallback=!1;let g=x.parent,b=!1;while(g){if(g.pendingBranch){g.effects.push(...l),b=!0;break}g=g.parent}b||d||An(l),x.effects=[],_&&t&&t.pendingBranch&&v===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),Lo(o,"onResolve")},fallback(e){if(!x.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:o,container:r,namespace:s}=x;Lo(t,"onFallback");const i=h(n),c=()=>{x.isInFallback&&(d(null,e,r,i,o,null,s,a,l),$o(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,p(n,o,null,!0),u||c()},move(e,t,n){x.activeBranch&&f(x.activeBranch,e,t,n),x.container=e},next(){return x.activeBranch&&h(x.activeBranch)},registerDep(e,t){const n=!!x.pendingBranch;n&&x.deps++;const o=e.vnode.el;e.asyncDep.catch((t=>{fn(t,e,0)})).then((r=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:s}=e;vl(e,r,!1),o&&(s.el=o);const a=!o&&e.subTree.el;t(e,s,m(o||e.subTree.el),o?null:h(e.subTree),x,i,l),a&&g(a),yo(e,s.el),n&&0===--x.deps&&x.resolve()}))},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&p(x.activeBranch,n,e,t),x.pendingBranch&&p(x.pendingBranch,n,e,t)}};return x}function Do(e,t,n,o,r,s,i,a,l){const c=t.suspense=Fo(t,o,n,e.parentNode,document.createElement("div"),null,r,s,i,a,!0),u=l(e,c.pendingBranch=t.ssContent,n,c,s,i);return 0===c.deps&&c.resolve(!1,!0),u}function Ho(e){const{shapeFlag:t,children:n}=e,o=32&t;e.ssContent=Uo(o?n.default:n),e.ssFallback=o?Uo(n.fallback):za(Ea)}function Uo(e){let t;if(v(e)){const n=Ia&&e._c;n&&(e._d=!1,Ra()),e=e(),n&&(e._d=!0,t=Aa,Ca())}if(f(e)){const t=mo(e);0,e=t}return e=Za(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function Vo(e,t){t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):An(e)}function $o(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e;let r=t.el;while(!r&&t.component)t=t.component.subTree,r=t.el;n.el=r,o&&o.subTree===n&&(o.vnode.el=r,yo(o,r))}function zo(e){var t;return null!=(null==(t=e.props)?void 0:t.suspensible)&&!1!==e.props.suspensible}const qo={beforeMount:"bind",mounted:"inserted",updated:["update","componentUpdated"],unmounted:"unbind"};function Yo(e,t,n){const o=qo[e];if(o){if(f(o)){const r=[];return o.forEach((o=>{const s=t[o];s&&(qn("CUSTOM_DIR",n,o,e),r.push(s))})),r.length?r:void 0}return t[o]&&qn("CUSTOM_DIR",n,o,e),t[o]}}const Xo=Symbol.for("v-scx"),Go=()=>{{const e=Ti(Xo);return e}};function Wo(e,t){return er(e,null,t)}function Ko(e,t){return er(e,null,{flush:"post"})}function Zo(e,t){return er(e,null,{flush:"sync"})}const Qo={};function Jo(e,t,n){return er(e,t,n)}function er(e,n,{immediate:o,deep:s,flush:i,once:a,onTrack:l,onTrigger:u}=t){if(n&&a){const e=n;n=(...t)=>{e(...t),T()}}const d=sl,p=e=>!0===s?e:or(e,!1===s?1:void 0);let h,m,g=!1,_=!1;if(Ut(e)?(h=()=>e.value,g=Ot(e)):Rt(e)?(h=()=>p(e),g=!0):f(e)?(_=!0,g=e.some((e=>Rt(e)||Ot(e))),h=()=>e.map((e=>Ut(e)?e.value:Rt(e)?p(e):v(e)?un(e,d,2):void 0))):h=v(e)?n?()=>un(e,d,2):()=>(m&&m(),dn(e,d,3,[y])):r,n&&!s){const e=h;h=()=>{const t=e();return f(t)&&Yn("WATCH_ARRAY",d)&&or(t),t}}if(n&&s){const e=h;h=()=>or(e())}let b,y=e=>{m=S.onStop=()=>{un(e,d,4),m=S.onStop=void 0}};if(hl){if(y=r,n?o&&dn(n,d,3,[h(),_?[]:void 0,y]):h(),"sync"!==i)return r;{const e=Go();b=e.__watcherHandles||(e.__watcherHandles=[])}}let x=_?new Array(e.length).fill(Qo):Qo;const w=()=>{if(S.active&&S.dirty)if(n){const e=S.run();(s||g||(_?e.some(((e,t)=>L(e,x[t]))):L(e,x))||f(e)&&$n("WATCH_ARRAY",d))&&(m&&m(),dn(n,d,3,[e,x===Qo?void 0:_&&x[0]===Qo?[]:x,y]),x=e)}else S.run()};let k;w.allowRecurse=!!n,"sync"===i?k=w:"post"===i?k=()=>ea(w,d&&d.suspense):(w.pre=!0,d&&(w.id=d.uid),k=()=>En(w));const S=new pe(h,r,k),E=de(),T=()=>{S.stop(),E&&c(E.effects,S)};return n?o?w():x=S.run():"post"===i?ea(S.run.bind(S),d&&d.suspense):S.run(),b&&b.push(T),T}function tr(e,t,n){const o=this.proxy,r=_(e)?e.includes(".")?nr(o,e):()=>o[e]:e.bind(o,o);let s;v(t)?s=t:(s=t.handler,n=t);const i=cl(this),a=er(r,s.bind(o),n);return i(),a}function nr(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function or(e,t,n=0,o){if(!y(e)||e["__v_skip"])return e;if(t&&t>0){if(n>=t)return e;n++}if(o=o||new Set,o.has(e))return e;if(o.add(e),Ut(e))or(e.value,t,n,o);else if(f(e))for(let r=0;r<e.length;r++)or(e[r],t,n,o);else if(h(e)||p(e))e.forEach((e=>{or(e,t,n,o)}));else if(E(e))for(const r in e)or(e[r],t,n,o);return e}function rr(e,n){if(null===io)return e;const o=kl(io)||io.proxy,r=e.dirs||(e.dirs=[]);for(let s=0;s<n.length;s++){let[e,i,a,l=t]=n[s];e&&(v(e)&&(e={mounted:e,updated:e}),e.deep&&or(i),r.push({dir:e,instance:o,value:i,oldValue:void 0,arg:a,modifiers:l}))}return e}function sr(e,t,n,o){const r=e.dirs,s=t&&t.dirs;for(let i=0;i<r.length;i++){const a=r[i];s&&(a.oldValue=s[i].value);let l=a.dir[o];l||(l=Yo(o,a.dir,n)),l&&(ke(),dn(l,n,8,[e.el,a,e,t]),Se())}}const ir=Symbol("_leaveCb"),ar=Symbol("_enterCb");function lr(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Nr((()=>{e.isMounted=!0})),Dr((()=>{e.isUnmounting=!0})),e}const cr=[Function,Array],ur={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:cr,onEnter:cr,onAfterEnter:cr,onEnterCancelled:cr,onBeforeLeave:cr,onLeave:cr,onAfterLeave:cr,onLeaveCancelled:cr,onBeforeAppear:cr,onAppear:cr,onAfterAppear:cr,onAppearCancelled:cr},dr={name:"BaseTransition",props:ur,setup(e,{slots:t}){const n=il(),o=lr();let r;return()=>{const s=t.default&&_r(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){let e=!1;for(const t of s)if(t.type!==Ea){0,i=t,e=!0;break}}const a=Bt(e),{mode:l}=a;if(o.isLeaving)return mr(i);const c=gr(i);if(!c)return mr(i);const u=hr(c,a,o,n);vr(c,u);const d=n.subTree,f=d&&gr(d);let p=!1;const{getTransitionKey:h}=c.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,p=!0)}if(f&&f.type!==Ea&&(!Fa(c,f)||p)){const e=hr(f,a,o,n);if(vr(f,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,!1!==n.update.active&&(n.effect.dirty=!0,n.update())},mr(i);"in-out"===l&&c.type!==Ea&&(e.delayLeave=(e,t,n)=>{const r=pr(o,f);r[String(f.key)]=f,e[ir]=()=>{t(),e[ir]=void 0,delete u.delayedLeave},u.delayedLeave=n})}return i}},__isBuiltIn:!0},fr=dr;function pr(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function hr(e,t,n,o){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:d,onLeave:p,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:v,onAfterAppear:_,onAppearCancelled:b}=t,y=String(e.key),x=pr(n,e),w=(e,t)=>{e&&dn(e,o,9,t)},k=(e,t)=>{const n=t[1];w(e,t),f(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},S={mode:s,persisted:i,beforeEnter(t){let o=a;if(!n.isMounted){if(!r)return;o=g||a}t[ir]&&t[ir](!0);const s=x[y];s&&Fa(e,s)&&s.el[ir]&&s.el[ir](),w(o,[t])},enter(e){let t=l,o=c,s=u;if(!n.isMounted){if(!r)return;t=v||l,o=_||c,s=b||u}let i=!1;const a=e[ar]=t=>{i||(i=!0,w(t?s:o,[e]),S.delayedLeave&&S.delayedLeave(),e[ar]=void 0)};t?k(t,[e,a]):a()},leave(t,o){const r=String(e.key);if(t[ar]&&t[ar](!0),n.isUnmounting)return o();w(d,[t]);let s=!1;const i=t[ir]=n=>{s||(s=!0,o(),w(n?m:h,[t]),t[ir]=void 0,x[r]===e&&delete x[r])};x[r]=e,p?k(p,[t,i]):i()},clone(e){return hr(e,t,n,o)}};return S}function mr(e){if(kr(e))return e=Xa(e),e.children=null,e}function gr(e){return kr(e)?e.children?e.children[0]:void 0:e}function vr(e,t){6&e.shapeFlag&&e.component?vr(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function _r(e,t=!1,n){let o=[],r=0;for(let s=0;s<e.length;s++){let i=e[s];const a=null==n?i.key:String(n)+String(null!=i.key?i.key:s);i.type===ka?(128&i.patchFlag&&r++,o=o.concat(_r(i.children,t,a))):(t||i.type!==Ea)&&o.push(null!=a?Xa(i,{key:a}):i)}if(r>1)for(let s=0;s<o.length;s++)o[s].patchFlag=-2;return o}
+/*! #__NO_SIDE_EFFECTS__ */function br(e,t){return v(e)?(()=>l({name:e.name},t,{setup:e}))():e}const yr=e=>!!e.type.__asyncLoader
+/*! #__NO_SIDE_EFFECTS__ */;function xr(e){v(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:s,suspensible:i=!0,onError:a}=e;let l,c=null,u=0;const d=()=>(u++,c=null,f()),f=()=>{let e;return c||(e=c=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),a)return new Promise(((t,n)=>{const o=()=>t(d()),r=()=>n(e);a(e,o,r,u+1)}));throw e})).then((t=>e!==c&&c?c:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),l=t,t))))};return br({name:"AsyncComponentWrapper",__asyncLoader:f,get __asyncResolved(){return l},setup(){const e=sl;if(l)return()=>wr(l,e);const t=t=>{c=null,fn(t,e,13,!o)};if(i&&e.suspense||hl)return f().then((t=>()=>wr(t,e))).catch((e=>(t(e),()=>o?za(o,{error:e}):null)));const a=Vt(!1),u=Vt(),d=Vt(!!r);return r&&setTimeout((()=>{d.value=!1}),r),null!=s&&setTimeout((()=>{if(!a.value&&!u.value){const e=new Error(`Async component timed out after ${s}ms.`);t(e),u.value=e}}),s),f().then((()=>{a.value=!0,e.parent&&kr(e.parent.vnode)&&(e.parent.effect.dirty=!0,En(e.parent.update))})).catch((e=>{t(e),u.value=e})),()=>a.value&&l?wr(l,e):u.value&&o?za(o,{error:u.value}):n&&!d.value?za(n):void 0}})}function wr(e,t){const{ref:n,props:o,children:r,ce:s}=t.vnode,i=za(e,o,r);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const kr=e=>e.type.__isKeepAlive,Sr={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=il(),o=n.ctx;if(!o.renderer)return()=>{const e=t.default&&t.default();return e&&1===e.length?e[0]:e};const r=new Map,s=new Set;let i=null;const a=n.suspense,{renderer:{p:l,m:c,um:u,o:{createElement:d}}}=o,f=d("div");function p(e){Or(e),u(e,n,a,!0)}function h(e){r.forEach(((t,n)=>{const o=Sl(t.type);!o||e&&e(o)||m(n)}))}function m(e){const t=r.get(e);i&&Fa(t,i)?i&&Or(i):p(t),r.delete(e),s.delete(e)}o.activate=(e,t,n,o,r)=>{const s=e.component;c(e,t,n,0,a),l(s.vnode,e,t,n,s,a,o,e.slotScopeIds,r),ea((()=>{s.isDeactivated=!1,s.a&&N(s.a);const t=e.props&&e.props.onVnodeMounted;t&&tl(t,s.parent,e)}),a)},o.deactivate=e=>{const t=e.component;c(e,f,null,1,a),ea((()=>{t.da&&N(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&tl(n,t.parent,e),t.isDeactivated=!0}),a)},Jo((()=>[e.include,e.exclude]),(([e,t])=>{e&&h((t=>Tr(e,t))),t&&h((e=>!Tr(t,e)))}),{flush:"post",deep:!0});let g=null;const v=()=>{null!=g&&r.set(g,Ir(n.subTree))};return Nr(v),Fr(v),Dr((()=>{r.forEach((e=>{const{subTree:t,suspense:o}=n,r=Ir(t);if(e.type!==r.type||e.key!==r.key)p(e);else{Or(r);const e=r.component.da;e&&ea(e,o)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),o=n[0];if(n.length>1)return i=null,n;if(!ja(o)||!(4&o.shapeFlag)&&!(128&o.shapeFlag))return i=null,o;let a=Ir(o);const l=a.type,c=Sl(yr(a)?a.type.__asyncResolved||{}:l),{include:u,exclude:d,max:f}=e;if(u&&(!c||!Tr(u,c))||d&&c&&Tr(d,c))return i=a,o;const p=null==a.key?l:a.key,h=r.get(p);return a.el&&(a=Xa(a),128&o.shapeFlag&&(o.ssContent=a)),g=p,h?(a.el=h.el,a.component=h.component,a.transition&&vr(a,a.transition),a.shapeFlag|=512,s.delete(p),s.add(p)):(s.add(p),f&&s.size>parseInt(f,10)&&m(s.values().next().value)),a.shapeFlag|=256,i=a,Oo(o.type)?o:a}},__isBuildIn:!0},Er=Sr;function Tr(e,t){return f(e)?e.some((e=>Tr(e,t))):_(e)?e.split(",").includes(t):!!g(e)&&e.test(t)}function Mr(e,t){Rr(e,"a",t)}function Ar(e,t){Rr(e,"da",t)}function Rr(e,t,n=sl){const o=e.__wdc||(e.__wdc=()=>{let t=n;while(t){if(t.isDeactivated)return;t=t.parent}return e()});if(Br(t,o,n),n){let e=n.parent;while(e&&e.parent)kr(e.parent.vnode)&&Cr(o,t,n,e),e=e.parent}}function Cr(e,t,n,o){const r=Br(t,e,o,!0);Hr((()=>{c(o[t],r)}),n)}function Or(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Ir(e){return 128&e.shapeFlag?e.ssContent:e}function Br(e,t,n=sl,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ke();const r=cl(n),s=dn(t,n,e,o);return r(),Se(),s});return o?r.unshift(s):r.push(s),s}}const Pr=e=>(t,n=sl)=>(!hl||"sp"===e)&&Br(e,((...e)=>t(...e)),n),Lr=Pr("bm"),Nr=Pr("m"),jr=Pr("bu"),Fr=Pr("u"),Dr=Pr("bum"),Hr=Pr("um"),Ur=Pr("sp"),Vr=Pr("rtg"),$r=Pr("rtc");function zr(e,t=sl){Br("ec",e,t)}function qr(e){zn("INSTANCE_CHILDREN",e);const t=e.subTree,n=[];return t&&Yr(t,n),n}function Yr(e,t){if(e.component)t.push(e.component.proxy);else if(16&e.shapeFlag){const n=e.children;for(let e=0;e<n.length;e++)Yr(n[e],t)}}function Xr(e){zn("INSTANCE_LISTENERS",e);const t={},n=e.vnode.props;if(!n)return t;for(const o in n)i(o)&&(t[o[2].toLowerCase()+o.slice(3)]=n[o]);return t}function Gr(e){const t=e.type,n=t.render;if(n&&!n._rc&&!n._compatChecked&&!n._compatWrapped)if(n.length>=2)n._compatChecked=!0;else if(Yn("RENDER_FUNCTION",e)){const e=t.render=function(){return n.call(this,Wr)};e._compatWrapped=!0}}function Wr(e,t,n){if(e||(e=Ea),"string"===typeof e){const t=I(e);"transition"!==t&&"transition-group"!==t&&"keep-alive"!==t||(e=`__compat__${t}`),e=To(e)}const o=arguments.length,r=f(t);return 2===o||r?y(t)&&!r?ja(t)?es(za(e,null,[t])):es(Jr(za(e,Zr(t,e)),t)):es(za(e,null,t)):(ja(n)&&(n=[n]),es(Jr(za(e,Zr(t,e),n),t)))}const Kr=e("staticStyle,staticClass,directives,model,hook");function Zr(e,t){if(!e)return null;const n={};for(const o in e)if("attrs"===o||"domProps"===o||"props"===o)l(n,e[o]);else if("on"===o||"nativeOn"===o){const t=e[o];for(const e in t){let r=Qr(e);"nativeOn"===o&&(r+="Native");const s=n[r],i=t[e];s!==i&&(n[r]=s?[].concat(s,i):i)}}else Kr(o)||(n[o]=e[o]);if(e.staticClass&&(n.class=W([e.staticClass,n.class])),e.staticStyle&&(n.style=z([e.staticStyle,n.style])),e.model&&y(t)){const{prop:o="value",event:r="input"}=t.model||{};n[o]=e.model.value,n[Jn+r]=e.model.callback}return n}function Qr(e){return"&"===e[0]&&(e=e.slice(1)+"Passive"),"~"===e[0]&&(e=e.slice(1)+"Once"),"!"===e[0]&&(e=e.slice(1)+"Capture"),P(e)}function Jr(e,t){return t&&t.directives?rr(e,t.directives.map((({name:e,value:t,arg:n,modifiers:o})=>[Mo(e),t,n,o]))):e}function es(e){const{props:t,children:n}=e;let o;if(6&e.shapeFlag&&f(n)){o={};for(let e=0;e<n.length;e++){const t=n[e],r=ja(t)&&t.props&&t.props.slot||"default",s=o[r]||(o[r]=[]);ja(t)&&"template"===t.type?s.push(t.children):s.push(t)}if(o)for(const e in o){const t=o[e];o[e]=()=>t,o[e]._ns=!0}}const r=t&&t.scopedSlots;return r&&(delete t.scopedSlots,o?l(o,r):o=r),o&&Ja(e,o),e}function ts(e){if($n("RENDER_FUNCTION",io,!0)&&$n("PRIVATE_APIS",io,!0)){const t=io,n=()=>e.component&&e.component.proxy;let o;Object.defineProperties(e,{tag:{get:()=>e.type},data:{get:()=>e.props||{},set:t=>e.props=t},elm:{get:()=>e.el},componentInstance:{get:n},child:{get:n},text:{get:()=>_(e.children)?e.children:null},context:{get:()=>t&&t.proxy},componentOptions:{get:()=>{if(4&e.shapeFlag)return o||(o={Ctor:e.type,propsData:e.props,children:e.children})}}})}}const ns=new WeakMap,os={get(e,t){const n=e[t];return n&&n()}};function rs(e){if(ns.has(e))return ns.get(e);const t=e.render,n=(n,o)=>{const r=il(),s={props:n,children:r.vnode.children||[],data:r.vnode.props||{},scopedSlots:o.slots,parent:r.parent&&r.parent.proxy,slots(){return new Proxy(o.slots,os)},get listeners(){return Xr(r)},get injections(){if(e.inject){const t={};return Xs(e.inject,t),t}return{}}};return t(Wr,s)};return n.props=e.props,n.displayName=e.name,n.compatConfig=e.compatConfig,n.inheritAttrs=!1,ns.set(e,n),n}function ss(e,t,n,o){let r;const s=n&&n[o];if(f(e)||_(e)){r=new Array(e.length);for(let n=0,o=e.length;n<o;n++)r[n]=t(e[n],n,void 0,s&&s[n])}else if("number"===typeof e){0,r=new Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,s&&s[n])}else if(y(e))if(e[Symbol.iterator])r=Array.from(e,((e,n)=>t(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);r=new Array(n.length);for(let o=0,i=n.length;o<i;o++){const i=n[o];r[o]=t(e[i],i,o,s&&s[o])}}else r=[];return n&&(n[o]=r),r}function is(e,t){for(let n=0;n<t.length;n++){const o=t[n];if(f(o))for(let t=0;t<o.length;t++)e[o[t].name]=o[t].fn;else o&&(e[o.name]=o.key?(...e)=>{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e}function as(e,t,n={},o,r){if(io.isCE||io.parent&&yr(io.parent)&&io.parent.isCE)return"default"!==t&&(n.name=t),za("slot",n,o&&o());let s=e[t];s&&s._c&&(s._d=!1),Ra();const i=s&&ls(s(n)),a=Na(ka,{key:n.key||i&&i.key||`_${t}`},i||(o?o():[]),i&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}function ls(e){return e.some((e=>!ja(e)||e.type!==Ea&&!(e.type===ka&&!ls(e.children))))?e:null}function cs(e,t){const n={};for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:P(o)]=e[o];return n}function us(e){const t={};for(let n=0;n<e.length;n++)e[n]&&l(t,e[n]);return t}function ds(e,t,n,o,r){if(n&&y(n)){f(n)&&(n=us(n));for(const t in n)if(M(t))e[t]=n[t];else if("class"===t)e.class=W([e.class,n.class]);else if("style"===t)e.style=W([e.style,n.style]);else{const o=e.attrs||(e.attrs={}),s=C(t),i=I(t);if(!(s in o)&&!(i in o)&&(o[t]=n[t],r)){const o=e.on||(e.on={});o[`update:${t}`]=function(e){n[t]=e}}}}return e}function fs(e,t){return el(e,cs(t))}function ps(e,t,n,o,r){return r&&(o=el(o,r)),as(e.slots,t,o,n&&(()=>n))}function hs(e,t,n){return is(t||{$stable:!n},ms(e))}function ms(e){for(let t=0;t<e.length;t++){const n=e[t];n&&(f(n)?ms(n):n.name=n.key||"default")}return e}const gs=new WeakMap;function vs(e,t){let n=gs.get(e);if(n||gs.set(e,n=[]),n[t])return n[t];const o=e.type.staticRenderFns[t],r=e.proxy;return n[t]=o.call(r,null,r)}function _s(e,t,n,o,r,s){const i=e.appContext.config,a=i.keyCodes||{},l=a[n]||o;return s&&r&&!a[n]?bs(s,r):l?bs(l,t):r?I(r)!==n:void 0}function bs(e,t){return f(e)?!e.includes(t):e!==t}function ys(e){return e}function xs(e,t){for(let n=0;n<t.length;n+=2){const o=t[n];"string"===typeof o&&o&&(e[t[n]]=t[n+1])}return e}function ws(e,t){return"string"===typeof e?t+e:e}function ks(e){const t=(e,t,n)=>(e[t]=n,e[t]),n=(e,t)=>{delete e[t]};l(e,{$set:e=>(zn("INSTANCE_SET",e),t),$delete:e=>(zn("INSTANCE_DELETE",e),n),$mount:e=>(zn("GLOBAL_MOUNT",null),e.ctx._compat_mount||r),$destroy:e=>(zn("INSTANCE_DESTROY",e),e.ctx._compat_destroy||r),$slots:e=>$n("RENDER_FUNCTION",e)&&e.render&&e.render._compatWrapped?new Proxy(e.slots,os):e.slots,$scopedSlots:e=>{zn("INSTANCE_SCOPED_SLOTS",e);const t={};for(const n in e.slots){const o=e.slots[n];o._ns||(t[n]=o)}return t},$on:e=>Wn.bind(null,e),$once:e=>Kn.bind(null,e),$off:e=>Zn.bind(null,e),$children:qr,$listeners:Xr}),$n("PRIVATE_APIS",null)&&l(e,{$vnode:e=>e.vnode,$options:e=>{const t=l({},Ks(e));return t.parent=e.proxy.$parent,t.propsData=e.vnode.props,t},_self:e=>e.proxy,_uid:e=>e.uid,_data:e=>e.data,_isMounted:e=>e.isMounted,_isDestroyed:e=>e.isUnmounted,$createElement:()=>Wr,_c:()=>Wr,_o:()=>ys,_n:()=>F,_s:()=>oe,_l:()=>ss,_t:e=>ps.bind(null,e),_q:()=>te,_i:()=>ne,_m:e=>vs.bind(null,e),_f:()=>Ao,_k:e=>_s.bind(null,e),_b:()=>ds,_v:()=>Ga,_e:()=>Ka,_u:()=>hs,_g:()=>fs,_d:()=>xs,_p:()=>ws})}const Ss=e=>e?dl(e)?kl(e)||e.proxy:Ss(e.parent):null,Es=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ss(e.parent),$root:e=>Ss(e.root),$emit:e=>e.emit,$options:e=>Ks(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,En(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>tr.bind(e)});ks(Es);const Ts=(e,n)=>e!==t&&!e.__isScriptSetup&&d(e,n),Ms={get({_:e},n){const{ctx:o,setupState:r,data:s,props:i,accessCache:a,type:l,appContext:c}=e;let u;if("$"!==n[0]){const l=a[n];if(void 0!==l)switch(l){case 1:return r[n];case 2:return s[n];case 4:return o[n];case 3:return i[n]}else{if(Ts(r,n))return a[n]=1,r[n];if(s!==t&&d(s,n))return a[n]=2,s[n];if((u=e.propsOptions[0])&&d(u,n))return a[n]=3,i[n];if(o!==t&&d(o,n))return a[n]=4,o[n];qs&&(a[n]=0)}}const f=Es[n];let p,h;if(f)return"$attrs"===n&&Le(e,"get",n),f(e);if((p=l.__cssModules)&&(p=p[n]))return p;if(o!==t&&d(o,n))return a[n]=4,o[n];if(h=c.config.globalProperties,d(h,n)){const t=Object.getOwnPropertyDescriptor(h,n);if(t.get)return t.get.call(e.proxy);{const t=h[n];return v(t)?Object.assign(t.bind(e.proxy),t):t}}},set({_:e},n,o){const{data:r,setupState:s,ctx:i}=e;return Ts(s,n)?(s[n]=o,!0):r!==t&&d(r,n)?(r[n]=o,!0):!d(e.props,n)&&(("$"!==n[0]||!(n.slice(1)in e))&&(i[n]=o,!0))},has({_:{data:e,setupState:n,accessCache:o,ctx:r,appContext:s,propsOptions:i}},a){let l;return!!o[a]||e!==t&&d(e,a)||Ts(n,a)||(l=i[0])&&d(l,a)||d(r,a)||d(Es,a)||d(s.config.globalProperties,a)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:d(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};const As=l({},Ms,{get(e,t){if(t!==Symbol.unscopables)return Ms.get(e,t,e)},has(e,t){const n="_"!==t[0]&&!$(t);return n}});function Rs(e,t){for(const n in t){const o=e[n],r=t[n];n in e&&E(o)&&E(r)?Rs(o,r):e[n]=r}return e}function Cs(){return null}function Os(){return null}function Is(e){0}function Bs(e){0}function Ps(){return null}function Ls(){0}function Ns(e,t){return null}function js(){return Ds().slots}function Fs(){return Ds().attrs}function Ds(){const e=il();return e.setupContext||(e.setupContext=wl(e))}function Hs(e){return f(e)?e.reduce(((e,t)=>(e[t]=null,e)),{}):e}function Us(e,t){const n=Hs(e);for(const o in t){if(o.startsWith("__skip"))continue;let e=n[o];e?f(e)||v(e)?e=n[o]={type:e,default:t[o]}:e.default=t[o]:null===e&&(e=n[o]={default:t[o]}),e&&t[`__skip_${o}`]&&(e.skipFactory=!0)}return n}function Vs(e,t){return e&&t?f(e)&&f(t)?e.concat(t):l({},Hs(e),Hs(t)):e||t}function $s(e,t){const n={};for(const o in e)t.includes(o)||Object.defineProperty(n,o,{enumerable:!0,get:()=>e[o]});return n}function zs(e){const t=il();let n=e();return ul(),x(n)&&(n=n.catch((e=>{throw cl(t),e}))),[n,()=>cl(t)]}let qs=!0;function Ys(e){const t=Ks(e),n=e.proxy,o=e.ctx;qs=!1,t.beforeCreate&&Gs(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:a,watch:l,provide:c,inject:u,created:d,beforeMount:p,mounted:h,beforeUpdate:m,updated:g,activated:_,deactivated:b,beforeDestroy:x,beforeUnmount:w,destroyed:k,unmounted:S,render:E,renderTracked:T,renderTriggered:M,errorCaptured:A,serverPrefetch:R,expose:C,inheritAttrs:O,components:I,directives:B,filters:P}=t,L=null;if(u&&Xs(u,o,L),a)for(const r in a){const e=a[r];v(e)&&(o[r]=e.bind(n))}if(s){0;const t=s.call(n,n);0,y(t)&&(e.data=St(t))}if(qs=!0,i)for(const f in i){const e=i[f],t=v(e)?e.bind(n,n):v(e.get)?e.get.bind(n,n):r;0;const s=!v(e)&&v(e.set)?e.set.bind(n):r,a=Tl({get:t,set:s});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(l)for(const r in l)Ws(l[r],o,n,r);if(c){const e=v(c)?c.call(n):c;Reflect.ownKeys(e).forEach((t=>{Ei(t,e[t])}))}function N(e,t){f(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(d&&Gs(d,e,"c"),N(Lr,p),N(Nr,h),N(jr,m),N(Fr,g),N(Mr,_),N(Ar,b),N(zr,A),N($r,T),N(Vr,M),N(Dr,w),N(Hr,S),N(Ur,R),x&&qn("OPTIONS_BEFORE_DESTROY",e)&&N(Dr,x),k&&qn("OPTIONS_DESTROYED",e)&&N(Hr,k),f(C))if(C.length){const t=e.exposed||(e.exposed={});C.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});E&&e.render===r&&(e.render=E),null!=O&&(e.inheritAttrs=O),I&&(e.components=I),B&&(e.directives=B),P&&$n("FILTERS",e)&&(e.filters=P)}function Xs(e,t,n=r){f(e)&&(e=ti(e));for(const o in e){const n=e[o];let r;r=y(n)?"default"in n?Ti(n.from||o,n.default,!0):Ti(n.from||o):Ti(n),Ut(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[o]=r}}function Gs(e,t,n){dn(f(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Ws(e,t,n,o){const r=o.includes(".")?nr(n,o):()=>n[o];if(_(e)){const n=t[e];v(n)&&Jo(r,n)}else if(v(e))Jo(r,e.bind(n));else if(y(e))if(f(e))e.forEach((e=>Ws(e,t,n,o)));else{const o=v(e.handler)?e.handler.bind(n):t[e.handler];v(o)&&Jo(r,o,e)}else 0}function Ks(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,a=s.get(t);let c;return a?c=a:r.length||n||o?(c={},r.length&&r.forEach((e=>Zs(c,e,i,!0))),Zs(c,t,i)):$n("PRIVATE_APIS",e)?(c=l({},t),c.parent=e.parent&&e.parent.proxy,c.propsData=e.vnode.props):c=t,y(t)&&s.set(t,c),c}function Zs(e,t,n,o=!1){v(t)&&(t=t.options);const{mixins:r,extends:s}=t;s&&Zs(e,s,n,!0),r&&r.forEach((t=>Zs(e,t,n,!0)));for(const i in t)if(o&&"expose"===i);else{const o=Qs[i]||n&&n[i];e[i]=o?o(e[i],t[i]):t[i]}return e}const Qs={data:Js,props:ri,emits:ri,methods:oi,computed:oi,beforeCreate:ni,created:ni,beforeMount:ni,mounted:ni,beforeUpdate:ni,updated:ni,beforeDestroy:ni,beforeUnmount:ni,destroyed:ni,unmounted:ni,activated:ni,deactivated:ni,errorCaptured:ni,serverPrefetch:ni,components:oi,directives:oi,watch:si,provide:Js,inject:ei};function Js(e,t){return t?e?function(){return($n("OPTIONS_DATA_MERGE",null)?Rs:l)(v(e)?e.call(this,this):e,v(t)?t.call(this,this):t)}:t:e}function ei(e,t){return oi(ti(e),ti(t))}function ti(e){if(f(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ni(e,t){return e?[...new Set([].concat(e,t))]:t}function oi(e,t){return e?l(Object.create(null),e,t):t}function ri(e,t){return e?f(e)&&f(t)?[...new Set([...e,...t])]:l(Object.create(null),Hs(e),Hs(null!=t?t:{})):t}function si(e,t){if(!e)return t;if(!t)return e;const n=l(Object.create(null),e);for(const o in t)n[o]=ni(e[o],t[o]);return n}function ii(e){e.optionMergeStrategies=new Proxy({},{get(e,t){return t in e?e[t]:t in Qs&&qn("CONFIG_OPTION_MERGE_STRATS",null)?Qs[t]:void 0}})}Qs.filters=oi;let ai,li,ci=!1;function ui(e,t){ai=t({});const n=li=function e(t={}){return o(t,e)};function o(t={},o){zn("GLOBAL_MOUNT",null);const{data:r}=t;r&&!v(r)&&qn("OPTIONS_DATA_FN",null)&&(t.data=()=>r);const s=e(t);o!==n&&mi(s,o);const i=s._createRoot(t);return t.el?i.$mount(t.el):i}n.version="2.6.14-compat:3.4.15",n.config=ai.config,n.use=(e,...t)=>(e&&v(e.install)?e.install(n,...t):v(e)&&e(n,...t),n),n.mixin=e=>(ai.mixin(e),n),n.component=(e,t)=>t?(ai.component(e,t),n):ai.component(e),n.directive=(e,t)=>t?(ai.directive(e,t),n):ai.directive(e),n.options={_base:n};let s=1;n.cid=s,n.nextTick=kn;const i=new WeakMap;function a(e={}){if(zn("GLOBAL_EXTEND",null),v(e)&&(e=e.options),i.has(e))return i.get(e);const t=this;function r(e){return o(e?Zs(l({},r.options),e,Qs):r.options,r)}r.super=t,r.prototype=Object.create(n.prototype),r.prototype.constructor=r;const c={};for(const n in t.options){const e=t.options[n];c[n]=f(e)?e.slice():y(e)?l(Object.create(null),e):e}return r.options=Zs(c,e,Qs),r.options._base=r,r.extend=a.bind(r),r.mixin=t.mixin,r.use=t.use,r.cid=++s,i.set(e,r),r}n.extend=a.bind(n),n.set=(e,t,n)=>{zn("GLOBAL_SET",null),e[t]=n},n.delete=(e,t)=>{zn("GLOBAL_DELETE",null),delete e[t]},n.observable=e=>(zn("GLOBAL_OBSERVABLE",null),St(e)),n.filter=(e,t)=>t?(ai.filter(e,t),n):ai.filter(e);const c={warn:r,extend:l,mergeOptions:(e,t,n)=>Zs(e,t,n?void 0:Qs),defineReactive:bi};return Object.defineProperty(n,"util",{get(){return zn("GLOBAL_PRIVATE_UTIL",null),c}}),n.configureCompat=Un,n}function di(e,t,n){fi(e,t),ii(e.config),ai&&(gi(e,t,n),pi(e),hi(e))}function fi(e,t){t.filters={},e.filter=(n,o)=>(zn("FILTERS",null),o?(t.filters[n]=o,e):t.filters[n])}function pi(e){Object.defineProperties(e,{prototype:{get(){return e.config.globalProperties}},nextTick:{value:kn},extend:{value:li.extend},set:{value:li.set},delete:{value:li.delete},observable:{value:li.observable},util:{get(){return li.util}}})}function hi(e){e._context.mixins=[...ai._context.mixins],["components","directives","filters"].forEach((t=>{e._context[t]=Object.create(ai._context[t])})),ci=!0;for(const t in ai.config){if("isNativeTag"===t)continue;if(bl()&&("isCustomElement"===t||"compilerOptions"===t))continue;const n=ai.config[t];e.config[t]=y(n)?Object.create(n):n,"ignoredElements"===t&&$n("CONFIG_IGNORED_ELEMENTS",null)&&!bl()&&f(n)&&(e.config.compilerOptions.isCustomElement=e=>n.some((t=>_(t)?t===e:t.test(e))))}ci=!1,mi(e,li)}function mi(e,t){const n=$n("GLOBAL_PROTOTYPE",null);n&&(e.config.globalProperties=Object.create(t.prototype));let o=!1;const r=Object.getOwnPropertyDescriptors(t.prototype);for(const s in r)"constructor"!==s&&(o=!0,n&&Object.defineProperty(e.config.globalProperties,s,r[s]))}function gi(e,t,n){let o=!1;e._createRoot=r=>{const s=e._component,i=za(s,r.propsData||null);i.appContext=t;const a=!v(s)&&!s.render&&!s.template,l=()=>{},c=rl(i,null,null);return a&&(c.render=l),ml(c),i.component=c,i.isCompatRoot=!0,c.ctx._compat_mount=t=>{if(o)return;let r,u;if("string"===typeof t){const e=document.querySelector(t);if(!e)return;r=e}else r=t||document.createElement("div");return r instanceof SVGElement?u="svg":"function"===typeof MathMLElement&&r instanceof MathMLElement&&(u="mathml"),a&&c.render===l&&(c.render=null,s.template=r.innerHTML,yl(c,!1,!0)),r.innerHTML="",n(i,r,u),r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o=!0,e._container=r,r.__vue_app__=e,c.proxy},c.ctx._compat_destroy=()=>{if(o)n(null,e._container),delete e._container.__vue_app__;else{const{bum:e,scope:t,um:n}=c;e&&N(e),$n("INSTANCE_EVENT_HOOKS",c)&&c.emit("hook:beforeDestroy"),t&&t.stop(),n&&N(n),$n("INSTANCE_EVENT_HOOKS",c)&&c.emit("hook:destroyed")}},c.proxy}}const vi=["push","pop","shift","unshift","splice","sort","reverse"],_i=new WeakSet;function bi(e,t,n){if(y(n)&&!Rt(n)&&!_i.has(n)){const e=St(n);f(n)?vi.forEach((t=>{n[t]=(...n)=>{Array.prototype[t].call(e,...n)}})):Object.keys(n).forEach((e=>{try{yi(n,e,n[e])}catch(t){}}))}const o=e.$;o&&e===o.proxy?(yi(o.ctx,t,n),o.accessCache=Object.create(null)):Rt(e)?e[t]=n:yi(e,t,n)}function yi(e,t,n){n=y(n)?St(n):n,Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get(){return Le(e,"get",t),n},set(o){n=y(o)?St(o):o,Ne(e,"set",t,o)}})}function xi(){return{app:null,config:{isNativeTag:s,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let wi=0;function ki(e,t){return function(n,o=null){v(n)||(n=l({},n)),null==o||y(o)||(o=null);const r=xi(),s=new WeakSet;let i=!1;const a=r.app={_uid:wi++,_component:n,_props:o,_container:null,_context:r,_instance:null,version:Il,get config(){return r.config},set config(e){0},use(e,...t){return s.has(e)||(e&&v(e.install)?(s.add(e),e.install(a,...t)):v(e)&&(s.add(e),e(a,...t))),a},mixin(e){return r.mixins.includes(e)||r.mixins.push(e),a},component(e,t){return t?(r.components[e]=t,a):r.components[e]},directive(e,t){return t?(r.directives[e]=t,a):r.directives[e]},mount(s,l,c){if(!i){0;const u=za(n,o);return u.appContext=r,!0===c?c="svg":!1===c&&(c=void 0),l&&t?t(u,s):e(u,s,c),i=!0,a._container=s,s.__vue_app__=a,kl(u.component)||u.component.proxy}},unmount(){i&&(e(null,a._container),delete a._container.__vue_app__)},provide(e,t){return r.provides[e]=t,a},runWithContext(e){Si=a;try{return e()}finally{Si=null}}};return di(a,r,e),a}}let Si=null;function Ei(e,t){if(sl){let n=sl.provides;const o=sl.parent&&sl.parent.provides;o===n&&(n=sl.provides=Object.create(o)),n[e]=t}else 0}function Ti(e,t,n=!1){const o=sl||io;if(o||Si){const r=o?null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:Si._context.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&v(t)?t.call(o&&o.proxy):t}else 0}function Mi(){return!!(sl||io||Si)}function Ai(e,t,n){return new Proxy({},{get(n,o){if("$options"===o)return Ks(e);if(o in t)return t[o];const r=e.type.inject;if(r)if(f(r)){if(r.includes(o))return Ti(o)}else if(o in r)return Ti(o)}})}function Ri(e,t){return"is"===e||(!("class"!==e&&"style"!==e||!$n("INSTANCE_ATTRS_CLASS_STYLE",t))||(!(!i(e)||!$n("INSTANCE_LISTENERS",t))||!(!e.startsWith("routerView")&&"registerRouteInstance"!==e)))}function Ci(e,t,n,o=!1){const r={},s={};j(s,Ha,1),e.propsDefaults=Object.create(null),Ii(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:Et(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function Oi(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:a}}=e,l=Bt(r),[c]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;Ii(e,t,r,s)&&(u=!0);for(const s in l)t&&(d(t,s)||(o=I(s))!==s&&d(t,o))||(c?!n||void 0===n[s]&&void 0===n[o]||(r[s]=Bi(c,l,s,void 0,e,!0)):delete r[s]);if(s!==l)for(const e in s)t&&(d(t,e)||d(t,e+"Native"))||(delete s[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o<n.length;o++){let a=n[o];if(so(e.emitsOptions,a))continue;const f=t[a];if(c)if(d(s,a))f!==s[a]&&(s[a]=f,u=!0);else{const t=C(a);r[t]=Bi(c,l,t,f,e,!1)}else{if(i(a)&&a.endsWith("Native"))a=a.slice(0,-6);else if(Ri(a,e))continue;f!==s[a]&&(s[a]=f,u=!0)}}}u&&Ne(e,"set","$attrs")}function Ii(e,n,o,r){const[s,a]=e.propsOptions;let l,c=!1;if(n)for(let t in n){if(M(t))continue;if(t.startsWith("onHook:")&&qn("INSTANCE_EVENT_HOOKS",e,t.slice(2).toLowerCase()),"inline-template"===t)continue;const u=n[t];let f;if(s&&d(s,f=C(t)))a&&a.includes(f)?(l||(l={}))[f]=u:o[f]=u;else if(!so(e.emitsOptions,t)){if(i(t)&&t.endsWith("Native"))t=t.slice(0,-6);else if(Ri(t,e))continue;t in r&&u===r[t]||(r[t]=u,c=!0)}}if(a){const n=Bt(o),r=l||t;for(let t=0;t<a.length;t++){const i=a[t];o[i]=Bi(s,n,i,r[i],e,!d(r,i))}}return c}function Bi(e,t,n,o,r,s){const i=e[n];if(null!=i){const e=d(i,"default");if(e&&void 0===o){const e=i.default;if(i.type!==Function&&!i.skipFactory&&v(e)){const{propsDefaults:s}=r;if(n in s)o=s[n];else{const i=cl(r);o=s[n]=e.call($n("PROPS_DEFAULT_THIS",r)?Ai(r,t,n):null,t),i()}}else o=e}i[0]&&(s&&!e?o=!1:!i[1]||""!==o&&o!==I(n)||(o=!0))}return o}function Pi(e,n,r=!1){const s=n.propsCache,i=s.get(e);if(i)return i;const a=e.props,c={},u=[];let p=!1;if(!v(e)){const t=e=>{v(e)&&(e=e.options),p=!0;const[t,o]=Pi(e,n,!0);l(c,t),o&&u.push(...o)};!r&&n.mixins.length&&n.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!a&&!p)return y(e)&&s.set(e,o),o;if(f(a))for(let o=0;o<a.length;o++){0;const e=C(a[o]);Li(e)&&(c[e]=t)}else if(a){0;for(const e in a){const t=C(e);if(Li(t)){const n=a[e],o=c[t]=f(n)||v(n)?{type:n}:l({},n);if(o){const e=Fi(Boolean,o.type),n=Fi(String,o.type);o[0]=e>-1,o[1]=n<0||e<n,(e>-1||d(o,"default"))&&u.push(t)}}}}const h=[c,u];return y(e)&&s.set(e,h),h}function Li(e){return"$"!==e[0]}function Ni(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:null===e?"null":""}function ji(e,t){return Ni(e)===Ni(t)}function Fi(e,t){return f(t)?t.findIndex((t=>ji(t,e))):v(t)&&ji(t,e)?0:-1}const Di=e=>"_"===e[0]||"$stable"===e,Hi=e=>f(e)?e.map(Za):[Za(e)],Ui=(e,t,n)=>{if(t._n)return t;const o=po(((...e)=>Hi(t(...e))),n);return o._c=!1,o},Vi=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Di(r))continue;const n=e[r];if(v(n))t[r]=Ui(r,n,o);else if(null!=n){0;const e=Hi(n);t[r]=()=>e}}},$i=(e,t)=>{const n=Hi(t);e.slots.default=()=>n},zi=(e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=Bt(t),j(t,"_",n)):Vi(t,e.slots={},e)}else e.slots={},t&&$i(e,t);j(e.slots,Ha,1)},qi=(e,n,o)=>{const{vnode:r,slots:s}=e;let i=!0,a=t;if(32&r.shapeFlag){const t=n._;t?o&&1===t?i=!1:(l(s,n),o||1!==t||delete s._):(i=!n.$stable,Vi(n,s,e)),a=n}else n&&($i(e,n),a={default:1});if(i)for(const t in s)Di(t)||null!=a[t]||delete s[t]};function Yi(e,n,o,r,s=!1){if(f(e))return void e.forEach(((e,t)=>Yi(e,n&&(f(n)?n[t]:n),o,r,s)));if(yr(r)&&!s)return;const i=4&r.shapeFlag?kl(r.component)||r.component.proxy:r.el,a=s?null:i,{i:l,r:u}=e;const p=n&&n.r,h=l.refs===t?l.refs={}:l.refs,m=l.setupState;if(null!=p&&p!==u&&(_(p)?(h[p]=null,d(m,p)&&(m[p]=null)):Ut(p)&&(p.value=null)),v(u))un(u,l,12,[a,h]);else{const t=_(u),n=Ut(u),r=e.f;if(t||n){const l=()=>{if(r){const n=t?d(m,u)?m[u]:h[u]:u.value;s?f(n)&&c(n,i):f(n)?n.includes(i)||n.push(i):t?(h[u]=[i],d(m,u)&&(m[u]=h[u])):(u.value=[i],e.k&&(h[e.k]=u.value))}else t?(h[u]=a,d(m,u)&&(m[u]=a)):n&&(u.value=a,e.k&&(h[e.k]=a))};s||r?l():(l.id=-1,ea(l,o))}else 0}}let Xi=!1;const Gi=e=>e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName,Wi=e=>e.namespaceURI.includes("MathML"),Ki=e=>Gi(e)?"svg":Wi(e)?"mathml":void 0,Zi=e=>8===e.nodeType;function Qi(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:s,parentNode:a,remove:l,insert:c,createComment:u}}=e,d=(e,t)=>{if(!t.hasChildNodes())return n(null,e,t),Cn(),void(t._vnode=e);Xi=!1,f(t.firstChild,e,null,null,null),Cn(),t._vnode=e,Xi&&console.error("Hydration completed but contains mismatches.")},f=(n,o,i,l,u,d=!1)=>{const y=Zi(n)&&"["===n.data,x=()=>g(n,o,i,l,u,y),{type:w,ref:k,shapeFlag:S,patchFlag:E}=o;let T=n.nodeType;o.el=n,-2===E&&(d=!1,o.dynamicChildren=null);let M=null;switch(w){case Sa:3!==T?""===o.children?(c(o.el=r(""),a(n),n),M=n):M=x():(n.data!==o.children&&(Xi=!0,n.data=o.children),M=s(n));break;case Ea:b(n)?(M=s(n),_(o.el=n.content.firstChild,n,i)):M=8!==T||y?x():s(n);break;case Ta:if(y&&(n=s(n),T=n.nodeType),1===T||3===T){M=n;const e=!o.children.length;for(let t=0;t<o.staticCount;t++)e&&(o.children+=1===M.nodeType?M.outerHTML:M.data),t===o.staticCount-1&&(o.anchor=M),M=s(M);return y?s(M):M}x();break;case ka:M=y?m(n,o,i,l,u,d):x();break;default:if(1&S)M=1===T&&o.type.toLowerCase()===n.tagName.toLowerCase()||b(n)?p(n,o,i,l,u,d):x();else if(6&S){o.slotScopeIds=u;const e=a(n);if(M=y?v(n):Zi(n)&&"teleport start"===n.data?v(n,n.data,"teleport end"):s(n),t(o,e,null,i,l,Ki(e),d),yr(o)){let t;y?(t=za(ka),t.anchor=M?M.previousSibling:e.lastChild):t=3===n.nodeType?Ga(""):za("div"),t.el=n,o.component.subTree=t}}else 64&S?M=8!==T?x():o.type.hydrate(n,o,i,l,u,d,e,h):128&S&&(M=o.type.hydrate(n,o,i,l,Ki(a(n)),u,d,e,f))}return null!=k&&Yi(k,null,l,o),M},p=(e,t,n,r,s,a)=>{a=a||!!t.dynamicChildren;const{type:c,props:u,patchFlag:d,shapeFlag:f,dirs:p,transition:m}=t,g="input"===c||"option"===c;if(g||-1!==d){p&&sr(t,null,n,"created");let c,v=!1;if(b(e)){v=ia(r,m)&&n&&n.vnode.props&&n.vnode.props.appear;const o=e.content.firstChild;v&&m.beforeEnter(o),_(o,e,n),t.el=e=o}if(16&f&&(!u||!u.innerHTML&&!u.textContent)){let o=h(e.firstChild,t,e,n,r,s,a);while(o){Xi=!0;const e=o;o=o.nextSibling,l(e)}}else 8&f&&e.textContent!==t.children&&(Xi=!0,e.textContent=t.children);if(u)if(g||!a||48&d)for(const t in u)(g&&(t.endsWith("value")||"indeterminate"===t)||i(t)&&!M(t)||"."===t[0])&&o(e,t,null,u[t],void 0,void 0,n);else u.onClick&&o(e,"onClick",null,u.onClick,void 0,void 0,n);(c=u&&u.onVnodeBeforeMount)&&tl(c,n,t),p&&sr(t,null,n,"beforeMount"),((c=u&&u.onVnodeMounted)||p||v)&&Vo((()=>{c&&tl(c,n,t),v&&m.enter(e),p&&sr(t,null,n,"mounted")}),r)}return e.nextSibling},h=(e,t,o,r,s,i,a)=>{a=a||!!t.dynamicChildren;const l=t.children,c=l.length;for(let u=0;u<c;u++){const t=a?l[u]:l[u]=Za(l[u]);if(e)e=f(e,t,r,s,i,a);else{if(t.type===Sa&&!t.children)continue;Xi=!0,n(null,t,o,null,r,s,Ki(o),i)}}return e},m=(e,t,n,o,r,i)=>{const{slotScopeIds:l}=t;l&&(r=r?r.concat(l):l);const d=a(e),f=h(s(e),t,d,n,o,r,i);return f&&Zi(f)&&"]"===f.data?s(t.anchor=f):(Xi=!0,c(t.anchor=u("]"),d,f),f)},g=(e,t,o,r,i,c)=>{if(Xi=!0,t.el=null,c){const t=v(e);while(1){const n=s(e);if(!n||n===t)break;l(n)}}const u=s(e),d=a(e);return l(e),n(null,t,d,u,o,r,Ki(d),i),u},v=(e,t="[",n="]")=>{let o=0;while(e)if(e=s(e),e&&Zi(e)&&(e.data===t&&o++,e.data===n)){if(0===o)return s(e);o--}return e},_=(e,t,n)=>{const o=t.parentNode;o&&o.replaceChild(e,t);let r=n;while(r)r.vnode.el===t&&(r.vnode.el=r.subTree.el=e),r=r.parent},b=e=>1===e.nodeType&&"template"===e.tagName.toLowerCase();return[d,f]}function Ji(){}const ea=Vo;function ta(e){return oa(e)}function na(e){return oa(e,Qi)}function oa(e,n){Ji();const s=U();s.__VUE__=!0;const{insert:i,remove:a,patchProp:l,createElement:c,createText:u,createComment:d,setText:f,setElementText:p,parentNode:h,nextSibling:m,setScopeId:g=r,insertStaticContent:v}=e,_=(e,t,n,o=null,r=null,s=null,i=void 0,a=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!Fa(e,t)&&(o=W(e),z(e,r,s,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:c,ref:u,shapeFlag:d}=t;switch(c){case Sa:b(e,t,n,o);break;case Ea:y(e,t,n,o);break;case Ta:null==e&&x(t,n,o,i);break;case ka:I(e,t,n,o,r,s,i,a,l);break;default:1&d?S(e,t,n,o,r,s,i,a,l):6&d?B(e,t,n,o,r,s,i,a,l):(64&d||128&d)&&c.process(e,t,n,o,r,s,i,a,l,Q)}null!=u&&r&&Yi(u,e&&e.ref,s,t||e,!t)},b=(e,t,n,o)=>{if(null==e)i(t.el=u(t.children),n,o);else{const n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},y=(e,t,n,o)=>{null==e?i(t.el=d(t.children||""),n,o):t.el=e.el},x=(e,t,n,o)=>{[e.el,e.anchor]=v(e.children,t,n,o,e.el,e.anchor)},w=({el:e,anchor:t},n,o)=>{let r;while(e&&e!==t)r=m(e),i(e,n,o),e=r;i(t,n,o)},k=({el:e,anchor:t})=>{let n;while(e&&e!==t)n=m(e),a(e),e=n;a(t)},S=(e,t,n,o,r,s,i,a,l)=>{"svg"===t.type?i="svg":"math"===t.type&&(i="mathml"),null==e?E(t,n,o,r,s,i,a,l):R(e,t,r,s,i,a,l)},E=(e,t,n,o,r,s,a,u)=>{let d,f;const{props:h,shapeFlag:m,transition:g,dirs:v}=e;if(d=e.el=c(e.type,s,h&&h.is,h),8&m?p(d,e.children):16&m&&A(e.children,d,null,o,r,ra(e,s),a,u),v&&sr(e,null,o,"created"),T(d,e,e.scopeId,a,o),h){for(const t in h)"value"===t||M(t)||l(d,t,null,h[t],s,e.children,o,r,G);"value"in h&&l(d,"value",null,h.value,s),(f=h.onVnodeBeforeMount)&&tl(f,o,e)}v&&sr(e,null,o,"beforeMount");const _=ia(r,g);_&&g.beforeEnter(d),i(d,t,n),((f=h&&h.onVnodeMounted)||_||v)&&ea((()=>{f&&tl(f,o,e),_&&g.enter(d),v&&sr(e,null,o,"mounted")}),r)},T=(e,t,n,o,r)=>{if(n&&g(e,n),o)for(let s=0;s<o.length;s++)g(e,o[s]);if(r){let n=r.subTree;if(t===n){const t=r.vnode;T(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},A=(e,t,n,o,r,s,i,a,l=0)=>{for(let c=l;c<e.length;c++){const l=e[c]=a?Qa(e[c]):Za(e[c]);_(null,l,t,n,o,r,s,i,a)}},R=(e,n,o,r,s,i,a)=>{const c=n.el=e.el;let{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=16&e.patchFlag;const h=e.props||t,m=n.props||t;let g;if(o&&sa(o,!1),(g=m.onVnodeBeforeUpdate)&&tl(g,o,n,e),f&&sr(n,e,o,"beforeUpdate"),o&&sa(o,!0),d?C(e.dynamicChildren,d,c,o,r,ra(n,s),i):a||D(e,n,c,null,o,r,ra(n,s),i,!1),u>0){if(16&u)O(c,n,h,m,o,r,s);else if(2&u&&h.class!==m.class&&l(c,"class",null,m.class,s),4&u&&l(c,"style",h.style,m.style,s),8&u){const t=n.dynamicProps;for(let n=0;n<t.length;n++){const i=t[n],a=h[i],u=m[i];u===a&&"value"!==i||l(c,i,a,u,s,e.children,o,r,G)}}1&u&&e.children!==n.children&&p(c,n.children)}else a||null!=d||O(c,n,h,m,o,r,s);((g=m.onVnodeUpdated)||f)&&ea((()=>{g&&tl(g,o,n,e),f&&sr(n,e,o,"updated")}),r)},C=(e,t,n,o,r,s,i)=>{for(let a=0;a<t.length;a++){const l=e[a],c=t[a],u=l.el&&(l.type===ka||!Fa(l,c)||70&l.shapeFlag)?h(l.el):n;_(l,c,u,null,o,r,s,i,!0)}},O=(e,n,o,r,s,i,a)=>{if(o!==r){if(o!==t)for(const t in o)M(t)||t in r||l(e,t,o[t],null,a,n.children,s,i,G);for(const t in r){if(M(t))continue;const c=r[t],u=o[t];c!==u&&"value"!==t&&l(e,t,u,c,a,n.children,s,i,G)}"value"in r&&l(e,"value",o.value,r.value,a)}},I=(e,t,n,o,r,s,a,l,c)=>{const d=t.el=e?e.el:u(""),f=t.anchor=e?e.anchor:u("");let{patchFlag:p,dynamicChildren:h,slotScopeIds:m}=t;m&&(l=l?l.concat(m):m),null==e?(i(d,n,o),i(f,n,o),A(t.children||[],n,f,r,s,a,l,c)):p>0&&64&p&&h&&e.dynamicChildren?(C(e.dynamicChildren,h,n,r,s,a,l),(null!=t.key||r&&t===r.subTree)&&aa(e,t,!0)):D(e,t,n,f,r,s,a,l,c)},B=(e,t,n,o,r,s,i,a,l)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,i,l):P(t,n,o,r,s,i,l):L(e,t,l)},P=(e,t,n,o,r,s,i)=>{const a=e.isCompatRoot&&e.component,l=a||(e.component=rl(e,o,r));if(kr(e)&&(l.ctx.renderer=Q),a||ml(l),l.asyncDep){if(r&&r.registerDep(l,j),!e.el){const e=l.subTree=za(Ea);y(null,e,t,n)}}else j(l,e,t,n,r,s,i)},L=(e,t,n)=>{const o=t.component=e.component;if(_o(e,t,n)){if(o.asyncDep&&!o.asyncResolved)return void F(o,t,n);o.next=t,Mn(o.update),o.effect.dirty=!0,o.update()}else t.el=e.el,o.vnode=t},j=(e,t,n,o,s,i,a)=>{const l=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:r,vnode:c}=e;{const n=ca(e);if(n)return t&&(t.el=c.el,F(e,t,a)),void n.asyncDep.then((()=>{e.isUnmounted||l()}))}let u,d=t;0,sa(e,!1),t?(t.el=c.el,F(e,t,a)):t=c,n&&N(n),(u=t.props&&t.props.onVnodeBeforeUpdate)&&tl(u,r,t,c),$n("INSTANCE_EVENT_HOOKS",e)&&e.emit("hook:beforeUpdate"),sa(e,!0);const f=ho(e);0;const p=e.subTree;e.subTree=f,_(p,f,h(p.el),W(p),e,s,i),t.el=f.el,null===d&&yo(e,f.el),o&&ea(o,s),(u=t.props&&t.props.onVnodeUpdated)&&ea((()=>tl(u,r,t,c)),s),$n("INSTANCE_EVENT_HOOKS",e)&&ea((()=>e.emit("hook:updated")),s)}else{let r;const{el:a,props:l}=t,{bm:c,m:u,parent:d}=e,f=yr(t);if(sa(e,!1),c&&N(c),!f&&(r=l&&l.onVnodeBeforeMount)&&tl(r,d,t),$n("INSTANCE_EVENT_HOOKS",e)&&e.emit("hook:beforeMount"),sa(e,!0),a&&ee){const n=()=>{e.subTree=ho(e),ee(a,e.subTree,e,s,null)};f?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{0;const r=e.subTree=ho(e);0,_(null,r,n,o,e,s,i),t.el=r.el}if(u&&ea(u,s),!f&&(r=l&&l.onVnodeMounted)){const e=t;ea((()=>tl(r,d,e)),s)}$n("INSTANCE_EVENT_HOOKS",e)&&ea((()=>e.emit("hook:mounted")),s),(256&t.shapeFlag||d&&yr(d.vnode)&&256&d.vnode.shapeFlag)&&(e.a&&ea(e.a,s),$n("INSTANCE_EVENT_HOOKS",e)&&ea((()=>e.emit("hook:activated")),s)),e.isMounted=!0,t=n=o=null}},c=e.effect=new pe(l,r,(()=>En(u)),e.scope),u=e.update=()=>{c.dirty&&c.run()};u.id=e.uid,sa(e,!0),u()},F=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,Oi(e,t.props,o,n),qi(e,t.children,n),ke(),Rn(e),Se()},D=(e,t,n,o,r,s,i,a,l=!1)=>{const c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:h}=t;if(f>0){if(128&f)return void V(c,d,n,o,r,s,i,a,l);if(256&f)return void H(c,d,n,o,r,s,i,a,l)}8&h?(16&u&&G(c,r,s),d!==c&&p(n,d)):16&u?16&h?V(c,d,n,o,r,s,i,a,l):G(c,r,s,!0):(8&u&&p(n,""),16&h&&A(d,n,o,r,s,i,a,l))},H=(e,t,n,r,s,i,a,l,c)=>{e=e||o,t=t||o;const u=e.length,d=t.length,f=Math.min(u,d);let p;for(p=0;p<f;p++){const o=t[p]=c?Qa(t[p]):Za(t[p]);_(e[p],o,n,null,s,i,a,l,c)}u>d?G(e,s,i,!0,!1,f):A(t,n,r,s,i,a,l,c,f)},V=(e,t,n,r,s,i,a,l,c)=>{let u=0;const d=t.length;let f=e.length-1,p=d-1;while(u<=f&&u<=p){const o=e[u],r=t[u]=c?Qa(t[u]):Za(t[u]);if(!Fa(o,r))break;_(o,r,n,null,s,i,a,l,c),u++}while(u<=f&&u<=p){const o=e[f],r=t[p]=c?Qa(t[p]):Za(t[p]);if(!Fa(o,r))break;_(o,r,n,null,s,i,a,l,c),f--,p--}if(u>f){if(u<=p){const e=p+1,o=e<d?t[e].el:r;while(u<=p)_(null,t[u]=c?Qa(t[u]):Za(t[u]),n,o,s,i,a,l,c),u++}}else if(u>p)while(u<=f)z(e[u],s,i,!0),u++;else{const h=u,m=u,g=new Map;for(u=m;u<=p;u++){const e=t[u]=c?Qa(t[u]):Za(t[u]);null!=e.key&&g.set(e.key,u)}let v,b=0;const y=p-m+1;let x=!1,w=0;const k=new Array(y);for(u=0;u<y;u++)k[u]=0;for(u=h;u<=f;u++){const o=e[u];if(b>=y){z(o,s,i,!0);continue}let r;if(null!=o.key)r=g.get(o.key);else for(v=m;v<=p;v++)if(0===k[v-m]&&Fa(o,t[v])){r=v;break}void 0===r?z(o,s,i,!0):(k[r-m]=u+1,r>=w?w=r:x=!0,_(o,t[r],n,null,s,i,a,l,c),b++)}const S=x?la(k):o;for(v=S.length-1,u=y-1;u>=0;u--){const e=m+u,o=t[e],f=e+1<d?t[e+1].el:r;0===k[u]?_(null,o,n,f,s,i,a,l,c):x&&(v<0||u!==S[v]?$(o,n,f,2):v--)}}},$=(e,t,n,o,r=null)=>{const{el:s,type:a,transition:l,children:c,shapeFlag:u}=e;if(6&u)return void $(e.component.subTree,t,n,o);if(128&u)return void e.suspense.move(t,n,o);if(64&u)return void a.move(e,t,n,Q);if(a===ka){i(s,t,n);for(let e=0;e<c.length;e++)$(c[e],t,n,o);return void i(e.anchor,t,n)}if(a===Ta)return void w(e,t,n);const d=2!==o&&1&u&&l;if(d)if(0===o)l.beforeEnter(s),i(s,t,n),ea((()=>l.enter(s)),r);else{const{leave:e,delayLeave:o,afterLeave:r}=l,a=()=>i(s,t,n),c=()=>{e(s,(()=>{a(),r&&r()}))};o?o(s,a,c):c()}else i(s,t,n)},z=(e,t,n,o=!1,r=!1)=>{const{type:s,props:i,ref:a,children:l,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:f}=e;if(null!=a&&Yi(a,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const p=1&u&&f,h=!yr(e);let m;if(h&&(m=i&&i.onVnodeBeforeUnmount)&&tl(m,t,e),6&u)X(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);p&&sr(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,r,Q,o):c&&(s!==ka||d>0&&64&d)?G(c,t,n,!1,!0):(s===ka&&384&d||!r&&16&u)&&G(l,t,n),o&&q(e)}(h&&(m=i&&i.onVnodeUnmounted)||p)&&ea((()=>{m&&tl(m,t,e),p&&sr(e,null,t,"unmounted")}),n)},q=e=>{const{type:t,el:n,anchor:o,transition:r}=e;if(t===ka)return void Y(n,o);if(t===Ta)return void k(e);const s=()=>{a(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:o}=r,i=()=>t(n,s);o?o(e.el,s,i):i()}else s()},Y=(e,t)=>{let n;while(e!==t)n=m(e),a(e),e=n;a(t)},X=(e,t,n)=>{const{bum:o,scope:r,update:s,subTree:i,um:a}=e;o&&N(o),$n("INSTANCE_EVENT_HOOKS",e)&&e.emit("hook:beforeDestroy"),r.stop(),s&&(s.active=!1,z(i,e,t,n)),a&&ea(a,t),$n("INSTANCE_EVENT_HOOKS",e)&&ea((()=>e.emit("hook:destroyed")),t),ea((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},G=(e,t,n,o=!1,r=!1,s=0)=>{for(let i=s;i<e.length;i++)z(e[i],t,n,o,r)},W=e=>6&e.shapeFlag?W(e.component.subTree):128&e.shapeFlag?e.suspense.next():m(e.anchor||e.el);let K=!1;const Z=(e,t,n)=>{null==e?t._vnode&&z(t._vnode,null,null,!0):_(t._vnode||null,e,t,null,null,null,n),K||(K=!0,Rn(),Cn(),K=!1),t._vnode=e},Q={p:_,um:z,m:$,r:q,mt:P,mc:A,pc:D,pbc:C,n:W,o:e};let J,ee;return n&&([J,ee]=n(Q)),{render:Z,hydrate:J,createApp:ki(Z,J)}}function ra({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function sa({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ia(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function aa(e,t,n=!1){const o=e.children,r=t.children;if(f(o)&&f(r))for(let s=0;s<o.length;s++){const e=o[s];let t=r[s];1&t.shapeFlag&&!t.dynamicChildren&&((t.patchFlag<=0||32===t.patchFlag)&&(t=r[s]=Qa(r[s]),t.el=e.el),n||aa(e,t)),t.type===Sa&&(t.el=e.el)}}function la(e){const t=e.slice(),n=[0];let o,r,s,i,a;const l=e.length;for(o=0;o<l;o++){const l=e[o];if(0!==l){if(r=n[n.length-1],e[r]<l){t[o]=r,n.push(o);continue}s=0,i=n.length-1;while(s<i)a=s+i>>1,e[n[a]]<l?s=a+1:i=a;l<e[n[s]]&&(s>0&&(t[o]=n[s-1]),n[s]=o)}}s=n.length,i=n[s-1];while(s-- >0)n[s]=i,i=t[i];return n}function ca(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ca(t)}const ua=e=>e.__isTeleport,da=e=>e&&(e.disabled||""===e.disabled),fa=e=>"undefined"!==typeof SVGElement&&e instanceof SVGElement,pa=e=>"function"===typeof MathMLElement&&e instanceof MathMLElement,ha=(e,t)=>{const n=e&&e.to;if(_(n)){if(t){const e=t(n);return e}return null}return n},ma={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,s,i,a,l,c){const{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:h,createText:m,createComment:g}}=c,v=da(t.props);let{shapeFlag:_,children:b,dynamicChildren:y}=t;if(null==e){const e=t.el=m(""),c=t.anchor=m("");p(e,n,o),p(c,n,o);const d=t.target=ha(t.props,h),f=t.targetAnchor=m("");d&&(p(f,d),"svg"===i||fa(d)?i="svg":("mathml"===i||pa(d))&&(i="mathml"));const g=(e,t)=>{16&_&&u(b,e,t,r,s,i,a,l)};v?g(n,c):d&&g(d,f)}else{t.el=e.el;const o=t.anchor=e.anchor,u=t.target=e.target,p=t.targetAnchor=e.targetAnchor,m=da(e.props),g=m?n:u,_=m?o:p;if("svg"===i||fa(u)?i="svg":("mathml"===i||pa(u))&&(i="mathml"),y?(f(e.dynamicChildren,y,g,r,s,i,a),aa(e,t,!0)):l||d(e,t,g,_,r,s,i,a,!1),v)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ga(t,n,o,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=ha(t.props,h);e&&ga(t,e,null,c,0)}else m&&ga(t,u,p,c,1)}ba(t)},remove(e,t,n,o,{um:r,o:{remove:s}},i){const{shapeFlag:a,children:l,anchor:c,targetAnchor:u,target:d,props:f}=e;if(d&&s(u),i&&s(c),16&a){const e=i||!da(f);for(let o=0;o<l.length;o++){const s=l[o];r(s,t,n,e,!!s.dynamicChildren)}}},move:ga,hydrate:va};function ga(e,t,n,{o:{insert:o},m:r},s=2){0===s&&o(e.targetAnchor,t,n);const{el:i,anchor:a,shapeFlag:l,children:c,props:u}=e,d=2===s;if(d&&o(i,t,n),(!d||da(u))&&16&l)for(let f=0;f<c.length;f++)r(c[f],t,n,2);d&&o(a,t,n)}function va(e,t,n,o,r,s,{o:{nextSibling:i,parentNode:a,querySelector:l}},c){const u=t.target=ha(t.props,l);if(u){const l=u._lpa||u.firstChild;if(16&t.shapeFlag)if(da(t.props))t.anchor=c(i(e),t,a(e),n,o,r,s),t.targetAnchor=l;else{t.anchor=i(e);let a=l;while(a)if(a=i(a),a&&8===a.nodeType&&"teleport anchor"===a.data){t.targetAnchor=a,u._lpa=t.targetAnchor&&i(t.targetAnchor);break}c(l,t,u,n,o,r,s)}ba(t)}return t.anchor&&i(t.anchor)}const _a=ma;function ba(e){const t=e.ctx;if(t&&t.ut){let n=e.children[0].el;while(n&&n!==e.targetAnchor)1===n.nodeType&&n.setAttribute("data-v-owner",t.uid),n=n.nextSibling;t.ut()}}const ya=new WeakMap;function xa(e){if(ya.has(e))return ya.get(e);let t,n;const o=new Promise(((e,o)=>{t=e,n=o})),r=e(t,n);let s;return s=x(r)?xr((()=>r)):!y(r)||ja(r)||f(r)?null==r?xr((()=>o)):e:xr({loader:()=>r.component,loadingComponent:r.loading,errorComponent:r.error,delay:r.delay,timeout:r.timeout}),ya.set(e,s),s}function wa(e,t){return e.__isBuiltIn?e:(v(e)&&e.cid&&(e=e.options),v(e)&&Yn("COMPONENT_ASYNC",t,e)?xa(e):y(e)&&e.functional&&qn("COMPONENT_FUNCTIONAL",t,e)?rs(e):e)}const ka=Symbol.for("v-fgt"),Sa=Symbol.for("v-txt"),Ea=Symbol.for("v-cmt"),Ta=Symbol.for("v-stc"),Ma=[];let Aa=null;function Ra(e=!1){Ma.push(Aa=e?null:[])}function Ca(){Ma.pop(),Aa=Ma[Ma.length-1]||null}let Oa,Ia=1;function Ba(e){Ia+=e}function Pa(e){return e.dynamicChildren=Ia>0?Aa||o:null,Ca(),Ia>0&&Aa&&Aa.push(e),e}function La(e,t,n,o,r,s){return Pa($a(e,t,n,o,r,s,!0))}function Na(e,t,n,o,r){return Pa(za(e,t,n,o,r,!0))}function ja(e){return!!e&&!0===e.__v_isVNode}function Fa(e,t){return e.type===t.type&&e.key===t.key}function Da(e){Oa=e}const Ha="__vInternal",Ua=({key:e})=>null!=e?e:null,Va=({ref:e,ref_key:t,ref_for:n})=>("number"===typeof e&&(e=""+e),null!=e?_(e)||Ut(e)||v(e)?{i:io,r:e,k:t,f:!!n}:e:null);function $a(e,t=null,n=null,o=0,r=null,s=(e===ka?0:1),i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ua(t),ref:t&&Va(t),scopeId:ao,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:io};return a?(Ja(l,n),128&s&&e.normalize(l)):n&&(l.shapeFlag|=_(n)?8:16),Ia>0&&!i&&Aa&&(l.patchFlag>0||6&s)&&32!==l.patchFlag&&Aa.push(l),eo(l),ts(l),l}const za=qa;function qa(e,t=null,n=null,o=0,r=null,s=!1){if(e&&e!==Eo||(e=Ea),ja(e)){const o=Xa(e,t,!0);return n&&Ja(o,n),Ia>0&&!s&&Aa&&(6&o.shapeFlag?Aa[Aa.indexOf(e)]=o:Aa.push(o)),o.patchFlag|=-2,o}if(El(e)&&(e=e.__vccOpts),e=wa(e,io),t){t=Ya(t);let{class:e,style:n}=t;e&&!_(e)&&(t.class=W(e)),y(n)&&(It(n)&&!f(n)&&(n=l({},n)),t.style=z(n))}const i=_(e)?1:Oo(e)?128:ua(e)?64:y(e)?4:v(e)?2:0;return $a(e,t,n,o,r,i,s,!0)}function Ya(e){return e?It(e)||Ha in e?l({},e):e:null}function Xa(e,t,n=!1){const{props:o,ref:r,patchFlag:s,children:i}=e,a=t?el(o||{},t):o,l={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&Ua(a),ref:t&&t.ref?n&&r?f(r)?r.concat(Va(t)):[r,Va(t)]:Va(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ka?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xa(e.ssContent),ssFallback:e.ssFallback&&Xa(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return ts(l),l}function Ga(e=" ",t=0){return za(Sa,null,e,t)}function Wa(e,t){const n=za(Ta,null,e);return n.staticCount=t,n}function Ka(e="",t=!1){return t?(Ra(),Na(Ea,null,e)):za(Ea,null,e)}function Za(e){return null==e||"boolean"===typeof e?za(Ea):f(e)?za(ka,null,e.slice()):"object"===typeof e?Qa(e):za(Sa,null,String(e))}function Qa(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Xa(e)}function Ja(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"===typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),Ja(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||Ha in t?3===o&&io&&(1===io.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=io}}else v(t)?(t={default:t,_ctx:io},n=32):(t=String(t),64&o?(n=16,t=[Ga(t)]):n=8);e.children=t,e.shapeFlag|=n}function el(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const e in o)if("class"===e)t.class!==o.class&&(t.class=W([t.class,o.class]));else if("style"===e)t.style=z([t.style,o.style]);else if(i(e)){const n=t[e],r=o[e];!r||n===r||f(n)&&n.includes(r)||(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=o[e])}return t}function tl(e,t,n,o=null){dn(e,t,7,[n,o])}const nl=xi();let ol=0;function rl(e,n,o){const r=e.type,s=(n?n.appContext:e.appContext)||nl,i={uid:ol++,vnode:e,type:r,parent:n,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,scope:new le(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Pi(r,s),emitsOptions:ro(r,s),emit:null,emitted:null,propsDefaults:t,inheritAttrs:r.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:o,suspenseId:o?o.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=n?n.root:i,i.emit=oo.bind(null,i),e.ce&&e.ce(i),i}let sl=null;const il=()=>sl||io;let al,ll;{const e=U(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach((t=>t(e))):o[0](e)}};al=t("__VUE_INSTANCE_SETTERS__",(e=>sl=e)),ll=t("__VUE_SSR_SETTERS__",(e=>hl=e))}const cl=e=>{const t=sl;return al(e),e.scope.on(),()=>{e.scope.off(),al(t)}},ul=()=>{sl&&sl.scope.off(),al(null)};function dl(e){return 4&e.vnode.shapeFlag}let fl,pl,hl=!1;function ml(e,t=!1){t&&ll(t);const{props:n,children:o}=e.vnode,r=dl(e);Ci(e,n,r,t),zi(e,o);const s=r?gl(e,t):void 0;return t&&ll(!1),s}function gl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pt(new Proxy(e.ctx,Ms));const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?wl(e):null,r=cl(e);ke();const s=un(o,e,0,[e.props,n]);if(Se(),r(),x(s)){if(s.then(ul,ul),t)return s.then((n=>{vl(e,n,t)})).catch((t=>{fn(t,e,0)}));e.asyncDep=s}else vl(e,s,t)}else yl(e,t)}function vl(e,t,n){v(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:y(t)&&(e.setupState=Kt(t)),yl(e,n)}function _l(e){fl=e,pl=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,As))}}const bl=()=>!fl;function yl(e,t,n){const o=e.type;if(Gr(e),!e.render){if(!t&&fl&&!o.render){const t=e.vnode.props&&e.vnode.props["inline-template"]||o.template||Ks(e).template;if(t){0;const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:s,compilerOptions:i}=o,a=l(l({isCustomElement:n,delimiters:s},r),i);a.compatConfig=Object.create(Hn),o.compatConfig&&l(a.compatConfig,o.compatConfig),o.render=fl(t,a)}}e.render=o.render||r,pl&&pl(e)}if(!n){const t=cl(e);ke();try{Ys(e)}finally{Se(),t()}}}function xl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Le(e,"get","$attrs"),t[n]}}))}function wl(e){const t=t=>{e.exposed=t||{}};return{get attrs(){return xl(e)},slots:e.slots,emit:e.emit,expose:t}}function kl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Kt(Pt(e.exposed)),{get(t,n){return n in t?t[n]:n in Es?Es[n](e):void 0},has(e,t){return t in e||t in Es}}))}function Sl(e,t=!0){return v(e)?e.displayName||e.name:e.name||t&&e.__name}function El(e){return v(e)&&"__vccOpts"in e}const Tl=(e,t)=>Ft(e,t,hl);function Ml(e,n,o=t){const r=il();const s=C(n),i=I(n),a=Qt(((t,a)=>{let l;return Zo((()=>{const t=e[n];L(l,t)&&(l=t,a())})),{get(){return t(),o.get?o.get(l):l},set(e){const t=r.vnode.props;t&&(n in t||s in t||i in t)&&(`onUpdate:${n}`in t||`onUpdate:${s}`in t||`onUpdate:${i}`in t)||!L(e,l)||(l=e,a()),r.emit(`update:${n}`,o.set?o.set(e):e)}}})),l="modelValue"===n?"modelModifiers":`${n}Modifiers`;return a[Symbol.iterator]=()=>{let t=0;return{next(){return t<2?{value:t++?e[l]||{}:a,done:!1}:{done:!0}}}},a}function Al(e,t,n){const o=arguments.length;return 2===o?y(t)&&!f(t)?ja(t)?za(e,null,[t]):za(e,t):za(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&ja(n)&&(n=[n]),za(e,t,n))}function Rl(){return void 0}function Cl(e,t,n,o){const r=n[o];if(r&&Ol(r,e))return r;const s=t();return s.memo=e.slice(),n[o]=s}function Ol(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let o=0;o<n.length;o++)if(L(n[o],t[o]))return!1;return Ia>0&&Aa&&Aa.push(e),!0}const Il="3.4.15",Bl=r,Pl=cn,Ll=Pn,Nl=jn,jl={createComponentInstance:rl,setupComponent:ml,renderComponentRoot:ho,setCurrentRenderingInstance:lo,isVNode:ja,normalizeVNode:Za},Fl=jl,Dl=Ao,Hl={warnDeprecation:Dn,createCompatVue:ui,isCompatEnabled:$n,checkCompatEnabled:Yn,softAssertCompatEnabled:qn},Ul=Hl,Vl=Fn,$l="http://www.w3.org/2000/svg",zl="http://www.w3.org/1998/Math/MathML",ql="undefined"!==typeof document?document:null,Yl=ql&&ql.createElement("template"),Xl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r="svg"===t?ql.createElementNS($l,e):"mathml"===t?ql.createElementNS(zl,e):ql.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>ql.createTextNode(e),createComment:e=>ql.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ql.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling)){while(1)if(t.insertBefore(r.cloneNode(!0),n),r===s||!(r=r.nextSibling))break}else{Yl.innerHTML="svg"===o?`<svg>${e}</svg>`:"mathml"===o?`<math>${e}</math>`:e;const r=Yl.content;if("svg"===o||"mathml"===o){const e=r.firstChild;while(e.firstChild)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Gl="transition",Wl="animation",Kl=Symbol("_vtc"),Zl=(e,{slots:t})=>Al(fr,nc(e),t);Zl.displayName="Transition",Zl.__isBuiltIn=!0;const Ql={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Jl=Zl.props=l({},ur,Ql),ec=(e,t=[])=>{f(e)?e.forEach((e=>e(...t))):e&&e(...t)},tc=e=>!!e&&(f(e)?e.some((e=>e.length>1)):e.length>1);function nc(e){const t={};for(const l in e)l in Ql||(t[l]=e[l]);if(!1===e.css)return t;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:u=i,appearToClass:d=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,m=Ul.isCompatEnabled("TRANSITION_CLASSES",null);let g,v,_;if(m){const t=e=>e.replace(/-from$/,"");e.enterFromClass||(g=t(s)),e.appearFromClass||(v=t(c)),e.leaveFromClass||(_=t(f))}const b=oc(r),y=b&&b[0],x=b&&b[1],{onBeforeEnter:w,onEnter:k,onEnterCancelled:S,onLeave:E,onLeaveCancelled:T,onBeforeAppear:M=w,onAppear:A=k,onAppearCancelled:R=S}=t,C=(e,t,n)=>{ic(e,t?d:a),ic(e,t?u:i),n&&n()},O=(e,t)=>{e._isLeaving=!1,ic(e,f),ic(e,h),ic(e,p),t&&t()},I=e=>(t,n)=>{const r=e?A:k,i=()=>C(t,e,n);ec(r,[t,i]),ac((()=>{if(ic(t,e?c:s),m){const n=e?v:g;n&&ic(t,n)}sc(t,e?d:a),tc(r)||cc(t,o,y,i)}))};return l(t,{onBeforeEnter(e){ec(w,[e]),sc(e,s),m&&g&&sc(e,g),sc(e,i)},onBeforeAppear(e){ec(M,[e]),sc(e,c),m&&v&&sc(e,v),sc(e,u)},onEnter:I(!1),onAppear:I(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>O(e,t);sc(e,f),m&&_&&sc(e,_),pc(),sc(e,p),ac((()=>{e._isLeaving&&(ic(e,f),m&&_&&ic(e,_),sc(e,h),tc(E)||cc(e,o,x,n))})),ec(E,[e,n])},onEnterCancelled(e){C(e,!1),ec(S,[e])},onAppearCancelled(e){C(e,!0),ec(R,[e])},onLeaveCancelled(e){O(e),ec(T,[e])}})}function oc(e){if(null==e)return null;if(y(e))return[rc(e.enter),rc(e.leave)];{const t=rc(e);return[t,t]}}function rc(e){const t=D(e);return t}function sc(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e[Kl]||(e[Kl]=new Set)).add(t)}function ic(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const n=e[Kl];n&&(n.delete(t),n.size||(e[Kl]=void 0))}function ac(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let lc=0;function cc(e,t,n,o){const r=e._endId=++lc,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:a,propCount:l}=uc(e,t);if(!i)return o();const c=i+"end";let u=0;const d=()=>{e.removeEventListener(c,f),s()},f=t=>{t.target===e&&++u>=l&&d()};setTimeout((()=>{u<l&&d()}),a+1),e.addEventListener(c,f)}function uc(e,t){const n=window.getComputedStyle(e),o=e=>(n[e]||"").split(", "),r=o(`${Gl}Delay`),s=o(`${Gl}Duration`),i=dc(r,s),a=o(`${Wl}Delay`),l=o(`${Wl}Duration`),c=dc(a,l);let u=null,d=0,f=0;t===Gl?i>0&&(u=Gl,d=i,f=s.length):t===Wl?c>0&&(u=Wl,d=c,f=l.length):(d=Math.max(i,c),u=d>0?i>c?Gl:Wl:null,f=u?u===Gl?s.length:l.length:0);const p=u===Gl&&/\b(transform|all)(,|$)/.test(o(`${Gl}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function dc(e,t){while(e.length<t.length)e=e.concat(e);return Math.max(...t.map(((t,n)=>fc(t)+fc(e[n]))))}function fc(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function pc(){return document.body.offsetHeight}function hc(e,t,n){const o=e[Kl];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const mc=Symbol("_vod"),gc={beforeMount(e,{value:t},{transition:n}){e[mc]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):vc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!==!n&&(o?t?(o.beforeEnter(e),vc(e,!0),o.enter(e)):o.leave(e,(()=>{vc(e,!1)})):vc(e,t))},beforeUnmount(e,{value:t}){vc(e,t)}};function vc(e,t){e.style.display=t?e[mc]:"none"}function _c(){gc.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const bc=Symbol("");function yc(e){const t=il();if(!t)return;const n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach((e=>wc(e,n)))},o=()=>{const o=e(t.proxy);xc(t.subTree,o),n(o)};Ko(o),Nr((()=>{const e=new MutationObserver(o);e.observe(t.subTree.el.parentNode,{childList:!0}),Hr((()=>e.disconnect()))}))}function xc(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push((()=>{xc(n.activeBranch,t)}))}while(e.component)e=e.component.subTree;if(1&e.shapeFlag&&e.el)wc(e.el,t);else if(e.type===ka)e.children.forEach((e=>xc(e,t)));else if(e.type===Ta){let{el:n,anchor:o}=e;while(n){if(wc(n,t),n===o)break;n=n.nextSibling}}}function wc(e,t){if(1===e.nodeType){const n=e.style;let o="";for(const e in t)n.setProperty(`--${e}`,t[e]),o+=`--${e}: ${t[e]};`;n[bc]=o}}function kc(e,t,n){const o=e.style,r=o.display,s=_(n);if(n&&!s){if(t&&!_(t))for(const e in t)null==n[e]&&Ec(o,e,"");for(const e in n)Ec(o,e,n[e])}else if(s){if(t!==n){const e=o[bc];e&&(n+=";"+e),o.cssText=n}}else t&&e.removeAttribute("style");mc in e&&(o.display=r)}const Sc=/\s*!important$/;function Ec(e,t,n){if(f(n))n.forEach((n=>Ec(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Ac(e,t);Sc.test(n)?e.setProperty(I(o),n.replace(Sc,""),"important"):e[o]=n}}const Tc=["Webkit","Moz","ms"],Mc={};function Ac(e,t){const n=Mc[t];if(n)return n;let o=C(t);if("filter"!==o&&o in e)return Mc[t]=o;o=B(o);for(let r=0;r<Tc.length;r++){const n=Tc[r]+o;if(n in e)return Mc[t]=n}return t}const Rc="http://www.w3.org/1999/xlink";function Cc(e,t,n,o,r){if(o&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(Rc,t.slice(6,t.length)):e.setAttributeNS(Rc,t,n);else{if(Ic(e,t,n,r))return;const o=Q(t);null==n||o&&!J(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}const Oc=e("contenteditable,draggable,spellcheck");function Ic(e,t,n,o=null){if(Oc(t)){const r=null===n?"false":"boolean"!==typeof n&&void 0!==n?"true":null;if(r&&Ul.softAssertCompatEnabled("ATTR_ENUMERATED_COERCION",o,t,n,r))return e.setAttribute(t,r),!0}else if(!1===n&&!Q(t)&&Ul.softAssertCompatEnabled("ATTR_FALSE_VALUE",o,t))return e.removeAttribute(t),!0;return!1}function Bc(e,t,n,o,r,s,i){if("innerHTML"===t||"textContent"===t)return o&&i(o,r,s),void(e[t]=null==n?"":n);const a=e.tagName;if("value"===t&&"PROGRESS"!==a&&!a.includes("-")){e._value=n;const o="OPTION"===a?e.getAttribute("value"):e.value,r=null==n?"":n;return o!==r&&(e.value=r),void(null==n&&e.removeAttribute(t))}let l=!1;if(""===n||null==n){const o=typeof e[t];"boolean"===o?n=J(n):null==n&&"string"===o?(n="",l=!0):"number"===o&&(n=0,l=!0)}else if(!1===n&&Ul.isCompatEnabled("ATTR_FALSE_VALUE",r)){const o=typeof e[t];"string"!==o&&"number"!==o||(n="number"===o?0:"",l=!0)}try{e[t]=n}catch(c){0}l&&e.removeAttribute(t)}function Pc(e,t,n,o){e.addEventListener(t,n,o)}function Lc(e,t,n,o){e.removeEventListener(t,n,o)}const Nc=Symbol("_vei");function jc(e,t,n,o,r=null){const s=e[Nc]||(e[Nc]={}),i=s[t];if(o&&i)i.value=o;else{const[n,a]=Dc(t);if(o){const i=s[t]=$c(o,r);Pc(e,n,i,a)}else i&&(Lc(e,n,i,a),s[t]=void 0)}}const Fc=/(?:Once|Passive|Capture)$/;function Dc(e){let t;if(Fc.test(e)){let n;t={};while(n=e.match(Fc))e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}const n=":"===e[2]?e.slice(3):I(e.slice(2));return[n,t]}let Hc=0;const Uc=Promise.resolve(),Vc=()=>Hc||(Uc.then((()=>Hc=0)),Hc=Date.now());function $c(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();dn(zc(e,n.value),t,5,[e])};return n.value=e,n.attached=Vc(),n}function zc(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}const qc=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Yc=(e,t,n,o,r,s,l,c,u)=>{const d="svg"===r;"class"===t?hc(e,o,d):"style"===t?kc(e,n,o):i(t)?a(t)||jc(e,t,n,o,l):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):Xc(e,t,o,d))?Bc(e,t,o,s,l,c,u):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),Cc(e,t,o,d,l))};function Xc(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&qc(t)&&v(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!qc(t)||!_(n))&&t in e}
+/*! #__NO_SIDE_EFFECTS__ */function Gc(e,t){const n=br(e);class o extends Zc{constructor(e){super(n,e,t)}}return o.def=n,o}
+/*! #__NO_SIDE_EFFECTS__ */const Wc=e=>Gc(e,Nu),Kc="undefined"!==typeof HTMLElement?HTMLElement:class{};class Zc extends Kc{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this._ob=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):(this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,this._ob&&(this._ob.disconnect(),this._ob=null),kn((()=>{this._connected||(Lu(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){this._resolved=!0;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver((e=>{for(const t of e)this._setAttr(t.attributeName)})),this._ob.observe(this,{attributes:!0});const e=(e,t=!1)=>{const{props:n,styles:o}=e;let r;if(n&&!f(n))for(const s in n){const e=n[s];(e===Number||e&&e.type===Number)&&(s in this._props&&(this._props[s]=D(this._props[s])),(r||(r=Object.create(null)))[C(s)]=!0)}this._numberProps=r,t&&this._resolveProps(e),this._applyStyles(o),this._update()},t=this._def.__asyncLoader;t?t().then((t=>e(t,!0))):e(this._def)}_resolveProps(e){const{props:t}=e,n=f(t)?t:Object.keys(t||{});for(const o of Object.keys(this))"_"!==o[0]&&n.includes(o)&&this._setProp(o,this[o],!0,!1);for(const o of n.map(C))Object.defineProperty(this,o,{get(){return this._getProp(o)},set(e){this._setProp(o,e)}})}_setAttr(e){let t=this.getAttribute(e);const n=C(e);this._numberProps&&this._numberProps[n]&&(t=D(t)),this._setProp(n,t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,o=!0){t!==this._props[e]&&(this._props[e]=t,o&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(I(e),""):"string"===typeof t||"number"===typeof t?this.setAttribute(I(e),t+""):t||this.removeAttribute(I(e))))}_update(){Lu(this._createVNode(),this.shadowRoot)}_createVNode(){const e=za(this._def,l({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0;const t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};e.emit=(e,...n)=>{t(e,n),I(e)!==e&&t(I(e),n)};let n=this;while(n=n&&(n.parentNode||n.host))if(n instanceof Zc){e.parent=n._instance,e.provides=n._instance.provides;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t)}))}}function Qc(e="$style"){{const n=il();if(!n)return t;const o=n.type.__cssModules;if(!o)return t;const r=o[e];return r||t}}const Jc=new WeakMap,eu=new WeakMap,tu=Symbol("_moveCb"),nu=Symbol("_enterCb"),ou={name:"TransitionGroup",props:l({},Jl,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=il(),o=lr();let r,s;return Fr((()=>{if(!r.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!lu(r[0].el,n.vnode.el,t))return;r.forEach(su),r.forEach(iu);const o=r.filter(au);pc(),o.forEach((e=>{const n=e.el,o=n.style;sc(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const r=n[tu]=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",r),n[tu]=null,ic(n,t))};n.addEventListener("transitionend",r)}))})),()=>{const i=Bt(e),a=nc(i);let l=i.tag||ka;!i.tag&&Ul.checkCompatEnabled("TRANSITION_GROUP_ROOT",n.parent)&&(l="span"),r=s,s=t.default?_r(t.default()):[];for(let e=0;e<s.length;e++){const t=s[e];null!=t.key&&vr(t,hr(t,a,o,n))}if(r)for(let e=0;e<r.length;e++){const t=r[e];vr(t,hr(t,a,o,n)),Jc.set(t,t.el.getBoundingClientRect())}return za(l,null,s)}},__isBuiltIn:!0};ou.props;const ru=ou;function su(e){const t=e.el;t[tu]&&t[tu](),t[nu]&&t[nu]()}function iu(e){eu.set(e,e.el.getBoundingClientRect())}function au(e){const t=Jc.get(e),n=eu.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${o}px,${r}px)`,t.transitionDuration="0s",e}}function lu(e,t,n){const o=e.cloneNode(),r=e[Kl];r&&r.forEach((e=>{e.split(/\s+/).forEach((e=>e&&o.classList.remove(e)))})),n.split(/\s+/).forEach((e=>e&&o.classList.add(e))),o.style.display="none";const s=1===t.nodeType?t:t.parentNode;s.appendChild(o);const{hasTransform:i}=uc(o);return s.removeChild(o),i}const cu=e=>{const t=e.props["onUpdate:modelValue"]||e.props["onModelCompat:input"];return f(t)?e=>N(t,e):t};function uu(e){e.target.composing=!0}function du(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const fu=Symbol("_assign"),pu={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e[fu]=cu(r);const s=o||r.props&&"number"===r.props.type;Pc(e,t?"change":"input",(t=>{if(t.target.composing)return;let o=e.value;n&&(o=o.trim()),s&&(o=F(o)),e[fu](o)})),n&&Pc(e,"change",(()=>{e.value=e.value.trim()})),t||(Pc(e,"compositionstart",uu),Pc(e,"compositionend",du),Pc(e,"change",du))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:r}},s){if(e[fu]=cu(s),e.composing)return;const i=r||"number"===e.type?F(e.value):e.value,a=null==t?"":t;if(i!==a){if(document.activeElement===e&&"range"!==e.type){if(n)return;if(o&&e.value.trim()===a)return}e.value=a}}},hu={deep:!0,created(e,t,n){e[fu]=cu(n),Pc(e,"change",(()=>{const t=e._modelValue,n=bu(e),o=e.checked,r=e[fu];if(f(t)){const e=ne(t,n),s=-1!==e;if(o&&!s)r(t.concat(n));else if(!o&&s){const n=[...t];n.splice(e,1),r(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),r(e)}else r(yu(e,o))}))},mounted:mu,beforeUpdate(e,t,n){e[fu]=cu(n),mu(e,t,n)}};function mu(e,{value:t,oldValue:n},o){e._modelValue=t,f(t)?e.checked=ne(t,o.props.value)>-1:h(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=te(t,yu(e,!0)))}const gu={created(e,{value:t},n){e.checked=te(t,n.props.value),e[fu]=cu(n),Pc(e,"change",(()=>{e[fu](bu(e))}))},beforeUpdate(e,{value:t,oldValue:n},o){e[fu]=cu(o),t!==n&&(e.checked=te(t,o.props.value))}},vu={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const r=h(t);Pc(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?F(bu(e)):bu(e)));e[fu](e.multiple?r?new Set(t):t:t[0]),e._assigning=!0,kn((()=>{e._assigning=!1}))})),e[fu]=cu(o)},mounted(e,{value:t,oldValue:n,modifiers:{number:o}}){_u(e,t,n,o)},beforeUpdate(e,t,n){e[fu]=cu(n)},updated(e,{value:t,oldValue:n,modifiers:{number:o}}){e._assigning||_u(e,t,n,o)}};function _u(e,t,n,o){const r=e.multiple,s=f(t);if((!r||s||h(t))&&(!s||!te(t,n))){for(let n=0,i=e.options.length;n<i;n++){const i=e.options[n],a=bu(i);if(r)if(s){const e=typeof a;i.selected="string"===e||"number"===e?t.includes(o?F(a):a):ne(t,a)>-1}else i.selected=t.has(a);else if(te(bu(i),t))return void(e.selectedIndex!==n&&(e.selectedIndex=n))}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function bu(e){return"_value"in e?e._value:e.value}function yu(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const xu={created(e,t,n){ku(e,t,n,null,"created")},mounted(e,t,n){ku(e,t,n,null,"mounted")},beforeUpdate(e,t,n,o){ku(e,t,n,o,"beforeUpdate")},updated(e,t,n,o){ku(e,t,n,o,"updated")}};function wu(e,t){switch(e){case"SELECT":return vu;case"TEXTAREA":return pu;default:switch(t){case"checkbox":return hu;case"radio":return gu;default:return pu}}}function ku(e,t,n,o,r){const s=wu(e.tagName,n.props&&n.props.type),i=s[r];i&&i(e,t,n,o)}function Su(){pu.getSSRProps=({value:e})=>({value:e}),gu.getSSRProps=({value:e},t)=>{if(t.props&&te(t.props.value,e))return{checked:!0}},hu.getSSRProps=({value:e},t)=>{if(f(e)){if(t.props&&ne(e,t.props.value)>-1)return{checked:!0}}else if(h(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},xu.getSSRProps=(e,t)=>{if("string"!==typeof t.type)return;const n=wu(t.type.toUpperCase(),t.props&&t.props.type);return n.getSSRProps?n.getSSRProps(e,t):void 0}}const Eu=["ctrl","shift","alt","meta"],Tu={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Eu.some((n=>e[`${n}Key`]&&!t.includes(n)))},Mu=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e<t.length;e++){const o=Tu[t[e]];if(o&&o(n,t))return}return e(n,...o)})},Au={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Ru=(e,t)=>{let n,o=null;o=il(),Ul.isCompatEnabled("CONFIG_KEY_CODES",o)&&o&&(n=o.appContext.config.keyCodes);const r=e._withKeys||(e._withKeys={}),s=t.join(".");return r[s]||(r[s]=r=>{if(!("key"in r))return;const s=I(r.key);if(t.some((e=>e===s||Au[e]===s)))return e(r);{const s=String(r.keyCode);if(Ul.isCompatEnabled("V_ON_KEYCODE_MODIFIER",o)&&t.some((e=>e==s)))return e(r);if(n)for(const o of t){const t=n[o];if(t){const n=f(t)?t.some((e=>String(e)===s)):String(t)===s;if(n)return e(r)}}}})},Cu=l({patchProp:Yc},Xl);let Ou,Iu=!1;function Bu(){return Ou||(Ou=ta(Cu))}function Pu(){return Ou=Iu?Ou:na(Cu),Iu=!0,Ou}const Lu=(...e)=>{Bu().render(...e)},Nu=(...e)=>{Pu().hydrate(...e)},ju=(...e)=>{const t=Bu().createApp(...e);const{mount:n}=t;return t.mount=e=>{const o=Hu(e);if(!o)return;const r=t._component;v(r)||r.render||r.template||(r.template=o.innerHTML),o.innerHTML="";const s=n(o,!1,Du(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t},Fu=(...e)=>{const t=Pu().createApp(...e);const{mount:n}=t;return t.mount=e=>{const t=Hu(e);if(t)return n(t,!0,Du(t))},t};function Du(e){return e instanceof SVGElement?"svg":"function"===typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function Hu(e){if(_(e)){const t=document.querySelector(e);return t}return e}let Uu=!1;const Vu=()=>{Uu||(Uu=!0,Su(),_c())};var $u=Object.freeze({__proto__:null,BaseTransition:fr,BaseTransitionPropsValidators:ur,Comment:Ea,DeprecationTypes:Vl,EffectScope:le,ErrorCodes:ln,ErrorTypeStrings:Pl,Fragment:ka,KeepAlive:Er,ReactiveEffect:pe,Static:Ta,Suspense:Po,Teleport:_a,Text:Sa,TrackOpTypes:rn,Transition:Zl,TransitionGroup:ru,TriggerOpTypes:sn,VueElement:Zc,assertNumber:an,callWithAsyncErrorHandling:dn,callWithErrorHandling:un,camelize:C,capitalize:B,cloneVNode:Xa,compatUtils:Ul,computed:Tl,createApp:ju,createBlock:Na,createCommentVNode:Ka,createElementBlock:La,createElementVNode:$a,createHydrationRenderer:na,createPropsRestProxy:$s,createRenderer:ta,createSSRApp:Fu,createSlots:is,createStaticVNode:Wa,createTextVNode:Ga,createVNode:za,customRef:Qt,defineAsyncComponent:xr,defineComponent:br,defineCustomElement:Gc,defineEmits:Os,defineExpose:Is,defineModel:Ls,defineOptions:Bs,defineProps:Cs,defineSSRCustomElement:Wc,defineSlots:Ps,devtools:Ll,effect:_e,effectScope:ce,getCurrentInstance:il,getCurrentScope:de,getTransitionRawChildren:_r,guardReactiveProps:Ya,h:Al,handleError:fn,hasInjectionContext:Mi,hydrate:Nu,initCustomFormatter:Rl,initDirectivesForSSR:Vu,inject:Ti,isMemoSame:Ol,isProxy:It,isReactive:Rt,isReadonly:Ct,isRef:Ut,isRuntimeOnly:bl,isShallow:Ot,isVNode:ja,markRaw:Pt,mergeDefaults:Us,mergeModels:Vs,mergeProps:el,nextTick:kn,normalizeClass:W,normalizeProps:K,normalizeStyle:z,onActivated:Mr,onBeforeMount:Lr,onBeforeUnmount:Dr,onBeforeUpdate:jr,onDeactivated:Ar,onErrorCaptured:zr,onMounted:Nr,onRenderTracked:$r,onRenderTriggered:Vr,onScopeDispose:fe,onServerPrefetch:Ur,onUnmounted:Hr,onUpdated:Fr,openBlock:Ra,popScopeId:uo,provide:Ei,proxyRefs:Kt,pushScopeId:co,queuePostFlushCb:An,reactive:St,readonly:Tt,ref:Vt,registerRuntimeCompiler:_l,render:Lu,renderList:ss,renderSlot:as,resolveComponent:So,resolveDirective:Mo,resolveDynamicComponent:To,resolveFilter:Dl,resolveTransitionHooks:hr,setBlockTracking:Ba,setDevtoolsHook:Nl,setTransitionHooks:vr,shallowReactive:Et,shallowReadonly:Mt,shallowRef:$t,ssrContextKey:Xo,ssrUtils:Fl,stop:be,toDisplayString:oe,toHandlerKey:P,toHandlers:cs,toRaw:Bt,toRef:nn,toRefs:Jt,toValue:Gt,transformVNodeArgs:Da,triggerRef:Yt,unref:Xt,useAttrs:Fs,useCssModule:Qc,useCssVars:yc,useModel:Ml,useSSRContext:Go,useSlots:js,useTransitionState:lr,vModelCheckbox:hu,vModelDynamic:xu,vModelRadio:gu,vModelSelect:vu,vModelText:pu,vShow:gc,version:Il,warn:Bl,watch:Jo,watchEffect:Wo,watchPostEffect:Ko,watchSyncEffect:Zo,withAsyncContext:zs,withCtx:po,withDefaults:Ns,withDirectives:rr,withKeys:Ru,withMemo:Cl,withModifiers:Mu,withScopeId:fo});function zu(...e){const t=ju(...e);return Ul.isCompatEnabled("RENDER_FUNCTION",null)&&(t.component("__compat__transition",Zl),t.component("__compat__transition-group",ru),t.component("__compat__keep-alive",Er),t._context.directives.show=gc,t._context.directives.model=xu),t}function qu(){const e=Ul.createCompatVue(ju,zu);return l(e,$u),e}const Yu=qu();Yu.compile=()=>{0};var Xu=Yu;const{configureCompat:Gu}=Xu,Wu=["current-user-id","rooms-loaded","messages-loaded","rooms","room-id","messages","message-actions","link-options","text-messages"];function Ku(e,t,n,o,r,s){return Ra(),La("vue-advanced-chat",{"current-user-id":e.currentUserId,"rooms-loaded":e.rooms.length>0,"messages-loaded":e.messagesLoaded||null,"single-room":"true",rooms:JSON.stringify(e.rooms),"room-id":e.rooms[0].roomId,"show-files":"false","show-emojis":"true","show-reaction-emojis":"false","show-audio":"false",messages:JSON.stringify(e.messages),"message-actions":JSON.stringify([{name:"replyMessage",title:"Répondre"}]),"link-options":JSON.stringify({disabled:!1,target:"_self"}),"text-messages":JSON.stringify({ROOMS_EMPTY:"Aucune conversation",ROOM_EMPTY:"Aucune conversation sélectionnée",NEW_MESSAGES:"Nouveaux messages",MESSAGE_DELETED:"Ce message a été supprimé",MESSAGES_EMPTY:"Aucun message",CONVERSATION_STARTED:"La conversation a commencée le :",TYPE_MESSAGE:"Tapez votre message",SEARCH:"Rechercher",IS_ONLINE:"est en ligne",LAST_SEEN:"dernière connexion ",IS_TYPING:"est en train de taper..."}),onSendMessage:t[0]||(t[0]=t=>e.sendMessage(t.detail[0]))},null,40,Wu)}function Zu(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r<o.length;r++)n[o[r]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const Qu=()=>{},Ju=Object.assign,ed=Object.prototype.hasOwnProperty,td=(e,t)=>ed.call(e,t),nd=Array.isArray,od=e=>"[object Map]"===cd(e),rd=e=>"function"===typeof e,sd=e=>"string"===typeof e,id=e=>"symbol"===typeof e,ad=e=>null!==e&&"object"===typeof e,ld=Object.prototype.toString,cd=e=>ld.call(e),ud=e=>cd(e).slice(8,-1),dd=e=>sd(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,fd=(e,t)=>!Object.is(e,t),pd=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})};let hd;class md{constructor(e=!1){this.active=!0,this.effects=[],this.cleanups=[],!e&&hd&&(this.parent=hd,this.index=(hd.scopes||(hd.scopes=[])).push(this)-1)}run(e){if(this.active){const t=hd;try{return hd=this,e()}finally{hd=t}}}on(){hd=this}off(){hd=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.active=!1}}}function gd(e,t=hd){t&&t.active&&t.effects.push(e)}const vd=e=>{const t=new Set(e);return t.w=0,t.n=0,t},_d=e=>(e.w&Sd)>0,bd=e=>(e.n&Sd)>0,yd=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Sd},xd=e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const r=t[o];_d(r)&&!bd(r)?r.delete(e):t[n++]=r,r.w&=~Sd,r.n&=~Sd}t.length=n}},wd=new WeakMap;let kd=0,Sd=1;const Ed=30;let Td;const Md=Symbol(""),Ad=Symbol("");class Rd{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,gd(this,n)}run(){if(!this.active)return this.fn();let e=Td,t=Od;while(e){if(e===this)return;e=e.parent}try{return this.parent=Td,Td=this,Od=!0,Sd=1<<++kd,kd<=Ed?yd(this):Cd(this),this.fn()}finally{kd<=Ed&&xd(this),Sd=1<<--kd,Td=this.parent,Od=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Td===this?this.deferStop=!0:this.active&&(Cd(this),this.onStop&&this.onStop(),this.active=!1)}}function Cd(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let Od=!0;const Id=[];function Bd(){Id.push(Od),Od=!1}function Pd(){const e=Id.pop();Od=void 0===e||e}function Ld(e,t,n){if(Od&&Td){let t=wd.get(e);t||wd.set(e,t=new Map);let o=t.get(n);o||t.set(n,o=vd()),Nd(o)}}function Nd(e,t){let n=!1;kd<=Ed?bd(e)||(e.n|=Sd,n=!_d(e)):n=!e.has(Td),n&&(e.add(Td),Td.deps.push(e))}function jd(e,t,n,o,r,s){const i=wd.get(e);if(!i)return;let a=[];if("clear"===t)a=[...i.values()];else if("length"===n&&nd(e))i.forEach(((e,t)=>{("length"===t||t>=o)&&a.push(e)}));else switch(void 0!==n&&a.push(i.get(n)),t){case"add":nd(e)?dd(n)&&a.push(i.get("length")):(a.push(i.get(Md)),od(e)&&a.push(i.get(Ad)));break;case"delete":nd(e)||(a.push(i.get(Md)),od(e)&&a.push(i.get(Ad)));break;case"set":od(e)&&a.push(i.get(Md));break}if(1===a.length)a[0]&&Fd(a[0]);else{const e=[];for(const t of a)t&&e.push(...t);Fd(vd(e))}}function Fd(e,t){const n=nd(e)?e:[...e];for(const o of n)o.computed&&Dd(o);for(const o of n)o.computed||Dd(o)}function Dd(e,t){(e!==Td||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Hd=Zu("__proto__,__v_isRef,__isVue"),Ud=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(id)),Vd=Xd(),$d=Xd(!1,!0),zd=Xd(!0),qd=Yd();function Yd(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=Df(this);for(let t=0,r=this.length;t<r;t++)Ld(n,"get",t+"");const o=n[t](...e);return-1===o||!1===o?n[t](...e.map(Df)):o}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){Bd();const n=Df(this)[t].apply(this,e);return Pd(),n}})),e}function Xd(e=!1,t=!1){return function(n,o,r){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&r===(e?t?Af:Mf:t?Tf:Ef).get(n))return n;const s=nd(n);if(!e&&s&&td(qd,o))return Reflect.get(qd,o,r);const i=Reflect.get(n,o,r);return(id(o)?Ud.has(o):Hd(o))?i:(e||Ld(n,"get",o),t?i:qf(i)?s&&dd(o)?i:i.value:ad(i)?e?Bf(i):Of(i):i)}}const Gd=Kd(),Wd=Kd(!0);function Kd(e=!1){return function(t,n,o,r){let s=t[n];if(Nf(s)&&qf(s)&&!qf(o))return!1;if(!e&&!Nf(o)&&(jf(o)||(o=Df(o),s=Df(s)),!nd(t)&&qf(s)&&!qf(o)))return s.value=o,!0;const i=nd(t)&&dd(n)?Number(n)<t.length:td(t,n),a=Reflect.set(t,n,o,r);return t===Df(r)&&(i?fd(o,s)&&jd(t,"set",n,o):jd(t,"add",n,o)),a}}function Zd(e,t){const n=td(e,t);e[t];const o=Reflect.deleteProperty(e,t);return o&&n&&jd(e,"delete",t,void 0),o}function Qd(e,t){const n=Reflect.has(e,t);return id(t)&&Ud.has(t)||Ld(e,"has",t),n}function Jd(e){return Ld(e,"iterate",nd(e)?"length":Md),Reflect.ownKeys(e)}const ef={get:Vd,set:Gd,deleteProperty:Zd,has:Qd,ownKeys:Jd},tf={get:zd,set(e,t){return!0},deleteProperty(e,t){return!0}},nf=Ju({},ef,{get:$d,set:Wd}),of=e=>e,rf=e=>Reflect.getPrototypeOf(e);function sf(e,t,n=!1,o=!1){e=e["__v_raw"];const r=Df(e),s=Df(t);n||(t!==s&&Ld(r,"get",t),Ld(r,"get",s));const{has:i}=rf(r),a=o?of:n?Vf:Uf;return i.call(r,t)?a(e.get(t)):i.call(r,s)?a(e.get(s)):void(e!==r&&e.get(t))}function af(e,t=!1){const n=this["__v_raw"],o=Df(n),r=Df(e);return t||(e!==r&&Ld(o,"has",e),Ld(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function lf(e,t=!1){return e=e["__v_raw"],!t&&Ld(Df(e),"iterate",Md),Reflect.get(e,"size",e)}function cf(e){e=Df(e);const t=Df(this),n=rf(t),o=n.has.call(t,e);return o||(t.add(e),jd(t,"add",e,e)),this}function uf(e,t){t=Df(t);const n=Df(this),{has:o,get:r}=rf(n);let s=o.call(n,e);s||(e=Df(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?fd(t,i)&&jd(n,"set",e,t):jd(n,"add",e,t),this}function df(e){const t=Df(this),{has:n,get:o}=rf(t);let r=n.call(t,e);r||(e=Df(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&jd(t,"delete",e,void 0),s}function ff(){const e=Df(this),t=0!==e.size,n=e.clear();return t&&jd(e,"clear",void 0,void 0),n}function pf(e,t){return function(n,o){const r=this,s=r["__v_raw"],i=Df(s),a=t?of:e?Vf:Uf;return!e&&Ld(i,"iterate",Md),s.forEach(((e,t)=>n.call(o,a(e),a(t),r)))}}function hf(e,t,n){return function(...o){const r=this["__v_raw"],s=Df(r),i=od(s),a="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,c=r[e](...o),u=n?of:t?Vf:Uf;return!t&&Ld(s,"iterate",l?Ad:Md),{next(){const{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function mf(e){return function(...t){return"delete"!==e&&this}}function gf(){const e={get(e){return sf(this,e)},get size(){return lf(this)},has:af,add:cf,set:uf,delete:df,clear:ff,forEach:pf(!1,!1)},t={get(e){return sf(this,e,!1,!0)},get size(){return lf(this)},has:af,add:cf,set:uf,delete:df,clear:ff,forEach:pf(!1,!0)},n={get(e){return sf(this,e,!0)},get size(){return lf(this,!0)},has(e){return af.call(this,e,!0)},add:mf("add"),set:mf("set"),delete:mf("delete"),clear:mf("clear"),forEach:pf(!0,!1)},o={get(e){return sf(this,e,!0,!0)},get size(){return lf(this,!0)},has(e){return af.call(this,e,!0)},add:mf("add"),set:mf("set"),delete:mf("delete"),clear:mf("clear"),forEach:pf(!0,!0)},r=["keys","values","entries",Symbol.iterator];return r.forEach((r=>{e[r]=hf(r,!1,!1),n[r]=hf(r,!0,!1),t[r]=hf(r,!1,!0),o[r]=hf(r,!0,!0)})),[e,n,t,o]}const[vf,_f,bf,yf]=gf();function xf(e,t){const n=t?e?yf:bf:e?_f:vf;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(td(n,o)&&o in t?n:t,o,r)}const wf={get:xf(!1,!1)},kf={get:xf(!1,!0)},Sf={get:xf(!0,!1)},Ef=new WeakMap,Tf=new WeakMap,Mf=new WeakMap,Af=new WeakMap;function Rf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Cf(e){return e["__v_skip"]||!Object.isExtensible(e)?0:Rf(ud(e))}function Of(e){return Nf(e)?e:Pf(e,!1,ef,wf,Ef)}function If(e){return Pf(e,!1,nf,kf,Tf)}function Bf(e){return Pf(e,!0,tf,Sf,Mf)}function Pf(e,t,n,o,r){if(!ad(e))return e;if(e["__v_raw"]&&(!t||!e["__v_isReactive"]))return e;const s=r.get(e);if(s)return s;const i=Cf(e);if(0===i)return e;const a=new Proxy(e,2===i?o:n);return r.set(e,a),a}function Lf(e){return Nf(e)?Lf(e["__v_raw"]):!(!e||!e["__v_isReactive"])}function Nf(e){return!(!e||!e["__v_isReadonly"])}function jf(e){return!(!e||!e["__v_isShallow"])}function Ff(e){return Lf(e)||Nf(e)}function Df(e){const t=e&&e["__v_raw"];return t?Df(t):e}function Hf(e){return pd(e,"__v_skip",!0),e}const Uf=e=>ad(e)?Of(e):e,Vf=e=>ad(e)?Bf(e):e;function $f(e){Od&&Td&&(e=Df(e),Nd(e.dep||(e.dep=vd())))}function zf(e,t){e=Df(e),e.dep&&Fd(e.dep)}function qf(e){return!(!e||!0!==e.__v_isRef)}function Yf(e){return qf(e)?e.value:e}const Xf={get:(e,t,n)=>Yf(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return qf(r)&&!qf(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Gf(e){return Lf(e)?e:new Proxy(e,Xf)}class Wf{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Rd(e,(()=>{this._dirty||(this._dirty=!0,zf(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this["__v_isReadonly"]=n}get value(){const e=Df(this);return $f(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Kf(e,t,n=!1){let o,r;const s=rd(e);s?(o=e,r=Qu):(o=e.get,r=e.set);const i=new Wf(o,r,s||!r,n);return i}function Zf(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r<o.length;r++)n[o[r]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}function Qf(e){if(vp(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=xp(o)?tp(o):Qf(o);if(r)for(const e in r)t[e]=r[e]}return t}return xp(e)||wp(e)?e:void 0}const Jf=/;(?![^(]*\))/g,ep=/:(.+)/;function tp(e){const t={};return e.split(Jf).forEach((e=>{if(e){const n=e.split(ep);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function np(e){let t="";if(xp(e))t=e;else if(vp(e))for(let n=0;n<e.length;n++){const o=np(e[n]);o&&(t+=o+" ")}else if(wp(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function op(e){if(!e)return null;let{class:t,style:n}=e;return t&&!xp(t)&&(e.class=np(t)),n&&(e.style=Qf(n)),e}const rp=e=>xp(e)?e:null==e?"":vp(e)||wp(e)&&(e.toString===Sp||!yp(e.toString))?JSON.stringify(e,sp,2):String(e),sp=(e,t)=>t&&t.__v_isRef?sp(e,t.value):_p(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:bp(t)?{[`Set(${t.size})`]:[...t.values()]}:!wp(t)||vp(t)||Tp(t)?t:String(t),ip={},ap=[],lp=()=>{},cp=()=>!1,up=/^on[^a-z]/,dp=e=>up.test(e),fp=e=>e.startsWith("onUpdate:"),pp=Object.assign,hp=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mp=Object.prototype.hasOwnProperty,gp=(e,t)=>mp.call(e,t),vp=Array.isArray,_p=e=>"[object Map]"===Ep(e),bp=e=>"[object Set]"===Ep(e),yp=e=>"function"===typeof e,xp=e=>"string"===typeof e,wp=e=>null!==e&&"object"===typeof e,kp=e=>wp(e)&&yp(e.then)&&yp(e.catch),Sp=Object.prototype.toString,Ep=e=>Sp.call(e),Tp=e=>"[object Object]"===Ep(e),Mp=Zf(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ap=e=>{const t=Object.create(null);return n=>{const o=t[n];return o||(t[n]=e(n))}},Rp=/-(\w)/g,Cp=Ap((e=>e.replace(Rp,((e,t)=>t?t.toUpperCase():"")))),Op=/\B([A-Z])/g,Ip=Ap((e=>e.replace(Op,"-$1").toLowerCase())),Bp=Ap((e=>e.charAt(0).toUpperCase()+e.slice(1))),Pp=Ap((e=>e?`on${Bp(e)}`:"")),Lp=(e,t)=>!Object.is(e,t),Np=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},jp=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Fp=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Dp;const Hp=()=>Dp||(Dp="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{});function Up(e,t,n,o){let r;try{r=o?e(...o):e()}catch(s){$p(s,t,n)}return r}function Vp(e,t,n,o){if(yp(e)){const r=Up(e,t,n,o);return r&&kp(r)&&r.catch((e=>{$p(e,t,n)})),r}const r=[];for(let s=0;s<e.length;s++)r.push(Vp(e[s],t,n,o));return r}function $p(e,t,n,o=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const r=t.proxy,s=n;while(o){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return;o=o.parent}const i=t.appContext.config.errorHandler;if(i)return void Up(i,null,10,[e,r,s])}zp(e,n,r,o)}function zp(e,t,n,o=!0){console.error(e)}let qp=!1,Yp=!1;const Xp=[];let Gp=0;const Wp=[];let Kp=null,Zp=0;const Qp=[];let Jp=null,eh=0;const th=Promise.resolve();let nh=null,oh=null;function rh(e){const t=nh||th;return e?t.then(this?e.bind(this):e):t}function sh(e){let t=Gp+1,n=Xp.length;while(t<n){const o=t+n>>>1,r=hh(Xp[o]);r<e?t=o+1:n=o}return t}function ih(e){Xp.length&&Xp.includes(e,qp&&e.allowRecurse?Gp+1:Gp)||e===oh||(null==e.id?Xp.push(e):Xp.splice(sh(e.id),0,e),ah())}function ah(){qp||Yp||(Yp=!0,nh=th.then(mh))}function lh(e){const t=Xp.indexOf(e);t>Gp&&Xp.splice(t,1)}function ch(e,t,n,o){vp(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?o+1:o)||n.push(e),ah()}function uh(e){ch(e,Kp,Wp,Zp)}function dh(e){ch(e,Jp,Qp,eh)}function fh(e,t=null){if(Wp.length){for(oh=t,Kp=[...new Set(Wp)],Wp.length=0,Zp=0;Zp<Kp.length;Zp++)Kp[Zp]();Kp=null,Zp=0,oh=null,fh(e,t)}}function ph(e){if(fh(),Qp.length){const e=[...new Set(Qp)];if(Qp.length=0,Jp)return void Jp.push(...e);for(Jp=e,Jp.sort(((e,t)=>hh(e)-hh(t))),eh=0;eh<Jp.length;eh++)Jp[eh]();Jp=null,eh=0}}const hh=e=>null==e.id?1/0:e.id;function mh(e){Yp=!1,qp=!0,fh(e),Xp.sort(((e,t)=>hh(e)-hh(t)));try{for(Gp=0;Gp<Xp.length;Gp++){const e=Xp[Gp];e&&!1!==e.active&&Up(e,null,14)}}finally{Gp=0,Xp.length=0,ph(),qp=!1,nh=null,(Xp.length||Wp.length||Qp.length)&&mh(e)}}function gh(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||ip;let r=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in o){const e=`${"modelValue"===i?"model":i}Modifiers`,{number:t,trim:s}=o[e]||ip;s&&(r=n.map((e=>e.trim()))),t&&(r=n.map(Fp))}let a,l=o[a=Pp(t)]||o[a=Pp(Cp(t))];!l&&s&&(l=o[a=Pp(Ip(t))]),l&&Vp(l,e,6,r);const c=o[a+"Once"];if(c){if(e.emitted){if(e.emitted[a])return}else e.emitted={};e.emitted[a]=!0,Vp(c,e,6,r)}}function vh(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},a=!1;if(!yp(e)){const o=e=>{const n=vh(e,t,!0);n&&(a=!0,pp(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||a?(vp(s)?s.forEach((e=>i[e]=null)):pp(i,s),o.set(e,i),i):(o.set(e,null),null)}function _h(e,t){return!(!e||!dp(t))&&(t=t.slice(2).replace(/Once$/,""),gp(e,t[0].toLowerCase()+t.slice(1))||gp(e,Ip(t))||gp(e,t))}let bh=null,yh=null;function xh(e){const t=bh;return bh=e,yh=e&&e.type.__scopeId||null,t}function wh(e,t=bh,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&Mg(-1);const r=xh(t),s=e(...n);return xh(r),o._d&&Mg(1),s};return o._n=!0,o._c=!0,o._d=!0,o}function kh(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[i],slots:a,attrs:l,emit:c,render:u,renderCache:d,data:f,setupState:p,ctx:h,inheritAttrs:m}=e;let g,v;const _=xh(e);try{if(4&n.shapeFlag){const e=r||o;g=$g(u.call(e,e,d,s,p,f,h)),v=l}else{const e=t;0,g=$g(e.length>1?e(s,{attrs:l,slots:a,emit:c}):e(s,null)),v=t.props?l:Sh(l)}}catch(y){wg.length=0,$p(y,e,1),g=jg(yg)}let b=g;if(v&&!1!==m){const e=Object.keys(v),{shapeFlag:t}=b;e.length&&7&t&&(i&&e.some(fp)&&(v=Eh(v,i)),b=Hg(b,v))}return n.dirs&&(b=Hg(b),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),g=b,xh(_),g}const Sh=e=>{let t;for(const n in e)("class"===n||"style"===n||dp(n))&&((t||(t={}))[n]=e[n]);return t},Eh=(e,t)=>{const n={};for(const o in e)fp(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function Th(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:a,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!r&&!a||a&&a.$stable)||o!==i&&(o?!i||Mh(o,i,c):!!i);if(1024&l)return!0;if(16&l)return o?Mh(o,i,c):!!i;if(8&l){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==o[n]&&!_h(c,n))return!0}}return!1}function Mh(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;r<o.length;r++){const s=o[r];if(t[s]!==e[s]&&!_h(n,s))return!0}return!1}function Ah({vnode:e,parent:t},n){while(t&&t.subTree===e)(e=t.vnode).el=n,t=t.parent}const Rh=e=>e.__isSuspense;function Ch(e,t){t&&t.pendingBranch?vp(e)?t.effects.push(...e):t.effects.push(e):dh(e)}function Oh(e,t){if(Zg){let n=Zg.provides;const o=Zg.parent&&Zg.parent.provides;o===n&&(n=Zg.provides=Object.create(o)),n[e]=t}else;}function Ih(e,t,n=!1){const o=Zg||bh;if(o){const r=null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&yp(t)?t.call(o.proxy):t}}const Bh={};function Ph(e,t,n){return Lh(e,t,n)}function Lh(e,t,{immediate:n,deep:o,flush:r,onTrack:s,onTrigger:i}=ip){const a=Zg;let l,c,u=!1,d=!1;if(qf(e)?(l=()=>e.value,u=jf(e)):Lf(e)?(l=()=>e,o=!0):vp(e)?(d=!0,u=e.some((e=>Lf(e)||jf(e))),l=()=>e.map((e=>qf(e)?e.value:Lf(e)?Fh(e):yp(e)?Up(e,a,2):void 0))):l=yp(e)?t?()=>Up(e,a,2):()=>{if(!a||!a.isUnmounted)return c&&c(),Vp(e,a,3,[f])}:lp,t&&o){const e=l;l=()=>Fh(e())}let f=e=>{c=g.onStop=()=>{Up(e,a,4)}};if(ov)return f=lp,t?n&&Vp(t,a,3,[l(),d?[]:void 0,f]):l(),lp;let p=d?[]:Bh;const h=()=>{if(g.active)if(t){const e=g.run();(o||u||(d?e.some(((e,t)=>Lp(e,p[t]))):Lp(e,p)))&&(c&&c(),Vp(t,a,3,[e,p===Bh?void 0:p,f]),p=e)}else g.run()};let m;h.allowRecurse=!!t,m="sync"===r?h:"post"===r?()=>dg(h,a&&a.suspense):()=>uh(h);const g=new Rd(l,m);return t?n?h():p=g.run():"post"===r?dg(g.run.bind(g),a&&a.suspense):g.run(),()=>{g.stop(),a&&a.scope&&hp(a.scope.effects,g)}}function Nh(e,t,n){const o=this.proxy,r=xp(e)?e.includes(".")?jh(o,e):()=>o[e]:e.bind(o,o);let s;yp(t)?s=t:(s=t.handler,n=t);const i=Zg;Jg(this);const a=Lh(r,s.bind(o),n);return i?Jg(i):ev(),a}function jh(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function Fh(e,t){if(!wp(e)||e["__v_skip"])return e;if(t=t||new Set,t.has(e))return e;if(t.add(e),qf(e))Fh(e.value,t);else if(vp(e))for(let n=0;n<e.length;n++)Fh(e[n],t);else if(bp(e)||_p(e))e.forEach((e=>{Fh(e,t)}));else if(Tp(e))for(const n in e)Fh(e[n],t);return e}function Dh(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return sm((()=>{e.isMounted=!0})),lm((()=>{e.isUnmounting=!0})),e}const Hh=[Function,Array],Uh={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Hh,onEnter:Hh,onAfterEnter:Hh,onEnterCancelled:Hh,onBeforeLeave:Hh,onLeave:Hh,onAfterLeave:Hh,onLeaveCancelled:Hh,onBeforeAppear:Hh,onAppear:Hh,onAfterAppear:Hh,onAppearCancelled:Hh},setup(e,{slots:t}){const n=Qg(),o=Dh();let r;return()=>{const s=t.default&&Gh(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1)for(const e of s)if(e.type!==yg){i=e;break}const a=Df(e),{mode:l}=a;if(o.isLeaving)return qh(i);const c=Yh(i);if(!c)return qh(i);const u=zh(c,a,o,n);Xh(c,u);const d=n.subTree,f=d&&Yh(d);let p=!1;const{getTransitionKey:h}=c.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,p=!0)}if(f&&f.type!==yg&&(!Ig(c,f)||p)){const e=zh(f,a,o,n);if(Xh(f,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,n.update()},qh(i);"in-out"===l&&c.type!==yg&&(e.delayLeave=(e,t,n)=>{const r=$h(o,f);r[String(f.key)]=f,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return i}}},Vh=Uh;function $h(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function zh(e,t,n,o){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:d,onLeave:f,onAfterLeave:p,onLeaveCancelled:h,onBeforeAppear:m,onAppear:g,onAfterAppear:v,onAppearCancelled:_}=t,b=String(e.key),y=$h(n,e),x=(e,t)=>{e&&Vp(e,o,9,t)},w=(e,t)=>{const n=t[1];x(e,t),vp(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},k={mode:s,persisted:i,beforeEnter(t){let o=a;if(!n.isMounted){if(!r)return;o=m||a}t._leaveCb&&t._leaveCb(!0);const s=y[b];s&&Ig(e,s)&&s.el._leaveCb&&s.el._leaveCb(),x(o,[t])},enter(e){let t=l,o=c,s=u;if(!n.isMounted){if(!r)return;t=g||l,o=v||c,s=_||u}let i=!1;const a=e._enterCb=t=>{i||(i=!0,x(t?s:o,[e]),k.delayedLeave&&k.delayedLeave(),e._enterCb=void 0)};t?w(t,[e,a]):a()},leave(t,o){const r=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return o();x(d,[t]);let s=!1;const i=t._leaveCb=n=>{s||(s=!0,o(),x(n?h:p,[t]),t._leaveCb=void 0,y[r]===e&&delete y[r])};y[r]=e,f?w(f,[t,i]):i()},clone(e){return zh(e,t,n,o)}};return k}function qh(e){if(Zh(e))return e=Hg(e),e.children=null,e}function Yh(e){return Zh(e)?e.children?e.children[0]:void 0:e}function Xh(e,t){6&e.shapeFlag&&e.component?Xh(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gh(e,t=!1,n){let o=[],r=0;for(let s=0;s<e.length;s++){let i=e[s];const a=null==n?i.key:String(n)+String(null!=i.key?i.key:s);i.type===_g?(128&i.patchFlag&&r++,o=o.concat(Gh(i.children,t,a))):(t||i.type!==yg)&&o.push(null!=a?Hg(i,{key:a}):i)}if(r>1)for(let s=0;s<o.length;s++)o[s].patchFlag=-2;return o}function Wh(e){return yp(e)?{setup:e,name:e.name}:e}const Kh=e=>!!e.type.__asyncLoader,Zh=e=>e.type.__isKeepAlive;function Qh(e,t){em(e,"a",t)}function Jh(e,t){em(e,"da",t)}function em(e,t,n=Zg){const o=e.__wdc||(e.__wdc=()=>{let t=n;while(t){if(t.isDeactivated)return;t=t.parent}return e()});if(nm(t,o,n),n){let e=n.parent;while(e&&e.parent)Zh(e.parent.vnode)&&tm(o,t,n,e),e=e.parent}}function tm(e,t,n,o){const r=nm(t,e,o,!0);cm((()=>{hp(o[t],r)}),n)}function nm(e,t,n=Zg,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;Bd(),Jg(n);const r=Vp(t,n,e,o);return ev(),Pd(),r});return o?r.unshift(s):r.push(s),s}}const om=e=>(t,n=Zg)=>(!ov||"sp"===e)&&nm(e,t,n),rm=om("bm"),sm=om("m"),im=om("bu"),am=om("u"),lm=om("bum"),cm=om("um"),um=om("sp"),dm=om("rtg"),fm=om("rtc");function pm(e,t=Zg){nm("ec",e,t)}function hm(e,t){const n=bh;if(null===n)return e;const o=uv(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let s=0;s<t.length;s++){let[e,n,i,a=ip]=t[s];yp(e)&&(e={mounted:e,updated:e}),e.deep&&Fh(n),r.push({dir:e,instance:o,value:n,oldValue:void 0,arg:i,modifiers:a})}return e}function mm(e,t,n,o){const r=e.dirs,s=t&&t.dirs;for(let i=0;i<r.length;i++){const a=r[i];s&&(a.oldValue=s[i].value);let l=a.dir[o];l&&(Bd(),Vp(l,n,8,[e.el,a,e,t]),Pd())}}const gm="components",vm="directives";function _m(e,t){return wm(gm,e,!0,t)||e}const bm=Symbol();function ym(e){return xp(e)?wm(gm,e,!1)||e:e||bm}function xm(e){return wm(vm,e)}function wm(e,t,n=!0,o=!1){const r=bh||Zg;if(r){const n=r.type;if(e===gm){const e=dv(n,!1);if(e&&(e===t||e===Cp(t)||e===Bp(Cp(t))))return n}const s=km(r[e]||n[e],t)||km(r.appContext[e],t);return!s&&o?n:s}}function km(e,t){return e&&(e[t]||e[Cp(t)]||e[Bp(Cp(t))])}function Sm(e,t,n,o){let r;const s=n&&n[o];if(vp(e)||xp(e)){r=new Array(e.length);for(let n=0,o=e.length;n<o;n++)r[n]=t(e[n],n,void 0,s&&s[n])}else if("number"===typeof e){r=new Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,s&&s[n])}else if(wp(e))if(e[Symbol.iterator])r=Array.from(e,((e,n)=>t(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);r=new Array(n.length);for(let o=0,i=n.length;o<i;o++){const i=n[o];r[o]=t(e[i],i,o,s&&s[o])}}else r=[];return n&&(n[o]=r),r}function Em(e,t){for(let n=0;n<t.length;n++){const o=t[n];if(vp(o))for(let t=0;t<o.length;t++)e[o[t].name]=o[t].fn;else o&&(e[o.name]=o.fn)}return e}function Tm(e,t,n={},o,r){if(bh.isCE||bh.parent&&Kh(bh.parent)&&bh.parent.isCE)return jg("slot","default"===t?null:{name:t},o&&o());let s=e[t];s&&s._c&&(s._d=!1),Sg();const i=s&&Mm(s(n)),a=Cg(_g,{key:n.key||`_${t}`},i||(o?o():[]),i&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}function Mm(e){return e.some((e=>!Og(e)||e.type!==yg&&!(e.type===_g&&!Mm(e.children))))?e:null}const Am=e=>e?tv(e)?uv(e)||e.proxy:Am(e.parent):null,Rm=pp(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Am(e.parent),$root:e=>Am(e.root),$emit:e=>e.emit,$options:e=>Nm(e),$forceUpdate:e=>e.f||(e.f=()=>ih(e.update)),$nextTick:e=>e.n||(e.n=rh.bind(e.proxy)),$watch:e=>Nh.bind(e)}),Cm={get({_:e},t){const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:a,appContext:l}=e;let c;if("$"!==t[0]){const a=i[t];if(void 0!==a)switch(a){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(o!==ip&&gp(o,t))return i[t]=1,o[t];if(r!==ip&&gp(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&gp(c,t))return i[t]=3,s[t];if(n!==ip&&gp(n,t))return i[t]=4,n[t];Om&&(i[t]=0)}}const u=Rm[t];let d,f;return u?("$attrs"===t&&Ld(e,"get",t),u(e)):(d=a.__cssModules)&&(d=d[t])?d:n!==ip&&gp(n,t)?(i[t]=4,n[t]):(f=l.config.globalProperties,gp(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return r!==ip&&gp(r,t)?(r[t]=n,!0):o!==ip&&gp(o,t)?(o[t]=n,!0):!gp(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0))},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},i){let a;return!!n[i]||e!==ip&&gp(e,i)||t!==ip&&gp(t,i)||(a=s[0])&&gp(a,i)||gp(o,i)||gp(Rm,i)||gp(r.config.globalProperties,i)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:gp(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Om=!0;function Im(e){const t=Nm(e),n=e.proxy,o=e.ctx;Om=!1,t.beforeCreate&&Pm(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:h,activated:m,deactivated:g,beforeDestroy:v,beforeUnmount:_,destroyed:b,unmounted:y,render:x,renderTracked:w,renderTriggered:k,errorCaptured:S,serverPrefetch:E,expose:T,inheritAttrs:M,components:A,directives:R,filters:C}=t,O=null;if(c&&Bm(c,o,O,e.appContext.config.unwrapInjectedRef),i)for(const B in i){const e=i[B];yp(e)&&(o[B]=e.bind(n))}if(r){const t=r.call(n,n);wp(t)&&(e.data=Of(t))}if(Om=!0,s)for(const B in s){const e=s[B],t=yp(e)?e.bind(n,n):yp(e.get)?e.get.bind(n,n):lp,r=!yp(e)&&yp(e.set)?e.set.bind(n):lp,i=pv({get:t,set:r});Object.defineProperty(o,B,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(a)for(const B in a)Lm(a[B],o,n,B);if(l){const e=yp(l)?l.call(n):l;Reflect.ownKeys(e).forEach((t=>{Oh(t,e[t])}))}function I(e,t){vp(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(u&&Pm(u,e,"c"),I(rm,d),I(sm,f),I(im,p),I(am,h),I(Qh,m),I(Jh,g),I(pm,S),I(fm,w),I(dm,k),I(lm,_),I(cm,y),I(um,E),vp(T))if(T.length){const t=e.exposed||(e.exposed={});T.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});x&&e.render===lp&&(e.render=x),null!=M&&(e.inheritAttrs=M),A&&(e.components=A),R&&(e.directives=R)}function Bm(e,t,n=lp,o=!1){vp(e)&&(e=Um(e));for(const r in e){const n=e[r];let s;s=wp(n)?"default"in n?Ih(n.from||r,n.default,!0):Ih(n.from||r):Ih(n),qf(s)&&o?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[r]=s}}function Pm(e,t,n){Vp(vp(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Lm(e,t,n,o){const r=o.includes(".")?jh(n,o):()=>n[o];if(xp(e)){const n=t[e];yp(n)&&Ph(r,n)}else if(yp(e))Ph(r,e.bind(n));else if(wp(e))if(vp(e))e.forEach((e=>Lm(e,t,n,o)));else{const o=yp(e.handler)?e.handler.bind(n):t[e.handler];yp(o)&&Ph(r,o,e)}}function Nm(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,a=s.get(t);let l;return a?l=a:r.length||n||o?(l={},r.length&&r.forEach((e=>jm(l,e,i,!0))),jm(l,t,i)):l=t,s.set(t,l),l}function jm(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&jm(e,s,n,!0),r&&r.forEach((t=>jm(e,t,n,!0)));for(const i in t)if(o&&"expose"===i);else{const o=Fm[i]||n&&n[i];e[i]=o?o(e[i],t[i]):t[i]}return e}const Fm={data:Dm,props:$m,emits:$m,methods:$m,computed:$m,beforeCreate:Vm,created:Vm,beforeMount:Vm,mounted:Vm,beforeUpdate:Vm,updated:Vm,beforeDestroy:Vm,beforeUnmount:Vm,destroyed:Vm,unmounted:Vm,activated:Vm,deactivated:Vm,errorCaptured:Vm,serverPrefetch:Vm,components:$m,directives:$m,watch:zm,provide:Dm,inject:Hm};function Dm(e,t){return t?e?function(){return pp(yp(e)?e.call(this,this):e,yp(t)?t.call(this,this):t)}:t:e}function Hm(e,t){return $m(Um(e),Um(t))}function Um(e){if(vp(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Vm(e,t){return e?[...new Set([].concat(e,t))]:t}function $m(e,t){return e?pp(pp(Object.create(null),e),t):t}function zm(e,t){if(!e)return t;if(!t)return e;const n=pp(Object.create(null),e);for(const o in t)n[o]=Vm(e[o],t[o]);return n}function qm(e,t,n,o=!1){const r={},s={};jp(s,Bg,1),e.propsDefaults=Object.create(null),Xm(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:If(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function Ym(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,a=Df(r),[l]=e.propsOptions;let c=!1;if(!(o||i>0)||16&i){let o;Xm(e,t,r,s)&&(c=!0);for(const s in a)t&&(gp(t,s)||(o=Ip(s))!==s&&gp(t,o))||(l?!n||void 0===n[s]&&void 0===n[o]||(r[s]=Gm(l,a,s,void 0,e,!0)):delete r[s]);if(s!==a)for(const e in s)t&&gp(t,e)||(delete s[e],c=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let o=0;o<n.length;o++){let i=n[o];if(_h(e.emitsOptions,i))continue;const u=t[i];if(l)if(gp(s,i))u!==s[i]&&(s[i]=u,c=!0);else{const t=Cp(i);r[t]=Gm(l,a,t,u,e,!1)}else u!==s[i]&&(s[i]=u,c=!0)}}c&&jd(e,"set","$attrs")}function Xm(e,t,n,o){const[r,s]=e.propsOptions;let i,a=!1;if(t)for(let l in t){if(Mp(l))continue;const c=t[l];let u;r&&gp(r,u=Cp(l))?s&&s.includes(u)?(i||(i={}))[u]=c:n[u]=c:_h(e.emitsOptions,l)||l in o&&c===o[l]||(o[l]=c,a=!0)}if(s){const t=Df(n),o=i||ip;for(let i=0;i<s.length;i++){const a=s[i];n[a]=Gm(r,t,a,o[a],e,!gp(o,a))}}return a}function Gm(e,t,n,o,r,s){const i=e[n];if(null!=i){const e=gp(i,"default");if(e&&void 0===o){const e=i.default;if(i.type!==Function&&yp(e)){const{propsDefaults:s}=r;n in s?o=s[n]:(Jg(r),o=s[n]=e.call(null,t),ev())}else o=e}i[0]&&(s&&!e?o=!1:!i[1]||""!==o&&o!==Ip(n)||(o=!0))}return o}function Wm(e,t,n=!1){const o=t.propsCache,r=o.get(e);if(r)return r;const s=e.props,i={},a=[];let l=!1;if(!yp(e)){const o=e=>{l=!0;const[n,o]=Wm(e,t,!0);pp(i,n),o&&a.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!l)return o.set(e,ap),ap;if(vp(s))for(let u=0;u<s.length;u++){const e=Cp(s[u]);Km(e)&&(i[e]=ip)}else if(s)for(const u in s){const e=Cp(u);if(Km(e)){const t=s[u],n=i[e]=vp(t)||yp(t)?{type:t}:t;if(n){const t=Jm(Boolean,n.type),o=Jm(String,n.type);n[0]=t>-1,n[1]=o<0||t<o,(t>-1||gp(n,"default"))&&a.push(e)}}}const c=[i,a];return o.set(e,c),c}function Km(e){return"$"!==e[0]}function Zm(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function Qm(e,t){return Zm(e)===Zm(t)}function Jm(e,t){return vp(t)?t.findIndex((t=>Qm(t,e))):yp(t)&&Qm(t,e)?0:-1}const eg=e=>"_"===e[0]||"$stable"===e,tg=e=>vp(e)?e.map($g):[$g(e)],ng=(e,t,n)=>{if(t._n)return t;const o=wh(((...e)=>tg(t(...e))),n);return o._c=!1,o},og=(e,t,n)=>{const o=e._ctx;for(const r in e){if(eg(r))continue;const n=e[r];if(yp(n))t[r]=ng(r,n,o);else if(null!=n){const e=tg(n);t[r]=()=>e}}},rg=(e,t)=>{const n=tg(t);e.slots.default=()=>n},sg=(e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=Df(t),jp(t,"_",n)):og(t,e.slots={})}else e.slots={},t&&rg(e,t);jp(e.slots,Bg,1)},ig=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,i=ip;if(32&o.shapeFlag){const e=t._;e?n&&1===e?s=!1:(pp(r,t),n||1!==e||delete r._):(s=!t.$stable,og(t,r)),i=t}else t&&(rg(e,t),i={default:1});if(s)for(const a in r)eg(a)||a in i||delete r[a]};function ag(){return{app:null,config:{isNativeTag:cp,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let lg=0;function cg(e,t){return function(n,o=null){yp(n)||(n=Object.assign({},n)),null==o||wp(o)||(o=null);const r=ag(),s=new Set;let i=!1;const a=r.app={_uid:lg++,_component:n,_props:o,_container:null,_context:r,_instance:null,version:mv,get config(){return r.config},set config(e){},use(e,...t){return s.has(e)||(e&&yp(e.install)?(s.add(e),e.install(a,...t)):yp(e)&&(s.add(e),e(a,...t))),a},mixin(e){return r.mixins.includes(e)||r.mixins.push(e),a},component(e,t){return t?(r.components[e]=t,a):r.components[e]},directive(e,t){return t?(r.directives[e]=t,a):r.directives[e]},mount(s,l,c){if(!i){const u=jg(n,o);return u.appContext=r,l&&t?t(u,s):e(u,s,c),i=!0,a._container=s,s.__vue_app__=a,uv(u.component)||u.component.proxy}},unmount(){i&&(e(null,a._container),delete a._container.__vue_app__)},provide(e,t){return r.provides[e]=t,a}};return a}}function ug(e,t,n,o,r=!1){if(vp(e))return void e.forEach(((e,s)=>ug(e,t&&(vp(t)?t[s]:t),n,o,r)));if(Kh(o)&&!r)return;const s=4&o.shapeFlag?uv(o.component)||o.component.proxy:o.el,i=r?null:s,{i:a,r:l}=e,c=t&&t.r,u=a.refs===ip?a.refs={}:a.refs,d=a.setupState;if(null!=c&&c!==l&&(xp(c)?(u[c]=null,gp(d,c)&&(d[c]=null)):qf(c)&&(c.value=null)),yp(l))Up(l,a,12,[i,u]);else{const t=xp(l),o=qf(l);if(t||o){const a=()=>{if(e.f){const n=t?u[l]:l.value;r?vp(n)&&hp(n,s):vp(n)?n.includes(s)||n.push(s):t?(u[l]=[s],gp(d,l)&&(d[l]=u[l])):(l.value=[s],e.k&&(u[e.k]=l.value))}else t?(u[l]=i,gp(d,l)&&(d[l]=i)):o&&(l.value=i,e.k&&(u[e.k]=i))};i?(a.id=-1,dg(a,n)):a()}}}const dg=Ch;function fg(e){return pg(e)}function pg(e,t){const n=Hp();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=lp,cloneNode:h,insertStaticContent:m}=e,g=(e,t,n,o=null,r=null,s=null,i=!1,a=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!Ig(e,t)&&(o=z(e),D(e,r,s,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:c,ref:u,shapeFlag:d}=t;switch(c){case bg:v(e,t,n,o);break;case yg:_(e,t,n,o);break;case xg:null==e&&b(t,n,o,i);break;case _g:R(e,t,n,o,r,s,i,a,l);break;default:1&d?w(e,t,n,o,r,s,i,a,l):6&d?C(e,t,n,o,r,s,i,a,l):(64&d||128&d)&&c.process(e,t,n,o,r,s,i,a,l,Y)}null!=u&&r&&ug(u,e&&e.ref,s,t||e,!t)},v=(e,t,n,r)=>{if(null==e)o(t.el=a(t.children),n,r);else{const n=t.el=e.el;t.children!==e.children&&c(n,t.children)}},_=(e,t,n,r)=>{null==e?o(t.el=l(t.children||""),n,r):t.el=e.el},b=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},y=({el:e,anchor:t},n,r)=>{let s;while(e&&e!==t)s=f(e),o(e,n,r),e=s;o(t,n,r)},x=({el:e,anchor:t})=>{let n;while(e&&e!==t)n=f(e),r(e),e=n;r(t)},w=(e,t,n,o,r,s,i,a,l)=>{i=i||"svg"===t.type,null==e?k(t,n,o,r,s,i,a,l):T(e,t,r,s,i,a,l)},k=(e,t,n,r,a,l,c,d)=>{let f,p;const{type:m,props:g,shapeFlag:v,transition:_,patchFlag:b,dirs:y}=e;if(e.el&&void 0!==h&&-1===b)f=e.el=h(e.el);else{if(f=e.el=i(e.type,l,g&&g.is,g),8&v?u(f,e.children):16&v&&E(e.children,f,null,r,a,l&&"foreignObject"!==m,c,d),y&&mm(e,null,r,"created"),g){for(const t in g)"value"===t||Mp(t)||s(f,t,null,g[t],l,e.children,r,a,$);"value"in g&&s(f,"value",null,g.value),(p=g.onVnodeBeforeMount)&&Xg(p,r,e)}S(f,e,e.scopeId,c,r)}y&&mm(e,null,r,"beforeMount");const x=(!a||a&&!a.pendingBranch)&&_&&!_.persisted;x&&_.beforeEnter(f),o(f,t,n),((p=g&&g.onVnodeMounted)||x||y)&&dg((()=>{p&&Xg(p,r,e),x&&_.enter(f),y&&mm(e,null,r,"mounted")}),a)},S=(e,t,n,o,r)=>{if(n&&p(e,n),o)for(let s=0;s<o.length;s++)p(e,o[s]);if(r){let n=r.subTree;if(t===n){const t=r.vnode;S(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},E=(e,t,n,o,r,s,i,a,l=0)=>{for(let c=l;c<e.length;c++){const l=e[c]=a?zg(e[c]):$g(e[c]);g(null,l,t,n,o,r,s,i,a)}},T=(e,t,n,o,r,i,a)=>{const l=t.el=e.el;let{patchFlag:c,dynamicChildren:d,dirs:f}=t;c|=16&e.patchFlag;const p=e.props||ip,h=t.props||ip;let m;n&&hg(n,!1),(m=h.onVnodeBeforeUpdate)&&Xg(m,n,t,e),f&&mm(t,e,n,"beforeUpdate"),n&&hg(n,!0);const g=r&&"foreignObject"!==t.type;if(d?M(e.dynamicChildren,d,l,n,o,g,i):a||L(e,t,l,null,n,o,g,i,!1),c>0){if(16&c)A(l,t,p,h,n,o,r);else if(2&c&&p.class!==h.class&&s(l,"class",null,h.class,r),4&c&&s(l,"style",p.style,h.style,r),8&c){const i=t.dynamicProps;for(let t=0;t<i.length;t++){const a=i[t],c=p[a],u=h[a];u===c&&"value"!==a||s(l,a,c,u,r,e.children,n,o,$)}}1&c&&e.children!==t.children&&u(l,t.children)}else a||null!=d||A(l,t,p,h,n,o,r);((m=h.onVnodeUpdated)||f)&&dg((()=>{m&&Xg(m,n,t,e),f&&mm(t,e,n,"updated")}),o)},M=(e,t,n,o,r,s,i)=>{for(let a=0;a<t.length;a++){const l=e[a],c=t[a],u=l.el&&(l.type===_g||!Ig(l,c)||70&l.shapeFlag)?d(l.el):n;g(l,c,u,null,o,r,s,i,!0)}},A=(e,t,n,o,r,i,a)=>{if(n!==o){for(const l in o){if(Mp(l))continue;const c=o[l],u=n[l];c!==u&&"value"!==l&&s(e,l,u,c,a,t.children,r,i,$)}if(n!==ip)for(const l in n)Mp(l)||l in o||s(e,l,n[l],null,a,t.children,r,i,$);"value"in o&&s(e,"value",n.value,o.value)}},R=(e,t,n,r,s,i,l,c,u)=>{const d=t.el=e?e.el:a(""),f=t.anchor=e?e.anchor:a("");let{patchFlag:p,dynamicChildren:h,slotScopeIds:m}=t;m&&(c=c?c.concat(m):m),null==e?(o(d,n,r),o(f,n,r),E(t.children,n,f,s,i,l,c,u)):p>0&&64&p&&h&&e.dynamicChildren?(M(e.dynamicChildren,h,n,s,i,l,c),(null!=t.key||s&&t===s.subTree)&&mg(e,t,!0)):L(e,t,n,f,s,i,l,c,u)},C=(e,t,n,o,r,s,i,a,l)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,i,l):O(t,n,o,r,s,i,l):I(e,t,l)},O=(e,t,n,o,r,s,i)=>{const a=e.component=Kg(e,o,r);if(Zh(e)&&(a.ctx.renderer=Y),rv(a),a.asyncDep){if(r&&r.registerDep(a,B),!e.el){const e=a.subTree=jg(yg);_(null,e,t,n)}}else B(a,e,t,n,r,s,i)},I=(e,t,n)=>{const o=t.component=e.component;if(Th(e,t,n)){if(o.asyncDep&&!o.asyncResolved)return void P(o,t,n);o.next=t,lh(o.update),o.update()}else t.el=e.el,o.vnode=t},B=(e,t,n,o,r,s,i)=>{const a=()=>{if(e.isMounted){let t,{next:n,bu:o,u:a,parent:l,vnode:c}=e,u=n;hg(e,!1),n?(n.el=c.el,P(e,n,i)):n=c,o&&Np(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Xg(t,l,n,c),hg(e,!0);const f=kh(e),p=e.subTree;e.subTree=f,g(p,f,d(p.el),z(p),e,r,s),n.el=f.el,null===u&&Ah(e,f.el),a&&dg(a,r),(t=n.props&&n.props.onVnodeUpdated)&&dg((()=>Xg(t,l,n,c)),r)}else{let i;const{el:a,props:l}=t,{bm:c,m:u,parent:d}=e,f=Kh(t);if(hg(e,!1),c&&Np(c),!f&&(i=l&&l.onVnodeBeforeMount)&&Xg(i,d,t),hg(e,!0),a&&G){const n=()=>{e.subTree=kh(e),G(a,e.subTree,e,r,null)};f?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const i=e.subTree=kh(e);g(null,i,n,o,e,r,s),t.el=i.el}if(u&&dg(u,r),!f&&(i=l&&l.onVnodeMounted)){const e=t;dg((()=>Xg(i,d,e)),r)}(256&t.shapeFlag||d&&Kh(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&dg(e.a,r),e.isMounted=!0,t=n=o=null}},l=e.effect=new Rd(a,(()=>ih(c)),e.scope),c=e.update=()=>l.run();c.id=e.uid,hg(e,!0),c()},P=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,Ym(e,t.props,o,n),ig(e,t.children,n),Bd(),fh(void 0,e.update),Pd()},L=(e,t,n,o,r,s,i,a,l=!1)=>{const c=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void j(c,f,n,o,r,s,i,a,l);if(256&p)return void N(c,f,n,o,r,s,i,a,l)}8&h?(16&d&&$(c,r,s),f!==c&&u(n,f)):16&d?16&h?j(c,f,n,o,r,s,i,a,l):$(c,r,s,!0):(8&d&&u(n,""),16&h&&E(f,n,o,r,s,i,a,l))},N=(e,t,n,o,r,s,i,a,l)=>{e=e||ap,t=t||ap;const c=e.length,u=t.length,d=Math.min(c,u);let f;for(f=0;f<d;f++){const o=t[f]=l?zg(t[f]):$g(t[f]);g(e[f],o,n,null,r,s,i,a,l)}c>u?$(e,r,s,!0,!1,d):E(t,n,o,r,s,i,a,l,d)},j=(e,t,n,o,r,s,i,a,l)=>{let c=0;const u=t.length;let d=e.length-1,f=u-1;while(c<=d&&c<=f){const o=e[c],u=t[c]=l?zg(t[c]):$g(t[c]);if(!Ig(o,u))break;g(o,u,n,null,r,s,i,a,l),c++}while(c<=d&&c<=f){const o=e[d],c=t[f]=l?zg(t[f]):$g(t[f]);if(!Ig(o,c))break;g(o,c,n,null,r,s,i,a,l),d--,f--}if(c>d){if(c<=f){const e=f+1,d=e<u?t[e].el:o;while(c<=f)g(null,t[c]=l?zg(t[c]):$g(t[c]),n,d,r,s,i,a,l),c++}}else if(c>f)while(c<=d)D(e[c],r,s,!0),c++;else{const p=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=l?zg(t[c]):$g(t[c]);null!=e.key&&m.set(e.key,c)}let v,_=0;const b=f-h+1;let y=!1,x=0;const w=new Array(b);for(c=0;c<b;c++)w[c]=0;for(c=p;c<=d;c++){const o=e[c];if(_>=b){D(o,r,s,!0);continue}let u;if(null!=o.key)u=m.get(o.key);else for(v=h;v<=f;v++)if(0===w[v-h]&&Ig(o,t[v])){u=v;break}void 0===u?D(o,r,s,!0):(w[u-h]=c+1,u>=x?x=u:y=!0,g(o,t[u],n,null,r,s,i,a,l),_++)}const k=y?gg(w):ap;for(v=k.length-1,c=b-1;c>=0;c--){const e=h+c,d=t[e],f=e+1<u?t[e+1].el:o;0===w[c]?g(null,d,n,f,r,s,i,a,l):y&&(v<0||c!==k[v]?F(d,n,f,2):v--)}}},F=(e,t,n,r,s=null)=>{const{el:i,type:a,transition:l,children:c,shapeFlag:u}=e;if(6&u)return void F(e.component.subTree,t,n,r);if(128&u)return void e.suspense.move(t,n,r);if(64&u)return void a.move(e,t,n,Y);if(a===_g){o(i,t,n);for(let e=0;e<c.length;e++)F(c[e],t,n,r);return void o(e.anchor,t,n)}if(a===xg)return void y(e,t,n);const d=2!==r&&1&u&&l;if(d)if(0===r)l.beforeEnter(i),o(i,t,n),dg((()=>l.enter(i)),s);else{const{leave:e,delayLeave:r,afterLeave:s}=l,a=()=>o(i,t,n),c=()=>{e(i,(()=>{a(),s&&s()}))};r?r(i,a,c):c()}else o(i,t,n)},D=(e,t,n,o=!1,r=!1)=>{const{type:s,props:i,ref:a,children:l,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:f}=e;if(null!=a&&ug(a,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const p=1&u&&f,h=!Kh(e);let m;if(h&&(m=i&&i.onVnodeBeforeUnmount)&&Xg(m,t,e),6&u)V(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);p&&mm(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,r,Y,o):c&&(s!==_g||d>0&&64&d)?$(c,t,n,!1,!0):(s===_g&&384&d||!r&&16&u)&&$(l,t,n),o&&H(e)}(h&&(m=i&&i.onVnodeUnmounted)||p)&&dg((()=>{m&&Xg(m,t,e),p&&mm(e,null,t,"unmounted")}),n)},H=e=>{const{type:t,el:n,anchor:o,transition:s}=e;if(t===_g)return void U(n,o);if(t===xg)return void x(e);const i=()=>{r(n),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:t,delayLeave:o}=s,r=()=>t(n,i);o?o(e.el,i,r):r()}else i()},U=(e,t)=>{let n;while(e!==t)n=f(e),r(e),e=n;r(t)},V=(e,t,n)=>{const{bum:o,scope:r,update:s,subTree:i,um:a}=e;o&&Np(o),r.stop(),s&&(s.active=!1,D(i,e,t,n)),a&&dg(a,t),dg((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},$=(e,t,n,o=!1,r=!1,s=0)=>{for(let i=s;i<e.length;i++)D(e[i],t,n,o,r)},z=e=>6&e.shapeFlag?z(e.component.subTree):128&e.shapeFlag?e.suspense.next():f(e.anchor||e.el),q=(e,t,n)=>{null==e?t._vnode&&D(t._vnode,null,null,!0):g(t._vnode||null,e,t,null,null,null,n),ph(),t._vnode=e},Y={p:g,um:D,m:F,r:H,mt:O,mc:E,pc:L,pbc:M,n:z,o:e};let X,G;return t&&([X,G]=t(Y)),{render:q,hydrate:X,createApp:cg(q,X)}}function hg({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function mg(e,t,n=!1){const o=e.children,r=t.children;if(vp(o)&&vp(r))for(let s=0;s<o.length;s++){const e=o[s];let t=r[s];1&t.shapeFlag&&!t.dynamicChildren&&((t.patchFlag<=0||32===t.patchFlag)&&(t=r[s]=zg(r[s]),t.el=e.el),n||mg(e,t))}}function gg(e){const t=e.slice(),n=[0];let o,r,s,i,a;const l=e.length;for(o=0;o<l;o++){const l=e[o];if(0!==l){if(r=n[n.length-1],e[r]<l){t[o]=r,n.push(o);continue}s=0,i=n.length-1;while(s<i)a=s+i>>1,e[n[a]]<l?s=a+1:i=a;l<e[n[s]]&&(s>0&&(t[o]=n[s-1]),n[s]=o)}}s=n.length,i=n[s-1];while(s-- >0)n[s]=i,i=t[i];return n}const vg=e=>e.__isTeleport,_g=Symbol(void 0),bg=Symbol(void 0),yg=Symbol(void 0),xg=Symbol(void 0),wg=[];let kg=null;function Sg(e=!1){wg.push(kg=e?null:[])}function Eg(){wg.pop(),kg=wg[wg.length-1]||null}let Tg=1;function Mg(e){Tg+=e}function Ag(e){return e.dynamicChildren=Tg>0?kg||ap:null,Eg(),Tg>0&&kg&&kg.push(e),e}function Rg(e,t,n,o,r,s){return Ag(Ng(e,t,n,o,r,s,!0))}function Cg(e,t,n,o,r){return Ag(jg(e,t,n,o,r,!0))}function Og(e){return!!e&&!0===e.__v_isVNode}function Ig(e,t){return e.type===t.type&&e.key===t.key}const Bg="__vInternal",Pg=({key:e})=>null!=e?e:null,Lg=({ref:e,ref_key:t,ref_for:n})=>null!=e?xp(e)||qf(e)||yp(e)?{i:bh,r:e,k:t,f:!!n}:e:null;function Ng(e,t=null,n=null,o=0,r=null,s=(e===_g?0:1),i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Pg(t),ref:t&&Lg(t),scopeId:yh,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null};return a?(qg(l,n),128&s&&e.normalize(l)):n&&(l.shapeFlag|=xp(n)?8:16),Tg>0&&!i&&kg&&(l.patchFlag>0||6&s)&&32!==l.patchFlag&&kg.push(l),l}const jg=Fg;function Fg(e,t=null,n=null,o=0,r=null,s=!1){if(e&&e!==bm||(e=yg),Og(e)){const o=Hg(e,t,!0);return n&&qg(o,n),Tg>0&&!s&&kg&&(6&o.shapeFlag?kg[kg.indexOf(e)]=o:kg.push(o)),o.patchFlag|=-2,o}if(fv(e)&&(e=e.__vccOpts),t){t=Dg(t);let{class:e,style:n}=t;e&&!xp(e)&&(t.class=np(e)),wp(n)&&(Ff(n)&&!vp(n)&&(n=pp({},n)),t.style=Qf(n))}const i=xp(e)?1:Rh(e)?128:vg(e)?64:wp(e)?4:yp(e)?2:0;return Ng(e,t,n,o,r,i,s,!0)}function Dg(e){return e?Ff(e)||Bg in e?pp({},e):e:null}function Hg(e,t,n=!1){const{props:o,ref:r,patchFlag:s,children:i}=e,a=t?Yg(o||{},t):o,l={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&Pg(a),ref:t&&t.ref?n&&r?vp(r)?r.concat(Lg(t)):[r,Lg(t)]:Lg(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_g?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Hg(e.ssContent),ssFallback:e.ssFallback&&Hg(e.ssFallback),el:e.el,anchor:e.anchor};return l}function Ug(e=" ",t=0){return jg(bg,null,e,t)}function Vg(e="",t=!1){return t?(Sg(),Cg(yg,null,e)):jg(yg,null,e)}function $g(e){return null==e||"boolean"===typeof e?jg(yg):vp(e)?jg(_g,null,e.slice()):"object"===typeof e?zg(e):jg(bg,null,String(e))}function zg(e){return null===e.el||e.memo?e:Hg(e)}function qg(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(vp(t))n=16;else if("object"===typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),qg(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||Bg in t?3===o&&bh&&(1===bh.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=bh}}else yp(t)?(t={default:t,_ctx:bh},n=32):(t=String(t),64&o?(n=16,t=[Ug(t)]):n=8);e.children=t,e.shapeFlag|=n}function Yg(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const e in o)if("class"===e)t.class!==o.class&&(t.class=np([t.class,o.class]));else if("style"===e)t.style=Qf([t.style,o.style]);else if(dp(e)){const n=t[e],r=o[e];!r||n===r||vp(n)&&n.includes(r)||(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=o[e])}return t}function Xg(e,t,n,o=null){Vp(e,t,7,[n,o])}const Gg=ag();let Wg=0;function Kg(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||Gg,s={uid:Wg++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new md(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Wm(o,r),emitsOptions:vh(o,r),emit:null,emitted:null,propsDefaults:ip,inheritAttrs:o.inheritAttrs,ctx:ip,data:ip,props:ip,attrs:ip,slots:ip,refs:ip,setupState:ip,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=gh.bind(null,s),e.ce&&e.ce(s),s}let Zg=null;const Qg=()=>Zg||bh,Jg=e=>{Zg=e,e.scope.on()},ev=()=>{Zg&&Zg.scope.off(),Zg=null};function tv(e){return 4&e.vnode.shapeFlag}let nv,ov=!1;function rv(e,t=!1){ov=t;const{props:n,children:o}=e.vnode,r=tv(e);qm(e,n,r,t),sg(e,o);const s=r?sv(e,t):void 0;return ov=!1,s}function sv(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Hf(new Proxy(e.ctx,Cm));const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?cv(e):null;Jg(e),Bd();const r=Up(o,e,0,[e.props,n]);if(Pd(),ev(),kp(r)){if(r.then(ev,ev),t)return r.then((n=>{iv(e,n,t)})).catch((t=>{$p(t,e,0)}));e.asyncDep=r}else iv(e,r,t)}else av(e,t)}function iv(e,t,n){yp(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:wp(t)&&(e.setupState=Gf(t)),av(e,n)}function av(e,t,n){const o=e.type;if(!e.render){if(!t&&nv&&!o.render){const t=o.template;if(t){const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:s,compilerOptions:i}=o,a=pp(pp({isCustomElement:n,delimiters:s},r),i);o.render=nv(t,a)}}e.render=o.render||lp}Jg(e),Bd(),Im(e),Pd(),ev()}function lv(e){return new Proxy(e.attrs,{get(t,n){return Ld(e,"get","$attrs"),t[n]}})}function cv(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=lv(e))},slots:e.slots,emit:e.emit,expose:t}}function uv(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Gf(Hf(e.exposed)),{get(t,n){return n in t?t[n]:n in Rm?Rm[n](e):void 0}}))}function dv(e,t=!0){return yp(e)?e.displayName||e.name:e.name||t&&e.__name}function fv(e){return yp(e)&&"__vccOpts"in e}const pv=(e,t)=>Kf(e,t,ov);function hv(e,t,n){const o=arguments.length;return 2===o?wp(t)&&!vp(t)?Og(t)?jg(e,null,[t]):jg(e,t):jg(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Og(n)&&(n=[n]),jg(e,t,n))}const mv="3.2.37";function gv(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r<o.length;r++)n[o[r]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const vv="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",_v=gv(vv);function bv(e){return!!e||""===e}const yv=/^on[^a-z]/,xv=e=>yv.test(e),wv=e=>e.startsWith("onUpdate:"),kv=Object.assign,Sv=Array.isArray,Ev=e=>"function"===typeof e,Tv=e=>"string"===typeof e,Mv=e=>null!==e&&"object"===typeof e,Av=e=>{const t=Object.create(null);return n=>{const o=t[n];return o||(t[n]=e(n))}},Rv=/-(\w)/g,Cv=Av((e=>e.replace(Rv,((e,t)=>t?t.toUpperCase():"")))),Ov=/\B([A-Z])/g,Iv=Av((e=>e.replace(Ov,"-$1").toLowerCase())),Bv=Av((e=>e.charAt(0).toUpperCase()+e.slice(1))),Pv=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Lv="http://www.w3.org/2000/svg",Nv="undefined"!==typeof document?document:null,jv=Nv&&Nv.createElement("template"),Fv={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?Nv.createElementNS(Lv,e):Nv.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>Nv.createTextNode(e),createComment:e=>Nv.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Nv.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling)){while(1)if(t.insertBefore(r.cloneNode(!0),n),r===s||!(r=r.nextSibling))break}else{jv.innerHTML=o?`<svg>${e}</svg>`:e;const r=jv.content;if(o){const e=r.firstChild;while(e.firstChild)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Dv(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Hv(e,t,n){const o=e.style,r=Tv(n);if(n&&!r){for(const e in n)Vv(o,e,n[e]);if(t&&!Tv(t))for(const e in t)null==n[e]&&Vv(o,e,"")}else{const s=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=s)}}const Uv=/\s*!important$/;function Vv(e,t,n){if(Sv(n))n.forEach((n=>Vv(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=qv(e,t);Uv.test(n)?e.setProperty(Iv(o),n.replace(Uv,""),"important"):e[o]=n}}const $v=["Webkit","Moz","ms"],zv={};function qv(e,t){const n=zv[t];if(n)return n;let o=Cp(t);if("filter"!==o&&o in e)return zv[t]=o;o=Bv(o);for(let r=0;r<$v.length;r++){const n=$v[r]+o;if(n in e)return zv[t]=n}return t}const Yv="http://www.w3.org/1999/xlink";function Xv(e,t,n,o,r){if(o&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(Yv,t.slice(6,t.length)):e.setAttributeNS(Yv,t,n);else{const o=_v(t);null==n||o&&!bv(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}function Gv(e,t,n,o,r,s,i){if("innerHTML"===t||"textContent"===t)return o&&i(o,r,s),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const o=null==n?"":n;return e.value===o&&"OPTION"!==e.tagName||(e.value=o),void(null==n&&e.removeAttribute(t))}let a=!1;if(""===n||null==n){const o=typeof e[t];"boolean"===o?n=bv(n):null==n&&"string"===o?(n="",a=!0):"number"===o&&(n=0,a=!0)}try{e[t]=n}catch(l){}a&&e.removeAttribute(t)}const[Wv,Kv]=(()=>{let e=Date.now,t=!1;if("undefined"!==typeof window){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Zv=0;const Qv=Promise.resolve(),Jv=()=>{Zv=0},e_=()=>Zv||(Qv.then(Jv),Zv=Wv());function t_(e,t,n,o){e.addEventListener(t,n,o)}function n_(e,t,n,o){e.removeEventListener(t,n,o)}function o_(e,t,n,o,r=null){const s=e._vei||(e._vei={}),i=s[t];if(o&&i)i.value=o;else{const[n,a]=s_(t);if(o){const i=s[t]=i_(o,r);t_(e,n,i,a)}else i&&(n_(e,n,i,a),s[t]=void 0)}}const r_=/(?:Once|Passive|Capture)$/;function s_(e){let t;if(r_.test(e)){let n;t={};while(n=e.match(r_))e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Iv(e.slice(2)),t]}function i_(e,t){const n=e=>{const o=e.timeStamp||Wv();(Kv||o>=n.attached-1)&&Vp(a_(e,n.value),t,5,[e])};return n.value=e,n.attached=e_(),n}function a_(e,t){if(Sv(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}const l_=/^on[a-z]/,c_=(e,t,n,o,r=!1,s,i,a,l)=>{"class"===t?Dv(e,o,r):"style"===t?Hv(e,n,o):xv(t)?wv(t)||o_(e,t,n,o,i):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):u_(e,t,o,r))?Gv(e,t,o,s,i,a,l):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),Xv(e,t,o,r))};function u_(e,t,n,o){return o?"innerHTML"===t||"textContent"===t||!!(t in e&&l_.test(t)&&Ev(n)):"spellcheck"!==t&&"draggable"!==t&&"translate"!==t&&("form"!==t&&(("list"!==t||"INPUT"!==e.tagName)&&(("type"!==t||"TEXTAREA"!==e.tagName)&&((!l_.test(t)||!Tv(n))&&t in e))))}function d_(e,t){const n=Wh(e);class o extends p_{constructor(e){super(n,e,t)}}return o.def=n,o}const f_="undefined"!==typeof HTMLElement?HTMLElement:class{};class p_ extends f_{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,rh((()=>{this._connected||(Z_(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);new MutationObserver((e=>{for(const t of e)this._setAttr(t.attributeName)})).observe(this,{attributes:!0});const e=e=>{const{props:t,styles:n}=e,o=!Sv(t),r=t?o?Object.keys(t):t:[];let s;if(o)for(const i in this._props){const e=t[i];(e===Number||e&&e.type===Number)&&(this._props[i]=Pv(this._props[i]),(s||(s=Object.create(null)))[i]=!0)}this._numberProps=s;for(const i of Object.keys(this))"_"!==i[0]&&this._setProp(i,this[i],!0,!1);for(const i of r.map(Cv))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(e){this._setProp(i,e)}});this._applyStyles(n),this._update()},t=this._def.__asyncLoader;t?t().then(e):e(this._def)}_setAttr(e){let t=this.getAttribute(e);this._numberProps&&this._numberProps[e]&&(t=Pv(t)),this._setProp(Cv(e),t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,o=!0){t!==this._props[e]&&(this._props[e]=t,o&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(Iv(e),""):"string"===typeof t||"number"===typeof t?this.setAttribute(Iv(e),t+""):t||this.removeAttribute(Iv(e))))}_update(){Z_(this._createVNode(),this.shadowRoot)}_createVNode(){const e=jg(this._def,kv({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0,e.emit=(e,...t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};let t=this;while(t=t&&(t.parentNode||t.host))if(t instanceof p_){e.parent=t._instance;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t)}))}}const h_="transition",m_="animation",g_=(e,{slots:t})=>hv(Vh,x_(e),t);g_.displayName="Transition";const v_={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},__=g_.props=kv({},Vh.props,v_),b_=(e,t=[])=>{Sv(e)?e.forEach((e=>e(...t))):e&&e(...t)},y_=e=>!!e&&(Sv(e)?e.some((e=>e.length>1)):e.length>1);function x_(e){const t={};for(const A in e)A in v_||(t[A]=e[A]);if(!1===e.css)return t;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=i,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,h=w_(r),m=h&&h[0],g=h&&h[1],{onBeforeEnter:v,onEnter:_,onEnterCancelled:b,onLeave:y,onLeaveCancelled:x,onBeforeAppear:w=v,onAppear:k=_,onAppearCancelled:S=b}=t,E=(e,t,n)=>{E_(e,t?u:a),E_(e,t?c:i),n&&n()},T=(e,t)=>{e._isLeaving=!1,E_(e,d),E_(e,p),E_(e,f),t&&t()},M=e=>(t,n)=>{const r=e?k:_,i=()=>E(t,e,n);b_(r,[t,i]),T_((()=>{E_(t,e?l:s),S_(t,e?u:a),y_(r)||A_(t,o,m,i)}))};return kv(t,{onBeforeEnter(e){b_(v,[e]),S_(e,s),S_(e,i)},onBeforeAppear(e){b_(w,[e]),S_(e,l),S_(e,c)},onEnter:M(!1),onAppear:M(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>T(e,t);S_(e,d),I_(),S_(e,f),T_((()=>{e._isLeaving&&(E_(e,d),S_(e,p),y_(y)||A_(e,o,g,n))})),b_(y,[e,n])},onEnterCancelled(e){E(e,!1),b_(b,[e])},onAppearCancelled(e){E(e,!0),b_(S,[e])},onLeaveCancelled(e){T(e),b_(x,[e])}})}function w_(e){if(null==e)return null;if(Mv(e))return[k_(e.enter),k_(e.leave)];{const t=k_(e);return[t,t]}}function k_(e){const t=Pv(e);return t}function S_(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function E_(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function T_(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let M_=0;function A_(e,t,n,o){const r=e._endId=++M_,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:a,propCount:l}=R_(e,t);if(!i)return o();const c=i+"end";let u=0;const d=()=>{e.removeEventListener(c,f),s()},f=t=>{t.target===e&&++u>=l&&d()};setTimeout((()=>{u<l&&d()}),a+1),e.addEventListener(c,f)}function R_(e,t){const n=window.getComputedStyle(e),o=e=>(n[e]||"").split(", "),r=o(h_+"Delay"),s=o(h_+"Duration"),i=C_(r,s),a=o(m_+"Delay"),l=o(m_+"Duration"),c=C_(a,l);let u=null,d=0,f=0;t===h_?i>0&&(u=h_,d=i,f=s.length):t===m_?c>0&&(u=m_,d=c,f=l.length):(d=Math.max(i,c),u=d>0?i>c?h_:m_:null,f=u?u===h_?s.length:l.length:0);const p=u===h_&&/\b(transform|all)(,|$)/.test(n[h_+"Property"]);return{type:u,timeout:d,propCount:f,hasTransform:p}}function C_(e,t){while(e.length<t.length)e=e.concat(e);return Math.max(...t.map(((t,n)=>O_(t)+O_(e[n]))))}function O_(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function I_(){return document.body.offsetHeight}const B_=new WeakMap,P_=new WeakMap,L_={name:"TransitionGroup",props:kv({},__,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Qg(),o=Dh();let r,s;return am((()=>{if(!r.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!H_(r[0].el,n.vnode.el,t))return;r.forEach(j_),r.forEach(F_);const o=r.filter(D_);I_(),o.forEach((e=>{const n=e.el,o=n.style;S_(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const r=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",r),n._moveCb=null,E_(n,t))};n.addEventListener("transitionend",r)}))})),()=>{const i=Df(e),a=x_(i);let l=i.tag||_g;r=s,s=t.default?Gh(t.default()):[];for(let e=0;e<s.length;e++){const t=s[e];null!=t.key&&Xh(t,zh(t,a,o,n))}if(r)for(let e=0;e<r.length;e++){const t=r[e];Xh(t,zh(t,a,o,n)),B_.set(t,t.el.getBoundingClientRect())}return jg(l,null,s)}}},N_=L_;function j_(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function F_(e){P_.set(e,e.el.getBoundingClientRect())}function D_(e){const t=B_.get(e),n=P_.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${o}px,${r}px)`,t.transitionDuration="0s",e}}function H_(e,t,n){const o=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&o.classList.remove(e)))})),n.split(/\s+/).forEach((e=>e&&o.classList.add(e))),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:s}=R_(o);return r.removeChild(o),s}const U_=["ctrl","shift","alt","meta"],V_={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>U_.some((n=>e[`${n}Key`]&&!t.includes(n)))},$_=(e,t)=>(n,...o)=>{for(let e=0;e<t.length;e++){const o=V_[t[e]];if(o&&o(n,t))return}return e(n,...o)},z_={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},q_=(e,t)=>n=>{if(!("key"in n))return;const o=Iv(n.key);return t.some((e=>e===o||z_[e]===o))?e(n):void 0},Y_={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):X_(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!==!n&&(o?t?(o.beforeEnter(e),X_(e,!0),o.enter(e)):o.leave(e,(()=>{X_(e,!1)})):X_(e,t))},beforeUnmount(e,{value:t}){X_(e,t)}};function X_(e,t){e.style.display=t?e._vod:"none"}const G_=kv({patchProp:c_},Fv);let W_;function K_(){return W_||(W_=fg(G_))}const Z_=(...e)=>{K_().render(...e)};var Q_=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};const J_={name:"AppLoader",props:{show:{type:Boolean,default:!1},infinite:{type:Boolean,default:!1},type:{type:String,required:!0},messageId:{type:String,default:""}}},eb=Ng("div",{id:"vac-circle"},null,-1),tb=Ng("div",{id:"vac-circle"},null,-1),nb=Ng("div",{id:"vac-circle"},null,-1),ob=Ng("div",{id:"vac-circle"},null,-1),rb=Ng("div",{id:"vac-circle"},null,-1),sb=Ng("div",{id:"vac-circle"},null,-1);function ib(e,t,n,o,r,s){return Sg(),Cg(g_,{name:"vac-fade-spinner",appear:""},{default:wh((()=>[n.show?(Sg(),Rg("div",{key:0,class:np(["vac-loader-wrapper",{"vac-container-center":!n.infinite,"vac-container-top":n.infinite}])},["rooms"===n.type?Tm(e.$slots,"spinner-icon-rooms",{key:0},(()=>[eb])):Vg("",!0),"infinite-rooms"===n.type?Tm(e.$slots,"spinner-icon-infinite-rooms",{key:1},(()=>[tb])):Vg("",!0),"message-file"===n.type?Tm(e.$slots,"spinner-icon-message-file_"+n.messageId,{key:2},(()=>[nb])):Vg("",!0),"room-file"===n.type?Tm(e.$slots,"spinner-icon-room-file",{key:3},(()=>[ob])):Vg("",!0),"messages"===n.type?Tm(e.$slots,"spinner-icon-messages",{key:4},(()=>[rb])):Vg("",!0),"infinite-messages"===n.type?Tm(e.$slots,"spinner-icon-infinite-messages",{key:5},(()=>[sb])):Vg("",!0)],2)):Vg("",!0)])),_:3})}var ab=Q_(J_,[["render",ib]]);const lb={name:"SvgIcon",props:{name:{type:String,default:null},param:{type:String,default:null}},data(){return{svgItem:{search:{path:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},add:{path:"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},toggle:{path:"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z"},menu:{path:"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z"},close:{path:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"},file:{path:"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},paperclip:{path:"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z"},"close-outline":{path:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},send:{path:"M2,21L23,12L2,3V10L17,12L2,14V21Z"},emoji:{path:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"},document:{path:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"},pencil:{path:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"},checkmark:{path:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},"double-checkmark":{path:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"},eye:{path:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z"},dropdown:{path:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},deleted:{path:"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z"},microphone:{size:"large",path:"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z"},"audio-play":{size:"medium",path:"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684   c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84   c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z"},"audio-pause":{size:"medium",path:"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z",path2:"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z"}}}},computed:{svgId(){const e=this.param?"-"+this.param:"";return`vac-icon-${this.name}${e}`},size(){const e=this.svgItem[this.name];return"large"===e.size?512:"medium"===e.size?48:24}}},cb=["viewBox"],ub=["id","d"],db=["id","d"];function fb(e,t,n,o,r,s){return Sg(),Rg("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",width:"24",height:"24",viewBox:`0 0 ${s.size} ${s.size}`},[Ng("path",{id:s.svgId,d:r.svgItem[n.name].path},null,8,ub),r.svgItem[n.name].path2?(Sg(),Rg("path",{key:0,id:s.svgId,d:r.svgItem[n.name].path2},null,8,db)):Vg("",!0)],8,cb)}var pb=Q_(lb,[["render",fb]]);const hb={name:"RoomsSearch",components:{SvgIcon:pb},props:{textMessages:{type:Object,required:!0},showSearch:{type:Boolean,required:!0},showAddRoom:{type:Boolean,required:!0},rooms:{type:Array,required:!0},loadingRooms:{type:Boolean,required:!0}},emits:["search-room","add-room"],computed:{showSearchBar(){return this.showSearch||this.showAddRoom}}},mb={key:0,class:"vac-icon-search"},gb=["placeholder"];function vb(e,t,n,o,r,s){const i=_m("svg-icon");return Sg(),Rg("div",{class:np({"vac-box-search":s.showSearchBar,"vac-box-empty":!s.showSearchBar})},[n.showSearch?(Sg(),Rg(_g,{key:0},[!n.loadingRooms&&n.rooms.length?(Sg(),Rg("div",mb,[Tm(e.$slots,"search-icon",{},(()=>[jg(i,{name:"search"})]))])):Vg("",!0),!n.loadingRooms&&n.rooms.length?(Sg(),Rg("input",{key:1,type:"search",placeholder:n.textMessages.SEARCH,autocomplete:"off",class:"vac-input",onInput:t[0]||(t[0]=t=>e.$emit("search-room",t))},null,40,gb)):Vg("",!0)],64)):Vg("",!0),n.showAddRoom?(Sg(),Rg("div",{key:1,class:"vac-svg-button vac-add-icon",onClick:t[1]||(t[1]=t=>e.$emit("add-room"))},[Tm(e.$slots,"add-icon",{},(()=>[jg(i,{name:"add"})]))])):Vg("",!0)],2)}var _b=Q_(hb,[["render",vb]]);const bb=document.createElement("i");function yb(e){const t="&"+e+";";bb.innerHTML=t;const n=bb.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}function xb(e,t,n,o){const r=e.length;let s,i=0;if(t=t<0?-t>r?0:r+t:t>r?r:t,n=n>0?n:0,o.length<1e4)s=Array.from(o),s.unshift(t,n),e.splice(...s);else{n&&e.splice(t,n);while(i<o.length)s=o.slice(i,i+1e4),s.unshift(t,0),e.splice(...s),i+=1e4,t+=1e4}}function wb(e,t){return e.length>0?(xb(e,e.length,0,t),e):t}const kb={}.hasOwnProperty;function Sb(e){const t={};let n=-1;while(++n<e.length)Eb(t,e[n]);return t}function Eb(e,t){let n;for(n in t){const o=kb.call(e,n)?e[n]:void 0,r=o||(e[n]={}),s=t[n];let i;if(s)for(i in s){kb.call(r,i)||(r[i]=[]);const e=s[i];Tb(r[i],Array.isArray(e)?e:e?[e]:[])}}}function Tb(e,t){let n=-1;const o=[];while(++n<t.length)("after"===t[n].add?e:o).push(t[n]);xb(e,0,0,o)}function Mb(e){const t={};let n=-1;while(++n<e.length)Ab(t,e[n]);return t}function Ab(e,t){let n;for(n in t){const o=kb.call(e,n)?e[n]:void 0,r=o||(e[n]={}),s=t[n];let i;if(s)for(i in s)r[i]=s[i]}}function Rb(e,t){const n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"�":String.fromCharCode(n)}const Cb={'"':"quot","&":"amp","<":"lt",">":"gt"};function Ob(e){return e.replace(/["&<>]/g,t);function t(e){return"&"+Cb[e]+";"}}function Ib(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Bb=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\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\u1B7D\u1B7E\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-\u2E5D\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]/,Pb=Yb(/[A-Za-z]/),Lb=Yb(/[\dA-Za-z]/),Nb=Yb(/[#-'*+\--9=?A-Z^-~]/);function jb(e){return null!==e&&(e<32||127===e)}const Fb=Yb(/\d/),Db=Yb(/[\dA-Fa-f]/),Hb=Yb(/[!-/:-@[-`{-~]/);function Ub(e){return null!==e&&e<-2}function Vb(e){return null!==e&&(e<0||32===e)}function $b(e){return-2===e||-1===e||32===e}const zb=Yb(Bb),qb=Yb(/\s/);function Yb(e){return t;function t(t){return null!==t&&e.test(String.fromCharCode(t))}}function Xb(e,t){const n=Ob(Gb(e||""));if(!t)return n;const o=n.indexOf(":"),r=n.indexOf("?"),s=n.indexOf("#"),i=n.indexOf("/");return o<0||i>-1&&o>i||r>-1&&o>r||s>-1&&o>s||t.test(n.slice(0,o))?n:""}function Gb(e){const t=[];let n=-1,o=0,r=0;while(++n<e.length){const s=e.charCodeAt(n);let i="";if(37===s&&Lb(e.charCodeAt(n+1))&&Lb(e.charCodeAt(n+2)))r=2;else if(s<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(s))||(i=String.fromCharCode(s));else if(s>55295&&s<57344){const t=e.charCodeAt(n+1);s<56320&&t>56319&&t<57344?(i=String.fromCharCode(s,t),r=1):i="�"}else i=String.fromCharCode(s);i&&(t.push(e.slice(o,n),encodeURIComponent(i)),o=n+r+1,i=""),r&&(n+=r,r=0)}return t.join("")+e.slice(o)}const Wb={}.hasOwnProperty,Kb=/^(https?|ircs?|mailto|xmpp)$/i,Zb=/^https?$/i;function Qb(e){const t=e||{};let n=!0;const o={},r=[[]],s=[],i=[],a={enter:{blockQuote:C,codeFenced:P,codeFencedFenceInfo:g,codeFencedFenceMeta:g,codeIndented:j,codeText:ve,content:te,definition:W,definitionDestinationString:Z,definitionLabelString:g,definitionTitleString:g,emphasis:me,htmlFlow:fe,htmlText:he,image:D,label:g,link:H,listItemMarker:T,listItemValue:E,listOrdered:k,listUnordered:S,paragraph:I,reference:g,resource:z,resourceDestinationString:q,resourceTitleString:g,setextHeading:oe,strong:ge},exit:{atxHeading:se,atxHeadingSequence:ne,autolinkEmail:Ee,autolinkProtocol:Se,blockQuote:O,characterEscapeValue:le,characterReferenceMarkerHexadecimal:we,characterReferenceMarkerNumeric:we,characterReferenceValue:ke,codeFenced:F,codeFencedFence:N,codeFencedFenceInfo:L,codeFencedFenceMeta:v,codeFlowValue:ue,codeIndented:F,codeText:_e,codeTextData:le,data:le,definition:ee,definitionDestinationString:Q,definitionLabelString:K,definitionTitleString:J,emphasis:be,hardBreakEscape:de,hardBreakTrailing:de,htmlFlow:pe,htmlFlowData:le,htmlText:pe,htmlTextData:le,image:G,label:V,labelText:U,lineEnding:ce,link:G,listOrdered:M,listUnordered:A,paragraph:B,reference:v,referenceString:$,resource:v,resourceDestinationString:Y,resourceTitleString:X,setextHeading:ae,setextHeadingLineSequence:ie,setextHeadingText:re,strong:ye,thematicBreak:xe}},l=Mb([a].concat(t.htmlExtensions||[])),c={tightStack:i,definitions:o},u={lineEndingIfNeeded:x,options:t,encode:w,raw:b,tag:_,buffer:g,resume:v,setData:h,getData:m};let d=t.defaultLineEnding;return f;function f(e){let t=-1,n=0;const o=[];let s=[],i=[];while(++t<e.length)d||"lineEnding"!==e[t][1].type&&"lineEndingBlank"!==e[t][1].type||(d=e[t][2].sliceSerialize(e[t][1])),"listOrdered"!==e[t][1].type&&"listUnordered"!==e[t][1].type||("enter"===e[t][0]?o.push(t):p(e.slice(o.pop(),t))),"definition"===e[t][1].type&&("enter"===e[t][0]?(i=wb(i,e.slice(n,t)),n=t):(s=wb(s,e.slice(n,t+1)),n=t+1));s=wb(s,i),s=wb(s,e.slice(n)),t=-1;const a=s;l.enter.null&&l.enter.null.call(u);while(++t<e.length){const e=l[a[t][0]],n=a[t][1].type,o=e[n];Wb.call(e,n)&&o&&o.call(Object.assign({sliceSerialize:a[t][2].sliceSerialize},u),a[t][1])}return l.exit.null&&l.exit.null.call(u),r[0].join("")}function p(e){const t=e.length;let n,o=0,r=0,s=!1;while(++o<t){const t=e[o];if(t[1]._container)n=void 0,"enter"===t[0]?r++:r--;else switch(t[1].type){case"listItemPrefix":"exit"===t[0]&&(n=!0);break;case"linePrefix":break;case"lineEndingBlank":"enter"!==t[0]||r||(n?n=void 0:s=!0);break;default:n=void 0}}e[0][1]._loose=s}function h(e,t){c[e]=t}function m(e){return c[e]}function g(){r.push([])}function v(){const e=r.pop();return e.join("")}function _(e){n&&(h("lastWasTag",!0),r[r.length-1].push(e))}function b(e){h("lastWasTag"),r[r.length-1].push(e)}function y(){b(d||"\n")}function x(){const e=r[r.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):null;10!==n&&13!==n&&null!==n&&y()}function w(e){return m("ignoreEncode")?e:Ob(e)}function k(e){i.push(!e._loose),x(),_("<ol"),h("expectFirstItem",!0)}function S(e){i.push(!e._loose),x(),_("<ul"),h("expectFirstItem",!0)}function E(e){if(m("expectFirstItem")){const t=Number.parseInt(this.sliceSerialize(e),10);1!==t&&_(' start="'+w(String(t))+'"')}}function T(){m("expectFirstItem")?_(">"):R(),x(),_("<li>"),h("expectFirstItem"),h("lastWasTag")}function M(){R(),i.pop(),y(),_("</ol>")}function A(){R(),i.pop(),y(),_("</ul>")}function R(){m("lastWasTag")&&!m("slurpAllLineEndings")&&x(),_("</li>"),h("slurpAllLineEndings")}function C(){i.push(!1),x(),_("<blockquote>")}function O(){i.pop(),x(),_("</blockquote>"),h("slurpAllLineEndings")}function I(){i[i.length-1]||(x(),_("<p>")),h("slurpAllLineEndings")}function B(){i[i.length-1]?h("slurpAllLineEndings",!0):_("</p>")}function P(){x(),_("<pre><code"),h("fencesCount",0)}function L(){const e=v();_(' class="language-'+e+'"')}function N(){const e=m("fencesCount")||0;e||(_(">"),h("slurpOneLineEnding",!0)),h("fencesCount",e+1)}function j(){x(),_("<pre><code>")}function F(){const e=m("fencesCount");void 0!==e&&e<2&&c.tightStack.length>0&&!m("lastWasTag")&&y(),m("flowCodeSeenData")&&x(),_("</code></pre>"),void 0!==e&&e<2&&x(),h("flowCodeSeenData"),h("fencesCount"),h("slurpOneLineEnding")}function D(){s.push({image:!0}),n=void 0}function H(){s.push({})}function U(e){s[s.length-1].labelId=this.sliceSerialize(e)}function V(){s[s.length-1].label=v()}function $(e){s[s.length-1].referenceId=this.sliceSerialize(e)}function z(){g(),s[s.length-1].destination=""}function q(){g(),h("ignoreEncode",!0)}function Y(){s[s.length-1].destination=v(),h("ignoreEncode")}function X(){s[s.length-1].title=v()}function G(){let e=s.length-1;const r=s[e],i=r.referenceId||r.labelId,a=void 0===r.destination?o[Ib(i)]:r;n=!0;while(e--)if(s[e].image){n=void 0;break}r.image?(_('<img src="'+Xb(a.destination,t.allowDangerousProtocol?void 0:Zb)+'" alt="'),b(r.label),_('"')):_('<a href="'+Xb(a.destination,t.allowDangerousProtocol?void 0:Kb)+'"'),_(a.title?' title="'+a.title+'"':""),r.image?_(" />"):(_(">"),b(r.label),_("</a>")),s.pop()}function W(){g(),s.push({})}function K(e){v(),s[s.length-1].labelId=this.sliceSerialize(e)}function Z(){g(),h("ignoreEncode",!0)}function Q(){s[s.length-1].destination=v(),h("ignoreEncode")}function J(){s[s.length-1].title=v()}function ee(){const e=s[s.length-1],t=Ib(e.labelId);v(),Wb.call(o,t)||(o[t]=s[s.length-1]),s.pop()}function te(){h("slurpAllLineEndings",!0)}function ne(e){m("headingRank")||(h("headingRank",this.sliceSerialize(e).length),x(),_("<h"+m("headingRank")+">"))}function oe(){g(),h("slurpAllLineEndings")}function re(){h("slurpAllLineEndings",!0)}function se(){_("</h"+m("headingRank")+">"),h("headingRank")}function ie(e){h("headingRank",61===this.sliceSerialize(e).charCodeAt(0)?1:2)}function ae(){const e=v();x(),_("<h"+m("headingRank")+">"),b(e),_("</h"+m("headingRank")+">"),h("slurpAllLineEndings"),h("headingRank")}function le(e){b(w(this.sliceSerialize(e)))}function ce(e){m("slurpAllLineEndings")||(m("slurpOneLineEnding")?h("slurpOneLineEnding"):m("inCodeText")?b(" "):b(w(this.sliceSerialize(e))))}function ue(e){b(w(this.sliceSerialize(e))),h("flowCodeSeenData",!0)}function de(){_("<br />")}function fe(){x(),he()}function pe(){h("ignoreEncode")}function he(){t.allowDangerousHtml&&h("ignoreEncode",!0)}function me(){_("<em>")}function ge(){_("<strong>")}function ve(){h("inCodeText",!0),_("<code>")}function _e(){h("inCodeText"),_("</code>")}function be(){_("</em>")}function ye(){_("</strong>")}function xe(){x(),_("<hr />")}function we(e){h("characterReferenceType",e.type)}function ke(e){let t=this.sliceSerialize(e);t=m("characterReferenceType")?Rb(t,"characterReferenceMarkerNumeric"===m("characterReferenceType")?10:16):yb(t),b(w(t)),h("characterReferenceType")}function Se(e){const n=this.sliceSerialize(e);_('<a href="'+Xb(n,t.allowDangerousProtocol?void 0:Kb)+'">'),b(w(n)),_("</a>")}function Ee(e){const t=this.sliceSerialize(e);_('<a href="'+Xb("mailto:"+t)+'">'),b(w(t)),_("</a>")}}function Jb(e,t,n,o){const r=o?o-1:Number.POSITIVE_INFINITY;let s=0;return i;function i(o){return $b(o)?(e.enter(n),a(o)):t(o)}function a(o){return $b(o)&&s++<r?(e.consume(o),a):(e.exit(n),t(o))}}const ey={tokenize:ty};function ty(e){const t=e.attempt(this.parser.constructs.contentInitial,o,r);let n;return t;function o(n){if(null!==n)return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),Jb(e,t,"linePrefix");e.consume(n)}function r(t){return e.enter("paragraph"),s(t)}function s(t){const o=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=o),n=o,i(t)}function i(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(t)):Ub(t)?(e.consume(t),e.exit("chunkText"),s):(e.consume(t),i)}}const ny={tokenize:ry},oy={tokenize:sy};function ry(e){const t=this,n=[];let o,r,s,i=0;return a;function a(o){if(i<n.length){const r=n[i];return t.containerState=r[1],e.attempt(r[0].continuation,l,c)(o)}return c(o)}function l(e){if(i++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&_();const n=t.events.length;let r,s=n;while(s--)if("exit"===t.events[s][0]&&"chunkFlow"===t.events[s][1].type){r=t.events[s][1].end;break}v(i);let a=n;while(a<t.events.length)t.events[a][1].end=Object.assign({},r),a++;return xb(t.events,s+1,0,t.events.slice(n)),t.events.length=a,c(e)}return a(e)}function c(r){if(i===n.length){if(!o)return f(r);if(o.currentConstruct&&o.currentConstruct.concrete)return h(r);t.interrupt=Boolean(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(oy,u,d)(r)}function u(e){return o&&_(),v(i),f(e)}function d(e){return t.parser.lazy[t.now().line]=i!==n.length,s=t.now().offset,h(e)}function f(n){return t.containerState={},e.attempt(oy,p,h)(n)}function p(e){return i++,n.push([t.currentConstruct,t.containerState]),f(e)}function h(n){return null===n?(o&&_(),v(0),void e.consume(n)):(o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{contentType:"flow",previous:r,_tokenizer:o}),m(n))}function m(n){return null===n?(g(e.exit("chunkFlow"),!0),v(0),void e.consume(n)):Ub(n)?(e.consume(n),g(e.exit("chunkFlow")),i=0,t.interrupt=void 0,a):(e.consume(n),m)}function g(e,n){const a=t.sliceStream(e);if(n&&a.push(null),e.previous=r,r&&(r.next=e),r=e,o.defineSkip(e.start),o.write(a),t.parser.lazy[e.start.line]){let e=o.events.length;while(e--)if(o.events[e][1].start.offset<s&&(!o.events[e][1].end||o.events[e][1].end.offset>s))return;const n=t.events.length;let r,a,l=n;while(l--)if("exit"===t.events[l][0]&&"chunkFlow"===t.events[l][1].type){if(r){a=t.events[l][1].end;break}r=!0}v(i),e=n;while(e<t.events.length)t.events[e][1].end=Object.assign({},a),e++;xb(t.events,l+1,0,t.events.slice(n)),t.events.length=e}}function v(o){let r=n.length;while(r-- >o){const o=n[r];t.containerState=o[1],o[0].exit.call(t,e)}n.length=o}function _(){o.write([null]),r=void 0,o=void 0,t.containerState._closeFlow=void 0}}function sy(e,t,n){return Jb(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function iy(e){return null===e||Vb(e)||qb(e)?1:zb(e)?2:void 0}function ay(e,t,n){const o=[];let r=-1;while(++r<e.length){const s=e[r].resolveAll;s&&!o.includes(s)&&(t=s(t,n),o.push(s))}return t}const ly={name:"attention",tokenize:uy,resolveAll:cy};function cy(e,t){let n,o,r,s,i,a,l,c,u=-1;while(++u<e.length)if("enter"===e[u][0]&&"attentionSequence"===e[u][1].type&&e[u][1]._close){n=u;while(n--)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[u][1]).charCodeAt(0)){if((e[n][1]._close||e[u][1]._open)&&(e[u][1].end.offset-e[u][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[u][1].end.offset-e[u][1].start.offset)%3))continue;a=e[n][1].end.offset-e[n][1].start.offset>1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;const d=Object.assign({},e[n][1].end),f=Object.assign({},e[u][1].start);dy(d,-a),dy(f,a),s={type:a>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},i={type:a>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[u][1].start),end:f},r={type:a>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[u][1].start)},o={type:a>1?"strong":"emphasis",start:Object.assign({},s.start),end:Object.assign({},i.end)},e[n][1].end=Object.assign({},s.start),e[u][1].start=Object.assign({},i.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=wb(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=wb(l,[["enter",o,t],["enter",s,t],["exit",s,t],["enter",r,t]]),l=wb(l,ay(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),l=wb(l,[["exit",r,t],["enter",i,t],["exit",i,t],["exit",o,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,l=wb(l,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,xb(e,n-1,u-n+3,l),u=n+l.length-c-2;break}}u=-1;while(++u<e.length)"attentionSequence"===e[u][1].type&&(e[u][1].type="data");return e}function uy(e,t){const n=this.parser.constructs.attentionMarkers.null,o=this.previous,r=iy(o);let s;return i;function i(t){return s=t,e.enter("attentionSequence"),a(t)}function a(i){if(i===s)return e.consume(i),a;const l=e.exit("attentionSequence"),c=iy(i),u=!c||2===c&&r||n.includes(i),d=!r||2===r&&c||n.includes(o);return l._open=Boolean(42===s?u:u&&(r||!d)),l._close=Boolean(42===s?d:d&&(c||!u)),t(i)}}function dy(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const fy={name:"autolink",tokenize:py};function py(e,t,n){let o=0;return r;function r(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),s}function s(t){return Pb(t)?(e.consume(t),i):c(t)}function i(e){return 43===e||45===e||46===e||Lb(e)?(o=1,a(e)):c(e)}function a(t){return 58===t?(e.consume(t),o=0,l):(43===t||45===t||46===t||Lb(t))&&o++<32?(e.consume(t),a):(o=0,c(t))}function l(o){return 62===o?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(o),e.exit("autolinkMarker"),e.exit("autolink"),t):null===o||32===o||60===o||jb(o)?n(o):(e.consume(o),l)}function c(t){return 64===t?(e.consume(t),u):Nb(t)?(e.consume(t),c):n(t)}function u(e){return Lb(e)?d(e):n(e)}function d(n){return 46===n?(e.consume(n),o=0,u):62===n?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.exit("autolink"),t):f(n)}function f(t){if((45===t||Lb(t))&&o++<63){const n=45===t?f:d;return e.consume(t),n}return n(t)}}const hy={tokenize:my,partial:!0};function my(e,t,n){return o;function o(t){return $b(t)?Jb(e,r,"linePrefix")(t):r(t)}function r(e){return null===e||Ub(e)?t(e):n(e)}}const gy={name:"blockQuote",tokenize:vy,continuation:{tokenize:_y},exit:by};function vy(e,t,n){const o=this;return r;function r(t){if(62===t){const n=o.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),s}return n(t)}function s(n){return $b(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}function _y(e,t,n){const o=this;return r;function r(t){return $b(t)?Jb(e,s,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):s(t)}function s(o){return e.attempt(gy,t,n)(o)}}function by(e){e.exit("blockQuote")}const yy={name:"characterEscape",tokenize:xy};function xy(e,t,n){return o;function o(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r}function r(o){return Hb(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const wy={name:"characterReference",tokenize:ky};function ky(e,t,n){const o=this;let r,s,i=0;return a;function a(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),l}function l(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),r=31,s=Lb,u(t))}function c(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,s=Db,u):(e.enter("characterReferenceValue"),r=7,s=Fb,u(t))}function u(a){if(59===a&&i){const r=e.exit("characterReferenceValue");return s!==Lb||yb(o.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(a),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(a)}return s(a)&&i++<r?(e.consume(a),u):n(a)}}const Sy={tokenize:My,partial:!0},Ey={name:"codeFenced",tokenize:Ty,concrete:!0};function Ty(e,t,n){const o=this,r={tokenize:x,partial:!0};let s,i=0,a=0;return l;function l(e){return c(e)}function c(t){const n=o.events[o.events.length-1];return i=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),u(t)}function u(t){return t===s?(a++,e.consume(t),u):a<3?n(t):(e.exit("codeFencedFenceSequence"),$b(t)?Jb(e,d,"whitespace")(t):d(t))}function d(n){return null===n||Ub(n)?(e.exit("codeFencedFence"),o.interrupt?t(n):e.check(Sy,m,y)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),f(n))}function f(t){return null===t||Ub(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),d(t)):$b(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Jb(e,p,"whitespace")(t)):96===t&&t===s?n(t):(e.consume(t),f)}function p(t){return null===t||Ub(t)?d(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),h(t))}function h(t){return null===t||Ub(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),d(t)):96===t&&t===s?n(t):(e.consume(t),h)}function m(t){return e.attempt(r,y,g)(t)}function g(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),v}function v(t){return i>0&&$b(t)?Jb(e,_,"linePrefix",i+1)(t):_(t)}function _(t){return null===t||Ub(t)?e.check(Sy,m,y)(t):(e.enter("codeFlowValue"),b(t))}function b(t){return null===t||Ub(t)?(e.exit("codeFlowValue"),_(t)):(e.consume(t),b)}function y(n){return e.exit("codeFenced"),t(n)}function x(e,t,n){let r=0;return i;function i(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),l}function l(t){return e.enter("codeFencedFence"),$b(t)?Jb(e,c,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):c(t)}function c(t){return t===s?(e.enter("codeFencedFenceSequence"),u(t)):n(t)}function u(t){return t===s?(r++,e.consume(t),u):r>=a?(e.exit("codeFencedFenceSequence"),$b(t)?Jb(e,d,"whitespace")(t):d(t)):n(t)}function d(o){return null===o||Ub(o)?(e.exit("codeFencedFence"),t(o)):n(o)}}}function My(e,t,n){const o=this;return r;function r(t){return null===t?n(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s)}function s(e){return o.parser.lazy[o.now().line]?n(e):t(e)}}const Ay={name:"codeIndented",tokenize:Cy},Ry={tokenize:Oy,partial:!0};function Cy(e,t,n){const o=this;return r;function r(t){return e.enter("codeIndented"),Jb(e,s,"linePrefix",5)(t)}function s(e){const t=o.events[o.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):n(e)}function i(t){return null===t?l(t):Ub(t)?e.attempt(Ry,i,l)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||Ub(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),a)}function l(n){return e.exit("codeIndented"),t(n)}}function Oy(e,t,n){const o=this;return r;function r(t){return o.parser.lazy[o.now().line]?n(t):Ub(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),r):Jb(e,s,"linePrefix",5)(t)}function s(e){const s=o.events[o.events.length-1];return s&&"linePrefix"===s[1].type&&s[2].sliceSerialize(s[1],!0).length>=4?t(e):Ub(e)?r(e):n(e)}}const Iy={name:"codeText",tokenize:Ly,resolve:By,previous:Py};function By(e){let t,n,o=e.length-4,r=3;if(("lineEnding"===e[r][1].type||"space"===e[r][1].type)&&("lineEnding"===e[o][1].type||"space"===e[o][1].type)){t=r;while(++t<o)if("codeTextData"===e[t][1].type){e[r][1].type="codeTextPadding",e[o][1].type="codeTextPadding",r+=2,o-=2;break}}t=r-1,o++;while(++t<=o)void 0===n?t!==o&&"lineEnding"!==e[t][1].type&&(n=t):t!==o&&"lineEnding"!==e[t][1].type||(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),o-=t-n-2,t=n+2),n=void 0);return e}function Py(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}function Ly(e,t,n){let o,r,s=0;return i;function i(t){return e.enter("codeText"),e.enter("codeTextSequence"),a(t)}function a(t){return 96===t?(e.consume(t),s++,a):(e.exit("codeTextSequence"),l(t))}function l(t){return null===t?n(t):32===t?(e.enter("space"),e.consume(t),e.exit("space"),l):96===t?(r=e.enter("codeTextSequence"),o=0,u(t)):Ub(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),l):(e.enter("codeTextData"),c(t))}function c(t){return null===t||32===t||96===t||Ub(t)?(e.exit("codeTextData"),l(t)):(e.consume(t),c)}function u(n){return 96===n?(e.consume(n),o++,u):o===s?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(r.type="codeTextData",c(n))}}function Ny(e){const t={};let n,o,r,s,i,a,l,c=-1;while(++c<e.length){while(c in t)c=t[c];if(n=e[c],c&&"chunkFlow"===n[1].type&&"listItemPrefix"===e[c-1][1].type&&(a=n[1]._tokenizer.events,r=0,r<a.length&&"lineEndingBlank"===a[r][1].type&&(r+=2),r<a.length&&"content"===a[r][1].type))while(++r<a.length){if("content"===a[r][1].type)break;"chunkText"===a[r][1].type&&(a[r][1]._isInFirstContentOfListItem=!0,r++)}if("enter"===n[0])n[1].contentType&&(Object.assign(t,jy(e,c)),c=t[c],l=!0);else if(n[1]._container){r=c,o=void 0;while(r--){if(s=e[r],"lineEnding"!==s[1].type&&"lineEndingBlank"!==s[1].type)break;"enter"===s[0]&&(o&&(e[o][1].type="lineEndingBlank"),s[1].type="lineEnding",o=r)}o&&(n[1].end=Object.assign({},e[o][1].start),i=e.slice(o,c),i.unshift(n),xb(e,o,c-o+1,i))}}return!l}function jy(e,t){const n=e[t][1],o=e[t][2];let r=t-1;const s=[],i=n._tokenizer||o.parser[n.contentType](n.start),a=i.events,l=[],c={};let u,d,f=-1,p=n,h=0,m=0;const g=[m];while(p){while(e[++r][1]!==p);s.push(r),p._tokenizer||(u=o.sliceStream(p),p.next||u.push(null),d&&i.defineSkip(p.start),p._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=!0),i.write(u),p._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}p=n;while(++f<a.length)"exit"===a[f][0]&&"enter"===a[f-1][0]&&a[f][1].type===a[f-1][1].type&&a[f][1].start.line!==a[f][1].end.line&&(m=f+1,g.push(m),p._tokenizer=void 0,p.previous=void 0,p=p.next);i.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;while(f--){const t=a.slice(g[f],g[f+1]),n=s.pop();l.unshift([n,n+t.length-1]),xb(e,n,2,t)}f=-1;while(++f<l.length)c[h+l[f][0]]=h+l[f][1],h+=l[f][1]-l[f][0]-1;return c}const Fy={tokenize:Uy,resolve:Hy},Dy={tokenize:Vy,partial:!0};function Hy(e){return Ny(e),e}function Uy(e,t){let n;return o;function o(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)}function r(t){return null===t?s(t):Ub(t)?e.check(Dy,i,s)(t):(e.consume(t),r)}function s(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function i(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}function Vy(e,t,n){const o=this;return r;function r(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Jb(e,s,"linePrefix")}function s(r){if(null===r||Ub(r))return n(r);const s=o.events[o.events.length-1];return!o.parser.constructs.disable.null.includes("codeIndented")&&s&&"linePrefix"===s[1].type&&s[2].sliceSerialize(s[1],!0).length>=4?t(r):e.interrupt(o.parser.constructs.flow,n,t)(r)}}function $y(e,t,n,o,r,s,i,a,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return d;function d(t){return 60===t?(e.enter(o),e.enter(r),e.enter(s),e.consume(t),e.exit(s),f):null===t||32===t||41===t||jb(t)?n(t):(e.enter(o),e.enter(i),e.enter(a),e.enter("chunkString",{contentType:"string"}),m(t))}function f(n){return 62===n?(e.enter(s),e.consume(n),e.exit(s),e.exit(r),e.exit(o),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(n))}function p(t){return 62===t?(e.exit("chunkString"),e.exit(a),f(t)):null===t||60===t||Ub(t)?n(t):(e.consume(t),92===t?h:p)}function h(t){return 60===t||62===t||92===t?(e.consume(t),p):p(t)}function m(r){return u||null!==r&&41!==r&&!Vb(r)?u<c&&40===r?(e.consume(r),u++,m):41===r?(e.consume(r),u--,m):null===r||32===r||40===r||jb(r)?n(r):(e.consume(r),92===r?g:m):(e.exit("chunkString"),e.exit(a),e.exit(i),e.exit(o),t(r))}function g(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}}function zy(e,t,n,o,r,s){const i=this;let a,l=0;return c;function c(t){return e.enter(o),e.enter(r),e.consume(t),e.exit(r),e.enter(s),u}function u(c){return l>999||null===c||91===c||93===c&&!a||94===c&&!l&&"_hiddenFootnoteSupport"in i.parser.constructs?n(c):93===c?(e.exit(s),e.enter(r),e.consume(c),e.exit(r),e.exit(o),t):Ub(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),d(c))}function d(t){return null===t||91===t||93===t||Ub(t)||l++>999?(e.exit("chunkString"),u(t)):(e.consume(t),a||(a=!$b(t)),92===t?f:d)}function f(t){return 91===t||92===t||93===t?(e.consume(t),l++,d):d(t)}}function qy(e,t,n,o,r,s){let i;return a;function a(t){return 34===t||39===t||40===t?(e.enter(o),e.enter(r),e.consume(t),e.exit(r),i=40===t?41:t,l):n(t)}function l(n){return n===i?(e.enter(r),e.consume(n),e.exit(r),e.exit(o),t):(e.enter(s),c(n))}function c(t){return t===i?(e.exit(s),l(i)):null===t?n(t):Ub(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Jb(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(t))}function u(t){return t===i||null===t||Ub(t)?(e.exit("chunkString"),c(t)):(e.consume(t),92===t?d:u)}function d(t){return t===i||92===t?(e.consume(t),u):u(t)}}function Yy(e,t){let n;return o;function o(r){return Ub(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,o):$b(r)?Jb(e,o,n?"linePrefix":"lineSuffix")(r):t(r)}}const Xy={name:"definition",tokenize:Wy},Gy={tokenize:Ky,partial:!0};function Wy(e,t,n){const o=this;let r;return s;function s(t){return e.enter("definition"),i(t)}function i(t){return zy.call(o,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}function a(t){return r=Ib(o.sliceSerialize(o.events[o.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),l):n(t)}function l(t){return Vb(t)?Yy(e,c)(t):c(t)}function c(t){return $y(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function u(t){return e.attempt(Gy,d,d)(t)}function d(t){return $b(t)?Jb(e,f,"whitespace")(t):f(t)}function f(s){return null===s||Ub(s)?(e.exit("definition"),o.parser.defined.push(r),t(s)):n(s)}}function Ky(e,t,n){return o;function o(t){return Vb(t)?Yy(e,r)(t):n(t)}function r(t){return qy(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function s(t){return $b(t)?Jb(e,i,"whitespace")(t):i(t)}function i(e){return null===e||Ub(e)?t(e):n(e)}}const Zy={name:"hardBreakEscape",tokenize:Qy};function Qy(e,t,n){return o;function o(t){return e.enter("hardBreakEscape"),e.consume(t),r}function r(o){return Ub(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const Jy={name:"headingAtx",tokenize:tx,resolve:ex};function ex(e,t){let n,o,r=e.length-2,s=3;return"whitespace"===e[s][1].type&&(s+=2),r-2>s&&"whitespace"===e[r][1].type&&(r-=2),"atxHeadingSequence"===e[r][1].type&&(s===r-1||r-4>s&&"whitespace"===e[r-2][1].type)&&(r-=s+1===r?2:4),r>s&&(n={type:"atxHeadingText",start:e[s][1].start,end:e[r][1].end},o={type:"chunkText",start:e[s][1].start,end:e[r][1].end,contentType:"text"},xb(e,s,r-s+1,[["enter",n,t],["enter",o,t],["exit",o,t],["exit",n,t]])),e}function tx(e,t,n){let o=0;return r;function r(t){return e.enter("atxHeading"),s(t)}function s(t){return e.enter("atxHeadingSequence"),i(t)}function i(t){return 35===t&&o++<6?(e.consume(t),i):null===t||Vb(t)?(e.exit("atxHeadingSequence"),a(t)):n(t)}function a(n){return 35===n?(e.enter("atxHeadingSequence"),l(n)):null===n||Ub(n)?(e.exit("atxHeading"),t(n)):$b(n)?Jb(e,a,"whitespace")(n):(e.enter("atxHeadingText"),c(n))}function l(t){return 35===t?(e.consume(t),l):(e.exit("atxHeadingSequence"),a(t))}function c(t){return null===t||35===t||Vb(t)?(e.exit("atxHeadingText"),a(t)):(e.consume(t),c)}}const nx=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ox=["pre","script","style","textarea"],rx={name:"htmlFlow",tokenize:lx,resolveTo:ax,concrete:!0},sx={tokenize:ux,partial:!0},ix={tokenize:cx,partial:!0};function ax(e){let t=e.length;while(t--)if("enter"===e[t][0]&&"htmlFlow"===e[t][1].type)break;return 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)),e}function lx(e,t,n){const o=this;let r,s,i,a,l;return c;function c(e){return u(e)}function u(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),d}function d(a){return 33===a?(e.consume(a),f):47===a?(e.consume(a),s=!0,m):63===a?(e.consume(a),r=3,o.interrupt?t:N):Pb(a)?(e.consume(a),i=String.fromCharCode(a),g):n(a)}function f(s){return 45===s?(e.consume(s),r=2,p):91===s?(e.consume(s),r=5,a=0,h):Pb(s)?(e.consume(s),r=4,o.interrupt?t:N):n(s)}function p(r){return 45===r?(e.consume(r),o.interrupt?t:N):n(r)}function h(r){const s="CDATA[";return r===s.charCodeAt(a++)?(e.consume(r),a===s.length?o.interrupt?t:A:h):n(r)}function m(t){return Pb(t)?(e.consume(t),i=String.fromCharCode(t),g):n(t)}function g(a){if(null===a||47===a||62===a||Vb(a)){const l=47===a,c=i.toLowerCase();return l||s||!ox.includes(c)?nx.includes(i.toLowerCase())?(r=6,l?(e.consume(a),v):o.interrupt?t(a):A(a)):(r=7,o.interrupt&&!o.parser.lazy[o.now().line]?n(a):s?_(a):b(a)):(r=1,o.interrupt?t(a):A(a))}return 45===a||Lb(a)?(e.consume(a),i+=String.fromCharCode(a),g):n(a)}function v(r){return 62===r?(e.consume(r),o.interrupt?t:A):n(r)}function _(t){return $b(t)?(e.consume(t),_):T(t)}function b(t){return 47===t?(e.consume(t),T):58===t||95===t||Pb(t)?(e.consume(t),y):$b(t)?(e.consume(t),b):T(t)}function y(t){return 45===t||46===t||58===t||95===t||Lb(t)?(e.consume(t),y):x(t)}function x(t){return 61===t?(e.consume(t),w):$b(t)?(e.consume(t),x):b(t)}function w(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),l=t,k):$b(t)?(e.consume(t),w):S(t)}function k(t){return t===l?(e.consume(t),l=null,E):null===t||Ub(t)?n(t):(e.consume(t),k)}function S(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||Vb(t)?x(t):(e.consume(t),S)}function E(e){return 47===e||62===e||$b(e)?b(e):n(e)}function T(t){return 62===t?(e.consume(t),M):n(t)}function M(t){return null===t||Ub(t)?A(t):$b(t)?(e.consume(t),M):n(t)}function A(t){return 45===t&&2===r?(e.consume(t),I):60===t&&1===r?(e.consume(t),B):62===t&&4===r?(e.consume(t),j):63===t&&3===r?(e.consume(t),N):93===t&&5===r?(e.consume(t),L):!Ub(t)||6!==r&&7!==r?null===t||Ub(t)?(e.exit("htmlFlowData"),R(t)):(e.consume(t),A):(e.exit("htmlFlowData"),e.check(sx,F,R)(t))}function R(t){return e.check(ix,C,F)(t)}function C(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),O}function O(t){return null===t||Ub(t)?R(t):(e.enter("htmlFlowData"),A(t))}function I(t){return 45===t?(e.consume(t),N):A(t)}function B(t){return 47===t?(e.consume(t),i="",P):A(t)}function P(t){if(62===t){const n=i.toLowerCase();return ox.includes(n)?(e.consume(t),j):A(t)}return Pb(t)&&i.length<8?(e.consume(t),i+=String.fromCharCode(t),P):A(t)}function L(t){return 93===t?(e.consume(t),N):A(t)}function N(t){return 62===t?(e.consume(t),j):45===t&&2===r?(e.consume(t),N):A(t)}function j(t){return null===t||Ub(t)?(e.exit("htmlFlowData"),F(t)):(e.consume(t),j)}function F(n){return e.exit("htmlFlow"),t(n)}}function cx(e,t,n){const o=this;return r;function r(t){return Ub(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s):n(t)}function s(e){return o.parser.lazy[o.now().line]?n(e):t(e)}}function ux(e,t,n){return o;function o(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(hy,t,n)}}const dx={name:"htmlText",tokenize:fx};function fx(e,t,n){const o=this;let r,s,i;return a;function a(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),l}function l(t){return 33===t?(e.consume(t),c):47===t?(e.consume(t),x):63===t?(e.consume(t),b):Pb(t)?(e.consume(t),S):n(t)}function c(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),s=0,h):Pb(t)?(e.consume(t),_):n(t)}function u(t){return 45===t?(e.consume(t),p):n(t)}function d(t){return null===t?n(t):45===t?(e.consume(t),f):Ub(t)?(i=d,B(t)):(e.consume(t),d)}function f(t){return 45===t?(e.consume(t),p):d(t)}function p(e){return 62===e?I(e):45===e?f(e):d(e)}function h(t){const o="CDATA[";return t===o.charCodeAt(s++)?(e.consume(t),s===o.length?m:h):n(t)}function m(t){return null===t?n(t):93===t?(e.consume(t),g):Ub(t)?(i=m,B(t)):(e.consume(t),m)}function g(t){return 93===t?(e.consume(t),v):m(t)}function v(t){return 62===t?I(t):93===t?(e.consume(t),v):m(t)}function _(t){return null===t||62===t?I(t):Ub(t)?(i=_,B(t)):(e.consume(t),_)}function b(t){return null===t?n(t):63===t?(e.consume(t),y):Ub(t)?(i=b,B(t)):(e.consume(t),b)}function y(e){return 62===e?I(e):b(e)}function x(t){return Pb(t)?(e.consume(t),w):n(t)}function w(t){return 45===t||Lb(t)?(e.consume(t),w):k(t)}function k(t){return Ub(t)?(i=k,B(t)):$b(t)?(e.consume(t),k):I(t)}function S(t){return 45===t||Lb(t)?(e.consume(t),S):47===t||62===t||Vb(t)?E(t):n(t)}function E(t){return 47===t?(e.consume(t),I):58===t||95===t||Pb(t)?(e.consume(t),T):Ub(t)?(i=E,B(t)):$b(t)?(e.consume(t),E):I(t)}function T(t){return 45===t||46===t||58===t||95===t||Lb(t)?(e.consume(t),T):M(t)}function M(t){return 61===t?(e.consume(t),A):Ub(t)?(i=M,B(t)):$b(t)?(e.consume(t),M):E(t)}function A(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,R):Ub(t)?(i=A,B(t)):$b(t)?(e.consume(t),A):(e.consume(t),C)}function R(t){return t===r?(e.consume(t),r=void 0,O):null===t?n(t):Ub(t)?(i=R,B(t)):(e.consume(t),R)}function C(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||Vb(t)?E(t):(e.consume(t),C)}function O(e){return 47===e||62===e||Vb(e)?E(e):n(e)}function I(o){return 62===o?(e.consume(o),e.exit("htmlTextData"),e.exit("htmlText"),t):n(o)}function B(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),P}function P(t){return $b(t)?Jb(e,L,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):L(t)}function L(t){return e.enter("htmlTextData"),i(t)}}const px={name:"labelEnd",tokenize:bx,resolveTo:_x,resolveAll:vx},hx={tokenize:yx},mx={tokenize:xx},gx={tokenize:wx};function vx(e){let t=-1;while(++t<e.length){const n=e[t][1];"labelImage"!==n.type&&"labelLink"!==n.type&&"labelEnd"!==n.type||(e.splice(t+1,"labelImage"===n.type?4:2),n.type="data",t++)}return e}function _x(e,t){let n,o,r,s,i=e.length,a=0;while(i--)if(n=e[i][1],o){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[i][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(r){if("enter"===e[i][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(o=i,"labelLink"!==n.type)){a=2;break}}else"labelEnd"===n.type&&(r=i);const l={type:"labelLink"===e[o][1].type?"link":"image",start:Object.assign({},e[o][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[o][1].start),end:Object.assign({},e[r][1].end)},u={type:"labelText",start:Object.assign({},e[o+a+2][1].end),end:Object.assign({},e[r-2][1].start)};return s=[["enter",l,t],["enter",c,t]],s=wb(s,e.slice(o+1,o+a+3)),s=wb(s,[["enter",u,t]]),s=wb(s,ay(t.parser.constructs.insideSpan.null,e.slice(o+a+4,r-3),t)),s=wb(s,[["exit",u,t],e[r-2],e[r-1],["exit",c,t]]),s=wb(s,e.slice(r+1)),s=wb(s,[["exit",l,t]]),xb(e,o,e.length,s),e}function bx(e,t,n){const o=this;let r,s,i=o.events.length;while(i--)if(("labelImage"===o.events[i][1].type||"labelLink"===o.events[i][1].type)&&!o.events[i][1]._balanced){r=o.events[i][1];break}return a;function a(t){return r?r._inactive?d(t):(s=o.parser.defined.includes(Ib(o.sliceSerialize({start:r.end,end:o.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),l):n(t)}function l(t){return 40===t?e.attempt(hx,u,s?u:d)(t):91===t?e.attempt(mx,u,s?c:d)(t):s?u(t):d(t)}function c(t){return e.attempt(gx,u,d)(t)}function u(e){return t(e)}function d(e){return r._balanced=!0,n(e)}}function yx(e,t,n){return o;function o(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),r}function r(t){return Vb(t)?Yy(e,s)(t):s(t)}function s(t){return 41===t?u(t):$y(e,i,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function i(t){return Vb(t)?Yy(e,l)(t):u(t)}function a(e){return n(e)}function l(t){return 34===t||39===t||40===t?qy(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):u(t)}function c(t){return Vb(t)?Yy(e,u)(t):u(t)}function u(o){return 41===o?(e.enter("resourceMarker"),e.consume(o),e.exit("resourceMarker"),e.exit("resource"),t):n(o)}}function xx(e,t,n){const o=this;return r;function r(t){return zy.call(o,e,s,i,"reference","referenceMarker","referenceString")(t)}function s(e){return o.parser.defined.includes(Ib(o.sliceSerialize(o.events[o.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function i(e){return n(e)}}function wx(e,t,n){return o;function o(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r}function r(o){return 93===o?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const kx={name:"labelStartImage",tokenize:Sx,resolveAll:px.resolveAll};function Sx(e,t,n){const o=this;return r;function r(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),s}function s(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),i):n(t)}function i(e){return 94===e&&"_hiddenFootnoteSupport"in o.parser.constructs?n(e):t(e)}}const Ex={name:"labelStartLink",tokenize:Tx,resolveAll:px.resolveAll};function Tx(e,t,n){const o=this;return r;function r(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),s}function s(e){return 94===e&&"_hiddenFootnoteSupport"in o.parser.constructs?n(e):t(e)}}const Mx={name:"lineEnding",tokenize:Ax};function Ax(e,t){return n;function n(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),Jb(e,t,"linePrefix")}}const Rx={name:"thematicBreak",tokenize:Cx};function Cx(e,t,n){let o,r=0;return s;function s(t){return e.enter("thematicBreak"),i(t)}function i(e){return o=e,a(e)}function a(s){return s===o?(e.enter("thematicBreakSequence"),l(s)):r>=3&&(null===s||Ub(s))?(e.exit("thematicBreak"),t(s)):n(s)}function l(t){return t===o?(e.consume(t),r++,l):(e.exit("thematicBreakSequence"),$b(t)?Jb(e,a,"whitespace")(t):a(t))}}const Ox={name:"list",tokenize:Px,continuation:{tokenize:Lx},exit:jx},Ix={tokenize:Fx,partial:!0},Bx={tokenize:Nx,partial:!0};function Px(e,t,n){const o=this,r=o.events[o.events.length-1];let s=r&&"linePrefix"===r[1].type?r[2].sliceSerialize(r[1],!0).length:0,i=0;return a;function a(t){const r=o.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===r?!o.containerState.marker||t===o.containerState.marker:Fb(t)){if(o.containerState.type||(o.containerState.type=r,e.enter(r,{_container:!0})),"listUnordered"===r)return e.enter("listItemPrefix"),42===t||45===t?e.check(Rx,n,c)(t):c(t);if(!o.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(t)}return n(t)}function l(t){return Fb(t)&&++i<10?(e.consume(t),l):(!o.interrupt||i<2)&&(o.containerState.marker?t===o.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),c(t)):n(t)}function c(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),o.containerState.marker=o.containerState.marker||t,e.check(hy,o.interrupt?n:u,e.attempt(Ix,f,d))}function u(e){return o.containerState.initialBlankLine=!0,s++,f(e)}function d(t){return $b(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),f):n(t)}function f(n){return o.containerState.size=s+o.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}function Lx(e,t,n){const o=this;return o.containerState._closeFlow=void 0,e.check(hy,r,s);function r(n){return o.containerState.furtherBlankLines=o.containerState.furtherBlankLines||o.containerState.initialBlankLine,Jb(e,t,"listItemIndent",o.containerState.size+1)(n)}function s(n){return o.containerState.furtherBlankLines||!$b(n)?(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,i(n)):(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,e.attempt(Bx,t,i)(n))}function i(r){return o.containerState._closeFlow=!0,o.interrupt=void 0,Jb(e,e.attempt(Ox,t,n),"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(r)}}function Nx(e,t,n){const o=this;return Jb(e,r,"listItemIndent",o.containerState.size+1);function r(e){const r=o.events[o.events.length-1];return r&&"listItemIndent"===r[1].type&&r[2].sliceSerialize(r[1],!0).length===o.containerState.size?t(e):n(e)}}function jx(e){e.exit(this.containerState.type)}function Fx(e,t,n){const o=this;return Jb(e,r,"listItemPrefixWhitespace",o.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(e){const r=o.events[o.events.length-1];return!$b(e)&&r&&"listItemPrefixWhitespace"===r[1].type?t(e):n(e)}}const Dx={name:"setextUnderline",tokenize:Ux,resolveTo:Hx};function Hx(e,t){let n,o,r,s=e.length;while(s--)if("enter"===e[s][0]){if("content"===e[s][1].type){n=s;break}"paragraph"===e[s][1].type&&(o=s)}else"content"===e[s][1].type&&e.splice(s,1),r||"definition"!==e[s][1].type||(r=s);const i={type:"setextHeading",start:Object.assign({},e[o][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[o][1].type="setextHeadingText",r?(e.splice(o,0,["enter",i,t]),e.splice(r+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[r][1].end)):e[n][1]=i,e.push(["exit",i,t]),e}function Ux(e,t,n){const o=this;let r;return s;function s(t){let s,a=o.events.length;while(a--)if("lineEnding"!==o.events[a][1].type&&"linePrefix"!==o.events[a][1].type&&"content"!==o.events[a][1].type){s="paragraph"===o.events[a][1].type;break}return o.parser.lazy[o.now().line]||!o.interrupt&&!s?n(t):(e.enter("setextHeadingLine"),r=t,i(t))}function i(t){return e.enter("setextHeadingLineSequence"),a(t)}function a(t){return t===r?(e.consume(t),a):(e.exit("setextHeadingLineSequence"),$b(t)?Jb(e,l,"lineSuffix")(t):l(t))}function l(o){return null===o||Ub(o)?(e.exit("setextHeadingLine"),t(o)):n(o)}}const Vx={tokenize:$x};function $x(e){const t=this,n=e.attempt(hy,o,e.attempt(this.parser.constructs.flowInitial,r,Jb(e,e.attempt(this.parser.constructs.flow,r,e.attempt(Fy,r)),"linePrefix")));return n;function o(o){if(null!==o)return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n;e.consume(o)}function r(o){if(null!==o)return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(o)}}const zx={resolveAll:Gx()},qx=Xx("string"),Yx=Xx("text");function Xx(e){return{tokenize:t,resolveAll:Gx("text"===e?Wx:void 0)};function t(t){const n=this,o=this.parser.constructs[e],r=t.attempt(o,s,i);return s;function s(e){return l(e)?r(e):i(e)}function i(e){if(null!==e)return t.enter("data"),t.consume(e),a;t.consume(e)}function a(e){return l(e)?(t.exit("data"),r(e)):(t.consume(e),a)}function l(e){if(null===e)return!0;const t=o[e];let r=-1;if(t)while(++r<t.length){const e=t[r];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function Gx(e){return t;function t(t,n){let o,r=-1;while(++r<=t.length)void 0===o?t[r]&&"data"===t[r][1].type&&(o=r,r++):t[r]&&"data"===t[r][1].type||(r!==o+2&&(t[o][1].end=t[r-1][1].end,t.splice(o+2,r-o-2),r=o+2),o=void 0);return e?e(t,n):t}}function Wx(e,t){let n=0;while(++n<=e.length)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){const o=e[n-1][1],r=t.sliceStream(o);let s,i=r.length,a=-1,l=0;while(i--){const e=r[i];if("string"===typeof e){a=e.length;while(32===e.charCodeAt(a-1))l++,a--;if(a)break;a=-1}else if(-2===e)s=!0,l++;else if(-1!==e){i++;break}}if(l){const r={type:n===e.length||s||l<2?"lineSuffix":"hardBreakTrailing",start:{line:o.end.line,column:o.end.column-l,offset:o.end.offset-l,_index:o.start._index+i,_bufferIndex:i?a:o.start._bufferIndex+a},end:Object.assign({},o.end)};o.end=Object.assign({},r.start),o.start.offset===o.end.offset?Object.assign(o,r):(e.splice(n,0,["enter",r,t],["exit",r,t]),n+=2)}n++}return e}function Kx(e,t,n){let o=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const r={},s=[];let i=[],a=[];const l={consume:_,enter:b,exit:y,attempt:k(x),check:k(w),interrupt:k(w,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:p,sliceSerialize:f,now:h,defineSkip:m,write:d};let u=t.tokenize.call(c,l);return t.resolveAll&&s.push(t),c;function d(e){return i=wb(i,e),g(),null!==i[i.length-1]?[]:(S(t,0),c.events=ay(s,c.events,c),c.events)}function f(e,t){return Qx(p(e),t)}function p(e){return Zx(i,e)}function h(){const{line:e,column:t,offset:n,_index:r,_bufferIndex:s}=o;return{line:e,column:t,offset:n,_index:r,_bufferIndex:s}}function m(e){r[e.line]=e.column,T()}function g(){let e;while(o._index<i.length){const t=i[o._index];if("string"===typeof t){e=o._index,o._bufferIndex<0&&(o._bufferIndex=0);while(o._index===e&&o._bufferIndex<t.length)v(t.charCodeAt(o._bufferIndex))}else v(t)}}function v(e){u=u(e)}function _(e){Ub(e)?(o.line++,o.column=1,o.offset+=-3===e?2:1,T()):-1!==e&&(o.column++,o.offset++),o._bufferIndex<0?o._index++:(o._bufferIndex++,o._bufferIndex===i[o._index].length&&(o._bufferIndex=-1,o._index++)),c.previous=e}function b(e,t){const n=t||{};return n.type=e,n.start=h(),c.events.push(["enter",n,c]),a.push(n),n}function y(e){const t=a.pop();return t.end=h(),c.events.push(["exit",t,c]),t}function x(e,t){S(e,t.from)}function w(e,t){t.restore()}function k(e,t){return n;function n(n,o,r){let s,i,a,u;return Array.isArray(n)?f(n):"tokenize"in n?f([n]):d(n);function d(e){return t;function t(t){const n=null!==t&&e[t],o=null!==t&&e.null,r=[...Array.isArray(n)?n:n?[n]:[],...Array.isArray(o)?o:o?[o]:[]];return f(r)(t)}}function f(e){return s=e,i=0,0===e.length?r:p(e[i])}function p(e){return n;function n(n){return u=E(),a=e,e.partial||(c.currentConstruct=e),e.name&&c.parser.constructs.disable.null.includes(e.name)?m():e.tokenize.call(t?Object.assign(Object.create(c),t):c,l,h,m)(n)}}function h(t){return e(a,u),o}function m(e){return u.restore(),++i<s.length?p(s[i]):r}}}function S(e,t){e.resolveAll&&!s.includes(e)&&s.push(e),e.resolve&&xb(c.events,t,c.events.length-t,e.resolve(c.events.slice(t),c)),e.resolveTo&&(c.events=e.resolveTo(c.events,c))}function E(){const e=h(),t=c.previous,n=c.currentConstruct,r=c.events.length,s=Array.from(a);return{restore:i,from:r};function i(){o=e,c.previous=t,c.currentConstruct=n,c.events.length=r,a=s,T()}}function T(){o.line in r&&o.column<2&&(o.column=r[o.line],o.offset+=r[o.line]-1)}}function Zx(e,t){const n=t.start._index,o=t.start._bufferIndex,r=t.end._index,s=t.end._bufferIndex;let i;if(n===r)i=[e[n].slice(o,s)];else{if(i=e.slice(n,r),o>-1){const e=i[0];"string"===typeof e?i[0]=e.slice(o):i.shift()}s>0&&i.push(e[r].slice(0,s))}return i}function Qx(e,t){let n=-1;const o=[];let r;while(++n<e.length){const s=e[n];let i;if("string"===typeof s)i=s;else switch(s){case-5:i="\r";break;case-4:i="\n";break;case-3:i="\r\n";break;case-2:i=t?" ":"\t";break;case-1:if(!t&&r)continue;i=" ";break;default:i=String.fromCharCode(s)}r=-2===s,o.push(i)}return o.join("")}const Jx={[42]:Ox,[43]:Ox,[45]:Ox,[48]:Ox,[49]:Ox,[50]:Ox,[51]:Ox,[52]:Ox,[53]:Ox,[54]:Ox,[55]:Ox,[56]:Ox,[57]:Ox,[62]:gy},ew={[91]:Xy},tw={[-2]:Ay,[-1]:Ay,[32]:Ay},nw={[35]:Jy,[42]:Rx,[45]:[Dx,Rx],[60]:rx,[61]:Dx,[95]:Rx,[96]:Ey,[126]:Ey},ow={[38]:wy,[92]:yy},rw={[-5]:Mx,[-4]:Mx,[-3]:Mx,[33]:kx,[38]:wy,[42]:ly,[60]:[fy,dx],[91]:Ex,[92]:[Zy,yy],[93]:px,[95]:ly,[96]:Iy},sw={null:[ly,zx]},iw={null:[42,95]},aw={null:[]};var lw=Object.freeze(Object.defineProperty({__proto__:null,document:Jx,contentInitial:ew,flowInitial:tw,flow:nw,string:ow,text:rw,insideSpan:sw,attentionMarkers:iw,disable:aw},Symbol.toStringTag,{value:"Module"}));function cw(e){const t=e||{},n=Sb([lw,...t.extensions||[]]),o={defined:[],lazy:{},constructs:n,content:r(ey),document:r(ny),flow:r(Vx),string:r(qx),text:r(Yx)};return o;function r(e){return t;function t(t){return Kx(o,e,t)}}}function uw(e){while(!Ny(e));return e}const dw=/[\0\t\n\r]/g;function fw(){let e,t=1,n="",o=!0;return r;function r(r,s,i){const a=[];let l,c,u,d,f;r=n+r.toString(s),u=0,n="",o&&(65279===r.charCodeAt(0)&&u++,o=void 0);while(u<r.length){if(dw.lastIndex=u,l=dw.exec(r),d=l&&void 0!==l.index?l.index:r.length,f=r.charCodeAt(d),!l){n=r.slice(u);break}if(10===f&&u===d&&e)a.push(-3),e=void 0;else switch(e&&(a.push(-5),e=void 0),u<d&&(a.push(r.slice(u,d)),t+=d-u),f){case 0:a.push(65533),t++;break;case 9:c=4*Math.ceil(t/4),a.push(-2);while(t++<c)a.push(-1);break;case 10:a.push(-4),t=1;break;default:e=!0,t=1}u=d+1}return i&&(e&&a.push(-5),n&&a.push(n),a.push(null)),a}}function pw(e,t,n){return"string"!==typeof t&&(n=t,t=void 0),Qb(n)(uw(cw(n).document().write(fw()(e,t,!0))))}const hw={tokenize:Aw,partial:!0},mw={tokenize:Rw,partial:!0},gw={tokenize:Cw,partial:!0},vw={tokenize:Ow,partial:!0},_w={tokenize:Iw,partial:!0},bw={tokenize:Tw,previous:Bw},yw={tokenize:Mw,previous:Pw},xw={tokenize:Ew,previous:Lw},ww={},kw={text:ww};let Sw=48;while(Sw<123)ww[Sw]=xw,Sw++,58===Sw?Sw=65:91===Sw&&(Sw=97);function Ew(e,t,n){const o=this;let r,s;return i;function i(t){return Nw(t)&&Lw.call(o,o.previous)&&!jw(o.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),a(t)):n(t)}function a(t){return Nw(t)?(e.consume(t),a):64===t?(e.consume(t),l):n(t)}function l(t){return 46===t?e.check(_w,u,c)(t):45===t||95===t||Lb(t)?(s=!0,e.consume(t),l):u(t)}function c(t){return e.consume(t),r=!0,l}function u(i){return s&&r&&Pb(o.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(i)):n(i)}}function Tw(e,t,n){const o=this;return r;function r(t){return 87!==t&&119!==t||!Bw.call(o,o.previous)||jw(o.events)?n(t):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(hw,e.attempt(mw,e.attempt(gw,s),n),n)(t))}function s(n){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(n)}}function Mw(e,t,n){const o=this;let r="",s=!1;return i;function i(t){return 72!==t&&104!==t||!Pw.call(o,o.previous)||jw(o.events)?n(t):(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),r+=String.fromCodePoint(t),e.consume(t),a)}function a(t){if(Pb(t)&&r.length<5)return r+=String.fromCodePoint(t),e.consume(t),a;if(58===t){const n=r.toLowerCase();if("http"===n||"https"===n)return e.consume(t),l}return n(t)}function l(t){return 47===t?(e.consume(t),s?c:(s=!0,l)):n(t)}function c(t){return null===t||jb(t)||Vb(t)||qb(t)||zb(t)?n(t):e.attempt(mw,e.attempt(gw,u),n)(t)}function u(n){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(n)}}function Aw(e,t,n){let o=0;return r;function r(t){return(87===t||119===t)&&o<3?(o++,e.consume(t),r):46===t&&3===o?(e.consume(t),s):n(t)}function s(e){return null===e?n(e):t(e)}}function Rw(e,t,n){let o,r,s;return i;function i(t){return 46===t||95===t?e.check(vw,l,a)(t):null===t||Vb(t)||qb(t)||45!==t&&zb(t)?l(t):(s=!0,e.consume(t),i)}function a(t){return 95===t?o=!0:(r=o,o=void 0),e.consume(t),i}function l(e){return r||o||!s?n(e):t(e)}}function Cw(e,t){let n=0,o=0;return r;function r(i){return 40===i?(n++,e.consume(i),r):41===i&&o<n?s(i):33===i||34===i||38===i||39===i||41===i||42===i||44===i||46===i||58===i||59===i||60===i||63===i||93===i||95===i||126===i?e.check(vw,t,s)(i):null===i||Vb(i)||qb(i)?t(i):(e.consume(i),r)}function s(t){return 41===t&&o++,e.consume(t),r}}function Ow(e,t,n){return o;function o(i){return 33===i||34===i||39===i||41===i||42===i||44===i||46===i||58===i||59===i||63===i||95===i||126===i?(e.consume(i),o):38===i?(e.consume(i),s):93===i?(e.consume(i),r):60===i||null===i||Vb(i)||qb(i)?t(i):n(i)}function r(e){return null===e||40===e||91===e||Vb(e)||qb(e)?t(e):o(e)}function s(e){return Pb(e)?i(e):n(e)}function i(t){return 59===t?(e.consume(t),o):Pb(t)?(e.consume(t),i):n(t)}}function Iw(e,t,n){return o;function o(t){return e.consume(t),r}function r(e){return Lb(e)?n(e):t(e)}}function Bw(e){return null===e||40===e||42===e||95===e||91===e||93===e||126===e||Vb(e)}function Pw(e){return!Pb(e)}function Lw(e){return!(47===e||Nw(e))}function Nw(e){return 43===e||45===e||46===e||95===e||Lb(e)}function jw(e){let t=e.length,n=!1;while(t--){const o=e[t][1];if(("labelLink"===o.type||"labelImage"===o.type)&&!o._balanced){n=!0;break}if(o._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}ww[43]=xw,ww[45]=xw,ww[46]=xw,ww[95]=xw,ww[72]=[xw,yw],ww[104]=[xw,yw],ww[87]=[xw,bw],ww[119]=[xw,bw];const Fw={exit:{literalAutolinkEmail:Hw,literalAutolinkHttp:Uw,literalAutolinkWww:Dw}};function Dw(e){Vw.call(this,e,"http://")}function Hw(e){Vw.call(this,e,"mailto:")}function Uw(e){Vw.call(this,e)}function Vw(e,t){const n=this.sliceSerialize(e);this.tag('<a href="'+Xb((t||"")+n)+'">'),this.raw(this.encode(n)),this.tag("</a>")}const $w={tokenize:Zw,partial:!0};function zw(){return{document:{[91]:{tokenize:Gw,continuation:{tokenize:Ww},exit:Kw}},text:{[91]:{tokenize:Xw},[93]:{add:"after",tokenize:qw,resolveTo:Yw}}}}function qw(e,t,n){const o=this;let r=o.events.length;const s=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let i;while(r--){const e=o.events[r][1];if("labelImage"===e.type){i=e;break}if("gfmFootnoteCall"===e.type||"labelLink"===e.type||"label"===e.type||"image"===e.type||"link"===e.type)break}return a;function a(r){if(!i||!i._balanced)return n(r);const a=Ib(o.sliceSerialize({start:i.end,end:o.now()}));return 94===a.codePointAt(0)&&s.includes(a.slice(1))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(r),e.exit("gfmFootnoteCallLabelMarker"),t(r)):n(r)}}function Yw(e,t){let n=e.length;while(n--)if("labelImage"===e[n][1].type&&"enter"===e[n][0]){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const o={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},e[e.length-1][1].start)},i={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",o,t],e[n+3],e[n+4],["enter",r,t],["exit",r,t],["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",o,t]];return e.splice(n,e.length-n+1,...a),e}function Xw(e,t,n){const o=this,r=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let s,i=0;return a;function a(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),l}function l(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(a){if(i>999||93===a&&!s||null===a||91===a||Vb(a))return n(a);if(93===a){e.exit("chunkString");const s=e.exit("gfmFootnoteCallString");return r.includes(Ib(o.sliceSerialize(s)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(a),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(a)}return Vb(a)||(s=!0),i++,e.consume(a),92===a?u:c}function u(t){return 91===t||92===t||93===t?(e.consume(t),i++,c):c(t)}}function Gw(e,t,n){const o=this,r=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let s,i,a=0;return l;function l(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):n(t)}function u(t){if(a>999||93===t&&!i||null===t||91===t||Vb(t))return n(t);if(93===t){e.exit("chunkString");const n=e.exit("gfmFootnoteDefinitionLabelString");return s=Ib(o.sliceSerialize(n)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return Vb(t)||(i=!0),a++,e.consume(t),92===t?d:u}function d(t){return 91===t||92===t||93===t?(e.consume(t),a++,u):u(t)}function f(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),r.includes(s)||r.push(s),Jb(e,p,"gfmFootnoteDefinitionWhitespace")):n(t)}function p(e){return t(e)}}function Ww(e,t,n){return e.check(hy,t,e.attempt($w,t,n))}function Kw(e){e.exit("gfmFootnoteDefinition")}function Zw(e,t,n){const o=this;return Jb(e,r,"gfmFootnoteDefinitionIndent",5);function r(e){const r=o.events[o.events.length-1];return r&&"gfmFootnoteDefinitionIndent"===r[1].type&&4===r[2].sliceSerialize(r[1],!0).length?t(e):n(e)}}const Qw={}.hasOwnProperty,Jw={};function ek(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function tk(e){const t=e||Jw,n=t.label||"Footnotes",o=t.labelTagName||"h2",r=null===t.labelAttributes||void 0===t.labelAttributes?'class="sr-only"':t.labelAttributes,s=t.backLabel||ek,i=null===t.clobberPrefix||void 0===t.clobberPrefix?"user-content-":t.clobberPrefix;return{enter:{gfmFootnoteDefinition(){const e=this.getData("tightStack");e.push(!1)},gfmFootnoteDefinitionLabelString(){this.buffer()},gfmFootnoteCallString(){this.buffer()}},exit:{gfmFootnoteDefinition(){let e=this.getData("gfmFootnoteDefinitions");const t=this.getData("gfmFootnoteDefinitionStack"),n=this.getData("tightStack"),o=t.pop(),r=this.resume();e||this.setData("gfmFootnoteDefinitions",e={}),Qw.call(e,o)||(e[o]=r),n.pop(),this.setData("slurpOneLineEnding",!0),this.setData("lastWasTag")},gfmFootnoteDefinitionLabelString(e){let t=this.getData("gfmFootnoteDefinitionStack");t||this.setData("gfmFootnoteDefinitionStack",t=[]),t.push(Ib(this.sliceSerialize(e))),this.resume(),this.buffer()},gfmFootnoteCallString(e){let t=this.getData("gfmFootnoteCallOrder"),n=this.getData("gfmFootnoteCallCounts");const o=Ib(this.sliceSerialize(e));let r;this.resume(),t||this.setData("gfmFootnoteCallOrder",t=[]),n||this.setData("gfmFootnoteCallCounts",n={});const s=t.indexOf(o),a=Xb(o.toLowerCase());-1===s?(t.push(o),n[o]=1,r=t.length):(n[o]++,r=s+1);const l=n[o];this.tag('<sup><a href="#'+i+"fn-"+a+'" id="'+i+"fnref-"+a+(l>1?"-"+l:"")+'" data-footnote-ref="" aria-describedby="footnote-label">'+String(r)+"</a></sup>")},null(){const e=this.getData("gfmFootnoteCallOrder")||[],t=this.getData("gfmFootnoteCallCounts")||{},a=this.getData("gfmFootnoteDefinitions")||{};let l=-1;e.length>0&&(this.lineEndingIfNeeded(),this.tag('<section data-footnotes="" class="footnotes"><'+o+' id="footnote-label"'+(r?" "+r:"")+">"),this.raw(this.encode(n)),this.tag("</"+o+">"),this.lineEndingIfNeeded(),this.tag("<ol>"));while(++l<e.length){const n=e[l],o=Xb(n.toLowerCase());let r=0;const c=[];while(++r<=t[n])c.push('<a href="#'+i+"fnref-"+o+(r>1?"-"+r:"")+'" data-footnote-backref="" aria-label="'+this.encode("string"===typeof s?s:s(l,r))+'" class="data-footnote-backref">↩'+(r>1?"<sup>"+r+"</sup>":"")+"</a>");const u=c.join(" ");let d=!1;this.lineEndingIfNeeded(),this.tag('<li id="'+i+"fn-"+o+'">'),this.lineEndingIfNeeded(),this.tag(a[n].replace(/<\/p>(?:\r?\n|\r)?$/,(e=>(d=!0," "+u+e)))),d||(this.lineEndingIfNeeded(),this.tag(u)),this.lineEndingIfNeeded(),this.tag("</li>")}e.length>0&&(this.lineEndingIfNeeded(),this.tag("</ol>"),this.lineEndingIfNeeded(),this.tag("</section>"))}}}}const nk={enter:{strikethrough(){this.tag("<del>")}},exit:{strikethrough(){this.tag("</del>")}}};function ok(e){const t=e||{};let n=t.singleTilde;const o={tokenize:s,resolveAll:r};return null!==n&&void 0!==n||(n=!0),{text:{[126]:o},insideSpan:{null:[o]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;while(++n<e.length)if("enter"===e[n][0]&&"strikethroughSequenceTemporary"===e[n][1].type&&e[n][1]._close){let o=n;while(o--)if("exit"===e[o][0]&&"strikethroughSequenceTemporary"===e[o][1].type&&e[o][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[o][1].end.offset-e[o][1].start.offset){e[n][1].type="strikethroughSequence",e[o][1].type="strikethroughSequence";const r={type:"strikethrough",start:Object.assign({},e[o][1].start),end:Object.assign({},e[n][1].end)},s={type:"strikethroughText",start:Object.assign({},e[o][1].end),end:Object.assign({},e[n][1].start)},i=[["enter",r,t],["enter",e[o][1],t],["exit",e[o][1],t],["enter",s,t]],a=t.parser.constructs.insideSpan.null;a&&xb(i,i.length,0,ay(a,e.slice(o+1,n),t)),xb(i,i.length,0,[["exit",s,t],["enter",e[n][1],t],["exit",e[n][1],t],["exit",r,t]]),xb(e,o-1,n-o+3,i),n=o+i.length-2;break}}n=-1;while(++n<e.length)"strikethroughSequenceTemporary"===e[n][1].type&&(e[n][1].type="data");return e}function s(e,t,o){const r=this.previous,s=this.events;let i=0;return a;function a(t){return 126===r&&"characterEscape"!==s[s.length-1][1].type?o(t):(e.enter("strikethroughSequenceTemporary"),l(t))}function l(s){const a=iy(r);if(126===s)return i>1?o(s):(e.consume(s),i++,l);if(i<2&&!n)return o(s);const c=e.exit("strikethroughSequenceTemporary"),u=iy(s);return c._open=!u||2===u&&Boolean(a),c._close=!a||2===a&&Boolean(u),t(s)}}}const rk={none:"",left:' align="left"',right:' align="right"',center:' align="center"'},sk={enter:{table(e){const t=e._align;this.lineEndingIfNeeded(),this.tag("<table>"),this.setData("tableAlign",t)},tableBody(){this.tag("<tbody>")},tableData(){const e=this.getData("tableAlign"),t=this.getData("tableColumn"),n=rk[e[t]];void 0===n?this.buffer():(this.lineEndingIfNeeded(),this.tag("<td"+n+">"))},tableHead(){this.lineEndingIfNeeded(),this.tag("<thead>")},tableHeader(){const e=this.getData("tableAlign"),t=this.getData("tableColumn"),n=rk[e[t]];this.lineEndingIfNeeded(),this.tag("<th"+n+">")},tableRow(){this.setData("tableColumn",0),this.lineEndingIfNeeded(),this.tag("<tr>")}},exit:{codeTextData(e){let t=this.sliceSerialize(e);this.getData("tableAlign")&&(t=t.replace(/\\([\\|])/g,ik)),this.raw(this.encode(t))},table(){this.setData("tableAlign"),this.setData("slurpAllLineEndings"),this.lineEndingIfNeeded(),this.tag("</table>")},tableBody(){this.lineEndingIfNeeded(),this.tag("</tbody>")},tableData(){const e=this.getData("tableAlign"),t=this.getData("tableColumn");t in e?(this.tag("</td>"),this.setData("tableColumn",t+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag("</thead>")},tableHeader(){const e=this.getData("tableColumn");this.tag("</th>"),this.setData("tableColumn",e+1)},tableRow(){const e=this.getData("tableAlign");let t=this.getData("tableColumn");while(t<e.length)this.lineEndingIfNeeded(),this.tag("<td"+rk[e[t]]+"></td>"),t++;this.setData("tableColumn",t),this.lineEndingIfNeeded(),this.tag("</tr>")}}};function ik(e,t){return"|"===t?t:e}class ak{constructor(){this.map=[]}add(e,t,n){lk(this,e,t,n)}consume(e){if(this.map.sort(((e,t)=>e[0]-t[0])),0===this.map.length)return;let t=this.map.length;const n=[];while(t>0)t-=1,n.push(e.slice(this.map[t][0]+this.map[t][1])),n.push(this.map[t][2]),e.length=this.map[t][0];n.push([...e]),e.length=0;let o=n.pop();while(o)e.push(...o),o=n.pop();this.map.length=0}}function lk(e,t,n,o){let r=0;if(0!==n||0!==o.length){while(r<e.map.length){if(e.map[r][0]===t)return e.map[r][1]+=n,void e.map[r][2].push(...o);r+=1}e.map.push([t,n,o])}}function ck(e,t){let n=!1;const o=[];while(t<e.length){const r=e[t];if(n){if("enter"===r[0])"tableContent"===r[1].type&&o.push("tableDelimiterMarker"===e[t+1][1].type?"left":"none");else if("tableContent"===r[1].type){if("tableDelimiterMarker"===e[t-1][1].type){const e=o.length-1;o[e]="left"===o[e]?"center":"right"}}else if("tableDelimiterRow"===r[1].type)break}else"enter"===r[0]&&"tableDelimiterRow"===r[1].type&&(n=!0);t+=1}return o}const uk={flow:{null:{tokenize:dk,resolveAll:fk}}};function dk(e,t,n){const o=this;let r,s=0,i=0;return a;function a(e){let t=o.events.length-1;while(t>-1){const e=o.events[t][1].type;if("lineEnding"!==e&&"linePrefix"!==e)break;t--}const r=t>-1?o.events[t][1].type:null,s="tableHead"===r||"tableRow"===r?w:l;return s===w&&o.parser.lazy[o.now().line]?n(e):s(e)}function l(t){return e.enter("tableHead"),e.enter("tableRow"),c(t)}function c(e){return 124===e||(r=!0,i+=1),u(e)}function u(t){return null===t?n(t):Ub(t)?i>1?(i=0,o.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),p):n(t):$b(t)?Jb(e,u,"whitespace")(t):(i+=1,r&&(r=!1,s+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),r=!0,u):(e.enter("data"),d(t)))}function d(t){return null===t||124===t||Vb(t)?(e.exit("data"),u(t)):(e.consume(t),92===t?f:d)}function f(t){return 92===t||124===t?(e.consume(t),d):d(t)}function p(t){return o.interrupt=!1,o.parser.lazy[o.now().line]?n(t):(e.enter("tableDelimiterRow"),r=!1,$b(t)?Jb(e,h,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):h(t))}function h(t){return 45===t||58===t?g(t):124===t?(r=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),m):x(t)}function m(t){return $b(t)?Jb(e,g,"whitespace")(t):g(t)}function g(t){return 58===t?(i+=1,r=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),v):45===t?(i+=1,v(t)):null===t||Ub(t)?y(t):x(t)}function v(t){return 45===t?(e.enter("tableDelimiterFiller"),_(t)):x(t)}function _(t){return 45===t?(e.consume(t),_):58===t?(r=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),b):(e.exit("tableDelimiterFiller"),b(t))}function b(t){return $b(t)?Jb(e,y,"whitespace")(t):y(t)}function y(n){return 124===n?h(n):(null===n||Ub(n))&&r&&s===i?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(n)):x(n)}function x(e){return n(e)}function w(t){return e.enter("tableRow"),k(t)}function k(n){return 124===n?(e.enter("tableCellDivider"),e.consume(n),e.exit("tableCellDivider"),k):null===n||Ub(n)?(e.exit("tableRow"),t(n)):$b(n)?Jb(e,k,"whitespace")(n):(e.enter("data"),S(n))}function S(t){return null===t||124===t||Vb(t)?(e.exit("data"),k(t)):(e.consume(t),92===t?E:S)}function E(t){return 92===t||124===t?(e.consume(t),S):S(t)}}function fk(e,t){let n,o,r,s=-1,i=!0,a=0,l=[0,0,0,0],c=[0,0,0,0],u=!1,d=0;const f=new ak;while(++s<e.length){const p=e[s],h=p[1];"enter"===p[0]?"tableHead"===h.type?(u=!1,0!==d&&(hk(f,t,d,n,o),o=void 0,d=0),n={type:"table",start:Object.assign({},h.start),end:Object.assign({},h.end)},f.add(s,0,[["enter",n,t]])):"tableRow"===h.type||"tableDelimiterRow"===h.type?(i=!0,r=void 0,l=[0,0,0,0],c=[0,s+1,0,0],u&&(u=!1,o={type:"tableBody",start:Object.assign({},h.start),end:Object.assign({},h.end)},f.add(s,0,[["enter",o,t]])),a="tableDelimiterRow"===h.type?2:o?3:1):!a||"data"!==h.type&&"tableDelimiterMarker"!==h.type&&"tableDelimiterFiller"!==h.type?"tableCellDivider"===h.type&&(i?i=!1:(0!==l[1]&&(c[0]=c[1],r=pk(f,t,l,a,void 0,r)),l=c,c=[l[1],s,0,0])):(i=!1,0===c[2]&&(0!==l[1]&&(c[0]=c[1],r=pk(f,t,l,a,void 0,r),l=[0,0,0,0]),c[2]=s)):"tableHead"===h.type?(u=!0,d=s):"tableRow"===h.type||"tableDelimiterRow"===h.type?(d=s,0!==l[1]?(c[0]=c[1],r=pk(f,t,l,a,s,r)):0!==c[1]&&(r=pk(f,t,c,a,s,r)),a=0):!a||"data"!==h.type&&"tableDelimiterMarker"!==h.type&&"tableDelimiterFiller"!==h.type||(c[3]=s)}0!==d&&hk(f,t,d,n,o),f.consume(t.events),s=-1;while(++s<t.events.length){const e=t.events[s];"enter"===e[0]&&"table"===e[1].type&&(e[1]._align=ck(t.events,s))}return e}function pk(e,t,n,o,r,s){const i=1===o?"tableHeader":2===o?"tableDelimiter":"tableData",a="tableContent";0!==n[0]&&(s.end=Object.assign({},mk(t.events,n[0])),e.add(n[0],0,[["exit",s,t]]));const l=mk(t.events,n[1]);if(s={type:i,start:Object.assign({},l),end:Object.assign({},l)},e.add(n[1],0,[["enter",s,t]]),0!==n[2]){const r=mk(t.events,n[2]),s=mk(t.events,n[3]),i={type:a,start:Object.assign({},r),end:Object.assign({},s)};if(e.add(n[2],0,[["enter",i,t]]),2!==o){const o=t.events[n[2]],r=t.events[n[3]];if(o[1].end=Object.assign({},r[1].end),o[1].type="chunkText",o[1].contentType="text",n[3]>n[2]+1){const t=n[2]+1,o=n[3]-n[2]-1;e.add(t,o,[])}}e.add(n[3]+1,0,[["exit",i,t]])}return void 0!==r&&(s.end=Object.assign({},mk(t.events,r)),e.add(r,0,[["exit",s,t]]),s=void 0),s}function hk(e,t,n,o,r){const s=[],i=mk(t.events,n);r&&(r.end=Object.assign({},i),s.push(["exit",r,t])),o.end=Object.assign({},i),s.push(["exit",o,t]),e.add(n+1,0,s)}function mk(e,t){const n=e[t],o="enter"===n[0]?"start":"end";return n[1][o]}const gk=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi,vk=new RegExp("^"+gk.source,"i"),_k={exit:{htmlFlowData(e){bk.call(this,e,gk)},htmlTextData(e){bk.call(this,e,vk)}}};function bk(e,t){let n=this.sliceSerialize(e);this.options.allowDangerousHtml&&(n=n.replace(t,"&lt;$1$2")),this.raw(this.encode(n))}const yk={enter:{taskListCheck(){this.tag('<input type="checkbox" disabled="" ')}},exit:{taskListCheck(){this.tag("/>")},taskListCheckValueChecked(){this.tag('checked="" ')}}},xk={tokenize:kk},wk={text:{[91]:xk}};function kk(e,t,n){const o=this;return r;function r(t){return null===o.previous&&o._gfmTasklistFirstContentOfListItem?(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),s):n(t)}function s(t){return Vb(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),i):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),i):n(t)}function i(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(t)}function a(o){return Ub(o)?t(o):$b(o)?e.check({tokenize:Sk},t,n)(o):n(o)}}function Sk(e,t,n){return Jb(e,o,"whitespace");function o(e){return null===e?n(e):t(e)}}function Ek(e){return Sb([kw,zw(),ok(e),uk,wk])}function Tk(e){return Mb([Fw,tk(e),nk,sk,_k,yk])}const Mk={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,degree:176,byteOrderMarker:65279,replacementCharacter:65533},Ak=(e,t,n)=>{const o=s=>s===Mk.carriageReturn||s===Mk.lineFeed||s===Mk.carriageReturnLineFeed||s===Mk.eof?n(s):s===Mk.backslash?(e.consume(s),r):s===Mk.degree?(e.exit("underlineContent"),e.enter("underlineMarker"),e.consume(s),e.exit("underlineMarker"),e.exit("underline"),t):(e.consume(s),o),r=t=>t===Mk.backslash||t===Mk.degree?(e.consume(t),o):o(t),s=e=>e===Mk.degree?n(e):o(e);return t=>(e.enter("underline"),e.enter("underlineMarker"),e.consume(t),e.exit("underlineMarker"),e.enter("underlineContent",{contentType:"string"}),s)},Rk={name:"underline",tokenize:Ak},Ck={text:{176:Rk}},Ok={enter:{underline(){this.tag("<u>")}},exit:{underline(){this.tag("</u>")}}},Ik=(e,t,n)=>{const o=s=>s===Mk.carriageReturn||s===Mk.lineFeed||s===Mk.carriageReturnLineFeed||s===Mk.eof?n(s):s===Mk.backslash?(e.consume(s),r):s===Mk.greaterThan?(e.exit("usertagContent"),e.enter("usertagMarker"),e.consume(s),e.exit("usertagMarker"),e.exit("usertag"),t):(e.consume(s),o),r=t=>t===Mk.backslash||t===Mk.greaterThan?(e.consume(t),o):o(t),s=t=>t===Mk.atSign?(e.consume(t),e.exit("usertagMarker"),e.enter("usertagContent"),o):n(t);return t=>(e.enter("usertag"),e.enter("usertagMarker"),e.consume(t),s)},Bk={name:"usertag",tokenize:Ik},Pk={text:{60:Bk}},Lk=e=>({exit:{usertagContent(t){const n=this.sliceSerialize(t);this.tag(`<span class="vac-text-tag" data-user-id="${n}">`);const o=e.find((e=>e._id===n));this.raw(`@${this.encode(o?o.username:n)}`),this.tag("</span>")}}});var Nk=(e,{textFormatting:t})=>{if(t){let n=[];t.linkify||(n=["literalAutolink","literalAutolinkEmail"]);const o=pw(e.replaceAll("<usertag>","<@").replaceAll("</usertag>",">"),{extensions:[{...Ek(),disable:{null:n}},Ck,Pk],htmlExtensions:[Tk(),Ok,Lk(t.users)]});if(t.singleLine){const e=document.createElement("div");return e.innerHTML=o,[{types:[],value:e.innerText}]}return[{types:["markdown"],value:o}]}return[{types:[],value:e}]};const jk=["png","jpg","jpeg","webp","svg","gif"],Fk=["mp4","video/ogg","webm","quicktime"],Dk=["mp3","audio/ogg","wav","mpeg"],Hk={name:"FormatMessage",components:{SvgIcon:pb},props:{messageId:{type:String,default:""},roomId:{type:String,default:""},roomList:{type:Boolean,default:!1},content:{type:[String,Number],required:!0},deleted:{type:Boolean,default:!1},users:{type:Array,default:()=>[]},linkify:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!1},reply:{type:Boolean,default:!1},textFormatting:{type:Object,required:!0},textMessages:{type:Object,default:()=>{}},linkOptions:{type:Object,required:!0}},emits:["open-user-tag"],computed:{parsedMessage(){if(this.deleted)return[{value:this.textMessages.MESSAGE_DELETED}];let e;e=this.textFormatting.disabled?{}:{textFormatting:{linkify:this.linkify,linkOptions:this.linkOptions,singleLine:this.singleLine,reply:this.reply,users:this.users,...this.textFormatting}};const t=Nk(this.content,e);return t.forEach((e=>{e.markdown=this.checkType(e,"markdown"),e.tag=this.checkType(e,"tag"),e.image=this.checkImageType(e)})),t}},methods:{checkType(e,t){return e.types&&-1!==e.types.indexOf(t)},checkImageType(e){let t=e.value.lastIndexOf(".");const n=e.value.lastIndexOf("/");n>t&&(t=-1);const o=e.value.substring(t+1,e.value.length),r=t>0&&jk.some((e=>o.toLowerCase().includes(e)));return r&&this.setImageSize(e),r},setImageSize(e){const t=new Image;function n(o){const r=o.path[0].width/150;e.height=Math.round(o.path[0].height/r)+"px",t.removeEventListener("load",n)}t.src=e.value,t.addEventListener("load",n)},openTag(e){const t=e.target.getAttribute("data-user-id");if(!this.singleLine&&t){const e=this.users.find((e=>String(e._id)===t));this.$emit("open-user-tag",e)}}}},Uk=["innerHTML"],Vk={class:"vac-image-link-container"},$k={class:"vac-image-link-message"};function zk(e,t,n,o,r,s){const i=_m("svg-icon");return Sg(),Rg("div",{class:np(["vac-format-message-wrapper",{"vac-text-ellipsis":n.singleLine}])},[(Sg(!0),Rg(_g,null,Sm(s.parsedMessage,((o,r)=>(Sg(),Rg(_g,{key:r},[o.markdown?(Sg(),Rg("div",{key:0,class:"markdown",onClick:t[0]||(t[0]=(...e)=>s.openTag&&s.openTag(...e)),innerHTML:o.value},null,8,Uk)):(Sg(),Rg("div",{key:1,class:np(["vac-format-container",{"vac-text-ellipsis":n.singleLine}])},[(Sg(),Cg(ym(o.url?"a":"span"),{class:np({"vac-text-ellipsis":n.singleLine,"vac-text-tag":!n.singleLine&&!n.reply&&o.tag}),href:o.href,target:o.href?n.linkOptions.target:null,rel:o.href?n.linkOptions.rel:null},{default:wh((()=>[n.deleted?(Sg(),Rg(_g,{key:0},[Tm(e.$slots,n.roomList?"deleted-icon-room_"+n.roomId:"deleted-icon_"+n.messageId,{},(()=>[jg(i,{name:"deleted",class:np(["vac-icon-deleted",{"vac-icon-deleted-room":n.roomList}])},null,8,["class"])])),Ug(" "+rp(n.textMessages.MESSAGE_DELETED),1)],64)):o.url&&o.image?(Sg(),Rg(_g,{key:1},[Ng("div",Vk,[Ng("div",{class:"vac-image-link",style:Qf({"background-image":`url('${o.value}')`,height:o.height})},null,4)]),Ng("div",$k,rp(o.value),1)],64)):(Sg(),Rg(_g,{key:2},[Ug(rp(o.value),1)],64))])),_:2},1032,["class","href","target","rel"]))],2))],64)))),128))],2)}var qk=Q_(Hk,[["render",zk]]);const Yk="__v-click-outside",Xk="undefined"!==typeof window,Gk="undefined"!==typeof navigator,Wk=Xk&&("ontouchstart"in window||Gk&&navigator.msMaxTouchPoints>0),Kk=Wk?["touchstart"]:["click"],Zk=e=>{const t="function"===typeof e;if(!t&&"object"!==typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:t?e:e.handler,middleware:e.middleware||(e=>e),events:e.events||Kk,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:Boolean(e.capture)}},Qk=({event:e,handler:t,middleware:n})=>{n(e)&&t(e)},Jk=({el:e,event:t,handler:n,middleware:o})=>{setTimeout((()=>{const{activeElement:r}=document;r&&"IFRAME"===r.tagName&&!e.contains(r)&&Qk({event:t,handler:n,middleware:o})}),0)},eS=({el:e,event:t,handler:n,middleware:o})=>{const r=t.path||t.composedPath&&t.composedPath(),s=r?r.indexOf(e)<0:!e.contains(t.target);s&&Qk({event:t,handler:n,middleware:o})},tS=(e,{value:t})=>{const{events:n,handler:o,middleware:r,isActive:s,detectIframe:i,capture:a}=Zk(t);if(s){if(e[Yk]=n.map((t=>({event:t,srcTarget:document.documentElement,handler:t=>eS({el:e,event:t,handler:o,middleware:r}),capture:a}))),i){const t={event:"blur",srcTarget:window,handler:t=>Jk({el:e,event:t,handler:o,middleware:r}),capture:a};e[Yk]=[...e[Yk],t]}e[Yk].forEach((({event:t,srcTarget:n,handler:o})=>setTimeout((()=>{e[Yk]&&n.addEventListener(t,o,a)}),0)))}},nS=e=>{const t=e[Yk]||[];t.forEach((({event:e,srcTarget:t,handler:n,capture:o})=>t.removeEventListener(e,n,o))),delete e[Yk]},oS=(e,{value:t,oldValue:n})=>{JSON.stringify(t)!==JSON.stringify(n)&&(nS(e),tS(e,{value:t}))},rS={beforeMount:tS,updated:oS,unmounted:nS};var sS=Xk?rS:{},iS=(e,t,n)=>{if(e.typingUsers&&e.typingUsers.length){const o=e.users.filter((n=>{if(n._id!==t&&-1!==e.typingUsers.indexOf(n._id)&&(!n.status||"offline"!==n.status.state))return!0}));if(!o.length)return;return 2===e.users.length?n.IS_TYPING:o.map((e=>e.username)).join(", ")+" "+n.IS_TYPING}};function aS(e,t){if(t&&t.type)return e.some((e=>t.type.toLowerCase().includes(e)))}function lS(e){return aS(jk,e)}function cS(e){return aS(Fk,e)}function uS(e){return aS(jk,e)||aS(Fk,e)}function dS(e){return aS(Dk,e)}const fS={name:"RoomsContent",components:{SvgIcon:pb,FormatMessage:qk},directives:{clickOutside:sS},props:{currentUserId:{type:[String,Number],required:!0},room:{type:Object,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},textMessages:{type:Object,required:!0},roomActions:{type:Array,required:!0}},emits:["room-action-handler"],data(){return{roomMenuOpened:null}},computed:{getLastMessage(){const e=this.typingUsers;if(e)return e;const t=this.room.lastMessage.content;if(this.room.users.length<=2)return t;const n=this.room.users.find((e=>e._id===this.room.lastMessage.senderId));return this.room.lastMessage.username?`${this.room.lastMessage.username} - ${t}`:n&&n._id!==this.currentUserId?`${n.username} - ${t}`:t},userStatus(){if(!this.room.users||2!==this.room.users.length)return;const e=this.room.users.find((e=>e._id!==this.currentUserId));return e&&e.status?e.status.state:null},typingUsers(){return iS(this.room,this.currentUserId,this.textMessages)},isMessageCheckmarkVisible(){return!this.typingUsers&&this.room.lastMessage&&!this.room.lastMessage.deleted&&this.room.lastMessage.senderId===this.currentUserId&&(this.room.lastMessage.saved||this.room.lastMessage.distributed||this.room.lastMessage.seen)},formattedDuration(){var e,t;const n=null==(t=null==(e=this.room.lastMessage)?void 0:e.files)?void 0:t[0];if(n){if(!n.duration)return`${n.name}.${n.extension}`;let e=Math.floor(n.duration);return(e-(e%=60))/60+(e>9?":":":0")+e}return""},isAudio(){return!!this.room.lastMessage.files&&dS(this.room.lastMessage.files[0])}},methods:{roomActionHandler(e){this.closeRoomMenu(),this.$emit("room-action-handler",{action:e,roomId:this.room.roomId})},closeRoomMenu(){this.roomMenuOpened=null}}},pS={class:"vac-room-container"},hS={class:"vac-name-container vac-text-ellipsis"},mS={class:"vac-title-container"},gS={class:"vac-room-name vac-text-ellipsis"},vS={key:1,class:"vac-text-date"},_S={key:0},bS={key:1,class:"vac-text-ellipsis"},yS={key:3,class:"vac-text-ellipsis"},xS={class:"vac-room-options-container"},wS={key:0,class:"vac-badge-counter vac-room-badge"},kS={key:0,class:"vac-menu-options"},SS={class:"vac-menu-list"},ES=["onClick"];function TS(e,t,n,o,r,s){const i=_m("svg-icon"),a=_m("format-message"),l=xm("click-outside");return Sg(),Rg("div",pS,[Tm(e.$slots,"room-list-item_"+n.room.roomId,{},(()=>[Tm(e.$slots,"room-list-avatar_"+n.room.roomId,{},(()=>[n.room.avatar?(Sg(),Rg("div",{key:0,class:"vac-avatar",style:Qf({"background-image":`url('${n.room.avatar}')`})},null,4)):Vg("",!0)])),Ng("div",hS,[Ng("div",mS,[s.userStatus?(Sg(),Rg("div",{key:0,class:np(["vac-state-circle",{"vac-state-online":"online"===s.userStatus}])},null,2)):Vg("",!0),Tm(e.$slots,"room-list-info_"+n.room.roomId,{},(()=>[Ng("div",gS,rp(n.room.roomName),1)])),n.room.lastMessage?(Sg(),Rg("div",vS,rp(n.room.lastMessage.timestamp),1)):Vg("",!0)]),Ng("div",{class:np(["vac-text-last",{"vac-message-new":n.room.lastMessage&&n.room.lastMessage.new&&!s.typingUsers}])},[s.isMessageCheckmarkVisible?(Sg(),Rg("span",_S,[Tm(e.$slots,"checkmark-icon_"+n.room.roomId,{},(()=>[jg(i,{name:n.room.lastMessage.distributed?"double-checkmark":"checkmark",param:n.room.lastMessage.seen?"seen":"",class:"vac-icon-check"},null,8,["name","param"])]))])):Vg("",!0),n.room.lastMessage&&!n.room.lastMessage.deleted&&s.isAudio?(Sg(),Rg("div",bS,[Tm(e.$slots,"microphone-icon_"+n.room.roomId,{},(()=>[jg(i,{name:"microphone",class:"vac-icon-microphone"})])),Ug(" "+rp(s.formattedDuration),1)])):n.room.lastMessage?(Sg(),Cg(a,{key:2,"message-id":n.room.lastMessage._id,"room-id":n.room.roomId,"room-list":!0,content:s.getLastMessage,deleted:!!n.room.lastMessage.deleted&&!s.typingUsers,users:n.room.users,"text-messages":n.textMessages,linkify:!1,"text-formatting":n.textFormatting,"link-options":n.linkOptions,"single-line":!0},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["message-id","room-id","content","deleted","users","text-messages","text-formatting","link-options"])):Vg("",!0),!n.room.lastMessage&&s.typingUsers?(Sg(),Rg("div",yS,rp(s.typingUsers),1)):Vg("",!0),Ng("div",xS,[n.room.unreadCount?(Sg(),Rg("div",wS,rp(n.room.unreadCount),1)):Vg("",!0),Tm(e.$slots,"room-list-options_"+n.room.roomId,{},(()=>[n.roomActions.length?(Sg(),Rg("div",{key:0,class:"vac-svg-button vac-list-room-options",onClick:t[0]||(t[0]=$_((e=>r.roomMenuOpened=n.room.roomId),["stop"]))},[Tm(e.$slots,"room-list-options-icon_"+n.room.roomId,{},(()=>[jg(i,{name:"dropdown",param:"room"})]))])):Vg("",!0),n.roomActions.length?(Sg(),Cg(g_,{key:1,name:"vac-slide-left"},{default:wh((()=>[r.roomMenuOpened===n.room.roomId?hm((Sg(),Rg("div",kS,[Ng("div",SS,[(Sg(!0),Rg(_g,null,Sm(n.roomActions,(e=>(Sg(),Rg("div",{key:e.name},[Ng("div",{class:"vac-menu-item",onClick:$_((t=>s.roomActionHandler(e)),["stop"])},rp(e.title),9,ES)])))),128))])])),[[l,s.closeRoomMenu]]):Vg("",!0)])),_:1})):Vg("",!0)]))])],2)])]))])}var MS=Q_(fS,[["render",TS]]),AS=(e,t,n,o=!1)=>n&&""!==n?e.filter((e=>o?RS(e[t]).startsWith(RS(n)):RS(e[t]).includes(RS(n)))):e;function RS(e){return e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"")}const CS={name:"RoomsList",components:{Loader:ab,RoomsSearch:_b,RoomContent:MS},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},showRoomsList:{type:Boolean,required:!0},showSearch:{type:Boolean,required:!0},showAddRoom:{type:Boolean,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},isMobile:{type:Boolean,required:!0},rooms:{type:Array,required:!0},loadingRooms:{type:Boolean,required:!0},roomsLoaded:{type:Boolean,required:!0},room:{type:Object,required:!0},customSearchRoomEnabled:{type:[Boolean,String],default:!1},roomActions:{type:Array,required:!0},scrollDistance:{type:Number,required:!0}},emits:["add-room","search-room","room-action-handler","loading-more-rooms","fetch-room","fetch-more-rooms"],data(){return{filteredRooms:this.rooms||[],observer:null,showLoader:!0,loadingMoreRooms:!1,selectedRoomId:""}},watch:{rooms:{deep:!0,handler(e,t){this.filteredRooms=e,(e.length!==t.length||this.roomsLoaded)&&(this.loadingMoreRooms=!1)}},loadingRooms(e){e||setTimeout((()=>this.initIntersectionObserver()))},loadingMoreRooms(e){this.$emit("loading-more-rooms",e)},roomsLoaded:{immediate:!0,handler(e){e&&(this.loadingMoreRooms=!1,this.loadingRooms||(this.showLoader=!1))}},room:{immediate:!0,handler(e){e&&!this.isMobile&&(this.selectedRoomId=e.roomId)}}},methods:{initIntersectionObserver(){this.observer&&(this.showLoader=!0,this.observer.disconnect());const e=this.$el.querySelector("#infinite-loader-rooms");if(e){const t={root:this.$el.querySelector("#rooms-list"),rootMargin:`${this.scrollDistance}px`,threshold:0};this.observer=new IntersectionObserver((e=>{e[0].isIntersecting&&this.loadMoreRooms()}),t),this.observer.observe(e)}},searchRoom(e){this.customSearchRoomEnabled?this.$emit("search-room",e.target.value):this.filteredRooms=AS(this.rooms,"roomName",e.target.value)},openRoom(e){(e.roomId!==this.room.roomId||this.isMobile)&&(this.isMobile||(this.selectedRoomId=e.roomId),this.$emit("fetch-room",{room:e}))},loadMoreRooms(){if(!this.loadingMoreRooms){if(this.roomsLoaded)return this.loadingMoreRooms=!1,void(this.showLoader=!1);this.$emit("fetch-more-rooms"),this.loadingMoreRooms=!0}}}},OS={key:0,class:"vac-rooms-empty"},IS={key:1,id:"rooms-list",class:"vac-room-list"},BS=["id","onClick"],PS={key:0,id:"infinite-loader-rooms"};function LS(e,t,n,o,r,s){const i=_m("rooms-search"),a=_m("loader"),l=_m("room-content");return hm((Sg(),Rg("div",{class:np(["vac-rooms-container",{"vac-rooms-container-full":n.isMobile,"vac-app-border-r":!n.isMobile}])},[Tm(e.$slots,"rooms-header"),Tm(e.$slots,"rooms-list-search",{},(()=>[jg(i,{rooms:n.rooms,"loading-rooms":n.loadingRooms,"text-messages":n.textMessages,"show-search":n.showSearch,"show-add-room":n.showAddRoom,onSearchRoom:s.searchRoom,onAddRoom:t[0]||(t[0]=t=>e.$emit("add-room"))},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["rooms","loading-rooms","text-messages","show-search","show-add-room","onSearchRoom"])])),jg(a,{show:n.loadingRooms,type:"rooms"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["show"]),n.loadingRooms||n.rooms.length?Vg("",!0):(Sg(),Rg("div",OS,[Tm(e.$slots,"rooms-empty",{},(()=>[Ug(rp(n.textMessages.ROOMS_EMPTY),1)]))])),n.loadingRooms?Vg("",!0):(Sg(),Rg("div",IS,[(Sg(!0),Rg(_g,null,Sm(r.filteredRooms,(o=>(Sg(),Rg("div",{id:o.roomId,key:o.roomId,class:np(["vac-room-item",{"vac-room-selected":r.selectedRoomId===o.roomId}]),onClick:e=>s.openRoom(o)},[jg(l,{"current-user-id":n.currentUserId,room:o,"text-formatting":n.textFormatting,"link-options":n.linkOptions,"text-messages":n.textMessages,"room-actions":n.roomActions,onRoomActionHandler:t[1]||(t[1]=t=>e.$emit("room-action-handler",t))},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["current-user-id","room","text-formatting","link-options","text-messages","room-actions"])],10,BS)))),128)),jg(g_,{name:"vac-fade-message"},{default:wh((()=>[n.rooms.length&&!n.loadingRooms?(Sg(),Rg("div",PS,[jg(a,{show:r.showLoader,infinite:!0,type:"infinite-rooms"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["show"])])):Vg("",!0)])),_:3})]))],2)),[[Y_,n.showRoomsList]])}var NS=Q_(CS,[["render",LS]]);const jS={name:"RoomHeader",components:{SvgIcon:pb},directives:{clickOutside:sS},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},singleRoom:{type:Boolean,required:!0},showRoomsList:{type:Boolean,required:!0},isMobile:{type:Boolean,required:!0},roomInfoEnabled:{type:Boolean,required:!0},menuActions:{type:Array,required:!0},room:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0},messageSelectionActions:{type:Array,required:!0},selectedMessagesTotal:{type:Number,required:!0}},emits:["toggle-rooms-list","room-info","menu-action-handler","cancel-message-selection","message-selection-action-handler"],data(){return{menuOpened:!1,messageSelectionAnimationEnded:!0}},computed:{typingUsers(){return iS(this.room,this.currentUserId,this.textMessages)},userStatus(){if(!this.room.users||2!==this.room.users.length)return;const e=this.room.users.find((e=>e._id!==this.currentUserId));if(!(null==e?void 0:e.status))return;let t="";return"online"===e.status.state?t=this.textMessages.IS_ONLINE:e.status.lastChanged&&(t=this.textMessages.LAST_SEEN+e.status.lastChanged),t}},watch:{messageSelectionEnabled(e){e?this.messageSelectionAnimationEnded=!1:setTimeout((()=>{this.messageSelectionAnimationEnded=!0}),300)}},methods:{menuActionHandler(e){this.closeMenu(),this.$emit("menu-action-handler",e)},closeMenu(){this.menuOpened=!1},messageSelectionActionHandler(e){this.$emit("message-selection-action-handler",e)}}},FS={class:"vac-room-header vac-app-border-b"},DS={class:"vac-room-wrapper"},HS={key:0,class:"vac-room-selection"},US=["id"],VS=["onClick"],$S={class:"vac-selection-button-count"},zS={class:"vac-text-ellipsis"},qS={class:"vac-room-name vac-text-ellipsis"},YS={key:0,class:"vac-room-info vac-text-ellipsis"},XS={key:1,class:"vac-room-info vac-text-ellipsis"},GS={key:0,class:"vac-menu-options"},WS={class:"vac-menu-list"},KS=["onClick"];function ZS(e,t,n,o,r,s){const i=_m("svg-icon"),a=xm("click-outside");return Sg(),Rg("div",FS,[Tm(e.$slots,"room-header",{},(()=>[Ng("div",DS,[jg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.messageSelectionEnabled?(Sg(),Rg("div",HS,[(Sg(!0),Rg(_g,null,Sm(n.messageSelectionActions,(e=>(Sg(),Rg("div",{id:e.name,key:e.name},[Ng("div",{class:"vac-selection-button",onClick:t=>s.messageSelectionActionHandler(e)},[Ug(rp(e.title)+" ",1),Ng("span",$S,rp(n.selectedMessagesTotal),1)],8,VS)],8,US)))),128)),Ng("div",{class:"vac-selection-cancel vac-item-clickable",onClick:t[0]||(t[0]=t=>e.$emit("cancel-message-selection"))},rp(n.textMessages.CANCEL_SELECT_MESSAGE),1)])):Vg("",!0)])),_:1}),!n.messageSelectionEnabled&&r.messageSelectionAnimationEnded?(Sg(),Rg(_g,{key:0},[n.singleRoom?Vg("",!0):(Sg(),Rg("div",{key:0,class:np(["vac-svg-button vac-toggle-button",{"vac-rotate-icon-init":!n.isMobile,"vac-rotate-icon":!n.showRoomsList&&!n.isMobile}]),onClick:t[1]||(t[1]=t=>e.$emit("toggle-rooms-list"))},[Tm(e.$slots,"toggle-icon",{},(()=>[jg(i,{name:"toggle"})]))],2)),Ng("div",{class:np(["vac-info-wrapper",{"vac-item-clickable":n.roomInfoEnabled}]),onClick:t[2]||(t[2]=t=>e.$emit("room-info"))},[Tm(e.$slots,"room-header-avatar",{},(()=>[n.room.avatar?(Sg(),Rg("div",{key:0,class:"vac-avatar",style:Qf({"background-image":`url('${n.room.avatar}')`})},null,4)):Vg("",!0)])),Tm(e.$slots,"room-header-info",{},(()=>[Ng("div",zS,[Ng("div",qS,rp(n.room.roomName),1),s.typingUsers?(Sg(),Rg("div",YS,rp(s.typingUsers),1)):(Sg(),Rg("div",XS,rp(s.userStatus),1))])]))],2),n.room.roomId?Tm(e.$slots,"room-options",{key:1},(()=>[n.menuActions.length?(Sg(),Rg("div",{key:0,class:"vac-svg-button vac-room-options",onClick:t[3]||(t[3]=e=>r.menuOpened=!r.menuOpened)},[Tm(e.$slots,"menu-icon",{},(()=>[jg(i,{name:"menu"})]))])):Vg("",!0),n.menuActions.length?(Sg(),Cg(g_,{key:1,name:"vac-slide-left"},{default:wh((()=>[r.menuOpened?hm((Sg(),Rg("div",GS,[Ng("div",WS,[(Sg(!0),Rg(_g,null,Sm(n.menuActions,(e=>(Sg(),Rg("div",{key:e.name},[Ng("div",{class:"vac-menu-item",onClick:t=>s.menuActionHandler(e)},rp(e.title),9,KS)])))),128))])])),[[a,s.closeMenu]]):Vg("",!0)])),_:1})):Vg("",!0)])):Vg("",!0)],64)):Vg("",!0)])]))])}var QS=Q_(jS,[["render",ZS]]);function JS(e){if("string"!==typeof e||!e)throw new Error("expected a non-empty string, got: "+e)}function eE(e){if("number"!==typeof e)throw new Error("expected a number, got: "+e)}const tE=1,nE=1,oE="emoji",rE="keyvalue",sE="favorites",iE="tokens",aE="tokens",lE="unicode",cE="count",uE="group",dE="order",fE="group-order",pE="eTag",hE="url",mE="skinTone",gE="readonly",vE="readwrite",_E="skinUnicodes",bE="skinUnicodes",yE="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",xE="en";function wE(e,t){const n=new Set,o=[];for(const r of e){const e=t(r);n.has(e)||(n.add(e),o.push(r))}return o}function kE(e){return wE(e,(e=>e.unicode))}function SE(e){function t(t,n,o){const r=n?e.createObjectStore(t,{keyPath:n}):e.createObjectStore(t);if(o)for(const[e,[s,i]]of Object.entries(o))r.createIndex(e,s,{multiEntry:i});return r}t(rE),t(oE,lE,{[aE]:[iE,!0],[fE]:[[uE,dE]],[_E]:[bE,!0]}),t(sE,void 0,{[cE]:[""]})}const EE={},TE={},ME={};function AE(e,t,n){n.onerror=()=>t(n.error),n.onblocked=()=>t(new Error("IDB blocked")),n.onsuccess=()=>e(n.result)}async function RE(e){const t=await new Promise(((t,n)=>{const o=indexedDB.open(e,tE);EE[e]=o,o.onupgradeneeded=e=>{e.oldVersion<nE&&SE(o.result)},AE(t,n,o)}));return t.onclose=()=>IE(e),t}function CE(e){return TE[e]||(TE[e]=RE(e)),TE[e]}function OE(e,t,n,o){return new Promise(((r,s)=>{const i=e.transaction(t,n,{durability:"relaxed"}),a="string"===typeof t?i.objectStore(t):t.map((e=>i.objectStore(e)));let l;o(a,i,(e=>{l=e})),i.oncomplete=()=>r(l),i.onerror=()=>s(i.error)}))}function IE(e){const t=EE[e],n=t&&t.result;if(n){n.close();const t=ME[e];if(t)for(const e of t)e()}delete EE[e],delete TE[e],delete ME[e]}function BE(e){return new Promise(((t,n)=>{IE(e);const o=indexedDB.deleteDatabase(e);AE(t,n,o)}))}function PE(e,t){let n=ME[e];n||(n=ME[e]=[]),n.push(t)}const LE=new Set([":D","XD",":'D","O:)",":X",":P",";P","XP",":L",":Z",":j","8D","XO","8)",":B",":O",":S",":'o","Dx","X(","D:",":C",">0)",":3","</3","<3","\\M/",":E","8#"]);function NE(e){return e.split(/[\s_]+/).map((e=>!e.match(/\w/)||LE.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase())).filter(Boolean)}const jE=2;function FE(e){return e.filter(Boolean).map((e=>e.toLowerCase())).filter((e=>e.length>=jE))}function DE(e){const t=e.map((({annotation:e,emoticon:t,group:n,order:o,shortcodes:r,skins:s,tags:i,emoji:a,version:l})=>{const c=[...new Set(FE([...(r||[]).map(NE).flat(),...i.map(NE).flat(),...NE(e),t]))].sort(),u={annotation:e,group:n,order:o,tags:i,tokens:c,unicode:a,version:l};if(t&&(u.emoticon=t),r&&(u.shortcodes=r),s){u.skinTones=[],u.skinUnicodes=[],u.skinVersions=[];for(const{tone:e,emoji:t,version:n}of s)u.skinTones.push(e),u.skinUnicodes.push(t),u.skinVersions.push(n)}return u}));return t}function HE(e,t,n,o){e[t](n).onsuccess=e=>o&&o(e.target.result)}function UE(e,t,n){HE(e,"get",t,n)}function VE(e,t,n){HE(e,"getAll",t,n)}function $E(e){e.commit&&e.commit()}function zE(e,t){let n=e[0];for(let o=1;o<e.length;o++){const r=e[o];t(n)>t(r)&&(n=r)}return n}function qE(e,t){const n=zE(e,(e=>e.length)),o=[];for(const r of n)e.some((e=>-1===e.findIndex((e=>t(e)===t(r)))))||o.push(r);return o}async function YE(e){return!await eT(e,rE,hE)}async function XE(e,t,n){const[o,r]=await Promise.all([pE,hE].map((t=>eT(e,rE,t))));return o===n&&r===t}async function GE(e,t){const n=50;return OE(e,oE,gE,((e,o,r)=>{let s;const i=()=>{e.getAll(s&&IDBKeyRange.lowerBound(s,!0),n).onsuccess=e=>{const o=e.target.result;for(const n of o)if(s=n.unicode,t(n))return r(n);if(o.length<n)return r();i()}};i()}))}async function WE(e,t,n,o){try{const r=DE(t);await OE(e,[oE,rE],vE,(([e,t],s)=>{let i,a,l=0;function c(){2===++l&&u()}function u(){if(i!==o||a!==n){e.clear();for(const t of r)e.put(t);t.put(o,pE),t.put(n,hE),$E(s)}}UE(t,pE,(e=>{i=e,c()})),UE(t,hE,(e=>{a=e,c()}))}))}finally{}}async function KE(e,t){return OE(e,oE,gE,((e,n,o)=>{const r=IDBKeyRange.bound([t,0],[t+1,0],!1,!0);VE(e.index(fE),r,o)}))}async function ZE(e,t){const n=FE(NE(t));return n.length?OE(e,oE,gE,((e,t,o)=>{const r=[],s=()=>{r.length===n.length&&i()},i=()=>{const e=qE(r,(e=>e.unicode));o(e.sort(((e,t)=>e.order<t.order?-1:1)))};for(let a=0;a<n.length;a++){const t=n[a],o=a===n.length-1?IDBKeyRange.bound(t,t+"￿",!1,!0):IDBKeyRange.only(t);VE(e.index(aE),o,(e=>{r.push(e),s()}))}})):[]}async function QE(e,t){const n=await ZE(e,t);if(!n.length){const n=e=>(e.shortcodes||[]).includes(t.toLowerCase());return await GE(e,n)||null}return n.filter((e=>{const n=(e.shortcodes||[]).map((e=>e.toLowerCase()));return n.includes(t.toLowerCase())}))[0]||null}async function JE(e,t){return OE(e,oE,gE,((e,n,o)=>UE(e,t,(n=>{if(n)return o(n);UE(e.index(_E),t,(e=>o(e||null)))}))))}function eT(e,t,n){return OE(e,t,gE,((e,t,o)=>UE(e,n,o)))}function tT(e,t,n,o){return OE(e,t,vE,((e,t)=>{e.put(o,n),$E(t)}))}function nT(e,t){return OE(e,sE,vE,((e,n)=>UE(e,t,(o=>{e.put((o||0)+1,t),$E(n)}))))}function oT(e,t,n){return 0===n?[]:OE(e,[sE,oE],gE,(([e,o],r,s)=>{const i=[];e.index(cE).openCursor(void 0,"prev").onsuccess=e=>{const r=e.target.result;if(!r)return s(i);function a(e){if(i.push(e),i.length===n)return s(i);r.continue()}const l=r.primaryKey,c=t.byName(l);if(c)return a(c);UE(o,l,(e=>{if(e)return a(e);r.continue()}))}}))}const rT="";function sT(e,t){const n=new Map;for(const r of e){const e=t(r);for(const t of e){let e=n;for(let n=0;n<t.length;n++){const o=t.charAt(n);let r=e.get(o);r||(r=new Map,e.set(o,r)),e=r}let o=e.get(rT);o||(o=[],e.set(rT,o)),o.push(r)}}const o=(e,t)=>{let o=n;for(let n=0;n<e.length;n++){const t=e.charAt(n),r=o.get(t);if(!r)return[];o=r}if(t){const e=o.get(rT);return e||[]}const r=[],s=[o];while(s.length){const e=s.shift(),t=[...e.entries()].sort(((e,t)=>e[0]<t[0]?-1:1));for(const[n,o]of t)n===rT?r.push(...o):s.push(o)}return r};return o}const iT=["name","url"];function aT(e){const t=e&&Array.isArray(e),n=t&&e.length&&(!e[0]||iT.some((t=>!(t in e[0]))));if(!t||n)throw new Error("Custom emojis are in the wrong format")}function lT(e){aT(e);const t=(e,t)=>e.name.toLowerCase()<t.name.toLowerCase()?-1:1,n=e.sort(t),o=e=>[...new Set((e.shortcodes||[]).map((e=>NE(e))).flat())],r=sT(e,o),s=e=>r(e,!0),i=e=>r(e,!1),a=e=>{const n=NE(e),o=n.map(((e,t)=>(t<n.length-1?s:i)(e)));return qE(o,(e=>e.name)).sort(t)},l=new Map,c=new Map;for(const f of e){c.set(f.name.toLowerCase(),f);for(const e of f.shortcodes||[])l.set(e.toLowerCase(),f)}const u=e=>l.get(e.toLowerCase()),d=e=>c.get(e.toLowerCase());return{all:n,search:a,byShortcode:u,byName:d}}function cT(e){if(!e)return e;if(delete e.tokens,e.skinTones){const t=e.skinTones.length;e.skins=Array(t);for(let n=0;n<t;n++)e.skins[n]={tone:e.skinTones[n],unicode:e.skinUnicodes[n],version:e.skinVersions[n]};delete e.skinTones,delete e.skinUnicodes,delete e.skinVersions}return e}function uT(e){e||console.warn("emoji-picker-element is more efficient if the dataSource server exposes an ETag header.")}const dT=["annotation","emoji","group","order","tags","version"];function fT(e){if(!e||!Array.isArray(e)||!e[0]||"object"!==typeof e[0]||dT.some((t=>!(t in e[0]))))throw new Error("Emoji data is in the wrong format")}function pT(e,t){if(2!==Math.floor(e.status/100))throw new Error("Failed to fetch: "+t+":  "+e.status)}async function hT(e){const t=await fetch(e,{method:"HEAD"});pT(t,e);const n=t.headers.get("etag");return uT(n),n}async function mT(e){const t=await fetch(e);pT(t,e);const n=t.headers.get("etag");uT(n);const o=await t.json();return fT(o),[n,o]}function gT(e){var t="",n=new Uint8Array(e),o=n.byteLength,r=-1;while(++r<o)t+=String.fromCharCode(n[r]);return t}function vT(e){var t=e.length,n=new ArrayBuffer(t),o=new Uint8Array(n),r=-1;while(++r<t)o[r]=e.charCodeAt(r);return n}async function _T(e){const t=JSON.stringify(e),n=vT(t),o=await crypto.subtle.digest("SHA-1",n),r=gT(o),s=btoa(r);return s}async function bT(e,t){let n,o=await hT(t);if(!o){const e=await mT(t);o=e[0],n=e[1],o||(o=await _T(n))}if(await XE(e,t,o));else{if(!n){const e=await mT(t);n=e[1]}await WE(e,n,t,o)}}async function yT(e,t){let[n,o]=await mT(t);n||(n=await _T(o)),await WE(e,o,t,n)}class xT{constructor({dataSource:e=yE,locale:t=xE,customEmoji:n=[]}={}){this.dataSource=e,this.locale=t,this._dbName=`emoji-picker-element-${this.locale}`,this._db=void 0,this._lazyUpdate=void 0,this._custom=lT(n),this._clear=this._clear.bind(this),this._ready=this._init()}async _init(){const e=this._db=await CE(this._dbName);PE(this._dbName,this._clear);const t=this.dataSource,n=await YE(e);n?await yT(e,t):this._lazyUpdate=bT(e,t)}async ready(){const e=async()=>(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return eE(e),await this.ready(),kE(await KE(this._db,e)).map(cT)}async getEmojiBySearchQuery(e){JS(e),await this.ready();const t=this._custom.search(e),n=kE(await ZE(this._db,e)).map(cT);return[...t,...n]}async getEmojiByShortcode(e){JS(e),await this.ready();const t=this._custom.byShortcode(e);return t||cT(await QE(this._db,e))}async getEmojiByUnicodeOrName(e){JS(e),await this.ready();const t=this._custom.byName(e);return t||cT(await JE(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await eT(this._db,rE,mE)||0}async setPreferredSkinTone(e){return eE(e),await this.ready(),tT(this._db,rE,mE,e)}async incrementFavoriteEmojiCount(e){return JS(e),await this.ready(),nT(this._db,e)}async getTopFavoriteEmoji(e){return eE(e),await this.ready(),(await oT(this._db,this._custom,e)).map(cT)}set customEmoji(e){this._custom=lT(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch(e){}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await IE(this._dbName)}async delete(){await this._shutdown(),await BE(this._dbName)}}function wT(){}function kT(e){return e()}function ST(){return Object.create(null)}function ET(e){e.forEach(kT)}function TT(e){return"function"===typeof e}function MT(e,t){return e!=e?t==t:e!==t||e&&"object"===typeof e||"function"===typeof e}let AT,RT;function CT(e,t){return AT||(AT=document.createElement("a")),AT.href=t,e===AT.href}function OT(e){return 0===Object.keys(e).length}function IT(e){return e&&TT(e.destroy)?e.destroy:wT}function BT(e,t){e.appendChild(t)}function PT(e,t,n){e.insertBefore(t,n||null)}function LT(e){e.parentNode.removeChild(e)}function NT(e){return document.createElement(e)}function jT(e){return document.createTextNode(e)}function FT(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function DT(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function HT(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function UT(e,t){e.value=null==t?"":t}function VT(e,t,n,o){null===n?e.style.removeProperty(t):e.style.setProperty(t,n,o?"important":"")}function $T(e){RT=e}const zT=[],qT=[],YT=[],XT=[],GT=Promise.resolve();let WT=!1;function KT(){WT||(WT=!0,GT.then(tM))}function ZT(){return KT(),GT}function QT(e){YT.push(e)}const JT=new Set;let eM=0;function tM(){const e=RT;do{while(eM<zT.length){const e=zT[eM];eM++,$T(e),nM(e.$$)}$T(null),zT.length=0,eM=0;while(qT.length)qT.pop()();for(let e=0;e<YT.length;e+=1){const t=YT[e];JT.has(t)||(JT.add(t),t())}YT.length=0}while(zT.length);while(XT.length)XT.pop()();WT=!1,JT.clear(),$T(e)}function nM(e){if(null!==e.fragment){e.update(),ET(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(QT)}}const oM=new Set;function rM(e,t){e&&e.i&&(oM.delete(e),e.i(t))}const sM="undefined"!==typeof window?window:"undefined"!==typeof globalThis?globalThis:n.g;function iM(e,t){e.d(1),t.delete(e.key)}function aM(e,t,n,o,r,s,i,a,l,c,u,d){let f=e.length,p=s.length,h=f;const m={};while(h--)m[e[h].key]=h;const g=[],v=new Map,_=new Map;h=p;while(h--){const e=d(r,s,h),a=n(e);let l=i.get(a);l?o&&l.p(e,t):(l=c(a,e),l.c()),v.set(a,g[h]=l),a in m&&_.set(a,Math.abs(h-m[a]))}const b=new Set,y=new Set;function x(e){rM(e,1),e.m(a,u),i.set(e.key,e),u=e.first,p--}while(f&&p){const t=g[p-1],n=e[f-1],o=t.key,r=n.key;t===n?(u=t.first,f--,p--):v.has(r)?!i.has(o)||b.has(o)?x(t):y.has(r)?f--:_.get(o)>_.get(r)?(y.add(o),x(t)):(b.add(r),f--):(l(n,i),f--)}while(f--){const t=e[f];v.has(t.key)||l(t,i)}while(p)x(g[p-1]);return g}function lM(e,t,n,o){const{fragment:r,on_mount:s,on_destroy:i,after_update:a}=e.$$;r&&r.m(t,n),o||QT((()=>{const t=s.map(kT).filter(TT);i?i.push(...t):ET(t),e.$$.on_mount=[]})),a.forEach(QT)}function cM(e,t){const n=e.$$;null!==n.fragment&&(ET(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function uM(e,t){-1===e.$$.dirty[0]&&(zT.push(e),KT(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function dM(e,t,n,o,r,s,i,a=[-1]){const l=RT;$T(e);const c=e.$$={fragment:null,ctx:null,props:s,update:wT,not_equal:r,bound:ST(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l?l.$$.context:[]),callbacks:ST(),dirty:a,skip_bound:!1,root:t.target||l.$$.root};i&&i(c.root);let u=!1;c.ctx=n?n(e,t.props||{},((t,n,...o)=>{const s=o.length?o[0]:n;return c.ctx&&r(c.ctx[t],c.ctx[t]=s)&&(!c.skip_bound&&c.bound[t]&&c.bound[t](s),u&&uM(e,t)),n})):[],c.update(),u=!0,ET(c.before_update),c.fragment=!!o&&o(c.ctx),t.target&&(c.fragment&&c.fragment.c(),lM(e,t.target,void 0,void 0),tM()),$T(l)}class fM{$destroy(){cM(this,1),this.$destroy=wT}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!OT(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const pM=[[-1,"✨","custom"],[0,"😀","smileys-emotion"],[1,"👋","people-body"],[3,"🐱","animals-nature"],[4,"🍎","food-drink"],[5,"🏠️","travel-places"],[6,"⚽","activities"],[7,"📝","objects"],[8,"⛔️","symbols"],[9,"🏁","flags"]].map((([e,t,n])=>({id:e,emoji:t,name:n}))),hM=pM.slice(1),mM=pM[0],gM=2,vM=6,_M="function"===typeof requestIdleCallback?requestIdleCallback:setTimeout;function bM(e){return e.unicode.includes("‍")}const yM={"🫠":14,"🥲":13.1,"🥻":12.1,"🥰":11,"🤩":5,"👱‍♀️":4,"🤣":3,"👁️‍🗨️":2,"😀":1,"😐️":.7,"😃":.6},xM=1e3,wM="🖐️",kM=8,SM=["😊","😒","♥️","👍️","😍","😂","😭","☺️","😔","😩","😏","💕","🙌","😘"],EM='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',TM=(e,t)=>e<t?-1:e>t?1:0,MM=(e,t)=>{const n=document.createElement("canvas");n.width=n.height=1;const o=n.getContext("2d");return o.textBaseline="top",o.font=`100px ${EM}`,o.fillStyle=t,o.scale(.01,.01),o.fillText(e,0,0),o.getImageData(0,0,1,1).data},AM=(e,t)=>{const n=[...e].join(","),o=[...t].join(",");return n===o&&!n.startsWith("0,0,0,")};function RM(e){const t=MM(e,"#000"),n=MM(e,"#fff");return t&&n&&AM(t,n)}function CM(){const e=Object.entries(yM);try{for(const[t,n]of e)if(RM(t))return n}catch(t){}return e[0][1]}const OM=new Promise((e=>_M((()=>e(CM()))))),IM=new Map,BM="️",PM="\ud83c",LM="‍",NM=127995,jM=57339;function FM(e,t){if(0===t)return e;const n=e.indexOf(LM);return-1!==n?e.substring(0,n)+String.fromCodePoint(NM+t-1)+e.substring(n):(e.endsWith(BM)&&(e=e.substring(0,e.length-1)),e+PM+String.fromCodePoint(jM+t-1))}function DM(e){e.preventDefault(),e.stopPropagation()}function HM(e,t,n){return t+=e?-1:1,t<0?t=n.length-1:t>=n.length&&(t=0),t}function UM(e,t){const n=new Set,o=[];for(const r of e){const e=t(r);n.has(e)||(n.add(e),o.push(r))}return o}function VM(e,t){const n=e=>{const n={};for(const o of e)"number"===typeof o.tone&&o.version<=t&&(n[o.tone]=o.unicode);return n};return e.map((({unicode:e,skins:t,shortcodes:o,url:r,name:s,category:i})=>({unicode:e,name:s,shortcodes:o,url:r,category:i,id:e||s,skins:t&&n(t),title:(o||[]).join(", ")})))}const $M=requestAnimationFrame;let zM,qM="function"===typeof ResizeObserver;function YM(e,t){let n;return qM?(n=new ResizeObserver((e=>t(e[0].contentRect.width))),n.observe(e)):$M((()=>t(e.getBoundingClientRect().width))),{destroy(){n&&n.disconnect()}}}function XM(e){{const t=document.createRange();return t.selectNode(e.firstChild),t.getBoundingClientRect().width}}function GM(e,t,n){for(const o of e){const e=n(o),r=XM(e);"undefined"===typeof zM&&(zM=XM(t));const s=r/1.8<zM;IM.set(o.unicode,s)}}function WM(e){return UM(e,(e=>e))}const{Map:KM}=sM;function ZM(e,t,n){const o=e.slice();return o[63]=t[n],o[65]=n,o}function QM(e,t,n){const o=e.slice();return o[66]=t[n],o[65]=n,o}function JM(e,t,n){const o=e.slice();return o[63]=t[n],o[65]=n,o}function eA(e,t,n){const o=e.slice();return o[69]=t[n],o}function tA(e,t,n){const o=e.slice();return o[72]=t[n],o[65]=n,o}function nA(e,t){let n,o,r,s,i,a,l,c=t[72]+"";return{key:e,first:null,c(){n=NT("div"),o=jT(c),DT(n,"id",r="skintone-"+t[65]),DT(n,"class",s="emoji hide-focus "+(t[65]===t[20]?"active":"")),DT(n,"aria-selected",i=t[65]===t[20]),DT(n,"role","option"),DT(n,"title",a=t[0].skinTones[t[65]]),DT(n,"tabindex","-1"),DT(n,"aria-label",l=t[0].skinTones[t[65]]),this.first=n},m(e,t){PT(e,n,t),BT(n,o)},p(e,u){t=e,512&u[0]&&c!==(c=t[72]+"")&&HT(o,c),512&u[0]&&r!==(r="skintone-"+t[65])&&DT(n,"id",r),1049088&u[0]&&s!==(s="emoji hide-focus "+(t[65]===t[20]?"active":""))&&DT(n,"class",s),1049088&u[0]&&i!==(i=t[65]===t[20])&&DT(n,"aria-selected",i),513&u[0]&&a!==(a=t[0].skinTones[t[65]])&&DT(n,"title",a),513&u[0]&&l!==(l=t[0].skinTones[t[65]])&&DT(n,"aria-label",l)},d(e){e&&LT(n)}}}function oA(e,t){let n,o,r,s,i,a,l,c,u,d=t[69].emoji+"";function f(){return t[49](t[69])}return{key:e,first:null,c(){n=NT("button"),o=NT("div"),r=jT(d),DT(o,"class","nav-emoji emoji"),DT(n,"role","tab"),DT(n,"class","nav-button"),DT(n,"aria-controls",s="tab-"+t[69].id),DT(n,"aria-label",i=t[0].categories[t[69].name]),DT(n,"aria-selected",a=!t[4]&&t[13].id===t[69].id),DT(n,"title",l=t[0].categories[t[69].name]),this.first=n},m(e,t){PT(e,n,t),BT(n,o),BT(o,r),c||(u=FT(n,"click",f),c=!0)},p(e,o){t=e,4096&o[0]&&d!==(d=t[69].emoji+"")&&HT(r,d),4096&o[0]&&s!==(s="tab-"+t[69].id)&&DT(n,"aria-controls",s),4097&o[0]&&i!==(i=t[0].categories[t[69].name])&&DT(n,"aria-label",i),12304&o[0]&&a!==(a=!t[4]&&t[13].id===t[69].id)&&DT(n,"aria-selected",a),4097&o[0]&&l!==(l=t[0].categories[t[69].name])&&DT(n,"title",l)},d(e){e&&LT(n),c=!1,u()}}}function rA(e){let t,n;return{c(){t=NT("img"),DT(t,"class","custom-emoji"),CT(t.src,n=e[63].url)||DT(t,"src",n),DT(t,"alt",""),DT(t,"loading","lazy")},m(e,n){PT(e,t,n)},p(e,o){32768&o[0]&&!CT(t.src,n=e[63].url)&&DT(t,"src",n)},d(e){e&&LT(t)}}}function sA(e){let t,n=e[27](e[63],e[8])+"";return{c(){t=jT(n)},m(e,n){PT(e,t,n)},p(e,o){33024&o[0]&&n!==(n=e[27](e[63],e[8])+"")&&HT(t,n)},d(e){e&&LT(t)}}}function iA(e,t){let n,o,r,s,i,a,l;function c(e,t){return e[63].unicode?sA:rA}let u=c(t),d=u(t);return{key:e,first:null,c(){n=NT("button"),d.c(),DT(n,"role",o=t[4]?"option":"menuitem"),DT(n,"aria-selected",r=t[4]?t[65]==t[5]:""),DT(n,"aria-label",s=t[28](t[63],t[8])),DT(n,"title",i=t[63].title),DT(n,"class",a="emoji "+(t[4]&&t[65]===t[5]?"active":"")),DT(n,"id",l="emo-"+t[63].id),this.first=n},m(e,t){PT(e,n,t),d.m(n,null)},p(e,f){t=e,u===(u=c(t))&&d?d.p(t,f):(d.d(1),d=u(t),d&&(d.c(),d.m(n,null))),16&f[0]&&o!==(o=t[4]?"option":"menuitem")&&DT(n,"role",o),32816&f[0]&&r!==(r=t[4]?t[65]==t[5]:"")&&DT(n,"aria-selected",r),33024&f[0]&&s!==(s=t[28](t[63],t[8]))&&DT(n,"aria-label",s),32768&f[0]&&i!==(i=t[63].title)&&DT(n,"title",i),32816&f[0]&&a!==(a="emoji "+(t[4]&&t[65]===t[5]?"active":""))&&DT(n,"class",a),32768&f[0]&&l!==(l="emo-"+t[63].id)&&DT(n,"id",l)},d(e){e&&LT(n),d.d()}}}function aA(e,t){let n,o,r,s,i,a,l,c,u=(t[4]?t[0].searchResultsLabel:t[66].category?t[66].category:t[15].length>1?t[0].categories.custom:t[0].categories[t[13].name])+"",d=[],f=new KM,p=t[66].emojis;const h=e=>e[63].id;for(let m=0;m<p.length;m+=1){let e=JM(t,p,m),n=h(e);f.set(n,d[m]=iA(n,e))}return{key:e,first:null,c(){n=NT("div"),o=jT(u),i=NT("div");for(let e=0;e<d.length;e+=1)d[e].c();DT(n,"id",r="menu-label-"+t[65]),DT(n,"class",s="category "+(1===t[15].length&&""===t[15][0].category?"gone":"")),DT(n,"aria-hidden","true"),DT(i,"class","emoji-menu"),DT(i,"role",a=t[4]?"listbox":"menu"),DT(i,"aria-labelledby",l="menu-label-"+t[65]),DT(i,"id",c=t[4]?"search-results":""),this.first=n},m(e,t){PT(e,n,t),BT(n,o),PT(e,i,t);for(let n=0;n<d.length;n+=1)d[n].m(i,null)},p(e,m){t=e,40977&m[0]&&u!==(u=(t[4]?t[0].searchResultsLabel:t[66].category?t[66].category:t[15].length>1?t[0].categories.custom:t[0].categories[t[13].name])+"")&&HT(o,u),32768&m[0]&&r!==(r="menu-label-"+t[65])&&DT(n,"id",r),32768&m[0]&&s!==(s="category "+(1===t[15].length&&""===t[15][0].category?"gone":""))&&DT(n,"class",s),402686256&m[0]&&(p=t[66].emojis,d=aM(d,m,h,1,t,p,f,i,iM,iA,null,JM)),16&m[0]&&a!==(a=t[4]?"listbox":"menu")&&DT(i,"role",a),32768&m[0]&&l!==(l="menu-label-"+t[65])&&DT(i,"aria-labelledby",l),16&m[0]&&c!==(c=t[4]?"search-results":"")&&DT(i,"id",c)},d(e){e&&LT(n),e&&LT(i);for(let t=0;t<d.length;t+=1)d[t].d()}}}function lA(e){let t,n;return{c(){t=NT("img"),DT(t,"class","custom-emoji"),CT(t.src,n=e[63].url)||DT(t,"src",n),DT(t,"alt",""),DT(t,"loading","lazy")},m(e,n){PT(e,t,n)},p(e,o){1024&o[0]&&!CT(t.src,n=e[63].url)&&DT(t,"src",n)},d(e){e&&LT(t)}}}function cA(e){let t,n=e[27](e[63],e[8])+"";return{c(){t=jT(n)},m(e,n){PT(e,t,n)},p(e,o){1280&o[0]&&n!==(n=e[27](e[63],e[8])+"")&&HT(t,n)},d(e){e&&LT(t)}}}function uA(e,t){let n,o,r,s;function i(e,t){return e[63].unicode?cA:lA}let a=i(t),l=a(t);return{key:e,first:null,c(){n=NT("button"),l.c(),DT(n,"role","menuitem"),DT(n,"aria-label",o=t[28](t[63],t[8])),DT(n,"title",r=t[63].title),DT(n,"class","emoji"),DT(n,"id",s="fav-"+t[63].id),this.first=n},m(e,t){PT(e,n,t),l.m(n,null)},p(e,c){t=e,a===(a=i(t))&&l?l.p(t,c):(l.d(1),l=a(t),l&&(l.c(),l.m(n,null))),1280&c[0]&&o!==(o=t[28](t[63],t[8]))&&DT(n,"aria-label",o),1024&c[0]&&r!==(r=t[63].title)&&DT(n,"title",r),1024&c[0]&&s!==(s="fav-"+t[63].id)&&DT(n,"id",s)},d(e){e&&LT(n),l.d()}}}function dA(e){let t,n,o,r,s,i,a,l,c,u,d,f,p,h,m,g,v,_,b,y,x,w,k,S,E,T,M,A,R,C,O,I,B,P,L,N,j,F,D,H,U,V,$,z,q=e[0].searchLabel+"",Y=e[0].searchDescription+"",X=e[0].skinToneDescription+"",G=[],W=new KM,K=[],Z=new KM,Q=[],J=new KM,ee=[],te=new KM,ne=e[9];const oe=e=>e[72];for(let ue=0;ue<ne.length;ue+=1){let t=tA(e,ne,ue),n=oe(t);W.set(n,G[ue]=nA(n,t))}let re=e[12];const se=e=>e[69].id;for(let ue=0;ue<re.length;ue+=1){let t=eA(e,re,ue),n=se(t);Z.set(n,K[ue]=oA(n,t))}let ie=e[15];const ae=e=>e[66].category;for(let ue=0;ue<ie.length;ue+=1){let t=QM(e,ie,ue),n=ae(t);J.set(n,Q[ue]=aA(n,t))}let le=e[10];const ce=e=>e[63].id;for(let ue=0;ue<le.length;ue+=1){let t=ZM(e,le,ue),n=ce(t);te.set(n,ee[ue]=uA(n,t))}return{c(){t=NT("section"),n=NT("div"),o=NT("div"),r=NT("div"),s=NT("input"),c=NT("label"),u=jT(q),d=NT("span"),f=jT(Y),p=NT("div"),h=NT("button"),m=jT(e[21]),_=NT("span"),b=jT(X),y=NT("div");for(let e=0;e<G.length;e+=1)G[e].c();E=NT("div");for(let e=0;e<K.length;e+=1)K[e].c();M=NT("div"),A=NT("div"),R=NT("div"),C=jT(e[18]),I=NT("div"),B=NT("div");for(let e=0;e<Q.length;e+=1)Q[e].c();F=NT("div");for(let e=0;e<ee.length;e+=1)ee[e].c();U=NT("button"),U.textContent="😀",DT(n,"class","pad-top"),DT(s,"id","search"),DT(s,"class","search"),DT(s,"type","search"),DT(s,"role","combobox"),DT(s,"enterkeyhint","search"),DT(s,"placeholder",i=e[0].searchLabel),DT(s,"autocapitalize","none"),DT(s,"autocomplete","off"),DT(s,"spellcheck","true"),DT(s,"aria-expanded",a=!(!e[4]||!e[1].length)),DT(s,"aria-controls","search-results"),DT(s,"aria-describedby","search-description"),DT(s,"aria-autocomplete","list"),DT(s,"aria-activedescendant",l=e[26]?`emo-${e[26]}`:""),DT(c,"class","sr-only"),DT(c,"for","search"),DT(d,"id","search-description"),DT(d,"class","sr-only"),DT(r,"class","search-wrapper"),DT(h,"id","skintone-button"),DT(h,"class",g="emoji "+(e[6]?"hide-focus":"")),DT(h,"aria-label",e[23]),DT(h,"title",e[23]),DT(h,"aria-describedby","skintone-description"),DT(h,"aria-haspopup","listbox"),DT(h,"aria-expanded",e[6]),DT(h,"aria-controls","skintone-list"),DT(p,"class",v="skintone-button-wrapper "+(e[19]?"expanded":"")),DT(_,"id","skintone-description"),DT(_,"class","sr-only"),DT(y,"id","skintone-list"),DT(y,"class",x="skintone-list "+(e[6]?"":"hidden no-animate")),VT(y,"transform","translateY("+(e[6]?0:"calc(-1 * var(--num-skintones) * var(--total-emoji-size))")+")"),DT(y,"role","listbox"),DT(y,"aria-label",w=e[0].skinTonesLabel),DT(y,"aria-activedescendant",k="skintone-"+e[20]),DT(y,"aria-hidden",S=!e[6]),DT(o,"class","search-row"),DT(E,"class","nav"),DT(E,"role","tablist"),VT(E,"grid-template-columns","repeat("+e[12].length+", 1fr)"),DT(E,"aria-label",T=e[0].categoriesLabel),DT(A,"class","indicator"),VT(A,"transform","translateX("+(e[24]?-1:1)*e[11]*100+"%)"),DT(M,"class","indicator-wrapper"),DT(R,"class",O="message "+(e[18]?"":"gone")),DT(R,"role","alert"),DT(R,"aria-live","polite"),DT(I,"class",P="tabpanel "+(!e[14]||e[18]?"gone":"")),DT(I,"role",L=e[4]?"region":"tabpanel"),DT(I,"aria-label",N=e[4]?e[0].searchResultsLabel:e[0].categories[e[13].name]),DT(I,"id",j=e[4]?"":`tab-${e[13].id}`),DT(I,"tabindex","0"),DT(F,"class",D="favorites emoji-menu "+(e[18]?"gone":"")),DT(F,"role","menu"),DT(F,"aria-label",H=e[0].favoritesLabel),VT(F,"padding-inline-end",e[25]+"px"),DT(U,"aria-hidden","true"),DT(U,"tabindex","-1"),DT(U,"class","abs-pos hidden emoji"),DT(t,"class","picker"),DT(t,"aria-label",V=e[0].regionLabel),DT(t,"style",e[22])},m(i,a){PT(i,t,a),BT(t,n),BT(t,o),BT(o,r),BT(r,s),UT(s,e[2]),BT(r,c),BT(c,u),BT(r,d),BT(d,f),BT(o,p),BT(p,h),BT(h,m),BT(o,_),BT(_,b),BT(o,y);for(let e=0;e<G.length;e+=1)G[e].m(y,null);e[48](y),BT(t,E);for(let e=0;e<K.length;e+=1)K[e].m(E,null);BT(t,M),BT(M,A),BT(t,R),BT(R,C),BT(t,I),BT(I,B);for(let e=0;e<Q.length;e+=1)Q[e].m(B,null);e[50](I),BT(t,F);for(let e=0;e<ee.length;e+=1)ee[e].m(F,null);BT(t,U),e[51](U),e[52](t),$||(z=[FT(s,"input",e[47]),FT(s,"keydown",e[30]),FT(h,"click",e[35]),FT(y,"focusout",e[38]),FT(y,"click",e[34]),FT(y,"keydown",e[36]),FT(y,"keyup",e[37]),FT(E,"keydown",e[32]),IT(e[29].call(null,B)),FT(I,"click",e[33]),FT(F,"click",e[33])],$=!0)},p(e,n){1&n[0]&&i!==(i=e[0].searchLabel)&&DT(s,"placeholder",i),18&n[0]&&a!==(a=!(!e[4]||!e[1].length))&&DT(s,"aria-expanded",a),67108864&n[0]&&l!==(l=e[26]?`emo-${e[26]}`:"")&&DT(s,"aria-activedescendant",l),4&n[0]&&UT(s,e[2]),1&n[0]&&q!==(q=e[0].searchLabel+"")&&HT(u,q),1&n[0]&&Y!==(Y=e[0].searchDescription+"")&&HT(f,Y),2097152&n[0]&&HT(m,e[21]),64&n[0]&&g!==(g="emoji "+(e[6]?"hide-focus":""))&&DT(h,"class",g),8388608&n[0]&&DT(h,"aria-label",e[23]),8388608&n[0]&&DT(h,"title",e[23]),64&n[0]&&DT(h,"aria-expanded",e[6]),524288&n[0]&&v!==(v="skintone-button-wrapper "+(e[19]?"expanded":""))&&DT(p,"class",v),1&n[0]&&X!==(X=e[0].skinToneDescription+"")&&HT(b,X),1049089&n[0]&&(ne=e[9],G=aM(G,n,oe,1,e,ne,W,y,iM,nA,null,tA)),64&n[0]&&x!==(x="skintone-list "+(e[6]?"":"hidden no-animate"))&&DT(y,"class",x),64&n[0]&&VT(y,"transform","translateY("+(e[6]?0:"calc(-1 * var(--num-skintones) * var(--total-emoji-size))")+")"),1&n[0]&&w!==(w=e[0].skinTonesLabel)&&DT(y,"aria-label",w),1048576&n[0]&&k!==(k="skintone-"+e[20])&&DT(y,"aria-activedescendant",k),64&n[0]&&S!==(S=!e[6])&&DT(y,"aria-hidden",S),12305&n[0]|1&n[1]&&(re=e[12],K=aM(K,n,se,1,e,re,Z,E,iM,oA,null,eA)),4096&n[0]&&VT(E,"grid-template-columns","repeat("+e[12].length+", 1fr)"),1&n[0]&&T!==(T=e[0].categoriesLabel)&&DT(E,"aria-label",T),16779264&n[0]&&VT(A,"transform","translateX("+(e[24]?-1:1)*e[11]*100+"%)"),262144&n[0]&&HT(C,e[18]),262144&n[0]&&O!==(O="message "+(e[18]?"":"gone"))&&DT(R,"class",O),402694449&n[0]&&(ie=e[15],Q=aM(Q,n,ae,1,e,ie,J,B,iM,aA,null,QM)),278528&n[0]&&P!==(P="tabpanel "+(!e[14]||e[18]?"gone":""))&&DT(I,"class",P),16&n[0]&&L!==(L=e[4]?"region":"tabpanel")&&DT(I,"role",L),8209&n[0]&&N!==(N=e[4]?e[0].searchResultsLabel:e[0].categories[e[13].name])&&DT(I,"aria-label",N),8208&n[0]&&j!==(j=e[4]?"":`tab-${e[13].id}`)&&DT(I,"id",j),402654464&n[0]&&(le=e[10],ee=aM(ee,n,ce,1,e,le,te,F,iM,uA,null,ZM)),262144&n[0]&&D!==(D="favorites emoji-menu "+(e[18]?"gone":""))&&DT(F,"class",D),1&n[0]&&H!==(H=e[0].favoritesLabel)&&DT(F,"aria-label",H),33554432&n[0]&&VT(F,"padding-inline-end",e[25]+"px"),1&n[0]&&V!==(V=e[0].regionLabel)&&DT(t,"aria-label",V),4194304&n[0]&&DT(t,"style",e[22])},i:wT,o:wT,d(n){n&&LT(t);for(let e=0;e<G.length;e+=1)G[e].d();e[48](null);for(let e=0;e<K.length;e+=1)K[e].d();for(let e=0;e<Q.length;e+=1)Q[e].d();e[50](null);for(let e=0;e<ee.length;e+=1)ee[e].d();e[51](null),e[52](null),$=!1,ET(z)}}}function fA(e,t,n){let o,r,s,i,a,l,c,u,d,f,{skinToneEmoji:p}=t,{i18n:h}=t,{database:m}=t,{customEmoji:g}=t,{customCategorySorting:v}=t,_=!0,b=[],y=[],x="",w="",k=!1,S=-1,E=!1,T=!1,M=0,A=0,R="",C=[],O=[],I=kM,B=!1,P=0,L=0,N=hM,j=!1;const F=e=>{o.getRootNode().getElementById(e).focus()},D=(e,t)=>{o.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))},H=(e,t)=>t&&e.skins&&e.skins[t]||e.unicode,U=(e,t)=>WM([e.name||H(e,t),...e.shortcodes||[]]).join(", "),V=e=>/^skintone-/.test(e.id);function $(e){return YM(e,(t=>{{const r=getComputedStyle(o),s=parseInt(r.getPropertyValue("--num-columns"),10),i="rtl"===r.getPropertyValue("direction"),a=e.parentElement.getBoundingClientRect().width,l=a-t;n(46,I=s),n(25,P=l),n(24,B=i)}}))}function z(e){const t=o.getRootNode(),s=e=>t.getElementById(`emo-${e.id}`);GM(e,r,s),n(1,b)}function q(e){return!e.unicode||!bM(e)||IM.get(e.unicode)}async function Y(e){const t=await OM;return e.filter((({version:e})=>!e||e<=t))}async function X(e){return VM(e,await OM)}async function G(e){if("undefined"===typeof e)return[];const t=-1===e?g:await m.getEmojiByGroup(e);return X(await Y(t))}async function W(e){return X(await Y(await m.getEmojiBySearchQuery(e)))}function K(e){if(!k||!b.length)return;const t=t=>{DM(e),n(5,S=HM(t,S,b))};switch(e.key){case"ArrowDown":return t(!1);case"ArrowUp":return t(!0);case"Enter":if(-1!==S)return DM(e),J(b[S].id);b.length&&n(5,S=0)}}function Z(e){n(2,x=""),n(44,w=""),n(5,S=-1),n(11,L=N.findIndex((t=>t.id===e.id)))}function Q(e){const{target:t,key:n}=e,o=t=>{t&&(DM(e),t.focus())};switch(n){case"ArrowLeft":return o(t.previousSibling);case"ArrowRight":return o(t.nextSibling);case"Home":return o(t.parentElement.firstChild);case"End":return o(t.parentElement.lastChild)}}async function J(e){const t=await m.getEmojiByUnicodeOrName(e),n=[...b,...O].find((t=>t.id===e)),o=n.unicode&&H(n,M);await m.incrementFavoriteEmojiCount(e),D("emoji-click",{emoji:t,skinTone:M,...o&&{unicode:o},...n.name&&{name:n.name}})}async function ee(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;DM(e);const n=t.id.substring(4);J(n)}async function te(e){const{target:t}=e;if(!V(t))return;DM(e);const o=parseInt(t.id.slice(9),10);n(8,M=o),n(6,E=!1),F("skintone-button"),D("skin-tone-change",{skinTone:o}),m.setPreferredSkinTone(o)}async function ne(e){n(6,E=!E),n(20,A=M),E&&(DM(e),$M((()=>F(`skintone-${A}`))))}function oe(e){if(!E)return;const t=async t=>{DM(e),n(20,A=t),await ZT(),F(`skintone-${A}`)};switch(e.key){case"ArrowUp":return t(HM(!0,A,C));case"ArrowDown":return t(HM(!1,A,C));case"Home":return t(0);case"End":return t(C.length-1);case"Enter":return te(e);case"Escape":return DM(e),n(6,E=!1),F("skintone-button")}}function re(e){if(E)switch(e.key){case" ":return te(e)}}async function se(e){const{relatedTarget:t}=e;t&&V(t)||n(6,E=!1)}function ie(){x=this.value,n(2,x)}function ae(e){qT[e?"unshift":"push"]((()=>{a=e,n(7,a)}))}OM.then((e=>{e||n(18,i=h.emojiUnsupportedMessage)}));const le=e=>Z(e);function ce(e){qT[e?"unshift":"push"]((()=>{s=e,n(3,s)}))}function ue(e){qT[e?"unshift":"push"]((()=>{r=e,n(17,r)}))}function de(e){qT[e?"unshift":"push"]((()=>{o=e,n(16,o)}))}return e.$$set=e=>{"skinToneEmoji"in e&&n(40,p=e.skinToneEmoji),"i18n"in e&&n(0,h=e.i18n),"database"in e&&n(39,m=e.database),"customEmoji"in e&&n(41,g=e.customEmoji),"customCategorySorting"in e&&n(42,v=e.customCategorySorting)},e.$$.update=()=>{if(1280&e.$$.dirty[1]&&g&&m&&n(39,m.customEmoji=g,m),1&e.$$.dirty[0]|256&e.$$.dirty[1]){async function t(){let e=!1;const t=setTimeout((()=>{e=!0,n(18,i=h.loadingMessage)}),xM);try{await m.ready(),n(14,j=!0)}catch(o){console.error(o),n(18,i=h.networkErrorMessage)}finally{clearTimeout(t),e&&(e=!1,n(18,i=""))}}m&&t()}if(6144&e.$$.dirty[0]|1024&e.$$.dirty[1]&&(g&&g.length?n(12,N=[mM,...hM]):N!==hM&&(L&&n(11,L--,L),n(12,N=hM))),4&e.$$.dirty[0]&&_M((()=>{n(44,w=(x||"").trim()),n(5,S=-1)})),6144&e.$$.dirty[0]&&n(13,d=N[L]),24576&e.$$.dirty[0]|8192&e.$$.dirty[1]){async function o(){if(j){if(w.length>=gM){const e=w,t=await W(e);e===w&&(n(1,b=t),n(4,k=!0))}else if(d){const e=d.id,t=await G(e);e===d.id&&(n(1,b=t),n(4,k=!1))}}else n(1,b=[]),n(4,k=!1)}o()}if(4112&e.$$.dirty[0]&&n(22,c=`\n  --font-family: ${EM};\n  --num-groups: ${N.length}; \n  --indicator-opacity: ${k?0:1}; \n  --num-skintones: ${vM};`),16384&e.$$.dirty[0]|256&e.$$.dirty[1]){async function r(){j&&n(8,M=await m.getPreferredSkinTone())}r()}if(512&e.$$.dirty[1]&&n(9,C=Array(vM).fill().map(((e,t)=>FM(p,t)))),768&e.$$.dirty[0]&&n(21,l=C[M]),257&e.$$.dirty[0]&&n(23,R=h.skinToneLabel.replace("{skinTone}",h.skinTones[M])),16384&e.$$.dirty[0]|256&e.$$.dirty[1]){async function _(){n(45,u=(await Promise.all(SM.map((e=>m.getEmojiByUnicodeOrName(e))))).filter(Boolean))}j&&_()}if(16384&e.$$.dirty[0]|49408&e.$$.dirty[1]){async function A(){const e=await m.getTopFavoriteEmoji(I),t=await X(UM([...e,...u],(e=>e.unicode||e.name)).slice(0,I));n(10,O=t)}j&&u&&A()}if(10&e.$$.dirty[0]){const B=b.filter((e=>e.unicode)).filter((e=>bM(e)&&!IM.has(e.unicode)));B.length?$M((()=>z(B))):(n(1,b=b.filter(q)),$M((()=>{(s||{}).scrollTop=0})))}if(e.$$.dirty[0],e.$$.dirty[1],18&e.$$.dirty[0]|2048&e.$$.dirty[1]){let P=function(){if(k)return[{category:"",emojis:b}];const e=new Map;for(const t of b){const n=t.category||"";let o=e.get(n);o||(o=[],e.set(n,o)),o.push(t)}return[...e.entries()].map((([e,t])=>({category:e,emojis:t}))).sort(((e,t)=>v(e.category,t.category)))};n(15,y=P())}34&e.$$.dirty[0]&&n(26,f=-1!==S&&b[S].id),192&e.$$.dirty[0]&&(E?a.addEventListener("transitionend",(()=>{n(19,T=!0)}),{once:!0}):n(19,T=!1))},[h,b,x,s,k,S,E,a,M,C,O,L,N,d,j,y,o,r,i,T,A,l,c,R,B,P,f,H,U,$,K,Z,Q,ee,te,ne,oe,re,se,m,p,g,v,_,w,u,I,ie,ae,le,ce,ue,de]}class pA extends fM{constructor(e){super(),dM(this,e,fA,dA,MT,{skinToneEmoji:40,i18n:0,database:39,customEmoji:41,customCategorySorting:42},null,[-1,-1,-1])}}const hA="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",mA="en";var gA={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading…",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}};const vA=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji"];class _A extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});const t=document.createElement("style");t.textContent=":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}",this.shadowRoot.appendChild(t),this._ctx={locale:mA,dataSource:hA,skinToneEmoji:wM,customCategorySorting:TM,customEmoji:null,i18n:gA,...e};for(const n of vA)"database"!==n&&Object.prototype.hasOwnProperty.call(this,n)&&(this._ctx[n]=this[n],delete this[n]);this._dbFlush()}connectedCallback(){this._cmp=new pA({target:this.shadowRoot,props:this._ctx})}disconnectedCallback(){this._cmp.$destroy(),this._cmp=void 0;const{database:e}=this._ctx;e&&e.close().catch((e=>console.error(e)))}static get observedAttributes(){return["locale","data-source","skin-tone-emoji"]}attributeChangedCallback(e,t,n){this._set(e.replace(/-([a-z])/g,((e,t)=>t.toUpperCase())),n)}_set(e,t){this._ctx[e]=t,this._cmp&&this._cmp.$set({[e]:t}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){const{locale:e,dataSource:t,database:n}=this._ctx;n&&n.locale===e&&n.dataSource===t||this._set("database",new xT({locale:e,dataSource:t}))}_dbFlush(){Promise.resolve().then((()=>this._dbCreate()))}}const bA={};for(const n of vA)bA[n]={get(){return"database"===n&&this._dbCreate(),this._ctx[n]},set(e){if("database"===n)throw new Error("database is read-only");this._set(n,e)}};function yA(e,t){while(e&&!e.querySelector(t)){e=e.parentNode;const n=e.querySelector(t);if(n)return n}return null}Object.defineProperties(_A.prototype,bA),customElements.get("emoji-picker")||customElements.define("emoji-picker",_A);const xA={name:"EmojiPickerContainer",components:{SvgIcon:pb},props:{emojiOpened:{type:Boolean,default:!1},emojiReaction:{type:Boolean,default:!1},positionTop:{type:Boolean,default:!1},positionRight:{type:Boolean,default:!1},messageId:{type:String,default:""},emojiDataSource:{type:String,default:void 0}},emits:["add-emoji","open-emoji"],data(){return{emojiPickerHeight:320,emojiPickerTop:0,emojiPickerRight:""}},watch:{emojiOpened(e){e&&setTimeout((()=>{this.addCustomStyling(),this.$refs.emojiPicker.shadowRoot.addEventListener("emoji-click",(({detail:e})=>{this.$emit("add-emoji",{unicode:e.unicode})}))}),0)}},methods:{addCustomStyling(){const e=".picker {\n\t\t\t\tborder: none;\n\t\t\t}",t=".nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}",n=".search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}",o="input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}",r=document.createElement("style");r.textContent=e+t+n+o,this.$refs.emojiPicker.shadowRoot.appendChild(r)},openEmoji(e){this.$emit("open-emoji",!this.emojiOpened),this.setEmojiPickerPosition(e.clientY,e.view.innerWidth,e.view.innerHeight)},setEmojiPickerPosition(e,t,n){const o=t<500||n<700,r=yA(this.$el,"#room-footer");if(r)if(o)this.emojiPickerRight=t/2-(this.positionTop?200:150)+"px",this.emojiPickerTop=100,this.emojiPickerHeight=n-200;else{const t=r.getBoundingClientRect().top,n=t-e>this.emojiPickerHeight-50;this.emojiPickerTop=n?e+10:e-this.emojiPickerHeight-10,this.emojiPickerRight=this.positionTop?"0px":this.positionRight?"60px":""}else o&&(this.emojiPickerRight="-50px")}}},wA={class:"vac-emoji-wrapper"};function kA(e,t,n,o,r,s){const i=_m("svg-icon"),a=_m("emoji-picker");return Sg(),Rg("div",wA,[Ng("div",{class:np(["vac-svg-button",{"vac-emoji-reaction":n.emojiReaction}]),onClick:t[0]||(t[0]=(...e)=>s.openEmoji&&s.openEmoji(...e))},[Tm(e.$slots,n.messageId?"emoji-picker-reaction-icon_"+n.messageId:"emoji-picker-icon",{},(()=>[jg(i,{name:"emoji",param:n.emojiReaction?"reaction":""},null,8,["param"])]))],2),n.emojiOpened?(Sg(),Cg(g_,{key:0,name:"vac-slide-up",appear:""},{default:wh((()=>[Ng("div",{class:np(["vac-emoji-picker",{"vac-picker-reaction":n.emojiReaction}]),style:Qf({height:`${r.emojiPickerHeight}px`,top:n.positionTop?r.emojiPickerHeight:`${r.emojiPickerTop}px`,right:r.emojiPickerRight,display:r.emojiPickerTop||!n.emojiReaction?"initial":"none"})},[n.emojiOpened?(Sg(),Cg(a,{key:0,ref:"emojiPicker","data-source":n.emojiDataSource},null,8,["data-source"])):Vg("",!0)],6)])),_:1})):Vg("",!0)])}var SA=Q_(xA,[["render",kA]]);const EA={name:"RoomFiles",components:{Loader:ab,SvgIcon:pb},props:{file:{type:Object,required:!0},index:{type:Number,required:!0}},emits:["remove-file"],computed:{isImage(){return lS(this.file)},isVideo(){return cS(this.file)}}},TA={class:"vac-room-file-container"},MA=["src"],AA={class:"vac-text-ellipsis"},RA={key:0,class:"vac-text-ellipsis vac-text-extension"};function CA(e,t,n,o,r,s){const i=_m("loader"),a=_m("svg-icon");return Sg(),Rg("div",TA,[jg(i,{show:n.file.loading,type:"room-file"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["show"]),Ng("div",{class:"vac-svg-button vac-icon-remove",onClick:t[0]||(t[0]=t=>e.$emit("remove-file",n.index))},[Tm(e.$slots,"image-close-icon",{},(()=>[jg(a,{name:"close",param:"image"})]))]),s.isImage?(Sg(),Rg("div",{key:0,class:np(["vac-message-image",{"vac-blur-loading":n.file.loading}]),style:Qf({"background-image":`url('${n.file.localUrl||n.file.url}')`})},null,6)):s.isVideo?(Sg(),Rg("video",{key:1,controls:"",class:np({"vac-blur-loading":n.file.loading})},[Ng("source",{src:n.file.localUrl||n.file.url},null,8,MA)],2)):(Sg(),Rg("div",{key:2,class:np(["vac-file-container",{"vac-blur-loading":n.file.loading}])},[Ng("div",null,[Tm(e.$slots,"file-icon",{},(()=>[jg(a,{name:"file"})]))]),Ng("div",AA,rp(n.file.name),1),n.file.extension?(Sg(),Rg("div",RA,rp(n.file.extension),1)):Vg("",!0)],2))])}var OA=Q_(EA,[["render",CA]]);const IA={name:"RoomFiles",components:{SvgIcon:pb,RoomFile:OA},props:{files:{type:Array,required:!0}},emits:["remove-file","reset-message"],computed:{}},BA={key:0,class:"vac-room-files-container"},PA={class:"vac-files-box"},LA={class:"vac-icon-close"};function NA(e,t,n,o,r,s){const i=_m("room-file"),a=_m("svg-icon");return Sg(),Cg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.files.length?(Sg(),Rg("div",BA,[Ng("div",PA,[(Sg(!0),Rg(_g,null,Sm(n.files,((n,o)=>(Sg(),Rg("div",{key:o},[jg(i,{file:n,index:o,onRemoveFile:t[0]||(t[0]=t=>e.$emit("remove-file",t))},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["file","index"])])))),128))]),Ng("div",LA,[Ng("div",{class:"vac-svg-button",onClick:t[1]||(t[1]=t=>e.$emit("reset-message"))},[Tm(e.$slots,"files-close-icon",{},(()=>[jg(a,{name:"close-outline"})]))])])])):Vg("",!0)])),_:3})}var jA=Q_(IA,[["render",NA]]);const FA={props:{percentage:{type:Number,default:0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["hover-audio-progress","change-linehead"],data(){return{isMouseDown:!1}},methods:{onMouseDown(e){if(this.messageSelectionEnabled)return;this.isMouseDown=!0;const t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("mouseup",this.onMouseUp)},onMouseUp(e){if(this.messageSelectionEnabled)return;this.isMouseDown=!1,document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove);const t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t)},onMouseMove(e){if(this.messageSelectionEnabled)return;const t=this.calculateLineHeadPosition(e,this.$refs.progress);this.$emit("change-linehead",t)},calculateLineHeadPosition(e,t){const n=t.getBoundingClientRect().width,o=t.getBoundingClientRect().left;let r=(e.clientX-o)/n;return r=r<0?0:r,r=r>1?1:r,r}}},DA={class:"vac-player-progress"},HA={class:"vac-line-container"};function UA(e,t,n,o,r,s){return Sg(),Rg("div",{ref:"progress",class:"vac-player-bar",onMousedown:t[0]||(t[0]=(...e)=>s.onMouseDown&&s.onMouseDown(...e)),onMouseover:t[1]||(t[1]=t=>e.$emit("hover-audio-progress",!0)),onMouseout:t[2]||(t[2]=t=>e.$emit("hover-audio-progress",!1))},[Ng("div",DA,[Ng("div",HA,[Ng("div",{class:"vac-line-progress",style:Qf({width:`${n.percentage}%`})},null,4),Ng("div",{class:np(["vac-line-dot",{"vac-line-dot__active":r.isMouseDown}]),style:Qf({left:`${n.percentage}%`})},null,6)])])],544)}var VA=Q_(FA,[["render",UA]]);const $A={name:"AudioPlayer",components:{SvgIcon:pb,AudioControl:VA},props:{messageId:{type:[String,Number],default:null},src:{type:String,default:null},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["hover-audio-progress","update-progress-time"],data(){return{isPlaying:!1,duration:this.convertTimeMMSS(0),playedTime:this.convertTimeMMSS(0),progress:0}},computed:{playerUniqId(){return`audio-player${this.messageId}`},audioSource(){return this.src?this.src:(this.resetProgress(),null)}},mounted(){this.player=this.$el.querySelector("#"+this.playerUniqId),this.player.addEventListener("ended",(()=>{this.isPlaying=!1})),this.player.addEventListener("loadeddata",(()=>{this.resetProgress(),this.duration=this.convertTimeMMSS(this.player.duration),this.updateProgressTime()})),this.player.addEventListener("timeupdate",this.onTimeUpdate)},methods:{convertTimeMMSS(e){return new Date(1e3*e).toISOString().substr(14,5)},playback(){!this.messageSelectionEnabled&&this.audioSource&&(this.isPlaying?this.player.pause():setTimeout((()=>this.player.play())),this.isPlaying=!this.isPlaying)},resetProgress(){this.isPlaying&&this.player.pause(),this.duration=this.convertTimeMMSS(0),this.playedTime=this.convertTimeMMSS(0),this.progress=0,this.isPlaying=!1,this.updateProgressTime()},onTimeUpdate(){this.playedTime=this.convertTimeMMSS(this.player.currentTime),this.progress=this.player.currentTime/this.player.duration*100,this.updateProgressTime()},onUpdateProgress(e){e&&(this.player.currentTime=e*this.player.duration)},updateProgressTime(){this.$emit("update-progress-time",this.progress>1?this.playedTime:this.duration)}}},zA={class:"vac-audio-player"},qA=["id","src"];function YA(e,t,n,o,r,s){const i=_m("svg-icon"),a=_m("audio-control");return Sg(),Rg("div",null,[Ng("div",zA,[Ng("div",{class:"vac-svg-button",onClick:t[0]||(t[0]=(...e)=>s.playback&&s.playback(...e))},[r.isPlaying?Tm(e.$slots,"audio-pause-icon_"+n.messageId,{key:0},(()=>[jg(i,{name:"audio-pause"})])):Tm(e.$slots,"audio-play-icon_"+n.messageId,{key:1},(()=>[jg(i,{name:"audio-play"})]))]),jg(a,{percentage:r.progress,"message-selection-enabled":n.messageSelectionEnabled,onChangeLinehead:s.onUpdateProgress,onHoverAudioProgress:t[1]||(t[1]=t=>e.$emit("hover-audio-progress",t))},null,8,["percentage","message-selection-enabled","onChangeLinehead"]),Ng("audio",{id:s.playerUniqId,src:s.audioSource},null,8,qA)])])}var XA=Q_($A,[["render",YA]]);const GA={name:"RoomMessageReply",components:{SvgIcon:pb,FormatMessage:qk,AudioPlayer:XA},props:{room:{type:Object,required:!0},messageReply:{type:Object,default:null},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0}},emits:["reset-message"],computed:{firstFile(){var e,t;return(null==(t=null==(e=this.messageReply)?void 0:e.files)?void 0:t.length)?this.messageReply.files[0]:{}},isImage(){return lS(this.firstFile)},isVideo(){return cS(this.firstFile)},isAudio(){return dS(this.firstFile)},isOtherFile(){var e,t;return(null==(t=null==(e=this.messageReply)?void 0:e.files)?void 0:t.length)&&!this.isAudio&&!this.isVideo&&!this.isImage}}},WA={key:0,class:"vac-reply-container"},KA={class:"vac-reply-box"},ZA={class:"vac-reply-info"},QA={class:"vac-reply-username"},JA={class:"vac-reply-content"},eR=["src"],tR={key:1,controls:"",class:"vac-image-reply"},nR=["src"],oR={key:3,class:"vac-image-reply vac-file-container"},rR={class:"vac-text-ellipsis"},sR={key:0,class:"vac-text-ellipsis vac-text-extension"},iR={class:"vac-icon-reply"};function aR(e,t,n,o,r,s){const i=_m("format-message"),a=_m("audio-player"),l=_m("svg-icon");return Sg(),Cg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.messageReply?(Sg(),Rg("div",WA,[Ng("div",KA,[Ng("div",ZA,[Ng("div",QA,rp(n.messageReply.username),1),Ng("div",JA,[jg(i,{"message-id":n.messageReply._id,content:n.messageReply.content,users:n.room.users,"text-formatting":n.textFormatting,"link-options":n.linkOptions,reply:!0},null,8,["message-id","content","users","text-formatting","link-options"])])]),s.isImage?(Sg(),Rg("img",{key:0,src:s.firstFile.url,class:"vac-image-reply"},null,8,eR)):s.isVideo?(Sg(),Rg("video",tR,[Ng("source",{src:s.firstFile.url},null,8,nR)])):s.isAudio?(Sg(),Cg(a,{key:2,src:s.firstFile.url,"message-selection-enabled":!1,class:"vac-audio-reply"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["src"])):s.isOtherFile?(Sg(),Rg("div",oR,[Ng("div",null,[Tm(e.$slots,"file-icon",{},(()=>[jg(l,{name:"file"})]))]),Ng("div",rR,rp(s.firstFile.name),1),s.firstFile.extension?(Sg(),Rg("div",sR,rp(s.firstFile.extension),1)):Vg("",!0)])):Vg("",!0)]),Ng("div",iR,[Ng("div",{class:"vac-svg-button",onClick:t[0]||(t[0]=t=>e.$emit("reset-message"))},[Tm(e.$slots,"reply-close-icon",{},(()=>[jg(l,{name:"close-outline"})]))])])])):Vg("",!0)])),_:3})}var lR=Q_(GA,[["render",aR]]);const cR={name:"RoomUsersTag",props:{filteredUsersTag:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-user-tag","activate-item"],data(){return{activeItem:null}},watch:{filteredUsersTag(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem(e){e&&this.$emit("select-user-tag",this.filteredUsersTag[this.activeItem])},activeUpOrDown(){this.activeUpOrDown>0&&this.activeItem<this.filteredUsersTag.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},uR={key:0,class:"vac-tags-container"},dR=["onMouseover","onClick"],fR={class:"vac-tags-info"},pR={class:"vac-tags-username"};function hR(e,t,n,o,r,s){return Sg(),Cg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.filteredUsersTag.length?(Sg(),Rg("div",uR,[(Sg(!0),Rg(_g,null,Sm(n.filteredUsersTag,((t,n)=>(Sg(),Rg("div",{key:t._id,class:np(["vac-tags-box",{"vac-tags-box-active":n===r.activeItem}]),onMouseover:e=>r.activeItem=n,onClick:n=>e.$emit("select-user-tag",t)},[Ng("div",fR,[t.avatar?(Sg(),Rg("div",{key:0,class:"vac-avatar vac-tags-avatar",style:Qf({"background-image":`url('${t.avatar}')`})},null,4)):Vg("",!0),Ng("div",pR,rp(t.username),1)])],42,dR)))),128))])):Vg("",!0)])),_:1})}var mR=Q_(cR,[["render",hR]]);const gR={name:"RoomEmojis",props:{filteredEmojis:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-emoji","activate-item"],data(){return{activeItem:null}},watch:{filteredEmojis(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem(e){e&&this.$emit("select-emoji",this.filteredEmojis[this.activeItem])},activeUpOrDown(){this.activeUpOrDown>0&&this.activeItem<this.filteredEmojis.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},vR={key:0,class:"vac-emojis-container"},_R=["onMouseover","onClick"];function bR(e,t,n,o,r,s){return Sg(),Cg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.filteredEmojis.length?(Sg(),Rg("div",vR,[(Sg(!0),Rg(_g,null,Sm(n.filteredEmojis,((t,n)=>(Sg(),Rg("div",{key:t,class:np(["vac-emoji-element",{"vac-emoji-element-active":n===r.activeItem}]),onMouseover:e=>r.activeItem=n,onClick:n=>e.$emit("select-emoji",t)},rp(t),43,_R)))),128))])):Vg("",!0)])),_:1})}var yR=Q_(gR,[["render",bR]]);const xR={name:"RoomTemplatesText",props:{filteredTemplatesText:{type:Array,required:!0},selectItem:{type:Boolean,default:null},activeUpOrDown:{type:Number,default:null}},emits:["select-template-text","activate-item"],data(){return{activeItem:null}},watch:{filteredTemplatesText(e,t){t.length&&e.length===t.length||(this.activeItem=0)},selectItem(e){e&&this.$emit("select-template-text",this.filteredTemplatesText[this.activeItem])},activeUpOrDown(){this.activeUpOrDown>0&&this.activeItem<this.filteredTemplatesText.length-1?this.activeItem++:this.activeUpOrDown<0&&this.activeItem>0&&this.activeItem--,this.$emit("activate-item")}}},wR={key:0,class:"vac-template-container vac-app-box-shadow"},kR=["onMouseover","onClick"],SR={class:"vac-template-info"},ER={class:"vac-template-tag"},TR={class:"vac-template-text"};function MR(e,t,n,o,r,s){return Sg(),Cg(g_,{name:"vac-slide-up"},{default:wh((()=>[n.filteredTemplatesText.length?(Sg(),Rg("div",wR,[(Sg(!0),Rg(_g,null,Sm(n.filteredTemplatesText,((t,n)=>(Sg(),Rg("div",{key:n,class:np(["vac-template-box",{"vac-template-active":n===r.activeItem}]),onMouseover:e=>r.activeItem=n,onClick:n=>e.$emit("select-template-text",t)},[Ng("div",SR,[Ng("div",ER," /"+rp(t.tag),1),Ng("div",TR,rp(t.text),1)])],42,kR)))),128))])):Vg("",!0)])),_:1})}var AR=Q_(xR,[["render",MR]]);function RR(e){return new Int8Array(e)}function CR(e){return new Int16Array(e)}function OR(e){return new Int32Array(e)}function IR(e){return new Float32Array(e)}function BR(e){return new Float64Array(e)}function PR(e){if(1==e.length)return IR(e[0]);var t=e[0];e=e.slice(1);for(var n=[],o=0;o<t;o++)n.push(PR(e));return n}function LR(e){if(1==e.length)return OR(e[0]);var t=e[0];e=e.slice(1);for(var n=[],o=0;o<t;o++)n.push(LR(e));return n}function NR(e){if(1==e.length)return CR(e[0]);var t=e[0];e=e.slice(1);for(var n=[],o=0;o<t;o++)n.push(NR(e));return n}function jR(e){if(1==e.length)return new Array(e[0]);var t=e[0];e=e.slice(1);for(var n=[],o=0;o<t;o++)n.push(jR(e));return n}var FR={fill:function(e,t,n,o){if(2==arguments.length)for(var r=0;r<e.length;r++)e[r]=arguments[1];else for(r=t;r<n;r++)e[r]=o}},DR={arraycopy:function(e,t,n,o,r){var s=t+r;while(t<s)n[o++]=e[t++]},out:{}};DR.out.println=function(e){console.log(e)},DR.out.printf=function(){console.log.apply(console,arguments)};var HR={};function UR(e){this.ordinal=e}HR.SQRT2=1.4142135623730951,HR.FAST_LOG10=function(e){return Math.log10(e)},HR.FAST_LOG10_X=function(e,t){return Math.log10(e)*t},UR.short_block_allowed=new UR(0),UR.short_block_coupled=new UR(1),UR.short_block_dispensed=new UR(2),UR.short_block_forced=new UR(3);var VR={};function $R(e){this.ordinal=e}VR.MAX_VALUE=34028235e31,$R.vbr_off=new $R(0),$R.vbr_mt=new $R(1),$R.vbr_rh=new $R(2),$R.vbr_abr=new $R(3),$R.vbr_mtrh=new $R(4),$R.vbr_default=$R.vbr_mtrh;var zR=function(e){},qR={System:DR,VbrMode:$R,Float:VR,ShortBlock:UR,Util:HR,Arrays:FR,new_array_n:jR,new_byte:RR,new_double:BR,new_float:IR,new_float_n:PR,new_int:OR,new_int_n:LR,new_short:CR,new_short_n:NR,assert:zR},YR=qR.System,XR=qR.Util,GR=qR.Arrays,WR=qR.new_float;function KR(){var e=[-.1482523854003001,32.308141959636465,296.40344946382766,883.1344870032432,11113.947376231741,1057.2713659324597,305.7402417275812,30.825928907280012,3.8533188138216365,59.42900443849514,709.5899960123345,5281.91112291017,-5829.66483675846,-817.6293103748613,-76.91656988279972,-4.594269939176596,.9063471690191471,.1960342806591213,-.15466694054279598,34.324387823855965,301.8067566458425,817.599602898885,11573.795901679885,1181.2520595540152,321.59731579894424,31.232021761053772,3.7107095756221318,53.650946155329365,684.167428119626,5224.56624370173,-6366.391851890084,-908.9766368219582,-89.83068876699639,-5.411397422890401,.8206787908286602,.3901806440322567,-.16070888947830023,36.147034243915876,304.11815768187864,732.7429163887613,11989.60988270091,1300.012278487897,335.28490093152146,31.48816102859945,3.373875931311736,47.232241542899175,652.7371796173471,5132.414255594984,-6909.087078780055,-1001.9990371107289,-103.62185754286375,-6.104916304710272,.7416505462720353,.5805693545089249,-.16636367662261495,37.751650073343995,303.01103387567713,627.9747488785183,12358.763425278165,1412.2779918482834,346.7496836825721,31.598286663170416,3.1598635433980946,40.57878626349686,616.1671130880391,5007.833007176154,-7454.040671756168,-1095.7960341867115,-118.24411666465777,-6.818469345853504,.6681786379192989,.7653668647301797,-.1716176790982088,39.11551877123304,298.3413246578966,503.5259106886539,12679.589408408976,1516.5821921214542,355.9850766329023,31.395241710249053,2.9164211881972335,33.79716964664243,574.8943997801362,4853.234992253242,-7997.57021486075,-1189.7624067269965,-133.6444792601766,-7.7202770609839915,.5993769336819237,.9427934736519954,-.17645823955292173,40.21879108166477,289.9982036694474,359.3226160751053,12950.259102786438,1612.1013903507662,362.85067106591504,31.045922092242872,2.822222032597987,26.988862316190684,529.8996541764288,4671.371946949588,-8535.899136645805,-1282.5898586244496,-149.58553632943463,-8.643494270763135,.5345111359507916,1.111140466039205,-.36174739330527045,41.04429910497807,277.5463268268618,195.6386023135583,13169.43812144731,1697.6433561479398,367.40983966190305,30.557037410382826,2.531473372857427,20.070154905927314,481.50208566532336,4464.970341588308,-9065.36882077239,-1373.62841526722,-166.1660487028118,-9.58289321133207,.4729647758913199,1.268786568327291,-.36970682634889585,41.393213350082036,261.2935935556502,12.935476055240873,13336.131683328815,1772.508612059496,369.76534388639965,29.751323653701338,2.4023193045459172,13.304795348228817,430.5615775526625,4237.0568611071185,-9581.931701634761,-1461.6913552409758,-183.12733958476446,-10.718010163869403,.41421356237309503,1.414213562373095,-.37677560326535325,41.619486213528496,241.05423794991074,-187.94665032361226,13450.063605744153,1836.153896465782,369.4908799925761,29.001847876923147,2.0714759319987186,6.779591200894186,377.7767837205709,3990.386575512536,-10081.709459700915,-1545.947424837898,-200.3762958015653,-11.864482073055006,.3578057213145241,1.546020906725474,-.3829366947518991,41.1516456456653,216.47684307105183,-406.1569483347166,13511.136535077321,1887.8076599260432,367.3025214564151,28.136213436723654,1.913880671464418,.3829366947518991,323.85365704338597,3728.1472257487526,-10561.233882199509,-1625.2025997821418,-217.62525175416,-13.015432208941645,.3033466836073424,1.66293922460509,-.5822628872992417,40.35639251440489,188.20071124269245,-640.2706748618148,13519.21490106562,1927.6022433578062,362.8197642637487,26.968821921868447,1.7463817695935329,-5.62650678237171,269.3016715297017,3453.386536448852,-11016.145278780888,-1698.6569643425091,-234.7658734267683,-14.16351421663124,.2504869601913055,1.76384252869671,-.5887180101749253,39.23429103868072,155.76096234403798,-889.2492977967378,13475.470561874661,1955.0535223723712,356.4450994756727,25.894952980042156,1.5695032905781554,-11.181939564328772,214.80884394039484,3169.1640829158237,-11443.321309975563,-1765.1588461316153,-251.68908574481912,-15.49755935939164,.198912367379658,1.847759065022573,-.7912582233652842,37.39369355329111,119.699486012458,-1151.0956593239027,13380.446257078214,1970.3952110853447,348.01959814116185,24.731487364283044,1.3850130831637748,-16.421408865300393,161.05030052864092,2878.3322807850063,-11838.991423510031,-1823.985884688674,-268.2854986386903,-16.81724543849939,.1483359875383474,1.913880671464418,-.7960642926861912,35.2322109610459,80.01928065061526,-1424.0212633405113,13235.794061869668,1973.804052543835,337.9908651258184,23.289159354463873,1.3934255946442087,-21.099669467133474,108.48348407242611,2583.700758091299,-12199.726194855148,-1874.2780658979746,-284.2467154529415,-18.11369784385905,.09849140335716425,1.961570560806461,-.998795456205172,32.56307803611191,36.958364584370486,-1706.075448829146,13043.287458812016,1965.3831106103316,326.43182772364605,22.175018750622293,1.198638339011324,-25.371248002043963,57.53505923036915,2288.41886619975,-12522.674544337233,-1914.8400385312243,-299.26241273417224,-19.37805630698734,.04912684976946725,1.990369453344394,.035780907*XR.SQRT2*.5/2384e-9,.017876148*XR.SQRT2*.5/2384e-9,.003134727*XR.SQRT2*.5/2384e-9,.002457142*XR.SQRT2*.5/2384e-9,971317e-9*XR.SQRT2*.5/2384e-9,218868e-9*XR.SQRT2*.5/2384e-9,101566e-9*XR.SQRT2*.5/2384e-9,13828e-9*XR.SQRT2*.5/2384e-9,12804.797818791945,1945.5515939597317,313.4244966442953,20.801593959731544,1995.1556208053692,9.000838926174497,-29.20218120805369],t=12,n=36,o=[[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,940084909404969e-27,6423305872147839e-28,2382191739347918e-28,5456116108943412e-27,4878985199565852e-27,4240448995017367e-27,3559909094758252e-27,2858043359288075e-27,2156177623817898e-27,1475637723558783e-27,8371015190102974e-28,2599706096327376e-28,-5456116108943412e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758252e-27,-2858043359288076e-27,-2156177623817898e-27,-1475637723558783e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347923e-28,-6423305872147843e-28,-9400849094049696e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049694e-28,-642330587214784e-27,-2382191739347918e-28],[2382191739347913e-28,6423305872147834e-28,9400849094049688e-28,1122435026096556e-27,1183840321267481e-27,1122435026096556e-27,9400849094049688e-28,6423305872147841e-28,2382191739347918e-28,5456116108943413e-27,4878985199565852e-27,4240448995017367e-27,3559909094758253e-27,2858043359288075e-27,2156177623817898e-27,1475637723558782e-27,8371015190102975e-28,2599706096327376e-28,-5461314069809755e-27,-4921085770524055e-27,-4343405037091838e-27,-3732668368707687e-27,-3093523840190885e-27,-2430835727329465e-27,-1734679010007751e-27,-974825365660928e-27,-2797435120168326e-28,0,0,0,0,0,0,-2283748241799531e-28,-4037858874020686e-28,-2146547464825323e-28],[.1316524975873958,.414213562373095,.7673269879789602,1.091308501069271,1.303225372841206,1.56968557711749,1.920982126971166,2.414213562373094,3.171594802363212,4.510708503662055,7.595754112725146,22.90376554843115,.984807753012208,.6427876096865394,.3420201433256688,.9396926207859084,-.1736481776669303,-.7660444431189779,.8660254037844387,.5,-.5144957554275265,-.4717319685649723,-.3133774542039019,-.1819131996109812,-.09457419252642064,-.04096558288530405,-.01419856857247115,-.003699974673760037,.8574929257125442,.8817419973177052,.9496286491027329,.9833145924917901,.9955178160675857,.9991605581781475,.999899195244447,.9999931550702802],[0,0,0,0,0,0,2283748241799531e-28,4037858874020686e-28,2146547464825323e-28,5461314069809755e-27,4921085770524055e-27,4343405037091838e-27,3732668368707687e-27,3093523840190885e-27,2430835727329466e-27,1734679010007751e-27,974825365660928e-27,2797435120168326e-28,-5456116108943413e-27,-4878985199565852e-27,-4240448995017367e-27,-3559909094758253e-27,-2858043359288075e-27,-2156177623817898e-27,-1475637723558782e-27,-8371015190102975e-28,-2599706096327376e-28,-2382191739347913e-28,-6423305872147834e-28,-9400849094049688e-28,-1122435026096556e-27,-1183840321267481e-27,-1122435026096556e-27,-9400849094049688e-28,-6423305872147841e-28,-2382191739347918e-28]],r=o[uC.SHORT_TYPE],s=o[uC.SHORT_TYPE],i=o[uC.SHORT_TYPE],a=o[uC.SHORT_TYPE],l=[0,1,16,17,8,9,24,25,4,5,20,21,12,13,28,29,2,3,18,19,10,11,26,27,6,7,22,23,14,15,30,31];function c(t,n,o){for(var r,s,i,a=10,l=n+238-14-286,c=-15;c<0;c++){var u,d,f;u=e[a+-10],d=t[l+-224]*u,f=t[n+224]*u,u=e[a+-9],d+=t[l+-160]*u,f+=t[n+160]*u,u=e[a+-8],d+=t[l+-96]*u,f+=t[n+96]*u,u=e[a+-7],d+=t[l+-32]*u,f+=t[n+32]*u,u=e[a+-6],d+=t[l+32]*u,f+=t[n+-32]*u,u=e[a+-5],d+=t[l+96]*u,f+=t[n+-96]*u,u=e[a+-4],d+=t[l+160]*u,f+=t[n+-160]*u,u=e[a+-3],d+=t[l+224]*u,f+=t[n+-224]*u,u=e[a+-2],d+=t[n+-256]*u,f-=t[l+256]*u,u=e[a+-1],d+=t[n+-192]*u,f-=t[l+192]*u,u=e[a+0],d+=t[n+-128]*u,f-=t[l+128]*u,u=e[a+1],d+=t[n+-64]*u,f-=t[l+64]*u,u=e[a+2],d+=t[n+0]*u,f-=t[l+0]*u,u=e[a+3],d+=t[n+64]*u,f-=t[l+-64]*u,u=e[a+4],d+=t[n+128]*u,f-=t[l+-128]*u,u=e[a+5],d+=t[n+192]*u,f-=t[l+-192]*u,d*=e[a+6],u=f-d,o[30+2*c]=f+d,o[31+2*c]=e[a+7]*u,a+=18,n--,l++}f=t[n+-16]*e[a+-10],d=t[n+-32]*e[a+-2],f+=(t[n+-48]-t[n+16])*e[a+-9],d+=t[n+-96]*e[a+-1],f+=(t[n+-80]+t[n+48])*e[a+-8],d+=t[n+-160]*e[a+0],f+=(t[n+-112]-t[n+80])*e[a+-7],d+=t[n+-224]*e[a+1],f+=(t[n+-144]+t[n+112])*e[a+-6],d-=t[n+32]*e[a+2],f+=(t[n+-176]-t[n+144])*e[a+-5],d-=t[n+96]*e[a+3],f+=(t[n+-208]+t[n+176])*e[a+-4],d-=t[n+160]*e[a+4],f+=(t[n+-240]-t[n+208])*e[a+-3],d-=t[n+224],r=d-f,s=d+f,f=o[14],d=o[15]-f,o[31]=s+f,o[30]=r+d,o[15]=r-d,o[14]=s-f,i=o[28]-o[0],o[0]+=o[28],o[28]=i*e[a+-36+7],i=o[29]-o[1],o[1]+=o[29],o[29]=i*e[a+-36+7],i=o[26]-o[2],o[2]+=o[26],o[26]=i*e[a+-72+7],i=o[27]-o[3],o[3]+=o[27],o[27]=i*e[a+-72+7],i=o[24]-o[4],o[4]+=o[24],o[24]=i*e[a+-108+7],i=o[25]-o[5],o[5]+=o[25],o[25]=i*e[a+-108+7],i=o[22]-o[6],o[6]+=o[22],o[22]=i*XR.SQRT2,i=o[23]-o[7],o[7]+=o[23],o[23]=i*XR.SQRT2-o[7],o[7]-=o[6],o[22]-=o[7],o[23]-=o[22],i=o[6],o[6]=o[31]-i,o[31]=o[31]+i,i=o[7],o[7]=o[30]-i,o[30]=o[30]+i,i=o[22],o[22]=o[15]-i,o[15]=o[15]+i,i=o[23],o[23]=o[14]-i,o[14]=o[14]+i,i=o[20]-o[8],o[8]+=o[20],o[20]=i*e[a+-180+7],i=o[21]-o[9],o[9]+=o[21],o[21]=i*e[a+-180+7],i=o[18]-o[10],o[10]+=o[18],o[18]=i*e[a+-216+7],i=o[19]-o[11],o[11]+=o[19],o[19]=i*e[a+-216+7],i=o[16]-o[12],o[12]+=o[16],o[16]=i*e[a+-252+7],i=o[17]-o[13],o[13]+=o[17],o[17]=i*e[a+-252+7],i=-o[20]+o[24],o[20]+=o[24],o[24]=i*e[a+-216+7],i=-o[21]+o[25],o[21]+=o[25],o[25]=i*e[a+-216+7],i=o[4]-o[8],o[4]+=o[8],o[8]=i*e[a+-216+7],i=o[5]-o[9],o[5]+=o[9],o[9]=i*e[a+-216+7],i=o[0]-o[12],o[0]+=o[12],o[12]=i*e[a+-72+7],i=o[1]-o[13],o[1]+=o[13],o[13]=i*e[a+-72+7],i=o[16]-o[28],o[16]+=o[28],o[28]=i*e[a+-72+7],i=-o[17]+o[29],o[17]+=o[29],o[29]=i*e[a+-72+7],i=XR.SQRT2*(o[2]-o[10]),o[2]+=o[10],o[10]=i,i=XR.SQRT2*(o[3]-o[11]),o[3]+=o[11],o[11]=i,i=XR.SQRT2*(-o[18]+o[26]),o[18]+=o[26],o[26]=i-o[18],i=XR.SQRT2*(-o[19]+o[27]),o[19]+=o[27],o[27]=i-o[19],i=o[2],o[19]-=o[3],o[3]-=i,o[2]=o[31]-i,o[31]+=i,i=o[3],o[11]-=o[19],o[18]-=i,o[3]=o[30]-i,o[30]+=i,i=o[18],o[27]-=o[11],o[19]-=i,o[18]=o[15]-i,o[15]+=i,i=o[19],o[10]-=i,o[19]=o[14]-i,o[14]+=i,i=o[10],o[11]-=i,o[10]=o[23]-i,o[23]+=i,i=o[11],o[26]-=i,o[11]=o[22]-i,o[22]+=i,i=o[26],o[27]-=i,o[26]=o[7]-i,o[7]+=i,i=o[27],o[27]=o[6]-i,o[6]+=i,i=XR.SQRT2*(o[0]-o[4]),o[0]+=o[4],o[4]=i,i=XR.SQRT2*(o[1]-o[5]),o[1]+=o[5],o[5]=i,i=XR.SQRT2*(o[16]-o[20]),o[16]+=o[20],o[20]=i,i=XR.SQRT2*(o[17]-o[21]),o[17]+=o[21],o[21]=i,i=-XR.SQRT2*(o[8]-o[12]),o[8]+=o[12],o[12]=i-o[8],i=-XR.SQRT2*(o[9]-o[13]),o[9]+=o[13],o[13]=i-o[9],i=-XR.SQRT2*(o[25]-o[29]),o[25]+=o[29],o[29]=i-o[25],i=-XR.SQRT2*(o[24]+o[28]),o[24]-=o[28],o[28]=i-o[24],i=o[24]-o[16],o[24]=i,i=o[20]-i,o[20]=i,i=o[28]-i,o[28]=i,i=o[25]-o[17],o[25]=i,i=o[21]-i,o[21]=i,i=o[29]-i,o[29]=i,i=o[17]-o[1],o[17]=i,i=o[9]-i,o[9]=i,i=o[25]-i,o[25]=i,i=o[5]-i,o[5]=i,i=o[21]-i,o[21]=i,i=o[13]-i,o[13]=i,i=o[29]-i,o[29]=i,i=o[1]-o[0],o[1]=i,i=o[16]-i,o[16]=i,i=o[17]-i,o[17]=i,i=o[8]-i,o[8]=i,i=o[9]-i,o[9]=i,i=o[24]-i,o[24]=i,i=o[25]-i,o[25]=i,i=o[4]-i,o[4]=i,i=o[5]-i,o[5]=i,i=o[20]-i,o[20]=i,i=o[21]-i,o[21]=i,i=o[12]-i,o[12]=i,i=o[13]-i,o[13]=i,i=o[28]-i,o[28]=i,i=o[29]-i,o[29]=i,i=o[0],o[0]+=o[31],o[31]-=i,i=o[1],o[1]+=o[30],o[30]-=i,i=o[16],o[16]+=o[15],o[15]-=i,i=o[17],o[17]+=o[14],o[14]-=i,i=o[8],o[8]+=o[23],o[23]-=i,i=o[9],o[9]+=o[22],o[22]-=i,i=o[24],o[24]+=o[7],o[7]-=i,i=o[25],o[25]+=o[6],o[6]-=i,i=o[4],o[4]+=o[27],o[27]-=i,i=o[5],o[5]+=o[26],o[26]-=i,i=o[20],o[20]+=o[11],o[11]-=i,i=o[21],o[21]+=o[10],o[10]-=i,i=o[12],o[12]+=o[19],o[19]-=i,i=o[13],o[13]+=o[18],o[18]-=i,i=o[28],o[28]+=o[3],o[3]-=i,i=o[29],o[29]+=o[2],o[2]-=i}function u(e,t){for(var n=0;n<3;n++){var r,s,i,a,l,c;a=e[t+6]*o[uC.SHORT_TYPE][0]-e[t+15],r=e[t+0]*o[uC.SHORT_TYPE][2]-e[t+9],s=a+r,i=a-r,a=e[t+15]*o[uC.SHORT_TYPE][0]+e[t+6],r=e[t+9]*o[uC.SHORT_TYPE][2]+e[t+0],l=a+r,c=-a+r,r=2069978111953089e-26*(e[t+3]*o[uC.SHORT_TYPE][1]-e[t+12]),a=2069978111953089e-26*(e[t+12]*o[uC.SHORT_TYPE][1]+e[t+3]),e[t+0]=190752519173728e-25*s+r,e[t+15]=190752519173728e-25*-l+a,i=.8660254037844387*i*1907525191737281e-26,l=.5*l*1907525191737281e-26+a,e[t+3]=i-l,e[t+6]=i+l,s=.5*s*1907525191737281e-26-r,c=.8660254037844387*c*1907525191737281e-26,e[t+9]=s+c,e[t+12]=s-c,t++}}function d(e,t,n){var o,r,i,a,l,c,u,d,f,p,h,m,g,v,_,b,y,x;i=n[17]-n[9],l=n[15]-n[11],c=n[14]-n[12],u=n[0]+n[8],d=n[1]+n[7],f=n[2]+n[6],p=n[3]+n[5],e[t+17]=u+f-p-(d-n[4]),r=(u+f-p)*s[19]+(d-n[4]),o=(i-l-c)*s[18],e[t+5]=o+r,e[t+6]=o-r,a=(n[16]-n[10])*s[18],d=d*s[19]+n[4],o=i*s[12]+a+l*s[13]+c*s[14],r=-u*s[16]+d-f*s[17]+p*s[15],e[t+1]=o+r,e[t+2]=o-r,o=i*s[13]-a-l*s[14]+c*s[12],r=-u*s[17]+d-f*s[15]+p*s[16],e[t+9]=o+r,e[t+10]=o-r,o=i*s[14]-a+l*s[12]-c*s[13],r=u*s[15]-d+f*s[16]-p*s[17],e[t+13]=o+r,e[t+14]=o-r,h=n[8]-n[0],g=n[6]-n[2],v=n[5]-n[3],_=n[17]+n[9],b=n[16]+n[10],y=n[15]+n[11],x=n[14]+n[12],e[t+0]=_+y+x+(b+n[13]),o=(_+y+x)*s[19]-(b+n[13]),r=(h-g+v)*s[18],e[t+11]=o+r,e[t+12]=o-r,m=(n[7]-n[1])*s[18],b=n[13]-b*s[19],o=_*s[15]-b+y*s[16]+x*s[17],r=h*s[14]+m+g*s[12]+v*s[13],e[t+3]=o+r,e[t+4]=o-r,o=-_*s[17]+b-y*s[15]-x*s[16],r=h*s[13]+m-g*s[14]-v*s[12],e[t+7]=o+r,e[t+8]=o-r,o=-_*s[16]+b-y*s[17]-x*s[15],r=h*s[12]-m+g*s[13]-v*s[14],e[t+15]=o+r,e[t+16]=o-r}this.mdct_sub48=function(e,s,f){for(var p=s,h=286,m=0;m<e.channels_out;m++){for(var g=0;g<e.mode_gr;g++){for(var v,_=e.l3_side.tt[g][m],b=_.xr,y=0,x=e.sb_sample[m][1-g],w=0,k=0;k<9;k++)for(c(p,h,x[w]),c(p,h+32,x[w+1]),w+=2,h+=64,v=1;v<32;v+=2)x[w-1][v]*=-1;for(v=0;v<32;v++,y+=18){var S=_.block_type,E=e.sb_sample[m][g],T=e.sb_sample[m][1-g];if(0!=_.mixed_block_flag&&v<2&&(S=0),e.amp_filter[v]<1e-12)GR.fill(b,y+0,y+18,0);else{if(e.amp_filter[v]<1)for(k=0;k<18;k++)T[k][l[v]]*=e.amp_filter[v];if(S==uC.SHORT_TYPE){for(k=-t/4;k<0;k++){var M=o[uC.SHORT_TYPE][k+3];b[y+3*k+9]=E[9+k][l[v]]*M-E[8-k][l[v]],b[y+3*k+18]=E[14-k][l[v]]*M+E[15+k][l[v]],b[y+3*k+10]=E[15+k][l[v]]*M-E[14-k][l[v]],b[y+3*k+19]=T[2-k][l[v]]*M+T[3+k][l[v]],b[y+3*k+11]=T[3+k][l[v]]*M-T[2-k][l[v]],b[y+3*k+20]=T[8-k][l[v]]*M+T[9+k][l[v]]}u(b,y)}else{var A=WR(18);for(k=-n/4;k<0;k++){var R,C;R=o[S][k+27]*T[k+9][l[v]]+o[S][k+36]*T[8-k][l[v]],C=o[S][k+9]*E[k+9][l[v]]-o[S][k+18]*E[8-k][l[v]],A[k+9]=R-C*r[3+k+9],A[k+18]=R*r[3+k+9]+C}d(b,y,A)}}if(S!=uC.SHORT_TYPE&&0!=v)for(k=7;k>=0;--k){var O,I;O=b[y+k]*i[20+k]+b[y+-1-k]*a[28+k],I=b[y+k]*a[28+k]-b[y+-1-k]*i[20+k],b[y+-1-k]=O,b[y+k]=I}}}if(p=f,h=286,1==e.mode_gr)for(var B=0;B<18;B++)YR.arraycopy(e.sb_sample[m][1][B],0,e.sb_sample[m][0][B],0,32)}}}var ZR=qR.System,QR=qR.new_float,JR=qR.new_float_n;function eC(){this.l=QR(uC.SBMAX_l),this.s=JR([uC.SBMAX_s,3]);var e=this;this.assign=function(t){ZR.arraycopy(t.l,0,e.l,0,uC.SBMAX_l);for(var n=0;n<uC.SBMAX_s;n++)for(var o=0;o<3;o++)e.s[n][o]=t.s[n][o]}}function tC(){this.thm=new eC,this.en=new eC}function nC(e){var t=e;this.ordinal=function(){return t}}nC.STEREO=new nC(0),nC.JOINT_STEREO=new nC(1),nC.DUAL_CHANNEL=new nC(2),nC.MONO=new nC(3),nC.NOT_SET=new nC(4);var oC=qR.System,rC=qR.VbrMode,sC=qR.new_array_n,iC=qR.new_float,aC=qR.new_float_n,lC=qR.new_int,cC=qR.assert;function uC(){var e=uC.FFTOFFSET,t=uC.MPG_MD_MS_LR,n=null;this.psy=null;var o=null,r=null,s=null;this.setModules=function(e,t,i,a){n=e,this.psy=t,o=t,r=a,s=i};var i=new KR;function a(e){var t,n;if(0!=e.ATH.useAdjust)if(n=e.loudness_sq[0][0],t=e.loudness_sq[1][0],2==e.channels_out?(n+=e.loudness_sq[0][1],t+=e.loudness_sq[1][1]):(n+=n,t+=t),2==e.mode_gr&&(n=Math.max(n,t)),n*=.5,n*=e.ATH.aaSensitivityP,n>.03125)e.ATH.adjust>=1?e.ATH.adjust=1:e.ATH.adjust<e.ATH.adjustLimit&&(e.ATH.adjust=e.ATH.adjustLimit),e.ATH.adjustLimit=1;else{var o=31.98*n+625e-6;e.ATH.adjust>=o?(e.ATH.adjust*=.075*o+.925,e.ATH.adjust<o&&(e.ATH.adjust=o)):e.ATH.adjustLimit>=o?e.ATH.adjust=o:e.ATH.adjust<e.ATH.adjustLimit&&(e.ATH.adjust=e.ATH.adjustLimit),e.ATH.adjustLimit=o}else e.ATH.adjust=1}function l(e){var t,n;for(cC(e.bitrate_index>=0&&e.bitrate_index<16),cC(e.mode_ext>=0&&e.mode_ext<4),e.bitrate_stereoMode_Hist[e.bitrate_index][4]++,e.bitrate_stereoMode_Hist[15][4]++,2==e.channels_out&&(e.bitrate_stereoMode_Hist[e.bitrate_index][e.mode_ext]++,e.bitrate_stereoMode_Hist[15][e.mode_ext]++),t=0;t<e.mode_gr;++t)for(n=0;n<e.channels_out;++n){var o=0|e.l3_side.tt[t][n].block_type;0!=e.l3_side.tt[t][n].mixed_block_flag&&(o=4),e.bitrate_blockType_Hist[e.bitrate_index][o]++,e.bitrate_blockType_Hist[e.bitrate_index][5]++,e.bitrate_blockType_Hist[15][o]++,e.bitrate_blockType_Hist[15][5]++}}function c(e,t){var n,o,r=e.internal_flags;if(0==r.lame_encode_frame_init){var s,a,l=iC(2014),c=iC(2014);for(r.lame_encode_frame_init=1,s=0,a=0;s<286+576*(1+r.mode_gr);++s)s<576*r.mode_gr?(l[s]=0,2==r.channels_out&&(c[s]=0)):(l[s]=t[0][a],2==r.channels_out&&(c[s]=t[1][a]),++a);for(o=0;o<r.mode_gr;o++)for(n=0;n<r.channels_out;n++)r.l3_side.tt[o][n].block_type=uC.SHORT_TYPE;i.mdct_sub48(r,l,c),cC(r.mf_size>=uC.BLKSIZE+e.framesize-uC.FFTOFFSET),cC(r.mf_size>=512+e.framesize-32)}}this.lame_encode_mp3_frame=function(u,d,f,p,h,m){var g,v=sC([2,2]);v[0][0]=new tC,v[0][1]=new tC,v[1][0]=new tC,v[1][1]=new tC;var _,b=sC([2,2]);b[0][0]=new tC,b[0][1]=new tC,b[1][0]=new tC,b[1][1]=new tC;var y,x,w,k=[null,null],S=u.internal_flags,E=aC([2,4]),T=[.5,.5],M=[[0,0],[0,0]],A=[[0,0],[0,0]];if(k[0]=d,k[1]=f,0==S.lame_encode_frame_init&&c(u,k),S.padding=0,(S.slot_lag-=S.frac_SpF)<0&&(S.slot_lag+=u.out_samplerate,S.padding=1),0!=S.psymodel){var R,C=[null,null],O=0,I=lC(2);for(w=0;w<S.mode_gr;w++){for(x=0;x<S.channels_out;x++)C[x]=k[x],O=576+576*w-uC.FFTOFFSET;if(R=u.VBR==rC.vbr_mtrh||u.VBR==rC.vbr_mt?o.L3psycho_anal_vbr(u,C,O,w,v,b,M[w],A[w],E[w],I):o.L3psycho_anal_ns(u,C,O,w,v,b,M[w],A[w],E[w],I),0!=R)return-4;for(u.mode==nC.JOINT_STEREO&&(T[w]=E[w][2]+E[w][3],T[w]>0&&(T[w]=E[w][3]/T[w])),x=0;x<S.channels_out;x++){var B=S.l3_side.tt[w][x];B.block_type=I[x],B.mixed_block_flag=0}}}else for(w=0;w<S.mode_gr;w++)for(x=0;x<S.channels_out;x++)S.l3_side.tt[w][x].block_type=uC.NORM_TYPE,S.l3_side.tt[w][x].mixed_block_flag=0,A[w][x]=M[w][x]=700;if(a(S),i.mdct_sub48(S,k[0],k[1]),S.mode_ext=uC.MPG_MD_LR_LR,u.force_ms)S.mode_ext=uC.MPG_MD_MS_LR;else if(u.mode==nC.JOINT_STEREO){var P=0,L=0;for(w=0;w<S.mode_gr;w++)for(x=0;x<S.channels_out;x++)P+=A[w][x],L+=M[w][x];if(P<=1*L){var N=S.l3_side.tt[0],j=S.l3_side.tt[S.mode_gr-1];N[0].block_type==N[1].block_type&&j[0].block_type==j[1].block_type&&(S.mode_ext=uC.MPG_MD_MS_LR)}}if(S.mode_ext==t?(_=b,y=A):(_=v,y=M),u.analysis&&null!=S.pinfo)for(w=0;w<S.mode_gr;w++)for(x=0;x<S.channels_out;x++)S.pinfo.ms_ratio[w]=S.ms_ratio[w],S.pinfo.ms_ener_ratio[w]=T[w],S.pinfo.blocktype[w][x]=S.l3_side.tt[w][x].block_type,S.pinfo.pe[w][x]=y[w][x],oC.arraycopy(S.l3_side.tt[w][x].xr,0,S.pinfo.xr[w][x],0,576),S.mode_ext==t&&(S.pinfo.ers[w][x]=S.pinfo.ers[w][x+2],oC.arraycopy(S.pinfo.energy[w][x+2],0,S.pinfo.energy[w][x],0,S.pinfo.energy[w][x].length));if(u.VBR==rC.vbr_off||u.VBR==rC.vbr_abr){var F,D;for(F=0;F<18;F++)S.nsPsy.pefirbuf[F]=S.nsPsy.pefirbuf[F+1];for(D=0,w=0;w<S.mode_gr;w++)for(x=0;x<S.channels_out;x++)D+=y[w][x];for(S.nsPsy.pefirbuf[18]=D,D=S.nsPsy.pefirbuf[9],F=0;F<9;F++)D+=(S.nsPsy.pefirbuf[F]+S.nsPsy.pefirbuf[18-F])*uC.fircoef[F];for(D=3350*S.mode_gr*S.channels_out/D,w=0;w<S.mode_gr;w++)for(x=0;x<S.channels_out;x++)y[w][x]*=D}if(S.iteration_loop.iteration_loop(u,y,T,_),n.format_bitstream(u),g=n.copy_buffer(S,p,h,m,1),u.bWriteVbrTag&&r.addVbrFrame(u),u.analysis&&null!=S.pinfo){for(x=0;x<S.channels_out;x++){var H;for(H=0;H<e;H++)S.pinfo.pcmdata[x][H]=S.pinfo.pcmdata[x][H+u.framesize];for(H=e;H<1600;H++)S.pinfo.pcmdata[x][H]=k[x][H-e]}s.set_frame_pinfo(u,_)}return l(S),g}}uC.ENCDELAY=576,uC.POSTDELAY=1152,uC.MDCTDELAY=48,uC.FFTOFFSET=224+uC.MDCTDELAY,uC.DECDELAY=528,uC.SBLIMIT=32,uC.CBANDS=64,uC.SBPSY_l=21,uC.SBPSY_s=12,uC.SBMAX_l=22,uC.SBMAX_s=13,uC.PSFB21=6,uC.PSFB12=6,uC.BLKSIZE=1024,uC.HBLKSIZE=uC.BLKSIZE/2+1,uC.BLKSIZE_s=256,uC.HBLKSIZE_s=uC.BLKSIZE_s/2+1,uC.NORM_TYPE=0,uC.START_TYPE=1,uC.SHORT_TYPE=2,uC.STOP_TYPE=3,uC.MPG_MD_LR_LR=0,uC.MPG_MD_LR_I=1,uC.MPG_MD_MS_LR=2,uC.MPG_MD_MS_I=3,uC.fircoef=[-.1039435,-.1892065,5*-.0432472,-.155915,3898045e-23,.0467745*5,.50455,.756825,.187098*5];var dC=qR.Util,fC=qR.new_float;function pC(){var e=fC(uC.BLKSIZE),t=fC(uC.BLKSIZE_s/2),n=[.9238795325112867,.3826834323650898,.9951847266721969,.0980171403295606,.9996988186962042,.02454122852291229,.9999811752826011,.006135884649154475];function o(e,t,o){var r,s,i,a=0;o<<=1;var l=t+o;r=4;do{var c,u,d,f,p,h,m;m=r>>1,f=r,p=r<<1,h=p+f,r=p<<1,s=t,i=s+m;do{w=e[s+0]-e[s+f],x=e[s+0]+e[s+f],T=e[s+p]-e[s+h],S=e[s+p]+e[s+h],e[s+p]=x-S,e[s+0]=x+S,e[s+h]=w-T,e[s+f]=w+T,w=e[i+0]-e[i+f],x=e[i+0]+e[i+f],T=dC.SQRT2*e[i+h],S=dC.SQRT2*e[i+p],e[i+p]=x-S,e[i+0]=x+S,e[i+h]=w-T,e[i+f]=w+T,i+=r,s+=r}while(s<l);for(u=n[a+0],c=n[a+1],d=1;d<m;d++){var g,v;g=1-2*c*c,v=2*c*u,s=t+d,i=t+f-d;do{var _,b,y,x,w,k,S,E,T,M;b=v*e[s+f]-g*e[i+f],_=g*e[s+f]+v*e[i+f],w=e[s+0]-_,x=e[s+0]+_,k=e[i+0]-b,y=e[i+0]+b,b=v*e[s+h]-g*e[i+h],_=g*e[s+h]+v*e[i+h],T=e[s+p]-_,S=e[s+p]+_,M=e[i+p]-b,E=e[i+p]+b,b=c*S-u*M,_=u*S+c*M,e[s+p]=x-_,e[s+0]=x+_,e[i+h]=k-b,e[i+f]=k+b,b=u*E-c*T,_=c*E+u*T,e[i+p]=y-_,e[i+0]=y+_,e[s+h]=w-b,e[s+f]=w+b,i+=r,s+=r}while(s<l);g=u,u=g*n[a+0]-c*n[a+1],c=g*n[a+1]+c*n[a+0]}a+=2}while(r<o)}var r=[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254];this.fft_short=function(e,n,s,i,a){for(var l=0;l<3;l++){var c=uC.BLKSIZE_s/2,u=65535&192*(l+1),d=uC.BLKSIZE_s/8-1;do{var f,p,h,m,g,v=255&r[d<<2];f=t[v]*i[s][a+v+u],g=t[127-v]*i[s][a+v+u+128],p=f-g,f+=g,h=t[v+64]*i[s][a+v+u+64],g=t[63-v]*i[s][a+v+u+192],m=h-g,h+=g,c-=4,n[l][c+0]=f+h,n[l][c+2]=f-h,n[l][c+1]=p+m,n[l][c+3]=p-m,f=t[v+1]*i[s][a+v+u+1],g=t[126-v]*i[s][a+v+u+129],p=f-g,f+=g,h=t[v+65]*i[s][a+v+u+65],g=t[62-v]*i[s][a+v+u+193],m=h-g,h+=g,n[l][c+uC.BLKSIZE_s/2+0]=f+h,n[l][c+uC.BLKSIZE_s/2+2]=f-h,n[l][c+uC.BLKSIZE_s/2+1]=p+m,n[l][c+uC.BLKSIZE_s/2+3]=p-m}while(--d>=0);o(n[l],c,uC.BLKSIZE_s/2)}},this.fft_long=function(t,n,s,i,a){var l=uC.BLKSIZE/8-1,c=uC.BLKSIZE/2;do{var u,d,f,p,h,m=255&r[l];u=e[m]*i[s][a+m],h=e[m+512]*i[s][a+m+512],d=u-h,u+=h,f=e[m+256]*i[s][a+m+256],h=e[m+768]*i[s][a+m+768],p=f-h,f+=h,c-=4,n[c+0]=u+f,n[c+2]=u-f,n[c+1]=d+p,n[c+3]=d-p,u=e[m+1]*i[s][a+m+1],h=e[m+513]*i[s][a+m+513],d=u-h,u+=h,f=e[m+257]*i[s][a+m+257],h=e[m+769]*i[s][a+m+769],p=f-h,f+=h,n[c+uC.BLKSIZE/2+0]=u+f,n[c+uC.BLKSIZE/2+2]=u-f,n[c+uC.BLKSIZE/2+1]=d+p,n[c+uC.BLKSIZE/2+3]=d-p}while(--l>=0);o(n,c,uC.BLKSIZE/2)},this.init_fft=function(n){for(var o=0;o<uC.BLKSIZE;o++)e[o]=.42-.5*Math.cos(2*Math.PI*(o+.5)/uC.BLKSIZE)+.08*Math.cos(4*Math.PI*(o+.5)/uC.BLKSIZE);for(o=0;o<uC.BLKSIZE_s/2;o++)t[o]=.5*(1-Math.cos(2*Math.PI*(o+.5)/uC.BLKSIZE_s))}}var hC=qR.VbrMode,mC=qR.Float,gC=qR.ShortBlock,vC=qR.Util,_C=qR.Arrays,bC=qR.new_float,yC=qR.new_float_n,xC=qR.new_int,wC=qR.assert;function kC(){var e=new pC,t=2.302585092994046,n=2,o=16,r=2,s=16,i=.34,a=1/217621504/(uC.BLKSIZE/2),l=.01,c=.8,u=.6,d=.3,f=3.5,p=21,h=.2302585093;function m(e){return e}function g(e,t){for(var n=0,o=0;o<uC.BLKSIZE/2;++o)n+=e[o]*t.ATH.eql_w[o];return n*=a,n}function v(t,n,o,r,s,i,a,l,c,u,d){var f=t.internal_flags;if(c<2)e.fft_long(f,r[s],c,u,d),e.fft_short(f,i[a],c,u,d);else if(2==c){for(var p=uC.BLKSIZE-1;p>=0;--p){var h=r[s+0][p],v=r[s+1][p];r[s+0][p]=(h+v)*vC.SQRT2*.5,r[s+1][p]=(h-v)*vC.SQRT2*.5}for(var _=2;_>=0;--_)for(p=uC.BLKSIZE_s-1;p>=0;--p){h=i[a+0][_][p],v=i[a+1][_][p];i[a+0][_][p]=(h+v)*vC.SQRT2*.5,i[a+1][_][p]=(h-v)*vC.SQRT2*.5}}n[0]=m(r[s+0][0]),n[0]*=n[0];for(p=uC.BLKSIZE/2-1;p>=0;--p){var b=r[s+0][uC.BLKSIZE/2-p],y=r[s+0][uC.BLKSIZE/2+p];n[uC.BLKSIZE/2-p]=m(.5*(b*b+y*y))}for(_=2;_>=0;--_){o[_][0]=i[a+0][_][0],o[_][0]*=o[_][0];for(p=uC.BLKSIZE_s/2-1;p>=0;--p){b=i[a+0][_][uC.BLKSIZE_s/2-p],y=i[a+0][_][uC.BLKSIZE_s/2+p];o[_][uC.BLKSIZE_s/2-p]=m(.5*(b*b+y*y))}}var x=0;for(p=11;p<uC.HBLKSIZE;p++)x+=n[p];if(f.tot_ener[c]=x,t.analysis){for(p=0;p<uC.HBLKSIZE;p++)f.pinfo.energy[l][c][p]=f.pinfo.energy_save[c][p],f.pinfo.energy_save[c][p]=n[p];f.pinfo.pe[l][c]=f.pe[c]}2==t.athaa_loudapprox&&c<2&&(f.loudness_sq[l][c]=f.loudness_sq_save[c],f.loudness_sq_save[c]=g(n,f))}var _,b,y,x=8,w=23,k=15,S=[1,.79433,.63096,.63096,.63096,.63096,.63096,.25119,.11749];function E(){_=Math.pow(10,(x+1)/16),b=Math.pow(10,(w+1)/16),y=Math.pow(10,k/10)}var T=[3.3246*3.3246,3.23837*3.23837,9.9500500969,9.0247369744,8.1854926609,7.0440875649,2.46209*2.46209,2.284*2.284,4.4892710641,1.96552*1.96552,1.82335*1.82335,1.69146*1.69146,2.4621061921,2.1508568964,1.37074*1.37074,1.31036*1.31036,1.5691069696,1.4555939904,1.16203*1.16203,1.2715945225,1.09428*1.09428,1.0659*1.0659,1.0779838276,1.0382591025,1],M=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],A=[5.5396212496,2.29259*2.29259,4.9868695969,2.12675*2.12675,2.02545*2.02545,1.87894*1.87894,1.74303*1.74303,1.61695*1.61695,2.2499700001,1.39148*1.39148,1.29083*1.29083,1.19746*1.19746,1.2339655056,1.0779838276];function R(e,t,n,o,r,s){var i;if(t>e){if(!(t<e*b))return e+t;i=t/e}else{if(e>=t*b)return e+t;i=e/t}if(e+=t,o+3<=6){if(i>=_)return e;var a=0|vC.FAST_LOG10_X(i,16);return e*M[a]}var l,c;a=0|vC.FAST_LOG10_X(i,16);return t=0!=s?r.ATH.cb_s[n]*r.ATH.adjust:r.ATH.cb_l[n]*r.ATH.adjust,e<y*t?e>t?(l=1,a<=13&&(l=A[a]),c=vC.FAST_LOG10_X(e/t,10/15),e*((T[a]-l)*c+l)):a>13?e:e*A[a]:e*T[a]}var C=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1];function O(e,t,n){var o;if(e<0&&(e=0),t<0&&(t=0),e<=0)return t;if(t<=0)return e;if(o=t>e?t/e:e/t,n>=-2&&n<=2){if(o>=_)return e+t;var r=0|vC.FAST_LOG10_X(o,16);return(e+t)*C[r]}return o<b?e+t:(e<t&&(e=t),e)}function I(e,t){var n=e.internal_flags;if(n.channels_out>1){for(var o=0;o<uC.SBMAX_l;o++){var r=n.thm[0].l[o],s=n.thm[1].l[o];n.thm[0].l[o]+=s*t,n.thm[1].l[o]+=r*t}for(o=0;o<uC.SBMAX_s;o++)for(var i=0;i<3;i++){r=n.thm[0].s[o][i],s=n.thm[1].s[o][i];n.thm[0].s[o][i]+=s*t,n.thm[1].s[o][i]+=r*t}}}function B(e){for(var t=0;t<uC.SBMAX_l;t++)if(!(e.thm[0].l[t]>1.58*e.thm[1].l[t]||e.thm[1].l[t]>1.58*e.thm[0].l[t])){var n=e.mld_l[t]*e.en[3].l[t],o=Math.max(e.thm[2].l[t],Math.min(e.thm[3].l[t],n));n=e.mld_l[t]*e.en[2].l[t];var r=Math.max(e.thm[3].l[t],Math.min(e.thm[2].l[t],n));e.thm[2].l[t]=o,e.thm[3].l[t]=r}for(t=0;t<uC.SBMAX_s;t++)for(var s=0;s<3;s++)if(!(e.thm[0].s[t][s]>1.58*e.thm[1].s[t][s]||e.thm[1].s[t][s]>1.58*e.thm[0].s[t][s])){n=e.mld_s[t]*e.en[3].s[t][s],o=Math.max(e.thm[2].s[t][s],Math.min(e.thm[3].s[t][s],n));n=e.mld_s[t]*e.en[2].s[t][s];r=Math.max(e.thm[3].s[t][s],Math.min(e.thm[2].s[t][s],n));e.thm[2].s[t][s]=o,e.thm[3].s[t][s]=r}}function P(e,t,n){var o=t,r=Math.pow(10,n);t*=2,o*=2;for(var s=0;s<uC.SBMAX_l;s++){if(d=e.ATH.cb_l[e.bm_l[s]]*r,l=Math.min(Math.max(e.thm[0].l[s],d),Math.max(e.thm[1].l[s],d)),c=Math.max(e.thm[2].l[s],d),u=Math.max(e.thm[3].l[s],d),l*t<c+u){var i=l*o/(c+u);c*=i,u*=i}e.thm[2].l[s]=Math.min(c,e.thm[2].l[s]),e.thm[3].l[s]=Math.min(u,e.thm[3].l[s])}r*=uC.BLKSIZE_s/uC.BLKSIZE;for(s=0;s<uC.SBMAX_s;s++)for(var a=0;a<3;a++){var l,c,u,d;if(d=e.ATH.cb_s[e.bm_s[s]]*r,l=Math.min(Math.max(e.thm[0].s[s][a],d),Math.max(e.thm[1].s[s][a],d)),c=Math.max(e.thm[2].s[s][a],d),u=Math.max(e.thm[3].s[s][a],d),l*t<c+u){i=l*t/(c+u);c*=i,u*=i}e.thm[2].s[s][a]=Math.min(e.thm[2].s[s][a],c),e.thm[3].s[s][a]=Math.min(e.thm[3].s[s][a],u)}}function L(e,t,n,o,r){var s,i,a=0,l=0;for(s=i=0;s<uC.SBMAX_s;++i,++s){var c=e.bo_s[s],u=e.npart_s,d=c<u?c:u;while(i<d)wC(t[i]>=0),wC(n[i]>=0),a+=t[i],l+=n[i],i++;if(e.en[o].s[s][r]=a,e.thm[o].s[s][r]=l,i>=u){++s;break}wC(t[i]>=0),wC(n[i]>=0);var f=e.PSY.bo_s_weight[s],p=1-f;a=f*t[i],l=f*n[i],e.en[o].s[s][r]+=a,e.thm[o].s[s][r]+=l,a=p*t[i],l=p*n[i]}for(;s<uC.SBMAX_s;++s)e.en[o].s[s][r]=0,e.thm[o].s[s][r]=0}function N(e,t,n,o){var r,s,i=0,a=0;for(r=s=0;r<uC.SBMAX_l;++s,++r){var l=e.bo_l[r],c=e.npart_l,u=l<c?l:c;while(s<u)wC(t[s]>=0),wC(n[s]>=0),i+=t[s],a+=n[s],s++;if(e.en[o].l[r]=i,e.thm[o].l[r]=a,s>=c){++r;break}wC(t[s]>=0),wC(n[s]>=0);var d=e.PSY.bo_l_weight[r],f=1-d;i=d*t[s],a=d*n[s],e.en[o].l[r]+=i,e.thm[o].l[r]+=a,i=f*t[s],a=f*n[s]}for(;r<uC.SBMAX_l;++r)e.en[o].l[r]=0,e.thm[o].l[r]=0}function j(e,t,n,o,i,a){var l,c,u=e.internal_flags;for(c=l=0;c<u.npart_s;++c){for(var d=0,f=u.numlines_s[c],p=0;p<f;++p,++l){var h=t[a][l];d+=h}n[c]=d}for(wC(c==u.npart_s),l=c=0;c<u.npart_s;c++){var m=u.s3ind_s[c][0],g=u.s3_ss[l++]*n[m];++m;while(m<=u.s3ind_s[c][1])g+=u.s3_ss[l]*n[m],++l,++m;var v=r*u.nb_s1[i][c];if(o[c]=Math.min(g,v),u.blocktype_old[1&i]==uC.SHORT_TYPE){v=s*u.nb_s2[i][c];var _=o[c];o[c]=Math.min(v,_)}u.nb_s2[i][c]=u.nb_s1[i][c],u.nb_s1[i][c]=g,wC(o[c]>=0)}for(;c<=uC.CBANDS;++c)n[c]=0,o[c]=0}function F(e,t,n,o){var r=e.internal_flags;e.short_blocks!=gC.short_block_coupled||0!=t[0]&&0!=t[1]||(t[0]=t[1]=0);for(var s=0;s<r.channels_out;s++)o[s]=uC.NORM_TYPE,e.short_blocks==gC.short_block_dispensed&&(t[s]=1),e.short_blocks==gC.short_block_forced&&(t[s]=0),0!=t[s]?(wC(r.blocktype_old[s]!=uC.START_TYPE),r.blocktype_old[s]==uC.SHORT_TYPE&&(o[s]=uC.STOP_TYPE)):(o[s]=uC.SHORT_TYPE,r.blocktype_old[s]==uC.NORM_TYPE&&(r.blocktype_old[s]=uC.START_TYPE),r.blocktype_old[s]==uC.STOP_TYPE&&(r.blocktype_old[s]=uC.SHORT_TYPE)),n[s]=r.blocktype_old[s],r.blocktype_old[s]=o[s]}function D(e,t,n){return n>=1?e:n<=0?t:t>0?Math.pow(e/t,n)*t:0}var H=[11.8,13.6,17.2,32,46.5,51.3,57.5,67.1,71.5,84.6,97.6,130];function U(e,n){for(var o=309.07,r=0;r<uC.SBMAX_s-1;r++)for(var s=0;s<3;s++){var i=e.thm.s[r][s];if(i>0){var a=i*n,l=e.en.s[r][s];l>a&&(o+=l>1e10*a?H[r]*(10*t):H[r]*vC.FAST_LOG10(l/a))}}return o}var V=[6.8,5.8,5.8,6.4,6.5,9.9,12.1,14.4,15,18.9,21.6,26.9,34.2,40.2,46.8,56.5,60.7,73.9,85.7,93.4,126.1];function $(e,n){for(var o=281.0575,r=0;r<uC.SBMAX_l-1;r++){var s=e.thm.l[r];if(s>0){var i=s*n,a=e.en.l[r];a>i&&(o+=a>1e10*i?V[r]*(10*t):V[r]*vC.FAST_LOG10(a/i))}}return o}function z(e,t,n,o,r){var s,i;for(s=i=0;s<e.npart_l;++s){var a,l=0,c=0;for(a=0;a<e.numlines_l[s];++a,++i){var u=t[i];l+=u,c<u&&(c=u)}n[s]=l,o[s]=c,r[s]=l*e.rnumlines_l[s],wC(e.rnumlines_l[s]>=0),wC(n[s]>=0),wC(o[s]>=0),wC(r[s]>=0)}}function q(e,t,n,o){var r=S.length-1,s=0,i=n[s]+n[s+1];if(i>0){var a=t[s];a<t[s+1]&&(a=t[s+1]),wC(e.numlines_l[s]+e.numlines_l[s+1]-1>0),i=20*(2*a-i)/(i*(e.numlines_l[s]+e.numlines_l[s+1]-1));var l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;for(s=1;s<e.npart_l-1;s++)if(i=n[s-1]+n[s]+n[s+1],i>0){a=t[s-1];a<t[s]&&(a=t[s]),a<t[s+1]&&(a=t[s+1]),wC(e.numlines_l[s-1]+e.numlines_l[s]+e.numlines_l[s+1]-1>0),i=20*(3*a-i)/(i*(e.numlines_l[s-1]+e.numlines_l[s]+e.numlines_l[s+1]-1));l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;if(wC(s==e.npart_l-1),i=n[s-1]+n[s],i>0){a=t[s-1];a<t[s]&&(a=t[s]),wC(e.numlines_l[s-1]+e.numlines_l[s]-1>0),i=20*(2*a-i)/(i*(e.numlines_l[s-1]+e.numlines_l[s]-1));l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;wC(s==e.npart_l-1)}var Y=[-1730326e-23,-.01703172,-1349528e-23,.0418072,-673278e-22,-.0876324,-30835e-21,.1863476,-1104424e-22,-.627638];function X(t,n,o,r,s,i,a,l){var c=t.internal_flags;if(r<2)e.fft_long(c,a[l],r,n,o);else if(2==r)for(var u=uC.BLKSIZE-1;u>=0;--u){var d=a[l+0][u],f=a[l+1][u];a[l+0][u]=(d+f)*vC.SQRT2*.5,a[l+1][u]=(d-f)*vC.SQRT2*.5}i[0]=m(a[l+0][0]),i[0]*=i[0];for(u=uC.BLKSIZE/2-1;u>=0;--u){var p=a[l+0][uC.BLKSIZE/2-u],h=a[l+0][uC.BLKSIZE/2+u];i[uC.BLKSIZE/2-u]=m(.5*(p*p+h*h))}var g=0;for(u=11;u<uC.HBLKSIZE;u++)g+=i[u];if(c.tot_ener[r]=g,t.analysis){for(u=0;u<uC.HBLKSIZE;u++)c.pinfo.energy[s][r][u]=c.pinfo.energy_save[r][u],c.pinfo.energy_save[r][u]=i[u];c.pinfo.pe[s][r]=c.pe[r]}}function G(t,n,o,r,s,i,a,l){var c=t.internal_flags;if(0==s&&r<2&&e.fft_short(c,a[l],r,n,o),2==r)for(var u=uC.BLKSIZE_s-1;u>=0;--u){var d=a[l+0][s][u],f=a[l+1][s][u];a[l+0][s][u]=(d+f)*vC.SQRT2*.5,a[l+1][s][u]=(d-f)*vC.SQRT2*.5}i[s][0]=a[l+0][s][0],i[s][0]*=i[s][0];for(u=uC.BLKSIZE_s/2-1;u>=0;--u){var p=a[l+0][s][uC.BLKSIZE_s/2-u],h=a[l+0][s][uC.BLKSIZE_s/2+u];i[s][uC.BLKSIZE_s/2-u]=m(.5*(p*p+h*h))}}function W(e,t,n,o){var r=e.internal_flags;2==e.athaa_loudapprox&&n<2&&(r.loudness_sq[t][n]=r.loudness_sq_save[n],r.loudness_sq_save[n]=g(o,r))}this.L3psycho_anal_ns=function(e,t,r,s,i,a,l,f,h,m){var g,_,b,y,x,w,k,E,T,M,A=e.internal_flags,C=yC([2,uC.BLKSIZE]),O=yC([2,3,uC.BLKSIZE_s]),H=bC(uC.CBANDS+1),V=bC(uC.CBANDS+1),X=bC(uC.CBANDS+2),G=xC(2),W=xC(2),K=yC([2,576]),Z=xC(uC.CBANDS+2),Q=xC(uC.CBANDS+2);for(_C.fill(Q,0),g=A.channels_out,e.mode==nC.JOINT_STEREO&&(g=4),T=e.VBR==hC.vbr_off?0==A.ResvMax?0:A.ResvSize/A.ResvMax*.5:e.VBR==hC.vbr_rh||e.VBR==hC.vbr_mtrh||e.VBR==hC.vbr_mt?.6:1,_=0;_<A.channels_out;_++){var J=t[_],ee=r+576-350-p+192;for(y=0;y<576;y++){var te,ne;for(te=J[ee+y+10],ne=0,x=0;x<(p-1)/2-1;x+=2)te+=Y[x]*(J[ee+y+x]+J[ee+y+p-x]),ne+=Y[x+1]*(J[ee+y+x+1]+J[ee+y+p-x-1]);K[_][y]=te+ne}i[s][_].en.assign(A.en[_]),i[s][_].thm.assign(A.thm[_]),g>2&&(a[s][_].en.assign(A.en[_+2]),a[s][_].thm.assign(A.thm[_+2]))}for(_=0;_<g;_++){var oe,re,se,ie=bC(12),ae=[0,0,0,0],le=bC(12),ce=1,ue=bC(uC.CBANDS),de=bC(uC.CBANDS),fe=[0,0,0,0],pe=bC(uC.HBLKSIZE),he=yC([3,uC.HBLKSIZE_s]);for(wC(A.npart_s<=uC.CBANDS),wC(A.npart_l<=uC.CBANDS),y=0;y<3;y++)ie[y]=A.nsPsy.last_en_subshort[_][y+6],wC(A.nsPsy.last_en_subshort[_][y+4]>0),le[y]=ie[y]/A.nsPsy.last_en_subshort[_][y+4],ae[0]+=ie[y];if(2==_)for(y=0;y<576;y++){var me,ge;me=K[0][y],ge=K[1][y],K[0][y]=me+ge,K[1][y]=me-ge}var ve=K[1&_],_e=0;for(y=0;y<9;y++){for(var be=_e+64,ye=1;_e<be;_e++)ye<Math.abs(ve[_e])&&(ye=Math.abs(ve[_e]));A.nsPsy.last_en_subshort[_][y]=ie[y+3]=ye,ae[1+y/3]+=ye,ye>ie[y+3-2]?(wC(ie[y+3-2]>0),ye/=ie[y+3-2]):ye=ie[y+3-2]>10*ye?ie[y+3-2]/(10*ye):0,le[y+3]=ye}if(e.analysis){var xe=le[0];for(y=1;y<12;y++)xe<le[y]&&(xe=le[y]);A.pinfo.ers[s][_]=A.pinfo.ers_save[_],A.pinfo.ers_save[_]=xe}for(se=3==_?A.nsPsy.attackthre_s:A.nsPsy.attackthre,y=0;y<12;y++)0==fe[y/3]&&le[y]>se&&(fe[y/3]=y%3+1);for(y=1;y<4;y++){var we;ae[y-1]>ae[y]?(wC(ae[y]>0),we=ae[y-1]/ae[y]):(wC(ae[y-1]>0),we=ae[y]/ae[y-1]),we<1.7&&(fe[y]=0,1==y&&(fe[0]=0))}for(0!=fe[0]&&0!=A.nsPsy.lastAttacks[_]&&(fe[0]=0),3!=A.nsPsy.lastAttacks[_]&&fe[0]+fe[1]+fe[2]+fe[3]==0||(ce=0,0!=fe[1]&&0!=fe[0]&&(fe[1]=0),0!=fe[2]&&0!=fe[1]&&(fe[2]=0),0!=fe[3]&&0!=fe[2]&&(fe[3]=0)),_<2?W[_]=ce:0==ce&&(W[0]=W[1]=0),h[_]=A.tot_ener[_],re=O,oe=C,v(e,pe,he,oe,1&_,re,1&_,s,_,t,r),z(A,pe,H,ue,de),q(A,ue,de,Z),E=0;E<3;E++){var ke,Se;for(j(e,he,V,X,_,E),L(A,V,X,_,E),k=0;k<uC.SBMAX_s;k++){if(Se=A.thm[_].s[k][E],Se*=c,fe[E]>=2||1==fe[E+1]){var Ee=0!=E?E-1:2;ye=D(A.thm[_].s[k][Ee],Se,u*T);Se=Math.min(Se,ye)}if(1==fe[E]){Ee=0!=E?E-1:2,ye=D(A.thm[_].s[k][Ee],Se,d*T);Se=Math.min(Se,ye)}else if(0!=E&&3==fe[E-1]||0==E&&3==A.nsPsy.lastAttacks[_]){Ee=2!=E?E+1:0,ye=D(A.thm[_].s[k][Ee],Se,d*T);Se=Math.min(Se,ye)}ke=ie[3*E+3]+ie[3*E+4]+ie[3*E+5],6*ie[3*E+5]<ke&&(Se*=.5,6*ie[3*E+4]<ke&&(Se*=.5)),A.thm[_].s[k][E]=Se}}for(A.nsPsy.lastAttacks[_]=fe[2],w=0,b=0;b<A.npart_l;b++){var Te=A.s3ind[b][0],Me=H[Te]*S[Z[Te]],Ae=A.s3_ll[w++]*Me;while(++Te<=A.s3ind[b][1])Me=H[Te]*S[Z[Te]],Ae=R(Ae,A.s3_ll[w++]*Me,Te,Te-b,A,0);Ae*=.158489319246111,A.blocktype_old[1&_]==uC.SHORT_TYPE?X[b]=Ae:X[b]=D(Math.min(Ae,Math.min(n*A.nb_1[_][b],o*A.nb_2[_][b])),Ae,T),A.nb_2[_][b]=A.nb_1[_][b],A.nb_1[_][b]=Ae}for(;b<=uC.CBANDS;++b)H[b]=0,X[b]=0;N(A,H,X,_)}(e.mode!=nC.STEREO&&e.mode!=nC.JOINT_STEREO||e.interChRatio>0&&I(e,e.interChRatio),e.mode==nC.JOINT_STEREO)&&(B(A),M=e.msfix,Math.abs(M)>0&&P(A,M,e.ATHlower*A.ATH.adjust));for(F(e,W,m,G),_=0;_<g;_++){var Re,Ce,Oe,Ie=0;_>1?(Re=f,Ie=-2,Ce=uC.NORM_TYPE,m[0]!=uC.SHORT_TYPE&&m[1]!=uC.SHORT_TYPE||(Ce=uC.SHORT_TYPE),Oe=a[s][_-2]):(Re=l,Ie=0,Ce=m[_],Oe=i[s][_]),Ce==uC.SHORT_TYPE?Re[Ie+_]=U(Oe,A.masking_lower):Re[Ie+_]=$(Oe,A.masking_lower),e.analysis&&(A.pinfo.pe[s][_]=Re[Ie+_])}return 0};var K=[-1730326e-23,-.01703172,-1349528e-23,.0418072,-673278e-22,-.0876324,-30835e-21,.1863476,-1104424e-22,-.627638];function Z(e,t,n,o,r,s,i,a,l,c){for(var u=yC([2,576]),d=e.internal_flags,f=d.channels_out,h=e.mode==nC.JOINT_STEREO?4:f,m=0;m<f;m++){firbuf=t[m];for(var g=n+576-350-p+192,v=0;v<576;v++){var _,b;_=firbuf[g+v+10],b=0;for(var y=0;y<(p-1)/2-1;y+=2)_+=K[y]*(firbuf[g+v+y]+firbuf[g+v+p-y]),b+=K[y+1]*(firbuf[g+v+y+1]+firbuf[g+v+p-y-1]);u[m][v]=_+b}r[o][m].en.assign(d.en[m]),r[o][m].thm.assign(d.thm[m]),h>2&&(s[o][m].en.assign(d.en[m+2]),s[o][m].thm.assign(d.thm[m+2]))}for(m=0;m<h;m++){var x=bC(12),w=bC(12),k=[0,0,0,0],S=u[1&m],E=0,T=3==m?d.nsPsy.attackthre_s:d.nsPsy.attackthre,M=1;if(2==m)for(v=0,y=576;y>0;++v,--y){var A=u[0][v],R=u[1][v];u[0][v]=A+R,u[1][v]=A-R}for(v=0;v<3;v++)w[v]=d.nsPsy.last_en_subshort[m][v+6],wC(d.nsPsy.last_en_subshort[m][v+4]>0),x[v]=w[v]/d.nsPsy.last_en_subshort[m][v+4],k[0]+=w[v];for(v=0;v<9;v++){for(var C=E+64,O=1;E<C;E++)O<Math.abs(S[E])&&(O=Math.abs(S[E]));d.nsPsy.last_en_subshort[m][v]=w[v+3]=O,k[1+v/3]+=O,O>w[v+3-2]?(wC(w[v+3-2]>0),O/=w[v+3-2]):O=w[v+3-2]>10*O?w[v+3-2]/(10*O):0,x[v+3]=O}for(v=0;v<3;++v){var I=w[3*v+3]+w[3*v+4]+w[3*v+5],B=1;6*w[3*v+5]<I&&(B*=.5,6*w[3*v+4]<I&&(B*=.5)),a[m][v]=B}if(e.analysis){var P=x[0];for(v=1;v<12;v++)P<x[v]&&(P=x[v]);d.pinfo.ers[o][m]=d.pinfo.ers_save[m],d.pinfo.ers_save[m]=P}for(v=0;v<12;v++)0==l[m][v/3]&&x[v]>T&&(l[m][v/3]=v%3+1);for(v=1;v<4;v++){var L=k[v-1],N=k[v],j=Math.max(L,N);j<4e4&&L<1.7*N&&N<1.7*L&&(1==v&&l[m][0]<=l[m][v]&&(l[m][0]=0),l[m][v]=0)}l[m][0]<=d.nsPsy.lastAttacks[m]&&(l[m][0]=0),3!=d.nsPsy.lastAttacks[m]&&l[m][0]+l[m][1]+l[m][2]+l[m][3]==0||(M=0,0!=l[m][1]&&0!=l[m][0]&&(l[m][1]=0),0!=l[m][2]&&0!=l[m][1]&&(l[m][2]=0),0!=l[m][3]&&0!=l[m][2]&&(l[m][3]=0)),m<2?c[m]=M:0==M&&(c[0]=c[1]=0),i[m]=d.tot_ener[m]}}function Q(e,t,n){if(0==n)for(var o=0;o<e.npart_s;o++)e.nb_s2[t][o]=e.nb_s1[t][o],e.nb_s1[t][o]=0}function J(e,t){for(var n=0;n<e.npart_l;n++)e.nb_2[t][n]=e.nb_1[t][n],e.nb_1[t][n]=0}function ee(e,t,n,o){var r=S.length-1,s=0,i=n[s]+n[s+1];if(i>0){var a=t[s];a<t[s+1]&&(a=t[s+1]),wC(e.numlines_s[s]+e.numlines_s[s+1]-1>0),i=20*(2*a-i)/(i*(e.numlines_s[s]+e.numlines_s[s+1]-1));var l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;for(s=1;s<e.npart_s-1;s++)if(i=n[s-1]+n[s]+n[s+1],wC(s+1<e.npart_s),i>0){a=t[s-1];a<t[s]&&(a=t[s]),a<t[s+1]&&(a=t[s+1]),wC(e.numlines_s[s-1]+e.numlines_s[s]+e.numlines_s[s+1]-1>0),i=20*(3*a-i)/(i*(e.numlines_s[s-1]+e.numlines_s[s]+e.numlines_s[s+1]-1));l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;if(wC(s==e.npart_s-1),i=n[s-1]+n[s],i>0){a=t[s-1];a<t[s]&&(a=t[s]),wC(e.numlines_s[s-1]+e.numlines_s[s]-1>0),i=20*(2*a-i)/(i*(e.numlines_s[s-1]+e.numlines_s[s]-1));l=0|i;l>r&&(l=r),o[s]=l}else o[s]=0;wC(s==e.npart_s-1)}function te(e,t,n,o,r,s){var i,a,l,c=e.internal_flags,u=new float[uC.CBANDS],d=bC(uC.CBANDS),f=new int[uC.CBANDS];for(l=a=0;l<c.npart_s;++l){var p=0,h=0,m=c.numlines_s[l];for(i=0;i<m;++i,++a){var g=t[s][a];p+=g,h<g&&(h=g)}n[l]=p,u[l]=h,d[l]=p/m,wC(d[l]>=0)}for(wC(l==c.npart_s);l<uC.CBANDS;++l)u[l]=0,d[l]=0;for(ee(c,u,d,f),a=l=0;l<c.npart_s;l++){var v,_,b,y,x,w=c.s3ind_s[l][0],k=c.s3ind_s[l][1];v=f[w],_=1,y=c.s3_ss[a]*n[w]*S[f[w]],++a,++w;while(w<=k)v+=f[w],_+=1,b=c.s3_ss[a]*n[w]*S[f[w]],y=O(y,b,w-l),++a,++w;v=(1+2*v)/(2*_),x=.5*S[v],y*=x,o[l]=y,c.nb_s2[r][l]=c.nb_s1[r][l],c.nb_s1[r][l]=y,b=u[l],b*=c.minval_s[l],b*=x,o[l]>b&&(o[l]=b),c.masking_lower>1&&(o[l]*=c.masking_lower),o[l]>n[l]&&(o[l]=n[l]),c.masking_lower<1&&(o[l]*=c.masking_lower),wC(o[l]>=0)}for(;l<uC.CBANDS;++l)n[l]=0,o[l]=0}function ne(e,t,r,s,i){var a,l=bC(uC.CBANDS),c=bC(uC.CBANDS),u=xC(uC.CBANDS+2);z(e,t,r,l,c),q(e,l,c,u);var f=0;for(a=0;a<e.npart_l;a++){var p,h,m,g,v=e.s3ind[a][0],_=e.s3ind[a][1],b=0,y=0;b=u[v],y+=1,h=e.s3_ll[f]*r[v]*S[u[v]],++f,++v;while(v<=_)b+=u[v],y+=1,p=e.s3_ll[f]*r[v]*S[u[v]],g=O(h,p,v-a),h=g,++f,++v;if(b=(1+2*b)/(2*y),m=.5*S[b],h*=m,e.blocktype_old[1&i]==uC.SHORT_TYPE){var x=n*e.nb_1[i][a];s[a]=x>0?Math.min(h,x):Math.min(h,r[a]*d)}else{var w=o*e.nb_2[i][a],k=n*e.nb_1[i][a];w<=0&&(w=h),k<=0&&(k=h),x=e.blocktype_old[1&i]==uC.NORM_TYPE?Math.min(k,w):k,s[a]=Math.min(h,x)}e.nb_2[i][a]=e.nb_1[i][a],e.nb_1[i][a]=h,p=l[a],p*=e.minval_l[a],p*=m,s[a]>p&&(s[a]=p),e.masking_lower>1&&(s[a]*=e.masking_lower),s[a]>r[a]&&(s[a]=r[a]),e.masking_lower<1&&(s[a]*=e.masking_lower),wC(s[a]>=0)}for(;a<uC.CBANDS;++a)r[a]=0,s[a]=0}function oe(e,t){var n=e.internal_flags;e.short_blocks!=gC.short_block_coupled||0!=t[0]&&0!=t[1]||(t[0]=t[1]=0);for(var o=0;o<n.channels_out;o++)e.short_blocks==gC.short_block_dispensed&&(t[o]=1),e.short_blocks==gC.short_block_forced&&(t[o]=0)}function re(e,t,n){for(var o=e.internal_flags,r=0;r<o.channels_out;r++){var s=uC.NORM_TYPE;0!=t[r]?(wC(o.blocktype_old[r]!=uC.START_TYPE),o.blocktype_old[r]==uC.SHORT_TYPE&&(s=uC.STOP_TYPE)):(s=uC.SHORT_TYPE,o.blocktype_old[r]==uC.NORM_TYPE&&(o.blocktype_old[r]=uC.START_TYPE),o.blocktype_old[r]==uC.STOP_TYPE&&(o.blocktype_old[r]=uC.SHORT_TYPE)),n[r]=o.blocktype_old[r],o.blocktype_old[r]=s}}function se(e,t,n,o,r,s,i){for(var a,l,c=2*s,u=s>0?Math.pow(10,r):1,d=0;d<i;++d){var f=e[2][d],p=e[3][d],h=t[0][d],m=t[1][d],g=t[2][d],v=t[3][d];if(h<=1.58*m&&m<=1.58*h){var _=n[d]*p,b=n[d]*f;l=Math.max(g,Math.min(v,_)),a=Math.max(v,Math.min(g,b))}else l=g,a=v;if(s>0){var y,x,w=o[d]*u;if(y=Math.min(Math.max(h,w),Math.max(m,w)),g=Math.max(l,w),v=Math.max(a,w),x=g+v,x>0&&y*c<x){var k=y*c/x;g*=k,v*=k}l=Math.min(g,l),a=Math.min(v,a)}l>f&&(l=f),a>p&&(a=p),t[2][d]=l,t[3][d]=a}}function ie(e,t){var n,o=e;return n=o>=0?27*-o:o*t,n<=-72?0:Math.exp(n*h)}function ae(e){var t=0,n=0,o=0;for(o=0;ie(o,e)>1e-20;o-=1);r=o,s=0;while(Math.abs(s-r)>1e-12)o=(s+r)/2,ie(o,e)>0?s=o:r=o;t=r;var r,s;o=0;for(o=0;ie(o,e)>1e-20;o+=1);r=0,s=o;while(Math.abs(s-r)>1e-12)o=(s+r)/2,ie(o,e)>0?r=o:s=o;n=s;var i,a=0,l=1e3;for(i=0;i<=l;++i){o=t+i*(n-t)/l;var c=ie(o,e);a+=c}var u=(l+1)/(a*(n-t));return u}function le(e){var t,n,o,r;return t=e,t*=t>=0?3:1.5,t>=.5&&t<=2.5?(r=t-.5,n=8*(r*r-2*r)):n=0,t+=.474,o=15.811389+7.5*t-17.5*Math.sqrt(1+t*t),o<=-60?0:(t=Math.exp((n+o)*h),t/=.6609193,t)}function ce(e){return e<0&&(e=0),e*=.001,13*Math.atan(.76*e)+3.5*Math.atan(e*e/56.25)}function ue(e,t,n,o,r,s,a,l,c,u,d,f){var p,h=bC(uC.CBANDS+1),m=l/(f>15?1152:384),g=xC(uC.HBLKSIZE);l/=c;var v=0,_=0;for(p=0;p<uC.CBANDS;p++){var b;for(A=ce(l*v),h[p]=l*v,b=v;ce(l*b)-A<i&&b<=c/2;b++);e[p]=b-v,_=p+1;while(v<b)g[v++]=p;if(v>c/2){v=c/2,++p;break}}h[p]=l*v;for(var y=0;y<f;y++){var x,w,k,S,E;k=u[y],S=u[y+1],x=0|Math.floor(.5+d*(k-.5)),x<0&&(x=0),w=0|Math.floor(.5+d*(S-.5)),w>c/2&&(w=c/2),n[y]=(g[x]+g[w])/2,t[y]=g[w];var T=m*S;a[y]=(T-h[t[y]])/(h[t[y]+1]-h[t[y]]),a[y]<0?a[y]=0:a[y]>1&&(a[y]=1),E=ce(l*u[y]*d),E=Math.min(E,15.5)/15.5,s[y]=Math.pow(10,1.25*(1-Math.cos(Math.PI*E))-2.5)}v=0;for(var M=0;M<_;M++){var A,R,C=e[M];A=ce(l*v),R=ce(l*(v+C-1)),o[M]=.5*(A+R),A=ce(l*(v-.5)),R=ce(l*(v+C-.5)),r[M]=R-A,v+=C}return _}function de(e,t,n,o,r,s){var i,a=yC([uC.CBANDS,uC.CBANDS]),l=0;if(s)for(var c=0;c<t;c++)for(i=0;i<t;i++){var u=le(n[c]-n[i])*o[i];a[c][i]=u*r[c]}else for(i=0;i<t;i++){var d=15+Math.min(21/n[i],12),f=ae(d);for(c=0;c<t;c++){u=f*ie(n[c]-n[i],d)*o[i];a[c][i]=u*r[c]}}for(c=0;c<t;c++){for(i=0;i<t;i++)if(a[c][i]>0)break;for(e[c][0]=i,i=t-1;i>0;i--)if(a[c][i]>0)break;e[c][1]=i,l+=e[c][1]-e[c][0]+1}var p=bC(l),h=0;for(c=0;c<t;c++)for(i=e[c][0];i<=e[c][1];i++)p[h++]=a[c][i];return p}function fe(e){var t=ce(e);return t=Math.min(t,15.5)/15.5,Math.pow(10,1.25*(1-Math.cos(Math.PI*t))-2.5)}function pe(e,t){e<-.3&&(e=3410),e/=1e3,e=Math.max(.1,e);var n=3.64*Math.pow(e,-.8)-6.8*Math.exp(-.6*Math.pow(e-3.4,2))+6*Math.exp(-.15*Math.pow(e-8.7,2))+.001*(.6+.04*t)*Math.pow(e,4);return n}this.L3psycho_anal_vbr=function(e,t,n,o,r,s,i,a,l,f){var p,h,m=e.internal_flags,g=bC(uC.HBLKSIZE),v=yC([3,uC.HBLKSIZE_s]),_=yC([2,uC.BLKSIZE]),b=yC([2,3,uC.BLKSIZE_s]),y=yC([4,uC.CBANDS]),x=yC([4,uC.CBANDS]),w=yC([4,3]),k=.6,S=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],E=xC(2),T=e.mode==nC.JOINT_STEREO?4:m.channels_out;Z(e,t,n,o,r,s,l,w,S,E),oe(e,E);for(var M=0;M<T;M++){var A=1&M;p=_,X(e,t,n,M,o,g,p,A),W(e,o,M,g),0!=E[A]?ne(m,g,y[M],x[M],M):J(m,M)}E[0]+E[1]==2&&e.mode==nC.JOINT_STEREO&&se(y,x,m.mld_cb_l,m.ATH.cb_l,e.ATHlower*m.ATH.adjust,e.msfix,m.npart_l);for(M=0;M<T;M++){A=1&M;0!=E[A]&&N(m,y[M],x[M],M)}for(var R=0;R<3;R++){for(M=0;M<T;++M){A=1&M;0!=E[A]?Q(m,M,R):(h=b,G(e,t,n,M,R,v,h,A),te(e,v,y[M],x[M],M,R))}E[0]+E[1]==0&&e.mode==nC.JOINT_STEREO&&se(y,x,m.mld_cb_s,m.ATH.cb_s,e.ATHlower*m.ATH.adjust,e.msfix,m.npart_s);for(M=0;M<T;++M){A=1&M;0==E[A]&&L(m,y[M],x[M],M,R)}}for(M=0;M<T;M++){A=1&M;if(0==E[A])for(var C=0;C<uC.SBMAX_s;C++){var O=bC(3);for(R=0;R<3;R++){var I=m.thm[M].s[C][R];if(I*=c,S[M][R]>=2||1==S[M][R+1]){var B=0!=R?R-1:2,P=D(m.thm[M].s[C][B],I,u*k);I=Math.min(I,P)}else if(1==S[M][R]){B=0!=R?R-1:2,P=D(m.thm[M].s[C][B],I,d*k);I=Math.min(I,P)}else if(0!=R&&3==S[M][R-1]||0==R&&3==m.nsPsy.lastAttacks[M]){B=2!=R?R+1:0,P=D(m.thm[M].s[C][B],I,d*k);I=Math.min(I,P)}I*=w[M][R],O[R]=I}for(R=0;R<3;R++)m.thm[M].s[C][R]=O[R]}}for(M=0;M<T;M++)m.nsPsy.lastAttacks[M]=S[M][2];re(e,E,f);for(M=0;M<T;M++){var j,F,H,V;M>1?(j=a,F=-2,H=uC.NORM_TYPE,f[0]!=uC.SHORT_TYPE&&f[1]!=uC.SHORT_TYPE||(H=uC.SHORT_TYPE),V=s[o][M-2]):(j=i,F=0,H=f[M],V=r[o][M]),H==uC.SHORT_TYPE?j[F+M]=U(V,m.masking_lower):j[F+M]=$(V,m.masking_lower),e.analysis&&(m.pinfo.pe[o][M]=j[F+M])}return 0},this.psymodel_init=function(n){var o,r=n.internal_flags,s=!0,i=13,a=24,c=0,u=0,d=-8.25,p=-4.5,h=bC(uC.CBANDS),m=bC(uC.CBANDS),g=bC(uC.CBANDS),v=n.out_samplerate;switch(n.experimentalZ){default:case 0:s=!0;break;case 1:s=!(n.VBR==hC.vbr_mtrh||n.VBR==hC.vbr_mt);break;case 2:s=!1;break;case 3:i=8,c=-1.75,u=-.0125,d=-8.25,p=-2.25;break}for(r.ms_ener_ratio_old=.25,r.blocktype_old[0]=r.blocktype_old[1]=uC.NORM_TYPE,o=0;o<4;++o){for(var _=0;_<uC.CBANDS;++_)r.nb_1[o][_]=1e20,r.nb_2[o][_]=1e20,r.nb_s1[o][_]=r.nb_s2[o][_]=1;for(var b=0;b<uC.SBMAX_l;b++)r.en[o].l[b]=1e20,r.thm[o].l[b]=1e20;for(_=0;_<3;++_){for(b=0;b<uC.SBMAX_s;b++)r.en[o].s[b][_]=1e20,r.thm[o].s[b][_]=1e20;r.nsPsy.lastAttacks[o]=0}for(_=0;_<9;_++)r.nsPsy.last_en_subshort[o][_]=10}for(r.loudness_sq_save[0]=r.loudness_sq_save[1]=0,r.npart_l=ue(r.numlines_l,r.bo_l,r.bm_l,h,m,r.mld_l,r.PSY.bo_l_weight,v,uC.BLKSIZE,r.scalefac_band.l,uC.BLKSIZE/1152,uC.SBMAX_l),wC(r.npart_l<uC.CBANDS),o=0;o<r.npart_l;o++){var y=c;h[o]>=i&&(y=u*(h[o]-i)/(a-i)+c*(a-h[o])/(a-i)),g[o]=Math.pow(10,y/10),r.numlines_l[o]>0?r.rnumlines_l[o]=1/r.numlines_l[o]:r.rnumlines_l[o]=0}r.s3_ll=de(r.s3ind,r.npart_l,h,m,g,s);var x;_=0;for(o=0;o<r.npart_l;o++){S=mC.MAX_VALUE;for(var w=0;w<r.numlines_l[o];w++,_++){var k=v*_/(1e3*uC.BLKSIZE);T=this.ATHformula(1e3*k,n)-20,T=Math.pow(10,.1*T),T*=r.numlines_l[o],S>T&&(S=T)}r.ATH.cb_l[o]=S,S=20*h[o]/10-20,S>6&&(S=100),S<-15&&(S=-15),S-=8,r.minval_l[o]=Math.pow(10,S/10)*r.numlines_l[o]}for(r.npart_s=ue(r.numlines_s,r.bo_s,r.bm_s,h,m,r.mld_s,r.PSY.bo_s_weight,v,uC.BLKSIZE_s,r.scalefac_band.s,uC.BLKSIZE_s/384,uC.SBMAX_s),wC(r.npart_s<uC.CBANDS),_=0,o=0;o<r.npart_s;o++){var S;y=d;h[o]>=i&&(y=p*(h[o]-i)/(a-i)+d*(a-h[o])/(a-i)),g[o]=Math.pow(10,y/10),S=mC.MAX_VALUE;for(w=0;w<r.numlines_s[o];w++,_++){var T;k=v*_/(1e3*uC.BLKSIZE_s);T=this.ATHformula(1e3*k,n)-20,T=Math.pow(10,.1*T),T*=r.numlines_s[o],S>T&&(S=T)}r.ATH.cb_s[o]=S,S=7*h[o]/12-7,h[o]>12&&(S*=1+3.1*Math.log(1+S)),h[o]<12&&(S*=1+2.3*Math.log(1-S)),S<-15&&(S=-15),S-=8,r.minval_s[o]=Math.pow(10,S/10)*r.numlines_s[o]}r.s3_ss=de(r.s3ind_s,r.npart_s,h,m,g,s),E(),e.init_fft(r),r.decay=Math.exp(-1*t/(l*v/192)),x=f,0!=(2&n.exp_nspsytune)&&(x=1),Math.abs(n.msfix)>0&&(x=n.msfix),n.msfix=x;for(var M=0;M<r.npart_l;M++)r.s3ind[M][1]>r.npart_l-1&&(r.s3ind[M][1]=r.npart_l-1);var A=576*r.mode_gr/v;if(r.ATH.decay=Math.pow(10,-1.2*A),r.ATH.adjust=.01,r.ATH.adjustLimit=1,wC(r.bo_l[uC.SBMAX_l-1]<=r.npart_l),wC(r.bo_s[uC.SBMAX_s-1]<=r.npart_s),-1!=n.ATHtype){var R=n.out_samplerate/uC.BLKSIZE,C=0;for(k=0,o=0;o<uC.BLKSIZE/2;++o)k+=R,r.ATH.eql_w[o]=1/Math.pow(10,this.ATHformula(k,n)/10),C+=r.ATH.eql_w[o];for(C=1/C,o=uC.BLKSIZE/2;--o>=0;)r.ATH.eql_w[o]*=C}for(M=_=0;M<r.npart_s;++M)for(o=0;o<r.numlines_s[M];++o)++_;for(M=_=0;M<r.npart_l;++M)for(o=0;o<r.numlines_l[M];++o)++_;for(_=0,o=0;o<r.npart_l;o++){k=v*(_+r.numlines_l[o]/2)/(1*uC.BLKSIZE);r.mld_cb_l[o]=fe(k),_+=r.numlines_l[o]}for(;o<uC.CBANDS;++o)r.mld_cb_l[o]=1;for(_=0,o=0;o<r.npart_s;o++){k=v*(_+r.numlines_s[o]/2)/(1*uC.BLKSIZE_s);r.mld_cb_s[o]=fe(k),_+=r.numlines_s[o]}for(;o<uC.CBANDS;++o)r.mld_cb_s[o]=1;return 0},this.ATHformula=function(e,t){var n;switch(t.ATHtype){case 0:n=pe(e,9);break;case 1:n=pe(e,-1);break;case 2:n=pe(e,0);break;case 3:n=pe(e,1)+6;break;case 4:n=pe(e,t.ATHcurve);break;default:n=pe(e,0);break}return n}}function SC(){this.class_id=0,this.num_samples=0,this.num_channels=0,this.in_samplerate=0,this.out_samplerate=0,this.scale=0,this.scale_left=0,this.scale_right=0,this.analysis=!1,this.bWriteVbrTag=!1,this.decode_only=!1,this.quality=0,this.mode=nC.STEREO,this.force_ms=!1,this.free_format=!1,this.findReplayGain=!1,this.decode_on_the_fly=!1,this.write_id3tag_automatic=!1,this.brate=0,this.compression_ratio=0,this.copyright=0,this.original=0,this.extension=0,this.emphasis=0,this.error_protection=0,this.strict_ISO=!1,this.disable_reservoir=!1,this.quant_comp=0,this.quant_comp_short=0,this.experimentalY=!1,this.experimentalZ=0,this.exp_nspsytune=0,this.preset=0,this.VBR=null,this.VBR_q_frac=0,this.VBR_q=0,this.VBR_mean_bitrate_kbps=0,this.VBR_min_bitrate_kbps=0,this.VBR_max_bitrate_kbps=0,this.VBR_hard_min=0,this.lowpassfreq=0,this.highpassfreq=0,this.lowpasswidth=0,this.highpasswidth=0,this.maskingadjust=0,this.maskingadjust_short=0,this.ATHonly=!1,this.ATHshort=!1,this.noATH=!1,this.ATHtype=0,this.ATHcurve=0,this.ATHlower=0,this.athaa_type=0,this.athaa_loudapprox=0,this.athaa_sensitivity=0,this.short_blocks=null,this.useTemporal=!1,this.interChRatio=0,this.msfix=0,this.tune=!1,this.tune_value_a=0,this.version=0,this.encoder_delay=0,this.encoder_padding=0,this.framesize=0,this.frameNum=0,this.lame_allocated_gfp=0,this.internal_flags=null}var EC={};EC.SFBMAX=3*uC.SBMAX_s;var TC=qR.new_float,MC=qR.new_int;function AC(){this.xr=TC(576),this.l3_enc=MC(576),this.scalefac=MC(EC.SFBMAX),this.xrpow_max=0,this.part2_3_length=0,this.big_values=0,this.count1=0,this.global_gain=0,this.scalefac_compress=0,this.block_type=0,this.mixed_block_flag=0,this.table_select=MC(3),this.subblock_gain=MC(4),this.region0_count=0,this.region1_count=0,this.preflag=0,this.scalefac_scale=0,this.count1table_select=0,this.part2_length=0,this.sfb_lmax=0,this.sfb_smin=0,this.psy_lmax=0,this.sfbmax=0,this.psymax=0,this.sfbdivide=0,this.width=MC(EC.SFBMAX),this.window=MC(EC.SFBMAX),this.count1bits=0,this.sfb_partition_table=null,this.slen=MC(4),this.max_nonzero_coeff=0;var e=this;function t(e){return new Int32Array(e)}function n(e){return new Float32Array(e)}this.assign=function(o){e.xr=n(o.xr),e.l3_enc=t(o.l3_enc),e.scalefac=t(o.scalefac),e.xrpow_max=o.xrpow_max,e.part2_3_length=o.part2_3_length,e.big_values=o.big_values,e.count1=o.count1,e.global_gain=o.global_gain,e.scalefac_compress=o.scalefac_compress,e.block_type=o.block_type,e.mixed_block_flag=o.mixed_block_flag,e.table_select=t(o.table_select),e.subblock_gain=t(o.subblock_gain),e.region0_count=o.region0_count,e.region1_count=o.region1_count,e.preflag=o.preflag,e.scalefac_scale=o.scalefac_scale,e.count1table_select=o.count1table_select,e.part2_length=o.part2_length,e.sfb_lmax=o.sfb_lmax,e.sfb_smin=o.sfb_smin,e.psy_lmax=o.psy_lmax,e.sfbmax=o.sfbmax,e.psymax=o.psymax,e.sfbdivide=o.sfbdivide,e.width=t(o.width),e.window=t(o.window),e.count1bits=o.count1bits,e.sfb_partition_table=o.sfb_partition_table.slice(0),e.slen=t(o.slen),e.max_nonzero_coeff=o.max_nonzero_coeff}}var RC=qR.new_int;function CC(){this.tt=[[null,null],[null,null]],this.main_data_begin=0,this.private_bits=0,this.resvDrain_pre=0,this.resvDrain_post=0,this.scfsi=[RC(4),RC(4)];for(var e=0;e<2;e++)for(var t=0;t<2;t++)this.tt[e][t]=new AC}var OC=qR.System,IC=qR.new_int;function BC(e,t,n,o){this.l=IC(1+uC.SBMAX_l),this.s=IC(1+uC.SBMAX_s),this.psfb21=IC(1+uC.PSFB21),this.psfb12=IC(1+uC.PSFB12);var r=this.l,s=this.s;4==arguments.length&&(this.arrL=arguments[0],this.arrS=arguments[1],this.arr21=arguments[2],this.arr12=arguments[3],OC.arraycopy(this.arrL,0,r,0,Math.min(this.arrL.length,this.l.length)),OC.arraycopy(this.arrS,0,s,0,Math.min(this.arrS.length,this.s.length)),OC.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),OC.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}var PC=qR.new_float,LC=qR.new_float_n,NC=qR.new_int;function jC(){this.last_en_subshort=LC([4,9]),this.lastAttacks=NC(4),this.pefirbuf=PC(19),this.longfact=PC(uC.SBMAX_l),this.shortfact=PC(uC.SBMAX_s),this.attackthre=0,this.attackthre_s=0}function FC(){this.sum=0,this.seen=0,this.want=0,this.pos=0,this.size=0,this.bag=null,this.nVbrNumFrames=0,this.nBytesWritten=0,this.TotalFrameSize=0}var DC=qR.new_byte,HC=qR.new_double,UC=qR.new_float,VC=qR.new_float_n,$C=qR.new_int,zC=qR.new_int_n;function qC(){var e=40;function t(){this.write_timing=0,this.ptr=0,this.buf=DC(e)}this.Class_ID=0,this.lame_encode_frame_init=0,this.iteration_init_init=0,this.fill_buffer_resample_init=0,this.mfbuf=VC([2,qC.MFSIZE]),this.mode_gr=0,this.channels_in=0,this.channels_out=0,this.resample_ratio=0,this.mf_samples_to_encode=0,this.mf_size=0,this.VBR_min_bitrate=0,this.VBR_max_bitrate=0,this.bitrate_index=0,this.samplerate_index=0,this.mode_ext=0,this.lowpass1=0,this.lowpass2=0,this.highpass1=0,this.highpass2=0,this.noise_shaping=0,this.noise_shaping_amp=0,this.substep_shaping=0,this.psymodel=0,this.noise_shaping_stop=0,this.subblock_gain=0,this.use_best_huffman=0,this.full_outer_loop=0,this.l3_side=new CC,this.ms_ratio=UC(2),this.padding=0,this.frac_SpF=0,this.slot_lag=0,this.tag_spec=null,this.nMusicCRC=0,this.OldValue=$C(2),this.CurrentStep=$C(2),this.masking_lower=0,this.bv_scf=$C(576),this.pseudohalf=$C(EC.SFBMAX),this.sfb21_extra=!1,this.inbuf_old=new Array(2),this.blackfilt=new Array(2*qC.BPC+1),this.itime=HC(2),this.sideinfo_len=0,this.sb_sample=VC([2,2,18,uC.SBLIMIT]),this.amp_filter=UC(32),this.header=new Array(qC.MAX_HEADER_BUF),this.h_ptr=0,this.w_ptr=0,this.ancillary_flag=0,this.ResvSize=0,this.ResvMax=0,this.scalefac_band=new BC,this.minval_l=UC(uC.CBANDS),this.minval_s=UC(uC.CBANDS),this.nb_1=VC([4,uC.CBANDS]),this.nb_2=VC([4,uC.CBANDS]),this.nb_s1=VC([4,uC.CBANDS]),this.nb_s2=VC([4,uC.CBANDS]),this.s3_ss=null,this.s3_ll=null,this.decay=0,this.thm=new Array(4),this.en=new Array(4),this.tot_ener=UC(4),this.loudness_sq=VC([2,2]),this.loudness_sq_save=UC(2),this.mld_l=UC(uC.SBMAX_l),this.mld_s=UC(uC.SBMAX_s),this.bm_l=$C(uC.SBMAX_l),this.bo_l=$C(uC.SBMAX_l),this.bm_s=$C(uC.SBMAX_s),this.bo_s=$C(uC.SBMAX_s),this.npart_l=0,this.npart_s=0,this.s3ind=zC([uC.CBANDS,2]),this.s3ind_s=zC([uC.CBANDS,2]),this.numlines_s=$C(uC.CBANDS),this.numlines_l=$C(uC.CBANDS),this.rnumlines_l=UC(uC.CBANDS),this.mld_cb_l=UC(uC.CBANDS),this.mld_cb_s=UC(uC.CBANDS),this.numlines_s_num1=0,this.numlines_l_num1=0,this.pe=UC(4),this.ms_ratio_s_old=0,this.ms_ratio_l_old=0,this.ms_ener_ratio_old=0,this.blocktype_old=$C(2),this.nsPsy=new jC,this.VBR_seek_table=new FC,this.ATH=null,this.PSY=null,this.nogap_total=0,this.nogap_current=0,this.decode_on_the_fly=!0,this.findReplayGain=!0,this.findPeakSample=!0,this.PeakSample=0,this.RadioGain=0,this.AudiophileGain=0,this.rgdata=null,this.noclipGainChange=0,this.noclipScale=0,this.bitrate_stereoMode_Hist=zC([16,5]),this.bitrate_blockType_Hist=zC([16,6]),this.pinfo=null,this.hip=null,this.in_buffer_nsamples=0,this.in_buffer_0=null,this.in_buffer_1=null,this.iteration_loop=null;for(var n=0;n<this.en.length;n++)this.en[n]=new eC;for(n=0;n<this.thm.length;n++)this.thm[n]=new eC;for(n=0;n<this.header.length;n++)this.header[n]=new t}qC.MFSIZE=3456+uC.ENCDELAY-uC.MDCTDELAY,qC.MAX_HEADER_BUF=256,qC.MAX_BITS_PER_CHANNEL=4095,qC.MAX_BITS_PER_GRANULE=7680,qC.BPC=320;var YC=qR.new_float;function XC(){this.useAdjust=0,this.aaSensitivityP=0,this.adjust=0,this.adjustLimit=0,this.decay=0,this.floor=0,this.l=YC(uC.SBMAX_l),this.s=YC(uC.SBMAX_s),this.psfb21=YC(uC.PSFB21),this.psfb12=YC(uC.PSFB12),this.cb_l=YC(uC.CBANDS),this.cb_s=YC(uC.CBANDS),this.eql_w=YC(uC.BLKSIZE/2)}var GC=qR.System,WC=qR.Arrays;function KC(){var e=64.82,t=.95,n=KC.RMS_WINDOW_TIME_NUMERATOR,o=KC.RMS_WINDOW_TIME_DENOMINATOR,r=[[.038575994352,-3.84664617118067,-.02160367184185,7.81501653005538,-.00123395316851,-11.34170355132042,-9291677959e-14,13.05504219327545,-.01655260341619,-12.28759895145294,.02161526843274,9.4829380631979,-.02074045215285,-5.87257861775999,.00594298065125,2.75465861874613,.00306428023191,-.86984376593551,.00012025322027,.13919314567432,.00288463683916],[.0541865640643,-3.47845948550071,-.02911007808948,6.36317777566148,-.00848709379851,-8.54751527471874,-.00851165645469,9.4769360780128,-.00834990904936,-8.81498681370155,.02245293253339,6.85401540936998,-.02596338512915,-4.39470996079559,.01624864962975,2.19611684890774,-.00240879051584,-.75104302451432,.00674613682247,.13149317958808,-.00187763777362],[.15457299681924,-2.37898834973084,-.09331049056315,2.84868151156327,-.06247880153653,-2.64577170229825,.02163541888798,2.23697657451713,-.05588393329856,-1.67148153367602,.04781476674921,1.00595954808547,.00222312597743,-.45953458054983,.03174092540049,.16378164858596,-.01390589421898,-.05032077717131,.00651420667831,.0234789740702,-.00881362733839],[.30296907319327,-1.61273165137247,-.22613988682123,1.0797749225997,-.08587323730772,-.2565625775407,.03282930172664,-.1627671912044,-.00915702933434,-.22638893773906,-.02364141202522,.39120800788284,-.00584456039913,-.22138138954925,.06276101321749,.04500235387352,-828086748e-14,.02005851806501,.00205861885564,.00302439095741,-.02950134983287],[.33642304856132,-1.49858979367799,-.2557224142557,.87350271418188,-.11828570177555,.12205022308084,.11921148675203,-.80774944671438,-.07834489609479,.47854794562326,-.0046997791438,-.12453458140019,-.0058950022444,-.04067510197014,.05724228140351,.08333755284107,.00832043980773,-.04237348025746,-.0163538138454,.02977207319925,-.0176017656815],[.4491525660845,-.62820619233671,-.14351757464547,.29661783706366,-.22784394429749,-.372563729424,-.01419140100551,.00213767857124,.04078262797139,-.42029820170918,-.12398163381748,.22199650564824,.04097565135648,.00613424350682,.10478503600251,.06747620744683,-.01863887810927,.05784820375801,-.03193428438915,.03222754072173,.00541907748707],[.56619470757641,-1.04800335126349,-.75464456939302,.29156311971249,.1624213774223,-.26806001042947,.16744243493672,.00819999645858,-.18901604199609,.45054734505008,.3093178284183,-.33032403314006,-.27562961986224,.0673936833311,.00647310677246,-.04784254229033,.08647503780351,.01639907836189,-.0378898455484,.01807364323573,-.00588215443421],[.58100494960553,-.51035327095184,-.53174909058578,-.31863563325245,-.14289799034253,-.20256413484477,.17520704835522,.1472815413433,.02377945217615,.38952639978999,.15558449135573,-.23313271880868,-.25344790059353,-.05246019024463,.01628462406333,-.02505961724053,.06920467763959,.02442357316099,-.03721611395801,.01818801111503,-.00749618797172],[.53648789255105,-.2504987195602,-.42163034350696,-.43193942311114,-.00275953611929,-.03424681017675,.04267842219415,-.04678328784242,-.10214864179676,.26408300200955,.14590772289388,.15113130533216,-.02459864859345,-.17556493366449,-.11202315195388,-.18823009262115,-.04060034127,.05477720428674,.0478866554818,.0470440968812,-.02217936801134]],s=[[.98621192462708,-1.97223372919527,-1.97242384925416,.97261396931306,.98621192462708],[.98500175787242,-1.96977855582618,-1.97000351574484,.9702284756635,.98500175787242],[.97938932735214,-1.95835380975398,-1.95877865470428,.95920349965459,.97938932735214],[.97531843204928,-1.95002759149878,-1.95063686409857,.95124613669835,.97531843204928],[.97316523498161,-1.94561023566527,-1.94633046996323,.94705070426118,.97316523498161],[.96454515552826,-1.92783286977036,-1.92909031105652,.93034775234268,.96454515552826],[.96009142950541,-1.91858953033784,-1.92018285901082,.92177618768381,.96009142950541],[.95856916599601,-1.9154210807478,-1.91713833199203,.91885558323625,.95856916599601],[.94597685600279,-1.88903307939452,-1.89195371200558,.89487434461664,.94597685600279]];function i(e,t,n,o,r,s){while(0!=r--)n[o]=1e-10+e[t+0]*s[0]-n[o-1]*s[1]+e[t-1]*s[2]-n[o-2]*s[3]+e[t-2]*s[4]-n[o-3]*s[5]+e[t-3]*s[6]-n[o-4]*s[7]+e[t-4]*s[8]-n[o-5]*s[9]+e[t-5]*s[10]-n[o-6]*s[11]+e[t-6]*s[12]-n[o-7]*s[13]+e[t-7]*s[14]-n[o-8]*s[15]+e[t-8]*s[16]-n[o-9]*s[17]+e[t-9]*s[18]-n[o-10]*s[19]+e[t-10]*s[20],++o,++t}function a(e,t,n,o,r,s){while(0!=r--)n[o]=e[t+0]*s[0]-n[o-1]*s[1]+e[t-1]*s[2]-n[o-2]*s[3]+e[t-2]*s[4],++o,++t}function l(e,t){for(var r=0;r<MAX_ORDER;r++)e.linprebuf[r]=e.lstepbuf[r]=e.loutbuf[r]=e.rinprebuf[r]=e.rstepbuf[r]=e.routbuf[r]=0;switch(0|t){case 48e3:e.reqindex=0;break;case 44100:e.reqindex=1;break;case 32e3:e.reqindex=2;break;case 24e3:e.reqindex=3;break;case 22050:e.reqindex=4;break;case 16e3:e.reqindex=5;break;case 12e3:e.reqindex=6;break;case 11025:e.reqindex=7;break;case 8e3:e.reqindex=8;break;default:return INIT_GAIN_ANALYSIS_ERROR}return e.sampleWindow=0|(t*n+o-1)/o,e.lsum=0,e.rsum=0,e.totsamp=0,WC.ill(e.A,0),INIT_GAIN_ANALYSIS_OK}function c(e){return e*e}function u(n,o){var r,s=0;for(r=0;r<o;r++)s+=n[r];if(0==s)return GAIN_NOT_ENOUGH_SAMPLES;var i=0|Math.ceil(s*(1-t));for(r=o;r-- >0;)if((i-=n[r])<=0)break;return e-r/KC.STEPS_per_dB}this.InitGainAnalysis=function(e,t){return l(e,t)!=INIT_GAIN_ANALYSIS_OK?INIT_GAIN_ANALYSIS_ERROR:(e.linpre=MAX_ORDER,e.rinpre=MAX_ORDER,e.lstep=MAX_ORDER,e.rstep=MAX_ORDER,e.lout=MAX_ORDER,e.rout=MAX_ORDER,WC.fill(e.B,0),INIT_GAIN_ANALYSIS_OK)},this.AnalyzeSamples=function(e,t,n,o,l,u,d){var f,p,h,m,g,v,_;if(0==u)return GAIN_ANALYSIS_OK;switch(_=0,g=u,d){case 1:o=t,l=n;break;case 2:break;default:return GAIN_ANALYSIS_ERROR}u<MAX_ORDER?(GC.arraycopy(t,n,e.linprebuf,MAX_ORDER,u),GC.arraycopy(o,l,e.rinprebuf,MAX_ORDER,u)):(GC.arraycopy(t,n,e.linprebuf,MAX_ORDER,MAX_ORDER),GC.arraycopy(o,l,e.rinprebuf,MAX_ORDER,MAX_ORDER));while(g>0){v=g>e.sampleWindow-e.totsamp?e.sampleWindow-e.totsamp:g,_<MAX_ORDER?(f=e.linpre+_,p=e.linprebuf,h=e.rinpre+_,m=e.rinprebuf,v>MAX_ORDER-_&&(v=MAX_ORDER-_)):(f=n+_,p=t,h=l+_,m=o),i(p,f,e.lstepbuf,e.lstep+e.totsamp,v,r[e.reqindex]),i(m,h,e.rstepbuf,e.rstep+e.totsamp,v,r[e.reqindex]),a(e.lstepbuf,e.lstep+e.totsamp,e.loutbuf,e.lout+e.totsamp,v,s[e.reqindex]),a(e.rstepbuf,e.rstep+e.totsamp,e.routbuf,e.rout+e.totsamp,v,s[e.reqindex]),f=e.lout+e.totsamp,p=e.loutbuf,h=e.rout+e.totsamp,m=e.routbuf;var b=v%8;while(0!=b--)e.lsum+=c(p[f++]),e.rsum+=c(m[h++]);b=v/8;while(0!=b--)e.lsum+=c(p[f+0])+c(p[f+1])+c(p[f+2])+c(p[f+3])+c(p[f+4])+c(p[f+5])+c(p[f+6])+c(p[f+7]),f+=8,e.rsum+=c(m[h+0])+c(m[h+1])+c(m[h+2])+c(m[h+3])+c(m[h+4])+c(m[h+5])+c(m[h+6])+c(m[h+7]),h+=8;if(g-=v,_+=v,e.totsamp+=v,e.totsamp==e.sampleWindow){var y=10*KC.STEPS_per_dB*Math.log10((e.lsum+e.rsum)/e.totsamp*.5+1e-37),x=y<=0?0:0|y;x>=e.A.length&&(x=e.A.length-1),e.A[x]++,e.lsum=e.rsum=0,GC.arraycopy(e.loutbuf,e.totsamp,e.loutbuf,0,MAX_ORDER),GC.arraycopy(e.routbuf,e.totsamp,e.routbuf,0,MAX_ORDER),GC.arraycopy(e.lstepbuf,e.totsamp,e.lstepbuf,0,MAX_ORDER),GC.arraycopy(e.rstepbuf,e.totsamp,e.rstepbuf,0,MAX_ORDER),e.totsamp=0}if(e.totsamp>e.sampleWindow)return GAIN_ANALYSIS_ERROR}return u<MAX_ORDER?(GC.arraycopy(e.linprebuf,u,e.linprebuf,0,MAX_ORDER-u),GC.arraycopy(e.rinprebuf,u,e.rinprebuf,0,MAX_ORDER-u),GC.arraycopy(t,n,e.linprebuf,MAX_ORDER-u,u),GC.arraycopy(o,l,e.rinprebuf,MAX_ORDER-u,u)):(GC.arraycopy(t,n+u-MAX_ORDER,e.linprebuf,0,MAX_ORDER),GC.arraycopy(o,l+u-MAX_ORDER,e.rinprebuf,0,MAX_ORDER)),GAIN_ANALYSIS_OK},this.GetTitleGain=function(e){for(var t=u(e.A,e.A.length),n=0;n<e.A.length;n++)e.B[n]+=e.A[n],e.A[n]=0;for(n=0;n<MAX_ORDER;n++)e.linprebuf[n]=e.lstepbuf[n]=e.loutbuf[n]=e.rinprebuf[n]=e.rstepbuf[n]=e.routbuf[n]=0;return e.totsamp=0,e.lsum=e.rsum=0,t}}KC.STEPS_per_dB=100,KC.MAX_dB=120,KC.GAIN_NOT_ENOUGH_SAMPLES=-24601,KC.GAIN_ANALYSIS_ERROR=0,KC.GAIN_ANALYSIS_OK=1,KC.INIT_GAIN_ANALYSIS_ERROR=0,KC.INIT_GAIN_ANALYSIS_OK=1,KC.YULE_ORDER=10,KC.MAX_ORDER=KC.YULE_ORDER,KC.MAX_SAMP_FREQ=48e3,KC.RMS_WINDOW_TIME_NUMERATOR=1,KC.RMS_WINDOW_TIME_DENOMINATOR=20,KC.MAX_SAMPLES_PER_WINDOW=KC.MAX_SAMP_FREQ*KC.RMS_WINDOW_TIME_NUMERATOR/KC.RMS_WINDOW_TIME_DENOMINATOR+1;var ZC=qR.new_float,QC=qR.new_int;function JC(){this.linprebuf=ZC(NaN),this.linpre=0,this.lstepbuf=ZC(NaN),this.lstep=0,this.loutbuf=ZC(NaN),this.lout=0,this.rinprebuf=ZC(NaN),this.rinpre=0,this.rstepbuf=ZC(NaN),this.rstep=0,this.routbuf=ZC(NaN),this.rout=0,this.sampleWindow=0,this.totsamp=0,this.lsum=0,this.rsum=0,this.freqindex=0,this.first=0,this.A=QC(0),this.B=QC(0)}function eO(e){this.bits=e}var tO=qR.new_float,nO=qR.new_int,oO=qR.assert;function rO(e){var t=e;this.quantize=t,this.iteration_loop=function(e,t,n,o){var r,s=e.internal_flags,i=tO(EC.SFBMAX),a=tO(576),l=nO(2),c=0,u=s.l3_side,d=new eO(c);this.quantize.rv.ResvFrameBegin(e,d),c=d.bits;for(var f=0;f<s.mode_gr;f++){r=this.quantize.qupvt.on_pe(e,t,l,c,f,f),s.mode_ext==uC.MPG_MD_MS_LR&&(this.quantize.ms_convert(s.l3_side,f),this.quantize.qupvt.reduce_side(l,n[f],c,r));for(var p=0;p<s.channels_out;p++){var h,m,g=u.tt[f][p];g.block_type!=uC.SHORT_TYPE?(h=0,m=s.PSY.mask_adjust-h):(h=0,m=s.PSY.mask_adjust_short-h),s.masking_lower=Math.pow(10,.1*m),this.quantize.init_outer_loop(s,g),this.quantize.init_xrpow(s,g,a)&&(this.quantize.qupvt.calc_xmin(e,o[f][p],g,i),this.quantize.outer_loop(e,g,i,a,p,l[p])),this.quantize.iteration_finish_one(s,f,p),oO(g.part2_3_length<=qC.MAX_BITS_PER_CHANNEL),oO(g.part2_3_length<=l[p])}}this.quantize.rv.ResvFrameEnd(s,c)}}function sO(e,t,n,o){this.xlen=e,this.linmax=t,this.table=n,this.hlen=o}var iO={t1HB:[1,1,1,0],t2HB:[1,2,1,3,1,1,3,2,0],t3HB:[3,2,1,1,1,1,3,2,0],t5HB:[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],t6HB:[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],t7HB:[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],t8HB:[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],t9HB:[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],t10HB:[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34,46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],t11HB:[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],t12HB:[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],t13HB:[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19,3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51,36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],t15HB:[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,19,17,15,24,41,34,59,48,40,64,50,78,62,80,56,33,29,28,25,43,39,63,55,93,76,59,93,72,54,75,50,29,52,22,42,40,67,57,95,79,72,57,89,69,49,66,46,27,77,37,35,66,58,52,91,74,62,48,79,63,90,62,40,38,125,32,60,56,50,92,78,65,55,87,71,51,73,51,70,30,109,53,49,94,88,75,66,122,91,73,56,42,64,44,21,25,90,43,41,77,73,63,56,92,77,66,47,67,48,53,36,20,71,34,67,60,58,49,88,76,67,106,71,54,38,39,23,15,109,53,51,47,90,82,58,57,48,72,57,41,23,27,62,9,86,42,40,37,70,64,52,43,70,55,42,25,29,18,11,11,118,68,30,55,50,46,74,65,49,39,24,16,22,13,14,7,91,44,39,38,34,63,52,45,31,52,28,19,14,8,9,3,123,60,58,53,47,43,32,22,37,24,17,12,15,10,2,1,71,37,34,30,28,20,17,26,21,16,10,6,8,6,2,0],t16HB:[1,5,14,44,74,63,110,93,172,149,138,242,225,195,376,17,3,4,12,20,35,62,53,47,83,75,68,119,201,107,207,9,15,13,23,38,67,58,103,90,161,72,127,117,110,209,206,16,45,21,39,69,64,114,99,87,158,140,252,212,199,387,365,26,75,36,68,65,115,101,179,164,155,264,246,226,395,382,362,9,66,30,59,56,102,185,173,265,142,253,232,400,388,378,445,16,111,54,52,100,184,178,160,133,257,244,228,217,385,366,715,10,98,48,91,88,165,157,148,261,248,407,397,372,380,889,884,8,85,84,81,159,156,143,260,249,427,401,392,383,727,713,708,7,154,76,73,141,131,256,245,426,406,394,384,735,359,710,352,11,139,129,67,125,247,233,229,219,393,743,737,720,885,882,439,4,243,120,118,115,227,223,396,746,742,736,721,712,706,223,436,6,202,224,222,218,216,389,386,381,364,888,443,707,440,437,1728,4,747,211,210,208,370,379,734,723,714,1735,883,877,876,3459,865,2,377,369,102,187,726,722,358,711,709,866,1734,871,3458,870,434,0,12,10,7,11,10,17,11,9,13,12,10,7,5,3,1,3],t24HB:[15,13,46,80,146,262,248,434,426,669,653,649,621,517,1032,88,14,12,21,38,71,130,122,216,209,198,327,345,319,297,279,42,47,22,41,74,68,128,120,221,207,194,182,340,315,295,541,18,81,39,75,70,134,125,116,220,204,190,178,325,311,293,271,16,147,72,69,135,127,118,112,210,200,188,352,323,306,285,540,14,263,66,129,126,119,114,214,202,192,180,341,317,301,281,262,12,249,123,121,117,113,215,206,195,185,347,330,308,291,272,520,10,435,115,111,109,211,203,196,187,353,332,313,298,283,531,381,17,427,212,208,205,201,193,186,177,169,320,303,286,268,514,377,16,335,199,197,191,189,181,174,333,321,305,289,275,521,379,371,11,668,184,183,179,175,344,331,314,304,290,277,530,383,373,366,10,652,346,171,168,164,318,309,299,287,276,263,513,375,368,362,6,648,322,316,312,307,302,292,284,269,261,512,376,370,364,359,4,620,300,296,294,288,282,273,266,515,380,374,369,365,361,357,2,1033,280,278,274,267,264,259,382,378,372,367,363,360,358,356,0,43,20,19,17,15,13,11,9,7,6,4,7,5,3,1,3],t32HB:[1,10,8,20,12,20,16,32,14,12,24,0,28,16,24,16],t33HB:[15,28,26,48,22,40,36,64,14,24,20,32,12,16,8,0],t1l:[1,4,3,5],t2l:[1,4,7,4,5,7,6,7,8],t3l:[2,3,7,4,4,7,6,7,8],t5l:[1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10],t6l:[3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9],t7l:[1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12],t8l:[2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13],t9l:[3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11],t10l:[1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13],t11l:[2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12],t12l:[4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12],t13l:[1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18],t15l:[3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15],t16_5l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12],t16l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10],t24l:[4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6],t32l:[1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10],t33l:[4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]};iO.ht=[new sO(0,0,null,null),new sO(2,0,iO.t1HB,iO.t1l),new sO(3,0,iO.t2HB,iO.t2l),new sO(3,0,iO.t3HB,iO.t3l),new sO(0,0,null,null),new sO(4,0,iO.t5HB,iO.t5l),new sO(4,0,iO.t6HB,iO.t6l),new sO(6,0,iO.t7HB,iO.t7l),new sO(6,0,iO.t8HB,iO.t8l),new sO(6,0,iO.t9HB,iO.t9l),new sO(8,0,iO.t10HB,iO.t10l),new sO(8,0,iO.t11HB,iO.t11l),new sO(8,0,iO.t12HB,iO.t12l),new sO(16,0,iO.t13HB,iO.t13l),new sO(0,0,null,iO.t16_5l),new sO(16,0,iO.t15HB,iO.t15l),new sO(1,1,iO.t16HB,iO.t16l),new sO(2,3,iO.t16HB,iO.t16l),new sO(3,7,iO.t16HB,iO.t16l),new sO(4,15,iO.t16HB,iO.t16l),new sO(6,63,iO.t16HB,iO.t16l),new sO(8,255,iO.t16HB,iO.t16l),new sO(10,1023,iO.t16HB,iO.t16l),new sO(13,8191,iO.t16HB,iO.t16l),new sO(4,15,iO.t24HB,iO.t24l),new sO(5,31,iO.t24HB,iO.t24l),new sO(6,63,iO.t24HB,iO.t24l),new sO(7,127,iO.t24HB,iO.t24l),new sO(8,255,iO.t24HB,iO.t24l),new sO(9,511,iO.t24HB,iO.t24l),new sO(11,2047,iO.t24HB,iO.t24l),new sO(13,8191,iO.t24HB,iO.t24l),new sO(0,0,iO.t32HB,iO.t32l),new sO(0,0,iO.t33HB,iO.t33l)],iO.largetbl=[65540,327685,458759,589832,655369,655370,720906,720907,786443,786444,786444,851980,851980,851980,917517,655370,262149,393222,524295,589832,655369,720906,720906,720907,786443,786443,786444,851980,917516,851980,917516,655370,458759,524295,589832,655369,720905,720906,786442,786443,851979,786443,851979,851980,851980,917516,917517,720905,589832,589832,655369,720905,720906,786442,786442,786443,851979,851979,917515,917516,917516,983052,983052,786441,655369,655369,720905,720906,786442,786442,851978,851979,851979,917515,917516,917516,983052,983052,983053,720905,655370,655369,720906,720906,786442,851978,851979,917515,851979,917515,917516,983052,983052,983052,1048588,786441,720906,720906,720906,786442,851978,851979,851979,851979,917515,917516,917516,917516,983052,983052,1048589,786441,720907,720906,786442,786442,851979,851979,851979,917515,917516,983052,983052,983052,983052,1114125,1114125,786442,720907,786443,786443,851979,851979,851979,917515,917515,983051,983052,983052,983052,1048588,1048589,1048589,786442,786443,786443,786443,851979,851979,917515,917515,983052,983052,983052,983052,1048588,983053,1048589,983053,851978,786444,851979,786443,851979,917515,917516,917516,917516,983052,1048588,1048588,1048589,1114125,1114125,1048589,786442,851980,851980,851979,851979,917515,917516,983052,1048588,1048588,1048588,1048588,1048589,1048589,983053,1048589,851978,851980,917516,917516,917516,917516,983052,983052,983052,983052,1114124,1048589,1048589,1048589,1048589,1179661,851978,983052,917516,917516,917516,983052,983052,1048588,1048588,1048589,1179661,1114125,1114125,1114125,1245197,1114125,851978,917517,983052,851980,917516,1048588,1048588,983052,1048589,1048589,1114125,1179661,1114125,1245197,1114125,1048589,851978,655369,655369,655369,720905,720905,786441,786441,786441,851977,851977,851977,851978,851978,851978,851978,655366],iO.table23=[65538,262147,458759,262148,327684,458759,393222,458759,524296],iO.table56=[65539,262148,458758,524296,262148,327684,524294,589831,458757,524294,589831,655368,524295,524295,589832,655369],iO.bitrate_table=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],[0,8,16,24,32,40,48,56,64,-1,-1,-1,-1,-1,-1,-1]],iO.samplerate_table=[[22050,24e3,16e3,-1],[44100,48e3,32e3,-1],[11025,12e3,8e3,-1]],iO.scfsi_band=[0,6,11,16,21];var aO=qR.VbrMode,lO=qR.Float,cO=qR.Util,uO=qR.new_float,dO=qR.new_int,fO=qR.assert;function pO(){var e=null,t=null,n=null;function o(e){return d[e+pO.Q_MAX2]}this.setModules=function(o,r,s){e=o,t=r,n=s},this.IPOW20=function(e){return f[e]};var r=2220446049250313e-31,s=pO.IXMAX_VAL,i=s+2,a=pO.Q_MAX,l=pO.Q_MAX2,c=100;this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var u=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0];this.pretab=u,this.sfBandIndex=[new BC([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new BC([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0])];var d=uO(a+l+1),f=uO(a),p=uO(i),h=uO(i);function m(e,t){var o=n.ATHformula(t,e);return o-=c,o=Math.pow(10,o/10+e.ATHlower),o}function g(e){for(var t=e.internal_flags.ATH.l,n=e.internal_flags.ATH.psfb21,o=e.internal_flags.ATH.s,r=e.internal_flags.ATH.psfb12,s=e.internal_flags,i=e.out_samplerate,a=0;a<uC.SBMAX_l;a++){var l=s.scalefac_band.l[a],c=s.scalefac_band.l[a+1];t[a]=lO.MAX_VALUE;for(var u=l;u<c;u++){var d=u*i/1152,f=m(e,d);t[a]=Math.min(t[a],f)}}for(a=0;a<uC.PSFB21;a++){l=s.scalefac_band.psfb21[a],c=s.scalefac_band.psfb21[a+1];n[a]=lO.MAX_VALUE;for(u=l;u<c;u++){d=u*i/1152,f=m(e,d);n[a]=Math.min(n[a],f)}}for(a=0;a<uC.SBMAX_s;a++){l=s.scalefac_band.s[a],c=s.scalefac_band.s[a+1];o[a]=lO.MAX_VALUE;for(u=l;u<c;u++){d=u*i/384,f=m(e,d);o[a]=Math.min(o[a],f)}o[a]*=s.scalefac_band.s[a+1]-s.scalefac_band.s[a]}for(a=0;a<uC.PSFB12;a++){l=s.scalefac_band.psfb12[a],c=s.scalefac_band.psfb12[a+1];r[a]=lO.MAX_VALUE;for(u=l;u<c;u++){d=u*i/384,f=m(e,d);r[a]=Math.min(r[a],f)}r[a]*=s.scalefac_band.s[13]-s.scalefac_band.s[12]}if(e.noATH){for(a=0;a<uC.SBMAX_l;a++)t[a]=1e-20;for(a=0;a<uC.PSFB21;a++)n[a]=1e-20;for(a=0;a<uC.SBMAX_s;a++)o[a]=1e-20;for(a=0;a<uC.PSFB12;a++)r[a]=1e-20}s.ATH.floor=10*Math.log10(m(e,-1))}function v(e){this.s=e}this.adj43=h,this.iteration_init=function(t){var n,o=t.internal_flags,r=o.l3_side;if(0==o.iteration_init_init){for(o.iteration_init_init=1,r.main_data_begin=0,g(t),p[0]=0,n=1;n<i;n++)p[n]=Math.pow(n,4/3);for(n=0;n<i-1;n++)h[n]=n+1-Math.pow(.5*(p[n]+p[n+1]),.75);for(h[n]=.5,n=0;n<a;n++)f[n]=Math.pow(2,-.1875*(n-210));for(n=0;n<=a+l;n++)d[n]=Math.pow(2,.25*(n-210-l));var s,c,u,m;for(e.huffman_init(o),n=t.exp_nspsytune>>2&63,n>=32&&(n-=64),s=Math.pow(10,n/4/10),n=t.exp_nspsytune>>8&63,n>=32&&(n-=64),c=Math.pow(10,n/4/10),n=t.exp_nspsytune>>14&63,n>=32&&(n-=64),u=Math.pow(10,n/4/10),n=t.exp_nspsytune>>20&63,n>=32&&(n-=64),m=u*Math.pow(10,n/4/10),n=0;n<uC.SBMAX_l;n++){v=n<=6?s:n<=13?c:n<=20?u:m,o.nsPsy.longfact[n]=v}for(n=0;n<uC.SBMAX_s;n++){var v;v=n<=5?s:n<=10?c:n<=11?u:m,o.nsPsy.shortfact[n]=v}}},this.on_pe=function(e,n,o,r,s,i){var a,l,c=e.internal_flags,u=0,d=dO(2),f=new eO(u),p=t.ResvMaxBits(e,r,f,i);u=f.bits;var h=u+p;for(h>qC.MAX_BITS_PER_GRANULE&&(h=qC.MAX_BITS_PER_GRANULE),a=0,l=0;l<c.channels_out;++l)o[l]=Math.min(qC.MAX_BITS_PER_CHANNEL,u/c.channels_out),d[l]=0|o[l]*n[s][l]/700-o[l],d[l]>3*r/4&&(d[l]=3*r/4),d[l]<0&&(d[l]=0),d[l]+o[l]>qC.MAX_BITS_PER_CHANNEL&&(d[l]=Math.max(0,qC.MAX_BITS_PER_CHANNEL-o[l])),a+=d[l];if(a>p)for(l=0;l<c.channels_out;++l)d[l]=p*d[l]/a;for(l=0;l<c.channels_out;++l)o[l]+=d[l],p-=d[l];for(a=0,l=0;l<c.channels_out;++l)a+=o[l];if(a>qC.MAX_BITS_PER_GRANULE){for(l=0;l<c.channels_out;++l)o[l]*=qC.MAX_BITS_PER_GRANULE,o[l]/=a,o[l]}return h},this.reduce_side=function(e,t,n,o){fO(e[0]+e[1]<=qC.MAX_BITS_PER_GRANULE);var r=.33*(.5-t)/.5;r<0&&(r=0),r>.5&&(r=.5);var s=0|.5*r*(e[0]+e[1]);s>qC.MAX_BITS_PER_CHANNEL-e[0]&&(s=qC.MAX_BITS_PER_CHANNEL-e[0]),s<0&&(s=0),e[1]>=125&&(e[1]-s>125?(e[0]<n&&(e[0]+=s),e[1]-=s):(e[0]+=e[1]-125,e[1]=125)),s=e[0]+e[1],s>o&&(e[0]=o*e[0]/s,e[1]=o*e[1]/s),fO(e[0]<=qC.MAX_BITS_PER_CHANNEL),fO(e[1]<=qC.MAX_BITS_PER_CHANNEL),fO(e[0]+e[1]<=qC.MAX_BITS_PER_GRANULE)},this.athAdjust=function(e,t,n){var o=90.30873362,r=94.82444863,s=cO.FAST_LOG10_X(t,10),i=e*e,a=0;return s-=n,i>1e-20&&(a=1+cO.FAST_LOG10_X(i,10/o)),a<0&&(a=0),s*=a,s+=n+o-r,Math.pow(10,.1*s)},this.calc_xmin=function(e,t,n,o){var s,i=0,a=e.internal_flags,l=0,c=0,u=a.ATH,d=n.xr,f=e.VBR==aO.vbr_mtrh?1:0,p=a.masking_lower;for(e.VBR!=aO.vbr_mtrh&&e.VBR!=aO.vbr_mt||(p=1),s=0;s<n.psy_lmax;s++){w=e.VBR==aO.vbr_rh||e.VBR==aO.vbr_mtrh?athAdjust(u.adjust,u.l[s],u.floor):u.adjust*u.l[s],b=n.width[s],k=w/b,S=r,T=b>>1,E=0;do{M=d[l]*d[l],E+=M,S+=M<k?M:k,l++,A=d[l]*d[l],E+=A,S+=A<k?A:k,l++}while(--T>0);if(E>w&&c++,s==uC.SBPSY_l){var h=w*a.nsPsy.longfact[s];S<h&&(S=h)}if(0!=f&&(w=S),!e.ATHonly){var m=t.en.l[s];if(m>0)h=E*t.thm.l[s]*p/m,0!=f&&(h*=a.nsPsy.longfact[s]),w<h&&(w=h)}o[i++]=0!=f?w:w*a.nsPsy.longfact[s]}var g=575;if(n.block_type!=uC.SHORT_TYPE){var v=576;while(0!=v--&&EO.EQ(d[v],0))g=v}n.max_nonzero_coeff=g;for(var _=n.sfb_smin;s<n.psymax;_++,s+=3){var b,y,x;for(x=e.VBR==aO.vbr_rh||e.VBR==aO.vbr_mtrh?athAdjust(u.adjust,u.s[_],u.floor):u.adjust*u.s[_],b=n.width[s],y=0;y<3;y++){var w,k,S,E=0,T=b>>1;k=x/b,S=r;do{var M,A;M=d[l]*d[l],E+=M,S+=M<k?M:k,l++,A=d[l]*d[l],E+=A,S+=A<k?A:k,l++}while(--T>0);if(E>x&&c++,_==uC.SBPSY_s){h=x*a.nsPsy.shortfact[_];S<h&&(S=h)}if(w=0!=f?S:x,!e.ATHonly&&!e.ATHshort){m=t.en.s[_][y];if(m>0)h=E*t.thm.s[_][y]*p/m,0!=f&&(h*=a.nsPsy.shortfact[_]),w<h&&(w=h)}o[i++]=0!=f?w:w*a.nsPsy.shortfact[_]}e.useTemporal&&(o[i-3]>o[i-3+1]&&(o[i-3+1]+=(o[i-3]-o[i-3+1])*a.decay),o[i-3+1]>o[i-3+2]&&(o[i-3+2]+=(o[i-3+1]-o[i-3+2])*a.decay))}return c},this.calc_noise_core=function(e,t,n,o){var r=0,s=t.s,i=e.l3_enc;if(s>e.count1)while(0!=n--){l=e.xr[s],s++,r+=l*l,l=e.xr[s],s++,r+=l*l}else if(s>e.big_values){var a=uO(2);a[0]=0,a[1]=o;while(0!=n--){l=Math.abs(e.xr[s])-a[i[s]],s++,r+=l*l,l=Math.abs(e.xr[s])-a[i[s]],s++,r+=l*l}}else while(0!=n--){var l;l=Math.abs(e.xr[s])-p[i[s]]*o,s++,r+=l*l,l=Math.abs(e.xr[s])-p[i[s]]*o,s++,r+=l*l}return t.s=s,r},this.calc_noise=function(e,t,n,r,s){var i,a,l=0,c=0,d=0,f=0,p=0,h=-20,m=0,g=e.scalefac,_=0;for(r.over_SSD=0,i=0;i<e.psymax;i++){var b,y=e.global_gain-(g[_++]+(0!=e.preflag?u[i]:0)<<e.scalefac_scale+1)-8*e.subblock_gain[e.window[i]],x=0;if(null!=s&&s.step[i]==y)x=s.noise[i],m+=e.width[i],n[l++]=x/t[c++],x=s.noise_log[i];else{var w,k=o(y);if(a=e.width[i]>>1,m+e.width[i]>e.max_nonzero_coeff)w=e.max_nonzero_coeff-m+1,a=w>0?w>>1:0;var S=new v(m);x=this.calc_noise_core(e,S,a,k),m=S.s,null!=s&&(s.step[i]=y,s.noise[i]=x),x=n[l++]=x/t[c++],x=cO.FAST_LOG10(Math.max(x,1e-20)),null!=s&&(s.noise_log[i]=x)}if(null!=s&&(s.global_gain=e.global_gain),p+=x,x>0)b=Math.max(0|10*x+.5,1),r.over_SSD+=b*b,d++,f+=x;h=Math.max(h,x)}return r.over_count=d,r.tot_noise=p,r.over_noise=f,r.max_noise=h,d},this.set_pinfo=function(e,t,n,o,r){var s,i,a,l,c,d=e.internal_flags,f=0==t.scalefac_scale?.5:1,p=t.scalefac,h=uO(L3Side.SFBMAX),m=uO(L3Side.SFBMAX),g=new CalcNoiseResult;calc_xmin(e,n,t,h),calc_noise(t,h,m,g,null);var v=0;for(i=t.sfb_lmax,t.block_type!=uC.SHORT_TYPE&&0==t.mixed_block_flag&&(i=22),s=0;s<i;s++){var _=d.scalefac_band.l[s],b=d.scalefac_band.l[s+1],y=b-_;for(l=0;v<b;v++)l+=t.xr[v]*t.xr[v];l/=y,c=1e15,d.pinfo.en[o][r][s]=c*l,d.pinfo.xfsf[o][r][s]=c*h[s]*m[s]/y,n.en.l[s]>0&&!e.ATHonly?l/=n.en.l[s]:l=0,d.pinfo.thr[o][r][s]=c*Math.max(l*n.thm.l[s],d.ATH.l[s]),d.pinfo.LAMEsfb[o][r][s]=0,0!=t.preflag&&s>=11&&(d.pinfo.LAMEsfb[o][r][s]=-f*u[s]),s<uC.SBPSY_l&&(fO(p[s]>=0),d.pinfo.LAMEsfb[o][r][s]-=f*p[s])}if(t.block_type==uC.SHORT_TYPE)for(i=s,s=t.sfb_smin;s<uC.SBMAX_s;s++){_=d.scalefac_band.s[s],b=d.scalefac_band.s[s+1],y=b-_;for(var x=0;x<3;x++){for(l=0,a=_;a<b;a++)l+=t.xr[v]*t.xr[v],v++;l=Math.max(l/y,1e-20),c=1e15,d.pinfo.en_s[o][r][3*s+x]=c*l,d.pinfo.xfsf_s[o][r][3*s+x]=c*h[i]*m[i]/y,n.en.s[s][x]>0?l/=n.en.s[s][x]:l=0,(e.ATHonly||e.ATHshort)&&(l=0),d.pinfo.thr_s[o][r][3*s+x]=c*Math.max(l*n.thm.s[s][x],d.ATH.s[s]),d.pinfo.LAMEsfb_s[o][r][3*s+x]=-2*t.subblock_gain[x],s<uC.SBPSY_s&&(d.pinfo.LAMEsfb_s[o][r][3*s+x]-=f*p[i]),i++}}d.pinfo.LAMEqss[o][r]=t.global_gain,d.pinfo.LAMEmainbits[o][r]=t.part2_3_length+t.part2_length,d.pinfo.LAMEsfbits[o][r]=t.part2_length,d.pinfo.over[o][r]=g.over_count,d.pinfo.max_noise[o][r]=10*g.max_noise,d.pinfo.over_noise[o][r]=10*g.over_noise,d.pinfo.tot_noise[o][r]=10*g.tot_noise,d.pinfo.over_SSD[o][r]=g.over_SSD}}pO.Q_MAX=257,pO.Q_MAX2=116,pO.LARGE_BITS=1e5,pO.IXMAX_VAL=8206;var hO=qR.System,mO=qR.Arrays,gO=qR.new_int,vO=qR.assert;function _O(){var e=null;function t(e){this.bits=0|e}this.qupvt=null,this.setModules=function(t){this.qupvt=t,e=t};var n=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]];function o(e,t,n,o,r,s){var i=.5946/t;e>>=1;while(0!=e--)r[s++]=i>n[o++]?0:1,r[s++]=i>n[o++]?0:1}function r(t,n,o,r,s,i){t>>=1;var a=t%2;t>>=1;while(0!=t--){var l,c,u,d,f,p,h,m;l=o[r++]*n,c=o[r++]*n,f=0|l,u=o[r++]*n,p=0|c,d=o[r++]*n,h=0|u,l+=e.adj43[f],m=0|d,c+=e.adj43[p],s[i++]=0|l,u+=e.adj43[h],s[i++]=0|c,d+=e.adj43[m],s[i++]=0|u,s[i++]=0|d}0!=a&&(l=o[r++]*n,c=o[r++]*n,f=0|l,p=0|c,l+=e.adj43[f],c+=e.adj43[p],s[i++]=0|l,s[i++]=0|c)}function s(t,n,s,i,a){var l,c,u,d=0,f=0,p=0,h=0,m=n,g=0,v=m,_=0,b=t,y=0;for(u=null!=a&&i.global_gain==a.global_gain,c=i.block_type==uC.SHORT_TYPE?38:21,l=0;l<=c;l++){var x=-1;if((u||i.block_type==uC.NORM_TYPE)&&(x=i.global_gain-(i.scalefac[l]+(0!=i.preflag?e.pretab[l]:0)<<i.scalefac_scale+1)-8*i.subblock_gain[i.window[l]]),vO(i.width[l]>=0),u&&a.step[l]==x)0!=f&&(r(f,s,b,y,v,_),f=0),0!=p&&(o(p,s,b,y,v,_),p=0);else{var w,k=i.width[l];if(d+i.width[l]>i.max_nonzero_coeff)w=i.max_nonzero_coeff-d+1,mO.fill(n,i.max_nonzero_coeff,576,0),k=w,k<0&&(k=0),l=c+1;if(0==f&&0==p&&(v=m,_=g,b=t,y=h),null!=a&&a.sfb_count1>0&&l>=a.sfb_count1&&a.step[l]>0&&x>=a.step[l]?(0!=f&&(r(f,s,b,y,v,_),f=0,v=m,_=g,b=t,y=h),p+=k):(0!=p&&(o(p,s,b,y,v,_),p=0,v=m,_=g,b=t,y=h),f+=k),k<=0){0!=p&&(o(p,s,b,y,v,_),p=0),0!=f&&(r(f,s,b,y,v,_),f=0);break}}l<=c&&(g+=i.width[l],h+=i.width[l],d+=i.width[l])}0!=f&&(r(f,s,b,y,v,_),f=0),0!=p&&(o(p,s,b,y,v,_),p=0)}function i(e,t,n){var o=0,r=0;do{var s=e[t++],i=e[t++];o<s&&(o=s),r<i&&(r=i)}while(t<n);return o<r&&(o=r),o}function a(e,t,n,o,r,s){var i,a=65536*iO.ht[o].xlen+iO.ht[r].xlen,l=0;do{var c=e[t++],u=e[t++];0!=c&&(c>14&&(c=15,l+=a),c*=16),0!=u&&(u>14&&(u=15,l+=a),c+=u),l+=iO.largetbl[c]}while(t<n);return i=65535&l,l>>=16,l>i&&(l=i,o=r),s.bits+=l,o}function l(e,t,n,o){var r=0,s=iO.ht[1].hlen;do{var i=2*e[t+0]+e[t+1];t+=2,r+=s[i]}while(t<n);return o.bits+=r,1}function c(e,t,n,o,r){var s,i,a=0,l=iO.ht[o].xlen;i=2==o?iO.table23:iO.table56;do{var c=e[t+0]*l+e[t+1];t+=2,a+=i[c]}while(t<n);return s=65535&a,a>>=16,a>s&&(a=s,o++),r.bits+=a,o}function u(e,t,n,o,r){var s=0,i=0,a=0,l=iO.ht[o].xlen,c=iO.ht[o].hlen,u=iO.ht[o+1].hlen,d=iO.ht[o+2].hlen;do{var f=e[t+0]*l+e[t+1];t+=2,s+=c[f],i+=u[f],a+=d[f]}while(t<n);var p=o;return s>i&&(s=i,p++),s>a&&(s=a,p=o+2),r.bits+=s,p}var d=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];function f(e,t,n,o){var r=i(e,t,n);switch(r){case 0:return r;case 1:return l(e,t,n,o);case 2:case 3:return c(e,t,n,d[r-1],o);case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:return u(e,t,n,d[r-1],o);default:if(r>pO.IXMAX_VAL)return o.bits=pO.LARGE_BITS,-1;var s,f;for(r-=15,s=24;s<32;s++)if(iO.ht[s].linmax>=r)break;for(f=s-8;f<24;f++)if(iO.ht[f].linmax>=r)break;return a(e,t,n,f,s,o)}}function p(e,n,o,r,s,i,a){for(var l=n.big_values,c=0;c<=22;c++)r[c]=pO.LARGE_BITS;for(c=0;c<16;c++){var u=e.scalefac_band.l[c+1];if(u>=l)break;var d=0,p=new t(d),h=f(o,0,u,p);d=p.bits;for(var m=0;m<8;m++){var g=e.scalefac_band.l[c+m+2];if(g>=l)break;var v=d;p=new t(v);var _=f(o,u,g,p);v=p.bits,r[c+m]>v&&(r[c+m]=v,s[c+m]=c,i[c+m]=h,a[c+m]=_)}}}function h(e,n,o,r,s,i,a,l){for(var c=n.big_values,u=2;u<uC.SBMAX_l+1;u++){var d=e.scalefac_band.l[u];if(d>=c)break;var p=s[u-2]+n.count1bits;if(o.part2_3_length<=p)break;var h=new t(p),m=f(r,d,c,h);p=h.bits,o.part2_3_length<=p||(o.assign(n),o.part2_3_length=p,o.region0_count=i[u-2],o.region1_count=u-2-i[u-2],o.table_select[0]=a[u-2],o.table_select[1]=l[u-2],o.table_select[2]=m)}}this.noquant_count_bits=function(e,n,o){var r=n.l3_enc,s=Math.min(576,n.max_nonzero_coeff+2>>1<<1);for(null!=o&&(o.sfb_count1=0);s>1;s-=2)if(0!=(r[s-1]|r[s-2]))break;n.count1=s;for(var i=0,a=0;s>3;s-=4){var l;if((2147483647&(r[s-1]|r[s-2]|r[s-3]|r[s-4]))>1)break;l=2*(2*(2*r[s-4]+r[s-3])+r[s-2])+r[s-1],i+=iO.t32l[l],a+=iO.t33l[l]}var c=i;if(n.count1table_select=0,i>a&&(c=a,n.count1table_select=1),n.count1bits=c,n.big_values=s,0==s)return c;if(n.block_type==uC.SHORT_TYPE)i=3*e.scalefac_band.s[3],i>n.big_values&&(i=n.big_values),a=n.big_values;else if(n.block_type==uC.NORM_TYPE){if(i=n.region0_count=e.bv_scf[s-2],a=n.region1_count=e.bv_scf[s-1],a=e.scalefac_band.l[i+a+2],i=e.scalefac_band.l[i+1],a<s){var u=new t(c);n.table_select[2]=f(r,a,s,u),c=u.bits}}else n.region0_count=7,n.region1_count=uC.SBMAX_l-1-7-1,i=e.scalefac_band.l[8],a=s,i>a&&(i=a);if(i=Math.min(i,s),a=Math.min(a,s),i>0){u=new t(c);n.table_select[0]=f(r,0,i,u),c=u.bits}if(i<a){u=new t(c);n.table_select[1]=f(r,i,a,u),c=u.bits}if(2==e.use_best_huffman&&(n.part2_3_length=c,best_huffman_divide(e,n),c=n.part2_3_length),null!=o&&n.block_type==uC.NORM_TYPE){var d=0;while(e.scalefac_band.l[d]<n.big_values)d++;o.sfb_count1=d}return c},this.count_bits=function(t,n,o,r){var i=o.l3_enc,a=pO.IXMAX_VAL/e.IPOW20(o.global_gain);if(o.xrpow_max>a)return pO.LARGE_BITS;if(s(n,i,e.IPOW20(o.global_gain),o,r),0!=(2&t.substep_shaping))for(var l=0,c=o.global_gain+o.scalefac_scale,u=.634521682242439/e.IPOW20(c),d=0;d<o.sfbmax;d++){var f,p=o.width[d];if(0==t.pseudohalf[d])l+=p;else for(f=l,l+=p;f<l;++f)i[f]=n[f]>=u?i[f]:0}return this.noquant_count_bits(t,o,r)},this.best_huffman_divide=function(e,n){var o=new AC,r=n.l3_enc,s=gO(23),i=gO(23),a=gO(23),l=gO(23);if(n.block_type!=uC.SHORT_TYPE||1!=e.mode_gr){o.assign(n),n.block_type==uC.NORM_TYPE&&(p(e,n,r,s,i,a,l),h(e,o,n,r,s,i,a,l));var c=o.big_values;if(!(0==c||(r[c-2]|r[c-1])>1)&&(c=n.count1+2,!(c>576))){o.assign(n),o.count1=c;for(var u=0,d=0;c>o.big_values;c-=4){var m=2*(2*(2*r[c-4]+r[c-3])+r[c-2])+r[c-1];u+=iO.t32l[m],d+=iO.t33l[m]}if(o.big_values=c,o.count1table_select=0,u>d&&(u=d,o.count1table_select=1),o.count1bits=u,o.block_type==uC.NORM_TYPE)h(e,o,n,r,s,i,a,l);else{if(o.part2_3_length=u,u=e.scalefac_band.l[8],u>c&&(u=c),u>0){var g=new t(o.part2_3_length);o.table_select[0]=f(r,0,u,g),o.part2_3_length=g.bits}if(c>u){g=new t(o.part2_3_length);o.table_select[1]=f(r,u,c,g),o.part2_3_length=g.bits}n.part2_3_length>o.part2_3_length&&n.assign(o)}}}};var m=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],g=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],v=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],_=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];function b(e,t){for(var n,o=t.tt[1][e],r=t.tt[0][e],s=0;s<iO.scfsi_band.length-1;s++){for(n=iO.scfsi_band[s];n<iO.scfsi_band[s+1];n++)if(r.scalefac[n]!=o.scalefac[n]&&o.scalefac[n]>=0)break;if(n==iO.scfsi_band[s+1]){for(n=iO.scfsi_band[s];n<iO.scfsi_band[s+1];n++)o.scalefac[n]=-1;t.scfsi[e][s]=1}}var i=0,a=0;for(n=0;n<11;n++)-1!=o.scalefac[n]&&(a++,i<o.scalefac[n]&&(i=o.scalefac[n]));for(var l=0,c=0;n<uC.SBPSY_l;n++)-1!=o.scalefac[n]&&(c++,l<o.scalefac[n]&&(l=o.scalefac[n]));for(s=0;s<16;s++)if(i<m[s]&&l<g[s]){var u=v[s]*a+_[s]*c;o.part2_length>u&&(o.part2_length=u,o.scalefac_compress=s)}}function y(e,t){for(var n=0;n<t;++n)if(e[n]<0)return!1;return!0}_O.slen1_tab=v,_O.slen2_tab=_,this.best_scalefac_store=function(t,n,o,r){var s,i,a,l,c=r.tt[n][o],u=0;for(a=0,s=0;s<c.sfbmax;s++){var d=c.width[s];for(a+=d,l=-d;l<0;l++)if(0!=c.l3_enc[l+a])break;0==l&&(c.scalefac[s]=u=-2)}if(0==c.scalefac_scale&&0==c.preflag){var f=0;for(s=0;s<c.sfbmax;s++)c.scalefac[s]>0&&(f|=c.scalefac[s]);if(0==(1&f)&&0!=f){for(s=0;s<c.sfbmax;s++)c.scalefac[s]>0&&(c.scalefac[s]>>=1);c.scalefac_scale=u=1}}if(0==c.preflag&&c.block_type!=uC.SHORT_TYPE&&2==t.mode_gr){for(s=11;s<uC.SBPSY_l;s++)if(c.scalefac[s]<e.pretab[s]&&-2!=c.scalefac[s])break;if(s==uC.SBPSY_l){for(s=11;s<uC.SBPSY_l;s++)c.scalefac[s]>0&&(c.scalefac[s]-=e.pretab[s]);c.preflag=u=1}}for(i=0;i<4;i++)r.scfsi[o][i]=0;for(2==t.mode_gr&&1==n&&r.tt[0][o].block_type!=uC.SHORT_TYPE&&r.tt[1][o].block_type!=uC.SHORT_TYPE&&(b(o,r),u=0),s=0;s<c.sfbmax;s++)-2==c.scalefac[s]&&(c.scalefac[s]=0);0!=u&&(2==t.mode_gr?this.scale_bitcount(c):this.scale_bitcount_lsf(t,c))};var x=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],w=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],k=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(t){var n,o,r,s=0,i=0,a=t.scalefac;if(vO(y(a,t.sfbmax)),t.block_type==uC.SHORT_TYPE)r=x,0!=t.mixed_block_flag&&(r=w);else if(r=k,0==t.preflag){for(o=11;o<uC.SBPSY_l;o++)if(a[o]<e.pretab[o])break;if(o==uC.SBPSY_l)for(t.preflag=1,o=11;o<uC.SBPSY_l;o++)a[o]-=e.pretab[o]}for(o=0;o<t.sfbdivide;o++)s<a[o]&&(s=a[o]);for(;o<t.sfbmax;o++)i<a[o]&&(i=a[o]);for(t.part2_length=pO.LARGE_BITS,n=0;n<16;n++)s<m[n]&&i<g[n]&&t.part2_length>r[n]&&(t.part2_length=r[n],t.scalefac_compress=n);return t.part2_length==pO.LARGE_BITS};var S=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(t,n){var o,r,s,i,a,l,c,u,d=gO(4),f=n.scalefac;for(o=0!=n.preflag?2:0,c=0;c<4;c++)d[c]=0;if(n.block_type==uC.SHORT_TYPE){r=1;var p=e.nr_of_sfb_block[o][r];for(u=0,s=0;s<4;s++)for(i=p[s]/3,c=0;c<i;c++,u++)for(a=0;a<3;a++)f[3*u+a]>d[s]&&(d[s]=f[3*u+a])}else{r=0;p=e.nr_of_sfb_block[o][r];for(u=0,s=0;s<4;s++)for(i=p[s],c=0;c<i;c++,u++)f[u]>d[s]&&(d[s]=f[u])}for(l=!1,s=0;s<4;s++)d[s]>S[o][s]&&(l=!0);if(!l){var h,m,g,v;for(n.sfb_partition_table=e.nr_of_sfb_block[o][r],s=0;s<4;s++)n.slen[s]=E[d[s]];switch(h=n.slen[0],m=n.slen[1],g=n.slen[2],v=n.slen[3],o){case 0:n.scalefac_compress=(5*h+m<<4)+(g<<2)+v;break;case 1:n.scalefac_compress=400+(5*h+m<<2)+g;break;case 2:n.scalefac_compress=500+3*h+m;break;default:hO.err.printf("intensity stereo not implemented yet\n");break}}if(!l)for(vO(null!=n.sfb_partition_table),n.part2_length=0,s=0;s<4;s++)n.part2_length+=n.slen[s]*n.sfb_partition_table[s];return l};var E=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(e){for(var t=2;t<=576;t+=2){var o,r=0;while(e.scalefac_band.l[++r]<t);o=n[r][0];while(e.scalefac_band.l[o+1]>t)o--;o<0&&(o=n[r][0]),e.bv_scf[t-2]=o,o=n[r][1];while(e.scalefac_band.l[o+e.bv_scf[t-2]+2]>t)o--;o<0&&(o=n[r][1]),e.bv_scf[t-1]=o}}}var bO=qR.System,yO=qR.Arrays,xO=qR.new_byte,wO=qR.new_float_n,kO=qR.new_int,SO=qR.assert;function EO(){var e=this,t=32773,n=null,o=null,r=null,s=null;this.setModules=function(e,t,i,a){n=e,o=t,r=i,s=a};var i=null,a=0,l=0,c=0;function u(e){bO.arraycopy(e.header[e.w_ptr].buf,0,i,l,e.sideinfo_len),l+=e.sideinfo_len,a+=8*e.sideinfo_len,e.w_ptr=e.w_ptr+1&qC.MAX_HEADER_BUF-1}function d(e,t,n){while(n>0){var o;0==c&&(c=8,l++,SO(e.header[e.w_ptr].write_timing>=a),e.header[e.w_ptr].write_timing==a&&u(e),i[l]=0),o=Math.min(n,c),n-=o,c-=o,i[l]|=t>>n<<c,a+=o}}function f(e,t,n){while(n>0){var o;0==c&&(c=8,l++,i[l]=0),o=Math.min(n,c),n-=o,c-=o,i[l]|=t>>n<<c,a+=o}}function p(e,t){var n,o=e.internal_flags;if(t>=8&&(d(o,76,8),t-=8),t>=8&&(d(o,65,8),t-=8),t>=8&&(d(o,77,8),t-=8),t>=8&&(d(o,69,8),t-=8),t>=32){var s=r.getLameShortVersion();if(t>=32)for(n=0;n<s.length&&t>=8;++n)t-=8,d(o,s.charAt(n),8)}for(;t>=1;t-=1)d(o,o.ancillary_flag,1),o.ancillary_flag^=e.disable_reservoir?0:1}function h(e,t,n){var o=e.header[e.h_ptr].ptr;while(n>0){var r=Math.min(n,8-(7&o));n-=r,e.header[e.h_ptr].buf[o>>3]|=t>>n<<8-(7&o)-r,o+=r}e.header[e.h_ptr].ptr=o}function m(e,n){e<<=8;for(var o=0;o<8;o++)e<<=1,n<<=1,0!=(65536&(n^e))&&(n^=t);return n}function g(e,t){var n,o,r,s=e.internal_flags;if(n=s.l3_side,s.header[s.h_ptr].ptr=0,yO.fill(s.header[s.h_ptr].buf,0,s.sideinfo_len,0),e.out_samplerate<16e3?h(s,4094,12):h(s,4095,12),h(s,e.version,1),h(s,1,2),h(s,e.error_protection?0:1,1),h(s,s.bitrate_index,4),h(s,s.samplerate_index,2),h(s,s.padding,1),h(s,e.extension,1),h(s,e.mode.ordinal(),2),h(s,s.mode_ext,2),h(s,e.copyright,1),h(s,e.original,1),h(s,e.emphasis,2),e.error_protection&&h(s,0,16),1==e.version){for(SO(n.main_data_begin>=0),h(s,n.main_data_begin,9),2==s.channels_out?h(s,n.private_bits,3):h(s,n.private_bits,5),r=0;r<s.channels_out;r++){var i;for(i=0;i<4;i++)h(s,n.scfsi[r][i],1)}for(o=0;o<2;o++)for(r=0;r<s.channels_out;r++){var a=n.tt[o][r];h(s,a.part2_3_length+a.part2_length,12),h(s,a.big_values/2,9),h(s,a.global_gain,8),h(s,a.scalefac_compress,4),a.block_type!=uC.NORM_TYPE?(h(s,1,1),h(s,a.block_type,2),h(s,a.mixed_block_flag,1),14==a.table_select[0]&&(a.table_select[0]=16),h(s,a.table_select[0],5),14==a.table_select[1]&&(a.table_select[1]=16),h(s,a.table_select[1],5),h(s,a.subblock_gain[0],3),h(s,a.subblock_gain[1],3),h(s,a.subblock_gain[2],3)):(h(s,0,1),14==a.table_select[0]&&(a.table_select[0]=16),h(s,a.table_select[0],5),14==a.table_select[1]&&(a.table_select[1]=16),h(s,a.table_select[1],5),14==a.table_select[2]&&(a.table_select[2]=16),h(s,a.table_select[2],5),SO(a.region0_count>=0&&a.region0_count<16),SO(a.region1_count>=0&&a.region1_count<8),h(s,a.region0_count,4),h(s,a.region1_count,3)),h(s,a.preflag,1),h(s,a.scalefac_scale,1),h(s,a.count1table_select,1)}}else for(SO(n.main_data_begin>=0),h(s,n.main_data_begin,8),h(s,n.private_bits,s.channels_out),o=0,r=0;r<s.channels_out;r++){a=n.tt[o][r];h(s,a.part2_3_length+a.part2_length,12),h(s,a.big_values/2,9),h(s,a.global_gain,8),h(s,a.scalefac_compress,9),a.block_type!=uC.NORM_TYPE?(h(s,1,1),h(s,a.block_type,2),h(s,a.mixed_block_flag,1),14==a.table_select[0]&&(a.table_select[0]=16),h(s,a.table_select[0],5),14==a.table_select[1]&&(a.table_select[1]=16),h(s,a.table_select[1],5),h(s,a.subblock_gain[0],3),h(s,a.subblock_gain[1],3),h(s,a.subblock_gain[2],3)):(h(s,0,1),14==a.table_select[0]&&(a.table_select[0]=16),h(s,a.table_select[0],5),14==a.table_select[1]&&(a.table_select[1]=16),h(s,a.table_select[1],5),14==a.table_select[2]&&(a.table_select[2]=16),h(s,a.table_select[2],5),SO(a.region0_count>=0&&a.region0_count<16),SO(a.region1_count>=0&&a.region1_count<8),h(s,a.region0_count,4),h(s,a.region1_count,3)),h(s,a.scalefac_scale,1),h(s,a.count1table_select,1)}e.error_protection&&CRC_writeheader(s,s.header[s.h_ptr].buf);var l=s.h_ptr;SO(s.header[l].ptr==8*s.sideinfo_len),s.h_ptr=l+1&qC.MAX_HEADER_BUF-1,s.header[s.h_ptr].write_timing=s.header[l].write_timing+t,s.h_ptr==s.w_ptr&&bO.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n")}function v(e,t){var n,o=iO.ht[t.count1table_select+32],r=0,s=t.big_values,i=t.big_values;for(SO(t.count1table_select<2),n=(t.count1-t.big_values)/4;n>0;--n){var a,l=0,c=0;a=t.l3_enc[s+0],0!=a&&(c+=8,t.xr[i+0]<0&&l++),a=t.l3_enc[s+1],0!=a&&(c+=4,l*=2,t.xr[i+1]<0&&l++),a=t.l3_enc[s+2],0!=a&&(c+=2,l*=2,t.xr[i+2]<0&&l++),a=t.l3_enc[s+3],0!=a&&(c++,l*=2,t.xr[i+3]<0&&l++),s+=4,i+=4,d(e,l+o.table[c],o.hlen[c]),r+=o.hlen[c]}return r}function _(e,t,n,o,r){var s=iO.ht[t],i=0;if(0==t)return i;for(var a=n;a<o;a+=2){var l=0,c=0,u=s.xlen,f=s.xlen,p=0,h=r.l3_enc[a],m=r.l3_enc[a+1];if(0!=h&&(r.xr[a]<0&&p++,l--),t>15){if(h>14){var g=h-15;SO(g<=s.linmax),p|=g<<1,c=u,h=15}if(m>14){var v=m-15;SO(v<=s.linmax),p<<=u,p|=v,c+=u,m=15}f=16}0!=m&&(p<<=1,r.xr[a+1]<0&&p++,l--),h=h*f+m,c-=l,l+=s.hlen[h],d(e,s.table[h],l),d(e,p,c),i+=l+c}return i}function b(e,t){var n=3*e.scalefac_band.s[3];n>t.big_values&&(n=t.big_values);var o=_(e,t.table_select[0],0,n,t);return o+=_(e,t.table_select[1],n,t.big_values,t),o}function y(e,t){var n,o,r,s;n=t.big_values;var i=t.region0_count+1;return SO(i<e.scalefac_band.l.length),r=e.scalefac_band.l[i],i+=t.region1_count+1,SO(i<e.scalefac_band.l.length),s=e.scalefac_band.l[i],r>n&&(r=n),s>n&&(s=n),o=_(e,t.table_select[0],0,r,t),o+=_(e,t.table_select[1],r,s,t),o+=_(e,t.table_select[2],s,n,t),o}function x(e){var t,n,o,r,s=0,i=e.internal_flags,a=i.l3_side;if(1==e.version)for(t=0;t<2;t++)for(n=0;n<i.channels_out;n++){var l=a.tt[t][n],c=_O.slen1_tab[l.scalefac_compress],u=_O.slen2_tab[l.scalefac_compress];for(r=0,o=0;o<l.sfbdivide;o++)-1!=l.scalefac[o]&&(d(i,l.scalefac[o],c),r+=c);for(;o<l.sfbmax;o++)-1!=l.scalefac[o]&&(d(i,l.scalefac[o],u),r+=u);SO(r==l.part2_length),l.block_type==uC.SHORT_TYPE?r+=b(i,l):r+=y(i,l),r+=v(i,l),SO(r==l.part2_3_length+l.part2_length),s+=r}else for(t=0,n=0;n<i.channels_out;n++){l=a.tt[t][n];var f,p,h=0;if(SO(null!=l.sfb_partition_table),r=0,o=0,p=0,l.block_type==uC.SHORT_TYPE){for(;p<4;p++){var m=l.sfb_partition_table[p]/3,g=l.slen[p];for(f=0;f<m;f++,o++)d(i,Math.max(l.scalefac[3*o+0],0),g),d(i,Math.max(l.scalefac[3*o+1],0),g),d(i,Math.max(l.scalefac[3*o+2],0),g),h+=3*g}r+=b(i,l)}else{for(;p<4;p++){m=l.sfb_partition_table[p],g=l.slen[p];for(f=0;f<m;f++,o++)d(i,Math.max(l.scalefac[o],0),g),h+=g}r+=y(i,l)}r+=v(i,l),SO(r==l.part2_3_length),SO(h==l.part2_length),s+=h+r}return s}function w(){this.total=0}function k(t,n){var o,r,s,i,c,u=t.internal_flags;return c=u.w_ptr,i=u.h_ptr-1,-1==i&&(i=qC.MAX_HEADER_BUF-1),o=u.header[i].write_timing-a,n.total=o,o>=0&&(r=1+i-c,i<c&&(r=1+i-c+qC.MAX_HEADER_BUF),o-=8*r*u.sideinfo_len),s=e.getframebits(t),o+=s,n.total+=s,n.total%8!=0?n.total=1+n.total/8:n.total=n.total/8,n.total+=l+1,o<0&&bO.err.println("strange error flushing buffer ... \n"),o}this.getframebits=function(e){var t,n=e.internal_flags;t=0!=n.bitrate_index?iO.bitrate_table[e.version][n.bitrate_index]:e.brate;var o=0|72e3*(e.version+1)*t/e.out_samplerate+n.padding;return 8*o},this.CRC_writeheader=function(e,t){var n=65535;n=m(255&t[2],n),n=m(255&t[3],n);for(var o=6;o<e.sideinfo_len;o++)n=m(255&t[o],n);t[4]=byte(n>>8),t[5]=byte(255&n)},this.flush_bitstream=function(e){var t,o,r=e.internal_flags,s=r.h_ptr-1;if(-1==s&&(s=qC.MAX_HEADER_BUF-1),t=r.l3_side,!((o=k(e,new w))<0)){if(p(e,o),SO(r.header[s].write_timing+this.getframebits(e)==a),r.ResvSize=0,t.main_data_begin=0,r.findReplayGain){var i=n.GetTitleGain(r.rgdata);SO(NEQ(i,GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES)),r.RadioGain=0|Math.floor(10*i+.5)}r.findPeakSample&&(r.noclipGainChange=0|Math.ceil(20*Math.log10(r.PeakSample/32767)*10),r.noclipGainChange>0&&(EQ(e.scale,1)||EQ(e.scale,0))?r.noclipScale=Math.floor(32767/r.PeakSample*100)/100:r.noclipScale=-1)}},this.add_dummy_byte=function(e,t,n){var o,r=e.internal_flags;while(n-- >0)for(f(r,t,8),o=0;o<qC.MAX_HEADER_BUF;++o)r.header[o].write_timing+=8},this.format_bitstream=function(e){var t,n=e.internal_flags;t=n.l3_side;var o=this.getframebits(e);p(e,t.resvDrain_pre),g(e,o);var r=8*n.sideinfo_len;if(r+=x(e),p(e,t.resvDrain_post),r+=t.resvDrain_post,t.main_data_begin+=(o-r)/8,k(e,new w)!=n.ResvSize&&bO.err.println("Internal buffer inconsistency. flushbits <> ResvSize"),8*t.main_data_begin!=n.ResvSize&&(bO.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size:             %d \nresv drain (post)         %d \nresv drain (pre)          %d \nheader and sideinfo:      %d \ndata bits:                %d \ntotal bits:               %d (remainder: %d) \nbitsperframe:             %d \n",8*t.main_data_begin,n.ResvSize,t.resvDrain_post,t.resvDrain_pre,8*n.sideinfo_len,r-t.resvDrain_post-8*n.sideinfo_len,r,r%8,o),bO.err.println("This is a fatal error.  It has several possible causes:"),bO.err.println("90%%  LAME compiled with buggy version of gcc using advanced optimizations"),bO.err.println(" 9%%  Your system is overclocked"),bO.err.println(" 1%%  bug in LAME encoding library"),n.ResvSize=8*t.main_data_begin),a>1e9){var s;for(s=0;s<qC.MAX_HEADER_BUF;++s)n.header[s].write_timing-=a;a=0}return 0},this.copy_buffer=function(e,t,r,a,u){var d=l+1;if(d<=0)return 0;if(0!=a&&d>a)return-1;if(bO.arraycopy(i,0,t,r,d),l=-1,c=0,0!=u){var f=kO(1);if(f[0]=e.nMusicCRC,s.updateMusicCRC(f,t,r,d),e.nMusicCRC=f[0],d>0&&(e.VBR_seek_table.nBytesWritten+=d),e.decode_on_the_fly){var p,h=wO([2,1152]),m=d,g=-1;while(0!=g)if(g=o.hip_decode1_unclipped(e.hip,t,r,m,h[0],h[1]),m=0,-1==g&&(g=0),g>0){if(e.findPeakSample){for(p=0;p<g;p++)h[0][p]>e.PeakSample?e.PeakSample=h[0][p]:-h[0][p]>e.PeakSample&&(e.PeakSample=-h[0][p]);if(e.channels_out>1)for(p=0;p<g;p++)h[1][p]>e.PeakSample?e.PeakSample=h[1][p]:-h[1][p]>e.PeakSample&&(e.PeakSample=-h[1][p])}if(e.findReplayGain&&n.AnalyzeSamples(e.rgdata,h[0],0,h[1],0,g,e.channels_out)==GainAnalysis.GAIN_ANALYSIS_ERROR)return-6}}}return d},this.init_bit_stream_w=function(e){i=xO(BO.LAME_MAXMP3BUFFER),e.h_ptr=e.w_ptr=0,e.header[e.h_ptr].write_timing=0,l=-1,c=0,a=0}}EO.EQ=function(e,t){return Math.abs(e)>Math.abs(t)?Math.abs(e-t)<=1e-6*Math.abs(e):Math.abs(e-t)<=1e-6*Math.abs(t)},EO.NEQ=function(e,t){return!EO.EQ(e,t)};var TO=qR.System,MO=qR.VbrMode,AO=qR.ShortBlock,RO=qR.new_float,CO=qR.new_int_n,OO=qR.new_short_n,IO=qR.assert;function BO(){var e=this,t=131072;BO.V9=410,BO.V8=420,BO.V7=430,BO.V6=440,BO.V5=450,BO.V4=460,BO.V3=470,BO.V2=480,BO.V1=490,BO.V0=500,BO.R3MIX=1e3,BO.STANDARD=1001,BO.EXTREME=1002,BO.INSANE=1003,BO.STANDARD_FAST=1004,BO.EXTREME_FAST=1005,BO.MEDIUM=1006,BO.MEDIUM_FAST=1007;var n,o,r,s,i,a=16384+t;BO.LAME_MAXMP3BUFFER=a;var l,c,u,d=new kC;function f(){this.mask_adjust=0,this.mask_adjust_short=0,this.bo_l_weight=RO(uC.SBMAX_l),this.bo_s_weight=RO(uC.SBMAX_s)}function p(){this.lowerlimit=0}function h(e,t){this.lowpass=t}this.enc=new uC,this.setModules=function(e,t,a,f,p,h,m,g,v){n=e,o=t,r=a,s=f,i=p,l=h,c=g,u=v,this.enc.setModules(o,d,s,l)};var m=4294479419;function g(e){var t;return e.class_id=m,t=e.internal_flags=new qC,e.mode=nC.NOT_SET,e.original=1,e.in_samplerate=44100,e.num_channels=2,e.num_samples=-1,e.bWriteVbrTag=!0,e.quality=-1,e.short_blocks=null,t.subblock_gain=-1,e.lowpassfreq=0,e.highpassfreq=0,e.lowpasswidth=-1,e.highpasswidth=-1,e.VBR=MO.vbr_off,e.VBR_q=4,e.ATHcurve=-1,e.VBR_mean_bitrate_kbps=128,e.VBR_min_bitrate_kbps=0,e.VBR_max_bitrate_kbps=0,e.VBR_hard_min=0,t.VBR_min_bitrate=1,t.VBR_max_bitrate=13,e.quant_comp=-1,e.quant_comp_short=-1,e.msfix=-1,t.resample_ratio=1,t.OldValue[0]=180,t.OldValue[1]=180,t.CurrentStep[0]=4,t.CurrentStep[1]=4,t.masking_lower=1,t.nsPsy.attackthre=-1,t.nsPsy.attackthre_s=-1,e.scale=-1,e.athaa_type=-1,e.ATHtype=-1,e.athaa_loudapprox=-1,e.athaa_sensitivity=0,e.useTemporal=null,e.interChRatio=-1,t.mf_samples_to_encode=uC.ENCDELAY+uC.POSTDELAY,e.encoder_padding=0,t.mf_size=uC.ENCDELAY-uC.MDCTDELAY,e.findReplayGain=!1,e.decode_on_the_fly=!1,t.decode_on_the_fly=!1,t.findReplayGain=!1,t.findPeakSample=!1,t.RadioGain=0,t.AudiophileGain=0,t.noclipGainChange=0,t.noclipScale=-1,e.preset=0,e.write_id3tag_automatic=!0,0}function v(e){return e>1?0:e<=0?1:Math.cos(Math.PI/2*e)}function _(e,t){var n=44100;return t>=48e3?n=48e3:t>=44100?n=44100:t>=32e3?n=32e3:t>=24e3?n=24e3:t>=22050?n=22050:t>=16e3?n=16e3:t>=12e3?n=12e3:t>=11025?n=11025:t>=8e3&&(n=8e3),-1==e?n:(e<=15960&&(n=44100),e<=15250&&(n=32e3),e<=11220&&(n=24e3),e<=9970&&(n=22050),e<=7230&&(n=16e3),e<=5420&&(n=12e3),e<=4510&&(n=11025),e<=3970&&(n=8e3),t<n?t>44100?48e3:t>32e3?44100:t>24e3?32e3:t>22050?24e3:t>16e3?22050:t>12e3?16e3:t>11025?12e3:t>8e3?11025:8e3:n)}function b(e,t){switch(e){case 44100:return t.version=1,0;case 48e3:return t.version=1,1;case 32e3:return t.version=1,2;case 22050:return t.version=0,0;case 24e3:return t.version=0,1;case 16e3:return t.version=0,2;case 11025:return t.version=0,0;case 12e3:return t.version=0,1;case 8e3:return t.version=0,2;default:return t.version=0,-1}}function y(e,t,n){n<16e3&&(t=2);for(var o=iO.bitrate_table[t][1],r=2;r<=14;r++)iO.bitrate_table[t][r]>0&&Math.abs(iO.bitrate_table[t][r]-e)<Math.abs(o-e)&&(o=iO.bitrate_table[t][r]);return o}function x(e,t,n){n<16e3&&(t=2);for(var o=0;o<=14;o++)if(iO.bitrate_table[t][o]>0&&iO.bitrate_table[t][o]==e)return o;return-1}function w(t,n){var o=[new h(8,2e3),new h(16,3700),new h(24,3900),new h(32,5500),new h(40,7e3),new h(48,7500),new h(56,1e4),new h(64,11e3),new h(80,13500),new h(96,15100),new h(112,15600),new h(128,17e3),new h(160,17500),new h(192,18600),new h(224,19400),new h(256,19700),new h(320,20500)],r=e.nearestBitrateFullIndex(n);t.lowerlimit=o[r].lowpass}function k(e){var t=e.internal_flags,n=32,o=-1;if(t.lowpass1>0){for(var r=999,s=0;s<=31;s++){var i=s/31;i>=t.lowpass2&&(n=Math.min(n,s)),t.lowpass1<i&&i<t.lowpass2&&(r=Math.min(r,s))}t.lowpass1=999==r?(n-.75)/31:(r-.75)/31,t.lowpass2=n/31}if(t.highpass2>0&&t.highpass2<.75/31*.9&&(t.highpass1=0,t.highpass2=0,TO.err.println("Warning: highpass filter disabled.  highpass frequency too small\n")),t.highpass2>0){var a=-1;for(s=0;s<=31;s++){i=s/31;i<=t.highpass1&&(o=Math.max(o,s)),t.highpass1<i&&i<t.highpass2&&(a=Math.max(a,s))}t.highpass1=o/31,t.highpass2=-1==a?(o+.75)/31:(a+.75)/31}for(s=0;s<32;s++){var l,c;i=s/31;l=t.highpass2>t.highpass1?v((t.highpass2-i)/(t.highpass2-t.highpass1+1e-20)):1,c=t.lowpass2>t.lowpass1?v((i-t.lowpass1)/(t.lowpass2-t.lowpass1+1e-20)):1,t.amp_filter[s]=l*c}}function S(e){var t=e.internal_flags;switch(e.quality){default:case 9:t.psymodel=0,t.noise_shaping=0,t.noise_shaping_amp=0,t.noise_shaping_stop=0,t.use_best_huffman=0,t.full_outer_loop=0;break;case 8:e.quality=7;case 7:t.psymodel=1,t.noise_shaping=0,t.noise_shaping_amp=0,t.noise_shaping_stop=0,t.use_best_huffman=0,t.full_outer_loop=0;break;case 6:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=0,t.full_outer_loop=0;break;case 5:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=0,t.full_outer_loop=0;break;case 4:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=0,t.noise_shaping_stop=0,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 3:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),t.noise_shaping_amp=1,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 2:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=1,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 1:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=2,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break;case 0:t.psymodel=1,0==t.noise_shaping&&(t.noise_shaping=1),0==t.substep_shaping&&(t.substep_shaping=2),t.noise_shaping_amp=2,t.noise_shaping_stop=1,-1==t.subblock_gain&&(t.subblock_gain=1),t.use_best_huffman=1,t.full_outer_loop=0;break}}function E(e){var t=e.internal_flags;e.frameNum=0,e.write_id3tag_automatic&&c.id3tag_write_v2(e),t.bitrate_stereoMode_Hist=CO([16,5]),t.bitrate_blockType_Hist=CO([16,6]),t.PeakSample=0,e.bWriteVbrTag&&l.InitVbrTag(e)}function T(e,t){(null==e.in_buffer_0||e.in_buffer_nsamples<t)&&(e.in_buffer_0=RO(t),e.in_buffer_1=RO(t),e.in_buffer_nsamples=t)}function M(e){var t=uC.BLKSIZE+e.framesize-uC.FFTOFFSET;return t=Math.max(t,512+e.framesize-32),t}function A(e,t,r,s,i,a,l){var c,u,d,f,p,h=e.internal_flags,g=0,v=[null,null],_=[null,null];if(h.Class_ID!=m)return-3;if(0==s)return 0;if(p=o.copy_buffer(h,i,a,l,0),p<0)return p;if(a+=p,g+=p,_[0]=t,_[1]=r,EO.NEQ(e.scale,0)&&EO.NEQ(e.scale,1))for(u=0;u<s;++u)_[0][u]*=e.scale,2==h.channels_out&&(_[1][u]*=e.scale);if(EO.NEQ(e.scale_left,0)&&EO.NEQ(e.scale_left,1))for(u=0;u<s;++u)_[0][u]*=e.scale_left;if(EO.NEQ(e.scale_right,0)&&EO.NEQ(e.scale_right,1))for(u=0;u<s;++u)_[1][u]*=e.scale_right;if(2==e.num_channels&&1==h.channels_out)for(u=0;u<s;++u)_[0][u]=.5*(_[0][u]+_[1][u]),_[1][u]=0;f=M(e),v[0]=h.mfbuf[0],v[1]=h.mfbuf[1];var b=0;while(s>0){var y=[null,null],x=0,w=0;y[0]=_[0],y[1]=_[1];var k=new C;if(L(e,v,y,b,s,k),x=k.n_in,w=k.n_out,h.findReplayGain&&!h.decode_on_the_fly&&n.AnalyzeSamples(h.rgdata,v[0],h.mf_size,v[1],h.mf_size,w,h.channels_out)==GainAnalysis.GAIN_ANALYSIS_ERROR)return-6;if(s-=x,b+=x,h.channels_out,h.mf_size+=w,IO(h.mf_size<=qC.MFSIZE),h.mf_samples_to_encode<1&&(h.mf_samples_to_encode=uC.ENCDELAY+uC.POSTDELAY),h.mf_samples_to_encode+=w,h.mf_size>=f){var S=l-g;if(0==l&&(S=0),c=R(e,v[0],v[1],i,a,S),c<0)return c;for(a+=c,g+=c,h.mf_size-=e.framesize,h.mf_samples_to_encode-=e.framesize,d=0;d<h.channels_out;d++)for(u=0;u<h.mf_size;u++)v[d][u]=v[d][u+e.framesize]}}return g}function R(t,n,o,r,s,i){var a=e.enc.lame_encode_mp3_frame(t,n,o,r,s,i);return t.frameNum++,a}function C(){this.n_in=0,this.n_out=0}function O(){this.num_used=0}function I(e,t){return 0!=t?I(t,e%t):e}function B(e,t,n){var o=Math.PI*t;e/=n,e<0&&(e=0),e>1&&(e=1);var r=e-.5,s=.42-.5*Math.cos(2*e*Math.PI)+.08*Math.cos(4*e*Math.PI);return Math.abs(r)<1e-9?o/Math.PI:s*Math.sin(n*o*r)/(Math.PI*n*r)}function P(e,t,n,o,r,s,i,a,l){var c,u,d=e.internal_flags,f=0,p=e.out_samplerate/I(e.out_samplerate,e.in_samplerate);p>qC.BPC&&(p=qC.BPC);var h=Math.abs(d.resample_ratio-Math.floor(.5+d.resample_ratio))<1e-4?1:0,m=1/d.resample_ratio;m>1&&(m=1);var g=31;g%2==0&&--g,g+=h;var v=g+1;if(0==d.fill_buffer_resample_init){for(d.inbuf_old[0]=RO(v),d.inbuf_old[1]=RO(v),c=0;c<=2*p;++c)d.blackfilt[c]=RO(v);for(d.itime[0]=0,d.itime[1]=0,f=0;f<=2*p;f++){var _=0,b=(f-p)/(2*p);for(c=0;c<=g;c++)_+=d.blackfilt[f][c]=B(c-b,m,g);for(c=0;c<=g;c++)d.blackfilt[f][c]/=_}d.fill_buffer_resample_init=1}var y=d.inbuf_old[l];for(u=0;u<o;u++){var x,w;if(x=u*d.resample_ratio,f=0|Math.floor(x-d.itime[l]),g+f-g/2>=i)break;b=x-d.itime[l]-(f+g%2*.5);w=0|Math.floor(2*b*p+p+.5);var k=0;for(c=0;c<=g;++c){var S,E=0|c+f-g/2;S=E<0?y[v+E]:r[s+E],k+=S*d.blackfilt[w][c]}t[n+u]=k}if(a.num_used=Math.min(i,g+f-g/2),d.itime[l]+=a.num_used-u*d.resample_ratio,a.num_used>=v)for(c=0;c<v;c++)y[c]=r[s+a.num_used+c-v];else{var T=v-a.num_used;for(c=0;c<T;++c)y[c]=y[c+a.num_used];for(f=0;c<v;++c,++f)y[c]=r[s+f];IO(f==a.num_used)}return u}function L(e,t,n,o,r,s){var i=e.internal_flags;if(i.resample_ratio<.9999||i.resample_ratio>1.0001)for(var a=0;a<i.channels_out;a++){var l=new O;s.n_out=P(e,t[a],i.mf_size,e.framesize,n[a],o,r,l,a),s.n_in=l.num_used}else{s.n_out=Math.min(e.framesize,r),s.n_in=s.n_out;for(var c=0;c<s.n_out;++c)t[0][i.mf_size+c]=n[0][o+c],2==i.channels_out&&(t[1][i.mf_size+c]=n[1][o+c])}}this.lame_init=function(){var e=new SC;return g(e),e.lame_allocated_gfp=1,e},this.nearestBitrateFullIndex=function(e){var t=[8,16,24,32,40,48,56,64,80,96,112,128,160,192,224,256,320],n=0,o=0,r=0,s=0;s=t[16],r=16,o=t[16],n=16;for(var i=0;i<16;i++)if(Math.max(e,t[i+1])!=e){s=t[i+1],r=i+1,o=t[i],n=i;break}return s-e>e-o?n:r},this.lame_init_params=function(e){var t=e.internal_flags;if(t.Class_ID=0,null==t.ATH&&(t.ATH=new XC),null==t.PSY&&(t.PSY=new f),null==t.rgdata&&(t.rgdata=new JC),t.channels_in=e.num_channels,1==t.channels_in&&(e.mode=nC.MONO),t.channels_out=e.mode==nC.MONO?1:2,t.mode_ext=uC.MPG_MD_MS_LR,e.mode==nC.MONO&&(e.force_ms=!1),e.VBR==MO.vbr_off&&128!=e.VBR_mean_bitrate_kbps&&0==e.brate&&(e.brate=e.VBR_mean_bitrate_kbps),e.VBR==MO.vbr_off||e.VBR==MO.vbr_mtrh||e.VBR==MO.vbr_mt||(e.free_format=!1),e.VBR==MO.vbr_off&&0==e.brate&&EO.EQ(e.compression_ratio,0)&&(e.compression_ratio=11.025),e.VBR==MO.vbr_off&&e.compression_ratio>0&&(0==e.out_samplerate&&(e.out_samplerate=map2MP3Frequency(int(.97*e.in_samplerate))),e.brate=0|16*e.out_samplerate*t.channels_out/(1e3*e.compression_ratio),t.samplerate_index=b(e.out_samplerate,e),e.free_format||(e.brate=y(e.brate,e.version,e.out_samplerate))),0!=e.out_samplerate&&(e.out_samplerate<16e3?(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,64)):e.out_samplerate<32e3?(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,160)):(e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,32),e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,320))),0==e.lowpassfreq){var a=16e3;switch(e.VBR){case MO.vbr_off:var l=new p;w(l,e.brate),a=l.lowerlimit;break;case MO.vbr_abr:l=new p;w(l,e.VBR_mean_bitrate_kbps),a=l.lowerlimit;break;case MO.vbr_rh:var c=[19500,19e3,18600,18e3,17500,16e3,15600,14900,12500,1e4,3950];if(e.VBR_q>=0&&e.VBR_q<=9){var h=c[e.VBR_q],g=c[e.VBR_q+1],v=e.VBR_q_frac;a=linear_int(h,g,v)}else a=19500;break;default:c=[19500,19e3,18500,18e3,17500,16500,15500,14500,12500,9500,3950];if(e.VBR_q>=0&&e.VBR_q<=9){h=c[e.VBR_q],g=c[e.VBR_q+1],v=e.VBR_q_frac;a=linear_int(h,g,v)}else a=19500}e.mode!=nC.MONO||e.VBR!=MO.vbr_off&&e.VBR!=MO.vbr_abr||(a*=1.5),e.lowpassfreq=0|a}if(0==e.out_samplerate&&(2*e.lowpassfreq>e.in_samplerate&&(e.lowpassfreq=e.in_samplerate/2),e.out_samplerate=_(0|e.lowpassfreq,e.in_samplerate)),e.lowpassfreq=Math.min(20500,e.lowpassfreq),e.lowpassfreq=Math.min(e.out_samplerate/2,e.lowpassfreq),e.VBR==MO.vbr_off&&(e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.brate)),e.VBR==MO.vbr_abr&&(e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.VBR_mean_bitrate_kbps)),e.bWriteVbrTag||(e.findReplayGain=!1,e.decode_on_the_fly=!1,t.findPeakSample=!1),t.findReplayGain=e.findReplayGain,t.decode_on_the_fly=e.decode_on_the_fly,t.decode_on_the_fly&&(t.findPeakSample=!0),t.findReplayGain&&n.InitGainAnalysis(t.rgdata,e.out_samplerate)==GainAnalysis.INIT_GAIN_ANALYSIS_ERROR)return e.internal_flags=null,-6;switch(t.decode_on_the_fly&&!e.decode_only&&(null!=t.hip&&u.hip_decode_exit(t.hip),t.hip=u.hip_decode_init()),t.mode_gr=e.out_samplerate<=24e3?1:2,e.framesize=576*t.mode_gr,e.encoder_delay=uC.ENCDELAY,t.resample_ratio=e.in_samplerate/e.out_samplerate,e.VBR){case MO.vbr_mt:case MO.vbr_rh:case MO.vbr_mtrh:var T=[5.7,6.5,7.3,8.2,10,11.9,13,14,15,16.5];e.compression_ratio=T[e.VBR_q];break;case MO.vbr_abr:e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.VBR_mean_bitrate_kbps);break;default:e.compression_ratio=16*e.out_samplerate*t.channels_out/(1e3*e.brate);break}if(e.mode==nC.NOT_SET&&(e.mode=nC.JOINT_STEREO),e.highpassfreq>0?(t.highpass1=2*e.highpassfreq,e.highpasswidth>=0?t.highpass2=2*(e.highpassfreq+e.highpasswidth):t.highpass2=2*e.highpassfreq,t.highpass1/=e.out_samplerate,t.highpass2/=e.out_samplerate):(t.highpass1=0,t.highpass2=0),e.lowpassfreq>0?(t.lowpass2=2*e.lowpassfreq,e.lowpasswidth>=0?(t.lowpass1=2*(e.lowpassfreq-e.lowpasswidth),t.lowpass1<0&&(t.lowpass1=0)):t.lowpass1=2*e.lowpassfreq,t.lowpass1/=e.out_samplerate,t.lowpass2/=e.out_samplerate):(t.lowpass1=0,t.lowpass2=0),k(e),t.samplerate_index=b(e.out_samplerate,e),t.samplerate_index<0)return e.internal_flags=null,-1;if(e.VBR==MO.vbr_off){if(e.free_format)t.bitrate_index=0;else if(e.brate=y(e.brate,e.version,e.out_samplerate),t.bitrate_index=x(e.brate,e.version,e.out_samplerate),t.bitrate_index<=0)return e.internal_flags=null,-1}else t.bitrate_index=1;e.analysis&&(e.bWriteVbrTag=!1),null!=t.pinfo&&(e.bWriteVbrTag=!1),o.init_bit_stream_w(t);for(var M,A=t.samplerate_index+3*e.version+6*(e.out_samplerate<16e3?1:0),R=0;R<uC.SBMAX_l+1;R++)t.scalefac_band.l[R]=s.sfBandIndex[A].l[R];for(R=0;R<uC.PSFB21+1;R++){var C=(t.scalefac_band.l[22]-t.scalefac_band.l[21])/uC.PSFB21,O=t.scalefac_band.l[21]+R*C;t.scalefac_band.psfb21[R]=O}t.scalefac_band.psfb21[uC.PSFB21]=576;for(R=0;R<uC.SBMAX_s+1;R++)t.scalefac_band.s[R]=s.sfBandIndex[A].s[R];for(R=0;R<uC.PSFB12+1;R++){C=(t.scalefac_band.s[13]-t.scalefac_band.s[12])/uC.PSFB12,O=t.scalefac_band.s[12]+R*C;t.scalefac_band.psfb12[R]=O}for(t.scalefac_band.psfb12[uC.PSFB12]=192,1==e.version?t.sideinfo_len=1==t.channels_out?21:36:t.sideinfo_len=1==t.channels_out?13:21,e.error_protection&&(t.sideinfo_len+=2),E(e),t.Class_ID=m,M=0;M<19;M++)t.nsPsy.pefirbuf[M]=700*t.mode_gr*t.channels_out;switch(-1==e.ATHtype&&(e.ATHtype=4),IO(e.VBR_q<=9),IO(e.VBR_q>=0),e.VBR){case MO.vbr_mt:e.VBR=MO.vbr_mtrh;case MO.vbr_mtrh:null==e.useTemporal&&(e.useTemporal=!1),r.apply_preset(e,500-10*e.VBR_q,0),e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),e.quality<5&&(e.quality=0),e.quality>5&&(e.quality=5),t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,e.experimentalY?t.sfb21_extra=!1:t.sfb21_extra=e.out_samplerate>44e3,t.iteration_loop=new VBRNewIterationLoop(i);break;case MO.vbr_rh:r.apply_preset(e,500-10*e.VBR_q,0),t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,e.experimentalY?t.sfb21_extra=!1:t.sfb21_extra=e.out_samplerate>44e3,e.quality>6&&(e.quality=6),e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),t.iteration_loop=new VBROldIterationLoop(i);break;default:var I;t.sfb21_extra=!1,e.quality<0&&(e.quality=LAME_DEFAULT_QUALITY),I=e.VBR,I==MO.vbr_off&&(e.VBR_mean_bitrate_kbps=e.brate),r.apply_preset(e,e.VBR_mean_bitrate_kbps,0),e.VBR=I,t.PSY.mask_adjust=e.maskingadjust,t.PSY.mask_adjust_short=e.maskingadjust_short,I==MO.vbr_off?t.iteration_loop=new rO(i):t.iteration_loop=new ABRIterationLoop(i);break}if(IO(e.scale>=0),e.VBR!=MO.vbr_off){if(t.VBR_min_bitrate=1,t.VBR_max_bitrate=14,e.out_samplerate<16e3&&(t.VBR_max_bitrate=8),0!=e.VBR_min_bitrate_kbps&&(e.VBR_min_bitrate_kbps=y(e.VBR_min_bitrate_kbps,e.version,e.out_samplerate),t.VBR_min_bitrate=x(e.VBR_min_bitrate_kbps,e.version,e.out_samplerate),t.VBR_min_bitrate<0))return-1;if(0!=e.VBR_max_bitrate_kbps&&(e.VBR_max_bitrate_kbps=y(e.VBR_max_bitrate_kbps,e.version,e.out_samplerate),t.VBR_max_bitrate=x(e.VBR_max_bitrate_kbps,e.version,e.out_samplerate),t.VBR_max_bitrate<0))return-1;e.VBR_min_bitrate_kbps=iO.bitrate_table[e.version][t.VBR_min_bitrate],e.VBR_max_bitrate_kbps=iO.bitrate_table[e.version][t.VBR_max_bitrate],e.VBR_mean_bitrate_kbps=Math.min(iO.bitrate_table[e.version][t.VBR_max_bitrate],e.VBR_mean_bitrate_kbps),e.VBR_mean_bitrate_kbps=Math.max(iO.bitrate_table[e.version][t.VBR_min_bitrate],e.VBR_mean_bitrate_kbps)}return e.tune&&(t.PSY.mask_adjust+=e.tune_value_a,t.PSY.mask_adjust_short+=e.tune_value_a),S(e),IO(e.scale>=0),e.athaa_type<0?t.ATH.useAdjust=3:t.ATH.useAdjust=e.athaa_type,t.ATH.aaSensitivityP=Math.pow(10,e.athaa_sensitivity/-10),null==e.short_blocks&&(e.short_blocks=AO.short_block_allowed),e.short_blocks!=AO.short_block_allowed||e.mode!=nC.JOINT_STEREO&&e.mode!=nC.STEREO||(e.short_blocks=AO.short_block_coupled),e.quant_comp<0&&(e.quant_comp=1),e.quant_comp_short<0&&(e.quant_comp_short=0),e.msfix<0&&(e.msfix=0),e.exp_nspsytune=1|e.exp_nspsytune,e.internal_flags.nsPsy.attackthre<0&&(e.internal_flags.nsPsy.attackthre=kC.NSATTACKTHRE),e.internal_flags.nsPsy.attackthre_s<0&&(e.internal_flags.nsPsy.attackthre_s=kC.NSATTACKTHRE_S),IO(e.scale>=0),e.scale<0&&(e.scale=1),e.ATHtype<0&&(e.ATHtype=4),e.ATHcurve<0&&(e.ATHcurve=4),e.athaa_loudapprox<0&&(e.athaa_loudapprox=2),e.interChRatio<0&&(e.interChRatio=0),null==e.useTemporal&&(e.useTemporal=!0),t.slot_lag=t.frac_SpF=0,e.VBR==MO.vbr_off&&(t.slot_lag=t.frac_SpF=72e3*(e.version+1)*e.brate%e.out_samplerate|0),s.iteration_init(e),d.psymodel_init(e),IO(e.scale>=0),0},this.lame_encode_flush=function(e,t,n,r){var s,i,a,l,u=e.internal_flags,d=OO([2,1152]),f=0,p=u.mf_samples_to_encode-uC.POSTDELAY,h=M(e);if(u.mf_samples_to_encode<1)return 0;s=0,e.in_samplerate!=e.out_samplerate&&(p+=16*e.out_samplerate/e.in_samplerate),a=e.framesize-p%e.framesize,a<576&&(a+=e.framesize),e.encoder_padding=a,l=(p+a)/e.framesize;while(l>0&&f>=0){var m=h-u.mf_size,g=e.frameNum;m*=e.in_samplerate,m/=e.out_samplerate,m>1152&&(m=1152),m<1&&(m=1),i=r-s,0==r&&(i=0),f=this.lame_encode_buffer(e,d[0],d[1],m,t,n,i),n+=f,s+=f,l-=g!=e.frameNum?1:0}if(u.mf_samples_to_encode=0,f<0)return f;if(i=r-s,0==r&&(i=0),o.flush_bitstream(e),f=o.copy_buffer(u,t,n,i,1),f<0)return f;if(n+=f,s+=f,i=r-s,0==r&&(i=0),e.write_id3tag_automatic){if(c.id3tag_write_v1(e),f=o.copy_buffer(u,t,n,i,0),f<0)return f;s+=f}return s},this.lame_encode_buffer=function(e,t,n,o,r,s,i){var a=e.internal_flags,l=[null,null];if(a.Class_ID!=m)return-3;if(0==o)return 0;T(a,o),l[0]=a.in_buffer_0,l[1]=a.in_buffer_1;for(var c=0;c<o;c++)l[0][c]=t[c],a.channels_in>1&&(l[1][c]=n[c]);return A(e,l[0],l[1],o,r,s,i)}}var PO=qR.VbrMode;function LO(){function e(e,t,n,o,r,s,i,a,l,c,u,d,f,p,h){this.vbr_q=e,this.quant_comp=t,this.quant_comp_s=n,this.expY=o,this.st_lrm=r,this.st_s=s,this.masking_adj=i,this.masking_adj_short=a,this.ath_lower=l,this.ath_curve=c,this.ath_sensitivity=u,this.interch=d,this.safejoint=f,this.sfb21mod=p,this.msfix=h}function t(e,t,n,o,r,s,i,a,l,c,u,d,f,p){this.quant_comp=t,this.quant_comp_s=n,this.safejoint=o,this.nsmsfix=r,this.st_lrm=s,this.st_s=i,this.nsbass=a,this.scale=l,this.masking_adj=c,this.ath_lower=u,this.ath_curve=d,this.interch=f,this.sfscale=p}var n;this.setModules=function(e){n=e};var o=[new e(0,9,9,0,5.2,125,-4.2,-6.3,4.8,1,0,0,2,21,.97),new e(1,9,9,0,5.3,125,-3.6,-5.6,4.5,1.5,0,0,2,21,1.35),new e(2,9,9,0,5.6,125,-2.2,-3.5,2.8,2,0,0,2,21,1.49),new e(3,9,9,1,5.8,130,-1.8,-2.8,2.6,3,-4,0,2,20,1.64),new e(4,9,9,1,6,135,-.7,-1.1,1.1,3.5,-8,0,2,0,1.79),new e(5,9,9,1,6.4,140,.5,.4,-7.5,4,-12,2e-4,0,0,1.95),new e(6,9,9,1,6.6,145,.67,.65,-14.7,6.5,-19,4e-4,0,0,2.3),new e(7,9,9,1,6.6,145,.8,.75,-19.7,8,-22,6e-4,0,0,2.7),new e(8,9,9,1,6.6,145,1.2,1.15,-27.5,10,-23,7e-4,0,0,0),new e(9,9,9,1,6.6,145,1.6,1.6,-36,11,-25,8e-4,0,0,0),new e(10,9,9,1,6.6,145,2,2,-36,12,-25,8e-4,0,0,0)],r=[new e(0,9,9,0,4.2,25,-7,-4,7.5,1,0,0,2,26,.97),new e(1,9,9,0,4.2,25,-5.6,-3.6,4.5,1.5,0,0,2,21,1.35),new e(2,9,9,0,4.2,25,-4.4,-1.8,2,2,0,0,2,18,1.49),new e(3,9,9,1,4.2,25,-3.4,-1.25,1.1,3,-4,0,2,15,1.64),new e(4,9,9,1,4.2,25,-2.2,.1,0,3.5,-8,0,2,0,1.79),new e(5,9,9,1,4.2,25,-1,1.65,-7.7,4,-12,2e-4,0,0,1.95),new e(6,9,9,1,4.2,25,-0,2.47,-7.7,6.5,-19,4e-4,0,0,2),new e(7,9,9,1,4.2,25,.5,2,-14.5,8,-22,6e-4,0,0,2),new e(8,9,9,1,4.2,25,1,2.4,-22,10,-23,7e-4,0,0,2),new e(9,9,9,1,4.2,25,1.5,2.95,-30,11,-25,8e-4,0,0,2),new e(10,9,9,1,4.2,25,2,2.95,-36,12,-30,8e-4,0,0,2)];function s(e,t,n){var s=e.VBR==PO.vbr_rh?o:r,i=e.VBR_q_frac,a=s[t],c=s[t+1],u=a;a.st_lrm=a.st_lrm+i*(c.st_lrm-a.st_lrm),a.st_s=a.st_s+i*(c.st_s-a.st_s),a.masking_adj=a.masking_adj+i*(c.masking_adj-a.masking_adj),a.masking_adj_short=a.masking_adj_short+i*(c.masking_adj_short-a.masking_adj_short),a.ath_lower=a.ath_lower+i*(c.ath_lower-a.ath_lower),a.ath_curve=a.ath_curve+i*(c.ath_curve-a.ath_curve),a.ath_sensitivity=a.ath_sensitivity+i*(c.ath_sensitivity-a.ath_sensitivity),a.interch=a.interch+i*(c.interch-a.interch),a.msfix=a.msfix+i*(c.msfix-a.msfix),l(e,u.vbr_q),0!=n?e.quant_comp=u.quant_comp:Math.abs(e.quant_comp- -1)>0||(e.quant_comp=u.quant_comp),0!=n?e.quant_comp_short=u.quant_comp_s:Math.abs(e.quant_comp_short- -1)>0||(e.quant_comp_short=u.quant_comp_s),0!=u.expY&&(e.experimentalY=0!=u.expY),0!=n?e.internal_flags.nsPsy.attackthre=u.st_lrm:Math.abs(e.internal_flags.nsPsy.attackthre- -1)>0||(e.internal_flags.nsPsy.attackthre=u.st_lrm),0!=n?e.internal_flags.nsPsy.attackthre_s=u.st_s:Math.abs(e.internal_flags.nsPsy.attackthre_s- -1)>0||(e.internal_flags.nsPsy.attackthre_s=u.st_s),0!=n?e.maskingadjust=u.masking_adj:Math.abs(e.maskingadjust-0)>0||(e.maskingadjust=u.masking_adj),0!=n?e.maskingadjust_short=u.masking_adj_short:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=u.masking_adj_short),0!=n?e.ATHlower=-u.ath_lower/10:Math.abs(10*-e.ATHlower-0)>0||(e.ATHlower=-u.ath_lower/10),0!=n?e.ATHcurve=u.ath_curve:Math.abs(e.ATHcurve- -1)>0||(e.ATHcurve=u.ath_curve),0!=n?e.athaa_sensitivity=u.ath_sensitivity:Math.abs(e.athaa_sensitivity- -1)>0||(e.athaa_sensitivity=u.ath_sensitivity),u.interch>0&&(0!=n?e.interChRatio=u.interch:Math.abs(e.interChRatio- -1)>0||(e.interChRatio=u.interch)),u.safejoint>0&&(e.exp_nspsytune=e.exp_nspsytune|u.safejoint),u.sfb21mod>0&&(e.exp_nspsytune=e.exp_nspsytune|u.sfb21mod<<20),0!=n?e.msfix=u.msfix:Math.abs(e.msfix- -1)>0||(e.msfix=u.msfix),0==n&&(e.VBR_q=t,e.VBR_q_frac=i)}var i=[new t(8,9,9,0,0,6.6,145,0,.95,0,-30,11,.0012,1),new t(16,9,9,0,0,6.6,145,0,.95,0,-25,11,.001,1),new t(24,9,9,0,0,6.6,145,0,.95,0,-20,11,.001,1),new t(32,9,9,0,0,6.6,145,0,.95,0,-15,11,.001,1),new t(40,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(48,9,9,0,0,6.6,145,0,.95,0,-10,11,9e-4,1),new t(56,9,9,0,0,6.6,145,0,.95,0,-6,11,8e-4,1),new t(64,9,9,0,0,6.6,145,0,.95,0,-2,11,8e-4,1),new t(80,9,9,0,0,6.6,145,0,.95,0,0,8,7e-4,1),new t(96,9,9,0,2.5,6.6,145,0,.95,0,1,5.5,6e-4,1),new t(112,9,9,0,2.25,6.6,145,0,.95,0,2,4.5,5e-4,1),new t(128,9,9,0,1.95,6.4,140,0,.95,0,3,4,2e-4,1),new t(160,9,9,1,1.79,6,135,0,.95,-2,5,3.5,0,1),new t(192,9,9,1,1.49,5.6,125,0,.97,-4,7,3,0,0),new t(224,9,9,1,1.25,5.2,125,0,.98,-6,9,2,0,0),new t(256,9,9,1,.97,5.2,125,0,1,-8,10,1,0,0),new t(320,9,9,1,.9,5.2,125,0,1,-10,12,0,0,0)];function a(e,t,o){var r=t,s=n.nearestBitrateFullIndex(t);if(e.VBR=PO.vbr_abr,e.VBR_mean_bitrate_kbps=r,e.VBR_mean_bitrate_kbps=Math.min(e.VBR_mean_bitrate_kbps,320),e.VBR_mean_bitrate_kbps=Math.max(e.VBR_mean_bitrate_kbps,8),e.brate=e.VBR_mean_bitrate_kbps,e.VBR_mean_bitrate_kbps>320&&(e.disable_reservoir=!0),i[s].safejoint>0&&(e.exp_nspsytune=2|e.exp_nspsytune),i[s].sfscale>0&&(e.internal_flags.noise_shaping=2),Math.abs(i[s].nsbass)>0){var a=int(4*i[s].nsbass);a<0&&(a+=64),e.exp_nspsytune=e.exp_nspsytune|a<<2}return 0!=o?e.quant_comp=i[s].quant_comp:Math.abs(e.quant_comp- -1)>0||(e.quant_comp=i[s].quant_comp),0!=o?e.quant_comp_short=i[s].quant_comp_s:Math.abs(e.quant_comp_short- -1)>0||(e.quant_comp_short=i[s].quant_comp_s),0!=o?e.msfix=i[s].nsmsfix:Math.abs(e.msfix- -1)>0||(e.msfix=i[s].nsmsfix),0!=o?e.internal_flags.nsPsy.attackthre=i[s].st_lrm:Math.abs(e.internal_flags.nsPsy.attackthre- -1)>0||(e.internal_flags.nsPsy.attackthre=i[s].st_lrm),0!=o?e.internal_flags.nsPsy.attackthre_s=i[s].st_s:Math.abs(e.internal_flags.nsPsy.attackthre_s- -1)>0||(e.internal_flags.nsPsy.attackthre_s=i[s].st_s),0!=o?e.scale=i[s].scale:Math.abs(e.scale- -1)>0||(e.scale=i[s].scale),0!=o?e.maskingadjust=i[s].masking_adj:Math.abs(e.maskingadjust-0)>0||(e.maskingadjust=i[s].masking_adj),i[s].masking_adj>0?0!=o?e.maskingadjust_short=.9*i[s].masking_adj:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=.9*i[s].masking_adj):0!=o?e.maskingadjust_short=1.1*i[s].masking_adj:Math.abs(e.maskingadjust_short-0)>0||(e.maskingadjust_short=1.1*i[s].masking_adj),0!=o?e.ATHlower=-i[s].ath_lower/10:Math.abs(10*-e.ATHlower-0)>0||(e.ATHlower=-i[s].ath_lower/10),0!=o?e.ATHcurve=i[s].ath_curve:Math.abs(e.ATHcurve- -1)>0||(e.ATHcurve=i[s].ath_curve),0!=o?e.interChRatio=i[s].interch:Math.abs(e.interChRatio- -1)>0||(e.interChRatio=i[s].interch),t}function l(e,t){var n=0;return t<0&&(n=-1,t=0),t>9&&(n=-1,t=9),e.VBR_q=t,e.VBR_q_frac=0,n}this.apply_preset=function(e,t,n){switch(t){case BO.R3MIX:t=BO.V3,e.VBR=PO.vbr_mtrh;break;case BO.MEDIUM:t=BO.V4,e.VBR=PO.vbr_rh;break;case BO.MEDIUM_FAST:t=BO.V4,e.VBR=PO.vbr_mtrh;break;case BO.STANDARD:t=BO.V2,e.VBR=PO.vbr_rh;break;case BO.STANDARD_FAST:t=BO.V2,e.VBR=PO.vbr_mtrh;break;case BO.EXTREME:t=BO.V0,e.VBR=PO.vbr_rh;break;case BO.EXTREME_FAST:t=BO.V0,e.VBR=PO.vbr_mtrh;break;case BO.INSANE:return t=320,e.preset=t,a(e,t,n),e.VBR=PO.vbr_off,t}switch(e.preset=t,t){case BO.V9:return s(e,9,n),t;case BO.V8:return s(e,8,n),t;case BO.V7:return s(e,7,n),t;case BO.V6:return s(e,6,n),t;case BO.V5:return s(e,5,n),t;case BO.V4:return s(e,4,n),t;case BO.V3:return s(e,3,n),t;case BO.V2:return s(e,2,n),t;case BO.V1:return s(e,1,n),t;case BO.V0:return s(e,0,n),t}return t>=8&&t<=320?a(e,t,n):(e.preset=0,t)}}function NO(){this.setModules=function(e,t){}}function jO(){this.over_noise=0,this.tot_noise=0,this.max_noise=0,this.over_count=0,this.over_SSD=0,this.bits=0}var FO=qR.new_float,DO=qR.new_int;function HO(){this.global_gain=0,this.sfb_count1=0,this.step=DO(39),this.noise=FO(39),this.noise_log=FO(39)}var UO=qR.System,VO=qR.VbrMode,$O=qR.Util,zO=qR.Arrays,qO=qR.new_float,YO=qR.assert;function XO(){var e,t,n;this.rv=null,this.qupvt=null;var o,r=new NO;function s(e,t,n,o){o=0;for(var r=0;r<=n;++r){var s=Math.abs(e.xr[r]);o+=s,t[r]=Math.sqrt(s*Math.sqrt(s)),t[r]>e.xrpow_max&&(e.xrpow_max=t[r])}return o}function i(e,t){var o=e.ATH,r=t.xr;if(t.block_type!=uC.SHORT_TYPE)for(var s=!1,i=uC.PSFB21-1;i>=0&&!s;i--){var a=e.scalefac_band.psfb21[i],l=e.scalefac_band.psfb21[i+1],c=n.athAdjust(o.adjust,o.psfb21[i],o.floor);e.nsPsy.longfact[21]>1e-12&&(c*=e.nsPsy.longfact[21]);for(var u=l-1;u>=a;u--){if(!(Math.abs(r[u])<c)){s=!0;break}r[u]=0}}else for(var d=0;d<3;d++)for(s=!1,i=uC.PSFB12-1;i>=0&&!s;i--){a=3*e.scalefac_band.s[12]+(e.scalefac_band.s[13]-e.scalefac_band.s[12])*d+(e.scalefac_band.psfb12[i]-e.scalefac_band.psfb12[0]),l=a+(e.scalefac_band.psfb12[i+1]-e.scalefac_band.psfb12[i]);var f=n.athAdjust(o.adjust,o.psfb12[i],o.floor);e.nsPsy.shortfact[12]>1e-12&&(f*=e.nsPsy.shortfact[12]);for(u=l-1;u>=a;u--){if(!(Math.abs(r[u])<f)){s=!0;break}r[u]=0}}}function a(e){this.ordinal=e}function l(e,t,n,r,s){var i,l=e.CurrentStep[r],c=!1,u=e.OldValue[r],d=a.BINSEARCH_NONE;for(t.global_gain=u,n-=t.part2_length;;){var f;if(i=o.count_bits(e,s,t,null),1==l||i==n)break;i>n?(d==a.BINSEARCH_DOWN&&(c=!0),c&&(l/=2),d=a.BINSEARCH_UP,f=l):(d==a.BINSEARCH_UP&&(c=!0),c&&(l/=2),d=a.BINSEARCH_DOWN,f=-l),t.global_gain+=f,t.global_gain<0&&(t.global_gain=0,c=!0),t.global_gain>255&&(t.global_gain=255,c=!0)}YO(t.global_gain>=0),YO(t.global_gain<256);while(i>n&&t.global_gain<255)t.global_gain++,i=o.count_bits(e,s,t,null);return e.CurrentStep[r]=u-t.global_gain>=4?4:2,e.OldValue[r]=t.global_gain,t.part2_3_length=i,i}function c(e){for(var t=0;t<e.sfbmax;t++)if(e.scalefac[t]+e.subblock_gain[e.window[t]]==0)return!1;return!0}function u(e){return $O.FAST_LOG10(.368+.632*e*e*e)}function d(e,t){for(var n=1e-37,o=0;o<t.psymax;o++)n+=u(e[o]);return Math.max(1e-20,n)}function f(e,t,n,o,r){var s;switch(e){default:case 9:t.over_count>0?(s=n.over_SSD<=t.over_SSD,n.over_SSD==t.over_SSD&&(s=n.bits<t.bits)):s=n.max_noise<0&&10*n.max_noise+n.bits<=10*t.max_noise+t.bits;break;case 0:s=n.over_count<t.over_count||n.over_count==t.over_count&&n.over_noise<t.over_noise||n.over_count==t.over_count&&BitStream.EQ(n.over_noise,t.over_noise)&&n.tot_noise<t.tot_noise;break;case 8:n.max_noise=d(r,o);case 1:s=n.max_noise<t.max_noise;break;case 2:s=n.tot_noise<t.tot_noise;break;case 3:s=n.tot_noise<t.tot_noise&&n.max_noise<t.max_noise;break;case 4:s=n.max_noise<=0&&t.max_noise>.2||n.max_noise<=0&&t.max_noise<0&&t.max_noise>n.max_noise-.2&&n.tot_noise<t.tot_noise||n.max_noise<=0&&t.max_noise>0&&t.max_noise>n.max_noise-.2&&n.tot_noise<t.tot_noise+t.over_noise||n.max_noise>0&&t.max_noise>-.05&&t.max_noise>n.max_noise-.1&&n.tot_noise+n.over_noise<t.tot_noise+t.over_noise||n.max_noise>0&&t.max_noise>-.1&&t.max_noise>n.max_noise-.15&&n.tot_noise+n.over_noise+n.over_noise<t.tot_noise+t.over_noise+t.over_noise;break;case 5:s=n.over_noise<t.over_noise||BitStream.EQ(n.over_noise,t.over_noise)&&n.tot_noise<t.tot_noise;break;case 6:s=n.over_noise<t.over_noise||BitStream.EQ(n.over_noise,t.over_noise)&&(n.max_noise<t.max_noise||BitStream.EQ(n.max_noise,t.max_noise)&&n.tot_noise<=t.tot_noise);break;case 7:s=n.over_count<t.over_count||n.over_noise<t.over_noise;break}return 0==t.over_count&&(s=s&&n.bits<t.bits),s}function p(e,t,n,o,r){var s,i=e.internal_flags;s=0==t.scalefac_scale?1.2968395546510096:1.6817928305074292;for(var a=0,l=0;l<t.sfbmax;l++)a<n[l]&&(a=n[l]);var c=i.noise_shaping_amp;switch(3==c&&(c=r?2:1),c){case 2:break;case 1:a>1?a=Math.pow(a,.5):a*=.95;break;case 0:default:a>1?a=1:a*=.95;break}var u=0;for(l=0;l<t.sfbmax;l++){var d,f=t.width[l];if(u+=f,!(n[l]<a)){if(0!=(2&i.substep_shaping)&&(i.pseudohalf[l]=0==i.pseudohalf[l]?1:0,0==i.pseudohalf[l]&&2==i.noise_shaping_amp))return;for(t.scalefac[l]++,d=-f;d<0;d++)o[u+d]*=s,o[u+d]>t.xrpow_max&&(t.xrpow_max=o[u+d]);if(2==i.noise_shaping_amp)return}}}function h(e,t){for(var o=1.2968395546510096,r=0,s=0;s<e.sfbmax;s++){var i=e.width[s],a=e.scalefac[s];if(0!=e.preflag&&(a+=n.pretab[s]),r+=i,0!=(1&a)){a++;for(var l=-i;l<0;l++)t[r+l]*=o,t[r+l]>e.xrpow_max&&(e.xrpow_max=t[r+l])}e.scalefac[s]=a>>1}e.preflag=0,e.scalefac_scale=1}function m(e,t,o){var r,s=t.scalefac;for(r=0;r<t.sfb_lmax;r++)if(s[r]>=16)return!0;for(var i=0;i<3;i++){var a=0,l=0;for(r=t.sfb_lmax+i;r<t.sfbdivide;r+=3)a<s[r]&&(a=s[r]);for(;r<t.sfbmax;r+=3)l<s[r]&&(l=s[r]);if(!(a<16&&l<8)){if(t.subblock_gain[i]>=7)return!0;t.subblock_gain[i]++;var c=e.scalefac_band.l[t.sfb_lmax];for(r=t.sfb_lmax+i;r<t.sfbmax;r+=3){var u=t.width[r],d=s[r];if(d-=4>>t.scalefac_scale,d>=0)s[r]=d,c+=3*u;else{s[r]=0;var f=210+(d<<t.scalefac_scale+1);h=n.IPOW20(f),c+=u*(i+1);for(var p=-u;p<0;p++)o[c+p]*=h,o[c+p]>t.xrpow_max&&(t.xrpow_max=o[c+p]);c+=u*(3-i-1)}}var h=n.IPOW20(202);c+=t.width[r]*(i+1);for(p=-t.width[r];p<0;p++)o[c+p]*=h,o[c+p]>t.xrpow_max&&(t.xrpow_max=o[c+p])}}return!1}function g(e,t,n,r,s){var i=e.internal_flags;p(e,t,n,r,s);var a=c(t);return!a&&(a=2==i.mode_gr?o.scale_bitcount(t):o.scale_bitcount_lsf(i,t),!a||(i.noise_shaping>1&&(zO.fill(i.pseudohalf,0),0==t.scalefac_scale?(h(t,r),a=!1):t.block_type==uC.SHORT_TYPE&&i.subblock_gain>0&&(a=m(i,t,r)||c(t))),a||(a=2==i.mode_gr?o.scale_bitcount(t):o.scale_bitcount_lsf(i,t)),!a))}this.setModules=function(s,i,a,l){e=s,t=i,this.rv=i,n=a,this.qupvt=a,o=l,r.setModules(n,o)},this.ms_convert=function(e,t){for(var n=0;n<576;++n){var o=e.tt[t][0].xr[n],r=e.tt[t][1].xr[n];e.tt[t][0].xr[n]=(o+r)*(.5*$O.SQRT2),e.tt[t][1].xr[n]=(o-r)*(.5*$O.SQRT2)}},this.init_xrpow=function(e,t,n){var o=0,r=0|t.max_nonzero_coeff;if(t.xrpow_max=0,zO.fill(n,r,576,0),o=s(t,n,r,o),o>1e-20){var i=0;0!=(2&e.substep_shaping)&&(i=1);for(var a=0;a<t.psymax;a++)e.pseudohalf[a]=i;return!0}return zO.fill(t.l3_enc,0,576,0),!1},this.init_outer_loop=function(e,t){t.part2_3_length=0,t.big_values=0,t.count1=0,t.global_gain=210,t.scalefac_compress=0,t.table_select[0]=0,t.table_select[1]=0,t.table_select[2]=0,t.subblock_gain[0]=0,t.subblock_gain[1]=0,t.subblock_gain[2]=0,t.subblock_gain[3]=0,t.region0_count=0,t.region1_count=0,t.preflag=0,t.scalefac_scale=0,t.count1table_select=0,t.part2_length=0,t.sfb_lmax=uC.SBPSY_l,t.sfb_smin=uC.SBPSY_s,t.psy_lmax=e.sfb21_extra?uC.SBMAX_l:uC.SBPSY_l,t.psymax=t.psy_lmax,t.sfbmax=t.sfb_lmax,t.sfbdivide=11;for(var o=0;o<uC.SBMAX_l;o++)t.width[o]=e.scalefac_band.l[o+1]-e.scalefac_band.l[o],t.window[o]=3;if(t.block_type==uC.SHORT_TYPE){var r=qO(576);t.sfb_smin=0,t.sfb_lmax=0,0!=t.mixed_block_flag&&(t.sfb_smin=3,t.sfb_lmax=2*e.mode_gr+4),t.psymax=t.sfb_lmax+3*((e.sfb21_extra?uC.SBMAX_s:uC.SBPSY_s)-t.sfb_smin),t.sfbmax=t.sfb_lmax+3*(uC.SBPSY_s-t.sfb_smin),t.sfbdivide=t.sfbmax-18,t.psy_lmax=t.sfb_lmax;var s=e.scalefac_band.l[t.sfb_lmax];UO.arraycopy(t.xr,0,r,0,576);for(o=t.sfb_smin;o<uC.SBMAX_s;o++)for(var a=e.scalefac_band.s[o],l=e.scalefac_band.s[o+1],c=0;c<3;c++)for(var u=a;u<l;u++)t.xr[s++]=r[3*u+c];var d=t.sfb_lmax;for(o=t.sfb_smin;o<uC.SBMAX_s;o++)t.width[d]=t.width[d+1]=t.width[d+2]=e.scalefac_band.s[o+1]-e.scalefac_band.s[o],t.window[d]=0,t.window[d+1]=1,t.window[d+2]=2,d+=3}t.count1bits=0,t.sfb_partition_table=n.nr_of_sfb_block[0][0],t.slen[0]=0,t.slen[1]=0,t.slen[2]=0,t.slen[3]=0,t.max_nonzero_coeff=575,zO.fill(t.scalefac,0),i(e,t)},a.BINSEARCH_NONE=new a(0),a.BINSEARCH_UP=new a(1),a.BINSEARCH_DOWN=new a(2),this.trancate_smallspectrums=function(e,t,r,s){var i=qO(EC.SFBMAX);if((0!=(4&e.substep_shaping)||t.block_type!=uC.SHORT_TYPE)&&0==(128&e.substep_shaping)){n.calc_noise(t,r,i,new jO,null);for(var a=0;a<576;a++){var l=0;0!=t.l3_enc[a]&&(l=Math.abs(t.xr[a])),s[a]=l}a=0;var c=8;t.block_type==uC.SHORT_TYPE&&(c=6);do{var u,d,f,p,h=t.width[c];if(a+=h,!(i[c]>=1)&&(zO.sort(s,a-h,h),!BitStream.EQ(s[a-1],0))){u=(1-i[c])*r[c],d=0,p=0;do{var m;for(f=1;p+f<h;f++)if(BitStream.NEQ(s[p+a-h],s[p+a+f-h]))break;if(m=s[p+a-h]*s[p+a-h]*f,u<m){0!=p&&(d=s[p+a-h-1]);break}u-=m,p+=f}while(p<h);if(!BitStream.EQ(d,0))do{Math.abs(t.xr[a-h])<=d&&(t.l3_enc[a-h]=0)}while(--h>0)}}while(++c<t.psymax);t.part2_3_length=o.noquant_count_bits(e,t,null)}},this.outer_loop=function(e,t,r,s,i,a){var c,u=e.internal_flags,d=new AC,p=qO(576),h=qO(EC.SFBMAX),m=new jO,v=new HO,_=9999999,b=!1,y=!1,x=0;if(l(u,t,a,i,s),0==u.noise_shaping)return 100;n.calc_noise(t,r,h,m,v),m.bits=t.part2_3_length,d.assign(t);var w=0;UO.arraycopy(s,0,p,0,576);while(!b){do{var k,S=new jO,E=255;if(k=0!=(2&u.substep_shaping)?20:3,u.sfb21_extra){if(h[d.sfbmax]>1)break;if(d.block_type==uC.SHORT_TYPE&&(h[d.sfbmax+1]>1||h[d.sfbmax+2]>1))break}if(!g(e,d,h,s,y))break;0!=d.scalefac_scale&&(E=254);var T=a-d.part2_length;if(T<=0)break;while((d.part2_3_length=o.count_bits(u,s,d,v))>T&&d.global_gain<=E)d.global_gain++;if(d.global_gain>E)break;if(0==m.over_count){while((d.part2_3_length=o.count_bits(u,s,d,v))>_&&d.global_gain<=E)d.global_gain++;if(d.global_gain>E)break}if(n.calc_noise(d,r,h,S,v),S.bits=d.part2_3_length,c=t.block_type!=uC.SHORT_TYPE?e.quant_comp:e.quant_comp_short,c=f(c,m,S,d,h)?1:0,0!=c)_=t.part2_3_length,m=S,t.assign(d),w=0,UO.arraycopy(s,0,p,0,576);else if(0==u.full_outer_loop){if(++w>k&&0==m.over_count)break;if(3==u.noise_shaping_amp&&y&&w>30)break;if(3==u.noise_shaping_amp&&y&&d.global_gain-x>15)break}}while(d.global_gain+d.scalefac_scale<255);3==u.noise_shaping_amp?y?b=!0:(d.assign(t),UO.arraycopy(p,0,s,0,576),w=0,x=d.global_gain,y=!0):b=!0}return YO(t.global_gain+t.scalefac_scale<=255),e.VBR==VO.vbr_rh||e.VBR==VO.vbr_mtrh?UO.arraycopy(p,0,s,0,576):0!=(1&u.substep_shaping)&&trancate_smallspectrums(u,t,r,s),m.over_count},this.iteration_finish_one=function(e,n,r){var s=e.l3_side,i=s.tt[n][r];o.best_scalefac_store(e,n,r,s),1==e.use_best_huffman&&o.best_huffman_divide(e,i),t.ResvAdjust(e,i)},this.VBR_encode_granule=function(e,t,n,o,r,s,i){var a,l,c=e.internal_flags,u=new AC,d=qO(576),f=i,p=i+1,h=(i+s)/2,m=0,g=c.sfb21_extra;YO(f<=LameInternalFlags.MAX_BITS_PER_CHANNEL),zO.fill(u.l3_enc,0);do{c.sfb21_extra=!(h>f-42)&&g,l=outer_loop(e,t,n,o,r,h),l<=0?(m=1,p=t.part2_3_length,u.assign(t),UO.arraycopy(o,0,d,0,576),i=p-32,a=i-s,h=(i+s)/2):(s=h+32,a=i-s,h=(i+s)/2,0!=m&&(m=2,t.assign(u),UO.arraycopy(d,0,o,0,576)))}while(a>12);c.sfb21_extra=g,2==m&&UO.arraycopy(u.l3_enc,0,t.l3_enc,0,576),YO(t.part2_3_length<=f)},this.get_framebits=function(n,o){var r=n.internal_flags;r.bitrate_index=r.VBR_min_bitrate;var s=e.getframebits(n);r.bitrate_index=1,s=e.getframebits(n);for(var i=1;i<=r.VBR_max_bitrate;i++){r.bitrate_index=i;var a=new MeanBits(s);o[i]=t.ResvFrameBegin(n,a),s=a.bits}},this.VBR_old_prepare=function(e,o,r,s,i,a,l,c,u){var d,f=e.internal_flags,p=0,h=1,m=0;f.bitrate_index=f.VBR_max_bitrate;var g=t.ResvFrameBegin(e,new MeanBits(0))/f.mode_gr;get_framebits(e,a);for(var v=0;v<f.mode_gr;v++){var _=n.on_pe(e,o,c[v],g,v,0);f.mode_ext==uC.MPG_MD_MS_LR&&(ms_convert(f.l3_side,v),n.reduce_side(c[v],r[v],g,_));for(var b=0;b<f.channels_out;++b){var y=f.l3_side.tt[v][b];y.block_type!=uC.SHORT_TYPE?(p=1.28/(1+Math.exp(3.5-o[v][b]/300))-.05,d=f.PSY.mask_adjust-p):(p=2.56/(1+Math.exp(3.5-o[v][b]/300))-.14,d=f.PSY.mask_adjust_short-p),f.masking_lower=Math.pow(10,.1*d),init_outer_loop(f,y),u[v][b]=n.calc_xmin(e,s[v][b],y,i[v][b]),0!=u[v][b]&&(h=0),l[v][b]=126,m+=c[v][b]}}for(v=0;v<f.mode_gr;v++)for(b=0;b<f.channels_out;b++)m>a[f.VBR_max_bitrate]&&(c[v][b]*=a[f.VBR_max_bitrate],c[v][b]/=m),l[v][b]>c[v][b]&&(l[v][b]=c[v][b]);return h},this.bitpressure_strategy=function(e,t,n,o){for(var r=0;r<e.mode_gr;r++)for(var s=0;s<e.channels_out;s++){for(var i=e.l3_side.tt[r][s],a=t[r][s],l=0,c=0;c<i.psy_lmax;c++)a[l++]*=1+.029*c*c/uC.SBMAX_l/uC.SBMAX_l;if(i.block_type==uC.SHORT_TYPE)for(c=i.sfb_smin;c<uC.SBMAX_s;c++)a[l++]*=1+.029*c*c/uC.SBMAX_s/uC.SBMAX_s,a[l++]*=1+.029*c*c/uC.SBMAX_s/uC.SBMAX_s,a[l++]*=1+.029*c*c/uC.SBMAX_s/uC.SBMAX_s;o[r][s]=0|Math.max(n[r][s],.9*o[r][s])}},this.VBR_new_prepare=function(e,o,r,s,i,a){var l,c=e.internal_flags,u=1,d=0,f=0;if(e.free_format){c.bitrate_index=0;p=new MeanBits(d);l=t.ResvFrameBegin(e,p),d=p.bits,i[0]=l}else{c.bitrate_index=c.VBR_max_bitrate;var p=new MeanBits(d);t.ResvFrameBegin(e,p),d=p.bits,get_framebits(e,i),l=i[c.VBR_max_bitrate]}for(var h=0;h<c.mode_gr;h++){n.on_pe(e,o,a[h],d,h,0),c.mode_ext==uC.MPG_MD_MS_LR&&ms_convert(c.l3_side,h);for(var m=0;m<c.channels_out;++m){var g=c.l3_side.tt[h][m];c.masking_lower=Math.pow(10,.1*c.PSY.mask_adjust),init_outer_loop(c,g),0!=n.calc_xmin(e,r[h][m],g,s[h][m])&&(u=0),f+=a[h][m]}}for(h=0;h<c.mode_gr;h++)for(m=0;m<c.channels_out;m++)f>l&&(a[h][m]*=l,a[h][m]/=f);return u},this.calc_target_bits=function(o,r,s,i,a,l){var c,u,d,f,p=o.internal_flags,h=p.l3_side,m=0;p.bitrate_index=p.VBR_max_bitrate;var g=new MeanBits(m);for(l[0]=t.ResvFrameBegin(o,g),m=g.bits,p.bitrate_index=1,m=e.getframebits(o)-8*p.sideinfo_len,a[0]=m/(p.mode_gr*p.channels_out),m=o.VBR_mean_bitrate_kbps*o.framesize*1e3,0!=(1&p.substep_shaping)&&(m*=1.09),m/=o.out_samplerate,m-=8*p.sideinfo_len,m/=p.mode_gr*p.channels_out,c=.93+.07*(11-o.compression_ratio)/5.5,c<.9&&(c=.9),c>1&&(c=1),u=0;u<p.mode_gr;u++){var v=0;for(d=0;d<p.channels_out;d++){if(i[u][d]=int(c*m),r[u][d]>700){var _=int((r[u][d]-700)/1.4),b=h.tt[u][d];i[u][d]=int(c*m),b.block_type==uC.SHORT_TYPE&&_<m/2&&(_=m/2),_>3*m/2?_=3*m/2:_<0&&(_=0),i[u][d]+=_}i[u][d]>LameInternalFlags.MAX_BITS_PER_CHANNEL&&(i[u][d]=LameInternalFlags.MAX_BITS_PER_CHANNEL),v+=i[u][d]}if(v>LameInternalFlags.MAX_BITS_PER_GRANULE)for(d=0;d<p.channels_out;++d)i[u][d]*=LameInternalFlags.MAX_BITS_PER_GRANULE,i[u][d]/=v}if(p.mode_ext==uC.MPG_MD_MS_LR)for(u=0;u<p.mode_gr;u++)n.reduce_side(i[u],s[u],m*p.channels_out,LameInternalFlags.MAX_BITS_PER_GRANULE);for(f=0,u=0;u<p.mode_gr;u++)for(d=0;d<p.channels_out;d++)i[u][d]>LameInternalFlags.MAX_BITS_PER_CHANNEL&&(i[u][d]=LameInternalFlags.MAX_BITS_PER_CHANNEL),f+=i[u][d];if(f>l[0])for(u=0;u<p.mode_gr;u++)for(d=0;d<p.channels_out;d++)i[u][d]*=l[0],i[u][d]/=f}}var GO=qR.assert;function WO(){var e;this.setModules=function(t){e=t},this.ResvFrameBegin=function(t,n){var o,r=t.internal_flags,s=r.l3_side,i=e.getframebits(t);n.bits=(i-8*r.sideinfo_len)/r.mode_gr;var a=2048*r.mode_gr-8;t.brate>320?o=8*int(1e3*t.brate/(t.out_samplerate/1152)/8+.5):(o=11520,t.strict_ISO&&(o=8*int(32e4/(t.out_samplerate/1152)/8+.5))),r.ResvMax=o-i,r.ResvMax>a&&(r.ResvMax=a),(r.ResvMax<0||t.disable_reservoir)&&(r.ResvMax=0);var l=n.bits*r.mode_gr+Math.min(r.ResvSize,r.ResvMax);return l>o&&(l=o),GO(r.ResvMax%8==0),GO(r.ResvMax>=0),s.resvDrain_pre=0,null!=r.pinfo&&(r.pinfo.mean_bits=n.bits/2,r.pinfo.resvsize=r.ResvSize),l},this.ResvMaxBits=function(e,t,n,o){var r,s=e.internal_flags,i=s.ResvSize,a=s.ResvMax;0!=o&&(i+=t),0!=(1&s.substep_shaping)&&(a*=.9),n.bits=t,10*i>9*a?(r=i-9*a/10,n.bits+=r,s.substep_shaping|=128):(r=0,s.substep_shaping&=127,e.disable_reservoir||0!=(1&s.substep_shaping)||(n.bits-=.1*t));var l=i<6*s.ResvMax/10?i:6*s.ResvMax/10;return l-=r,l<0&&(l=0),l},this.ResvAdjust=function(e,t){e.ResvSize-=t.part2_3_length+t.part2_length},this.ResvFrameEnd=function(e,t){var n,o=e.l3_side;e.ResvSize+=t*e.mode_gr;var r=0;o.resvDrain_post=0,o.resvDrain_pre=0,0!=(n=e.ResvSize%8)&&(r+=n),n=e.ResvSize-r-e.ResvMax,n>0&&(r+=n);var s=Math.min(8*o.main_data_begin,r)/8;o.resvDrain_pre+=8*s,r-=8*s,e.ResvSize-=8*s,o.main_data_begin-=s,o.resvDrain_post+=r,e.ResvSize-=r}}function KO(){var e="http://www.mp3dev.org/",t=3,n=98,o=4,r=0,s=93;this.getLameVersion=function(){return t+"."+n+"."+o},this.getLameShortVersion=function(){return t+"."+n+"."+o},this.getLameVeryShortVersion=function(){return"LAME"+t+"."+n+"r"},this.getPsyVersion=function(){return r+"."+s},this.getLameUrl=function(){return e},this.getLameOsBitness=function(){return"32bits"}}var ZO=qR.System,QO=qR.VbrMode,JO=qR.ShortBlock,eI=qR.Arrays,tI=qR.new_byte,nI=qR.assert;function oI(){var e,t,n;this.setModules=function(o,r,s){e=o,t=r,n=s};var o=1,r=2,s=4,i=8,a=oI.NUMTOCENTRIES,l=oI.MAXFRAMESIZE,c=a+4+4+4+4+4,u=c+9+1+1+8+1+1+3+1+1+2+4+2+2,d=128,f=64,p=32,h=null,m="Xing",g="Info",v=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];function _(e,t){if(e.nVbrNumFrames++,e.sum+=t,e.seen++,!(e.seen<e.want)&&(e.pos<e.size&&(e.bag[e.pos]=e.sum,e.pos++,e.seen=0),e.pos==e.size)){for(var n=1;n<e.size;n+=2)e.bag[n/2]=e.bag[n];e.want*=2,e.pos/=2}}function b(e,t){if(!(e.pos<=0))for(var n=1;n<a;++n){var o,r,s=n/a,i=0|Math.floor(s*e.pos);i>e.pos-1&&(i=e.pos-1),o=e.bag[i],r=e.sum;var l=0|256*o/r;l>255&&(l=255),t[n]=255&l}}function y(e,t){var n=255&e[t+0];return n<<=8,n|=255&e[t+1],n<<=8,n|=255&e[t+2],n<<=8,n|=255&e[t+3],n}function x(e,t,n){e[t+0]=255&n>>24,e[t+1]=255&n>>16,e[t+2]=255&n>>8,e[t+3]=255&n}function w(e,t,n){e[t+0]=255&n>>8,e[t+1]=255&n}function k(e,t){return new String(e,t,m.length(),h).equals(m)||new String(e,t,g.length(),h).equals(g)}function S(e,t,n){return 255&(e<<t|n&~(-1<<t))}function E(t,n){var o=t.internal_flags;n[0]=S(n[0],8,255),n[1]=S(n[1],3,7),n[1]=S(n[1],1,t.out_samplerate<16e3?0:1),n[1]=S(n[1],1,t.version),n[1]=S(n[1],2,1),n[1]=S(n[1],1,t.error_protection?0:1),n[2]=S(n[2],4,o.bitrate_index),n[2]=S(n[2],2,o.samplerate_index),n[2]=S(n[2],1,0),n[2]=S(n[2],1,t.extension),n[3]=S(n[3],2,t.mode.ordinal()),n[3]=S(n[3],2,o.mode_ext),n[3]=S(n[3],1,t.copyright),n[3]=S(n[3],1,t.original),n[3]=S(n[3],2,t.emphasis),n[0]=255;var r,s,i=241&n[1];r=1==t.version?d:t.out_samplerate<16e3?p:f,t.VBR==QO.vbr_off&&(r=t.brate),s=t.free_format?0:255&16*e.BitrateIndex(r,t.version,t.out_samplerate),1==t.version?(n[1]=255&(10|i),i=13&n[2],n[2]=255&(s|i)):(n[1]=255&(2|i),i=13&n[2],n[2]=255&(s|i))}function T(e,t){var n=t^e;return t=t>>8^v[255&n],t}function M(e,t,o,r,s){var i,a,l,c=e.internal_flags,u=0,d=e.encoder_delay,f=e.encoder_padding,p=100-10*e.VBR_q-e.quality,h=n.getLameVeryShortVersion(),m=0,g=[1,5,3,2,4,0,3],v=0|(e.lowpassfreq/100+.5>255?255:e.lowpassfreq/100+.5),_=0,b=0,y=0,k=e.internal_flags.noise_shaping,S=0,E=0,M=0,A=0,R=0,C=0!=(1&e.exp_nspsytune),O=0!=(2&e.exp_nspsytune),I=!1,B=!1,P=e.internal_flags.nogap_total,L=e.internal_flags.nogap_current,N=e.ATHtype,j=0;switch(e.VBR){case vbr_abr:l=e.VBR_mean_bitrate_kbps;break;case vbr_off:l=e.brate;break;default:l=e.VBR_min_bitrate_kbps}switch(i=e.VBR.ordinal()<g.length?g[e.VBR.ordinal()]:0,a=16*m+i,c.findReplayGain&&(c.RadioGain>510&&(c.RadioGain=510),c.RadioGain<-510&&(c.RadioGain=-510),b=8192,b|=3072,c.RadioGain>=0?b|=c.RadioGain:(b|=512,b|=-c.RadioGain)),c.findPeakSample&&(_=Math.abs(0|c.PeakSample/32767*Math.pow(2,23)+.5)),-1!=P&&(L>0&&(B=!0),L<P-1&&(I=!0)),j=N+((C?1:0)<<4)+((O?1:0)<<5)+((I?1:0)<<6)+((B?1:0)<<7),p<0&&(p=0),e.mode){case MONO:S=0;break;case STEREO:S=1;break;case DUAL_CHANNEL:S=2;break;case JOINT_STEREO:S=e.force_ms?4:3;break;case NOT_SET:default:S=7;break}M=e.in_samplerate<=32e3?0:48e3==e.in_samplerate?2:e.in_samplerate>48e3?3:1,(e.short_blocks==JO.short_block_forced||e.short_blocks==JO.short_block_dispensed||-1==e.lowpassfreq&&-1==e.highpassfreq||e.scale_left<e.scale_right||e.scale_left>e.scale_right||e.disable_reservoir&&e.brate<320||e.noATH||e.ATHonly||0==N||e.in_samplerate<=32e3)&&(E=1),A=k+(S<<2)+(E<<5)+(M<<6),R=c.nMusicCRC,x(o,r+u,p),u+=4;for(var F=0;F<9;F++)o[r+u+F]=255&h.charAt(F);u+=9,o[r+u]=255&a,u++,o[r+u]=255&v,u++,x(o,r+u,_),u+=4,w(o,r+u,b),u+=2,w(o,r+u,y),u+=2,o[r+u]=255&j,u++,o[r+u]=l>=255?255:255&l,u++,o[r+u]=255&d>>4,o[r+u+1]=255&(d<<4)+(f>>8),o[r+u+2]=255&f,u+=3,o[r+u]=255&A,u++,o[r+u++]=0,w(o,r+u,e.preset),u+=2,x(o,r+u,t),u+=4,w(o,r+u,R),u+=2;for(var D=0;D<u;D++)s=T(o[r+D],s);return w(o,r+u,s),u+=2,u}function A(e){e.seek(0);var t,n=tI(10);return e.readFully(n),t=new String(n,"ISO-8859-1").startsWith("ID3")?0:((127&n[6])<<21|(127&n[7])<<14|(127&n[8])<<7|127&n[9])+n.length,t}this.addVbrFrame=function(e){var t=e.internal_flags,n=Tables.bitrate_table[e.version][t.bitrate_index];nI(null!=t.VBR_seek_table.bag),_(t.VBR_seek_table,n)},this.getVbrTag=function(e){var t=new VBRTagData,n=0;t.flags=0;var l=e[n+1]>>3&1,c=e[n+2]>>2&3,u=e[n+3]>>6&3,d=e[n+2]>>4&15;if(d=Tables.bitrate_table[l][d],e[n+1]>>4==14?t.samprate=Tables.samplerate_table[2][c]:t.samprate=Tables.samplerate_table[l][c],n+=0!=l?3!=u?36:21:3!=u?21:13,!k(e,n))return null;n+=4,t.hId=l;var f=t.flags=y(e,n);if(n+=4,0!=(f&o)&&(t.frames=y(e,n),n+=4),0!=(f&r)&&(t.bytes=y(e,n),n+=4),0!=(f&s)){if(null!=t.toc)for(var p=0;p<a;p++)t.toc[p]=e[n+p];n+=a}t.vbrScale=-1,0!=(f&i)&&(t.vbrScale=y(e,n),n+=4),t.headersize=72e3*(l+1)*d/t.samprate,n+=21;var h=e[n+0]<<4;h+=e[n+1]>>4;var m=(15&e[n+1])<<8;return m+=255&e[n+2],(h<0||h>3e3)&&(h=-1),(m<0||m>3e3)&&(m=-1),t.encDelay=h,t.encPadding=m,t},this.InitVbrTag=function(e){var n,o=e.internal_flags;n=1==e.version?d:e.out_samplerate<16e3?p:f,e.VBR==QO.vbr_off&&(n=e.brate);var r=72e3*(e.version+1)*n/e.out_samplerate,s=o.sideinfo_len+u;if(o.VBR_seek_table.TotalFrameSize=r,r<s||r>l)e.bWriteVbrTag=!1;else{o.VBR_seek_table.nVbrNumFrames=0,o.VBR_seek_table.nBytesWritten=0,o.VBR_seek_table.sum=0,o.VBR_seek_table.seen=0,o.VBR_seek_table.want=1,o.VBR_seek_table.pos=0,null==o.VBR_seek_table.bag&&(o.VBR_seek_table.bag=new int[400],o.VBR_seek_table.size=400);var i=tI(l);E(e,i);for(var a=o.VBR_seek_table.TotalFrameSize,c=0;c<a;++c)t.add_dummy_byte(e,255&i[c],1)}},this.updateMusicCRC=function(e,t,n,o){for(var r=0;r<o;++r)e[0]=T(t[n+r],e[0])},this.getLameTagFrame=function(e,n){var l=e.internal_flags;if(!e.bWriteVbrTag)return 0;if(l.Class_ID!=Lame.LAME_ID)return 0;if(l.VBR_seek_table.pos<=0)return 0;if(n.length<l.VBR_seek_table.TotalFrameSize)return l.VBR_seek_table.TotalFrameSize;eI.fill(n,0,l.VBR_seek_table.TotalFrameSize,0),E(e,n);var c=tI(a);if(e.free_format)for(var u=1;u<a;++u)c[u]=255&255*u/100;else b(l.VBR_seek_table,c);var d=l.sideinfo_len;e.error_protection&&(d-=2),e.VBR==QO.vbr_off?(n[d++]=255&g.charAt(0),n[d++]=255&g.charAt(1),n[d++]=255&g.charAt(2),n[d++]=255&g.charAt(3)):(n[d++]=255&m.charAt(0),n[d++]=255&m.charAt(1),n[d++]=255&m.charAt(2),n[d++]=255&m.charAt(3)),x(n,d,o+r+s+i),d+=4,x(n,d,l.VBR_seek_table.nVbrNumFrames),d+=4;var f=l.VBR_seek_table.nBytesWritten+l.VBR_seek_table.TotalFrameSize;x(n,d,0|f),d+=4,ZO.arraycopy(c,0,n,d,c.length),d+=c.length,e.error_protection&&t.CRC_writeheader(l,n);var p=0;for(u=0;u<d;u++)p=T(n[u],p);return d+=M(e,f,n,d,p),l.VBR_seek_table.TotalFrameSize},this.putVbrTag=function(e,t){var n=e.internal_flags;if(n.VBR_seek_table.pos<=0)return-1;if(t.seek(t.length()),0==t.length())return-1;var o=A(t);t.seek(o);var r=tI(l),s=getLameTagFrame(e,r);return s>r.length?-1:(s<1||t.write(r,0,s),0)}}oI.NUMTOCENTRIES=100,oI.MAXFRAMESIZE=2880;var rI=qR.new_byte,sI=qR.assert;function iI(){this.setModules=function(e,t){}}function aI(){this.setModules=function(e,t,n){}}function lI(){}function cI(){this.setModules=function(e,t){}}function uI(e,t,n){3!=arguments.length&&(console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"),e=1,t=44100,n=128);var o=new BO,r=new iI,s=new KC,i=new EO,a=new LO,l=new pO,c=new XO,u=new oI,d=new KO,f=new cI,p=new WO,h=new _O,m=new aI,g=new lI;o.setModules(s,i,a,l,c,u,d,f,g),i.setModules(s,g,d,u),f.setModules(i,d),a.setModules(o),c.setModules(i,p,l,h),l.setModules(h,p,o.enc.psy),p.setModules(i),h.setModules(l),u.setModules(o,i,d),r.setModules(m,g),m.setModules(d,f,a);var v=o.lame_init();v.num_channels=e,v.in_samplerate=t,v.brate=n,v.mode=nC.STEREO,v.quality=3,v.bWriteVbrTag=!1,v.disable_reservoir=!0,v.write_id3tag_automatic=!1,o.lame_init_params(v);var _=1152,b=0|1.25*_+7200,y=rI(b);this.encodeBuffer=function(t,n){1==e&&(n=t),sI(t.length==n.length),t.length>_&&(_=t.length,b=0|1.25*_+7200,y=rI(b));var r=o.lame_encode_buffer(v,t,n,t.length,y,0,b);return new Int8Array(y.subarray(0,r))},this.flush=function(){var e=o.lame_encode_flush(v,y,0,b);return new Int8Array(y.subarray(0,e))}}function dI(e){return e.charCodeAt(0)<<24|e.charCodeAt(1)<<16|e.charCodeAt(2)<<8|e.charCodeAt(3)}dI("RIFF"),dI("WAVE"),dI("fmt "),dI("data");class fI{constructor(e){this.bitRate=e.bitRate,this.sampleRate=e.sampleRate,this.dataBuffer=[],this.encoder=new uI(1,this.sampleRate,this.bitRate)}encode(e){const t=1152,n=this._convertBuffer(e);let o=n.length;for(let r=0;o>=0;r+=t){const e=n.subarray(r,r+t),s=this.encoder.encodeBuffer(e);this.dataBuffer.push(new Int8Array(s)),o-=t}}finish(){this.dataBuffer.push(this.encoder.flush());const e=new Blob(this.dataBuffer,{type:"audio/mp3"});return this.dataBuffer=[],{id:Date.now(),blob:e,url:URL.createObjectURL(e)}}_floatTo16BitPCM(e,t){for(let n=0;n<e.length;n++){const o=Math.max(-1,Math.min(1,e[n]));t[n]=o<0?32768*o:32767*o}}_convertBuffer(e){const t=new Float32Array(e),n=new Int16Array(e.length);return this._floatTo16BitPCM(t,n),n}}class pI{constructor(e={}){this.beforeRecording=e.beforeRecording,this.pauseRecording=e.pauseRecording,this.afterRecording=e.afterRecording,this.micFailed=e.micFailed,this.encoderOptions={bitRate:e.bitRate,sampleRate:e.sampleRate},this.bufferSize=4096,this.records=[],this.isPause=!1,this.isRecording=!1,this.duration=0,this.volume=0,this._duration=0}start(){const e={video:!1,audio:{channelCount:1,echoCancellation:!1}};this.beforeRecording&&this.beforeRecording("start recording"),navigator.mediaDevices.getUserMedia(e).then(this._micCaptured.bind(this)).catch(this._micError.bind(this)),this.isPause=!1,this.isRecording=!0,this.lameEncoder||(this.lameEncoder=new fI(this.encoderOptions))}stop(){this.stream.getTracks().forEach((e=>e.stop())),this.input.disconnect(),this.processor.disconnect(),this.context.close();let e=null;e=this.lameEncoder.finish(),e.duration=this.duration,this.records.push(e),this._duration=0,this.duration=0,this.isPause=!1,this.isRecording=!1,this.afterRecording&&this.afterRecording(e)}pause(){this.stream.getTracks().forEach((e=>e.stop())),this.input.disconnect(),this.processor.disconnect(),this._duration=this.duration,this.isPause=!0,this.pauseRecording&&this.pauseRecording("pause recording")}_micCaptured(e){this.context=new(window.AudioContext||window.webkitAudioContext),this.duration=this._duration,this.input=this.context.createMediaStreamSource(e),this.processor=this.context.createScriptProcessor(this.bufferSize,1,1),this.stream=e,this.processor.onaudioprocess=e=>{const t=e.inputBuffer.getChannelData(0);let n=0;this.lameEncoder&&this.lameEncoder.encode(t);for(let o=0;o<t.length;++o)n+=t[o]*t[o];this.duration=parseFloat(this._duration)+parseFloat(this.context.currentTime.toFixed(2)),this.volume=Math.sqrt(n/t.length).toFixed(2)},this.input.connect(this.processor),this.processor.connect(this.context.destination)}_micError(e){this.micFailed&&this.micFailed(e)}}var hI=window.chrome,mI=window.navigator,gI=mI.vendor,vI="undefined"!==typeof window.opr,_I=mI.userAgent.indexOf("Edg")>-1,bI=mI.userAgent.match("CriOS");function yI(){return!!bI||null!==hI&&"undefined"!==typeof hI&&"Google Inc."===gI&&!1===vI&&!1===_I}function xI(){var e=wI(),t=e.substr(0,4);return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(t)}function wI(){var e=navigator.userAgent||navigator.vendor||window.opera||null;if(!e)throw new Error("Failed to look for user agent information.");return e}const kI={name:"RoomFooter",components:{SvgIcon:pb,EmojiPickerContainer:SA,RoomFiles:jA,RoomMessageReply:lR,RoomUsersTag:mR,RoomEmojis:yR,RoomTemplatesText:AR},directives:{clickOutside:sS},props:{room:{type:Object,required:!0},roomId:{type:[String,Number],required:!0},roomMessage:{type:String,default:null},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},textMessages:{type:Object,required:!0},showSendIcon:{type:Boolean,required:!0},showFiles:{type:Boolean,required:!0},showAudio:{type:Boolean,required:!0},showEmojis:{type:Boolean,required:!0},showFooter:{type:Boolean,required:!0},acceptedFiles:{type:String,required:!0},multipleFiles:{type:Boolean,default:!0},captureFiles:{type:String,required:!0},textareaActionEnabled:{type:Boolean,required:!0},textareaAutoFocus:{type:Boolean,required:!0},userTagsEnabled:{type:Boolean,required:!0},emojisSuggestionEnabled:{type:Boolean,required:!0},templatesText:{type:Array,default:null},audioBitRate:{type:Number,required:!0},audioSampleRate:{type:Number,required:!0},initReplyMessage:{type:Object,default:null},initEditMessage:{type:Object,default:null},droppedFiles:{type:Array,default:null},emojiDataSource:{type:String,default:void 0}},emits:["edit-message","send-message","update-edited-message-id","textarea-action-handler","typing-message"],data(){return{message:"",editedMessage:{},messageReply:null,cursorRangePosition:null,files:[],fileDialog:!1,selectUsersTagItem:null,selectEmojiItem:null,selectTemplatesTextItem:null,format:"mp3",activeUpOrDownEmojis:null,activeUpOrDownUsersTag:null,activeUpOrDownTemplatesText:null,emojisDB:new xT({dataSource:this.emojiDataSource}),emojiOpened:!1,keepKeyboardOpen:!1,filteredEmojis:[],filteredUsersTag:[],selectedUsersTag:[],filteredTemplatesText:[],recorder:this.initRecorder(),isRecording:!1}},computed:{isMessageEmpty(){return!this.files.length&&!this.message.trim()},isFileLoading(){return this.files.some((e=>e.loading))},recordedTime(){return new Date(1e3*this.recorder.duration).toISOString().substr(14,5)},shadowFooter(){return!!this.filteredEmojis.length||!!this.filteredUsersTag.length||!!this.filteredTemplatesText.length||!!this.files.length||!!this.messageReply}},watch:{roomId(){this.resetMessage(!0,!0),this.roomMessage&&(this.message=this.roomMessage,setTimeout((()=>this.onChangeInput())))},message(e){this.getTextareaRef().value=e},roomMessage:{immediate:!0,handler(e){e&&(this.message=this.roomMessage)}},editedMessage(e){this.$emit("update-edited-message-id",e._id)},initReplyMessage(e){e&&this.replyMessage(e)},initEditMessage(e){e&&this.editMessage(e)},droppedFiles(e){e&&this.onFileChange(e)}},mounted(){const e=xI();let t=!0;this.getTextareaRef().addEventListener("keyup",(n=>{"Enter"!==n.key||n.shiftKey||this.fileDialog||(e?(this.message=this.message+"\n",setTimeout((()=>this.onChangeInput()))):!t||this.filteredEmojis.length||this.filteredUsersTag.length||this.filteredTemplatesText.length||this.sendMessage()),t=!n.isComposing,setTimeout((()=>{this.updateFooterLists()}),60)})),this.getTextareaRef().addEventListener("click",(()=>{e&&(this.keepKeyboardOpen=!0),this.updateFooterLists()})),this.getTextareaRef().addEventListener("blur",(()=>{setTimeout((()=>{this.resetFooterList()}),100),e&&setTimeout((()=>this.keepKeyboardOpen=!1))}))},beforeUnmount(){this.stopRecorder()},methods:{getTextareaRef(){return this.$refs.roomTextarea},focusTextarea(e){xI()&&e||this.getTextareaRef()&&(this.getTextareaRef().focus(),this.cursorRangePosition&&setTimeout((()=>{const e=yI()?0:1;this.getTextareaRef().setSelectionRange(this.cursorRangePosition+e,this.cursorRangePosition+e),this.cursorRangePosition=null})))},onChangeInput(){var e,t,n;((null==(e=this.getTextareaRef())?void 0:e.value)||""===(null==(t=this.getTextareaRef())?void 0:t.value))&&(this.message=null==(n=this.getTextareaRef())?void 0:n.value),this.keepKeyboardOpen=!0,this.resizeTextarea(),this.$emit("typing-message",this.message)},resizeTextarea(){const e=this.getTextareaRef();if(!e)return;const t=window.getComputedStyle(e,null).getPropertyValue("padding-top").replace("px","");e.style.height=0,e.style.height=e.scrollHeight-2*t+"px"},escapeTextarea(){this.filteredEmojis.length?this.filteredEmojis=[]:this.filteredUsersTag.length?this.filteredUsersTag=[]:this.filteredTemplatesText.length?this.filteredTemplatesText=[]:this.resetMessage()},onPasteImage(e){var t;const n=null==(t=e.clipboardData)?void 0:t.items;n&&Array.from(n).forEach((e=>{if(e.type.includes("image")){const t=e.getAsFile();this.onFileChange([t])}}))},updateActiveUpOrDown(e,t){this.filteredEmojis.length?(this.activeUpOrDownEmojis=t,e.preventDefault()):this.filteredUsersTag.length?(this.activeUpOrDownUsersTag=t,e.preventDefault()):this.filteredTemplatesText.length&&(this.activeUpOrDownTemplatesText=t,e.preventDefault())},selectItem(){this.filteredEmojis.length?this.selectEmojiItem=!0:this.filteredUsersTag.length?this.selectUsersTagItem=!0:this.filteredTemplatesText.length&&(this.selectTemplatesTextItem=!0)},selectEmoji(e){if(this.selectEmojiItem=!1,!e)return;const{position:t,endPosition:n}=this.getCharPosition(":");this.message=this.message.substr(0,t-1)+e+this.message.substr(n,this.message.length-1),this.cursorRangePosition=t,this.focusTextarea()},selectTemplateText(e){if(this.selectTemplatesTextItem=!1,!e)return;const{position:t,endPosition:n}=this.getCharPosition("/"),o=this.message.substr(n,n).length?"":" ";this.message=this.message.substr(0,t-1)+e.text+o+this.message.substr(n,this.message.length-1),this.cursorRangePosition=t+e.text.length+o.length+1,this.focusTextarea()},addEmoji(e){this.message+=e.unicode,this.focusTextarea(!0)},launchFilePicker(){this.$refs.file.value="",this.$refs.file.click()},async onFileChange(e){this.fileDialog=!0,this.focusTextarea(),Array.from(e).forEach((async e=>{const t=URL.createObjectURL(e),n=e.name.lastIndexOf(".");this.files.push({loading:!0,name:e.name.substring(0,n),size:e.size,type:e.type,extension:e.name.substring(n+1),localUrl:t});const o=await fetch(t).then((e=>e.blob()));let r=this.files.find((e=>e.localUrl===t));r&&(r.blob=o,r.loading=!1,delete r.loading)})),setTimeout((()=>this.fileDialog=!1),500)},removeFile(e){this.files.splice(e,1),this.focusTextarea()},toggleRecorder(e){if(this.isRecording=e,this.recorder.isRecording)try{this.recorder.stop();const e=this.recorder.records[0];this.files.push({blob:e.blob,name:`audio.${this.format}`,size:e.blob.size,duration:e.duration,type:e.blob.type,audio:!0,localUrl:URL.createObjectURL(e.blob)}),this.recorder=this.initRecorder(),this.sendMessage()}catch{setTimeout((()=>this.stopRecorder()),100)}else setTimeout((()=>this.recorder.start()),200)},stopRecorder(){if(this.recorder.isRecording)try{this.recorder.stop(),this.recorder=this.initRecorder()}catch{setTimeout((()=>this.stopRecorder()),100)}},textareaActionHandler(){this.$emit("textarea-action-handler",this.message)},sendMessage(){var e;let t=this.message.trim();if(!this.files.length&&!t)return;if(this.isFileLoading)return;this.selectedUsersTag.forEach((e=>{t=t.replace(`@${e.username}`,`<usertag>${e._id}</usertag>`)}));const n=this.files.length?this.files:null;this.editedMessage._id?(this.editedMessage.content!==t||(null==(e=this.editedMessage.files)?void 0:e.length)||this.files.length)&&this.$emit("edit-message",{messageId:this.editedMessage._id,newContent:t,files:n,replyMessage:this.messageReply,usersTag:this.selectedUsersTag}):this.$emit("send-message",{content:t,files:n,replyMessage:this.messageReply,usersTag:this.selectedUsersTag}),this.resetMessage(!0)},editMessage(e){this.resetMessage(),this.editedMessage={...e};let t=e.content;const n=t,o="<usertag>",r="</usertag>",s=[...t.matchAll(new RegExp(o,"gi"))].map((e=>e.index));s.forEach((e=>{const s=n.substring(e+o.length,n.indexOf(r,e)),i=this.room.users.find((e=>e._id===s));t=t.replace(`${o}${s}${r}`,`@${(null==i?void 0:i.username)||"unknown"}`),this.selectUserTag(i,!0)})),this.message=t,e.files&&(this.files=[...e.files]),setTimeout((()=>this.resizeTextarea()))},replyMessage(e){this.editedMessage={},this.messageReply=e,this.focusTextarea()},updateFooterLists(){this.updateFooterList("@"),this.updateFooterList(":"),this.updateFooterList("/")},updateFooterList(e){if(!this.getTextareaRef())return;if(":"===e&&!this.emojisSuggestionEnabled)return;if("@"===e&&(!this.userTagsEnabled||!this.room.users))return;if("/"===e&&!this.templatesText)return;const t=this.getTextareaRef().selectionStart;let n=t;while(n>0&&this.message.charAt(n-1)!==e&&(" "!==this.message.charAt(n-1)||":"!==e))n--;const o=this.message.charAt(n-2),r=!o.match(/^[0-9a-zA-Z]+$/);if(this.message.charAt(n-1)!==e||o&&" "!==o&&!r)this.resetFooterList(e);else{const o=this.message.substring(n,t);":"===e?this.updateEmojis(o):"@"===e?this.updateShowUsersTag(o):"/"===e&&this.updateShowTemplatesText(o)}},updateShowUsersTag(e){this.filteredUsersTag=AS(this.room.users,"username",e,!0).filter((e=>e._id!==this.currentUserId))},selectUserTag(e,t=!1){if(this.selectUsersTagItem=!1,!e)return;const{position:n,endPosition:o}=this.getCharPosition("@"),r=this.message.substr(o,o).length?"":" ";this.message=this.message.substr(0,n)+e.username+r+this.message.substr(o,this.message.length-1),this.selectedUsersTag=[...this.selectedUsersTag,{...e}],t||(this.cursorRangePosition=n+e.username.length+r.length+1),this.focusTextarea()},updateShowTemplatesText(e){this.filteredTemplatesText=AS(this.templatesText,"tag",e,!0)},getCharPosition(e){const t=this.getTextareaRef().selectionStart;let n=t;while(n>0&&this.message.charAt(n-1)!==e)n--;const o=this.getTextareaRef().selectionEnd;return{position:n,endPosition:o}},async updateEmojis(e){if(!e)return;const t=await this.emojisDB.getEmojiBySearchQuery(e);this.filteredEmojis=t.map((e=>e.unicode))},resetFooterList(e=null){":"===e?this.filteredEmojis=[]:"@"===e?this.filteredUsersTag=[]:("/"===e||(this.filteredEmojis=[],this.filteredUsersTag=[]),this.filteredTemplatesText=[])},resetMessage(e=!1,t=!1){t||this.$emit("typing-message",null),this.selectedUsersTag=[],this.resetFooterList(),this.resetTextareaSize(),this.message="",this.editedMessage={},this.messageReply=null,this.files=[],this.emojiOpened=!1,this.preventKeyboardFromClosing(),!this.textareaAutoFocus&&t||setTimeout((()=>this.focusTextarea(e)))},resetTextareaSize(){this.getTextareaRef()&&(this.getTextareaRef().style.height="20px")},preventKeyboardFromClosing(){this.keepKeyboardOpen&&this.getTextareaRef().focus()},initRecorder(){return this.isRecording=!1,new pI({bitRate:Number(this.audioBitRate),sampleRate:Number(this.audioSampleRate),beforeRecording:null,afterRecording:null,pauseRecording:null,micFailed:this.micFailed})},micFailed(){this.isRecording=!1,this.recorder=this.initRecorder()}}},SI={key:0,class:"vac-icon-textarea-left"},EI=Ng("div",{class:"vac-dot-audio-record"},null,-1),TI={class:"vac-dot-audio-record-time"},MI=["placeholder"],AI={class:"vac-icon-textarea"},RI={key:1},CI=["multiple","accept","capture"];function OI(e,t,n,o,r,s){const i=_m("room-emojis"),a=_m("room-users-tag"),l=_m("room-templates-text"),c=_m("room-message-reply"),u=_m("room-files"),d=_m("svg-icon"),f=_m("emoji-picker-container"),p=xm("click-outside");return hm((Sg(),Rg("div",{id:"room-footer",class:np(["vac-room-footer",{"vac-app-box-shadow":s.shadowFooter}])},[jg(i,{"filtered-emojis":r.filteredEmojis,"select-item":r.selectEmojiItem,"active-up-or-down":r.activeUpOrDownEmojis,onSelectEmoji:t[0]||(t[0]=e=>s.selectEmoji(e)),onActivateItem:t[1]||(t[1]=e=>r.activeUpOrDownEmojis=0)},null,8,["filtered-emojis","select-item","active-up-or-down"]),jg(a,{"filtered-users-tag":r.filteredUsersTag,"select-item":r.selectUsersTagItem,"active-up-or-down":r.activeUpOrDownUsersTag,onSelectUserTag:t[2]||(t[2]=e=>s.selectUserTag(e)),onActivateItem:t[3]||(t[3]=e=>r.activeUpOrDownUsersTag=0)},null,8,["filtered-users-tag","select-item","active-up-or-down"]),jg(l,{"filtered-templates-text":r.filteredTemplatesText,"select-item":r.selectTemplatesTextItem,"active-up-or-down":r.activeUpOrDownTemplatesText,onSelectTemplateText:t[4]||(t[4]=e=>s.selectTemplateText(e)),onActivateItem:t[5]||(t[5]=e=>r.activeUpOrDownTemplatesText=0)},null,8,["filtered-templates-text","select-item","active-up-or-down"]),jg(c,{room:n.room,"message-reply":r.messageReply,"text-formatting":n.textFormatting,"link-options":n.linkOptions,onResetMessage:s.resetMessage},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["room","message-reply","text-formatting","link-options","onResetMessage"]),jg(u,{files:r.files,onRemoveFile:s.removeFile,onResetMessage:s.resetMessage},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["files","onRemoveFile","onResetMessage"]),Ng("div",{class:np(["vac-box-footer",{"vac-box-footer-border":!r.files.length}])},[n.showAudio&&!r.files.length?(Sg(),Rg("div",SI,[r.isRecording?(Sg(),Rg(_g,{key:0},[Ng("div",{class:"vac-svg-button vac-icon-audio-stop",onClick:t[6]||(t[6]=(...e)=>s.stopRecorder&&s.stopRecorder(...e))},[Tm(e.$slots,"audio-stop-icon",{},(()=>[jg(d,{name:"close-outline"})]))]),EI,Ng("div",TI,rp(s.recordedTime),1),Ng("div",{class:"vac-svg-button vac-icon-audio-confirm",onClick:t[7]||(t[7]=e=>s.toggleRecorder(!1))},[Tm(e.$slots,"audio-check-icon",{},(()=>[jg(d,{name:"checkmark"})]))])],64)):(Sg(),Rg("div",{key:1,class:"vac-svg-button",onClick:t[8]||(t[8]=e=>s.toggleRecorder(!0))},[Tm(e.$slots,"microphone-icon",{},(()=>[jg(d,{name:"microphone",class:"vac-icon-microphone"})]))]))])):Vg("",!0),Ng("textarea",{id:"roomTextarea",ref:"roomTextarea",placeholder:n.textMessages.TYPE_MESSAGE,class:np(["vac-textarea",{"vac-textarea-outline":r.editedMessage._id}]),style:{"min-height":"20px","padding-left":"12px"},onInput:t[9]||(t[9]=(...e)=>s.onChangeInput&&s.onChangeInput(...e)),onKeydown:[t[10]||(t[10]=q_(((...e)=>s.escapeTextarea&&s.escapeTextarea(...e)),["esc"])),t[11]||(t[11]=q_($_(((...e)=>s.selectItem&&s.selectItem(...e)),["exact","prevent"]),["enter"])),t[13]||(t[13]=q_($_((()=>{}),["exact","prevent"]),["tab"])),t[14]||(t[14]=q_(((...e)=>s.selectItem&&s.selectItem(...e)),["tab"])),t[15]||(t[15]=q_((e=>s.updateActiveUpOrDown(e,-1)),["up"])),t[16]||(t[16]=q_((e=>s.updateActiveUpOrDown(e,1)),["down"]))],onPaste:t[12]||(t[12]=(...e)=>s.onPasteImage&&s.onPasteImage(...e))},null,42,MI),Ng("div",AI,[r.editedMessage._id?(Sg(),Rg("div",{key:0,class:"vac-svg-button",onClick:t[17]||(t[17]=(...e)=>s.resetMessage&&s.resetMessage(...e))},[Tm(e.$slots,"edit-close-icon",{},(()=>[jg(d,{name:"close-outline"})]))])):Vg("",!0),n.showEmojis?hm((Sg(),Rg("div",RI,[Tm(e.$slots,"emoji-picker",Yg({emojiOpened:r.emojiOpened},{addEmoji:s.addEmoji}),(()=>[jg(f,{"emoji-opened":r.emojiOpened,"position-top":!0,"emoji-data-source":n.emojiDataSource,onAddEmoji:s.addEmoji,onOpenEmoji:t[18]||(t[18]=e=>r.emojiOpened=e)},{"emoji-picker-icon":wh((()=>[Tm(e.$slots,"emoji-picker-icon")])),_:3},8,["emoji-opened","emoji-data-source","onAddEmoji"])]))])),[[p,()=>r.emojiOpened=!1]]):Vg("",!0),n.showFiles?(Sg(),Rg("div",{key:2,class:"vac-svg-button",onClick:t[19]||(t[19]=(...e)=>s.launchFilePicker&&s.launchFilePicker(...e))},[Tm(e.$slots,"paperclip-icon",{},(()=>[jg(d,{name:"paperclip"})]))])):Vg("",!0),n.textareaActionEnabled?(Sg(),Rg("div",{key:3,class:"vac-svg-button",onClick:t[20]||(t[20]=(...e)=>s.textareaActionHandler&&s.textareaActionHandler(...e))},[Tm(e.$slots,"custom-action-icon",{},(()=>[jg(d,{name:"deleted"})]))])):Vg("",!0),n.showFiles?(Sg(),Rg("input",{key:4,ref:"file",type:"file",multiple:!!n.multipleFiles||null,accept:n.acceptedFiles,capture:n.captureFiles,style:{display:"none"},onChange:t[21]||(t[21]=e=>s.onFileChange(e.target.files))},null,40,CI)):Vg("",!0),n.showSendIcon?(Sg(),Rg("div",{key:5,class:np(["vac-svg-button",{"vac-send-disabled":s.isMessageEmpty}]),onClick:t[22]||(t[22]=(...e)=>s.sendMessage&&s.sendMessage(...e))},[Tm(e.$slots,"send-icon",{},(()=>[jg(d,{name:"send",param:s.isMessageEmpty||s.isFileLoading?"disabled":""},null,8,["param"])]))],2)):Vg("",!0)])],2)],2)),[[Y_,Object.keys(n.room).length&&n.showFooter]])}var II=Q_(kI,[["render",OI]]);const BI={name:"MessageReply",components:{AudioPlayer:XA,SvgIcon:pb,FormatMessage:qk},props:{message:{type:Object,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},roomUsers:{type:Array,required:!0}},computed:{replyUsername(){const{senderId:e}=this.message.replyMessage,t=this.roomUsers.find((t=>t._id===e));return t?t.username:""},firstFile(){var e,t;return(null==(t=null==(e=this.message.replyMessage)?void 0:e.files)?void 0:t.length)?this.message.replyMessage.files[0]:{}},isAudio(){return dS(this.firstFile)},isImage(){return lS(this.firstFile)},isVideo(){return cS(this.firstFile)},isOtherFile(){var e;return(null==(e=this.message.replyMessage.files)?void 0:e.length)&&!this.isAudio&&!this.isVideo&&!this.isImage}}},PI={class:"vac-reply-message"},LI={class:"vac-reply-username"},NI={key:0,class:"vac-image-reply-container"},jI={key:1,class:"vac-video-reply-container"},FI={controls:""},DI=["src"],HI={key:3,class:"vac-file-container"},UI={class:"vac-text-ellipsis"},VI={key:0,class:"vac-text-ellipsis vac-text-extension"},$I={class:"vac-reply-content"};function zI(e,t,n,o,r,s){const i=_m("audio-player"),a=_m("svg-icon"),l=_m("format-message");return Sg(),Rg("div",PI,[Ng("div",LI,rp(s.replyUsername),1),s.isImage?(Sg(),Rg("div",NI,[Ng("div",{class:"vac-message-image vac-message-image-reply",style:Qf({"background-image":`url('${s.firstFile.url}')`})},null,4)])):s.isVideo?(Sg(),Rg("div",jI,[Ng("video",FI,[Ng("source",{src:s.firstFile.url},null,8,DI)])])):s.isAudio?(Sg(),Cg(i,{key:2,src:s.firstFile.url,"message-selection-enabled":!1,onUpdateProgressTime:t[0]||(t[0]=t=>e.progressTime=t),onHoverAudioProgress:t[1]||(t[1]=t=>e.hoverAudioProgress=t)},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["src"])):s.isOtherFile?(Sg(),Rg("div",HI,[Ng("div",null,[Tm(e.$slots,"file-icon",{},(()=>[jg(a,{name:"file"})]))]),Ng("div",UI,rp(s.firstFile.name),1),s.firstFile.extension?(Sg(),Rg("div",VI,rp(s.firstFile.extension),1)):Vg("",!0)])):Vg("",!0),Ng("div",$I,[jg(l,{"message-id":n.message.replyMessage._id,content:n.message.replyMessage.content,users:n.roomUsers,"text-formatting":n.textFormatting,"link-options":n.linkOptions,reply:!0},null,8,["message-id","content","users","text-formatting","link-options"])])])}var qI=Q_(BI,[["render",zI]]);const YI={name:"ProgressBar",props:{progress:{type:Number,default:0}},data(){const e=35,t=4,n=e-2*t,o=2*n*Math.PI;return{radius:e,stroke:t,normalizedRadius:n,circumference:o}},computed:{strokeDashoffset(){return this.circumference-this.progress/100*this.circumference}}},XI={ref:"progress",class:"vac-progress-wrapper"},GI=["height","width"],WI=["stroke-dasharray","stroke-width","r","cx","cy"],KI={class:"vac-progress-text"},ZI=Ng("span",{class:"vac-progress-pourcent"},"%",-1);function QI(e,t,n,o,r,s){return Sg(),Cg(g_,{name:"vac-fade-spinner",appear:""},{default:wh((()=>[Ng("div",XI,[(Sg(),Rg("svg",{height:2*r.radius,width:2*r.radius},[Ng("circle",{stroke:"rgba(255, 255, 255, 0.7)","stroke-dasharray":r.circumference+" "+r.circumference,style:Qf({strokeDashoffset:s.strokeDashoffset,strokeLinecap:"round"}),"stroke-width":r.stroke,fill:"transparent",r:r.normalizedRadius,cx:r.radius,cy:r.radius},null,12,WI)],8,GI)),Ng("div",{class:"vac-progress-content",style:Qf({height:2*r.radius-19+"px",width:2*r.radius-19+"px"})},[Ng("div",KI,[Ug(rp(n.progress),1),ZI])],4)],512)])),_:1})}var JI=Q_(YI,[["render",QI]]);const eB={name:"MessageFile",components:{SvgIcon:pb,Loader:ab,ProgressBar:JI},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},file:{type:Object,required:!0},index:{type:Number,required:!0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["open-file"],data(){return{imageResponsive:"",imageLoading:!1,imageHover:!1}},computed:{isImageLoading(){return-1!==this.file.url.indexOf("blob:http")||this.imageLoading},isImage(){return lS(this.file)},isVideo(){return cS(this.file)}},watch:{file:{immediate:!0,handler(){this.checkImgLoad()}}},mounted(){const e=this.$refs["imageRef"+this.index];e&&(this.imageResponsive={maxHeight:e.clientWidth-18,loaderTop:e.clientHeight/2-9})},methods:{checkImgLoad(){if(!lS(this.file))return;this.imageLoading=!0;const e=new Image;e.src=this.file.url,e.addEventListener("load",(()=>this.imageLoading=!1))},openFile(e,t){this.messageSelectionEnabled||(e.stopPropagation(),this.$emit("open-file",{file:this.file,action:t}))}}},tB={class:"vac-message-file-container"},nB={key:0,class:"vac-image-buttons"},oB={controls:""},rB=["src"];function sB(e,t,n,o,r,s){const i=_m("progress-bar"),a=_m("loader"),l=_m("svg-icon");return Sg(),Rg("div",tB,[s.isImage?(Sg(),Rg("div",{key:0,ref:"imageRef"+n.index,class:"vac-message-image-container",onMouseover:t[2]||(t[2]=e=>r.imageHover=!0),onMouseleave:t[3]||(t[3]=e=>r.imageHover=!1),onClick:t[4]||(t[4]=e=>s.openFile(e,"preview"))},[n.file.progress>=0?(Sg(),Cg(i,{key:0,progress:n.file.progress,style:Qf({top:`${r.imageResponsive.loaderTop}px`})},null,8,["progress","style"])):(Sg(),Cg(a,{key:1,show:s.isImageLoading,type:"message-file","message-id":n.message._id,style:Qf({top:`${r.imageResponsive.loaderTop}px`})},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["show","message-id","style"])),Ng("div",{class:np(["vac-message-image",{"vac-blur-loading":s.isImageLoading&&n.message.senderId===n.currentUserId}]),style:Qf({"background-image":`url('${s.isImageLoading&&n.file.preview||n.file.url}')`,"max-height":`${r.imageResponsive.maxHeight}px`})},[jg(g_,{name:"vac-fade-image"},{default:wh((()=>[n.messageSelectionEnabled||!r.imageHover||s.isImageLoading?Vg("",!0):(Sg(),Rg("div",nB,[Ng("div",{class:"vac-svg-button vac-button-view",onClick:t[0]||(t[0]=e=>s.openFile(e,"preview"))},[Tm(e.$slots,"eye-icon_"+n.message._id,{},(()=>[jg(l,{name:"eye"})]))]),Ng("div",{class:"vac-svg-button vac-button-download",onClick:t[1]||(t[1]=e=>s.openFile(e,"download"))},[Tm(e.$slots,"document-icon_"+n.message._id,{},(()=>[jg(l,{name:"document"})]))])]))])),_:3})],6)],544)):s.isVideo?(Sg(),Rg("div",{key:1,class:"vac-video-container",onClick:t[5]||(t[5]=$_((e=>s.openFile(e,"preview")),["prevent"]))},[n.file.progress>=0?(Sg(),Cg(i,{key:0,progress:n.file.progress},null,8,["progress"])):Vg("",!0),Ng("video",oB,[Ng("source",{src:n.file.url},null,8,rB)])])):Vg("",!0)])}var iB=Q_(eB,[["render",sB]]);const aB={name:"MessageFiles",components:{SvgIcon:pb,FormatMessage:qk,ProgressBar:JI,MessageFile:iB},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},roomUsers:{type:Array,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0}},emits:["open-file","open-user-tag"],computed:{imageVideoFiles(){return this.message.files.filter((e=>uS(e)))},otherFiles(){return this.message.files.filter((e=>!uS(e)))}},methods:{openFile(e,t,n){this.messageSelectionEnabled||(e.stopPropagation(),this.$emit("open-file",{file:t,action:n}))}}},lB={class:"vac-message-files-container"},cB=["onClick"],uB={class:"vac-svg-button"},dB={class:"vac-text-ellipsis"},fB={key:0,class:"vac-text-ellipsis vac-text-extension"};function pB(e,t,n,o,r,s){const i=_m("message-file"),a=_m("progress-bar"),l=_m("svg-icon"),c=_m("format-message");return Sg(),Rg("div",lB,[(Sg(!0),Rg(_g,null,Sm(s.imageVideoFiles,((o,r)=>(Sg(),Rg("div",{key:r+"iv"},[jg(i,{file:o,"current-user-id":n.currentUserId,message:n.message,index:r,"message-selection-enabled":n.messageSelectionEnabled,onOpenFile:t[0]||(t[0]=t=>e.$emit("open-file",t))},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["file","current-user-id","message","index","message-selection-enabled"])])))),128)),(Sg(!0),Rg(_g,null,Sm(s.otherFiles,((t,n)=>(Sg(),Rg("div",{key:n+"a",class:"vac-file-wrapper"},[t.progress>=0?(Sg(),Cg(a,{key:0,progress:t.progress,style:{top:"44px"}},null,8,["progress"])):Vg("",!0),Ng("div",{class:np(["vac-file-container",{"vac-file-container-progress":t.progress>=0}]),onClick:e=>s.openFile(e,t,"download")},[Ng("div",uB,[Tm(e.$slots,"document-icon",{},(()=>[jg(l,{name:"document"})]))]),Ng("div",dB,rp(t.name),1),t.extension?(Sg(),Rg("div",fB,rp(t.extension),1)):Vg("",!0)],10,cB)])))),128)),jg(c,{"message-id":n.message._id,content:n.message.content,users:n.roomUsers,"text-formatting":n.textFormatting,"link-options":n.linkOptions,onOpenUserTag:t[1]||(t[1]=t=>e.$emit("open-user-tag",t))},null,8,["message-id","content","users","text-formatting","link-options"])])}var hB=Q_(aB,[["render",pB]]);const mB={name:"MessageActions",components:{SvgIcon:pb,EmojiPickerContainer:SA},directives:{clickOutside:sS},props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0},messageActions:{type:Array,required:!0},showReactionEmojis:{type:Boolean,required:!0},messageHover:{type:Boolean,required:!0},hoverMessageId:{type:[String,Number],default:null},hoverAudioProgress:{type:Boolean,required:!0},emojiDataSource:{type:String,default:void 0}},emits:["update-emoji-opened","update-options-opened","update-message-hover","message-action-handler","send-message-reaction"],data(){return{menuOptionsTop:0,optionsOpened:!1,optionsClosing:!1,emojiOpened:!1}},computed:{isMessageActions(){return this.filteredMessageActions.length&&this.messageHover&&!this.message.deleted&&!this.message.disableActions&&!this.hoverAudioProgress},isMessageReactions(){return this.showReactionEmojis&&this.messageHover&&!this.message.deleted&&!this.message.disableReactions&&!this.hoverAudioProgress},filteredMessageActions(){return this.message.senderId===this.currentUserId?this.messageActions:this.messageActions.filter((e=>!e.onlyMe))}},watch:{emojiOpened(e){this.$emit("update-emoji-opened",e),e&&(this.optionsOpened=!1)},optionsOpened(e){this.$emit("update-options-opened",e)}},methods:{openOptions(){this.optionsClosing||(this.optionsOpened=!this.optionsOpened,this.optionsOpened&&setTimeout((()=>{const e=yA(this.$el,"#room-footer");if(!e||!this.$refs.menuOptions||!this.$refs.actionIcon)return;const t=this.$refs.menuOptions.getBoundingClientRect().height,n=this.$refs.actionIcon.getBoundingClientRect().top,o=e.getBoundingClientRect().top,r=o-n>t+50;this.menuOptionsTop=r?30:-t})))},closeOptions(){this.optionsOpened=!1,this.optionsClosing=!0,this.updateMessageHover(),setTimeout((()=>this.optionsClosing=!1),100)},openEmoji(){this.emojiOpened=!this.emojiOpened},closeEmoji(){this.emojiOpened=!1,this.updateMessageHover()},updateMessageHover(){this.hoverMessageId!==this.message._id&&this.$emit("update-message-hover",!1)},messageActionHandler(e){this.closeOptions(),this.$emit("message-action-handler",e)},sendMessageReaction(e,t){this.$emit("send-message-reaction",{emoji:e,reaction:t}),this.closeEmoji()}}},gB={class:"vac-message-actions-wrapper"},vB={key:"3"},_B={class:"vac-menu-list"},bB=["onClick"];function yB(e,t,n,o,r,s){const i=_m("svg-icon"),a=_m("emoji-picker-container"),l=xm("click-outside");return Sg(),Rg("div",gB,[Ng("div",{class:"vac-options-container",style:Qf({display:n.hoverAudioProgress?"none":"initial",width:s.filteredMessageActions.length&&n.showReactionEmojis?"70px":"45px"})},[jg(N_,{name:"vac-slide-left",tag:"span"},{default:wh((()=>[s.isMessageActions||s.isMessageReactions?(Sg(),Rg("div",{key:"1",class:np(["vac-blur-container",{"vac-options-me":n.message.senderId===n.currentUserId}])},null,2)):Vg("",!0),s.isMessageActions?(Sg(),Rg("div",{ref:"actionIcon",key:"2",class:"vac-svg-button vac-message-options",onClick:t[0]||(t[0]=(...e)=>s.openOptions&&s.openOptions(...e))},[Tm(e.$slots,"dropdown-icon_"+n.message._id,{},(()=>[jg(i,{name:"dropdown",param:"message"})]))],512)):Vg("",!0),s.isMessageReactions?hm((Sg(),Rg("div",vB,[Tm(e.$slots,"emoji-picker",Yg({emojiOpened:r.emojiOpened},{addEmoji:s.sendMessageReaction}),(()=>[jg(a,{class:"vac-message-emojis",style:Qf({right:s.isMessageActions?"30px":"5px"}),"emoji-opened":r.emojiOpened,"emoji-reaction":!0,"position-right":n.message.senderId===n.currentUserId,"message-id":n.message._id,"emoji-data-source":n.emojiDataSource,onAddEmoji:s.sendMessageReaction,onOpenEmoji:s.openEmoji},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["style","emoji-opened","position-right","message-id","emoji-data-source","onAddEmoji","onOpenEmoji"])]))])),[[l,s.closeEmoji]]):Vg("",!0)])),_:3})],4),s.filteredMessageActions.length?(Sg(),Cg(g_,{key:0,name:n.message.senderId===n.currentUserId?"vac-slide-left":"vac-slide-right"},{default:wh((()=>[r.optionsOpened?hm((Sg(),Rg("div",{key:0,ref:"menuOptions",class:np(["vac-menu-options",{"vac-menu-left":n.message.senderId!==n.currentUserId}]),style:Qf({top:`${r.menuOptionsTop}px`})},[Ng("div",_B,[(Sg(!0),Rg(_g,null,Sm(s.filteredMessageActions,(e=>(Sg(),Rg("div",{key:e.name},[Ng("div",{class:"vac-menu-item",onClick:t=>s.messageActionHandler(e)},rp(e.title),9,bB)])))),128))])],6)),[[l,s.closeOptions]]):Vg("",!0)])),_:1},8,["name"])):Vg("",!0)])}var xB=Q_(mB,[["render",yB]]);const wB={name:"MessageReactions",props:{currentUserId:{type:[String,Number],required:!0},message:{type:Object,required:!0}},emits:["send-message-reaction"],methods:{sendMessageReaction(e,t){this.$emit("send-message-reaction",{emoji:e,reaction:t})}}},kB=["onClick"];function SB(e,t,n,o,r,s){return n.message.deleted?Vg("",!0):(Sg(),Cg(N_,{key:0,name:"vac-slide-left",tag:"span"},{default:wh((()=>[(Sg(!0),Rg(_g,null,Sm(n.message.reactions,((e,t)=>hm((Sg(),Rg("button",{key:t+0,class:np(["vac-button-reaction",{"vac-reaction-me":-1!==e.indexOf(n.currentUserId)}]),style:Qf({float:n.message.senderId===n.currentUserId?"right":"left"}),onClick:n=>s.sendMessageReaction({unicode:t},e)},[Ug(rp(t),1),Ng("span",null,rp(e.length),1)],14,kB)),[[Y_,e.length]]))),128))])),_:1}))}var EB=Q_(wB,[["render",SB]]);function TB(e){const t=[{key:"roomId",type:["string","number"]},{key:"roomName",type:["string"]},{key:"users",type:["array"]}],n=(e,t)=>t.every((t=>{let n=!1;return("array"===t.type[0]&&Array.isArray(e[t.key])||t.type.find((n=>n===typeof e[t.key])))&&(n=!0),n&&RB(e,t.key)}));if(!n(e,t))throw new Error("Rooms object is not valid! Must contain at least roomId[String, Number], roomName[String] and users[Array]")}function MB(e){const t=[{key:"_id",type:["string","number"]},{key:"username",type:["string"]}],n=(e,t)=>t.every((t=>{const n=t.type.find((n=>n===typeof e[t.key]));return n&&RB(e,t.key)}));if(!n(e,t))throw new Error("Participants object is not valid! Must contain at least _id[String, Number] and username[String]")}function AB(e){const t=[{key:"_id",type:["string","number"]},{key:"senderId",type:["string","number"]}],n=(e,t)=>t.every((t=>{const n=t.type.find((n=>n===typeof e[t.key]));return n&&RB(e,t.key)}));if(!n(e,t))throw new Error("Messages object is not valid! Must contain at least _id[String, Number] and senderId[String, Number]")}function RB(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&null!==e[t]&&void 0!==e[t]}const CB={name:"RoomMessage",components:{SvgIcon:pb,FormatMessage:qk,AudioPlayer:XA,MessageReply:qI,MessageFiles:hB,MessageActions:xB,MessageReactions:EB},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},index:{type:Number,required:!0},message:{type:Object,required:!0},messages:{type:Array,required:!0},editedMessageId:{type:[String,Number],default:null},roomUsers:{type:Array,default:()=>[]},messageActions:{type:Array,required:!0},newMessages:{type:Array,default:()=>[]},showReactionEmojis:{type:Boolean,required:!0},showNewMessagesDivider:{type:Boolean,required:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},usernameOptions:{type:Object,required:!0},messageSelectionEnabled:{type:Boolean,required:!0},selectedMessages:{type:Array,default:()=>[]},emojiDataSource:{type:String,default:void 0}},emits:["message-added","open-file","open-user-tag","open-failed-message","message-action-handler","send-message-reaction","select-message","unselect-message"],data(){return{hoverMessageId:null,messageHover:!1,optionsOpened:!1,emojiOpened:!1,newMessage:{},progressTime:"- : -",hoverAudioProgress:!1}},computed:{showUsername(){return!(!this.usernameOptions.currentUser&&this.message.senderId===this.currentUserId)&&this.roomUsers.length>=this.usernameOptions.minUsers},showDate(){return this.index>0&&this.message.date!==this.messages[this.index-1].date},messageOffset(){return this.index>0&&this.message.senderId!==this.messages[this.index-1].senderId},isMessageHover(){return this.editedMessageId===this.message._id||this.hoverMessageId===this.message._id},isAudio(){var e;return null==(e=this.message.files)?void 0:e.some((e=>dS(e)))},isCheckmarkVisible(){return this.message.senderId===this.currentUserId&&!this.message.deleted&&(this.message.saved||this.message.distributed||this.message.seen)},hasCurrentUserAvatar(){return this.messages.some((e=>e.senderId===this.currentUserId&&e.avatar))},hasSenderUserAvatar(){return this.messages.some((e=>e.senderId!==this.currentUserId&&e.avatar))},isMessageSelected(){return this.messageSelectionEnabled&&!!this.selectedMessages.find((e=>e._id===this.message._id))}},watch:{newMessages:{immediate:!0,deep:!0,handler(e){e.length&&this.showNewMessagesDivider?this.newMessage=e.reduce(((e,t)=>t.index<e.index?t:e)):this.newMessage={}}},messageSelectionEnabled(){this.resetMessageHover()}},mounted(){AB(this.message),this.$emit("message-added",{message:this.message,index:this.index,ref:this.$refs.message})},methods:{onHoverMessage(){this.messageSelectionEnabled||(this.messageHover=!0,this.canEditMessage()&&(this.hoverMessageId=this.message._id))},canEditMessage(){return!this.message.deleted},onLeaveMessage(){this.messageSelectionEnabled||(this.optionsOpened||this.emojiOpened||(this.messageHover=!1),this.hoverMessageId=null)},resetMessageHover(){this.messageHover=!1,this.hoverMessageId=null},openFile(e){this.$emit("open-file",{message:this.message,file:e})},openUserTag(e){this.$emit("open-user-tag",{user:e})},messageActionHandler(e){this.resetMessageHover(),setTimeout((()=>{this.$emit("message-action-handler",{action:e,message:this.message})}),300)},sendMessageReaction({emoji:e,reaction:t}){this.$emit("send-message-reaction",{messageId:this.message._id,reaction:e,remove:t&&-1!==t.indexOf(this.currentUserId)}),this.messageHover=!1},selectMessage(){this.messageSelectionEnabled&&(this.isMessageSelected?this.$emit("unselect-message",this.message._id):this.$emit("select-message",this.message))}}},OB=["id"],IB={key:0,class:"vac-card-info vac-card-date"},BB={key:1,class:"vac-line-new"},PB={key:2,class:"vac-card-info vac-card-system"},LB={key:1,class:"vac-avatar-offset"},NB={key:0,class:"vac-progress-time"},jB={class:"vac-text-timestamp"},FB={key:0,class:"vac-icon-edited"},DB={key:1},HB=Ng("div",{class:"vac-failure-text"},"!",-1),UB=[HB],VB={key:3,class:"vac-avatar-current-offset"};function $B(e,t,n,o,r,s){const i=_m("format-message"),a=_m("message-reply"),l=_m("message-files"),c=_m("audio-player"),u=_m("svg-icon"),d=_m("message-actions"),f=_m("message-reactions");return Sg(),Rg("div",{id:n.message._id,ref:"message",class:"vac-message-wrapper"},[s.showDate?(Sg(),Rg("div",IB,rp(n.message.date),1)):Vg("",!0),r.newMessage._id===n.message._id?(Sg(),Rg("div",BB,rp(n.textMessages.NEW_MESSAGES),1)):Vg("",!0),n.message.system?(Sg(),Rg("div",PB,[Tm(e.$slots,"message_"+n.message._id,{},(()=>[jg(i,{"message-id":n.message._id,content:n.message.content,deleted:!!n.message.deleted,users:n.roomUsers,"text-messages":n.textMessages,"text-formatting":n.textFormatting,"link-options":n.linkOptions,onOpenUserTag:s.openUserTag},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["message-id","content","deleted","users","text-messages","text-formatting","link-options","onOpenUserTag"])]))])):(Sg(),Rg("div",{key:3,class:np(["vac-message-box",{"vac-offset-current":n.message.senderId===n.currentUserId}]),onClick:t[8]||(t[8]=(...e)=>s.selectMessage&&s.selectMessage(...e))},[Tm(e.$slots,"message_"+n.message._id,{},(()=>[n.message.senderId!==n.currentUserId?Tm(e.$slots,"message-avatar_"+n.message._id,{key:0},(()=>[n.message.avatar?(Sg(),Rg("div",{key:0,class:"vac-avatar",style:Qf({"background-image":`url('${n.message.avatar}')`})},null,4)):Vg("",!0)])):Vg("",!0),s.hasSenderUserAvatar&&!n.message.avatar?(Sg(),Rg("div",LB)):Vg("",!0),Ng("div",{class:np(["vac-message-container",{"vac-message-container-offset":s.messageOffset}])},[Ng("div",{class:np(["vac-message-card",{"vac-message-highlight":s.isMessageHover,"vac-message-current":n.message.senderId===n.currentUserId,"vac-message-deleted":n.message.deleted,"vac-item-clickable":n.messageSelectionEnabled,"vac-message-selected":s.isMessageSelected}]),onMouseover:t[5]||(t[5]=(...e)=>s.onHoverMessage&&s.onHoverMessage(...e)),onMouseleave:t[6]||(t[6]=(...e)=>s.onLeaveMessage&&s.onLeaveMessage(...e))},[s.showUsername?(Sg(),Rg("div",{key:0,class:np(["vac-text-username",{"vac-username-reply":!n.message.deleted&&n.message.replyMessage}])},[Ng("span",null,rp(n.message.username),1)],2)):Vg("",!0),!n.message.deleted&&n.message.replyMessage?(Sg(),Cg(a,{key:1,message:n.message,"room-users":n.roomUsers,"text-formatting":n.textFormatting,"link-options":n.linkOptions},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["message","room-users","text-formatting","link-options"])):Vg("",!0),!n.message.deleted&&n.message.files&&n.message.files.length?!s.isAudio||n.message.files.length>1?(Sg(),Cg(l,{key:3,"current-user-id":n.currentUserId,message:n.message,"room-users":n.roomUsers,"text-formatting":n.textFormatting,"link-options":n.linkOptions,"message-selection-enabled":n.messageSelectionEnabled,onOpenFile:s.openFile,onOpenUserTag:s.openUserTag},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["current-user-id","message","room-users","text-formatting","link-options","message-selection-enabled","onOpenFile","onOpenUserTag"])):(Sg(),Rg(_g,{key:4},[jg(c,{"message-id":n.message._id,src:n.message.files[0].url,"message-selection-enabled":n.messageSelectionEnabled,onUpdateProgressTime:t[0]||(t[0]=e=>r.progressTime=e),onHoverAudioProgress:t[1]||(t[1]=e=>r.hoverAudioProgress=e)},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["message-id","src","message-selection-enabled"]),n.message.deleted?Vg("",!0):(Sg(),Rg("div",NB,rp(r.progressTime),1))],64)):(Sg(),Cg(i,{key:2,"message-id":n.message._id,content:n.message.content,deleted:!!n.message.deleted,users:n.roomUsers,"text-formatting":n.textFormatting,"text-messages":n.textMessages,"link-options":n.linkOptions,onOpenUserTag:s.openUserTag},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["message-id","content","deleted","users","text-formatting","text-messages","link-options","onOpenUserTag"])),Ng("div",jB,[n.message.edited&&!n.message.deleted?(Sg(),Rg("div",FB,[Tm(e.$slots,"pencil-icon_"+n.message._id,{},(()=>[jg(u,{name:"pencil"})]))])):Vg("",!0),Ng("span",null,rp(n.message.timestamp),1),s.isCheckmarkVisible?(Sg(),Rg("span",DB,[Tm(e.$slots,"checkmark-icon_"+n.message._id,{},(()=>[jg(u,{name:n.message.distributed?"double-checkmark":"checkmark",param:n.message.seen?"seen":"",class:"vac-icon-check"},null,8,["name","param"])]))])):Vg("",!0)]),jg(d,{"current-user-id":n.currentUserId,message:n.message,"message-actions":n.messageActions,"show-reaction-emojis":n.showReactionEmojis,"message-hover":r.messageHover,"hover-message-id":r.hoverMessageId,"hover-audio-progress":r.hoverAudioProgress,"emoji-data-source":n.emojiDataSource,onUpdateMessageHover:t[2]||(t[2]=e=>r.messageHover=e),onUpdateOptionsOpened:t[3]||(t[3]=e=>r.optionsOpened=e),onUpdateEmojiOpened:t[4]||(t[4]=e=>r.emojiOpened=e),onMessageActionHandler:s.messageActionHandler,onSendMessageReaction:s.sendMessageReaction},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["current-user-id","message","message-actions","show-reaction-emojis","message-hover","hover-message-id","hover-audio-progress","emoji-data-source","onMessageActionHandler","onSendMessageReaction"])],34),jg(f,{"current-user-id":n.currentUserId,message:n.message,onSendMessageReaction:s.sendMessageReaction},null,8,["current-user-id","message","onSendMessageReaction"])],2),Tm(e.$slots,"message-failure_"+n.message._id,{},(()=>[n.message.failure&&n.message.senderId===n.currentUserId?(Sg(),Rg("div",{key:0,class:np(["vac-failure-container vac-svg-button",{"vac-failure-container-avatar":n.message.avatar&&n.message.senderId===n.currentUserId}]),onClick:t[7]||(t[7]=t=>e.$emit("open-failed-message",{message:n.message}))},UB,2)):Vg("",!0)])),n.message.senderId===n.currentUserId?Tm(e.$slots,"message-avatar_"+n.message._id,{key:2},(()=>[n.message.avatar?(Sg(),Rg("div",{key:0,class:"vac-avatar vac-avatar-current",style:Qf({"background-image":`url('${n.message.avatar}')`})},null,4)):Vg("",!0)])):Vg("",!0),s.hasCurrentUserAvatar&&!n.message.avatar?(Sg(),Rg("div",VB)):Vg("",!0)]))],2))],8,OB)}var zB=Q_(CB,[["render",$B]]);const qB={name:"ChatRoom",components:{Loader:ab,SvgIcon:pb,RoomHeader:QS,RoomFooter:II,RoomMessage:zB},props:{currentUserId:{type:[String,Number],required:!0},textMessages:{type:Object,required:!0},singleRoom:{type:Boolean,required:!0},showRoomsList:{type:Boolean,required:!0},isMobile:{type:Boolean,required:!0},rooms:{type:Array,required:!0},roomId:{type:[String,Number],required:!0},loadFirstRoom:{type:Boolean,required:!0},messages:{type:Array,required:!0},roomMessage:{type:String,default:null},messagesLoaded:{type:Boolean,required:!0},menuActions:{type:Array,required:!0},messageActions:{type:Array,required:!0},messageSelectionActions:{type:Array,required:!0},autoScroll:{type:Object,required:!0},showSendIcon:{type:Boolean,required:!0},showFiles:{type:Boolean,required:!0},showAudio:{type:Boolean,required:!0},audioBitRate:{type:Number,required:!0},audioSampleRate:{type:Number,required:!0},showEmojis:{type:Boolean,required:!0},showReactionEmojis:{type:Boolean,required:!0},showNewMessagesDivider:{type:Boolean,required:!0},showFooter:{type:Boolean,required:!0},acceptedFiles:{type:String,required:!0},captureFiles:{type:String,required:!0},multipleFiles:{type:Boolean,default:!0},textFormatting:{type:Object,required:!0},linkOptions:{type:Object,required:!0},loadingRooms:{type:Boolean,required:!0},roomInfoEnabled:{type:Boolean,required:!0},textareaActionEnabled:{type:Boolean,required:!0},textareaAutoFocus:{type:Boolean,required:!0},userTagsEnabled:{type:Boolean,required:!0},emojisSuggestionEnabled:{type:Boolean,required:!0},scrollDistance:{type:Number,required:!0},templatesText:{type:Array,default:null},usernameOptions:{type:Object,required:!0},emojiDataSource:{type:String,default:void 0}},emits:["toggle-rooms-list","room-info","menu-action-handler","message-selection-action-handler","edit-message","send-message","delete-message","message-action-handler","fetch-messages","send-message-reaction","typing-message","open-file","open-user-tag","open-failed-message","textarea-action-handler"],data(){return{editedMessageId:null,initReplyMessage:null,initEditMessage:null,loadingMessages:!1,observer:null,showLoader:!0,loadingMoreMessages:!1,scrollIcon:!1,scrollMessagesCount:0,newMessages:[],messageSelectionEnabled:!1,selectedMessages:[],droppedFiles:[]}},computed:{room(){return this.rooms.find((e=>e.roomId===this.roomId))||{}},showNoMessages(){return this.roomId&&!this.messages.length&&!this.loadingMessages&&!this.loadingRooms},showNoRoom(){const e=!this.rooms.length&&!this.loadingRooms||!this.roomId&&!this.loadFirstRoom;return e&&this.updateLoadingMessages(!1),e},showMessagesStarted(){return this.messages.length&&this.messagesLoaded}},watch:{roomId:{immediate:!0,handler(){this.onRoomChanged()}},messages:{deep:!0,handler(e,t){e.forEach(((e,t)=>{this.showNewMessagesDivider&&!e.seen&&e.senderId!==this.currentUserId&&this.newMessages.push({_id:e._id,index:t})})),(null==t?void 0:t.length)===(null==e?void 0:e.length)-1&&(this.newMessages=[]),setTimeout((()=>this.loadingMoreMessages=!1))}},messagesLoaded(e){e&&this.updateLoadingMessages(!1)}},mounted(){this.newMessages=[]},methods:{updateLoadingMessages(e){this.loadingMessages=e,e||setTimeout((()=>this.initIntersectionObserver()))},initIntersectionObserver(){this.observer&&(this.showLoader=!0,this.observer.disconnect());const e=this.$el.querySelector("#infinite-loader-messages");if(e){const t={root:this.$el.querySelector("#messages-list"),rootMargin:`${this.scrollDistance}px`,threshold:0};this.observer=new IntersectionObserver((e=>{e[0].isIntersecting&&this.loadMoreMessages()}),t),this.observer.observe(e)}},preventTopScroll(){const e=this.$refs.scrollContainer,t=e.scrollHeight,n=new ResizeObserver((o=>{e.scrollHeight!==t&&this.$refs.scrollContainer&&(this.$refs.scrollContainer.scrollTo({top:e.scrollHeight-t}),n.disconnect())}));for(var o=0;o<e.children.length;o++)n.observe(e.children[o])},touchStart(e){if(!this.singleRoom&&1===e.changedTouches.length){const t=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY;addEventListener("touchend",(e=>this.touchEnd(e,t,n)),{once:!0})}},touchEnd(e,t,n){if(1===e.changedTouches.length){const o=e.changedTouches[0].clientX,r=e.changedTouches[0].clientY,s=o-t>100,i=Math.abs(r-n)>50;s&&!i&&this.$emit("toggle-rooms-list")}},onRoomChanged(){this.updateLoadingMessages(!0),this.scrollIcon=!1,this.scrollMessagesCount=0,this.resetMessageSelection();const e=this.$watch((()=>this.messages),(t=>{if(!t||!t.length)return;const n=this.$refs.scrollContainer;n&&(e(),setTimeout((()=>{n.scrollTo({top:n.scrollHeight}),this.updateLoadingMessages(!1)})))}))},resetMessageSelection(){this.messageSelectionEnabled=!1,this.selectedMessages=[]},selectMessage(e){this.selectedMessages.push(e)},unselectMessage(e){this.selectedMessages=this.selectedMessages.filter((t=>t._id!==e))},onMessageAdded({message:e,index:t,ref:n}){if(t!==this.messages.length-1)return;const o=n.offsetHeight+60;setTimeout((()=>{const t=this.$refs.scrollContainer;let n=!1;t&&(n=this.getBottomScroll(t)>o),e.senderId===this.currentUserId?n?this.autoScroll.send.newAfterScrollUp&&this.scrollToBottom():this.autoScroll.send.new&&this.scrollToBottom():n?this.autoScroll.receive.newAfterScrollUp?this.scrollToBottom():(this.scrollIcon=!0,this.scrollMessagesCount++):this.autoScroll.receive.new?this.scrollToBottom():(this.scrollIcon=!0,this.scrollMessagesCount++)}))},onContainerScroll(e){if(!e.target)return;const t=this.getBottomScroll(e.target);t<60&&(this.scrollMessagesCount=0),this.scrollIcon=t>500||this.scrollMessagesCount},loadMoreMessages(){this.loadingMessages||setTimeout((()=>{if(!this.loadingMoreMessages){if(this.messagesLoaded||!this.roomId)return this.loadingMoreMessages=!1,void(this.showLoader=!1);this.preventTopScroll(),this.$emit("fetch-messages"),this.loadingMoreMessages=!0}}),500)},messageActionHandler({action:e,message:t}){switch(e.name){case"replyMessage":return this.initReplyMessage=t,void setTimeout((()=>{this.initReplyMessage=null}));case"editMessage":return this.initEditMessage=t,void setTimeout((()=>{this.initEditMessage=null}));case"deleteMessage":return this.$emit("delete-message",t);case"selectMessages":return this.selectedMessages=[t],void(this.messageSelectionEnabled=!0);default:return this.$emit("message-action-handler",{action:e,message:t})}},messageSelectionActionHandler(e){this.$emit("message-selection-action-handler",{action:e,messages:this.selectedMessages}),this.resetMessageSelection()},sendMessageReaction(e){this.$emit("send-message-reaction",e)},getBottomScroll(e){const{scrollHeight:t,clientHeight:n,scrollTop:o}=e;return t-n-o},scrollToBottom(){setTimeout((()=>{const e=this.$refs.scrollContainer;e&&(e.classList.add("vac-scroll-smooth"),e.scrollTo({top:e.scrollHeight,behavior:"smooth"}),setTimeout((()=>e.classList.remove("vac-scroll-smooth"))))}),50)},openFile({message:e,file:t}){this.$emit("open-file",{message:e,file:t})},openUserTag(e){this.$emit("open-user-tag",e)},onDropFiles(e){this.showFiles&&(this.droppedFiles=e.dataTransfer.files)}}},YB={class:"vac-container-center vac-room-empty"},XB={class:"vac-messages-container"},GB={key:0,class:"vac-text-started"},WB={key:1,class:"vac-text-started"},KB={key:0,id:"infinite-loader-messages"},ZB={key:2},QB={key:0,class:"vac-badge-counter vac-messages-count"};function JB(e,t,n,o,r,s){const i=_m("room-header"),a=_m("loader"),l=_m("room-message"),c=_m("svg-icon"),u=_m("room-footer");return hm((Sg(),Rg("div",{class:"vac-col-messages",onDrop:t[12]||(t[12]=$_(((...e)=>s.onDropFiles&&s.onDropFiles(...e)),["prevent"])),onDragenter:t[13]||(t[13]=$_((()=>{}),["prevent"])),onDragover:t[14]||(t[14]=$_((()=>{}),["prevent"])),onDragleave:t[15]||(t[15]=$_((()=>{}),["prevent"])),onTouchstart:t[16]||(t[16]=(...e)=>s.touchStart&&s.touchStart(...e))},[s.showNoRoom?Tm(e.$slots,"no-room-selected",{key:0},(()=>[Ng("div",YB,[Ng("div",null,rp(n.textMessages.ROOM_EMPTY),1)])])):(Sg(),Cg(i,{key:1,"current-user-id":n.currentUserId,"text-messages":n.textMessages,"single-room":n.singleRoom,"show-rooms-list":n.showRoomsList,"is-mobile":n.isMobile,"room-info-enabled":n.roomInfoEnabled,"menu-actions":n.menuActions,room:s.room,"message-selection-enabled":r.messageSelectionEnabled,"message-selection-actions":n.messageSelectionActions,"selected-messages-total":r.selectedMessages.length,onToggleRoomsList:t[0]||(t[0]=t=>e.$emit("toggle-rooms-list")),onRoomInfo:t[1]||(t[1]=t=>e.$emit("room-info")),onMenuActionHandler:t[2]||(t[2]=t=>e.$emit("menu-action-handler",t)),onMessageSelectionActionHandler:s.messageSelectionActionHandler,onCancelMessageSelection:t[3]||(t[3]=e=>r.messageSelectionEnabled=!1)},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["current-user-id","text-messages","single-room","show-rooms-list","is-mobile","room-info-enabled","menu-actions","room","message-selection-enabled","message-selection-actions","selected-messages-total","onMessageSelectionActionHandler"])),Ng("div",{id:"messages-list",ref:"scrollContainer",class:"vac-container-scroll",onScroll:t[5]||(t[5]=(...e)=>s.onContainerScroll&&s.onContainerScroll(...e))},[jg(a,{show:r.loadingMessages,type:"messages"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["show"]),Ng("div",XB,[Ng("div",{class:np({"vac-messages-hidden":r.loadingMessages})},[jg(g_,{name:"vac-fade-message"},{default:wh((()=>[Ng("div",null,[s.showNoMessages?(Sg(),Rg("div",GB,[Tm(e.$slots,"messages-empty",{},(()=>[Ug(rp(n.textMessages.MESSAGES_EMPTY),1)]))])):Vg("",!0),s.showMessagesStarted?(Sg(),Rg("div",WB,rp(n.textMessages.CONVERSATION_STARTED)+" "+rp(n.messages[0].date),1)):Vg("",!0)])])),_:3}),n.messages.length&&!n.messagesLoaded?(Sg(),Rg("div",KB,[jg(a,{show:!0,infinite:!0,type:"infinite-messages"},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1024)])):Vg("",!0),(Sg(),Cg(N_,{key:n.roomId,name:"vac-fade-message",tag:"span"},{default:wh((()=>[(Sg(!0),Rg(_g,null,Sm(n.messages,((o,i)=>(Sg(),Rg("div",{key:o.indexId||o._id},[jg(l,{"current-user-id":n.currentUserId,message:o,index:i,messages:n.messages,"edited-message-id":r.editedMessageId,"message-actions":n.messageActions,"room-users":s.room.users,"text-messages":n.textMessages,"new-messages":r.newMessages,"show-reaction-emojis":n.showReactionEmojis,"show-new-messages-divider":n.showNewMessagesDivider,"text-formatting":n.textFormatting,"link-options":n.linkOptions,"username-options":n.usernameOptions,"message-selection-enabled":r.messageSelectionEnabled,"selected-messages":r.selectedMessages,"emoji-data-source":n.emojiDataSource,onMessageAdded:s.onMessageAdded,onMessageActionHandler:s.messageActionHandler,onOpenFile:s.openFile,onOpenUserTag:s.openUserTag,onOpenFailedMessage:t[4]||(t[4]=t=>e.$emit("open-failed-message",t)),onSendMessageReaction:s.sendMessageReaction,onSelectMessage:s.selectMessage,onUnselectMessage:s.unselectMessage},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["current-user-id","message","index","messages","edited-message-id","message-actions","room-users","text-messages","new-messages","show-reaction-emojis","show-new-messages-divider","text-formatting","link-options","username-options","message-selection-enabled","selected-messages","emoji-data-source","onMessageAdded","onMessageActionHandler","onOpenFile","onOpenUserTag","onSendMessageReaction","onSelectMessage","onUnselectMessage"])])))),128))])),_:3}))],2)])],544),r.loadingMessages?Vg("",!0):(Sg(),Rg("div",ZB,[jg(g_,{name:"vac-bounce"},{default:wh((()=>[r.scrollIcon?(Sg(),Rg("div",{key:0,class:"vac-icon-scroll",onClick:t[6]||(t[6]=(...e)=>s.scrollToBottom&&s.scrollToBottom(...e))},[jg(g_,{name:"vac-bounce"},{default:wh((()=>[r.scrollMessagesCount?(Sg(),Rg("div",QB,rp(r.scrollMessagesCount),1)):Vg("",!0)])),_:1}),Tm(e.$slots,"scroll-icon",{},(()=>[jg(c,{name:"dropdown",param:"scroll"})]))])):Vg("",!0)])),_:3})])),jg(u,{room:s.room,"room-id":n.roomId,"room-message":n.roomMessage,"text-messages":n.textMessages,"show-send-icon":n.showSendIcon,"show-files":n.showFiles,"show-audio":n.showAudio,"show-emojis":n.showEmojis,"show-footer":n.showFooter,"accepted-files":n.acceptedFiles,"capture-files":n.captureFiles,"multiple-files":n.multipleFiles,"textarea-action-enabled":n.textareaActionEnabled,"textarea-auto-focus":n.textareaAutoFocus,"user-tags-enabled":n.userTagsEnabled,"emojis-suggestion-enabled":n.emojisSuggestionEnabled,"templates-text":n.templatesText,"text-formatting":n.textFormatting,"link-options":n.linkOptions,"audio-bit-rate":n.audioBitRate,"audio-sample-rate":n.audioSampleRate,"init-reply-message":r.initReplyMessage,"init-edit-message":r.initEditMessage,"dropped-files":r.droppedFiles,"emoji-data-source":n.emojiDataSource,onUpdateEditedMessageId:t[7]||(t[7]=e=>r.editedMessageId=e),onEditMessage:t[8]||(t[8]=t=>e.$emit("edit-message",t)),onSendMessage:t[9]||(t[9]=t=>e.$emit("send-message",t)),onTypingMessage:t[10]||(t[10]=t=>e.$emit("typing-message",t)),onTextareaActionHandler:t[11]||(t[11]=t=>e.$emit("textarea-action-handler",t))},Em({_:2},[Sm(e.$slots,((t,n)=>({name:n,fn:wh((t=>[Tm(e.$slots,n,op(Dg(t)))]))})))]),1032,["room","room-id","room-message","text-messages","show-send-icon","show-files","show-audio","show-emojis","show-footer","accepted-files","capture-files","multiple-files","textarea-action-enabled","textarea-auto-focus","user-tags-enabled","emojis-suggestion-enabled","templates-text","text-formatting","link-options","audio-bit-rate","audio-sample-rate","init-reply-message","init-edit-message","dropped-files","emoji-data-source"])],544)),[[Y_,n.isMobile&&!n.showRoomsList||!n.isMobile||n.singleRoom]])}var eP=Q_(qB,[["render",JB]]);const tP={name:"MediaPreview",components:{SvgIcon:pb},props:{file:{type:Object,required:!0}},emits:["close-media-preview"],computed:{isImage(){return lS(this.file)},isVideo(){return cS(this.file)}},mounted(){this.$refs.modal.focus()},methods:{closeModal(){this.$emit("close-media-preview")}}},nP={key:0,class:"vac-media-preview-container"},oP={key:1,class:"vac-media-preview-container"},rP={controls:"",autoplay:""},sP=["src"],iP={class:"vac-svg-button"};function aP(e,t,n,o,r,s){const i=_m("svg-icon");return Sg(),Rg("div",{ref:"modal",tabindex:"0",class:"vac-media-preview",onClick:t[0]||(t[0]=$_(((...e)=>s.closeModal&&s.closeModal(...e)),["stop"])),onKeydown:t[1]||(t[1]=q_(((...e)=>s.closeModal&&s.closeModal(...e)),["esc"]))},[jg(g_,{name:"vac-bounce-preview",appear:""},{default:wh((()=>[s.isImage?(Sg(),Rg("div",nP,[Ng("div",{class:"vac-image-preview",style:Qf({"background-image":`url('${n.file.url}')`})},null,4)])):s.isVideo?(Sg(),Rg("div",oP,[Ng("video",rP,[Ng("source",{src:n.file.url},null,8,sP)])])):Vg("",!0)])),_:1}),Ng("div",iP,[Tm(e.$slots,"preview-close-icon",{},(()=>[jg(i,{name:"close-outline",param:"preview"})]))])],544)}var lP=Q_(tP,[["render",aP]]),cP={ROOMS_EMPTY:"No rooms",ROOM_EMPTY:"No room selected",NEW_MESSAGES:"New Messages",MESSAGE_DELETED:"This message was deleted",MESSAGES_EMPTY:"No messages",CONVERSATION_STARTED:"Conversation started on:",TYPE_MESSAGE:"Type message",SEARCH:"Search",IS_ONLINE:"is online",LAST_SEEN:"last seen ",IS_TYPING:"is writing...",CANCEL_SELECT_MESSAGE:"Cancel"};const uP={light:{general:{color:"#0a0a0a",colorButtonClear:"#1976d2",colorButton:"#fff",backgroundColorButton:"#1976d2",backgroundInput:"#fff",colorPlaceholder:"#9ca6af",colorCaret:"#1976d2",colorSpinner:"#333",borderStyle:"1px solid #e1e4e8",backgroundScrollIcon:"#fff"},container:{border:"none",borderRadius:"4px",boxShadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)"},header:{background:"#fff",colorRoomName:"#0a0a0a",colorRoomInfo:"#9ca6af"},footer:{background:"#f8f9fa",borderStyleInput:"1px solid #e1e4e8",borderInputSelected:"#1976d2",backgroundReply:"#e5e5e6",backgroundTagActive:"#e5e5e6",backgroundTag:"#f8f9fa"},content:{background:"#f8f9fa"},sidemenu:{background:"#fff",backgroundHover:"#f6f6f6",backgroundActive:"#e5effa",colorActive:"#1976d2",borderColorSearch:"#e1e5e8"},dropdown:{background:"#fff",backgroundHover:"#f6f6f6"},message:{background:"#fff",backgroundMe:"#ccf2cf",color:"#0a0a0a",colorStarted:"#9ca6af",backgroundDeleted:"#dadfe2",backgroundSelected:"#c2dcf2",colorDeleted:"#757e85",colorUsername:"#9ca6af",colorTimestamp:"#828c94",backgroundDate:"#e5effa",colorDate:"#505a62",backgroundSystem:"#e5effa",colorSystem:"#505a62",backgroundMedia:"rgba(0, 0, 0, 0.15)",backgroundReply:"rgba(0, 0, 0, 0.08)",colorReplyUsername:"#0a0a0a",colorReply:"#6e6e6e",colorTag:"#0d579c",backgroundImage:"#ddd",colorNewMessages:"#1976d2",backgroundScrollCounter:"#0696c7",colorScrollCounter:"#fff",backgroundReaction:"#eee",borderStyleReaction:"1px solid #eee",backgroundReactionHover:"#fff",borderStyleReactionHover:"1px solid #ddd",colorReactionCounter:"#0a0a0a",backgroundReactionMe:"#cfecf5",borderStyleReactionMe:"1px solid #3b98b8",backgroundReactionHoverMe:"#cfecf5",borderStyleReactionHoverMe:"1px solid #3b98b8",colorReactionCounterMe:"#0b59b3",backgroundAudioRecord:"#eb4034",backgroundAudioLine:"rgba(0, 0, 0, 0.15)",backgroundAudioProgress:"#455247",backgroundAudioProgressSelector:"#455247",colorFileExtension:"#757e85"},markdown:{background:"rgba(239, 239, 239, 0.7)",border:"rgba(212, 212, 212, 0.9)",color:"#e01e5a",colorMulti:"#0a0a0a"},room:{colorUsername:"#0a0a0a",colorMessage:"#67717a",colorTimestamp:"#a2aeb8",colorStateOnline:"#4caf50",colorStateOffline:"#9ca6af",backgroundCounterBadge:"#0696c7",colorCounterBadge:"#fff"},emoji:{background:"#fff"},icons:{search:"#9ca6af",add:"#1976d2",toggle:"#0a0a0a",menu:"#0a0a0a",close:"#9ca6af",closeImage:"#fff",file:"#1976d2",paperclip:"#1976d2",closeOutline:"#000",closePreview:"#fff",send:"#1976d2",sendDisabled:"#9ca6af",emoji:"#1976d2",emojiReaction:"rgba(0, 0, 0, 0.3)",document:"#1976d2",pencil:"#9e9e9e",checkmark:"#9e9e9e",checkmarkSeen:"#0696c7",eye:"#fff",dropdownMessage:"#fff",dropdownMessageBackground:"rgba(0, 0, 0, 0.25)",dropdownRoom:"#9e9e9e",dropdownScroll:"#0a0a0a",microphone:"#1976d2",audioPlay:"#455247",audioPause:"#455247",audioCancel:"#eb4034",audioConfirm:"#1ba65b"}},dark:{general:{color:"#fff",colorButtonClear:"#fff",colorButton:"#fff",backgroundColorButton:"#1976d2",backgroundInput:"#202223",colorPlaceholder:"#596269",colorCaret:"#fff",colorSpinner:"#fff",borderStyle:"none",backgroundScrollIcon:"#fff"},container:{border:"none",borderRadius:"4px",boxShadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)"},header:{background:"#181a1b",colorRoomName:"#fff",colorRoomInfo:"#9ca6af"},footer:{background:"#131415",borderStyleInput:"none",borderInputSelected:"#1976d2",backgroundReply:"#1b1c1c",backgroundTagActive:"#1b1c1c",backgroundTag:"#131415"},content:{background:"#131415"},sidemenu:{background:"#181a1b",backgroundHover:"#202224",backgroundActive:"#151617",colorActive:"#fff",borderColorSearch:"#181a1b"},dropdown:{background:"#2a2c33",backgroundHover:"#26282e"},message:{background:"#22242a",backgroundMe:"#1f7e80",color:"#fff",colorStarted:"#9ca6af",backgroundDeleted:"#1b1c21",backgroundSelected:"#c2dcf2",colorDeleted:"#a2a5a8",colorUsername:"#b3bac9",colorTimestamp:"#ebedf2",backgroundDate:"rgba(0, 0, 0, 0.3)",colorDate:"#bec5cc",backgroundSystem:"rgba(0, 0, 0, 0.3)",colorSystem:"#bec5cc",backgroundMedia:"rgba(0, 0, 0, 0.18)",backgroundReply:"rgba(0, 0, 0, 0.18)",colorReplyUsername:"#fff",colorReply:"#d6d6d6",colorTag:"#f0c60a",backgroundImage:"#ddd",colorNewMessages:"#fff",backgroundScrollCounter:"#1976d2",colorScrollCounter:"#fff",backgroundReaction:"none",borderStyleReaction:"none",backgroundReactionHover:"#202223",borderStyleReactionHover:"none",colorReactionCounter:"#fff",backgroundReactionMe:"#4e9ad1",borderStyleReactionMe:"none",backgroundReactionHoverMe:"#4e9ad1",borderStyleReactionHoverMe:"none",colorReactionCounterMe:"#fff",backgroundAudioRecord:"#eb4034",backgroundAudioLine:"rgba(255, 255, 255, 0.15)",backgroundAudioProgress:"#b7d4d3",backgroundAudioProgressSelector:"#b7d4d3",colorFileExtension:"#a2a5a8"},markdown:{background:"rgba(239, 239, 239, 0.7)",border:"rgba(212, 212, 212, 0.9)",color:"#e01e5a",colorMulti:"#0a0a0a"},room:{colorUsername:"#fff",colorMessage:"#6c7278",colorTimestamp:"#6c7278",colorStateOnline:"#4caf50",colorStateOffline:"#596269",backgroundCounterBadge:"#1976d2",colorCounterBadge:"#fff"},emoji:{background:"#343740"},icons:{search:"#596269",add:"#fff",toggle:"#fff",menu:"#fff",close:"#9ca6af",closeImage:"#fff",file:"#1976d2",paperclip:"#fff",closeOutline:"#fff",closePreview:"#fff",send:"#fff",sendDisabled:"#646a70",emoji:"#fff",emojiReaction:"#fff",document:"#1976d2",pencil:"#ebedf2",checkmark:"#ebedf2",checkmarkSeen:"#f0d90a",eye:"#fff",dropdownMessage:"#fff",dropdownMessageBackground:"rgba(0, 0, 0, 0.25)",dropdownRoom:"#fff",dropdownScroll:"#0a0a0a",microphone:"#fff",audioPlay:"#b7d4d3",audioPause:"#b7d4d3",audioCancel:"#eb4034",audioConfirm:"#1ba65b"}}},dP=({general:e,container:t,header:n,footer:o,sidemenu:r,content:s,dropdown:i,message:a,markdown:l,room:c,emoji:u,icons:d})=>({"--chat-color":e.color,"--chat-color-button-clear":e.colorButtonClear,"--chat-color-button":e.colorButton,"--chat-bg-color-button":e.backgroundColorButton,"--chat-bg-color-input":e.backgroundInput,"--chat-color-spinner":e.colorSpinner,"--chat-color-placeholder":e.colorPlaceholder,"--chat-color-caret":e.colorCaret,"--chat-border-style":e.borderStyle,"--chat-bg-scroll-icon":e.backgroundScrollIcon,"--chat-container-border":t.border,"--chat-container-border-radius":t.borderRadius,"--chat-container-box-shadow":t.boxShadow,"--chat-header-bg-color":n.background,"--chat-header-color-name":n.colorRoomName,"--chat-header-color-info":n.colorRoomInfo,"--chat-footer-bg-color":o.background,"--chat-border-style-input":o.borderStyleInput,"--chat-border-color-input-selected":o.borderInputSelected,"--chat-footer-bg-color-reply":o.backgroundReply,"--chat-footer-bg-color-tag-active":o.backgroundTagActive,"--chat-footer-bg-color-tag":o.backgroundTag,"--chat-content-bg-color":s.background,"--chat-sidemenu-bg-color":r.background,"--chat-sidemenu-bg-color-hover":r.backgroundHover,"--chat-sidemenu-bg-color-active":r.backgroundActive,"--chat-sidemenu-color-active":r.colorActive,"--chat-sidemenu-border-color-search":r.borderColorSearch,"--chat-dropdown-bg-color":i.background,"--chat-dropdown-bg-color-hover":i.backgroundHover,"--chat-message-bg-color":a.background,"--chat-message-bg-color-me":a.backgroundMe,"--chat-message-color-started":a.colorStarted,"--chat-message-bg-color-deleted":a.backgroundDeleted,"--chat-message-bg-color-selected":a.backgroundSelected,"--chat-message-color-deleted":a.colorDeleted,"--chat-message-color-username":a.colorUsername,"--chat-message-color-timestamp":a.colorTimestamp,"--chat-message-bg-color-date":a.backgroundDate,"--chat-message-color-date":a.colorDate,"--chat-message-bg-color-system":a.backgroundSystem,"--chat-message-color-system":a.colorSystem,"--chat-message-color":a.color,"--chat-message-bg-color-media":a.backgroundMedia,"--chat-message-bg-color-reply":a.backgroundReply,"--chat-message-color-reply-username":a.colorReplyUsername,"--chat-message-color-reply-content":a.colorReply,"--chat-message-color-tag":a.colorTag,"--chat-message-bg-color-image":a.backgroundImage,"--chat-message-color-new-messages":a.colorNewMessages,"--chat-message-bg-color-scroll-counter":a.backgroundScrollCounter,"--chat-message-color-scroll-counter":a.colorScrollCounter,"--chat-message-bg-color-reaction":a.backgroundReaction,"--chat-message-border-style-reaction":a.borderStyleReaction,"--chat-message-bg-color-reaction-hover":a.backgroundReactionHover,"--chat-message-border-style-reaction-hover":a.borderStyleReactionHover,"--chat-message-color-reaction-counter":a.colorReactionCounter,"--chat-message-bg-color-reaction-me":a.backgroundReactionMe,"--chat-message-border-style-reaction-me":a.borderStyleReactionMe,"--chat-message-bg-color-reaction-hover-me":a.backgroundReactionHoverMe,"--chat-message-border-style-reaction-hover-me":a.borderStyleReactionHoverMe,"--chat-message-color-reaction-counter-me":a.colorReactionCounterMe,"--chat-message-bg-color-audio-record":a.backgroundAudioRecord,"--chat-message-bg-color-audio-line":a.backgroundAudioLine,"--chat-message-bg-color-audio-progress":a.backgroundAudioProgress,"--chat-message-bg-color-audio-progress-selector":a.backgroundAudioProgressSelector,"--chat-message-color-file-extension":a.colorFileExtension,"--chat-markdown-bg":l.background,"--chat-markdown-border":l.border,"--chat-markdown-color":l.color,"--chat-markdown-color-multi":l.colorMulti,"--chat-room-color-username":c.colorUsername,"--chat-room-color-message":c.colorMessage,"--chat-room-color-timestamp":c.colorTimestamp,"--chat-room-color-online":c.colorStateOnline,"--chat-room-color-offline":c.colorStateOffline,"--chat-room-bg-color-badge":c.backgroundCounterBadge,"--chat-room-color-badge":c.colorCounterBadge,"--chat-emoji-bg-color":u.background,"--chat-icon-color-search":d.search,"--chat-icon-color-add":d.add,"--chat-icon-color-toggle":d.toggle,"--chat-icon-color-menu":d.menu,"--chat-icon-color-close":d.close,"--chat-icon-color-close-image":d.closeImage,"--chat-icon-color-file":d.file,"--chat-icon-color-paperclip":d.paperclip,"--chat-icon-color-close-outline":d.closeOutline,"--chat-icon-color-close-preview":d.closePreview,"--chat-icon-color-send":d.send,"--chat-icon-color-send-disabled":d.sendDisabled,"--chat-icon-color-emoji":d.emoji,"--chat-icon-color-emoji-reaction":d.emojiReaction,"--chat-icon-color-document":d.document,"--chat-icon-color-pencil":d.pencil,"--chat-icon-color-checkmark":d.checkmark,"--chat-icon-color-checkmark-seen":d.checkmarkSeen,"--chat-icon-color-eye":d.eye,"--chat-icon-color-dropdown-message":d.dropdownMessage,"--chat-icon-bg-dropdown-message":d.dropdownMessageBackground,"--chat-icon-color-dropdown-room":d.dropdownRoom,"--chat-icon-color-dropdown-scroll":d.dropdownScroll,"--chat-icon-color-microphone":d.microphone,"--chat-icon-color-audio-play":d.audioPlay,"--chat-icon-color-audio-pause":d.audioPause,"--chat-icon-color-audio-cancel":d.audioCancel,"--chat-icon-color-audio-confirm":d.audioConfirm});var fP='.vac-fade-spinner-enter-from{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter-from{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter-from{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter-from,.vac-slide-left-leave-to{transform:translate(10px);opacity:0}.vac-slide-right-enter-from,.vac-slide-right-leave-to{transform:translate(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter-from,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.markdown p{margin:0}.markdown ol{display:flex;flex-direction:column;list-style-position:inside}.markdown ul{display:flex;flex-direction:column}.markdown code{display:block;font-size:12px;color:var(--chat-markdown-color-multi);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:4px 0;padding:7px}.markdown p code{display:inline-block;font-size:12px;color:var(--chat-markdown-color);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:2px 0;padding:2px 3px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container textarea,.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container input[type=search]{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:#000c;outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.vac-media-preview video{width:100%;height:100%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width: 768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:65px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:25px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px #0003,0 1px 1px #00000024,0 1px 2px #0000001f;display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width: 768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(360deg)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width: 768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px}.vac-textarea{max-height:300px;overflow-y:auto;height:20px;width:100%;line-height:20px;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);animation:vac-scaling .8s ease-in-out infinite alternate}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-confirm{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop svg,.vac-icon-textarea-left .vac-icon-audio-confirm svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width: 768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 5px!important}}@media only screen and (max-height: 768px){.vac-textarea{max-height:120px}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width: 768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width: 768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width: 768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:" ";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width: 768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width: 768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-item:not(.vac-room-selected){cursor:pointer}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important;background:var(--chat-sidemenu-bg-color-active)!important}.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width: 768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width: 768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width: 768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:"";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;-webkit-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px #0000001a,0 1px 2px -1px #0000001c,0 1px 5px -1px #0000001c}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:.4s filter linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{-webkit-box-align:center;align-items:center;display:-webkit-inline-box;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width: 768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width: 768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width: 768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width: 768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:#0000004d}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(to bottom,rgba(0,0,0,0) 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8) 100%)}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-view,.vac-message-file-container .vac-image-buttons .vac-button-download{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{width:100%;height:100%;border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{width:100%;height:100%;border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px #0000001a,0 1px 2px -1px #0000001a,0 1px 2px 1px #0000001a;scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:initial;right:initial}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size: 1.2rem;--background: var(--chat-emoji-bg-color);--emoji-padding: .4rem;--border-color: var(--chat-sidemenu-border-color-search);--button-hover-background: var(--chat-sidemenu-bg-color-hover);--button-active-background: var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-format-message-wrapper .vac-icon-deleted.vac-icon-deleted-room{margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:center center!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px rgba(0,0,0,.25) solid;border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s infinite linear;animation:vac-spin 1s infinite linear}@media only screen and (max-width: 768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:#000000b3;border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}\n';const pP={name:"ChatContainer",components:{RoomsList:NS,Room:eP,MediaPreview:lP},props:{height:{type:String,default:"600px"},theme:{type:String,default:"light"},styles:{type:[Object,String],default:()=>({})},responsiveBreakpoint:{type:Number,default:900},singleRoom:{type:[Boolean,String],default:!1},roomsListOpened:{type:[Boolean,String],default:!0},textMessages:{type:[Object,String],default:()=>({})},currentUserId:{type:String,default:""},rooms:{type:[Array,String],default:()=>[]},roomsOrder:{type:String,default:"desc"},loadingRooms:{type:[Boolean,String],default:!1},roomsLoaded:{type:[Boolean,String],default:!1},roomId:{type:String,default:null},loadFirstRoom:{type:[Boolean,String],default:!0},messages:{type:[Array,String],default:()=>[]},messagesLoaded:{type:[Boolean,String],default:!1},roomActions:{type:[Array,String],default:()=>[]},menuActions:{type:[Array,String],default:()=>[]},messageActions:{type:[Array,String],default:()=>[{name:"replyMessage",title:"Reply"},{name:"editMessage",title:"Edit Message",onlyMe:!0},{name:"deleteMessage",title:"Delete Message",onlyMe:!0},{name:"selectMessages",title:"Select"}]},messageSelectionActions:{type:[Array,String],default:()=>[]},autoScroll:{type:[Object,String],default:()=>({send:{new:!0,newAfterScrollUp:!0},receive:{new:!0,newAfterScrollUp:!1}})},customSearchRoomEnabled:{type:[Boolean,String],default:!1},showSearch:{type:[Boolean,String],default:!0},showAddRoom:{type:[Boolean,String],default:!0},showSendIcon:{type:[Boolean,String],default:!0},showFiles:{type:[Boolean,String],default:!0},showAudio:{type:[Boolean,String],default:!0},audioBitRate:{type:Number,default:128},audioSampleRate:{type:Number,default:44100},showEmojis:{type:[Boolean,String],default:!0},showReactionEmojis:{type:[Boolean,String],default:!0},showNewMessagesDivider:{type:[Boolean,String],default:!0},showFooter:{type:[Boolean,String],default:!0},textFormatting:{type:[Object,String],default:()=>({disabled:!1})},linkOptions:{type:[Object,String],default:()=>({disabled:!1,target:"_blank",rel:null})},roomInfoEnabled:{type:[Boolean,String],default:!1},textareaActionEnabled:{type:[Boolean,String],default:!1},textareaAutoFocus:{type:[Boolean,String],default:!0},userTagsEnabled:{type:[Boolean,String],default:!0},emojisSuggestionEnabled:{type:[Boolean,String],default:!0},roomMessage:{type:String,default:""},scrollDistance:{type:Number,default:60},acceptedFiles:{type:String,default:"*"},captureFiles:{type:String,default:""},multipleFiles:{type:[Boolean,String],default:!0},templatesText:{type:[Array,String],default:()=>[]},mediaPreviewEnabled:{type:[Boolean,String],default:!0},usernameOptions:{type:[Object,String],default:()=>({minUsers:3,currentUser:!1})},emojiDataSource:{type:String,default:void 0}},emits:["toggle-rooms-list","room-info","fetch-messages","send-message","edit-message","delete-message","open-file","open-user-tag","open-failed-message","menu-action-handler","message-action-handler","send-message-reaction","typing-message","textarea-action-handler","fetch-more-rooms","add-room","search-room","room-action-handler","message-selection-action-handler"],data(){return{slots:[],room:{},loadingMoreRooms:!1,showRoomsList:!0,isMobile:!1,showMediaPreview:!1,previewFile:{}}},computed:{t(){return{...cP,...this.textMessagesCasted}},cssVars(){const e=uP[this.theme],t={};return Object.keys(e).map((n=>{t[n]={...e[n],...this.stylesCasted[n]||{}}})),dP(t)},orderedRooms(){return this.roomsCasted.slice().sort(((e,t)=>{const n=e.index||0,o=t.index||0;return"asc"===this.roomsOrder?n<o?-1:o<n?1:0:n>o?-1:o>n?1:0}))},singleRoomCasted(){return this.castBoolean(this.singleRoom)},roomsListOpenedCasted(){return this.castBoolean(this.roomsListOpened)},loadingRoomsCasted(){return this.castBoolean(this.loadingRooms)},roomsLoadedCasted(){return this.castBoolean(this.roomsLoaded)},loadFirstRoomCasted(){return this.castBoolean(this.loadFirstRoom)},messagesLoadedCasted(){return this.castBoolean(this.messagesLoaded)},multipleFilesCasted(){return this.castBoolean(this.multipleFiles)},showSearchCasted(){return this.castBoolean(this.showSearch)},showAddRoomCasted(){return this.castBoolean(this.showAddRoom)},showSendIconCasted(){return this.castBoolean(this.showSendIcon)},showFilesCasted(){return this.castBoolean(this.showFiles)},showAudioCasted(){return this.castBoolean(this.showAudio)},showEmojisCasted(){return this.castBoolean(this.showEmojis)},showReactionEmojisCasted(){return this.castBoolean(this.showReactionEmojis)},showNewMessagesDividerCasted(){return this.castBoolean(this.showNewMessagesDivider)},showFooterCasted(){return this.castBoolean(this.showFooter)},roomInfoEnabledCasted(){return this.castBoolean(this.roomInfoEnabled)},textareaActionEnabledCasted(){return this.castBoolean(this.textareaActionEnabled)},textareaAutoFocusCasted(){return this.castBoolean(this.textareaAutoFocus)},userTagsEnabledCasted(){return this.castBoolean(this.userTagsEnabled)},emojisSuggestionEnabledCasted(){return this.castBoolean(this.emojisSuggestionEnabled)},mediaPreviewEnabledCasted(){return this.castBoolean(this.mediaPreviewEnabled)},roomsCasted(){return this.castArray(this.rooms)},messagesCasted(){return this.castArray(this.messages)},roomActionsCasted(){return this.castArray(this.roomActions)},menuActionsCasted(){return this.castArray(this.menuActions)},messageActionsCasted(){return this.castArray(this.messageActions)},messageSelectionActionsCasted(){return this.castArray(this.messageSelectionActions)},templatesTextCasted(){return this.castArray(this.templatesText)},stylesCasted(){return this.castObject(this.styles)},textMessagesCasted(){return this.castObject(this.textMessages)},autoScrollCasted(){return this.castObject(this.autoScroll)},textFormattingCasted(){return this.castObject(this.textFormatting)},linkOptionsCasted(){return this.castObject(this.linkOptions)},usernameOptionsCasted(){return this.castObject(this.usernameOptions)}},watch:{roomsCasted:{immediate:!0,deep:!0,handler(e,t){if(e[0]&&e.find((e=>e.roomId===this.room.roomId))||(this.showRoomsList=!0),!this.loadingMoreRooms&&this.loadFirstRoomCasted&&e[0]&&(!t||e.length!==t.length))if(this.roomId){const t=e.find((e=>e.roomId===this.roomId))||{};this.fetchRoom({room:t})}else!this.isMobile||this.singleRoomCasted?this.fetchRoom({room:this.orderedRooms[0]}):this.showRoomsList=!0}},loadingRoomsCasted(e){e&&(this.room={})},roomId:{immediate:!0,handler(e,t){if(e&&!this.loadingRoomsCasted&&this.roomsCasted.length){const t=this.roomsCasted.find((t=>t.roomId===e));this.fetchRoom({room:t})}else t&&!e&&(this.room={})}},room(e){e&&0!==Object.entries(e).length&&(TB(e),e.users.forEach((e=>{MB(e)})))},roomsListOpenedCasted:{immediate:!0,handler(e){this.showRoomsList=e}}},created(){this.updateResponsive(),window.addEventListener("resize",(e=>{e.isTrusted&&this.updateResponsive()}))},updated(){const e=document.querySelectorAll("[slot]");this.slots.length!==e.length&&(this.slots=e)},methods:{castBoolean(e){return"true"===e||!0===e},castArray(e){return e?Array.isArray(e)?e:JSON.parse(e):[]},castObject(e){return e?"object"===typeof e?e:JSON.parse(e):{}},updateResponsive(){this.isMobile=window.innerWidth<Number(this.responsiveBreakpoint)},toggleRoomsList(){this.showRoomsList=!this.showRoomsList,this.isMobile&&(this.room={}),this.$emit("toggle-rooms-list",{opened:this.showRoomsList})},fetchRoom({room:e}){this.room=e,this.fetchMessages({reset:!0}),this.isMobile&&(this.showRoomsList=!1)},fetchMoreRooms(){this.$emit("fetch-more-rooms")},roomInfo(){this.$emit("room-info",this.room)},addRoom(){this.$emit("add-room")},searchRoom(e){this.$emit("search-room",{value:e,roomId:this.room.roomId})},fetchMessages(e){this.$emit("fetch-messages",{room:this.room,options:e})},sendMessage(e){this.$emit("send-message",{...e,roomId:this.room.roomId})},editMessage(e){this.$emit("edit-message",{...e,roomId:this.room.roomId})},deleteMessage(e){this.$emit("delete-message",{message:e,roomId:this.room.roomId})},openFile({message:e,file:t}){this.mediaPreviewEnabledCasted&&"preview"===t.action?(this.previewFile=t.file,this.showMediaPreview=!0):this.$emit("open-file",{message:e,file:t})},openUserTag({user:e}){this.$emit("open-user-tag",{user:e})},openFailedMessage({message:e}){this.$emit("open-failed-message",{message:e,roomId:this.room.roomId})},menuActionHandler(e){this.$emit("menu-action-handler",{action:e,roomId:this.room.roomId})},roomActionHandler({action:e,roomId:t}){this.$emit("room-action-handler",{action:e,roomId:t})},messageActionHandler(e){this.$emit("message-action-handler",{...e,roomId:this.room.roomId})},messageSelectionActionHandler(e){this.$emit("message-selection-action-handler",{...e,roomId:this.room.roomId})},sendMessageReaction(e){this.$emit("send-message-reaction",{...e,roomId:this.room.roomId})},typingMessage(e){this.$emit("typing-message",{message:e,roomId:this.room.roomId})},textareaActionHandler(e){this.$emit("textarea-action-handler",{message:e,roomId:this.room.roomId})}}},hP={class:"vac-chat-container"};function mP(e,t,n,o,r,s){const i=_m("rooms-list"),a=_m("room"),l=_m("media-preview");return Sg(),Rg("div",{class:"vac-card-window",style:Qf([{height:n.height},s.cssVars])},[Ng("div",hP,[s.singleRoomCasted?Vg("",!0):(Sg(),Cg(i,{key:0,"current-user-id":n.currentUserId,rooms:s.orderedRooms,"loading-rooms":s.loadingRoomsCasted,"rooms-loaded":s.roomsLoadedCasted,room:r.room,"room-actions":s.roomActionsCasted,"custom-search-room-enabled":n.customSearchRoomEnabled,"text-messages":s.t,"show-search":s.showSearchCasted,"show-add-room":s.showAddRoomCasted,"show-rooms-list":r.showRoomsList&&s.roomsListOpenedCasted,"text-formatting":s.textFormattingCasted,"link-options":s.linkOptionsCasted,"is-mobile":r.isMobile,"scroll-distance":n.scrollDistance,onFetchRoom:s.fetchRoom,onFetchMoreRooms:s.fetchMoreRooms,onLoadingMoreRooms:t[0]||(t[0]=e=>r.loadingMoreRooms=e),onAddRoom:s.addRoom,onSearchRoom:s.searchRoom,onRoomActionHandler:s.roomActionHandler},Em({_:2},[Sm(r.slots,(t=>({name:t.slot,fn:wh((n=>[Tm(e.$slots,t.slot,op(Dg(n)))]))})))]),1032,["current-user-id","rooms","loading-rooms","rooms-loaded","room","room-actions","custom-search-room-enabled","text-messages","show-search","show-add-room","show-rooms-list","text-formatting","link-options","is-mobile","scroll-distance","onFetchRoom","onFetchMoreRooms","onAddRoom","onSearchRoom","onRoomActionHandler"])),jg(a,{"current-user-id":n.currentUserId,rooms:s.roomsCasted,"room-id":r.room.roomId||"","load-first-room":s.loadFirstRoomCasted,messages:s.messagesCasted,"room-message":n.roomMessage,"messages-loaded":s.messagesLoadedCasted,"menu-actions":s.menuActionsCasted,"message-actions":s.messageActionsCasted,"message-selection-actions":s.messageSelectionActionsCasted,"auto-scroll":s.autoScrollCasted,"show-send-icon":s.showSendIconCasted,"show-files":s.showFilesCasted,"show-audio":s.showAudioCasted,"audio-bit-rate":n.audioBitRate,"audio-sample-rate":n.audioSampleRate,"show-emojis":s.showEmojisCasted,"show-reaction-emojis":s.showReactionEmojisCasted,"show-new-messages-divider":s.showNewMessagesDividerCasted,"show-footer":s.showFooterCasted,"text-messages":s.t,"single-room":s.singleRoomCasted,"show-rooms-list":r.showRoomsList&&s.roomsListOpenedCasted,"text-formatting":s.textFormattingCasted,"link-options":s.linkOptionsCasted,"is-mobile":r.isMobile,"loading-rooms":s.loadingRoomsCasted,"room-info-enabled":s.roomInfoEnabledCasted,"textarea-action-enabled":s.textareaActionEnabledCasted,"textarea-auto-focus":s.textareaAutoFocusCasted,"user-tags-enabled":s.userTagsEnabledCasted,"emojis-suggestion-enabled":s.emojisSuggestionEnabledCasted,"scroll-distance":n.scrollDistance,"accepted-files":n.acceptedFiles,"capture-files":n.captureFiles,"multiple-files":s.multipleFilesCasted,"templates-text":s.templatesTextCasted,"username-options":s.usernameOptionsCasted,"emoji-data-source":n.emojiDataSource,onToggleRoomsList:s.toggleRoomsList,onRoomInfo:s.roomInfo,onFetchMessages:s.fetchMessages,onSendMessage:s.sendMessage,onEditMessage:s.editMessage,onDeleteMessage:s.deleteMessage,onOpenFile:s.openFile,onOpenUserTag:s.openUserTag,onOpenFailedMessage:s.openFailedMessage,onMenuActionHandler:s.menuActionHandler,onMessageActionHandler:s.messageActionHandler,onMessageSelectionActionHandler:s.messageSelectionActionHandler,onSendMessageReaction:s.sendMessageReaction,onTypingMessage:s.typingMessage,onTextareaActionHandler:s.textareaActionHandler},Em({_:2},[Sm(r.slots,(t=>({name:t.slot,fn:wh((n=>[Tm(e.$slots,t.slot,op(Dg(n)))]))})))]),1032,["current-user-id","rooms","room-id","load-first-room","messages","room-message","messages-loaded","menu-actions","message-actions","message-selection-actions","auto-scroll","show-send-icon","show-files","show-audio","audio-bit-rate","audio-sample-rate","show-emojis","show-reaction-emojis","show-new-messages-divider","show-footer","text-messages","single-room","show-rooms-list","text-formatting","link-options","is-mobile","loading-rooms","room-info-enabled","textarea-action-enabled","textarea-auto-focus","user-tags-enabled","emojis-suggestion-enabled","scroll-distance","accepted-files","capture-files","multiple-files","templates-text","username-options","emoji-data-source","onToggleRoomsList","onRoomInfo","onFetchMessages","onSendMessage","onEditMessage","onDeleteMessage","onOpenFile","onOpenUserTag","onOpenFailedMessage","onMenuActionHandler","onMessageActionHandler","onMessageSelectionActionHandler","onSendMessageReaction","onTypingMessage","onTextareaActionHandler"])]),jg(g_,{name:"vac-fade-preview",appear:""},{default:wh((()=>[r.showMediaPreview?(Sg(),Cg(l,{key:0,file:r.previewFile,onCloseMediaPreview:t[1]||(t[1]=e=>r.showMediaPreview=!1)},Em({_:2},[Sm(r.slots,(t=>({name:t.slot,fn:wh((n=>[Tm(e.$slots,t.slot,op(Dg(n)))]))})))]),1032,["file"])):Vg("",!0)])),_:3})],4)}var gP=Q_(pP,[["render",mP],["styles",[fP]]]);const vP=d_(gP),_P="vue-advanced-chat";function bP(){customElements.get(_P)||customElements.define(_P,vP)}bP();var yP=br({data(){return{socket:null,rooms:[{roomId:"global",roomName:"",avatar:"",users:[]}],messagesLoaded:!1,messages:[],currentUserId:null}},mounted(){let e="";const t=document.getElementById("room-info");t&&(e=t.textContent);let n=null;if(!e)throw"No room info provided";n=JSON.parse(e),this.rooms=[{roomId:n.room_name,roomName:n.room_title,avatar:"",users:[{_id:"1",username:"Fake user 1",avatar:"assets/imgs/doe.png",status:{state:"online",lastChanged:"today, 14:30"}},{_id:"2",username:"Fake user 2",avatar:"assets/imgs/snow.png",status:{state:"online",lastChanged:"14 July, 20:00"}},{_id:"3",username:"Fake user 3",avatar:"assets/imgs/snow.png",status:{state:"online",lastChanged:"14 July, 20:00"}}]}],this.connect(n.room_name),this.currentUserId=n.user_id},methods:{connect(e){let t="wss";"https:"!=window.location.protocol&&(t="ws"),this.socket=new WebSocket(t+"://"+window.location.host+"/ws/chat/"+e+"/"),this.fetchMessages(),this.socket.onclose=()=>{console.log("Chat socket closed")}},async fetchMessages(){this.socket.onmessage=e=>{const t=JSON.parse(e.data),n=t.type;if("initial"==n&&this.messagesLoaded)return;const o=t.messages;this.messages=[...this.messages,...o],"initial"==n&&(this.messagesLoaded=!0)}},sendMessage({content:e,replyMessage:t}){this.socket.send(JSON.stringify({message:e,replyTo:t?t._id:null}))}},computed:{showAudio(){}}}),xP=n(8152);const wP=(0,xP.c)(yP,[["render",Ku]]);var kP=wP;const SP=e=>(co("data-v-4610efbd"),e=e(),uo(),e),EP={class:"bell"},TP=SP((()=>$a("img",{src:"/static/teleforma/images/bell.svg",alt:"Notifications",title:"Notifications",class:"bell-image"},null,-1))),MP={key:0,class:"bell-count"},AP={key:0,class:"notifications-list"};function RP(e,t,n,o,r,s){const i=So("notification-message");return Ra(),La("div",{id:"notifications",onFocus:t[0]||(t[0]=(...t)=>e.open&&e.open(...t)),onFocusout:t[1]||(t[1]=(...t)=>e.close&&e.close(...t)),tabindex:"0"},[$a("div",EP,[TP,e.numberOfUnread>0?(Ra(),La("span",MP,oe(e.numberOfUnread),1)):Ka("",!0)]),e.opened?(Ra(),La("div",AP,[$a("ul",null,[(Ra(!0),La(ka,null,ss(e.messages,(e=>(Ra(),Na(i,{key:e._id,id:e._id,content:e.content,url:e.url,viewed:e.viewed,"creation-date":e.created},null,8,["id","content","url","viewed","creation-date"])))),128))])])):Ka("",!0)],32)}const CP={class:"date"};function OP(e,t,n,o,r,s){return Ra(),La("li",{onClick:t[0]||(t[0]=t=>e.onClick()),onMouseup:t[1]||(t[1]=Mu((t=>e.onMiddleClick()),["middle"]))},[$a("span",{class:W({unviewed:!e.viewed,text:!0})},oe(e.content),3),$a("span",CP,oe(e.relativeCreationDate),1)],32)}function IP(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function BP(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function PP(e){BP(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function LP(e){BP(1,arguments);var t=PP(e);return t.setHours(0,0,0,0),t}var NP=864e5;function jP(e,t){BP(2,arguments);var n=LP(e),o=LP(t),r=n.getTime()-IP(n),s=o.getTime()-IP(o);return Math.round((r-s)/NP)}function FP(e){return BP(1,arguments),e instanceof Date||"object"===typeof e&&"[object Date]"===Object.prototype.toString.call(e)}function DP(e){if(BP(1,arguments),!FP(e)&&"number"!==typeof e)return!1;var t=PP(e);return!isNaN(Number(t))}var HP={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},UP=function(e,t,n){var o,r=HP[e];return o="string"===typeof r?r:1===t?r.one:r.other.replace("{{count}}",t.toString()),null!==n&&void 0!==n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+o:o+" ago":o},VP=UP;function $P(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,o=e.formats[n]||e.formats[e.defaultWidth];return o}}var zP={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},qP={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},YP={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},XP={date:$P({formats:zP,defaultWidth:"full"}),time:$P({formats:qP,defaultWidth:"full"}),dateTime:$P({formats:YP,defaultWidth:"full"})},GP=XP,WP={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},KP=function(e,t,n,o){return WP[e]},ZP=KP;function QP(e){return function(t,n){var o,r=n||{},s=r.context?String(r.context):"standalone";if("formatting"===s&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,a=r.width?String(r.width):i;o=e.formattingValues[a]||e.formattingValues[i]}else{var l=e.defaultWidth,c=r.width?String(r.width):e.defaultWidth;o=e.values[c]||e.values[l]}var u=e.argumentCallback?e.argumentCallback(t):t;return o[u]}}var JP={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},eL={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},tL={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},nL={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},oL={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},rL={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},sL=function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},iL={ordinalNumber:sL,era:QP({values:JP,defaultWidth:"wide"}),quarter:QP({values:eL,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:QP({values:tL,defaultWidth:"wide"}),day:QP({values:nL,defaultWidth:"wide"}),dayPeriod:QP({values:oL,defaultWidth:"wide",formattingValues:rL,defaultFormattingWidth:"wide"})},aL=iL;function lL(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,r=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],s=t.match(r);if(!s)return null;var i,a=s[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?uL(l,(function(e){return e.test(a)})):cL(l,(function(e){return e.test(a)}));i=e.valueCallback?e.valueCallback(c):c,i=n.valueCallback?n.valueCallback(i):i;var u=t.slice(a.length);return{value:i,rest:u}}}function cL(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function uL(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n}function dL(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=t.match(e.matchPattern);if(!o)return null;var r=o[0],s=t.match(e.parsePattern);if(!s)return null;var i=e.valueCallback?e.valueCallback(s[0]):s[0];i=n.valueCallback?n.valueCallback(i):i;var a=t.slice(r.length);return{value:i,rest:a}}}var fL=/^(\d+)(th|st|nd|rd)?/i,pL=/\d+/i,hL={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},mL={any:[/^b/i,/^(a|c)/i]},gL={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},vL={any:[/1/i,/2/i,/3/i,/4/i]},_L={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},bL={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},yL={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},xL={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},wL={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},kL={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},SL={ordinalNumber:dL({matchPattern:fL,parsePattern:pL,valueCallback:function(e){return parseInt(e,10)}}),era:lL({matchPatterns:hL,defaultMatchWidth:"wide",parsePatterns:mL,defaultParseWidth:"any"}),quarter:lL({matchPatterns:gL,defaultMatchWidth:"wide",parsePatterns:vL,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:lL({matchPatterns:_L,defaultMatchWidth:"wide",parsePatterns:bL,defaultParseWidth:"any"}),day:lL({matchPatterns:yL,defaultMatchWidth:"wide",parsePatterns:xL,defaultParseWidth:"any"}),dayPeriod:lL({matchPatterns:wL,defaultMatchWidth:"any",parsePatterns:kL,defaultParseWidth:"any"})},EL=SL,TL={code:"en-US",formatDistance:VP,formatLong:GP,formatRelative:ZP,localize:aL,match:EL,options:{weekStartsOn:0,firstWeekContainsDate:1}},ML=TL;function AL(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function RL(e,t){BP(2,arguments);var n=PP(e).getTime(),o=AL(t);return new Date(n+o)}function CL(e,t){BP(2,arguments);var n=AL(t);return RL(e,-n)}var OL=864e5;function IL(e){BP(1,arguments);var t=PP(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=t.getTime(),r=n-o;return Math.floor(r/OL)+1}function BL(e){BP(1,arguments);var t=1,n=PP(e),o=n.getUTCDay(),r=(o<t?7:0)+o-t;return n.setUTCDate(n.getUTCDate()-r),n.setUTCHours(0,0,0,0),n}function PL(e){BP(1,arguments);var t=PP(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var r=BL(o),s=new Date(0);s.setUTCFullYear(n,0,4),s.setUTCHours(0,0,0,0);var i=BL(s);return t.getTime()>=r.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function LL(e){BP(1,arguments);var t=PL(e),n=new Date(0);n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0);var o=BL(n);return o}var NL=6048e5;function jL(e){BP(1,arguments);var t=PP(e),n=BL(t).getTime()-LL(t).getTime();return Math.round(n/NL)+1}function FL(e,t){BP(1,arguments);var n=t||{},o=n.locale,r=o&&o.options&&o.options.weekStartsOn,s=null==r?0:AL(r),i=null==n.weekStartsOn?s:AL(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var a=PP(e),l=a.getUTCDay(),c=(l<i?7:0)+l-i;return a.setUTCDate(a.getUTCDate()-c),a.setUTCHours(0,0,0,0),a}function DL(e,t){BP(1,arguments);var n=PP(e),o=n.getUTCFullYear(),r=t||{},s=r.locale,i=s&&s.options&&s.options.firstWeekContainsDate,a=null==i?1:AL(i),l=null==r.firstWeekContainsDate?a:AL(r.firstWeekContainsDate);if(!(l>=1&&l<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var c=new Date(0);c.setUTCFullYear(o+1,0,l),c.setUTCHours(0,0,0,0);var u=FL(c,t),d=new Date(0);d.setUTCFullYear(o,0,l),d.setUTCHours(0,0,0,0);var f=FL(d,t);return n.getTime()>=u.getTime()?o+1:n.getTime()>=f.getTime()?o:o-1}function HL(e,t){BP(1,arguments);var n=t||{},o=n.locale,r=o&&o.options&&o.options.firstWeekContainsDate,s=null==r?1:AL(r),i=null==n.firstWeekContainsDate?s:AL(n.firstWeekContainsDate),a=DL(e,t),l=new Date(0);l.setUTCFullYear(a,0,i),l.setUTCHours(0,0,0,0);var c=FL(l,t);return c}var UL=6048e5;function VL(e,t){BP(1,arguments);var n=PP(e),o=FL(n,t).getTime()-HL(n,t).getTime();return Math.round(o/UL)+1}function $L(e,t){var n=e<0?"-":"",o=Math.abs(e).toString();while(o.length<t)o="0"+o;return n+o}var zL={y:function(e,t){var n=e.getUTCFullYear(),o=n>0?n:1-n;return $L("yy"===t?o%100:o,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):$L(n+1,2)},d:function(e,t){return $L(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return $L(e.getUTCHours()%12||12,t.length)},H:function(e,t){return $L(e.getUTCHours(),t.length)},m:function(e,t){return $L(e.getUTCMinutes(),t.length)},s:function(e,t){return $L(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,o=e.getUTCMilliseconds(),r=Math.floor(o*Math.pow(10,n-3));return $L(r,t.length)}},qL=zL,YL={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},XL={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});case"GGGG":default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),r=o>0?o:1-o;return n.ordinalNumber(r,{unit:"year"})}return qL.y(e,t)},Y:function(e,t,n,o){var r=DL(e,o),s=r>0?r:1-r;if("YY"===t){var i=s%100;return $L(i,2)}return"Yo"===t?n.ordinalNumber(s,{unit:"year"}):$L(s,t.length)},R:function(e,t){var n=PL(e);return $L(n,t.length)},u:function(e,t){var n=e.getUTCFullYear();return $L(n,t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return $L(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return $L(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return qL.M(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return $L(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var r=VL(e,o);return"wo"===t?n.ordinalNumber(r,{unit:"week"}):$L(r,t.length)},I:function(e,t,n){var o=jL(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):$L(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):qL.d(e,t)},D:function(e,t,n){var o=IL(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):$L(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});case"EEEE":default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var r=e.getUTCDay(),s=(r-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return $L(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});case"eeee":default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var r=e.getUTCDay(),s=(r-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return $L(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});case"cccc":default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),r=0===o?7:o;switch(t){case"i":return String(r);case"ii":return $L(r,t.length);case"io":return n.ordinalNumber(r,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});case"iiii":default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours(),r=o/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,r=e.getUTCHours();switch(o=12===r?YL.noon:0===r?YL.midnight:r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,r=e.getUTCHours();switch(o=r>=17?YL.evening:r>=12?YL.afternoon:r>=4?YL.morning:YL.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return qL.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):qL.H(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):$L(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):$L(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):qL.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):qL.s(e,t)},S:function(e,t){return qL.S(e,t)},X:function(e,t,n,o){var r=o._originalDate||e,s=r.getTimezoneOffset();if(0===s)return"Z";switch(t){case"X":return WL(s);case"XXXX":case"XX":return KL(s);case"XXXXX":case"XXX":default:return KL(s,":")}},x:function(e,t,n,o){var r=o._originalDate||e,s=r.getTimezoneOffset();switch(t){case"x":return WL(s);case"xxxx":case"xx":return KL(s);case"xxxxx":case"xxx":default:return KL(s,":")}},O:function(e,t,n,o){var r=o._originalDate||e,s=r.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+GL(s,":");case"OOOO":default:return"GMT"+KL(s,":")}},z:function(e,t,n,o){var r=o._originalDate||e,s=r.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+GL(s,":");case"zzzz":default:return"GMT"+KL(s,":")}},t:function(e,t,n,o){var r=o._originalDate||e,s=Math.floor(r.getTime()/1e3);return $L(s,t.length)},T:function(e,t,n,o){var r=o._originalDate||e,s=r.getTime();return $L(s,t.length)}};function GL(e,t){var n=e>0?"-":"+",o=Math.abs(e),r=Math.floor(o/60),s=o%60;if(0===s)return n+String(r);var i=t||"";return n+String(r)+i+$L(s,2)}function WL(e,t){if(e%60===0){var n=e>0?"-":"+";return n+$L(Math.abs(e)/60,2)}return KL(e,t)}function KL(e,t){var n=t||"",o=e>0?"-":"+",r=Math.abs(e),s=$L(Math.floor(r/60),2),i=$L(r%60,2);return o+s+n+i}var ZL=XL;function QL(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}}function JL(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}}function eN(e,t){var n,o=e.match(/(P+)(p+)?/)||[],r=o[1],s=o[2];if(!s)return QL(e,t);switch(r){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;case"PPPP":default:n=t.dateTime({width:"full"});break}return n.replace("{{date}}",QL(r,t)).replace("{{time}}",JL(s,t))}var tN={p:JL,P:eN},nN=tN,oN=["D","DD"],rN=["YY","YYYY"];function sN(e){return-1!==oN.indexOf(e)}function iN(e){return-1!==rN.indexOf(e)}function aN(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"))}var lN=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,cN=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,uN=/^'([^]*?)'?$/,dN=/''/g,fN=/[a-zA-Z]/;function pN(e,t,n){BP(2,arguments);var o=String(t),r=n||{},s=r.locale||ML,i=s.options&&s.options.firstWeekContainsDate,a=null==i?1:AL(i),l=null==r.firstWeekContainsDate?a:AL(r.firstWeekContainsDate);if(!(l>=1&&l<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var c=s.options&&s.options.weekStartsOn,u=null==c?0:AL(c),d=null==r.weekStartsOn?u:AL(r.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!s.localize)throw new RangeError("locale must contain localize property");if(!s.formatLong)throw new RangeError("locale must contain formatLong property");var f=PP(e);if(!DP(f))throw new RangeError("Invalid time value");var p=IP(f),h=CL(f,p),m={firstWeekContainsDate:l,weekStartsOn:d,locale:s,_originalDate:f},g=o.match(cN).map((function(e){var t=e[0];if("p"===t||"P"===t){var n=nN[t];return n(e,s.formatLong,m)}return e})).join("").match(lN).map((function(n){if("''"===n)return"'";var o=n[0];if("'"===o)return hN(n);var i=ZL[o];if(i)return!r.useAdditionalWeekYearTokens&&iN(n)&&aN(n,t,e),!r.useAdditionalDayOfYearTokens&&sN(n)&&aN(n,t,e),i(h,n,s.localize,m);if(o.match(fN))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");return n})).join("");return g}function hN(e){return e.match(uN)[1].replace(dN,"'")}function mN(e,t,n){BP(2,arguments);var o=PP(e),r=PP(t),s=n||{},i=s.locale,a=void 0===i?ML:i,l=s.weekStartsOn,c=void 0===l?0:l;if(!a.localize)throw new RangeError("locale must contain localize property");if(!a.formatLong)throw new RangeError("locale must contain formatLong property");if(!a.formatRelative)throw new RangeError("locale must contain formatRelative property");var u,d=jP(o,r);if(isNaN(d))throw new RangeError("Invalid time value");u=d<-6?"other":d<-1?"lastWeek":d<0?"yesterday":d<1?"today":d<2?"tomorrow":d<7?"nextWeek":"other";var f=CL(o,IP(o)),p=CL(r,IP(r)),h=a.formatRelative(u,f,p,{locale:a,weekStartsOn:c});return pN(o,h,{locale:a,weekStartsOn:c})}var gN={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}},vN=function(e,t,n){var o,r=gN[e];return o="string"===typeof r?r:1===t?r.one:r.other.replace("{{count}}",String(t)),null!==n&&void 0!==n&&n.addSuffix?n.comparison&&n.comparison>0?"dans "+o:"il y a "+o:o},_N=vN,bN={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},yN={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},xN={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},wN={date:$P({formats:bN,defaultWidth:"full"}),time:$P({formats:yN,defaultWidth:"full"}),dateTime:$P({formats:xN,defaultWidth:"full"})},kN=wN,SN={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"},EN=function(e,t,n,o){return SN[e]},TN=EN,MN={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},AN={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},RN={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},CN={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},ON={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}},IN=function(e,t){var n=Number(e),o=null===t||void 0===t?void 0:t.unit;if(0===n)return"0";var r,s=["year","week","hour","minute","second"];return r=1===n?o&&s.includes(o)?"ère":"er":"ème",n+r},BN={ordinalNumber:IN,era:QP({values:MN,defaultWidth:"wide"}),quarter:QP({values:AN,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:QP({values:RN,defaultWidth:"wide"}),day:QP({values:CN,defaultWidth:"wide"}),dayPeriod:QP({values:ON,defaultWidth:"wide"})},PN=BN,LN=/^(\d+)(ième|ère|ème|er|e)?/i,NN=/\d+/i,jN={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},FN={any:[/^av/i,/^ap/i]},DN={narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},HN={any:[/1/i,/2/i,/3/i,/4/i]},UN={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},VN={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},$N={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},zN={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},qN={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},YN={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},XN={ordinalNumber:dL({matchPattern:LN,parsePattern:NN,valueCallback:function(e){return parseInt(e)}}),era:lL({matchPatterns:jN,defaultMatchWidth:"wide",parsePatterns:FN,defaultParseWidth:"any"}),quarter:lL({matchPatterns:DN,defaultMatchWidth:"wide",parsePatterns:HN,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:lL({matchPatterns:UN,defaultMatchWidth:"wide",parsePatterns:VN,defaultParseWidth:"any"}),day:lL({matchPatterns:$N,defaultMatchWidth:"wide",parsePatterns:zN,defaultParseWidth:"any"}),dayPeriod:lL({matchPatterns:qN,defaultMatchWidth:"any",parsePatterns:YN,defaultParseWidth:"any"})},GN=XN,WN={code:"fr",formatDistance:_N,formatLong:kN,formatRelative:TN,localize:PN,match:GN,options:{weekStartsOn:1,firstWeekContainsDate:4}},KN=WN,ZN=n(9899),QN=n.n(ZN),JN=br({props:{id:Number,content:String,url:String,viewed:Boolean,creationDate:String},methods:{async setAsViewed(){!1===this.viewed&&await QN().post("/notification",{id:this.id,viewed:!0})},async onClick(){await this.setAsViewed(),this.url&&(window.location.href=this.url)},async onMiddleClick(){await this.setAsViewed(),this.url&&window.open(this.url,"_blank")}},computed:{relativeCreationDate(){return mN(new Date(this.creationDate),new Date,{locale:KN})}}});const ej=(0,xP.c)(JN,[["render",OP],["__scopeId","data-v-fa1f8db4"]]);var tj=ej,nj=br({data(){return{socket:null,messagesLoaded:!1,messages:[],currentUserId:null,opened:!1}},components:{NotificationMessage:tj},created(){const e=document.getElementById("user_id");e&&(this.currentUserId=parseInt(e.getAttribute("value"),10),this.connect())},methods:{connect(){let e="wss";"https:"!=window.location.protocol&&(e="ws"),this.socket=new WebSocket(e+"://"+window.location.host+"/ws/notification/"+this.currentUserId+"/"),this.fetchMessages(),this.socket.onclose=()=>{console.log("Chat socket closed")}},async fetchMessages(){this.socket.onmessage=e=>{const t=JSON.parse(e.data),n=t.type;if("initial"===n&&this.messagesLoaded)return;const o=t.messages;let r=null;"new"===n&&1===o.length&&(r=this.messages.findIndex((e=>e._id===o[0]._id))),this.messages=null!==r&&-1!==r?[...this.messages.slice(0,r),o[0],...this.messages.slice(r+1)]:[...o,...this.messages],"initial"===n&&(this.messagesLoaded=!0)}},open(){this.opened=!0},close(){this.opened=!1}},computed:{numberOfUnread(){return this.messages.filter((e=>!e.viewed)).length}}});const oj=(0,xP.c)(nj,[["render",RP],["__scopeId","data-v-4610efbd"]]);var rj,sj=oj;n(3248);function ij(e){return ij="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},ij(e)}function aj(e,t){if("object"!=ij(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=ij(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function lj(e){var t=aj(e,"string");return"symbol"==ij(t)?t:String(t)}function cj(e,t,n){return t=lj(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(function(e){e["UNSTARTED"]="UNSARTED",e["ENDED"]="ENDED",e["PLAYING"]="PLAYING",e["PAUSE"]="PAUSE",e["BUFFERING"]="BUFFERING",e["LOADING"]="LOADING",e["LOADED"]="LOADED"})(rj||(rj={}));const uj=!0,dj={debug:(...e)=>{uj&&console.debug(...e)},error:(...e)=>{console.error(...e)}},fj=()=>{};class pj{constructor(e,t){cj(this,"videoId",void 0),cj(this,"videoPlayerConfig",void 0),cj(this,"videojs",void 0),cj(this,"player",void 0),cj(this,"controls",void 0),cj(this,"main",void 0),cj(this,"videoPlayerArea",void 0),cj(this,"videoElement",void 0),cj(this,"videoState",void 0),cj(this,"_startSeconds",void 0),cj(this,"loop",void 0),cj(this,"isPlaying",void 0),this.videoId=Math.random().toString(36).substring(2,15),this.player=e,this.videoPlayerConfig=t,this.main=this.videoPlayerConfig.main??!1,this.controls=this.videoPlayerConfig.controls??e.options.controls??!0,this.loop=e.options.loop??!1,this._startSeconds=parseFloat(String(this.videoPlayerConfig.startSeconds??0)),this.videoPlayerArea=null,this.videoElement=null,this.videoState=rj.LOADING,this.isPlaying=!1,this.mount()}mount(){if(this.render(),this.videoElement=document.querySelector(`#video_player_${this.videoId} video`),!this.videoElement)return dj.debug("video element not found");setTimeout((()=>{this.setupVideoElement({controls:this.controls,main:this.main})}),1),console.log("mount"),console.log(this.videoElement,this.controls),this.videoElement.addEventListener("play",this.onStateChange.bind(this,rj.PLAYING),!1),this.videoElement.addEventListener("pause",this.onStateChange.bind(this,rj.PAUSE),!1),this.videoElement.addEventListener("seeking",this.onSeeking.bind(this),!1),this.videoElement.addEventListener("timeupdate",this.onTimeUpdate.bind(this),!1),this.videoElement.addEventListener("loadeddata",this.onReady.bind(this),!1),this.videoElement.addEventListener("canplaythrough",this.onStateChange.bind(this,rj.UNSTARTED),!1),this.videoElement.addEventListener("ended",this.onStateChange.bind(this,rj.ENDED),!1),this.videoElement.addEventListener("waiting",this.onStateChange.bind(this,rj.BUFFERING),!1)}onReady(){console.log("READY"),dj.debug(this.videoId,"::[onReady]"),this.timeTo(0),this.player.onReady()}onSeeking(){dj.debug(this.videoId,"::[onSeeking]"),this.main&&this.player.onTimeUpdate(this,this.getPlayedTime())}onTimeUpdate(){this.main&&this.player.onTimeUpdate(this,this.getPlayedTime())}onStateChange(e){console.log("on state change",e),dj.debug(this.videoId,"::[onStateChange]",e),this.videoState=e;const t=[rj.BUFFERING,rj.PLAYING,rj.PAUSE,rj.ENDED,rj.UNSTARTED];(e!==rj.PLAYING||(this.isPlaying=!0,this.main))&&(e!==rj.PAUSE||(this.isPlaying=!1,this.main))&&t.includes(e)&&(console.log("progate"),this.player.changeState(e,this))}render(){if(console.log("render"),this.videoPlayerArea=document.querySelector(this.videoPlayerConfig.id),!this.videoPlayerArea)return dj.debug("id not found: ",this.videoPlayerConfig.id);this.videoPlayerArea.innerHTML=`\n        <video \n            id="video_player_${this.videoId}"\n            class="video-js vjs-theme-fantasy"\n            controls\n            preload="auto"\n            data-setup='{"playbackRates": [1, 1.25, 1.5, 2]}'\n            style="width:100%;height:inherit;"\n        >\n          <source src="${this.videoPlayerConfig.initialSrc}" type="video/mp4" />\n          <p class="vjs-no-js">\n            To view this video please enable JavaScript, and consider upgrading to a\n            web browser that\n            <a href="https://videojs.com/html5-video-support/" target="_blank"\n              >supports HTML5 video</a\n            >\n          </p>\n        </video>\n    `,this.videojs=window.videojs(`video_player_${this.videoId}`),this.videojs.controls(!0)}setupVideoElement(e){void 0!==e.controls&&this.setControls(e.controls),this.setMain(e.main)}_swap(e){if(!this.videoElement||!e.videoElement)return;const t=this.videoElement.parentElement,n=e.videoElement.parentElement,o=t.parentNode,r=n.parentNode;if(!o||!r)throw new Error("Parent node not found");const s=t.nextSibling===n?t:t.nextSibling;r.insertBefore(t,n),o.insertBefore(n,s);const i=this.controls,a=this.main;this.setupVideoElement({controls:e.controls,main:e.main}),e.setupVideoElement({controls:i,main:a})}async play(){this.videoElement&&this.videoState!==rj.PLAYING&&await this.videoElement.play().catch(fj)}async pause(){this.videoElement&&this.videoState!==rj.PAUSE&&await this.videoElement.pause()}stop(){this.videoElement&&(this.videoElement.pause(),this.timeTo(this.getDuration()-.5))}setControls(e){this.videoElement&&(console.log(this.videojs),console.log("set controls",e),this.videojs.controls(e),this.controls=e)}setMain(e){this.main=e}timeTo(e){if(this.videoElement){if(e=parseFloat(e.toString()),e+=this._startSeconds,e>=this.getDuration())return this.videoElement.currentTime=this.getDuration()-.05,dj.debug("timeTo: time is greater than duration"),void this.pause().then(fj);dj.debug("set time to: ",e),this.videoElement.currentTime=e}}getDuration(){return this.videoElement?.duration||0}getPlayLength(){return this.getDuration()-this._startSeconds}getCurrentTime(){return this.videoElement?.currentTime||0}getPlayedTime(){const e=this.getCurrentTime()-this._startSeconds;return Math.max(e,0)}isEnded(){const e=Math.abs(this.getCurrentTime()-this.getDuration());return e<.1}}var hj=pj;const mj={[rj.LOADING]:[rj.LOADED],[rj.LOADED]:[rj.PLAYING],[rj.PLAYING]:[rj.PAUSE,rj.ENDED],[rj.PAUSE]:[rj.PLAYING,rj.ENDED],[rj.ENDED]:[rj.PLAYING],[rj.BUFFERING]:[],[rj.UNSTARTED]:[]},gj=(e,t)=>{const n=mj[e];return!!n&&n.includes(t)};class vj{constructor(e){cj(this,"options",void 0),cj(this,"$container",void 0),cj(this,"videoPlayers",[]),cj(this,"readyCount",void 0),cj(this,"state",void 0),cj(this,"currentTime",void 0),this.options={controls:e.controls??!0,loop:e.loop??!1,area:e.area||"",videoPlayers:e.videoPlayers||[],template:'<div id="sync_video_player_container"></div>'},this.state=rj.LOADING,this.readyCount=0,this.$container=null,this.videoPlayers=[],this.currentTime=0}mount(){this.render(),this.addVideoPlayers(this.options.videoPlayers)}render(){const{template:e,area:t}=this.options;if(!t)return;const n=document.querySelector(t);if(!n)return dj.error("area not found: ",t);n.innerHTML=e||"",this.$container=document.querySelector("#sync_video_player_container")}async changeState(e,t){if(e!==rj.BUFFERING){if(e===rj.PLAYING)return console.log("set state : playing"),this.play();if(e===rj.PAUSE){if(t.isEnded())return;return this.pause()}if(e===rj.ENDED){const e=this.videoPlayers.find((e=>e.main));if(e&&e!==t)return;await this.moveStateTo(rj.ENDED,(()=>{this.options.loop&&this.timeTo(0)}))}e===rj.UNSTARTED&&this.state===rj.ENDED&&this.options.loop&&await this.play()}}async moveStateTo(e,t,n){if(gj(this.state,e)){const n=this.state;this.state=e,t&&await t(this.state,n),dj.debug("state changed to: ",e)}else n&&await n(this.state,e),dj.error("invalid state change: ",this.state,e)}async onReady(){this.readyCount++,this.readyCount===this.videoPlayers.length&&(console.log("READY2"),await this.moveStateTo(rj.LOADED))}onTimeUpdate(e,t){const n=Math.abs(this.currentTime-t);n>.5&&this.timeTo(t),this.currentTime=t,this.fixVideoStates()}fixVideoStates(){const e=this.videoPlayers.find((e=>e.main));e&&this.videoPlayers.forEach((t=>{t!==e&&(t.isEnded()||(e.isPlaying&&!t.isPlaying&&t.play().catch((()=>{})),!e.isPlaying&&t.isPlaying&&t.pause().catch((()=>{}))))}))}addVideoPlayers(e){e&&e.forEach((e=>{this.addVideoPlayer(e)}))}addVideoPlayer(e){const t=new hj(this,e);t.videoElement&&this.videoPlayers.push(t)}async play(){console.log("play"),await this.moveStateTo(rj.PLAYING,(async()=>{this.timeTo(this.currentTime),await Promise.all(this.videoPlayers.map((async e=>{this.currentTime<e.getPlayLength()&&await e.play()})))}))}async pause(){await this.moveStateTo(rj.PAUSE,(async()=>{await Promise.all(this.videoPlayers.map((async e=>{await e.pause()})))}))}async stop(){await this.moveStateTo(rj.PAUSE,(async()=>{await Promise.all(this.videoPlayers.map((async e=>{await e.stop()})))}))}timeTo(e){this.currentTime=e,this.videoPlayers.forEach((t=>{t.timeTo(e)}))}swapVideo(e,t){if(e===t)return;this.videoPlayers[e]._swap(this.videoPlayers[t]);const n=this.videoPlayers[e];this.videoPlayers[e]=this.videoPlayers[t],this.videoPlayers[t]=n}}var _j=vj;const bj={class:"container"},yj={id:"main-video"},xj={id:"thumbnails-videos"},wj=["id","onClick"],kj={class:"controls"},Sj={class:"time"};var Ej=br({__name:"VideoComponent",setup(e){const t=Vt(["video-0","video-1","video-2"]),n=new _j({controls:!1,loop:!1,videoPlayers:[{id:"#video-0",controls:!0,main:!0,initialSrc:"https://static.videezy.com/system/resources/previews/000/050/817/original/002822-HD-SPECTRUM-COUNTDOWN-01.mp4"},{id:"#video-1",initialSrc:"https://static.videezy.com/system/resources/previews/000/051/313/original/002823-HD-SPECTRUM-COUNTDOWN-02.mp4"},{id:"#video-2",initialSrc:"https://static.videezy.com/system/resources/previews/000/049/943/original/002831-HD-COUNTDOWN-03.mp4"},{id:"#video-3",initialSrc:"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4"}]});function o(){console.log("resizeVideoContainers");const e=document.getElementById("main-video"),t=e?.clientHeight,n=document.getElementById("thumbnails-videos");let o=t;window.innerWidth<1280&&(o=t/2),console.log(n,o),n.style.height=`${o}px`}async function r(){await n.play()}async function s(){await n.pause()}function i(){const e=`video-${Math.random().toString(36).substring(2,9)}`;t.value.push(e),kn((()=>{n.addVideoPlayer({id:`#${e}`,initialSrc:"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4"})}))}async function a(e){n.swapVideo(0,e)}async function l(e){const t=e.target.value;await n.timeTo(parseFloat(t))}return Nr((()=>{n.mount();const e=document.getElementById("main-video").querySelector("video");e.addEventListener("loadeddata",(()=>{e.readyState>=1&&o()})),window.addEventListener("resize",o)})),(e,n)=>(Ra(),La("div",null,[$a("div",bj,[$a("div",yj,[(Ra(),La("div",{class:"box",id:"video-0",key:0,onClick:n[0]||(n[0]=e=>a(0))}))]),$a("div",xj,[(Ra(!0),La(ka,null,ss(t.value.slice(1),((e,t)=>(Ra(),La("div",{class:"box",id:e,key:t+1,onClick:Mu((e=>a(t+1)),["prevent"])},null,8,wj)))),128))])]),$a("div",kj,[$a("button",{onClick:i},"Add video"),$a("button",{onClick:r},"Play"),$a("button",{onClick:s},"Pause"),$a("div",Sj,[$a("input",{type:"range",min:"0",max:"100",value:"0",class:"slider",id:"myRange",onInput:l},null,32)])])]))}});const Tj=Ej;var Mj=Tj;QN().defaults.xsrfHeaderName="X-CSRFTOKEN",QN().defaults.xsrfCookieName="csrftoken",QN().defaults.withCredentials=!0,document.getElementById("chat")&&ju(kP).mount("#chat"),document.getElementById("notifications")&&ju(sj).mount("#notifications"),document.getElementById("multivideo")&&ju(Mj).mount("#multivideo")}()})();
 //# sourceMappingURL=app.js.map
\ No newline at end of file
index 1c96cd6c225858b7838608a3b584aaae751efc44..3d3e2e9911972de91506dd3c63a9a74f483c6f57 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./js/compatibility.ts","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./js/components/Chat.vue?f965","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./js/components/Chat.vue?e036","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack:///./js/components/Chat.vue","webpack:///./js/components/Chat.vue?db60","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./js/components/Chat.vue?867b","webpack:///./js/components/Notifications.vue?523c","webpack:///./js/components/sub/NotificationMessage.vue?ded3","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/startOfDay/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/date-fns/esm/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/index.js","webpack:///./js/components/sub/NotificationMessage.vue","webpack:///./js/components/sub/NotificationMessage.vue?6829","webpack:///./js/components/sub/NotificationMessage.vue?3eb2","webpack:///./js/components/Notifications.vue","webpack:///./js/components/Notifications.vue?f355","webpack:///./js/components/Notifications.vue?05ad","webpack:///./js/main.ts","webpack:///./node_modules/vue-advanced-chat/dist/vue-advanced-chat.common.js","webpack:///./js/components/Notifications.vue?7b0e","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./js/components/sub/NotificationMessage.vue?35bd","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","wellKnownSymbol","TO_STRING_TAG","test","String","aFunction","fn","that","length","undefined","a","b","apply","arguments","isObject","slice","factories","construct","C","argsLength","args","list","Function","join","this","partArgs","boundFunction","concat","toIndexedObject","$getOwnPropertyNames","f","toString","windowNames","window","getOwnPropertyNames","getWindowNames","it","error","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","defaults","interceptors","request","response","config","url","method","toLowerCase","chain","promise","Promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","replace","data","fails","createElement","callback","arr","Constructor","TypeError","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","next","done","Array","from","exec","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","thisArg","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","anObject","isArrayIteratorMethod","toLength","getIteratorMethod","iteratorClose","Result","stopped","result","iterable","unboundFunction","options","iterator","iterFn","index","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","toInteger","max","Math","min","integer","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","source","FORCED","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","process","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","JSON","stringify","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","merge","definePropertyModule","CONSTRUCTOR_NAME","configurable","returnMethod","emptyObject","freeze","isUndef","v","isDef","isTrue","isFalse","isPrimitive","obj","_toString","isPlainObject","isRegExp","isValidArrayIndex","val","parseFloat","floor","isFinite","isPromise","catch","isArray","toNumber","isNaN","makeMap","str","expectsLowerCase","map","split","isReservedAttribute","remove","item","indexOf","splice","hasOwn","cached","cache","hit","camelizeRE","camelize","_","toUpperCase","capitalize","charAt","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","_length","nativeBind","toArray","start","ret","extend","to","_from","toObject","res","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","Date","getTime","keysA","keys","keysB","looseIndexOf","once","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","charCodeAt","def","writable","bailRE","RegExp","parsePath","path","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","isIE","isIE9","isEdge","isIOS","isFF","match","nativeWatch","watch","supportsPassive","opts","addEventListener","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","set","add","clear","warn","uid","Dep","id","subs","addSub","sub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","popTarget","pop","VNode","tag","children","text","elm","context","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","len","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","setter","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","hook","type","key$1","props","methods","inject","computed","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","default","$options","_props","getType","functionTypeCheckRE","isSameType","expectedTypes","handleError","err","info","cur","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","handler","_handled","logError","console","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","setTimeout","MutationObserver","setImmediate","counter","observer","textNode","document","createTextNode","characterData","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","event","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","attrs","altKey","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","last","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","render","renderSlot","fallbackRender","bindObject","nodes","scopedSlotFn","$scopedSlots","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","staticRenderFns","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","_compiled","needNormalization","listeners","injections","scopedSlots","_scopeId","_c","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","componentVNodeHooks","init","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","functional","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","is","$vnode","pre","applyNS","registerDeepBindings","force","style","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","ref","ensureCtor","comp","base","factory","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","clearTimeout","reject","reason","component","delay","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","$root","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","el","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","handlers","j","queue","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","sort","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","user","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","filter","entry","pruneCacheEntry","current","patternTypes","KeepAlive","include","exclude","Number","cacheVNode","vnodeToCache","keyToCache","parseInt","created","destroyed","mounted","updated","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","ssrContext","version","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","selected","querySelector","createElement$1","tagName","multiple","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","scopeId","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","end","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","innerHTML","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","nodeType","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","arg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","trim","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","pos","getBoundingClientRect","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","body","offsetHeight","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","left","dy","top","platformComponents","defer","channel","port","html","IS_IOS","IS_NODE","location","clearImmediate","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","listener","post","postMessage","protocol","host","port2","port1","onmessage","importScripts","versions","v8","enhanceError","message","code","Error","__CANCEL__","encode","encodeURIComponent","serializedParams","parts","isDate","toISOString","hashmarkIndex","$","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","getPrototypeOf","classof","Iterators","objectKeys","Properties","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","stack","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","href","search","hostname","pathname","requestURL","parsed","isString","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","string","point","state","arch","execPath","title","pid","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","createError","defaultConstructor","S","getOwnPropertySymbols","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","proto","instance","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callbackfn","callWithSafeIterationClosing","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","testVideo","canPlayType","webm","container","getElementById","prepend","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","requireObjectCoercible","whitespaces","whitespace","ltrim","rtrim","TYPE","bitmap","payload","IndexedObject","$assign","assign","A","B","alphabet","chr","T","CONVERT_TO_STRING","first","second","position","size","codeAt","originalArray","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","inspectSource","enforceInternalState","TEMPLATE","unsafe","simple","_typeof","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","Cancel","write","expires","domain","secure","cookie","isNumber","toGMTString","read","decodeURIComponent","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","open","NullProtoObject","ActiveXObject","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","isAbsoluteURL","combineURLs","baseURL","requestedURL","propertyKey","functionToString","CancelToken","executor","resolvePromise","token","cancel","postfix","random","_vm","_h","currentUserId","rooms","messagesLoaded","messages","disabled","ROOMS_EMPTY","ROOM_EMPTY","NEW_MESSAGES","MESSAGE_DELETED","MESSAGES_EMPTY","CONVERSATION_STARTED","TYPE_MESSAGE","SEARCH","IS_ONLINE","LAST_SEEN","IS_TYPING","sendMessage","_arrayLikeToArray","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","self","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Proxy","valueOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","possibleConstructorReturn","__decorate","decorators","desc","decorate","_defineProperty","reflectionIsSupported","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","forwardMetadata","metaKeys","metaKey","getOwnMetadata","fakeArray","collectDataFromConstructor","Component","originalInit","_this","plainData","$internalHooks","componentFactory","__decorators__","superProto","Extended","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","getMetadata","socket","roomId","roomName","avatar","users","roomInfoStr","roomInfoElm","roomInfo","room_name","room_title","_id","username","lastChanged","connect","user_id","WebSocket","fetchMessages","onclose","log","newMessages","messageContainer","scrollTop","scrollHeight","replyMessage","send","replyTo","ChatWindow","normalizeComponent","scriptExports","functionalTemplate","injectStyles","moduleIdentifier","shadowMode","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","originalRender","beforeCreate","numberOfUnread","viewed","onClick","button","onMiddleClick","relativeCreationDate","getTimezoneOffsetInMilliseconds","date","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","requiredArgs","required","toDate","argStr","NaN","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","isValid","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","count","tokenValue","addSuffix","comparison","buildFormatLongFn","width","defaultWidth","format","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","era","quarter","month","day","dayPeriod","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","findKey","valueCallback","rest","predicate","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","localize","weekStartsOn","firstWeekContainsDate","ceil","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","getUTCDate","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","locale","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","output","abs","formatters","y","signedYear","M","getUTCMonth","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","pow","dayPeriodEnum","G","unit","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","u","Q","q","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","K","k","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","formatTimezoneShort","z","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","input","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","dirtyBaseDate","baseDate","_ref","_ref$locale","_ref$weekStartsOn","utcBaseDate","form","suffix","feminineUnits","NotificationMessageProps","creationDate","$props","setAsViewed","fr","opened","userId","NotificationMessage","withCredentials","new_byte","Int8Array","new_short","Int16Array","new_int","Int32Array","new_float","Float32Array","new_double","Float64Array","new_float_n","sz","new_int_n","new_short_n","new_array_n","Arrays","toIndex","System","srcPos","dest","destPos","srcEnd","Util","ShortBlock","ordinal","SQRT2","FAST_LOG10","log10","FAST_LOG10_X","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float","VbrMode","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert","uncurryThis","aCallable","NATIVE_BIND","toPropertyKey","CalcNoiseData","global_gain","sfb_count1","noise","noise_log","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","$String","$RegExp","re","groups","isCallable","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","CONFIGURABLE_LENGTH","makeBuiltIn","arity","$reduce","arrayMethodIsStrict","CHROME_VERSION","STRICT_METHOD","CHROME_BUG","reduce","regexpExec","$TypeError","stateify","TokenState","CharacterState","_class","createStateClass","tClass","BaseState","defaultTransition","jump","accepts","inherits","character","charOrRegExp","tokenClass","endToken","defaultToken","newStates","nextState","toPositiveInteger","$RangeError","BYTES","__webpack_exports__","detectMobile","getUserAgent","userAgentPart","substr","vendor","opera","ArrayBufferViewCore","$findLastIndex","findLastIndex","aTypedArray","exportTypedArrayMethod","isNullOrUndefined","toIntegerOrInfinity","defineBuiltIn","defineGlobalProperty","dontCallGetSet","VBRSeekInfo","sum","want","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","FFT","Encoder","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","BLKSIZE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","energy","gfc","loudness_power","ATH","eql_w","compute_ffts","gfp","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","chn","bufPos","internal_flags","fft_long","fft_short","BLKSIZE_s","im","totalenergy","HBLKSIZE","tot_ener","analysis","pinfo","energy_save","pe","athaa_loudapprox","loudness_sq","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","table1","table2","table3","mask_add","m1","m2","kk","shortblock","ratio","cb_s","adjust","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","channels_out","sb","SBMAX_l","thm","SBMAX_s","sblock","msfix1","mld","mld_l","en","rmid","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","numlines_s","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","SHORT_TYPE","nb_s2","CBANDS","block_type_set","uselongblock","blocktype_d","blocktype","short_blocks","NORM_TYPE","START_TYPE","STOP_TYPE","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","fircoef","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","L3psycho_anal_ns","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","fill","MPEGMode","JOINT_STEREO","VBR","ResvMax","firbuf","firbufPos","sum1","sum2","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","HBLKSIZE_s","nsPsy","last_en_subshort","pf","pfPos","pfe","ers","ers_save","attackthre_s","attackthre","lastAttacks","idx","s3ind","eb2","s3_ll","nb_1","nb_2","STEREO","interChRatio","ATHlower","ppe","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","factor","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","norm","s3_func","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bm","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","i2","f_tmp","cos","PI","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","L3psycho_anal_vbr","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","out_samplerate","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","level","ATHformula","init_fft","decay","exp_nspsytune","frame_duration","mode_gr","adjustLimit","ATHtype","freq_inc","eql_balance","ATHcurve","extended","GrInfo","IIISideInfo","tt","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","gr","FunctionPrototype","Deno","tokenize","scanner","parser","find","_interopRequireWildcard","_scanner","_parser","newObj","tokens","filtered","isLink","GainAnalysis","PINK_REF","RMS_PERCENTILE","YULE_ORDER","RMS_WINDOW_TIME_NUMERATOR","MAX_SAMP_FREQ","RMS_WINDOW_TIME_DENOMINATOR","ABYule","MAX_SAMPLES_PER_WINDOW","ABButter","filterYule","inputPos","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","analyzeResult","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","num_samples","num_channels","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","arraycopy","ival","GetTitleGain","retval","MAX_dB","defaultProtocol","formatHref","nl2br","typeToTarget","validate","ignoreTags","attributes","className","Options","linkAttributes","linkClass","ignoredTags","contains","toHref","formatted","formattedHref","getObject","check","operator","optionValue","V8_PROTOTYPE_DEFINE_BUG","Presets","VBRPresets","qual","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","mod","fix","vbr_q","quant_comp","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","bass","sc","mask","interCh","sfScale","nsmsfix","nsbass","scale","sfscale","lame","setModules","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","vbr_preset","VBR_q_frac","lame_set_VBR_q","quant_comp_short","experimentalY","maskingadjust","maskingadjust_short","athaa_sensitivity","VBR_q","abr_switch_map","apply_abr_preset","preset","actual_bitrate","nearestBitrateFullIndex","VBR_mean_bitrate_kbps","brate","disable_reservoir","noise_shaping","apply_preset","Lame","R3MIX","V3","MEDIUM","V4","MEDIUM_FAST","STANDARD","V2","STANDARD_FAST","EXTREME","V0","EXTREME_FAST","INSANE","V9","V8","V7","V6","V5","V1","isPrototypeOf","lengthOfArrayLike","toOffset","Int8ArrayPrototype","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","Uint8ClampedArray","0","TO_OBJECT_BUG","NATIVE_ARRAY_BUFFER_VIEWS","TOKENS","State","_state","_multi","MULTI_TOKENS","_text","makeState","S_START","S_PROTOCOL","S_MAILTO","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN","S_DOMAIN_DOT","S_TLD","URL","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","MAILTOEMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","NL","PROTOCOL","MAILTO","SLASH","TLD","DOMAIN","LOCALHOST","NUM","DOT","COLON","qsAccepting","AT","PLUS","POUND","UNDERSCORE","SYM","AMPERSAND","qsNonAccepting","QUERY","PUNCTUATION","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","localpartAccepting","cursor","multis","textTokens","secondState","multiLength","latestAccepting","sinceAccepts","TEXT","MULTI","$Object","MATCH","createTokenClass","aConstructor","pref","MeanBits","L3Side","LameInternalFlags","CBRNewIterationLoop","_quantize","quantize","iteration_loop","ms_ener_ratio","max_bits","l3_xmin","SFBMAX","xrpow","targ_bits","mean_bits","l3_side","mb","rv","ResvFrameBegin","bits","qupvt","on_pe","mode_ext","MPG_MD_MS_LR","ms_convert","reduce_side","masking_lower_db","cod_info","block_type","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","part2_3_length","MAX_BITS_PER_CHANNEL","ResvFrameEnd","ArrayBuffer","DataView","NewMDCT","III_psy_ratio","FFTOFFSET","bs","psy","vbr","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","useAdjust","aaSensitivityP","adj_lim_new","updateStats","bitrate_index","bitrate_stereoMode_Hist","bt","mixed_block_flag","bitrate_blockType_Hist","lame_encode_frame_init","inbuf","primebuff0","primebuff1","mdct_sub48","mf_size","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","pe_MS","padding","slot_lag","frac_SpF","psymodel","bufp","bufpPos","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","ms_ratio","xr","pefirbuf","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","SBPSY_l","SBPSY_s","PSFB21","PSFB12","MPG_MD_LR_I","MPG_MD_MS_I","roomsValidation","partcipantsValidation","messagesValidation","_Users_antoine_vue_vue_advanced_chat_node_modules_babel_runtime_helpers_esm_typeof_js__WEBPACK_IMPORTED_MODULE_0__","roomsValidate","validType","checkObjectValid","participantsValidate","messagesValidate","isConstructor","tryToString","license","Reservoir","maxmp3buf","frameLength","getframebits","sideinfo_len","resvLimit","strict_ISO","fullFrameBits","ResvSize","resvsize","ResvMaxBits","cbr","add_bits","substep_shaping","extra_bits","ResvAdjust","gi","part2_length","over_bits","stuffingBits","mdb_bytes","trunc","getMethod","getRegExpFlags","getSubstitution","REPLACE","stringIndexOf","searchValue","replaceAll","replaceValue","IS_REG_EXP","flags","replacer","searchString","functionalReplace","searchLength","advanceBy","endOfLastMatch","getDescriptor","EXISTS","PROPER","HuffCodeTab","hl","xlen","linmax","table","hlen","Tables","ht","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","_ordinal","DUAL_CHANNEL","MONO","NOT_SET","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","Takehiro","BitStream","CRC16_POLYNOMIAL","MAX_LENGTH","ga","mpg","ver","_ga","_mpg","_ver","buf","totbit","bufByteIdx","bufBitIdx","putheader_bits","header","w_ptr","MAX_HEADER_BUF","putbits2","LAME_MAXMP3BUFFER","write_timing","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","ancillary_flag","writeheader","ptr","h_ptr","CRC_update","crc","encodeSideInfo2","bitsPerFrame","error_protection","band","big_values","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","CRC_writeheader","println","huffman_coder_count1","ix","count1","huffbits","l3_enc","Huffmancode","tableindex","cbits","xbits","linbits","ext","x1","x2","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","slen1","slen1_tab","slen2","slen2_tab","sfbdivide","scalefac","sfbmax","sfb_partition","scale_bits","sfb_partition_table","sfbs","slen","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","bit_rate","bytes","flush_bitstream","findReplayGain","RadioGain","rgdata","NEQ","findPeakSample","noclipGainChange","PeakSample","EQ","noclipScale","add_dummy_byte","printf","bufferPos","mp3data","minimum","nMusicCRC","updateMusicCRC","VBR_seek_table","decode_on_the_fly","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","hip","init_bit_stream_w","ReplayGain","freqindex","CalcNoiseResult","over_noise","tot_noise","max_noise","over_count","over_SSD","WS","Base","_createTokenClass","TextToken","inheritsToken","definePropertiesModule","window_s","costab","fht","fz","fzPos","k4","fi","tri","s1","c1","k1","k2","k3","kx","f0","f3","c2","s2","g0","g1","g2","g3","rv_tbl","x_real","jj","documentAll","all","SPECIAL_DOCUMENT_ALL","_database_js__WEBPACK_IMPORTED_MODULE_0__","blank_object","run_all","is_function","thing","safe_not_equal","src_url_equal_anchor","current_component","src_url_equal","element_src","is_empty","action_destroyer","action_result","append","anchor","detach","element","listen","attribute","set_data","wholeText","set_input_value","set_style","important","removeProperty","set_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","flush","tick","add_render_callback","seen_callbacks","flushidx","saved_component","$$","fragment","before_update","after_update","outroing","transition_in","block","local","globals","globalThis","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","create_each_block","get_context","old_indexes","new_blocks","new_lookup","Map","deltas","child_ctx","will_move","did_move","new_block","old_block","new_key","old_key","mount_component","customElement","on_mount","on_destroy","new_on_destroy","destroy_component","detaching","make_dirty","create_fragment","not_equal","append_styles","parent_component","bound","on_disconnect","skip_bound","root","ready","SvelteComponent","$$props","$$set","allGroups","emoji","customGroup","MIN_SEARCH_TEXT_LENGTH","NUM_SKIN_TONES","rIC","requestIdleCallback","hasZwj","unicode","versionsAndTestEmoji","TIMEOUT_BEFORE_LOADING_MESSAGE","DEFAULT_SKIN_TONE_EMOJI","DEFAULT_NUM_COLUMNS","MOST_COMMONLY_USED_EMOJI","FONT_FAMILY","DEFAULT_CATEGORY_SORTING","getTextFeature","color","canvas","height","getContext","textBaseline","font","fillStyle","fillText","getImageData","compareFeatures","feature1","feature2","feature1Str","feature2Str","startsWith","testColorEmojiSupported","determineEmojiSupportLevel","emojiSupportLevelPromise","supportedZwjEmojis","VARIATION_SELECTOR","SKINTONE_MODIFIER","ZWJ","LIGHT_SKIN_TONE","LIGHT_SKIN_TONE_MODIFIER","applySkinTone","skinTone","zwjIndex","fromCodePoint","endsWith","halt","preventDefault","stopPropagation","incrementOrDecrement","decrement","uniqBy","func","summarizeEmojisForUI","emojis","emojiSupportLevel","toSimpleSkinsMap","skins","skin","tone","shortcodes","category","rAF","baselineEmojiWidth","resizeObserverSupported","ResizeObserver","calculateWidth","onUpdate","resizeObserver","contentRect","disconnect","calculateTextWidth","range","createRange","selectNode","checkZwjSupport","zwjEmojisToCheck","baselineEmoji","emojiToDomNode","domNode","emojiWidth","supported","uniq","Map_1","get_each_context","get_each_context_1","get_each_context_2","get_each_context_3","get_each_context_4","create_each_block_4","key_1","div","div_id_value","div_class_value","div_aria_selected_value","div_title_value","div_aria_label_value","t_value","skinTones","new_ctx","create_each_block_3","button_aria_controls_value","button_aria_label_value","button_aria_selected_value","button_title_value","dispose","click_handler","categories","create_else_block_1","img","img_src_value","create_if_block_1","create_each_block_2","button_role_value","button_class_value","button_id_value","select_block_type","current_block_type","if_block","create_each_block_1","div0","div0_id_value","div0_class_value","div1","div1_role_value","div1_aria_labelledby_value","div1_id_value","searchResultsLabel","custom","each_blocks","each_1_lookup","each_value_2","create_else_block","create_if_block","select_block_type_1","section","div4","input_placeholder_value","input_aria_expanded_value","input_aria_activedescendant_value","label","t0","span0","t1","div2","button0","t2","button0_class_value","div2_class_value","span1","t3","div3","div3_class_value","div3_aria_label_value","div3_aria_activedescendant_value","div3_aria_hidden_value","div5","div5_aria_label_value","div7","div6","div8","t4","div8_class_value","div10","div9","div10_class_value","div10_role_value","div10_aria_label_value","div10_id_value","div11","div11_class_value","div11_aria_label_value","button1","section_aria_label_value","t0_value","searchLabel","t1_value","searchDescription","t3_value","skinToneDescription","each_blocks_3","each0_lookup","each_blocks_2","each1_lookup","each_blocks_1","each2_lookup","each3_lookup","each_value_4","each_value_3","get_key_1","each_value_1","get_key_2","each_value","get_key_3","skinTonesLabel","categoriesLabel","favoritesLabel","regionLabel","$$self","$$invalidate","rootElement","tabpanelElement","skinToneDropdown","skinToneButtonText","pickerStyle","defaultFavoriteEmojis","currentGroup","activeSearchItemId","skinToneEmoji","i18n","database","customEmoji","customCategorySorting","initialLoad","currentEmojis","currentEmojisWithCategories","rawSearchText","searchText","searchMode","activeSearchItem","skinTonePickerExpanded","skinTonePickerExpandedAfterAnimation","currentSkinTone","activeSkinTone","skinToneButtonLabel","currentFavorites","numColumns","isRtl","scrollbarWidth","currentGroupIndex","groups$1","databaseLoaded","focus","getRootNode","fireEvent","detail","CustomEvent","bubbles","composed","unicodeWithSkin","labelWithSkin","isSkinToneOption","calculateEmojiGridStyle","newNumColumns","getPropertyValue","newIsRtl","parentWidth","parentElement","newScrollbarWidth","checkZwjSupportAndUpdate","rootNode","isZwjSupported","filterEmojisByVersion","summarizeEmojis","getEmojisByGroup","group","getEmojiByGroup","getEmojisBySearchQuery","getEmojiBySearchQuery","onSearchKeydown","goToNextOrPrevious","previous","clickEmoji","onNavClick","onNavKeydown","doFocus","previousSibling","lastChild","unicodeOrName","getEmojiByUnicodeOrName","emojiSummary","skinTonedUnicode","incrementFavoriteEmojiCount","onEmojiClick","onSkinToneOptionsClick","setPreferredSkinTone","onClickSkinToneButton","onSkinToneOptionsKeydown","changeActiveSkinTone","nextSkinTone","onSkinToneOptionsKeyup","onSkinToneOptionsFocusOut","relatedTarget","input_input_handler","div3_binding","$$value","emojiUnsupportedMessage","div10_binding","button1_binding","section_binding","handleDatabaseLoading","showingLoadingMessage","timeoutHandle","loadingMessage","networkErrorMessage","updateEmojis","currentSearchText","newEmojis","currentGroupId","updatePreferredSkinTone","getPreferredSkinTone","skinToneLabel","updateDefaultFavoriteEmojis","updateFavorites","dbFavorites","getTopFavoriteEmoji","favorites","calculateCurrentEmojisWithCategories","categoriesToEmoji","Picker","DEFAULT_DATA_SOURCE","DEFAULT_LOCALE","enI18n","activities","objects","PROPS","PickerElement","attachShadow","_ctx","dataSource","_dbFlush","_cmp","attrName","newValue","_set","up","_dbCreate","definitions","customElements","define","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","relativeIndex","regExpFlags","RegExpPrototype","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","LameGlobalFlags","class_id","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","write_id3tag_automatic","compression_ratio","extension","emphasis","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","ATHonly","ATHshort","noATH","athaa_type","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","feature","detection","POLYFILL","NATIVE","$findLast","findLast","$defineProperty","ENUMERABLE","WRITABLE","Attributes","MISSED_STICKY","isSymbol","III_psy_xmin","iii_psy_xmin","speciesConstructor","advanceStringIndex","regExpExec","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","regexp","$global","fullUnicode","$matchAll","matcher","rx","IS_FIND_LAST_INDEX","VBRQuantize","_tk","cause","psfb21","psfb12","hasIndices","ignoreCase","dotAll","unicodeSets","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","Source","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","S_NUM","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","lowerStr","tokenLength","TOKEN","ScaleFac","QuantizePVT","tak","POW20","Q_MAX2","Q_MAX","pow20","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","NSATHSCALE","LARGE_BITS","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","iteration_init_init","alto","treble","sfb21","huffman_init","longfact","shortfact","tbits","MAX_BITS_PER_GRANULE","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","enable_athaa_fix","psy_lmax","xmin","rh1","rh2","en0","xa","xb","max_nonzero","max_nonzero_coeff","sfb_smin","psymax","tmpATH","calc_noise_core","startline","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","scalefacPos","usefullsize","sl","set_pinfo","sfb2","en1","ifqstep","xfsf","sfb_lmax","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","isImageFile","isVideoFile","isImageVideoFile","isAudioFile","_constants__WEBPACK_IMPORTED_MODULE_0__","checkMediaType","types","file","NsPsy","MAX_HEADER_LEN","Header","Class_ID","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping_amp","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sb_sample","amp_filter","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","nogap_total","nogap_current","AudiophileGain","in_buffer_nsamples","in_buffer_0","in_buffer_1","isDomainToken","MultiToken","hasProtocol","hasSlashSlash","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","msMaxTouchPoints","middleware","isActive","detectIframe","srcTarget","documentElement","composedPath","SHARED","g","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","names","nonConfigurable","nonWritable","$propertyIsEnumerable","NASHORN_BUG","1","V","aPossiblePrototype","CORRECT_SETTER","TAG","IS_RIGHT","memo","right","$Symbol","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","ix_max","endPos","max1","max2","count_bit_ESC","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","count1bits","r2t","noquant_count_bits","best_huffman_divide","count_bits","xrpow_max","gain","roundfac","slen1_n","slen2_n","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen3","slen4","log2tab","bv_index","scfb_anz","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","wrapper","exportWebAssemblyErrorCauseWrapper","assertNonEmptyString","assertNumber","Database","DB_VERSION_CURRENT","DB_VERSION_INITIAL","STORE_EMOJI","STORE_KEYVALUE","STORE_FAVORITES","FIELD_TOKENS","INDEX_TOKENS","FIELD_UNICODE","INDEX_COUNT","FIELD_GROUP","FIELD_ORDER","INDEX_GROUP_AND_ORDER","KEY_ETAG","KEY_URL","KEY_PREFERRED_SKINTONE","MODE_READONLY","MODE_READWRITE","INDEX_SKIN_UNICODE","FIELD_SKIN_UNICODE","uniqEmoji","initialMigration","db","createObjectStore","keyPath","indexes","indexName","multiEntry","createIndex","openReqs","databaseCache","onCloseListeners","handleOpenOrDeleteReq","req","onerror","onblocked","onsuccess","createDatabase","dbName","indexedDB","onupgradeneeded","oldVersion","closeDatabase","openDatabase","dbPromise","storeName","readOnlyOrReadWrite","txn","transaction","durability","objectStore","oncomplete","deleteDatabase","addOnCloseListener","irregularEmoticons","extractTokens","word","normalizeTokens","transformEmojiData","emojiData","annotation","emoticon","order","tags","flat","skinUnicodes","skinVersions","callStore","getIDB","getAllIDB","commit","minBy","minItem","findCommonMembers","arrays","uniqByFunc","shortestArray","results","isEmpty","hasData","eTag","oldETag","oldUrl","doFullDatabaseScanForSingleResult","BATCH_SIZE","emojiStore","lastKey","processNextBatch","getAll","IDBKeyRange","lowerBound","loadData","transformedData","metaStore","todo","checkFetched","onFetched","put","intermediateResults","checkDone","onDone","only","getEmojiByShortcode","shortcode","lowerShortcodes","getEmojiByUnicode","customEmojiIndex","limit","favoritesStore","openCursor","addResult","continue","primaryKey","byName","CODA_MARKER","trie","itemToTokens","currentMap","char","nextMap","valuesAtCoda","exact","entriesSortedByKey","requiredKeys$1","assertCustomEmojis","customEmojis","firstItemIsFaulty","sortByName","emojiToTokens","searchTrie","searchByExactMatch","searchByPrefix","shortcodeToEmoji","nameToEmoji","byShortcode","cleanEmoji","warnETag","requiredKeys","assertEmojiData","assertStatus","getETag","fetch","getETagAndData","json","arrayBufferToBinaryString","binary","Uint8Array","byteLength","fromCharCode","binaryStringToArrayBuffer","jsonChecksum","inString","inBuffer","outBuffer","crypto","subtle","digest","outBinString","btoa","checkForUpdates","eTagAndData","loadDataForFirstTime","_dbName","_db","_lazyUpdate","_custom","_clear","_ready","checkReady","customs","natives","_shutdown","Quantize","VBRTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder","channels","samplerate","gaud","qu","id3","enc","lame_init","retcode","lame_init_params","maxSamples","encodeBuffer","_sz","lame_encode_buffer","subarray","lame_encode_flush","WavHeader","dataOffset","dataLen","sampleRate","fourccToInt","fourcc","RIFF","WAVE","fmt_","readHeader","dataView","getUint32","fmtLen","getUint16","tk","init_xrpow_core","psfb21_analogsilence","ath21","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","amp_scalefac_bands","bRefine","ifqstep34","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","ixwork","trancate_smallspectrums","work","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","found","get_framebits","frameBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","ENUMERABLE_NEXT","LAME_MAXALBUMART","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","io","numUsed","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","id3tag_write_v1","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","streamIndex","streamSize","putVbrTag","stream","ObjectPrototype","$default","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","getOwnPropertyDescriptorModule","exceptions","Prototype","NATIVE_ARRAY_BUFFER","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint16Array","Uint32Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","getTypedArrayConstructor","isTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","meanBits","clone_int","clone_float","enwindow","NS","win","tantab_l","cx","ca","cs","window_subband","x1Pos","wp","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","out","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","w0","w1","wk","wkPos","mdct_enc","mdct_encPos","samp","sampPos","band0","band1","bu","bd","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","currentScript","cssVars","singleRoom","orderedRooms","loadingRooms","roomsLoaded","room","roomActions","showSearch","showAddRoom","showRoomsList","textFormatting","linkOptions","isMobile","scrollDistance","fetchRoom","fetchMoreRooms","loadingMoreRooms","addRoom","roomActionHandler","loadFirstRoom","roomMessage","menuActions","messageActions","messageSelectionActions","autoScroll","showSendIcon","showFiles","showAudio","audioBitRate","audioSampleRate","showEmojis","showReactionEmojis","showNewMessagesDivider","showFooter","roomInfoEnabled","textareaActionEnabled","textareaAutoFocus","userTagsEnabled","emojisSuggestionEnabled","acceptedFiles","templatesText","usernameOptions","toggleRoomsList","editMessage","deleteMessage","openFile","openUserTag","openFailedMessage","menuActionHandler","messageActionHandler","messageSelectionActionHandler","sendMessageReaction","typingMessage","textareaActionHandler","showMediaPreview","previewFile","enumerableOnly","sym","_objectSpread2","getOwnPropertyDescriptors","RoomsListvue_type_template_id_e9cbf0d4_render","textMessages","searchRoom","filteredRooms","fRoom","selectedRoomId","openRoom","showLoader","RoomsListvue_type_template_id_e9cbf0d4_staticRenderFns","Loadervue_type_template_id_2c0ab9be_render","infinite","Loadervue_type_template_id_2c0ab9be_staticRenderFns","Loadervue_type_script_lang_js_","Loader_Loadervue_type_script_lang_js_","Loader","RoomsSearchvue_type_template_id_1fc42a9b_render","showSearchBar","RoomsSearchvue_type_template_id_1fc42a9b_staticRenderFns","SvgIconvue_type_template_id_e01c0bf4_render","svgId","svgItem","path2","SvgIconvue_type_template_id_e01c0bf4_staticRenderFns","SvgIconvue_type_script_lang_js_","param","toggle","menu","paperclip","pencil","checkmark","eye","dropdown","deleted","microphone","SvgIcon_SvgIconvue_type_script_lang_js_","SvgIcon_component","SvgIcon","RoomsSearchvue_type_script_lang_js_","emits","RoomsSearch_RoomsSearchvue_type_script_lang_js_","RoomsSearch_component","RoomsSearch","RoomContentvue_type_template_id_6888cbad_render","userStatus","lastMessage","typingUsers","isMessageCheckmarkVisible","distributed","isAudio","formattedDuration","getLastMessage","unreadCount","roomMenuOpened","closeRoomMenu","action","RoomContentvue_type_template_id_6888cbad_staticRenderFns","v_click_outside_umd","v_click_outside_umd_default","FormatMessagevue_type_template_id_3a015d3f_render","singleLine","formattedContent","linkifiedMessage","bold","italic","strike","underline","inline","reply","rel","openTag","image","FormatMessagevue_type_template_id_3a015d3f_staticRenderFns","linkify","format_string","doLinkify","_pseudoMarkdown","typeMarkdown","multilineCode","inlineCode","pseudoMarkdown","allowed_chars","compileToJSON","compileToHTML","linkifyResult","minIndexOf","minIndexOfKey","links","minIndexFromLink","startingValue","strLeft","strLink","strRight","_strLeft","_char","_strRight","parseContent","iterateContent","removeDuplicates","spaces","constants","FormatMessagevue_type_script_lang_js_","formatTags","checkType","checkImageType","replaceEmojiByElement","lastIndexOf","slashIndex","isMedia","setImageSize","Image","onLoad","_this2","firstTag","secondTag","usertags","initialContent","emojiSize","onlyEmojis","containsOnlyEmojis","visibleChars","FormatMessage_FormatMessagevue_type_script_lang_js_","FormatMessage_component","FormatMessage","typing_text","_require","RoomContentvue_type_script_lang_js_","clickOutside","isTyping","senderId","saved","_this$room$lastMessag","_this$room$lastMessag2","files","RoomContent_RoomContentvue_type_script_lang_js_","RoomContent_component","RoomContent","filter_items","formatString","RoomsListvue_type_script_lang_js_","oldVal","initIntersectionObserver","loader","rootMargin","threshold","IntersectionObserver","isIntersecting","loadMoreRooms","ev","RoomsList_RoomsListvue_type_script_lang_js_","RoomsList_component","RoomsList","Roomvue_type_template_id_54e5f3bb_render","touchStart","showNoRoom","messageSelectionEnabled","selectedMessages","onContainerScroll","loadingMessages","showNoMessages","showMessagesStarted","indexId","editedMessageId","onMessageAdded","selectMessage","unselectMessage","scrollIcon","scrollToBottom","scrollMessagesCount","initReplyMessage","initEditMessage","Roomvue_type_template_id_54e5f3bb_staticRenderFns","RoomHeadervue_type_template_id_938fbc28_render","selectedMessagesTotal","CANCEL_SELECT_MESSAGE","messageSelectionAnimationEnded","menuOpened","closeMenu","RoomHeadervue_type_template_id_938fbc28_staticRenderFns","RoomHeadervue_type_script_lang_js_","RoomHeader_RoomHeadervue_type_script_lang_js_","RoomHeader_component","RoomHeader","RoomFootervue_type_template_id_4393ef9a_render","shadowFooter","filteredEmojis","selectEmojiItem","activeUpOrDownEmojis","selectEmoji","filteredUsersTag","selectUsersTagItem","activeUpOrDownUsersTag","selectUserTag","filteredTemplatesText","selectTemplatesTextItem","activeUpOrDownTemplatesText","selectTemplateText","messageReply","resetMessage","removeFile","isRecording","stopRecorder","recordedTime","toggleRecorder","editedMessage","onChangeInput","keyCode","escapeTextarea","ctrlKey","shiftKey","selectItem","updateActiveUpOrDown","onPasteImage","emojiOpened","addEmoji","launchFilePicker","onFileChange","isMessageEmpty","isFileLoading","RoomFootervue_type_template_id_4393ef9a_staticRenderFns","esm_typeof","_regeneratorRuntime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","reverse","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","EmojiPickerContainervue_type_template_id_44125154_render","emojiReaction","openEmoji","emojiPickerHeight","positionTop","emojiPickerTop","emojiPickerRight","EmojiPickerContainervue_type_template_id_44125154_staticRenderFns","EmojiPickerContainervue_type_script_lang_js_","positionRight","addCustomStyling","emojiPicker","picker","nav","searchBox","setEmojiPickerPosition","clientY","view","innerWidth","innerHeight","mobileSize","roomFooterRef","roomFooterTop","pickerTopPosition","EmojiPickerContainer_EmojiPickerContainervue_type_script_lang_js_","EmojiPickerContainer_component","EmojiPickerContainer","RoomFilesvue_type_template_id_60413016_render","bottom","footerHeight","RoomFilesvue_type_template_id_60413016_staticRenderFns","RoomFilevue_type_template_id_c0a62836_render","isImage","localUrl","isVideo","RoomFilevue_type_template_id_c0a62836_staticRenderFns","RoomFilevue_type_script_lang_js_require","RoomFilevue_type_script_lang_js_","RoomFile_RoomFilevue_type_script_lang_js_","RoomFile_component","RoomFile","RoomFilesvue_type_script_lang_js_","clientHeight","RoomFiles_RoomFilesvue_type_script_lang_js_","RoomFiles_component","RoomFiles","RoomMessageReplyvue_type_template_id_86b41b08_render","firstFile","isOtherFile","RoomMessageReplyvue_type_template_id_86b41b08_staticRenderFns","AudioPlayervue_type_template_id_d8b85268_render","playback","isPlaying","progress","onUpdateProgress","playerUniqId","audioSource","AudioPlayervue_type_template_id_d8b85268_staticRenderFns","AudioControlvue_type_template_id_1721db79_render","onMouseDown","percentage","isMouseDown","AudioControlvue_type_template_id_1721db79_staticRenderFns","AudioControlvue_type_script_lang_js_","seekPos","calculateLineHeadPosition","onMouseMove","onMouseUp","progressWidth","leftPosition","clientX","AudioControl_AudioControlvue_type_script_lang_js_","AudioControl_component","AudioControl","AudioPlayervue_type_script_lang_js_","messageId","convertTimeMMSS","playedTime","resetProgress","player","updateProgressTime","onTimeUpdate","seconds","pause","play","currentTime","AudioPlayer_AudioPlayervue_type_script_lang_js_","AudioPlayer_component","AudioPlayer","RoomMessageReplyvue_type_script_lang_js_require","RoomMessageReplyvue_type_script_lang_js_isAudioFile","RoomMessageReplyvue_type_script_lang_js_isImageFile","RoomMessageReplyvue_type_script_lang_js_isVideoFile","RoomMessageReplyvue_type_script_lang_js_","_this$messageReply","_this$messageReply$fi","_this$messageReply2","_this$messageReply2$f","RoomMessageReply_RoomMessageReplyvue_type_script_lang_js_","RoomMessageReply_component","RoomMessageReply","RoomUsersTagvue_type_template_id_082c6732_render","activeItem","RoomUsersTagvue_type_template_id_082c6732_staticRenderFns","RoomUsersTagvue_type_script_lang_js_","activeUpOrDown","RoomUsersTag_RoomUsersTagvue_type_script_lang_js_","RoomUsersTag_component","RoomUsersTag","RoomEmojisvue_type_template_id_b6026542_render","RoomEmojisvue_type_template_id_b6026542_staticRenderFns","RoomEmojisvue_type_script_lang_js_","RoomEmojis_RoomEmojisvue_type_script_lang_js_","RoomEmojis_component","RoomEmojis","RoomTemplatesTextvue_type_template_id_113f1c86_render","template","RoomTemplatesTextvue_type_template_id_113f1c86_staticRenderFns","RoomTemplatesTextvue_type_script_lang_js_","RoomTemplatesText_RoomTemplatesTextvue_type_script_lang_js_","RoomTemplatesText_component","RoomTemplatesText","lamejs","missing","_lamejs","mp3_encoder_default","_default","bitRate","dataBuffer","encoder","arrayBuffer","samples","_convertBuffer","blob","Blob","createObjectURL","_floatTo16BitPCM","recorder_default","beforeRecording","pauseRecording","afterRecording","micFailed","encoderOptions","bufferSize","records","isPause","volume","_duration","constraints","video","audio","channelCount","echoCancellation","mediaDevices","getUserMedia","_micCaptured","_micError","lameEncoder","getTracks","track","processor","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","sample","inputBuffer","getChannelData","toFixed","destination","RoomFootervue_type_script_lang_js_require","RoomFootervue_type_script_lang_js_","cursorRangePosition","fileDialog","emojisDB","keepKeyboardOpen","selectedUsersTag","recorder","initRecorder","getTextareaRef","isComposed","isComposing","updateFooterLists","resetFooterList","beforeDestroy","roomTextarea","focusTextarea","disableMobileFocus","_this3","setSelectionRange","_this$getTextareaRef","_this$getTextareaRef2","_this$getTextareaRef3","resizeTextarea","pasteEvent","_pasteEvent$clipboard","_this4","clipboardData","getAsFile","direction","_this$getCharPosition","getCharPosition","endPosition","_this$getCharPosition2","space","click","_this5","_callee2","_context2","_callee","fileURL","typeIndex","blobFile","loadedFile","_context","_x","recording","_this6","_unused","_this7","_unused2","_this$editedMessage$f","newContent","usersTag","_this8","messageContent","updateFooterList","tagChar","textareaCursorPosition","selectionStart","beforeTag","notLetterNumber","updateShowUsersTag","updateShowTemplatesText","_this9","editMode","_this$getCharPosition3","cursorPosition","selectionEnd","_this10","_callee3","_context3","_this11","initRoom","resetTextareaSize","preventKeyboardFromClosing","RoomFooter_RoomFootervue_type_script_lang_js_","RoomFooter_component","RoomFooter","RoomMessagevue_type_template_id_8e1a79a8_render","showDate","newMessage","system","roomUsers","hasSenderUserAvatar","messageOffset","isMessageHover","isMessageSelected","onHoverMessage","onLeaveMessage","showUsername","progressTime","hoverAudioProgress","edited","isCheckmarkVisible","messageHover","hoverMessageId","optionsOpened","failure","hasCurrentUserAvatar","RoomMessagevue_type_template_id_8e1a79a8_staticRenderFns","MessageReplyvue_type_template_id_514045b4_render","replyUsername","MessageReplyvue_type_template_id_514045b4_staticRenderFns","MessageReplyvue_type_script_lang_js_require","MessageReplyvue_type_script_lang_js_isAudioFile","MessageReplyvue_type_script_lang_js_isImageFile","MessageReplyvue_type_script_lang_js_isVideoFile","MessageReplyvue_type_script_lang_js_","replyUser","_this$message$replyMe","_this$message$replyMe2","_this$message$replyMe3","MessageReply_MessageReplyvue_type_script_lang_js_","MessageReply_component","MessageReply","MessageFilesvue_type_template_id_ebb72a26_render","imageVideoFiles","otherFiles","MessageFilesvue_type_template_id_ebb72a26_staticRenderFns","ProgressBarvue_type_template_id_561521ed_render","radius","strokeDashoffset","strokeLinecap","circumference","stroke","normalizedRadius","ProgressBarvue_type_template_id_561521ed_staticRenderFns","ProgressBarvue_type_script_lang_js_","ProgressBar_ProgressBarvue_type_script_lang_js_","ProgressBar_component","ProgressBar","MessageFilevue_type_template_id_442d693d_render","imageHover","imageResponsive","loaderTop","isImageLoading","preview","maxHeight","MessageFilevue_type_template_id_442d693d_staticRenderFns","MessageFilevue_type_script_lang_js_require","MessageFilevue_type_script_lang_js_isImageFile","MessageFilevue_type_script_lang_js_isVideoFile","MessageFilevue_type_script_lang_js_","imageLoading","checkImgLoad","clientWidth","MessageFile_MessageFilevue_type_script_lang_js_","MessageFile_component","MessageFile","MessageFilesvue_type_script_lang_js_require","MessageFilesvue_type_script_lang_js_","MessageFiles_MessageFilesvue_type_script_lang_js_","MessageFiles_component","MessageFiles","MessageActionsvue_type_template_id_27f1a961_render","filteredMessageActions","isMessageActions","isMessageReactions","openOptions","closeEmoji","closeOptions","menuOptionsTop","MessageActionsvue_type_template_id_27f1a961_staticRenderFns","MessageActionsvue_type_script_lang_js_","optionsClosing","disableActions","disableReactions","onlyMe","menuOptions","actionIcon","actionIconTop","optionsTopPosition","updateMessageHover","reaction","MessageActions_MessageActionsvue_type_script_lang_js_","MessageActions_component","MessageActions","MessageReactionsvue_type_template_id_3fc44a38_render","reactions","MessageReactionsvue_type_template_id_3fc44a38_staticRenderFns","MessageReactionsvue_type_script_lang_js_","MessageReactions_MessageReactionsvue_type_script_lang_js_","MessageReactions_component","MessageReactions","RoomMessagevue_type_script_lang_js_require","_require2","RoomMessagevue_type_script_lang_js_isAudioFile","RoomMessagevue_type_script_lang_js_","currentUser","minUsers","_this$message$files","resetMessageHover","canEditMessage","RoomMessage_RoomMessagevue_type_script_lang_js_","RoomMessage_component","RoomMessage","Roomvue_type_script_lang_js_","infiniteState","loadingMoreMessages","noRoomSelected","loaded","onRoomChanged","loadMoreMessages","preventTopScroll","scrollContainer","prevScrollHeight","scrollTo","touchEvent","changedTouches","posXStart","posYStart","touchEnd","posXEnd","posYEnd","swippedRight","swippedVertically","resetMessageSelection","unwatch","autoScrollOffset","scrolledUp","getBottomScroll","newAfterScrollUp","receive","bottomScroll","_ref2","messageReaction","behavior","_ref3","Room_Roomvue_type_script_lang_js_","Room_component","Room","MediaPreviewvue_type_template_id_2d3ea15a_render","closeModal","MediaPreviewvue_type_template_id_2d3ea15a_staticRenderFns","MediaPreviewvue_type_script_lang_js_require","MediaPreviewvue_type_script_lang_js_isImageFile","MediaPreviewvue_type_script_lang_js_isVideoFile","MediaPreviewvue_type_script_lang_js_","modal","MediaPreview_MediaPreviewvue_type_script_lang_js_","MediaPreview_component","MediaPreview","locales","defaultThemeStyles","light","general","colorButtonClear","colorButton","backgroundColorButton","backgroundInput","colorPlaceholder","colorCaret","colorSpinner","borderStyle","backgroundScrollIcon","border","borderRadius","boxShadow","background","colorRoomName","colorRoomInfo","footer","borderStyleInput","borderInputSelected","backgroundReply","backgroundTagActive","backgroundTag","sidemenu","backgroundHover","backgroundActive","colorActive","borderColorSearch","backgroundMe","colorStarted","backgroundDeleted","backgroundSelected","colorDeleted","colorUsername","colorTimestamp","backgroundDate","colorDate","backgroundSystem","colorSystem","backgroundMedia","colorReplyUsername","colorReply","colorTag","backgroundImage","colorNewMessages","backgroundScrollCounter","colorScrollCounter","backgroundReaction","borderStyleReaction","backgroundReactionHover","borderStyleReactionHover","colorReactionCounter","backgroundReactionMe","borderStyleReactionMe","backgroundReactionHoverMe","borderStyleReactionHoverMe","colorReactionCounterMe","backgroundAudioRecord","backgroundAudioLine","backgroundAudioProgress","backgroundAudioProgressSelector","colorFileExtension","markdown","colorMulti","colorMessage","colorStateOnline","colorStateOffline","backgroundCounterBadge","colorCounterBadge","icons","closeImage","closeOutline","closePreview","sendDisabled","checkmarkSeen","dropdownMessage","dropdownMessageBackground","dropdownRoom","dropdownScroll","audioPlay","audioPause","audioCancel","audioConfirm","dark","cssThemeVars","ChatWindowvue_type_script_lang_js_require","ChatWindowvue_type_script_lang_js_","theme","responsiveBreakpoint","roomsListOpened","roomsOrder","mediaPreviewEnabled","defaultStyles","customStyles","aVal","bVal","updateResponsive","isTrusted","_ref4","_ref5","lib_ChatWindowvue_type_script_lang_js_","ChatWindow_component","lib","arrL","arrS","arr21","arr12","runtime","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","enqueue","rootEntry","regeneratorRuntime","accidentalStrictMode","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$getOwnPropertySymbols","$create","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","checkCorrectnessOfIteration","INCORRECT_ITERATION","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","isFunction","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","third","radix","maxCode","digits","NumberWrapper","FunctionPrototypeToString","nameRE","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","password","unescape","Authorization","fullPath","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","xsrfValue","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","head","macrotask","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","task","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","filterOut","PREFERRED_STRING","ignoreDuplicateOf","line","FormData","pipe","URLSearchParams","product","assignValue","stripBOM","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","newPromiseCapability","promiseCapability","createInstance","defaultConfig","axios","promises","spread","variable","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","paths","relative","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","ARRAY_ITERATOR","kind","Arguments","relativeURL","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","iterate","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","GLOBAL_CORE_JS_PROMISE","FakePromise","isThenable","isReject","notified","ok","exited","fail","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","onFulfilled","onRejected","capability","$promiseResolve","alreadyCalled","race","PromiseCapability","$$resolve","$$reject","eject","nativeSlice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,IAIjBlC,EAAoBA,EAAoBmC,EAAI,I,gEClFrD,IAAIC,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAChCE,EAAO,GAEXA,EAAKD,GAAiB,IAEtBlC,EAAOD,QAA2B,eAAjBqC,OAAOD,I,uBCPxB,IAAIE,EAAY,EAAQ,QAGxBrC,EAAOD,QAAU,SAAUuC,EAAIC,EAAMC,GAEnC,GADAH,EAAUC,QACGG,IAATF,EAAoB,OAAOD,EAC/B,OAAQE,GACN,KAAK,EAAG,OAAO,WACb,OAAOF,EAAGlC,KAAKmC,IAEjB,KAAK,EAAG,OAAO,SAAUG,GACvB,OAAOJ,EAAGlC,KAAKmC,EAAMG,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAOL,EAAGlC,KAAKmC,EAAMG,EAAGC,IAE1B,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGrC,GAC7B,OAAOgC,EAAGlC,KAAKmC,EAAMG,EAAGC,EAAGrC,IAG/B,OAAO,WACL,OAAOgC,EAAGM,MAAML,EAAMM,c,oCCpB1B,IAAIR,EAAY,EAAQ,QACpBS,EAAW,EAAQ,QAEnBC,EAAQ,GAAGA,MACXC,EAAY,GAEZC,EAAY,SAAUC,EAAGC,EAAYC,GACvC,KAAMD,KAAcH,GAAY,CAC9B,IAAK,IAAIK,EAAO,GAAIpD,EAAI,EAAGA,EAAIkD,EAAYlD,IAAKoD,EAAKpD,GAAK,KAAOA,EAAI,IAErE+C,EAAUG,GAAcG,SAAS,MAAO,gBAAkBD,EAAKE,KAAK,KAAO,KAC3E,OAAOP,EAAUG,GAAYD,EAAGE,IAKpCpD,EAAOD,QAAUuD,SAAS7B,MAAQ,SAAcc,GAC9C,IAAID,EAAKD,EAAUmB,MACfC,EAAWV,EAAM3C,KAAKyC,UAAW,GACjCa,EAAgB,WAClB,IAAIN,EAAOK,EAASE,OAAOZ,EAAM3C,KAAKyC,YACtC,OAAOW,gBAAgBE,EAAgBT,EAAUX,EAAIc,EAAKZ,OAAQY,GAAQd,EAAGM,MAAML,EAAMa,IAG3F,OADIN,EAASR,EAAGT,aAAY6B,EAAc7B,UAAYS,EAAGT,WAClD6B,I,uBCxBT,IAAIE,EAAkB,EAAQ,QAC1BC,EAAuB,EAAQ,QAA8CC,EAE7EC,EAAW,GAAGA,SAEdC,EAA+B,iBAAVC,QAAsBA,QAAUtD,OAAOuD,oBAC5DvD,OAAOuD,oBAAoBD,QAAU,GAErCE,EAAiB,SAAUC,GAC7B,IACE,OAAOP,EAAqBO,GAC5B,MAAOC,GACP,OAAOL,EAAYjB,UAKvB/C,EAAOD,QAAQ+D,EAAI,SAA6BM,GAC9C,OAAOJ,GAAoC,mBAArBD,EAAS3D,KAAKgE,GAChCD,EAAeC,GACfP,EAAqBD,EAAgBQ,M,uBCrB3C,IAAIE,EAAc,EAAQ,QACtBC,EAA6B,EAAQ,QACrCC,EAA2B,EAAQ,QACnCZ,EAAkB,EAAQ,QAC1Ba,EAAc,EAAQ,QACtBC,EAAM,EAAQ,QACdC,EAAiB,EAAQ,QAGzBC,EAA4BjE,OAAOkE,yBAIvC9E,EAAQ+D,EAAIQ,EAAcM,EAA4B,SAAkCE,EAAGC,GAGzF,GAFAD,EAAIlB,EAAgBkB,GACpBC,EAAIN,EAAYM,GAAG,GACfJ,EAAgB,IAClB,OAAOC,EAA0BE,EAAGC,GACpC,MAAOV,IACT,GAAIK,EAAII,EAAGC,GAAI,OAAOP,GAA0BD,EAA2BT,EAAE1D,KAAK0E,EAAGC,GAAID,EAAEC,M,oCCjB7F,IAAIC,EAAQ,EAAQ,QAChBC,EAAW,EAAQ,QACnBC,EAAqB,EAAQ,QAC7BC,EAAkB,EAAQ,QAC1BC,EAAc,EAAQ,QAO1B,SAASC,EAAMC,GACb9B,KAAK+B,SAAWD,EAChB9B,KAAKgC,aAAe,CAClBC,QAAS,IAAIP,EACbQ,SAAU,IAAIR,GASlBG,EAAMxD,UAAU4D,QAAU,SAAiBE,GAGnB,kBAAXA,GACTA,EAAS9C,UAAU,IAAM,GACzB8C,EAAOC,IAAM/C,UAAU,IAEvB8C,EAASA,GAAU,GAGrBA,EAASP,EAAY5B,KAAK+B,SAAUI,GAGhCA,EAAOE,OACTF,EAAOE,OAASF,EAAOE,OAAOC,cACrBtC,KAAK+B,SAASM,OACvBF,EAAOE,OAASrC,KAAK+B,SAASM,OAAOC,cAErCH,EAAOE,OAAS,MAIlB,IAAIE,EAAQ,CAACZ,OAAiB1C,GAC1BuD,EAAUC,QAAQC,QAAQP,GAE9BnC,KAAKgC,aAAaC,QAAQU,SAAQ,SAAoCC,GACpEL,EAAMM,QAAQD,EAAYE,UAAWF,EAAYG,aAGnD/C,KAAKgC,aAAaE,SAASS,SAAQ,SAAkCC,GACnEL,EAAMS,KAAKJ,EAAYE,UAAWF,EAAYG,aAGhD,MAAOR,EAAMvD,OACXwD,EAAUA,EAAQS,KAAKV,EAAMW,QAASX,EAAMW,SAG9C,OAAOV,GAGTX,EAAMxD,UAAU8E,OAAS,SAAgBhB,GAEvC,OADAA,EAASP,EAAY5B,KAAK+B,SAAUI,GAC7BV,EAASU,EAAOC,IAAKD,EAAOiB,OAAQjB,EAAOkB,kBAAkBC,QAAQ,MAAO,KAIrF9B,EAAMmB,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BN,GAE/ER,EAAMxD,UAAUgE,GAAU,SAASD,EAAKD,GACtC,OAAOnC,KAAKiC,QAAQL,EAAYO,GAAU,GAAI,CAC5CE,OAAQA,EACRD,IAAKA,EACLmB,MAAOpB,GAAU,IAAIoB,YAK3B/B,EAAMmB,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BN,GAErER,EAAMxD,UAAUgE,GAAU,SAASD,EAAKmB,EAAMpB,GAC5C,OAAOnC,KAAKiC,QAAQL,EAAYO,GAAU,GAAI,CAC5CE,OAAQA,EACRD,IAAKA,EACLmB,KAAMA,SAKZ/G,EAAOD,QAAUsF,G,uBC9FjB,IAAIf,EAAc,EAAQ,QACtB0C,EAAQ,EAAQ,QAChBC,EAAgB,EAAQ,QAG5BjH,EAAOD,SAAWuE,IAAgB0C,GAAM,WAEtC,OAEQ,GAFDrG,OAAOC,eAAeqG,EAAc,OAAQ,IAAK,CACtDnG,IAAK,WAAc,OAAO,KACzB4B,M,oCCaL1C,EAAOD,QAAU,SAAgBmH,GAC/B,OAAO,SAAcC,GACnB,OAAOD,EAAStE,MAAM,KAAMuE,M,qBCxBhCnH,EAAOD,QAAU,SAAUqE,EAAIgD,EAAa5G,GAC1C,KAAM4D,aAAcgD,GAClB,MAAMC,UAAU,cAAgB7G,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAO4D,I,uBCHX,IAAIkD,EAAa,EAAQ,QAEzBtH,EAAOD,QAAUuH,EAAW,WAAY,oB,qBCFxCtH,EAAOD,QAAU,SAAUqE,GACzB,GAAiB,mBAANA,EACT,MAAMiD,UAAUjF,OAAOgC,GAAM,sBAC7B,OAAOA,I,uBCHX,IAAInC,EAAkB,EAAQ,QAE1BsF,EAAWtF,EAAgB,YAC3BuF,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvBC,KAAM,WACJ,MAAO,CAAEC,OAAQH,MAEnB,OAAU,WACRD,GAAe,IAGnBE,EAAmBH,GAAY,WAC7B,OAAO/D,MAGTqE,MAAMC,KAAKJ,GAAoB,WAAc,MAAM,KACnD,MAAOrD,IAETrE,EAAOD,QAAU,SAAUgI,EAAMC,GAC/B,IAAKA,IAAiBR,EAAc,OAAO,EAC3C,IAAIS,GAAoB,EACxB,IACE,IAAItG,EAAS,GACbA,EAAO4F,GAAY,WACjB,MAAO,CACLI,KAAM,WACJ,MAAO,CAAEC,KAAMK,GAAoB,MAIzCF,EAAKpG,GACL,MAAO0C,IACT,OAAO4D,I,uBCpCT,IAAIC,EAAY,EAAQ,QAExBlI,EAAOD,QAAU,qCAAqCoC,KAAK+F,I,oCCA3DlI,EAAOD,QAAU,SAAcuC,EAAI6F,GACjC,OAAO,WAEL,IADA,IAAI/E,EAAO,IAAIyE,MAAMhF,UAAUL,QACtBvC,EAAI,EAAGA,EAAImD,EAAKZ,OAAQvC,IAC/BmD,EAAKnD,GAAK4C,UAAU5C,GAEtB,OAAOqC,EAAGM,MAAMuF,EAAS/E,M,qBCN7BpD,EAAOD,QAAU,SAAUqE,GACzB,QAAU3B,GAAN2B,EAAiB,MAAMiD,UAAU,wBAA0BjD,GAC/D,OAAOA,I,uBCJT,IAAI4C,EAAQ,EAAQ,QAChB/E,EAAkB,EAAQ,QAC1BmG,EAAa,EAAQ,QAErBC,EAAUpG,EAAgB,WAE9BjC,EAAOD,QAAU,SAAUuI,GAIzB,OAAOF,GAAc,KAAOpB,GAAM,WAChC,IAAIuB,EAAQ,GACRC,EAAcD,EAAMC,YAAc,GAItC,OAHAA,EAAYH,GAAW,WACrB,MAAO,CAAEI,IAAK,IAE2B,IAApCF,EAAMD,GAAaI,SAASD,S,qBChBvC,IAAIE,EAAW,EAAQ,QACnBC,EAAwB,EAAQ,QAChCC,EAAW,EAAQ,QACnBpH,EAAO,EAAQ,QACfqH,EAAoB,EAAQ,QAC5BC,EAAgB,EAAQ,QAExBC,EAAS,SAAUC,EAASC,GAC9B1F,KAAKyF,QAAUA,EACfzF,KAAK0F,OAASA,GAGhBlJ,EAAOD,QAAU,SAAUoJ,EAAUC,EAAiBC,GACpD,IAKIC,EAAUC,EAAQC,EAAOhH,EAAQ0G,EAAQvB,EAAM8B,EAL/ClH,EAAO8G,GAAWA,EAAQ9G,KAC1BmH,KAAgBL,IAAWA,EAAQK,YACnCC,KAAiBN,IAAWA,EAAQM,aACpCC,KAAiBP,IAAWA,EAAQO,aACpCtH,EAAKb,EAAK2H,EAAiB7G,EAAM,EAAImH,EAAaE,GAGlDC,EAAO,SAAUC,GAEnB,OADIR,GAAUP,EAAcO,GACrB,IAAIN,GAAO,EAAMc,IAGtBC,EAAS,SAAU7I,GACrB,OAAIwI,GACFf,EAASzH,GACF0I,EAActH,EAAGpB,EAAM,GAAIA,EAAM,GAAI2I,GAAQvH,EAAGpB,EAAM,GAAIA,EAAM,KAChE0I,EAActH,EAAGpB,EAAO2I,GAAQvH,EAAGpB,IAG9C,GAAIyI,EACFL,EAAWH,MACN,CAEL,GADAI,EAAST,EAAkBK,GACN,mBAAVI,EAAsB,MAAMlC,UAAU,0BAEjD,GAAIuB,EAAsBW,GAAS,CACjC,IAAKC,EAAQ,EAAGhH,EAASqG,EAASM,EAAS3G,QAASA,EAASgH,EAAOA,IAElE,GADAN,EAASa,EAAOZ,EAASK,IACrBN,GAAUA,aAAkBF,EAAQ,OAAOE,EAC/C,OAAO,IAAIF,GAAO,GAEtBM,EAAWC,EAAOnJ,KAAK+I,GAGzBxB,EAAO2B,EAAS3B,KAChB,QAAS8B,EAAO9B,EAAKvH,KAAKkJ,IAAW1B,KAAM,CACzC,IACEsB,EAASa,EAAON,EAAKvI,OACrB,MAAOmD,GAEP,MADA0E,EAAcO,GACRjF,EAER,GAAqB,iBAAV6E,GAAsBA,GAAUA,aAAkBF,EAAQ,OAAOE,EAC5E,OAAO,IAAIF,GAAO,K,uBCxDtB,IAAIgB,EAAY,EAAQ,QAEpBC,EAAMC,KAAKD,IACXE,EAAMD,KAAKC,IAKfnK,EAAOD,QAAU,SAAUyJ,EAAOhH,GAChC,IAAI4H,EAAUJ,EAAUR,GACxB,OAAOY,EAAU,EAAIH,EAAIG,EAAU5H,EAAQ,GAAK2H,EAAIC,EAAS5H,K,uBCV/D,IAAI6H,EAAS,EAAQ,QACjBxF,EAA2B,EAAQ,QAAmDf,EACtFwG,EAA8B,EAAQ,QACtCC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAA4B,EAAQ,QACpCC,EAAW,EAAQ,QAgBvB1K,EAAOD,QAAU,SAAUsJ,EAASsB,GAClC,IAGIC,EAAQC,EAAQrJ,EAAKsJ,EAAgBC,EAAgBC,EAHrDC,EAAS5B,EAAQwB,OACjBK,EAAS7B,EAAQgB,OACjBc,EAAS9B,EAAQ+B,KASrB,GANEP,EADEK,EACOb,EACAc,EACAd,EAAOY,IAAWT,EAAUS,EAAQ,KAEnCZ,EAAOY,IAAW,IAAIpJ,UAE9BgJ,EAAQ,IAAKrJ,KAAOmJ,EAAQ,CAQ9B,GAPAI,EAAiBJ,EAAOnJ,GACpB6H,EAAQgC,aACVL,EAAanG,EAAyBgG,EAAQrJ,GAC9CsJ,EAAiBE,GAAcA,EAAW9J,OACrC4J,EAAiBD,EAAOrJ,GAC/BoJ,EAASF,EAASQ,EAAS1J,EAAMyJ,GAAUE,EAAS,IAAM,KAAO3J,EAAK6H,EAAQiC,SAEzEV,QAA6BnI,IAAnBqI,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDL,EAA0BM,EAAgBD,IAGxCzB,EAAQkC,MAAST,GAAkBA,EAAeS,OACpDjB,EAA4BS,EAAgB,QAAQ,GAGtDR,EAASM,EAAQrJ,EAAKuJ,EAAgB1B,M,uBCnD1C,IAAImC,EAAqB,EAAQ,QAC7BC,EAAc,EAAQ,QAEtBC,EAAaD,EAAY9H,OAAO,SAAU,aAK9C5D,EAAQ+D,EAAInD,OAAOuD,qBAAuB,SAA6BY,GACrE,OAAO0G,EAAmB1G,EAAG4G,K,mCCT/B,YAEA,IAAI1G,EAAQ,EAAQ,QAChB2G,EAAsB,EAAQ,QAE9BC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBC,EAAS5K,IACjC8D,EAAM+G,YAAYD,IAAY9G,EAAM+G,YAAYD,EAAQ,mBAC3DA,EAAQ,gBAAkB5K,GAI9B,SAAS8K,IACP,IAAIC,EAQJ,OAP8B,qBAAnBC,gBAGmB,qBAAZC,GAAuE,qBAA5CxL,OAAOkB,UAAUkC,SAAS3D,KAAK+L,MAD1EF,EAAU,EAAQ,SAKbA,EAGT,IAAI1G,EAAW,CACb0G,QAASD,IAETI,iBAAkB,CAAC,SAA0BrF,EAAM+E,GAGjD,OAFAH,EAAoBG,EAAS,UAC7BH,EAAoBG,EAAS,gBACzB9G,EAAMqH,WAAWtF,IACnB/B,EAAMsH,cAAcvF,IACpB/B,EAAMuH,SAASxF,IACf/B,EAAMwH,SAASzF,IACf/B,EAAMyH,OAAO1F,IACb/B,EAAM0H,OAAO3F,GAENA,EAEL/B,EAAM2H,kBAAkB5F,GACnBA,EAAK6F,OAEV5H,EAAM6H,kBAAkB9F,IAC1B8E,EAAsBC,EAAS,mDACxB/E,EAAKhD,YAEViB,EAAMlC,SAASiE,IACjB8E,EAAsBC,EAAS,kCACxBgB,KAAKC,UAAUhG,IAEjBA,IAGTiG,kBAAmB,CAAC,SAA2BjG,GAE7C,GAAoB,kBAATA,EACT,IACEA,EAAO+F,KAAKG,MAAMlG,GAClB,MAAOmG,IAEX,OAAOnG,IAOToG,QAAS,EAETC,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBC,eAAgB,SAAwBC,GACtC,OAAOA,GAAU,KAAOA,EAAS,KAIrC,QAAmB,CACjBC,OAAQ,CACN,OAAU,uCAId1I,EAAMmB,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BN,GACpEN,EAASuG,QAAQjG,GAAU,MAG7Bb,EAAMmB,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BN,GACrEN,EAASuG,QAAQjG,GAAUb,EAAM2I,MAAM/B,MAGzC5L,EAAOD,QAAUwF,I,wDChGjB,IAAI+B,EAAa,EAAQ,QACrBsG,EAAuB,EAAQ,QAC/B3L,EAAkB,EAAQ,QAC1BqC,EAAc,EAAQ,QAEtB+D,EAAUpG,EAAgB,WAE9BjC,EAAOD,QAAU,SAAU8N,GACzB,IAAIzG,EAAcE,EAAWuG,GACzBjN,EAAiBgN,EAAqB9J,EAEtCQ,GAAe8C,IAAgBA,EAAYiB,IAC7CzH,EAAewG,EAAaiB,EAAS,CACnCyF,cAAc,EACdhN,IAAK,WAAc,OAAO0C,U,uBCfhC,IAAImF,EAAW,EAAQ,QAEvB3I,EAAOD,QAAU,SAAUuJ,GACzB,IAAIyE,EAAezE,EAAS,UAC5B,QAAqB7G,IAAjBsL,EACF,OAAOpF,EAASoF,EAAa3N,KAAKkJ,IAAWpI,Q,qCCLjD;;;;;;AAOA,IAAI8M,EAAcrN,OAAOsN,OAAO,IAIhC,SAASC,EAASC,GAChB,YAAa1L,IAAN0L,GAAyB,OAANA,EAG5B,SAASC,EAAOD,GACd,YAAa1L,IAAN0L,GAAyB,OAANA,EAG5B,SAASE,EAAQF,GACf,OAAa,IAANA,EAGT,SAASG,EAASH,GAChB,OAAa,IAANA,EAMT,SAASI,EAAarN,GACpB,MACmB,kBAAVA,GACU,kBAAVA,GAEU,kBAAVA,GACU,mBAAVA,EASX,SAAS4B,EAAU0L,GACjB,OAAe,OAARA,GAA+B,kBAARA,EAMhC,IAAIC,EAAY9N,OAAOkB,UAAUkC,SAUjC,SAAS2K,EAAeF,GACtB,MAA+B,oBAAxBC,EAAUrO,KAAKoO,GAGxB,SAASG,EAAUR,GACjB,MAA6B,oBAAtBM,EAAUrO,KAAK+N,GAMxB,SAASS,EAAmBC,GAC1B,IAAInN,EAAIoN,WAAW1M,OAAOyM,IAC1B,OAAOnN,GAAK,GAAKwI,KAAK6E,MAAMrN,KAAOA,GAAKsN,SAASH,GAGnD,SAASI,EAAWJ,GAClB,OACET,EAAMS,IACc,oBAAbA,EAAIpI,MACU,oBAAdoI,EAAIK,MAOf,SAASnL,EAAU8K,GACjB,OAAc,MAAPA,EACH,GACAhH,MAAMsH,QAAQN,IAASH,EAAcG,IAAQA,EAAI9K,WAAa0K,EAC5D3B,KAAKC,UAAU8B,EAAK,KAAM,GAC1BzM,OAAOyM,GAOf,SAASO,EAAUP,GACjB,IAAInN,EAAIoN,WAAWD,GACnB,OAAOQ,MAAM3N,GAAKmN,EAAMnN,EAO1B,SAAS4N,EACPC,EACAC,GAIA,IAFA,IAAIC,EAAM9O,OAAOY,OAAO,MACpB8B,EAAOkM,EAAIG,MAAM,KACZzP,EAAI,EAAGA,EAAIoD,EAAKb,OAAQvC,IAC/BwP,EAAIpM,EAAKpD,KAAM,EAEjB,OAAOuP,EACH,SAAUX,GAAO,OAAOY,EAAIZ,EAAI/I,gBAChC,SAAU+I,GAAO,OAAOY,EAAIZ,IAMfS,EAAQ,kBAAkB,GAA7C,IAKIK,EAAsBL,EAAQ,8BAKlC,SAASM,EAAQzI,EAAK0I,GACpB,GAAI1I,EAAI3E,OAAQ,CACd,IAAIgH,EAAQrC,EAAI2I,QAAQD,GACxB,GAAIrG,GAAS,EACX,OAAOrC,EAAI4I,OAAOvG,EAAO,IAQ/B,IAAI1H,EAAiBnB,OAAOkB,UAAUC,eACtC,SAASkO,EAAQxB,EAAKhN,GACpB,OAAOM,EAAe1B,KAAKoO,EAAKhN,GAMlC,SAASyO,EAAQ3N,GACf,IAAI4N,EAAQvP,OAAOY,OAAO,MAC1B,OAAO,SAAoBgO,GACzB,IAAIY,EAAMD,EAAMX,GAChB,OAAOY,IAAQD,EAAMX,GAAOjN,EAAGiN,KAOnC,IAAIa,EAAa,SACbC,EAAWJ,GAAO,SAAUV,GAC9B,OAAOA,EAAIzI,QAAQsJ,GAAY,SAAUE,EAAGhQ,GAAK,OAAOA,EAAIA,EAAEiQ,cAAgB,SAM5EC,EAAaP,GAAO,SAAUV,GAChC,OAAOA,EAAIkB,OAAO,GAAGF,cAAgBhB,EAAIxM,MAAM,MAM7C2N,EAAc,aACdC,EAAYV,GAAO,SAAUV,GAC/B,OAAOA,EAAIzI,QAAQ4J,EAAa,OAAO5K,iBAYzC,SAAS8K,EAActO,EAAIuO,GACzB,SAASC,EAASpO,GAChB,IAAIxC,EAAI2C,UAAUL,OAClB,OAAOtC,EACHA,EAAI,EACFoC,EAAGM,MAAMiO,EAAKhO,WACdP,EAAGlC,KAAKyQ,EAAKnO,GACfJ,EAAGlC,KAAKyQ,GAId,OADAC,EAAQC,QAAUzO,EAAGE,OACdsO,EAGT,SAASE,EAAY1O,EAAIuO,GACvB,OAAOvO,EAAGb,KAAKoP,GAGjB,IAAIpP,EAAO6B,SAASzB,UAAUJ,KAC1BuP,EACAJ,EAKJ,SAASK,EAAS5N,EAAM6N,GACtBA,EAAQA,GAAS,EACjB,IAAIjR,EAAIoD,EAAKb,OAAS0O,EAClBC,EAAM,IAAItJ,MAAM5H,GACpB,MAAOA,IACLkR,EAAIlR,GAAKoD,EAAKpD,EAAIiR,GAEpB,OAAOC,EAMT,SAASC,EAAQC,EAAIC,GACnB,IAAK,IAAI9P,KAAO8P,EACdD,EAAG7P,GAAO8P,EAAM9P,GAElB,OAAO6P,EAMT,SAASE,EAAUpK,GAEjB,IADA,IAAIqK,EAAM,GACDvR,EAAI,EAAGA,EAAIkH,EAAI3E,OAAQvC,IAC1BkH,EAAIlH,IACNmR,EAAOI,EAAKrK,EAAIlH,IAGpB,OAAOuR,EAUT,SAASC,EAAM/O,EAAGC,EAAGrC,IAKrB,IAAIoR,EAAK,SAAUhP,EAAGC,EAAGrC,GAAK,OAAO,GAOjCqR,EAAW,SAAUrB,GAAK,OAAOA,GAMrC,SAASsB,EAAYlP,EAAGC,GACtB,GAAID,IAAMC,EAAK,OAAO,EACtB,IAAIkP,EAAY/O,EAASJ,GACrBoP,EAAYhP,EAASH,GACzB,IAAIkP,IAAaC,EAwBV,OAAKD,IAAcC,GACjB1P,OAAOM,KAAON,OAAOO,GAxB5B,IACE,IAAIoP,EAAWlK,MAAMsH,QAAQzM,GACzBsP,EAAWnK,MAAMsH,QAAQxM,GAC7B,GAAIoP,GAAYC,EACd,OAAOtP,EAAEF,SAAWG,EAAEH,QAAUE,EAAEuP,OAAM,SAAU/E,EAAGjN,GACnD,OAAO2R,EAAW1E,EAAGvK,EAAE1C,OAEpB,GAAIyC,aAAawP,MAAQvP,aAAauP,KAC3C,OAAOxP,EAAEyP,YAAcxP,EAAEwP,UACpB,GAAKJ,GAAaC,EAQvB,OAAO,EAPP,IAAII,EAAQzR,OAAO0R,KAAK3P,GACpB4P,EAAQ3R,OAAO0R,KAAK1P,GACxB,OAAOyP,EAAM5P,SAAW8P,EAAM9P,QAAU4P,EAAMH,OAAM,SAAUzQ,GAC5D,OAAOoQ,EAAWlP,EAAElB,GAAMmB,EAAEnB,OAMhC,MAAO0L,GAEP,OAAO,GAcb,SAASqF,EAAcpL,EAAK0H,GAC1B,IAAK,IAAI5O,EAAI,EAAGA,EAAIkH,EAAI3E,OAAQvC,IAC9B,GAAI2R,EAAWzK,EAAIlH,GAAI4O,GAAQ,OAAO5O,EAExC,OAAQ,EAMV,SAASuS,EAAMlQ,GACb,IAAImF,GAAS,EACb,OAAO,WACAA,IACHA,GAAS,EACTnF,EAAGM,MAAMY,KAAMX,aAKrB,IAAI4P,EAAW,uBAEXC,EAAc,CAChB,YACA,YACA,UAGEC,EAAkB,CACpB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,kBAOEhN,EAAS,CAKXiN,sBAAuBjS,OAAOY,OAAO,MAKrCsR,QAAQ,EAKRC,eAAe,EAKfC,UAAU,EAKVC,aAAa,EAKbC,aAAc,KAKdC,YAAa,KAKbC,gBAAiB,GAMjBC,SAAUzS,OAAOY,OAAO,MAMxB8R,cAAe3B,EAMf4B,eAAgB5B,EAMhB6B,iBAAkB7B,EAKlB8B,gBAAiB/B,EAKjBgC,qBAAsB9B,EAMtB+B,YAAahC,EAMbiC,OAAO,EAKPC,gBAAiBjB,GAUfkB,EAAgB,8JAKpB,SAASC,EAAYvE,GACnB,IAAIjP,GAAKiP,EAAM,IAAIwE,WAAW,GAC9B,OAAa,KAANzT,GAAoB,KAANA,EAMvB,SAAS0T,EAAKxF,EAAKhN,EAAKqN,EAAKhO,GAC3BF,OAAOC,eAAe4N,EAAKhN,EAAK,CAC9BN,MAAO2N,EACPhO,aAAcA,EACdoT,UAAU,EACVnG,cAAc,IAOlB,IAAIoG,EAAS,IAAIC,OAAQ,KAAQN,EAAoB,OAAI,WACzD,SAASO,EAAWC,GAClB,IAAIH,EAAO/R,KAAKkS,GAAhB,CAGA,IAAIC,EAAWD,EAAK3E,MAAM,KAC1B,OAAO,SAAUlB,GACf,IAAK,IAAIvO,EAAI,EAAGA,EAAIqU,EAAS9R,OAAQvC,IAAK,CACxC,IAAKuO,EAAO,OACZA,EAAMA,EAAI8F,EAASrU,IAErB,OAAOuO,IAOX,IAmCI+F,EAnCAC,EAAW,aAAe,GAG1BC,EAA8B,qBAAXxQ,OACnByQ,EAAkC,qBAAlBC,iBAAmCA,cAAcC,SACjEC,EAAeH,GAAUC,cAAcC,SAAS9O,cAChDgP,EAAKL,GAAaxQ,OAAO8Q,UAAU7M,UAAUpC,cAC7CkP,GAAOF,GAAM,eAAe3S,KAAK2S,GACjCG,GAAQH,GAAMA,EAAGhF,QAAQ,YAAc,EACvCoF,GAASJ,GAAMA,EAAGhF,QAAQ,SAAW,EAErCqF,IADaL,GAAMA,EAAGhF,QAAQ,WACrBgF,GAAM,uBAAuB3S,KAAK2S,IAA0B,QAAjBD,GAGpDO,IAFWN,GAAM,cAAc3S,KAAK2S,GACtBA,GAAM,YAAY3S,KAAK2S,GAC9BA,GAAMA,EAAGO,MAAM,mBAGtBC,GAAc,GAAKC,MAEnBC,IAAkB,EACtB,GAAIf,EACF,IACE,IAAIgB,GAAO,GACX9U,OAAOC,eAAe6U,GAAM,UAAW,CACrC3U,IAAK,WAEH0U,IAAkB,KAGtBvR,OAAOyR,iBAAiB,eAAgB,KAAMD,IAC9C,MAAOvI,KAMX,IAAIyI,GAAoB,WAWtB,YAVkBlT,IAAd8R,IAOAA,GALGE,IAAcC,GAA4B,qBAAXrK,IAGtBA,EAAO,YAAgD,WAAlCA,EAAO,WAAWuL,IAAIC,UAKpDtB,GAILxB,GAAW0B,GAAaxQ,OAAO6R,6BAGnC,SAASC,GAAUC,GACjB,MAAuB,oBAATA,GAAuB,cAAc7T,KAAK6T,EAAKjS,YAG/D,IAIIkS,GAJAC,GACgB,qBAAXlV,QAA0B+U,GAAS/U,SACvB,qBAAZmV,SAA2BJ,GAASI,QAAQC,SAMnDH,GAFiB,qBAARI,KAAuBN,GAASM,KAElCA,IAGc,WACnB,SAASA,IACP7S,KAAK8S,IAAM3V,OAAOY,OAAO,MAY3B,OAVA8U,EAAIxU,UAAU6C,IAAM,SAAclD,GAChC,OAAyB,IAAlBgC,KAAK8S,IAAI9U,IAElB6U,EAAIxU,UAAU0U,IAAM,SAAc/U,GAChCgC,KAAK8S,IAAI9U,IAAO,GAElB6U,EAAIxU,UAAU2U,MAAQ,WACpBhT,KAAK8S,IAAM3V,OAAOY,OAAO,OAGpB8U,EAdW,GAoBtB,IAAII,GAAOhF,EA8FPiF,GAAM,EAMNC,GAAM,WACRnT,KAAKoT,GAAKF,KACVlT,KAAKqT,KAAO,IAGdF,GAAI9U,UAAUiV,OAAS,SAAiBC,GACtCvT,KAAKqT,KAAKrQ,KAAKuQ,IAGjBJ,GAAI9U,UAAUmV,UAAY,SAAoBD,GAC5CnH,EAAOpM,KAAKqT,KAAME,IAGpBJ,GAAI9U,UAAUoV,OAAS,WACjBN,GAAI9L,QACN8L,GAAI9L,OAAOqM,OAAO1T,OAItBmT,GAAI9U,UAAUsV,OAAS,WAErB,IAAIN,EAAOrT,KAAKqT,KAAK9T,QAOrB,IAAK,IAAI9C,EAAI,EAAGC,EAAI2W,EAAKrU,OAAQvC,EAAIC,EAAGD,IACtC4W,EAAK5W,GAAGmX,UAOZT,GAAI9L,OAAS,KACb,IAAIwM,GAAc,GAElB,SAASC,GAAYzM,GACnBwM,GAAY7Q,KAAKqE,GACjB8L,GAAI9L,OAASA,EAGf,SAAS0M,KACPF,GAAYG,MACZb,GAAI9L,OAASwM,GAAYA,GAAY7U,OAAS,GAKhD,IAAIiV,GAAQ,SACVC,EACA3Q,EACA4Q,EACAC,EACAC,EACAC,EACAC,EACAC,GAEAxU,KAAKkU,IAAMA,EACXlU,KAAKuD,KAAOA,EACZvD,KAAKmU,SAAWA,EAChBnU,KAAKoU,KAAOA,EACZpU,KAAKqU,IAAMA,EACXrU,KAAKlC,QAAKmB,EACVe,KAAKsU,QAAUA,EACftU,KAAKyU,eAAYxV,EACjBe,KAAK0U,eAAYzV,EACjBe,KAAK2U,eAAY1V,EACjBe,KAAKhC,IAAMuF,GAAQA,EAAKvF,IACxBgC,KAAKuU,iBAAmBA,EACxBvU,KAAK4U,uBAAoB3V,EACzBe,KAAK6U,YAAS5V,EACde,KAAK8U,KAAM,EACX9U,KAAK+U,UAAW,EAChB/U,KAAKgV,cAAe,EACpBhV,KAAKiV,WAAY,EACjBjV,KAAKkV,UAAW,EAChBlV,KAAKmV,QAAS,EACdnV,KAAKwU,aAAeA,EACpBxU,KAAKoV,eAAYnW,EACjBe,KAAKqV,oBAAqB,GAGxBC,GAAqB,CAAEC,MAAO,CAAEjL,cAAc,IAIlDgL,GAAmBC,MAAMjY,IAAM,WAC7B,OAAO0C,KAAK4U,mBAGdzX,OAAOqY,iBAAkBvB,GAAM5V,UAAWiX,IAE1C,IAAIG,GAAmB,SAAUrB,QACjB,IAATA,IAAkBA,EAAO,IAE9B,IAAIsB,EAAO,IAAIzB,GAGf,OAFAyB,EAAKtB,KAAOA,EACZsB,EAAKT,WAAY,EACVS,GAGT,SAASC,GAAiBtK,GACxB,OAAO,IAAI4I,QAAMhV,OAAWA,OAAWA,EAAWL,OAAOyM,IAO3D,SAASuK,GAAYC,GACnB,IAAIC,EAAS,IAAI7B,GACf4B,EAAM3B,IACN2B,EAAMtS,KAINsS,EAAM1B,UAAY0B,EAAM1B,SAAS5U,QACjCsW,EAAMzB,KACNyB,EAAMxB,IACNwB,EAAMvB,QACNuB,EAAMtB,iBACNsB,EAAMrB,cAWR,OATAsB,EAAOhY,GAAK+X,EAAM/X,GAClBgY,EAAOf,SAAWc,EAAMd,SACxBe,EAAO9X,IAAM6X,EAAM7X,IACnB8X,EAAOb,UAAYY,EAAMZ,UACzBa,EAAOrB,UAAYoB,EAAMpB,UACzBqB,EAAOpB,UAAYmB,EAAMnB,UACzBoB,EAAOnB,UAAYkB,EAAMlB,UACzBmB,EAAOV,UAAYS,EAAMT,UACzBU,EAAOZ,UAAW,EACXY,EAQT,IAAIC,GAAa1R,MAAMhG,UACnB2X,GAAe7Y,OAAOY,OAAOgY,IAE7BE,GAAiB,CACnB,OACA,MACA,QACA,UACA,SACA,OACA,WAMFA,GAAetT,SAAQ,SAAUN,GAE/B,IAAI6T,EAAWH,GAAW1T,GAC1BmO,EAAIwF,GAAc3T,GAAQ,WACxB,IAAIzC,EAAO,GAAIuW,EAAM9W,UAAUL,OAC/B,MAAQmX,IAAQvW,EAAMuW,GAAQ9W,UAAW8W,GAEzC,IAEIC,EAFA1Q,EAASwQ,EAAS9W,MAAMY,KAAMJ,GAC9ByW,EAAKrW,KAAKsW,OAEd,OAAQjU,GACN,IAAK,OACL,IAAK,UACH+T,EAAWxW,EACX,MACF,IAAK,SACHwW,EAAWxW,EAAKL,MAAM,GACtB,MAKJ,OAHI6W,GAAYC,EAAGE,aAAaH,GAEhCC,EAAGG,IAAI7C,SACAjO,QAMX,IAAI+Q,GAAYtZ,OAAOuD,oBAAoBsV,IAMvCU,IAAgB,EAEpB,SAASC,GAAiBjZ,GACxBgZ,GAAgBhZ,EASlB,IAAIkZ,GAAW,SAAmBlZ,GAChCsC,KAAKtC,MAAQA,EACbsC,KAAKwW,IAAM,IAAIrD,GACfnT,KAAK6W,QAAU,EACfrG,EAAI9S,EAAO,SAAUsC,MACjBqE,MAAMsH,QAAQjO,IACZsT,EACF8F,GAAapZ,EAAOsY,IAEpBe,GAAYrZ,EAAOsY,GAAcS,IAEnCzW,KAAKuW,aAAa7Y,IAElBsC,KAAKgX,KAAKtZ,IA+Bd,SAASoZ,GAAczP,EAAQ4P,GAE7B5P,EAAO6P,UAAYD,EASrB,SAASF,GAAa1P,EAAQ4P,EAAKpI,GACjC,IAAK,IAAIpS,EAAI,EAAGC,EAAImS,EAAK7P,OAAQvC,EAAIC,EAAGD,IAAK,CAC3C,IAAIuB,EAAM6Q,EAAKpS,GACf+T,EAAInJ,EAAQrJ,EAAKiZ,EAAIjZ,KASzB,SAASmZ,GAASzZ,EAAO0Z,GAIvB,IAAIf,EAHJ,GAAK/W,EAAS5B,MAAUA,aAAiBuW,IAkBzC,OAdIzH,EAAO9O,EAAO,WAAaA,EAAM4Y,kBAAkBM,GACrDP,EAAK3Y,EAAM4Y,OAEXI,KACCvE,OACA9N,MAAMsH,QAAQjO,IAAUwN,EAAcxN,KACvCP,OAAOka,aAAa3Z,KACnBA,EAAM4Z,SAEPjB,EAAK,IAAIO,GAASlZ,IAEhB0Z,GAAcf,GAChBA,EAAGQ,UAEER,EAMT,SAASkB,GACPvM,EACAhN,EACAqN,EACAmM,EACAC,GAEA,IAAIjB,EAAM,IAAIrD,GAEV/U,EAAWjB,OAAOkE,yBAAyB2J,EAAKhN,GACpD,IAAII,IAAsC,IAA1BA,EAASkM,aAAzB,CAKA,IAAIrN,EAASmB,GAAYA,EAASd,IAC9Boa,EAAStZ,GAAYA,EAAS0U,IAC5B7V,IAAUya,GAAgC,IAArBrY,UAAUL,SACnCqM,EAAML,EAAIhN,IAGZ,IAAI2Z,GAAWF,GAAWN,GAAQ9L,GAClClO,OAAOC,eAAe4N,EAAKhN,EAAK,CAC9BX,YAAY,EACZiN,cAAc,EACdhN,IAAK,WACH,IAAII,EAAQT,EAASA,EAAOL,KAAKoO,GAAOK,EAUxC,OATI8H,GAAI9L,SACNmP,EAAI/C,SACAkE,IACFA,EAAQnB,IAAI/C,SACRpP,MAAMsH,QAAQjO,IAChBka,GAAYla,KAIXA,GAEToV,IAAK,SAAyB+E,GAC5B,IAAIna,EAAQT,EAASA,EAAOL,KAAKoO,GAAOK,EAEpCwM,IAAWna,GAAUma,IAAWA,GAAUna,IAAUA,GAQpDT,IAAWya,IACXA,EACFA,EAAO9a,KAAKoO,EAAK6M,GAEjBxM,EAAMwM,EAERF,GAAWF,GAAWN,GAAQU,GAC9BrB,EAAI7C,cAUV,SAASb,GAAKzL,EAAQrJ,EAAKqN,GAMzB,GAAIhH,MAAMsH,QAAQtE,IAAW+D,EAAkBpN,GAG7C,OAFAqJ,EAAOrI,OAAS0H,KAAKD,IAAIY,EAAOrI,OAAQhB,GACxCqJ,EAAOkF,OAAOvO,EAAK,EAAGqN,GACfA,EAET,GAAIrN,KAAOqJ,KAAYrJ,KAAOb,OAAOkB,WAEnC,OADAgJ,EAAOrJ,GAAOqN,EACPA,EAET,IAAIgL,EAAK,EAASC,OAClB,OAAIjP,EAAOiQ,QAAWjB,GAAMA,EAAGQ,QAKtBxL,EAEJgL,GAILkB,GAAkBlB,EAAG3Y,MAAOM,EAAKqN,GACjCgL,EAAGG,IAAI7C,SACAtI,IALLhE,EAAOrJ,GAAOqN,EACPA,GAUX,SAASyM,GAAKzQ,EAAQrJ,GAMpB,GAAIqG,MAAMsH,QAAQtE,IAAW+D,EAAkBpN,GAC7CqJ,EAAOkF,OAAOvO,EAAK,OADrB,CAIA,IAAIqY,EAAK,EAASC,OACdjP,EAAOiQ,QAAWjB,GAAMA,EAAGQ,SAO1BrK,EAAOnF,EAAQrJ,YAGbqJ,EAAOrJ,GACTqY,GAGLA,EAAGG,IAAI7C,WAOT,SAASiE,GAAala,GACpB,IAAK,IAAIgM,OAAI,EAAUjN,EAAI,EAAGC,EAAIgB,EAAMsB,OAAQvC,EAAIC,EAAGD,IACrDiN,EAAIhM,EAAMjB,GACViN,GAAKA,EAAE4M,QAAU5M,EAAE4M,OAAOE,IAAI/C,SAC1BpP,MAAMsH,QAAQjC,IAChBkO,GAAYlO,GAhNlBkN,GAASvY,UAAU2Y,KAAO,SAAehM,GAEvC,IADA,IAAI6D,EAAO1R,OAAO0R,KAAK7D,GACdvO,EAAI,EAAGA,EAAIoS,EAAK7P,OAAQvC,IAC/B8a,GAAkBvM,EAAK6D,EAAKpS,KAOhCma,GAASvY,UAAUkY,aAAe,SAAuBwB,GACvD,IAAK,IAAItb,EAAI,EAAGC,EAAIqb,EAAM/Y,OAAQvC,EAAIC,EAAGD,IACvC0a,GAAQY,EAAMtb,KAgNlB,IAAIub,GAAS7V,EAAOiN,sBAoBpB,SAAS6I,GAAWpK,EAAIvJ,GACtB,IAAKA,EAAQ,OAAOuJ,EAOpB,IANA,IAAI7P,EAAKka,EAAOC,EAEZtJ,EAAO6D,GACPC,QAAQC,QAAQtO,GAChBnH,OAAO0R,KAAKvK,GAEP7H,EAAI,EAAGA,EAAIoS,EAAK7P,OAAQvC,IAC/BuB,EAAM6Q,EAAKpS,GAEC,WAARuB,IACJka,EAAQrK,EAAG7P,GACXma,EAAU7T,EAAKtG,GACVwO,EAAOqB,EAAI7P,GAGdka,IAAUC,GACVjN,EAAcgN,IACdhN,EAAciN,IAEdF,GAAUC,EAAOC,GANjBrF,GAAIjF,EAAI7P,EAAKma,IASjB,OAAOtK,EAMT,SAASuK,GACPC,EACAC,EACAC,GAEA,OAAKA,EAoBI,WAEL,IAAIC,EAAmC,oBAAbF,EACtBA,EAAS1b,KAAK2b,EAAIA,GAClBD,EACAG,EAAmC,oBAAdJ,EACrBA,EAAUzb,KAAK2b,EAAIA,GACnBF,EACJ,OAAIG,EACKP,GAAUO,EAAcC,GAExBA,GA7BNH,EAGAD,EAQE,WACL,OAAOJ,GACe,oBAAbK,EAA0BA,EAAS1b,KAAKoD,KAAMA,MAAQsY,EACxC,oBAAdD,EAA2BA,EAAUzb,KAAKoD,KAAMA,MAAQqY,IAV1DC,EAHAD,EA2Db,SAASK,GACPL,EACAC,GAEA,IAAItK,EAAMsK,EACND,EACEA,EAAUlY,OAAOmY,GACjBjU,MAAMsH,QAAQ2M,GACZA,EACA,CAACA,GACLD,EACJ,OAAOrK,EACH2K,GAAY3K,GACZA,EAGN,SAAS2K,GAAaC,GAEpB,IADA,IAAI5K,EAAM,GACDvR,EAAI,EAAGA,EAAImc,EAAM5Z,OAAQvC,KACD,IAA3BuR,EAAI1B,QAAQsM,EAAMnc,KACpBuR,EAAIhL,KAAK4V,EAAMnc,IAGnB,OAAOuR,EAcT,SAAS6K,GACPR,EACAC,EACAC,EACAva,GAEA,IAAIgQ,EAAM7Q,OAAOY,OAAOsa,GAAa,MACrC,OAAIC,EAEK1K,EAAOI,EAAKsK,GAEZtK,EAzEXgK,GAAOzU,KAAO,SACZ8U,EACAC,EACAC,GAEA,OAAKA,EAcEH,GAAcC,EAAWC,EAAUC,GAbpCD,GAAgC,oBAAbA,EAQdD,EAEFD,GAAcC,EAAWC,IAmCpCnJ,EAAgBxM,SAAQ,SAAUmW,GAChCd,GAAOc,GAAQJ,MAyBjBxJ,EAAYvM,SAAQ,SAAUoW,GAC5Bf,GAAOe,EAAO,KAAOF,MASvBb,GAAOjG,MAAQ,SACbsG,EACAC,EACAC,EACAva,GAMA,GAHIqa,IAAcvG,KAAeuG,OAAYpZ,GACzCqZ,IAAaxG,KAAewG,OAAWrZ,IAEtCqZ,EAAY,OAAOnb,OAAOY,OAAOsa,GAAa,MAInD,IAAKA,EAAa,OAAOC,EACzB,IAAI3K,EAAM,GAEV,IAAK,IAAIqL,KADTpL,EAAOD,EAAK0K,GACMC,EAAU,CAC1B,IAAIzD,EAASlH,EAAIqL,GACbzD,EAAQ+C,EAASU,GACjBnE,IAAWxQ,MAAMsH,QAAQkJ,KAC3BA,EAAS,CAACA,IAEZlH,EAAIqL,GAASnE,EACTA,EAAO1U,OAAOoV,GACdlR,MAAMsH,QAAQ4J,GAASA,EAAQ,CAACA,GAEtC,OAAO5H,GAMTqK,GAAOiB,MACPjB,GAAOkB,QACPlB,GAAOmB,OACPnB,GAAOoB,SAAW,SAChBf,EACAC,EACAC,EACAva,GAKA,IAAKqa,EAAa,OAAOC,EACzB,IAAI3K,EAAMxQ,OAAOY,OAAO,MAGxB,OAFA6P,EAAOD,EAAK0K,GACRC,GAAY1K,EAAOD,EAAK2K,GACrB3K,GAETqK,GAAOqB,QAAUjB,GAKjB,IAAIkB,GAAe,SAAUjB,EAAWC,GACtC,YAAoBrZ,IAAbqZ,EACHD,EACAC,GA+BN,SAASiB,GAAgB1T,EAAS0S,GAChC,IAAIU,EAAQpT,EAAQoT,MACpB,GAAKA,EAAL,CACA,IACIxc,EAAG4O,EAAKrO,EADRgR,EAAM,GAEV,GAAI3J,MAAMsH,QAAQsN,GAAQ,CACxBxc,EAAIwc,EAAMja,OACV,MAAOvC,IACL4O,EAAM4N,EAAMxc,GACO,kBAAR4O,IACTrO,EAAO6P,EAASxB,GAChB2C,EAAIhR,GAAQ,CAAE+b,KAAM,YAKnB,GAAI7N,EAAc+N,GACvB,IAAK,IAAIjb,KAAOib,EACd5N,EAAM4N,EAAMjb,GACZhB,EAAO6P,EAAS7O,GAChBgQ,EAAIhR,GAAQkO,EAAcG,GACtBA,EACA,CAAE0N,KAAM1N,QAEL,EAOXxF,EAAQoT,MAAQjL,GAMlB,SAASwL,GAAiB3T,EAAS0S,GACjC,IAAIY,EAAStT,EAAQsT,OACrB,GAAKA,EAAL,CACA,IAAIM,EAAa5T,EAAQsT,OAAS,GAClC,GAAI9U,MAAMsH,QAAQwN,GAChB,IAAK,IAAI1c,EAAI,EAAGA,EAAI0c,EAAOna,OAAQvC,IACjCgd,EAAWN,EAAO1c,IAAM,CAAE6H,KAAM6U,EAAO1c,SAEpC,GAAIyO,EAAciO,GACvB,IAAK,IAAInb,KAAOmb,EAAQ,CACtB,IAAI9N,EAAM8N,EAAOnb,GACjByb,EAAWzb,GAAOkN,EAAcG,GAC5BuC,EAAO,CAAEtJ,KAAMtG,GAAOqN,GACtB,CAAE/G,KAAM+G,QAEL,GAYb,SAASqO,GAAqB7T,GAC5B,IAAI8T,EAAO9T,EAAQ+T,WACnB,GAAID,EACF,IAAK,IAAI3b,KAAO2b,EAAM,CACpB,IAAIE,EAASF,EAAK3b,GACI,oBAAX6b,IACTF,EAAK3b,GAAO,CAAEC,KAAM4b,EAAQjG,OAAQiG,KAoB5C,SAASC,GACPjF,EACAU,EACAgD,GAkBA,GAZqB,oBAAVhD,IACTA,EAAQA,EAAM1P,SAGhB0T,GAAehE,EAAOgD,GACtBiB,GAAgBjE,EAAOgD,GACvBmB,GAAoBnE,IAMfA,EAAMwE,QACLxE,EAAMyE,UACRnF,EAASiF,GAAajF,EAAQU,EAAMyE,QAASzB,IAE3ChD,EAAM0E,QACR,IAAK,IAAIxd,EAAI,EAAGC,EAAI6Y,EAAM0E,OAAOjb,OAAQvC,EAAIC,EAAGD,IAC9CoY,EAASiF,GAAajF,EAAQU,EAAM0E,OAAOxd,GAAI8b,GAKrD,IACIva,EADA6H,EAAU,GAEd,IAAK7H,KAAO6W,EACVqF,EAAWlc,GAEb,IAAKA,KAAOuX,EACL/I,EAAOqI,EAAQ7W,IAClBkc,EAAWlc,GAGf,SAASkc,EAAYlc,GACnB,IAAImc,EAAQnC,GAAOha,IAAQsb,GAC3BzT,EAAQ7H,GAAOmc,EAAMtF,EAAO7W,GAAMuX,EAAMvX,GAAMua,EAAIva,GAEpD,OAAO6H,EAQT,SAASuU,GACPvU,EACAkT,EACA3F,EACAiH,GAGA,GAAkB,kBAAPjH,EAAX,CAGA,IAAIkH,EAASzU,EAAQkT,GAErB,GAAIvM,EAAO8N,EAAQlH,GAAO,OAAOkH,EAAOlH,GACxC,IAAImH,EAAc1N,EAASuG,GAC3B,GAAI5G,EAAO8N,EAAQC,GAAgB,OAAOD,EAAOC,GACjD,IAAIC,EAAexN,EAAWuN,GAC9B,GAAI/N,EAAO8N,EAAQE,GAAiB,OAAOF,EAAOE,GAElD,IAAIxM,EAAMsM,EAAOlH,IAAOkH,EAAOC,IAAgBD,EAAOE,GAOtD,OAAOxM,GAOT,SAASyM,GACPzc,EACA0c,EACAC,EACApC,GAEA,IAAIqC,EAAOF,EAAY1c,GACnB6c,GAAUrO,EAAOmO,EAAW3c,GAC5BN,EAAQid,EAAU3c,GAElB8c,EAAeC,GAAa7V,QAAS0V,EAAK7B,MAC9C,GAAI+B,GAAgB,EAClB,GAAID,IAAWrO,EAAOoO,EAAM,WAC1Bld,GAAQ,OACH,GAAc,KAAVA,GAAgBA,IAAUyP,EAAUnP,GAAM,CAGnD,IAAIgd,EAAcD,GAAanc,OAAQgc,EAAK7B,OACxCiC,EAAc,GAAKF,EAAeE,KACpCtd,GAAQ,GAKd,QAAcuB,IAAVvB,EAAqB,CACvBA,EAAQud,GAAoB1C,EAAIqC,EAAM5c,GAGtC,IAAIkd,EAAoBxE,GACxBC,IAAgB,GAChBQ,GAAQzZ,GACRiZ,GAAgBuE,GASlB,OAAOxd,EAMT,SAASud,GAAqB1C,EAAIqC,EAAM5c,GAEtC,GAAKwO,EAAOoO,EAAM,WAAlB,CAGA,IAAIpK,EAAMoK,EAAKO,QAYf,OAAI5C,GAAMA,EAAG6C,SAAST,gBACW1b,IAA/BsZ,EAAG6C,SAAST,UAAU3c,SACHiB,IAAnBsZ,EAAG8C,OAAOrd,GAEHua,EAAG8C,OAAOrd,GAIG,oBAARwS,GAA6C,aAAvB8K,GAAQV,EAAK7B,MAC7CvI,EAAI5T,KAAK2b,GACT/H,GAsFN,IAAI+K,GAAsB,qBAO1B,SAASD,GAASxc,GAChB,IAAI+S,EAAQ/S,GAAMA,EAAGyB,WAAWsR,MAAM0J,IACtC,OAAO1J,EAAQA,EAAM,GAAK,GAG5B,SAAS2J,GAAYtc,EAAGC,GACtB,OAAOmc,GAAQpc,KAAOoc,GAAQnc,GAGhC,SAAS4b,GAAchC,EAAM0C,GAC3B,IAAKpX,MAAMsH,QAAQ8P,GACjB,OAAOD,GAAWC,EAAe1C,GAAQ,GAAK,EAEhD,IAAK,IAAItc,EAAI,EAAG0Z,EAAMsF,EAAczc,OAAQvC,EAAI0Z,EAAK1Z,IACnD,GAAI+e,GAAWC,EAAchf,GAAIsc,GAC/B,OAAOtc,EAGX,OAAQ,EAiDV,SAASif,GAAaC,EAAKpD,EAAIqD,GAG7B9H,KACA,IACE,GAAIyE,EAAI,CACN,IAAIsD,EAAMtD,EACV,MAAQsD,EAAMA,EAAIC,QAAU,CAC1B,IAAIlD,EAAQiD,EAAIT,SAASW,cACzB,GAAInD,EACF,IAAK,IAAInc,EAAI,EAAGA,EAAImc,EAAM5Z,OAAQvC,IAChC,IACE,IAAIuf,GAAgD,IAAtCpD,EAAMnc,GAAGG,KAAKif,EAAKF,EAAKpD,EAAIqD,GAC1C,GAAII,EAAW,OACf,MAAOtS,IACPuS,GAAkBvS,GAAGmS,EAAK,wBAMpCI,GAAkBN,EAAKpD,EAAIqD,GAC3B,QACA7H,MAIJ,SAASmI,GACPC,EACA7H,EACA1U,EACA2Y,EACAqD,GAEA,IAAI5N,EACJ,IACEA,EAAMpO,EAAOuc,EAAQ/c,MAAMkV,EAAS1U,GAAQuc,EAAQvf,KAAK0X,GACrDtG,IAAQA,EAAIsJ,QAAU7L,EAAUuC,KAASA,EAAIoO,WAC/CpO,EAAItC,OAAM,SAAUhC,GAAK,OAAOgS,GAAYhS,EAAG6O,EAAIqD,EAAO,uBAG1D5N,EAAIoO,UAAW,GAEjB,MAAO1S,IACPgS,GAAYhS,GAAG6O,EAAIqD,GAErB,OAAO5N,EAGT,SAASiO,GAAmBN,EAAKpD,EAAIqD,GACnC,GAAIzZ,EAAOsN,aACT,IACE,OAAOtN,EAAOsN,aAAa7S,KAAK,KAAM+e,EAAKpD,EAAIqD,GAC/C,MAAOlS,IAGHA,KAAMiS,GACRU,GAAS3S,GAAG,KAAM,uBAIxB2S,GAASV,EAAKpD,EAAIqD,GAGpB,SAASS,GAAUV,EAAKpD,EAAIqD,GAK1B,IAAK3K,IAAaC,GAA8B,qBAAZoL,QAGlC,MAAMX,EAFNW,QAAQzb,MAAM8a,GAQlB,IAyBIY,GAzBAC,IAAmB,EAEnBC,GAAY,GACZC,IAAU,EAEd,SAASC,KACPD,IAAU,EACV,IAAIE,EAASH,GAAUld,MAAM,GAC7Bkd,GAAUzd,OAAS,EACnB,IAAK,IAAIvC,EAAI,EAAGA,EAAImgB,EAAO5d,OAAQvC,IACjCmgB,EAAOngB,KAwBX,GAAuB,qBAAZgG,SAA2B8P,GAAS9P,SAAU,CACvD,IAAIlE,GAAIkE,QAAQC,UAChB6Z,GAAY,WACVhe,GAAE0E,KAAK0Z,IAMHhL,IAASkL,WAAW5O,IAE1BuO,IAAmB,OACd,GAAKhL,IAAoC,qBAArBsL,mBACzBvK,GAASuK,mBAEuB,yCAAhCA,iBAAiBvc,WAoBjBgc,GAJiC,qBAAjBQ,cAAgCxK,GAASwK,cAI7C,WACVA,aAAaJ,KAIH,WACVE,WAAWF,GAAgB,QAzB5B,CAID,IAAIK,GAAU,EACVC,GAAW,IAAIH,iBAAiBH,IAChCO,GAAWC,SAASC,eAAexe,OAAOoe,KAC9CC,GAAS9F,QAAQ+F,GAAU,CACzBG,eAAe,IAEjBd,GAAY,WACVS,IAAWA,GAAU,GAAK,EAC1BE,GAAS3Z,KAAO3E,OAAOoe,KAEzBR,IAAmB,EAerB,SAASc,GAAUC,EAAIlQ,GACrB,IAAImQ,EAiBJ,GAhBAf,GAAUzZ,MAAK,WACb,GAAIua,EACF,IACEA,EAAG3gB,KAAKyQ,GACR,MAAO3D,IACPgS,GAAYhS,GAAG2D,EAAK,iBAEbmQ,GACTA,EAASnQ,MAGRqP,KACHA,IAAU,EACVH,OAGGgB,GAAyB,qBAAZ9a,QAChB,OAAO,IAAIA,SAAQ,SAAUC,GAC3B8a,EAAW9a,KAiGjB,IAAI+a,GAAc,IAAIhL,GAOtB,SAASiL,GAAUrS,GACjBsS,GAAUtS,EAAKoS,IACfA,GAAYzK,QAGd,SAAS2K,GAAWtS,EAAKuS,GACvB,IAAInhB,EAAGoS,EACHgP,EAAMxZ,MAAMsH,QAAQN,GACxB,MAAMwS,IAAQve,EAAS+L,IAASlO,OAAO2gB,SAASzS,IAAQA,aAAe4I,IAAvE,CAGA,GAAI5I,EAAIiL,OAAQ,CACd,IAAIyH,EAAQ1S,EAAIiL,OAAOE,IAAIpD,GAC3B,GAAIwK,EAAK1c,IAAI6c,GACX,OAEFH,EAAK7K,IAAIgL,GAEX,GAAIF,EAAK,CACPphB,EAAI4O,EAAIrM,OACR,MAAOvC,IAAOkhB,GAAUtS,EAAI5O,GAAImhB,OAC3B,CACL/O,EAAO1R,OAAO0R,KAAKxD,GACnB5O,EAAIoS,EAAK7P,OACT,MAAOvC,IAAOkhB,GAAUtS,EAAIwD,EAAKpS,IAAKmhB,KA6B1C,IAAII,GAAiBvR,GAAO,SAAUzP,GACpC,IAAIihB,EAA6B,MAAnBjhB,EAAKiQ,OAAO,GAC1BjQ,EAAOihB,EAAUjhB,EAAKuC,MAAM,GAAKvC,EACjC,IAAIkhB,EAA6B,MAAnBlhB,EAAKiQ,OAAO,GAC1BjQ,EAAOkhB,EAAUlhB,EAAKuC,MAAM,GAAKvC,EACjC,IAAIgf,EAA6B,MAAnBhf,EAAKiQ,OAAO,GAE1B,OADAjQ,EAAOgf,EAAUhf,EAAKuC,MAAM,GAAKvC,EAC1B,CACLA,KAAMA,EACNgS,KAAMkP,EACNlC,QAASA,EACTiC,QAASA,MAIb,SAASE,GAAiBC,EAAK7F,GAC7B,SAAS8F,IACP,IAAIC,EAAcjf,UAEd+e,EAAMC,EAAQD,IAClB,IAAI/Z,MAAMsH,QAAQyS,GAOhB,OAAOlC,GAAwBkC,EAAK,KAAM/e,UAAWkZ,EAAI,gBALzD,IADA,IAAIzC,EAASsI,EAAI7e,QACR9C,EAAI,EAAGA,EAAIqZ,EAAO9W,OAAQvC,IACjCyf,GAAwBpG,EAAOrZ,GAAI,KAAM6hB,EAAa/F,EAAI,gBAQhE,OADA8F,EAAQD,IAAMA,EACPC,EAGT,SAASE,GACPC,EACAC,EACA1L,EACA2L,EACAC,EACApG,GAEA,IAAIvb,EAAc6e,EAAK+C,EAAKC,EAC5B,IAAK7hB,KAAQwhB,EACF3C,EAAM2C,EAAGxhB,GAClB4hB,EAAMH,EAAMzhB,GACZ6hB,EAAQb,GAAehhB,GACnB0N,EAAQmR,KAKDnR,EAAQkU,IACblU,EAAQmR,EAAIuC,OACdvC,EAAM2C,EAAGxhB,GAAQmhB,GAAgBtC,EAAKtD,IAEpC1N,EAAOgU,EAAM7P,QACf6M,EAAM2C,EAAGxhB,GAAQ2hB,EAAkBE,EAAM7hB,KAAM6e,EAAKgD,EAAM7C,UAE5DjJ,EAAI8L,EAAM7hB,KAAM6e,EAAKgD,EAAM7C,QAAS6C,EAAMZ,QAASY,EAAMzb,SAChDyY,IAAQ+C,IACjBA,EAAIR,IAAMvC,EACV2C,EAAGxhB,GAAQ4hB,IAGf,IAAK5hB,KAAQyhB,EACP/T,EAAQ8T,EAAGxhB,MACb6hB,EAAQb,GAAehhB,GACvB0hB,EAAUG,EAAM7hB,KAAMyhB,EAAMzhB,GAAO6hB,EAAM7C,UAO/C,SAAS8C,GAAgBtO,EAAKuO,EAASjG,GAIrC,IAAIuF,EAHA7N,aAAeyD,KACjBzD,EAAMA,EAAIjN,KAAKuV,OAAStI,EAAIjN,KAAKuV,KAAO,KAG1C,IAAIkG,EAAUxO,EAAIuO,GAElB,SAASE,IACPnG,EAAK1Z,MAAMY,KAAMX,WAGjB+M,EAAOiS,EAAQD,IAAKa,GAGlBvU,EAAQsU,GAEVX,EAAUF,GAAgB,CAACc,IAGvBrU,EAAMoU,EAAQZ,MAAQvT,EAAOmU,EAAQE,SAEvCb,EAAUW,EACVX,EAAQD,IAAIpb,KAAKic,IAGjBZ,EAAUF,GAAgB,CAACa,EAASC,IAIxCZ,EAAQa,QAAS,EACjB1O,EAAIuO,GAAWV,EAKjB,SAASc,GACP5b,EACAiP,EACA0B,GAKA,IAAIwG,EAAclI,EAAK3M,QAAQoT,MAC/B,IAAIvO,EAAQgQ,GAAZ,CAGA,IAAI1M,EAAM,GACNoR,EAAQ7b,EAAK6b,MACbnG,EAAQ1V,EAAK0V,MACjB,GAAIrO,EAAMwU,IAAUxU,EAAMqO,GACxB,IAAK,IAAIjb,KAAO0c,EAAa,CAC3B,IAAI2E,EAASlS,EAAUnP,GAiBvBshB,GAAUtR,EAAKiL,EAAOjb,EAAKqhB,GAAQ,IACnCC,GAAUtR,EAAKoR,EAAOphB,EAAKqhB,GAAQ,GAGvC,OAAOrR,GAGT,SAASsR,GACPtR,EACAuR,EACAvhB,EACAqhB,EACAG,GAEA,GAAI5U,EAAM2U,GAAO,CACf,GAAI/S,EAAO+S,EAAMvhB,GAKf,OAJAgQ,EAAIhQ,GAAOuhB,EAAKvhB,GACXwhB,UACID,EAAKvhB,IAEP,EACF,GAAIwO,EAAO+S,EAAMF,GAKtB,OAJArR,EAAIhQ,GAAOuhB,EAAKF,GACXG,UACID,EAAKF,IAEP,EAGX,OAAO,EAiBT,SAASI,GAAyBtL,GAChC,IAAK,IAAI1X,EAAI,EAAGA,EAAI0X,EAASnV,OAAQvC,IACnC,GAAI4H,MAAMsH,QAAQwI,EAAS1X,IACzB,OAAO4H,MAAMhG,UAAU8B,OAAOf,MAAM,GAAI+U,GAG5C,OAAOA,EAOT,SAASuL,GAAmBvL,GAC1B,OAAOpJ,EAAYoJ,GACf,CAACwB,GAAgBxB,IACjB9P,MAAMsH,QAAQwI,GACZwL,GAAuBxL,QACvBlV,EAGR,SAAS2gB,GAAYlK,GACnB,OAAO9K,EAAM8K,IAAS9K,EAAM8K,EAAKtB,OAAStJ,EAAQ4K,EAAKT,WAGzD,SAAS0K,GAAwBxL,EAAU0L,GACzC,IACIpjB,EAAGK,EAAGgjB,EAAWC,EADjB/R,EAAM,GAEV,IAAKvR,EAAI,EAAGA,EAAI0X,EAASnV,OAAQvC,IAC/BK,EAAIqX,EAAS1X,GACTiO,EAAQ5N,IAAmB,mBAANA,IACzBgjB,EAAY9R,EAAIhP,OAAS,EACzB+gB,EAAO/R,EAAI8R,GAEPzb,MAAMsH,QAAQ7O,GACZA,EAAEkC,OAAS,IACblC,EAAI6iB,GAAuB7iB,GAAK+iB,GAAe,IAAM,IAAMpjB,GAEvDmjB,GAAW9iB,EAAE,KAAO8iB,GAAWG,KACjC/R,EAAI8R,GAAanK,GAAgBoK,EAAK3L,KAAQtX,EAAE,GAAIsX,MACpDtX,EAAEoG,SAEJ8K,EAAIhL,KAAK5D,MAAM4O,EAAKlR,IAEbiO,EAAYjO,GACjB8iB,GAAWG,GAIb/R,EAAI8R,GAAanK,GAAgBoK,EAAK3L,KAAOtX,GAC9B,KAANA,GAETkR,EAAIhL,KAAK2S,GAAgB7Y,IAGvB8iB,GAAW9iB,IAAM8iB,GAAWG,GAE9B/R,EAAI8R,GAAanK,GAAgBoK,EAAK3L,KAAOtX,EAAEsX,OAG3CvJ,EAAOsJ,EAAS6L,WAClBpV,EAAM9N,EAAEoX,MACRxJ,EAAQ5N,EAAEkB,MACV4M,EAAMiV,KACN/iB,EAAEkB,IAAM,UAAY6hB,EAAc,IAAMpjB,EAAI,MAE9CuR,EAAIhL,KAAKlG,KAIf,OAAOkR,EAKT,SAASiS,GAAa1H,GACpB,IAAIc,EAAUd,EAAG6C,SAAS/B,QACtBA,IACFd,EAAG2H,UAA+B,oBAAZ7G,EAClBA,EAAQzc,KAAK2b,GACbc,GAIR,SAAS8G,GAAgB5H,GACvB,IAAI7S,EAAS0a,GAAc7H,EAAG6C,SAASjC,OAAQZ,GAC3C7S,IACFiR,IAAgB,GAChBxZ,OAAO0R,KAAKnJ,GAAQ/C,SAAQ,SAAU3E,GAYlCuZ,GAAkBgB,EAAIva,EAAK0H,EAAO1H,OAGtC2Y,IAAgB,IAIpB,SAASyJ,GAAejH,EAAQZ,GAC9B,GAAIY,EAAQ,CAOV,IALA,IAAIzT,EAASvI,OAAOY,OAAO,MACvB8Q,EAAO6D,GACPC,QAAQC,QAAQuG,GAChBhc,OAAO0R,KAAKsK,GAEP1c,EAAI,EAAGA,EAAIoS,EAAK7P,OAAQvC,IAAK,CACpC,IAAIuB,EAAM6Q,EAAKpS,GAEf,GAAY,WAARuB,EAAJ,CACA,IAAIqiB,EAAalH,EAAOnb,GAAKsG,KACzB6C,EAASoR,EACb,MAAOpR,EAAQ,CACb,GAAIA,EAAO+Y,WAAa1T,EAAOrF,EAAO+Y,UAAWG,GAAa,CAC5D3a,EAAO1H,GAAOmJ,EAAO+Y,UAAUG,GAC/B,MAEFlZ,EAASA,EAAO2U,QAElB,IAAK3U,EACH,GAAI,YAAagS,EAAOnb,GAAM,CAC5B,IAAIsiB,EAAiBnH,EAAOnb,GAAKmd,QACjCzV,EAAO1H,GAAiC,oBAAnBsiB,EACjBA,EAAe1jB,KAAK2b,GACpB+H,OACK,GAKf,OAAO5a,GAWX,SAAS6a,GACPpM,EACAG,GAEA,IAAKH,IAAaA,EAASnV,OACzB,MAAO,GAGT,IADA,IAAIwhB,EAAQ,GACH/jB,EAAI,EAAGC,EAAIyX,EAASnV,OAAQvC,EAAIC,EAAGD,IAAK,CAC/C,IAAI8Y,EAAQpB,EAAS1X,GACjB8G,EAAOgS,EAAMhS,KAOjB,GALIA,GAAQA,EAAK6b,OAAS7b,EAAK6b,MAAMqB,aAC5Bld,EAAK6b,MAAMqB,KAIflL,EAAMjB,UAAYA,GAAWiB,EAAMd,YAAcH,IACpD/Q,GAAqB,MAAbA,EAAKkd,MAUZD,EAAMrF,UAAYqF,EAAMrF,QAAU,KAAKnY,KAAKuS,OAT7C,CACA,IAAIvY,EAAOuG,EAAKkd,KACZA,EAAQD,EAAMxjB,KAAUwjB,EAAMxjB,GAAQ,IACxB,aAAduY,EAAMrB,IACRuM,EAAKzd,KAAK5D,MAAMqhB,EAAMlL,EAAMpB,UAAY,IAExCsM,EAAKzd,KAAKuS,IAOhB,IAAK,IAAImL,KAAUF,EACbA,EAAME,GAAQjS,MAAMkS,YACfH,EAAME,GAGjB,OAAOF,EAGT,SAASG,GAAcjL,GACrB,OAAQA,EAAKT,YAAcS,EAAKlB,cAA+B,MAAdkB,EAAKtB,KAKxD,SAASiB,GAAoBK,GAC3B,OAAOA,EAAKT,WAAaS,EAAKlB,aAKhC,SAASoM,GACPJ,EACAK,EACAC,GAEA,IAAI9S,EACA+S,EAAiB5jB,OAAO0R,KAAKgS,GAAa7hB,OAAS,EACnDgiB,EAAWR,IAAUA,EAAMS,SAAWF,EACtC/iB,EAAMwiB,GAASA,EAAMU,KACzB,GAAKV,EAEE,IAAIA,EAAMW,YAEf,OAAOX,EAAMW,YACR,GACLH,GACAF,GACAA,IAActW,GACdxM,IAAQ8iB,EAAUI,OACjBH,IACAD,EAAUM,WAIX,OAAON,EAGP,IAAK,IAAI9H,KADThL,EAAM,GACYwS,EACZA,EAAMxH,IAAuB,MAAbA,EAAM,KACxBhL,EAAIgL,GAASqI,GAAoBR,EAAa7H,EAAOwH,EAAMxH,UAnB/DhL,EAAM,GAwBR,IAAK,IAAIsT,KAAST,EACVS,KAAStT,IACbA,EAAIsT,GAASC,GAAgBV,EAAaS,IAW9C,OANId,GAASrjB,OAAOka,aAAamJ,KAC/B,EAAQW,YAAcnT,GAExBwC,EAAIxC,EAAK,UAAWgT,GACpBxQ,EAAIxC,EAAK,OAAQhQ,GACjBwS,EAAIxC,EAAK,aAAc+S,GAChB/S,EAGT,SAASqT,GAAoBR,EAAa7iB,EAAKc,GAC7C,IAAI2a,EAAa,WACf,IAAIzL,EAAM3O,UAAUL,OAASF,EAAGM,MAAM,KAAMC,WAAaP,EAAG,IAC5DkP,EAAMA,GAAsB,kBAARA,IAAqB3J,MAAMsH,QAAQqC,GACnD,CAACA,GACD0R,GAAkB1R,GACtB,IAAI6H,EAAQ7H,GAAOA,EAAI,GACvB,OAAOA,KACJ6H,GACe,IAAf7H,EAAIhP,QAAgB6W,EAAMZ,YAAcI,GAAmBQ,SAC1D5W,EACA+O,GAYN,OAPIlP,EAAG0iB,OACLrkB,OAAOC,eAAeyjB,EAAa7iB,EAAK,CACtCV,IAAKmc,EACLpc,YAAY,EACZiN,cAAc,IAGXmP,EAGT,SAAS8H,GAAgBf,EAAOxiB,GAC9B,OAAO,WAAc,OAAOwiB,EAAMxiB,IAQpC,SAASyjB,GACPpW,EACAqW,GAEA,IAAI/T,EAAKlR,EAAGC,EAAGmS,EAAM7Q,EACrB,GAAIqG,MAAMsH,QAAQN,IAAuB,kBAARA,EAE/B,IADAsC,EAAM,IAAItJ,MAAMgH,EAAIrM,QACfvC,EAAI,EAAGC,EAAI2O,EAAIrM,OAAQvC,EAAIC,EAAGD,IACjCkR,EAAIlR,GAAKilB,EAAOrW,EAAI5O,GAAIA,QAErB,GAAmB,kBAAR4O,EAEhB,IADAsC,EAAM,IAAItJ,MAAMgH,GACX5O,EAAI,EAAGA,EAAI4O,EAAK5O,IACnBkR,EAAIlR,GAAKilB,EAAOjlB,EAAI,EAAGA,QAEpB,GAAI6C,EAAS+L,GAClB,GAAIqH,IAAarH,EAAI7N,OAAOsI,UAAW,CACrC6H,EAAM,GACN,IAAI7H,EAAWuF,EAAI7N,OAAOsI,YACtBJ,EAASI,EAAS3B,OACtB,OAAQuB,EAAOtB,KACbuJ,EAAI3K,KAAK0e,EAAOhc,EAAOhI,MAAOiQ,EAAI3O,SAClC0G,EAASI,EAAS3B,YAKpB,IAFA0K,EAAO1R,OAAO0R,KAAKxD,GACnBsC,EAAM,IAAItJ,MAAMwK,EAAK7P,QAChBvC,EAAI,EAAGC,EAAImS,EAAK7P,OAAQvC,EAAIC,EAAGD,IAClCuB,EAAM6Q,EAAKpS,GACXkR,EAAIlR,GAAKilB,EAAOrW,EAAIrN,GAAMA,EAAKvB,GAQrC,OAJKmO,EAAM+C,KACTA,EAAM,IAER,EAAMqS,UAAW,EACVrS,EAQT,SAASgU,GACP3kB,EACA4kB,EACA3I,EACA4I,GAEA,IACIC,EADAC,EAAe/hB,KAAKgiB,aAAahlB,GAEjC+kB,GAEF9I,EAAQA,GAAS,GACb4I,IAIF5I,EAAQrL,EAAOA,EAAO,GAAIiU,GAAa5I,IAEzC6I,EACEC,EAAa9I,KACc,oBAAnB2I,EAAgCA,IAAmBA,IAE7DE,EACE9hB,KAAKiiB,OAAOjlB,KACe,oBAAnB4kB,EAAgCA,IAAmBA,GAG/D,IAAIva,EAAS4R,GAASA,EAAMwH,KAC5B,OAAIpZ,EACKrH,KAAKkiB,eAAe,WAAY,CAAEzB,KAAMpZ,GAAUya,GAElDA,EASX,SAASK,GAAe/O,GACtB,OAAOgH,GAAapa,KAAKob,SAAU,UAAWhI,GAAI,IAASjF,EAK7D,SAASiU,GAAeC,EAAQC,GAC9B,OAAIje,MAAMsH,QAAQ0W,IACmB,IAA5BA,EAAO/V,QAAQgW,GAEfD,IAAWC,EAStB,SAASC,GACPC,EACAxkB,EACAykB,EACAC,EACAC,GAEA,IAAIC,EAAgBzgB,EAAOyN,SAAS5R,IAAQykB,EAC5C,OAAIE,GAAkBD,IAAiBvgB,EAAOyN,SAAS5R,GAC9CokB,GAAcO,EAAgBD,GAC5BE,EACFR,GAAcQ,EAAeJ,GAC3BE,EACFvV,EAAUuV,KAAkB1kB,OAEbiB,IAAjBujB,EAQT,SAASK,GACPtf,EACA2Q,EACAxW,EACAolB,EACAC,GAEA,GAAIrlB,EACF,GAAK4B,EAAS5B,GAKP,CAIL,IAAI6hB,EAHAlb,MAAMsH,QAAQjO,KAChBA,EAAQqQ,EAASrQ,IAGnB,IAAIslB,EAAO,SAAWhlB,GACpB,GACU,UAARA,GACQ,UAARA,GACAmO,EAAoBnO,GAEpBuhB,EAAOhc,MACF,CACL,IAAIwV,EAAOxV,EAAK6b,OAAS7b,EAAK6b,MAAMrG,KACpCwG,EAAOuD,GAAU3gB,EAAO+N,YAAYgE,EAAK6E,EAAM/a,GAC3CuF,EAAK0f,WAAa1f,EAAK0f,SAAW,IAClC1f,EAAK6b,QAAU7b,EAAK6b,MAAQ,IAElC,IAAI8D,EAAerW,EAAS7O,GACxBmlB,EAAgBhW,EAAUnP,GAC9B,KAAMklB,KAAgB3D,MAAW4D,KAAiB5D,KAChDA,EAAKvhB,GAAON,EAAMM,GAEd+kB,GAAQ,CACV,IAAIvE,EAAKjb,EAAKib,KAAOjb,EAAKib,GAAK,IAC/BA,EAAI,UAAYxgB,GAAQ,SAAUolB,GAChC1lB,EAAMM,GAAOolB,KAMrB,IAAK,IAAIplB,KAAON,EAAOslB,EAAMhlB,QAGjC,OAAOuF,EAQT,SAAS8f,GACPrd,EACAsd,GAEA,IAAI7W,EAASzM,KAAKujB,eAAiBvjB,KAAKujB,aAAe,IACnDC,EAAO/W,EAAOzG,GAGlB,OAAIwd,IAASF,IAIbE,EAAO/W,EAAOzG,GAAShG,KAAKob,SAASqI,gBAAgBzd,GAAOpJ,KAC1DoD,KAAK0jB,aACL,KACA1jB,MAEF2jB,GAAWH,EAAO,aAAexd,GAAQ,IARhCwd,EAgBX,SAASI,GACPJ,EACAxd,EACAhI,GAGA,OADA2lB,GAAWH,EAAO,WAAaxd,GAAShI,EAAO,IAAMA,EAAO,KAAM,GAC3DwlB,EAGT,SAASG,GACPH,EACAxlB,EACAmX,GAEA,GAAI9Q,MAAMsH,QAAQ6X,GAChB,IAAK,IAAI/mB,EAAI,EAAGA,EAAI+mB,EAAKxkB,OAAQvC,IAC3B+mB,EAAK/mB,IAAyB,kBAAZ+mB,EAAK/mB,IACzBonB,GAAeL,EAAK/mB,GAAKuB,EAAM,IAAMvB,EAAI0Y,QAI7C0O,GAAeL,EAAMxlB,EAAKmX,GAI9B,SAAS0O,GAAgBnO,EAAM1X,EAAKmX,GAClCO,EAAKX,UAAW,EAChBW,EAAK1X,IAAMA,EACX0X,EAAKP,OAASA,EAKhB,SAAS2O,GAAqBvgB,EAAM7F,GAClC,GAAIA,EACF,GAAKwN,EAAcxN,GAKZ,CACL,IAAI8gB,EAAKjb,EAAKib,GAAKjb,EAAKib,GAAK5Q,EAAO,GAAIrK,EAAKib,IAAM,GACnD,IAAK,IAAIxgB,KAAON,EAAO,CACrB,IAAIqmB,EAAWvF,EAAGxgB,GACdgmB,EAAOtmB,EAAMM,GACjBwgB,EAAGxgB,GAAO+lB,EAAW,GAAG5jB,OAAO4jB,EAAUC,GAAQA,QAIvD,OAAOzgB,EAKT,SAAS0gB,GACP7F,EACApQ,EAEAkW,EACAC,GAEAnW,EAAMA,GAAO,CAAEiT,SAAUiD,GACzB,IAAK,IAAIznB,EAAI,EAAGA,EAAI2hB,EAAIpf,OAAQvC,IAAK,CACnC,IAAIgkB,EAAOrC,EAAI3hB,GACX4H,MAAMsH,QAAQ8U,GAChBwD,GAAmBxD,EAAMzS,EAAKkW,GACrBzD,IAELA,EAAKe,QACPf,EAAK3hB,GAAG0iB,OAAQ,GAElBxT,EAAIyS,EAAKziB,KAAOyiB,EAAK3hB,IAMzB,OAHIqlB,IACF,EAAMjD,KAAOiD,GAERnW,EAKT,SAASoW,GAAiBC,EAASC,GACjC,IAAK,IAAI7nB,EAAI,EAAGA,EAAI6nB,EAAOtlB,OAAQvC,GAAK,EAAG,CACzC,IAAIuB,EAAMsmB,EAAO7nB,GACE,kBAARuB,GAAoBA,IAC7BqmB,EAAQC,EAAO7nB,IAAM6nB,EAAO7nB,EAAI,IASpC,OAAO4nB,EAMT,SAASE,GAAiB7mB,EAAO8mB,GAC/B,MAAwB,kBAAV9mB,EAAqB8mB,EAAS9mB,EAAQA,EAKtD,SAAS+mB,GAAsBpd,GAC7BA,EAAOqd,GAAKd,GACZvc,EAAOsd,GAAK/Y,EACZvE,EAAOud,GAAKrkB,EACZ8G,EAAOwd,GAAKpD,GACZpa,EAAOyd,GAAKnD,GACZta,EAAO0d,GAAK3W,EACZ/G,EAAO2d,GAAKjW,EACZ1H,EAAO4d,GAAK5B,GACZhc,EAAO6d,GAAK/C,GACZ9a,EAAO8d,GAAK5C,GACZlb,EAAO+d,GAAKvC,GACZxb,EAAOge,GAAK1P,GACZtO,EAAOie,GAAK7P,GACZpO,EAAOke,GAAKtB,GACZ5c,EAAOme,GAAK1B,GACZzc,EAAOoe,GAAKrB,GACZ/c,EAAOqe,GAAKnB,GAKd,SAASoB,GACPpiB,EACA0V,EACA9E,EACAU,EACArC,GAEA,IAKIoT,EALAC,EAAS7lB,KAET6F,EAAU2M,EAAK3M,QAIf2G,EAAOqI,EAAQ,SACjB+Q,EAAYzoB,OAAOY,OAAO8W,GAE1B+Q,EAAUE,UAAYjR,IAKtB+Q,EAAY/Q,EAEZA,EAASA,EAAOiR,WAElB,IAAIC,EAAalb,EAAOhF,EAAQmgB,WAC5BC,GAAqBF,EAEzB/lB,KAAKuD,KAAOA,EACZvD,KAAKiZ,MAAQA,EACbjZ,KAAKmU,SAAWA,EAChBnU,KAAK6U,OAASA,EACd7U,KAAKkmB,UAAY3iB,EAAKib,IAAMhU,EAC5BxK,KAAKmmB,WAAa/F,GAAcva,EAAQsT,OAAQtE,GAChD7U,KAAKwgB,MAAQ,WAOX,OANKqF,EAAO5D,QACVrB,GACErd,EAAK6iB,YACLP,EAAO5D,OAAS1B,GAAapM,EAAUU,IAGpCgR,EAAO5D,QAGhB9kB,OAAOC,eAAe4C,KAAM,cAAe,CACzC3C,YAAY,EACZC,IAAK,WACH,OAAOsjB,GAAqBrd,EAAK6iB,YAAapmB,KAAKwgB,YAKnDuF,IAEF/lB,KAAKob,SAAWvV,EAEhB7F,KAAKiiB,OAASjiB,KAAKwgB,QACnBxgB,KAAKgiB,aAAepB,GAAqBrd,EAAK6iB,YAAapmB,KAAKiiB,SAG9Dpc,EAAQwgB,SACVrmB,KAAKsmB,GAAK,SAAUpnB,EAAGC,EAAGrC,EAAGC,GAC3B,IAAI8Y,EAAQpS,GAAcmiB,EAAW1mB,EAAGC,EAAGrC,EAAGC,EAAGkpB,GAKjD,OAJIpQ,IAAUxR,MAAMsH,QAAQkK,KAC1BA,EAAMlB,UAAY9O,EAAQwgB,SAC1BxQ,EAAMpB,UAAYI,GAEbgB,GAGT7V,KAAKsmB,GAAK,SAAUpnB,EAAGC,EAAGrC,EAAGC,GAAK,OAAO0G,GAAcmiB,EAAW1mB,EAAGC,EAAGrC,EAAGC,EAAGkpB,IAMlF,SAASM,GACP/T,EACAmI,EACApX,EACAqiB,EACAzR,GAEA,IAAItO,EAAU2M,EAAK3M,QACfoT,EAAQ,GACRyB,EAAc7U,EAAQoT,MAC1B,GAAIrO,EAAM8P,GACR,IAAK,IAAI1c,KAAO0c,EACdzB,EAAMjb,GAAOyc,GAAazc,EAAK0c,EAAaC,GAAanQ,QAGvDI,EAAMrH,EAAK6b,QAAUoH,GAAWvN,EAAO1V,EAAK6b,OAC5CxU,EAAMrH,EAAK0V,QAAUuN,GAAWvN,EAAO1V,EAAK0V,OAGlD,IAAIwN,EAAgB,IAAId,GACtBpiB,EACA0V,EACA9E,EACAyR,EACApT,GAGEqD,EAAQhQ,EAAQ6b,OAAO9kB,KAAK,KAAM6pB,EAAcH,GAAIG,GAExD,GAAI5Q,aAAiB5B,GACnB,OAAOyS,GAA6B7Q,EAAOtS,EAAMkjB,EAAc5R,OAAQhP,EAAS4gB,GAC3E,GAAIpiB,MAAMsH,QAAQkK,GAAQ,CAG/B,IAFA,IAAI8Q,EAASjH,GAAkB7J,IAAU,GACrC7H,EAAM,IAAI3J,MAAMsiB,EAAO3nB,QAClBvC,EAAI,EAAGA,EAAIkqB,EAAO3nB,OAAQvC,IACjCuR,EAAIvR,GAAKiqB,GAA6BC,EAAOlqB,GAAI8G,EAAMkjB,EAAc5R,OAAQhP,EAAS4gB,GAExF,OAAOzY,GAIX,SAAS0Y,GAA8B7Q,EAAOtS,EAAMqiB,EAAW/f,EAAS4gB,GAItE,IAAIG,EAAQhR,GAAWC,GASvB,OARA+Q,EAAMnS,UAAYmR,EAClBgB,EAAMlS,UAAY7O,EAIdtC,EAAKkd,QACNmG,EAAMrjB,OAASqjB,EAAMrjB,KAAO,KAAKkd,KAAOld,EAAKkd,MAEzCmG,EAGT,SAASJ,GAAY3Y,EAAIvJ,GACvB,IAAK,IAAItG,KAAOsG,EACduJ,EAAGhB,EAAS7O,IAAQsG,EAAKtG,GA7D7BymB,GAAqBkB,GAAwBtnB,WA0E7C,IAAIwoB,GAAsB,CACxBC,KAAM,SAAejR,EAAOkR,GAC1B,GACElR,EAAMjB,oBACLiB,EAAMjB,kBAAkBoS,cACzBnR,EAAMtS,KAAK0jB,UACX,CAEA,IAAIC,EAAcrR,EAClBgR,GAAoBM,SAASD,EAAaA,OACrC,CACL,IAAI3R,EAAQM,EAAMjB,kBAAoBwS,GACpCvR,EACAwR,IAEF9R,EAAM+R,OAAOP,EAAYlR,EAAMxB,SAAMpV,EAAW8nB,KAIpDI,SAAU,SAAmBI,EAAU1R,GACrC,IAAIhQ,EAAUgQ,EAAMtB,iBAChBgB,EAAQM,EAAMjB,kBAAoB2S,EAAS3S,kBAC/C4S,GACEjS,EACA1P,EAAQ8U,UACR9U,EAAQqgB,UACRrQ,EACAhQ,EAAQsO,WAIZsT,OAAQ,SAAiB5R,GACvB,IAAIvB,EAAUuB,EAAMvB,QAChBM,EAAoBiB,EAAMjB,kBACzBA,EAAkB8S,aACrB9S,EAAkB8S,YAAa,EAC/BC,GAAS/S,EAAmB,YAE1BiB,EAAMtS,KAAK0jB,YACT3S,EAAQoT,WAMVE,GAAwBhT,GAExBiT,GAAuBjT,GAAmB,KAKhDkT,QAAS,SAAkBjS,GACzB,IAAIjB,EAAoBiB,EAAMjB,kBACzBA,EAAkBoS,eAChBnR,EAAMtS,KAAK0jB,UAGdc,GAAyBnT,GAAmB,GAF5CA,EAAkBoT,cAQtBC,GAAe9qB,OAAO0R,KAAKgY,IAE/B,SAASqB,GACP1V,EACAjP,EACA+Q,EACAH,EACAD,GAEA,IAAIxJ,EAAQ8H,GAAZ,CAIA,IAAI2V,EAAW7T,EAAQ8G,SAASrB,MAShC,GANIza,EAASkT,KACXA,EAAO2V,EAASva,OAAO4E,IAKL,oBAATA,EAAX,CAQA,IAAIgC,EACJ,GAAI9J,EAAQ8H,EAAK4V,OACf5T,EAAehC,EACfA,EAAO6V,GAAsB7T,EAAc2T,QAC9BlpB,IAATuT,GAIF,OAAO8V,GACL9T,EACAjR,EACA+Q,EACAH,EACAD,GAKN3Q,EAAOA,GAAQ,GAIfglB,GAA0B/V,GAGtB5H,EAAMrH,EAAKilB,QACbC,GAAejW,EAAK3M,QAAStC,GAI/B,IAAIoX,EAAYwE,GAA0B5b,EAAMiP,EAAM0B,GAGtD,GAAIrJ,EAAO2H,EAAK3M,QAAQ6iB,YACtB,OAAOnC,GAA0B/T,EAAMmI,EAAWpX,EAAM+Q,EAASH,GAKnE,IAAI+R,EAAY3iB,EAAKib,GAKrB,GAFAjb,EAAKib,GAAKjb,EAAKolB,SAEX9d,EAAO2H,EAAK3M,QAAQ+iB,UAAW,CAKjC,IAAInI,EAAOld,EAAKkd,KAChBld,EAAO,GACHkd,IACFld,EAAKkd,KAAOA,GAKhBoI,GAAsBtlB,GAGtB,IAAIvG,EAAOwV,EAAK3M,QAAQ7I,MAAQkX,EAC5B2B,EAAQ,IAAI5B,GACb,iBAAoBzB,EAAQ,KAAKxV,EAAQ,IAAMA,EAAQ,IACxDuG,OAAMtE,OAAWA,OAAWA,EAAWqV,EACvC,CAAE9B,KAAMA,EAAMmI,UAAWA,EAAWuL,UAAWA,EAAWhS,IAAKA,EAAKC,SAAUA,GAC9EK,GAGF,OAAOqB,IAGT,SAASuR,GAEPvR,EAEAhB,GAEA,IAAIhP,EAAU,CACZijB,cAAc,EACdC,aAAclT,EACdhB,OAAQA,GAGNmU,EAAiBnT,EAAMtS,KAAKylB,eAKhC,OAJIpe,EAAMoe,KACRnjB,EAAQ6b,OAASsH,EAAetH,OAChC7b,EAAQ4d,gBAAkBuF,EAAevF,iBAEpC,IAAI5N,EAAMtB,iBAAiB/B,KAAK3M,GAGzC,SAASgjB,GAAuBtlB,GAE9B,IADA,IAAIqV,EAAQrV,EAAKuV,OAASvV,EAAKuV,KAAO,IAC7Brc,EAAI,EAAGA,EAAIwrB,GAAajpB,OAAQvC,IAAK,CAC5C,IAAIuB,EAAMiqB,GAAaxrB,GACnBsnB,EAAWnL,EAAM5a,GACjBirB,EAAUpC,GAAoB7oB,GAC9B+lB,IAAakF,GAAalF,GAAYA,EAASmF,UACjDtQ,EAAM5a,GAAO+lB,EAAWoF,GAAYF,EAASlF,GAAYkF,IAK/D,SAASE,GAAaC,EAAIC,GACxB,IAAInK,EAAS,SAAUhgB,EAAGC,GAExBiqB,EAAGlqB,EAAGC,GACNkqB,EAAGnqB,EAAGC,IAGR,OADA+f,EAAOgK,SAAU,EACVhK,EAKT,SAASuJ,GAAgB5iB,EAAStC,GAChC,IAAIqX,EAAQ/U,EAAQ2iB,OAAS3iB,EAAQ2iB,MAAM5N,MAAS,QAChDiE,EAAShZ,EAAQ2iB,OAAS3iB,EAAQ2iB,MAAM3J,OAAU,SACpDtb,EAAK6b,QAAU7b,EAAK6b,MAAQ,KAAKxE,GAAQrX,EAAKilB,MAAM9qB,MACtD,IAAI8gB,EAAKjb,EAAKib,KAAOjb,EAAKib,GAAK,IAC3BuF,EAAWvF,EAAGK,GACdnb,EAAWH,EAAKilB,MAAM9kB,SACtBkH,EAAMmZ,IAEN1f,MAAMsH,QAAQoY,IACsB,IAAhCA,EAASzX,QAAQ5I,GACjBqgB,IAAargB,KAEjB8a,EAAGK,GAAS,CAACnb,GAAUvD,OAAO4jB,IAGhCvF,EAAGK,GAASnb,EAMhB,IAAI4lB,GAAmB,EACnBC,GAAmB,EAIvB,SAAS9lB,GACP6Q,EACAJ,EACA3Q,EACA4Q,EACAqV,EACAC,GAUA,OARIplB,MAAMsH,QAAQpI,IAASwH,EAAYxH,MACrCimB,EAAoBrV,EACpBA,EAAW5Q,EACXA,OAAOtE,GAEL4L,EAAO4e,KACTD,EAAoBD,IAEfG,GAAepV,EAASJ,EAAK3Q,EAAM4Q,EAAUqV,GAGtD,SAASE,GACPpV,EACAJ,EACA3Q,EACA4Q,EACAqV,GAEA,GAAI5e,EAAMrH,IAASqH,EAAM,EAAO0L,QAM9B,OAAOb,KAMT,GAHI7K,EAAMrH,IAASqH,EAAMrH,EAAKomB,MAC5BzV,EAAM3Q,EAAKomB,KAERzV,EAEH,OAAOuB,KA2BT,IAAII,EAAO/X,EAEL0U,GAdFnO,MAAMsH,QAAQwI,IACO,oBAAhBA,EAAS,KAEhB5Q,EAAOA,GAAQ,GACfA,EAAK6iB,YAAc,CAAEjL,QAAShH,EAAS,IACvCA,EAASnV,OAAS,GAEhBwqB,IAAsBD,GACxBpV,EAAWuL,GAAkBvL,GACpBqV,IAAsBF,KAC/BnV,EAAWsL,GAAwBtL,IAGlB,kBAARD,IAETpW,EAAMwW,EAAQsV,QAAUtV,EAAQsV,OAAO9rB,IAAOqE,EAAO6N,gBAAgBkE,GASnE2B,EARE1T,EAAO0N,cAAcqE,GAQf,IAAID,GACV9R,EAAO8N,qBAAqBiE,GAAM3Q,EAAM4Q,OACxClV,OAAWA,EAAWqV,GAEb/Q,GAASA,EAAKsmB,MAAQjf,EAAM4H,EAAO4H,GAAa9F,EAAQ8G,SAAU,aAAclH,IAOnF,IAAID,GACVC,EAAK3Q,EAAM4Q,OACXlV,OAAWA,EAAWqV,GAPhB4T,GAAgB1V,EAAMjP,EAAM+Q,EAASH,EAAUD,IAYzD2B,EAAQqS,GAAgBhU,EAAK3Q,EAAM+Q,EAASH,GAE9C,OAAI9P,MAAMsH,QAAQkK,GACTA,EACEjL,EAAMiL,IACXjL,EAAM9M,IAAOgsB,GAAQjU,EAAO/X,GAC5B8M,EAAMrH,IAASwmB,GAAqBxmB,GACjCsS,GAEAJ,KAIX,SAASqU,GAASjU,EAAO/X,EAAIksB,GAO3B,GANAnU,EAAM/X,GAAKA,EACO,kBAAd+X,EAAM3B,MAERpW,OAAKmB,EACL+qB,GAAQ,GAENpf,EAAMiL,EAAM1B,UACd,IAAK,IAAI1X,EAAI,EAAGC,EAAImZ,EAAM1B,SAASnV,OAAQvC,EAAIC,EAAGD,IAAK,CACrD,IAAI8Y,EAAQM,EAAM1B,SAAS1X,GACvBmO,EAAM2K,EAAMrB,OACdxJ,EAAQ6K,EAAMzX,KAAQ+M,EAAOmf,IAAwB,QAAdzU,EAAMrB,MAC7C4V,GAAQvU,EAAOzX,EAAIksB,IAS3B,SAASD,GAAsBxmB,GACzBjE,EAASiE,EAAK0mB,QAChBvM,GAASna,EAAK0mB,OAEZ3qB,EAASiE,EAAK2mB,QAChBxM,GAASna,EAAK2mB,OAMlB,SAASC,GAAY5R,GACnBA,EAAG6R,OAAS,KACZ7R,EAAGgL,aAAe,KAClB,IAAI1d,EAAU0S,EAAG6C,SACbiP,EAAc9R,EAAGqR,OAAS/jB,EAAQkjB,aAClCtC,EAAgB4D,GAAeA,EAAY/V,QAC/CiE,EAAG0J,OAAS1B,GAAa1a,EAAQykB,gBAAiB7D,GAClDlO,EAAGyJ,aAAexX,EAKlB+N,EAAG+N,GAAK,SAAUpnB,EAAGC,EAAGrC,EAAGC,GAAK,OAAO0G,GAAc8U,EAAIrZ,EAAGC,EAAGrC,EAAGC,GAAG,IAGrEwb,EAAG2J,eAAiB,SAAUhjB,EAAGC,EAAGrC,EAAGC,GAAK,OAAO0G,GAAc8U,EAAIrZ,EAAGC,EAAGrC,EAAGC,GAAG,IAIjF,IAAIwtB,EAAaF,GAAeA,EAAY9mB,KAW1CgU,GAAkBgB,EAAI,SAAUgS,GAAcA,EAAWnL,OAAS5U,EAAa,MAAM,GACrF+M,GAAkBgB,EAAI,aAAc1S,EAAQ2kB,kBAAoBhgB,EAAa,MAAM,GAIvF,IA4PInD,GA5PAojB,GAA2B,KAE/B,SAASC,GAAaC,GAEpBlG,GAAqBkG,EAAItsB,WAEzBssB,EAAItsB,UAAUusB,UAAY,SAAU9rB,GAClC,OAAOwe,GAASxe,EAAIkB,OAGtB2qB,EAAItsB,UAAUwsB,QAAU,WACtB,IAiBIhV,EAjBA0C,EAAKvY,KACL8qB,EAAMvS,EAAG6C,SACTsG,EAASoJ,EAAIpJ,OACbqH,EAAe+B,EAAI/B,aAEnBA,IACFxQ,EAAGyJ,aAAepB,GAChBmI,EAAaxlB,KAAK6iB,YAClB7N,EAAG0J,OACH1J,EAAGyJ,eAMPzJ,EAAGqR,OAASb,EAGZ,IAIE0B,GAA2BlS,EAC3B1C,EAAQ6L,EAAO9kB,KAAK2b,EAAGmL,aAAcnL,EAAG2J,gBACxC,MAAOxY,IACPgS,GAAYhS,GAAG6O,EAAI,UAYjB1C,EAAQ0C,EAAG6R,OAEb,QACAK,GAA2B,KAmB7B,OAhBIpmB,MAAMsH,QAAQkK,IAA2B,IAAjBA,EAAM7W,SAChC6W,EAAQA,EAAM,IAGVA,aAAiB5B,KAQrB4B,EAAQJ,MAGVI,EAAMhB,OAASkU,EACRlT,GAMX,SAASkV,GAAYC,EAAMC,GAOzB,OALED,EAAKntB,YACJ6U,IAA0C,WAA7BsY,EAAKxtB,OAAOC,gBAE1ButB,EAAOA,EAAK7P,SAEP7b,EAAS0rB,GACZC,EAAKrd,OAAOod,GACZA,EAGN,SAAS1C,GACP4C,EACA3nB,EACA+Q,EACAH,EACAD,GAEA,IAAIwB,EAAOD,KAGX,OAFAC,EAAKlB,aAAe0W,EACpBxV,EAAKN,UAAY,CAAE7R,KAAMA,EAAM+Q,QAASA,EAASH,SAAUA,EAAUD,IAAKA,GACnEwB,EAGT,SAAS2S,GACP6C,EACA/C,GAEA,GAAItd,EAAOqgB,EAAQrqB,QAAU+J,EAAMsgB,EAAQC,WACzC,OAAOD,EAAQC,UAGjB,GAAIvgB,EAAMsgB,EAAQE,UAChB,OAAOF,EAAQE,SAGjB,IAAIC,EAAQZ,GAMZ,GALIY,GAASzgB,EAAMsgB,EAAQI,UAA8C,IAAnCJ,EAAQI,OAAOhf,QAAQ+e,IAE3DH,EAAQI,OAAOtoB,KAAKqoB,GAGlBxgB,EAAOqgB,EAAQK,UAAY3gB,EAAMsgB,EAAQM,aAC3C,OAAON,EAAQM,YAGjB,GAAIH,IAAUzgB,EAAMsgB,EAAQI,QAAS,CACnC,IAAIA,EAASJ,EAAQI,OAAS,CAACD,GAC3BI,GAAO,EACPC,EAAe,KACfC,EAAe,KAElB,EAAQC,IAAI,kBAAkB,WAAc,OAAOxf,EAAOkf,EAAQD,MAEnE,IAAIQ,EAAc,SAAUC,GAC1B,IAAK,IAAIrvB,EAAI,EAAGC,EAAI4uB,EAAOtsB,OAAQvC,EAAIC,EAAGD,IACvC6uB,EAAO7uB,GAAIsvB,eAGVD,IACFR,EAAOtsB,OAAS,EACK,OAAjB0sB,IACFM,aAAaN,GACbA,EAAe,MAEI,OAAjBC,IACFK,aAAaL,GACbA,EAAe,QAKjBjpB,EAAUsM,GAAK,SAAUhB,GAE3Bkd,EAAQE,SAAWL,GAAW/c,EAAKma,GAG9BsD,EAGHH,EAAOtsB,OAAS,EAFhB6sB,GAAY,MAMZI,EAASjd,GAAK,SAAUkd,GAKtBthB,EAAMsgB,EAAQC,aAChBD,EAAQrqB,OAAQ,EAChBgrB,GAAY,OAIZ7d,EAAMkd,EAAQxoB,EAASupB,GA+C3B,OA7CI3sB,EAAS0O,KACPvC,EAAUuC,GAERtD,EAAQwgB,EAAQE,WAClBpd,EAAI/K,KAAKP,EAASupB,GAEXxgB,EAAUuC,EAAIme,aACvBne,EAAIme,UAAUlpB,KAAKP,EAASupB,GAExBrhB,EAAMoD,EAAInN,SACZqqB,EAAQC,UAAYJ,GAAW/c,EAAInN,MAAOsnB,IAGxCvd,EAAMoD,EAAIud,WACZL,EAAQM,YAAcT,GAAW/c,EAAIud,QAASpD,GAC5B,IAAdna,EAAIoe,MACNlB,EAAQK,SAAU,EAElBG,EAAe7O,YAAW,WACxB6O,EAAe,KACXhhB,EAAQwgB,EAAQE,WAAa1gB,EAAQwgB,EAAQrqB,SAC/CqqB,EAAQK,SAAU,EAClBM,GAAY,MAEb7d,EAAIoe,OAAS,MAIhBxhB,EAAMoD,EAAIrE,WACZgiB,EAAe9O,YAAW,WACxB8O,EAAe,KACXjhB,EAAQwgB,EAAQE,WAClBa,EAGM,QAGPje,EAAIrE,YAKb8hB,GAAO,EAEAP,EAAQK,QACXL,EAAQM,YACRN,EAAQE,UAMhB,SAASiB,GAAwBlY,GAC/B,GAAI9P,MAAMsH,QAAQwI,GAChB,IAAK,IAAI1X,EAAI,EAAGA,EAAI0X,EAASnV,OAAQvC,IAAK,CACxC,IAAIK,EAAIqX,EAAS1X,GACjB,GAAImO,EAAM9N,KAAO8N,EAAM9N,EAAEyX,mBAAqBc,GAAmBvY,IAC/D,OAAOA,GAUf,SAASwvB,GAAY/T,GACnBA,EAAGgU,QAAUpvB,OAAOY,OAAO,MAC3Bwa,EAAGiU,eAAgB,EAEnB,IAAItG,EAAY3N,EAAG6C,SAASoP,iBACxBtE,GACFuG,GAAyBlU,EAAI2N,GAMjC,SAASnT,GAAK8L,EAAO/f,GACnBuI,GAAOukB,IAAI/M,EAAO/f,GAGpB,SAAS4tB,GAAU7N,EAAO/f,GACxBuI,GAAOslB,KAAK9N,EAAO/f,GAGrB,SAAS6f,GAAmBE,EAAO/f,GACjC,IAAI8tB,EAAUvlB,GACd,OAAO,SAASwlB,IACd,IAAI7e,EAAMlP,EAAGM,MAAM,KAAMC,WACb,OAAR2O,GACF4e,EAAQD,KAAK9N,EAAOgO,IAK1B,SAASJ,GACPlU,EACA2N,EACA4G,GAEAzlB,GAASkR,EACTgG,GAAgB2H,EAAW4G,GAAgB,GAAI/Z,GAAK2Z,GAAU/N,GAAmBpG,GACjFlR,QAASpI,EAGX,SAAS8tB,GAAapC,GACpB,IAAIqC,EAAS,SACbrC,EAAItsB,UAAUutB,IAAM,SAAU/M,EAAO/f,GACnC,IAAIyZ,EAAKvY,KACT,GAAIqE,MAAMsH,QAAQkT,GAChB,IAAK,IAAIpiB,EAAI,EAAGC,EAAImiB,EAAM7f,OAAQvC,EAAIC,EAAGD,IACvC8b,EAAGqT,IAAI/M,EAAMpiB,GAAIqC,QAGlByZ,EAAGgU,QAAQ1N,KAAWtG,EAAGgU,QAAQ1N,GAAS,KAAK7b,KAAKlE,GAGjDkuB,EAAOruB,KAAKkgB,KACdtG,EAAGiU,eAAgB,GAGvB,OAAOjU,GAGToS,EAAItsB,UAAU4uB,MAAQ,SAAUpO,EAAO/f,GACrC,IAAIyZ,EAAKvY,KACT,SAASwe,IACPjG,EAAGoU,KAAK9N,EAAOL,GACf1f,EAAGM,MAAMmZ,EAAIlZ,WAIf,OAFAmf,EAAG1f,GAAKA,EACRyZ,EAAGqT,IAAI/M,EAAOL,GACPjG,GAGToS,EAAItsB,UAAUsuB,KAAO,SAAU9N,EAAO/f,GACpC,IAAIyZ,EAAKvY,KAET,IAAKX,UAAUL,OAEb,OADAuZ,EAAGgU,QAAUpvB,OAAOY,OAAO,MACpBwa,EAGT,GAAIlU,MAAMsH,QAAQkT,GAAQ,CACxB,IAAK,IAAIqO,EAAM,EAAGxwB,EAAImiB,EAAM7f,OAAQkuB,EAAMxwB,EAAGwwB,IAC3C3U,EAAGoU,KAAK9N,EAAMqO,GAAMpuB,GAEtB,OAAOyZ,EAGT,IASIgF,EATA4P,EAAM5U,EAAGgU,QAAQ1N,GACrB,IAAKsO,EACH,OAAO5U,EAET,IAAKzZ,EAEH,OADAyZ,EAAGgU,QAAQ1N,GAAS,KACbtG,EAIT,IAAI9b,EAAI0wB,EAAInuB,OACZ,MAAOvC,IAEL,GADA8gB,EAAK4P,EAAI1wB,GACL8gB,IAAOze,GAAMye,EAAGze,KAAOA,EAAI,CAC7BquB,EAAI5gB,OAAO9P,EAAG,GACd,MAGJ,OAAO8b,GAGToS,EAAItsB,UAAU+uB,MAAQ,SAAUvO,GAC9B,IAAItG,EAAKvY,KAaLmtB,EAAM5U,EAAGgU,QAAQ1N,GACrB,GAAIsO,EAAK,CACPA,EAAMA,EAAInuB,OAAS,EAAIyO,EAAQ0f,GAAOA,EAGtC,IAFA,IAAIvtB,EAAO6N,EAAQpO,UAAW,GAC1Buc,EAAO,sBAAyBiD,EAAQ,IACnCpiB,EAAI,EAAGC,EAAIywB,EAAInuB,OAAQvC,EAAIC,EAAGD,IACrCyf,GAAwBiR,EAAI1wB,GAAI8b,EAAI3Y,EAAM2Y,EAAIqD,GAGlD,OAAOrD,GAMX,IAAI8O,GAAiB,KAGrB,SAASgG,GAAkB9U,GACzB,IAAI+U,EAAqBjG,GAEzB,OADAA,GAAiB9O,EACV,WACL8O,GAAiBiG,GAIrB,SAASC,GAAehV,GACtB,IAAI1S,EAAU0S,EAAG6C,SAGbvG,EAAShP,EAAQgP,OACrB,GAAIA,IAAWhP,EAAQ+iB,SAAU,CAC/B,MAAO/T,EAAOuG,SAASwN,UAAY/T,EAAOiH,QACxCjH,EAASA,EAAOiH,QAElBjH,EAAO2Y,UAAUxqB,KAAKuV,GAGxBA,EAAGuD,QAAUjH,EACb0D,EAAGkV,MAAQ5Y,EAASA,EAAO4Y,MAAQlV,EAEnCA,EAAGiV,UAAY,GACfjV,EAAGmV,MAAQ,GAEXnV,EAAGoV,SAAW,KACdpV,EAAGqV,UAAY,KACfrV,EAAGsV,iBAAkB,EACrBtV,EAAGmP,YAAa,EAChBnP,EAAGyO,cAAe,EAClBzO,EAAGuV,mBAAoB,EAGzB,SAASC,GAAgBpD,GACvBA,EAAItsB,UAAU2vB,QAAU,SAAUnY,EAAOkR,GACvC,IAAIxO,EAAKvY,KACLiuB,EAAS1V,EAAG2V,IACZC,EAAY5V,EAAG6R,OACfgE,EAAwBf,GAAkB9U,GAC9CA,EAAG6R,OAASvU,EAQV0C,EAAG2V,IALAC,EAKM5V,EAAG8V,UAAUF,EAAWtY,GAHxB0C,EAAG8V,UAAU9V,EAAG2V,IAAKrY,EAAOkR,GAAW,GAKlDqH,IAEIH,IACFA,EAAOK,QAAU,MAEf/V,EAAG2V,MACL3V,EAAG2V,IAAII,QAAU/V,GAGfA,EAAGqR,QAAUrR,EAAGuD,SAAWvD,EAAGqR,SAAWrR,EAAGuD,QAAQsO,SACtD7R,EAAGuD,QAAQoS,IAAM3V,EAAG2V,MAMxBvD,EAAItsB,UAAU0tB,aAAe,WAC3B,IAAIxT,EAAKvY,KACLuY,EAAGoV,UACLpV,EAAGoV,SAAS/Z,UAIhB+W,EAAItsB,UAAU2pB,SAAW,WACvB,IAAIzP,EAAKvY,KACT,IAAIuY,EAAGuV,kBAAP,CAGAnG,GAASpP,EAAI,iBACbA,EAAGuV,mBAAoB,EAEvB,IAAIjZ,EAAS0D,EAAGuD,SACZjH,GAAWA,EAAOiZ,mBAAsBvV,EAAG6C,SAASwN,UACtDxc,EAAOyI,EAAO2Y,UAAWjV,GAGvBA,EAAGoV,UACLpV,EAAGoV,SAASY,WAEd,IAAI9xB,EAAI8b,EAAGiW,UAAUxvB,OACrB,MAAOvC,IACL8b,EAAGiW,UAAU/xB,GAAG8xB,WAIdhW,EAAGkW,MAAMnY,QACXiC,EAAGkW,MAAMnY,OAAOO,UAGlB0B,EAAGyO,cAAe,EAElBzO,EAAG8V,UAAU9V,EAAG6R,OAAQ,MAExBzC,GAASpP,EAAI,aAEbA,EAAGoU,OAECpU,EAAG2V,MACL3V,EAAG2V,IAAII,QAAU,MAGf/V,EAAGqR,SACLrR,EAAGqR,OAAO/U,OAAS,QAKzB,SAAS6Z,GACPnW,EACAoW,EACA5H,GAyBA,IAAI6H,EA2CJ,OAlEArW,EAAG2V,IAAMS,EACJpW,EAAG6C,SAASsG,SACfnJ,EAAG6C,SAASsG,OAASjM,IAmBvBkS,GAASpP,EAAI,eAsBXqW,EAAkB,WAChBrW,EAAGyV,QAAQzV,EAAGsS,UAAW9D,IAO7B,IAAI8H,GAAQtW,EAAIqW,EAAiB3gB,EAAM,CACrC6gB,OAAQ,WACFvW,EAAGmP,aAAenP,EAAGyO,cACvBW,GAASpP,EAAI,mBAGhB,GACHwO,GAAY,EAIK,MAAbxO,EAAGqR,SACLrR,EAAGmP,YAAa,EAChBC,GAASpP,EAAI,YAERA,EAGT,SAASiP,GACPjP,EACAoC,EACAuL,EACAmE,EACA0E,GAYA,IAAIC,EAAiB3E,EAAY9mB,KAAK6iB,YAClC6I,EAAiB1W,EAAGyJ,aACpBkN,KACDF,IAAmBA,EAAe/N,SAClCgO,IAAmBzkB,IAAgBykB,EAAehO,SAClD+N,GAAkBzW,EAAGyJ,aAAad,OAAS8N,EAAe9N,OACzD8N,GAAkBzW,EAAGyJ,aAAad,MAMlCiO,KACFJ,GACAxW,EAAG6C,SAASkP,iBACZ4E,GAkBF,GAfA3W,EAAG6C,SAAS2N,aAAesB,EAC3B9R,EAAGqR,OAASS,EAER9R,EAAG6R,SACL7R,EAAG6R,OAAOvV,OAASwV,GAErB9R,EAAG6C,SAASkP,gBAAkByE,EAK9BxW,EAAG6W,OAAS/E,EAAY9mB,KAAK6b,OAAS5U,EACtC+N,EAAG8W,WAAanJ,GAAa1b,EAGzBmQ,GAAapC,EAAG6C,SAASnC,MAAO,CAClCtC,IAAgB,GAGhB,IAFA,IAAIsC,EAAQV,EAAG8C,OACXiU,EAAW/W,EAAG6C,SAASmU,WAAa,GAC/B9yB,EAAI,EAAGA,EAAI6yB,EAAStwB,OAAQvC,IAAK,CACxC,IAAIuB,EAAMsxB,EAAS7yB,GACfie,EAAcnC,EAAG6C,SAASnC,MAC9BA,EAAMjb,GAAOyc,GAAazc,EAAK0c,EAAaC,EAAWpC,GAEzD5B,IAAgB,GAEhB4B,EAAG6C,SAAST,UAAYA,EAI1BuL,EAAYA,GAAa1b,EACzB,IAAIsiB,EAAevU,EAAG6C,SAASoP,iBAC/BjS,EAAG6C,SAASoP,iBAAmBtE,EAC/BuG,GAAyBlU,EAAI2N,EAAW4G,GAGpCqC,IACF5W,EAAG0J,OAAS1B,GAAawO,EAAgB1E,EAAY/V,SACrDiE,EAAGwT,gBAQP,SAASyD,GAAkBjX,GACzB,MAAOA,IAAOA,EAAKA,EAAGuD,SACpB,GAAIvD,EAAGqV,UAAa,OAAO,EAE7B,OAAO,EAGT,SAAS/F,GAAwBtP,EAAIkX,GACnC,GAAIA,GAEF,GADAlX,EAAGsV,iBAAkB,EACjB2B,GAAiBjX,GACnB,YAEG,GAAIA,EAAGsV,gBACZ,OAEF,GAAItV,EAAGqV,WAA8B,OAAjBrV,EAAGqV,UAAoB,CACzCrV,EAAGqV,WAAY,EACf,IAAK,IAAInxB,EAAI,EAAGA,EAAI8b,EAAGiV,UAAUxuB,OAAQvC,IACvCorB,GAAuBtP,EAAGiV,UAAU/wB,IAEtCkrB,GAASpP,EAAI,cAIjB,SAASwP,GAA0BxP,EAAIkX,GACrC,KAAIA,IACFlX,EAAGsV,iBAAkB,GACjB2B,GAAiBjX,OAIlBA,EAAGqV,UAAW,CACjBrV,EAAGqV,WAAY,EACf,IAAK,IAAInxB,EAAI,EAAGA,EAAI8b,EAAGiV,UAAUxuB,OAAQvC,IACvCsrB,GAAyBxP,EAAGiV,UAAU/wB,IAExCkrB,GAASpP,EAAI,gBAIjB,SAASoP,GAAUpP,EAAIO,GAErBhF,KACA,IAAI4b,EAAWnX,EAAG6C,SAAStC,GACvB8C,EAAO9C,EAAO,QAClB,GAAI4W,EACF,IAAK,IAAIjzB,EAAI,EAAGkzB,EAAID,EAAS1wB,OAAQvC,EAAIkzB,EAAGlzB,IAC1Cyf,GAAwBwT,EAASjzB,GAAI8b,EAAI,KAAMA,EAAIqD,GAGnDrD,EAAGiU,eACLjU,EAAG6U,MAAM,QAAUtU,GAErB/E,KAKF,IAEI6b,GAAQ,GACRC,GAAoB,GACpB3uB,GAAM,GAEN4uB,IAAU,EACVC,IAAW,EACX/pB,GAAQ,EAKZ,SAASgqB,KACPhqB,GAAQ4pB,GAAM5wB,OAAS6wB,GAAkB7wB,OAAS,EAClDkC,GAAM,GAIN4uB,GAAUC,IAAW,EAQvB,IAAIE,GAAwB,EAGxBC,GAASxhB,KAAKyhB,IAQlB,GAAIlf,IAAcO,GAAM,CACtB,IAAIhC,GAAc/O,OAAO+O,YAEvBA,IAC2B,oBAApBA,GAAY2gB,KACnBD,KAAW/S,SAASiT,YAAY,SAASC,YAMzCH,GAAS,WAAc,OAAO1gB,GAAY2gB,QAO9C,SAASG,KAGP,IAAIC,EAASnd,EAcb,IAhBA6c,GAAwBC,KACxBH,IAAW,EAWXH,GAAMY,MAAK,SAAUtxB,EAAGC,GAAK,OAAOD,EAAEkU,GAAKjU,EAAEiU,MAIxCpN,GAAQ,EAAGA,GAAQ4pB,GAAM5wB,OAAQgH,KACpCuqB,EAAUX,GAAM5pB,IACZuqB,EAAQzB,QACVyB,EAAQzB,SAEV1b,EAAKmd,EAAQnd,GACblS,GAAIkS,GAAM,KACVmd,EAAQE,MAmBV,IAAIC,EAAiBb,GAAkBtwB,QACnCoxB,EAAef,GAAMrwB,QAEzBywB,KAGAY,GAAmBF,GACnBG,GAAiBF,GAIbphB,IAAYpN,EAAOoN,UACrBA,GAASuhB,KAAK,SAIlB,SAASD,GAAkBjB,GACzB,IAAInzB,EAAImzB,EAAM5wB,OACd,MAAOvC,IAAK,CACV,IAAI8zB,EAAUX,EAAMnzB,GAChB8b,EAAKgY,EAAQhY,GACbA,EAAGoV,WAAa4C,GAAWhY,EAAGmP,aAAenP,EAAGyO,cAClDW,GAASpP,EAAI,YASnB,SAASqP,GAAyBrP,GAGhCA,EAAGqV,WAAY,EACfiC,GAAkB7sB,KAAKuV,GAGzB,SAASqY,GAAoBhB,GAC3B,IAAK,IAAInzB,EAAI,EAAGA,EAAImzB,EAAM5wB,OAAQvC,IAChCmzB,EAAMnzB,GAAGmxB,WAAY,EACrB/F,GAAuB+H,EAAMnzB,IAAI,GASrC,SAASs0B,GAAcR,GACrB,IAAInd,EAAKmd,EAAQnd,GACjB,GAAe,MAAXlS,GAAIkS,GAAa,CAEnB,GADAlS,GAAIkS,IAAM,EACL2c,GAEE,CAGL,IAAItzB,EAAImzB,GAAM5wB,OAAS,EACvB,MAAOvC,EAAIuJ,IAAS4pB,GAAMnzB,GAAG2W,GAAKmd,EAAQnd,GACxC3W,IAEFmzB,GAAMrjB,OAAO9P,EAAI,EAAG,EAAG8zB,QARvBX,GAAM5sB,KAAKutB,GAWRT,KACHA,IAAU,EAMVxS,GAASgT,MASf,IAAIU,GAAQ,EAORnC,GAAU,SACZtW,EACA0Y,EACA1T,EACA1X,EACAqrB,GAEAlxB,KAAKuY,GAAKA,EACN2Y,IACF3Y,EAAGoV,SAAW3tB,MAEhBuY,EAAGiW,UAAUxrB,KAAKhD,MAEd6F,GACF7F,KAAKmxB,OAAStrB,EAAQsrB,KACtBnxB,KAAKoxB,OAASvrB,EAAQurB,KACtBpxB,KAAKqxB,OAASxrB,EAAQwrB,KACtBrxB,KAAKyrB,OAAS5lB,EAAQ4lB,KACtBzrB,KAAK8uB,OAASjpB,EAAQipB,QAEtB9uB,KAAKmxB,KAAOnxB,KAAKoxB,KAAOpxB,KAAKqxB,KAAOrxB,KAAKyrB,MAAO,EAElDzrB,KAAKud,GAAKA,EACVvd,KAAKoT,KAAO4d,GACZhxB,KAAKsxB,QAAS,EACdtxB,KAAKuxB,MAAQvxB,KAAKqxB,KAClBrxB,KAAKwxB,KAAO,GACZxxB,KAAKyxB,QAAU,GACfzxB,KAAK0xB,OAAS,IAAIjf,GAClBzS,KAAK2xB,UAAY,IAAIlf,GACrBzS,KAAK4xB,WAED,GAEmB,oBAAZX,EACTjxB,KAAK/C,OAASg0B,GAEdjxB,KAAK/C,OAAS2T,EAAUqgB,GACnBjxB,KAAK/C,SACR+C,KAAK/C,OAASgR,IASlBjO,KAAKtC,MAAQsC,KAAKqxB,UACdpyB,EACAe,KAAK1C,OAMXuxB,GAAQxwB,UAAUf,IAAM,WAEtB,IAAII,EADJoW,GAAW9T,MAEX,IAAIuY,EAAKvY,KAAKuY,GACd,IACE7a,EAAQsC,KAAK/C,OAAOL,KAAK2b,EAAIA,GAC7B,MAAO7O,IACP,IAAI1J,KAAKoxB,KAGP,MAAM1nB,GAFNgS,GAAYhS,GAAG6O,EAAK,uBAA2BvY,KAAe,WAAI,KAIpE,QAGIA,KAAKmxB,MACPzT,GAAShgB,GAEXqW,KACA/T,KAAK6xB,cAEP,OAAOn0B,GAMTmxB,GAAQxwB,UAAUqV,OAAS,SAAiB8C,GAC1C,IAAIpD,EAAKoD,EAAIpD,GACRpT,KAAK2xB,UAAUzwB,IAAIkS,KACtBpT,KAAK2xB,UAAU5e,IAAIK,GACnBpT,KAAKyxB,QAAQzuB,KAAKwT,GACbxW,KAAK0xB,OAAOxwB,IAAIkS,IACnBoD,EAAIlD,OAAOtT,QAQjB6uB,GAAQxwB,UAAUwzB,YAAc,WAC9B,IAAIp1B,EAAIuD,KAAKwxB,KAAKxyB,OAClB,MAAOvC,IAAK,CACV,IAAI+Z,EAAMxW,KAAKwxB,KAAK/0B,GACfuD,KAAK2xB,UAAUzwB,IAAIsV,EAAIpD,KAC1BoD,EAAIhD,UAAUxT,MAGlB,IAAI8xB,EAAM9xB,KAAK0xB,OACf1xB,KAAK0xB,OAAS1xB,KAAK2xB,UACnB3xB,KAAK2xB,UAAYG,EACjB9xB,KAAK2xB,UAAU3e,QACf8e,EAAM9xB,KAAKwxB,KACXxxB,KAAKwxB,KAAOxxB,KAAKyxB,QACjBzxB,KAAKyxB,QAAUK,EACf9xB,KAAKyxB,QAAQzyB,OAAS,GAOxB6vB,GAAQxwB,UAAUuV,OAAS,WAErB5T,KAAKqxB,KACPrxB,KAAKuxB,OAAQ,EACJvxB,KAAKyrB,KACdzrB,KAAKywB,MAELM,GAAa/wB,OAQjB6uB,GAAQxwB,UAAUoyB,IAAM,WACtB,GAAIzwB,KAAKsxB,OAAQ,CACf,IAAI5zB,EAAQsC,KAAK1C,MACjB,GACEI,IAAUsC,KAAKtC,OAIf4B,EAAS5B,IACTsC,KAAKmxB,KACL,CAEA,IAAIY,EAAW/xB,KAAKtC,MAEpB,GADAsC,KAAKtC,MAAQA,EACTsC,KAAKoxB,KAAM,CACb,IAAIxV,EAAO,yBAA6B5b,KAAe,WAAI,IAC3Dkc,GAAwBlc,KAAKud,GAAIvd,KAAKuY,GAAI,CAAC7a,EAAOq0B,GAAW/xB,KAAKuY,GAAIqD,QAEtE5b,KAAKud,GAAG3gB,KAAKoD,KAAKuY,GAAI7a,EAAOq0B,MAUrClD,GAAQxwB,UAAU2zB,SAAW,WAC3BhyB,KAAKtC,MAAQsC,KAAK1C,MAClB0C,KAAKuxB,OAAQ,GAMf1C,GAAQxwB,UAAUoV,OAAS,WACzB,IAAIhX,EAAIuD,KAAKwxB,KAAKxyB,OAClB,MAAOvC,IACLuD,KAAKwxB,KAAK/0B,GAAGgX,UAOjBob,GAAQxwB,UAAUkwB,SAAW,WAC3B,GAAIvuB,KAAKsxB,OAAQ,CAIVtxB,KAAKuY,GAAGuV,mBACX1hB,EAAOpM,KAAKuY,GAAGiW,UAAWxuB,MAE5B,IAAIvD,EAAIuD,KAAKwxB,KAAKxyB,OAClB,MAAOvC,IACLuD,KAAKwxB,KAAK/0B,GAAG+W,UAAUxT,MAEzBA,KAAKsxB,QAAS,IAMlB,IAAIW,GAA2B,CAC7B50B,YAAY,EACZiN,cAAc,EACdhN,IAAK2Q,EACL6E,IAAK7E,GAGP,SAASuT,GAAOna,EAAQ6qB,EAAWl0B,GACjCi0B,GAAyB30B,IAAM,WAC7B,OAAO0C,KAAKkyB,GAAWl0B,IAEzBi0B,GAAyBnf,IAAM,SAAsBzH,GACnDrL,KAAKkyB,GAAWl0B,GAAOqN,GAEzBlO,OAAOC,eAAeiK,EAAQrJ,EAAKi0B,IAGrC,SAASE,GAAW5Z,GAClBA,EAAGiW,UAAY,GACf,IAAIvc,EAAOsG,EAAG6C,SACVnJ,EAAKgH,OAASmZ,GAAU7Z,EAAItG,EAAKgH,OACjChH,EAAKiH,SAAWmZ,GAAY9Z,EAAItG,EAAKiH,SACrCjH,EAAK1O,KACP+uB,GAAS/Z,GAETpB,GAAQoB,EAAGkW,MAAQ,IAAI,GAErBxc,EAAKmH,UAAYmZ,GAAaha,EAAItG,EAAKmH,UACvCnH,EAAKF,OAASE,EAAKF,QAAUD,IAC/B0gB,GAAUja,EAAItG,EAAKF,OAIvB,SAASqgB,GAAW7Z,EAAIka,GACtB,IAAI9X,EAAYpC,EAAG6C,SAAST,WAAa,GACrC1B,EAAQV,EAAG8C,OAAS,GAGpBxM,EAAO0J,EAAG6C,SAASmU,UAAY,GAC/BmD,GAAUna,EAAGuD,QAEZ4W,GACH/b,IAAgB,GAElB,IAAIqM,EAAO,SAAWhlB,GACpB6Q,EAAK7L,KAAKhF,GACV,IAAIN,EAAQ+c,GAAazc,EAAKy0B,EAAc9X,EAAWpC,GAuBrDhB,GAAkB0B,EAAOjb,EAAKN,GAK1BM,KAAOua,GACXiJ,GAAMjJ,EAAI,SAAUva,IAIxB,IAAK,IAAIA,KAAOy0B,EAAczP,EAAMhlB,GACpC2Y,IAAgB,GAGlB,SAAS2b,GAAU/Z,GACjB,IAAIhV,EAAOgV,EAAG6C,SAAS7X,KACvBA,EAAOgV,EAAGkW,MAAwB,oBAATlrB,EACrBovB,GAAQpvB,EAAMgV,GACdhV,GAAQ,GACP2H,EAAc3H,KACjBA,EAAO,IAQT,IAAIsL,EAAO1R,OAAO0R,KAAKtL,GACnB0V,EAAQV,EAAG6C,SAASnC,MAEpBxc,GADU8b,EAAG6C,SAASlC,QAClBrK,EAAK7P,QACb,MAAOvC,IAAK,CACV,IAAIuB,EAAM6Q,EAAKpS,GACX,EAQAwc,GAASzM,EAAOyM,EAAOjb,IAMfsS,EAAWtS,IACrBwjB,GAAMjJ,EAAI,QAASva,GAIvBmZ,GAAQ5T,GAAM,GAGhB,SAASovB,GAASpvB,EAAMgV,GAEtBzE,KACA,IACE,OAAOvQ,EAAK3G,KAAK2b,EAAIA,GACrB,MAAO7O,IAEP,OADAgS,GAAYhS,GAAG6O,EAAI,UACZ,GACP,QACAxE,MAIJ,IAAI6e,GAAyB,CAAEvB,MAAM,GAErC,SAASkB,GAAcha,EAAIa,GAEzB,IAAIyZ,EAAWta,EAAGua,kBAAoB31B,OAAOY,OAAO,MAEhDg1B,EAAQ5gB,KAEZ,IAAK,IAAInU,KAAOob,EAAU,CACxB,IAAI4Z,EAAU5Z,EAASpb,GACnBf,EAA4B,oBAAZ+1B,EAAyBA,EAAUA,EAAQ11B,IAC3D,EAOCy1B,IAEHF,EAAS70B,GAAO,IAAI6wB,GAClBtW,EACAtb,GAAUgR,EACVA,EACA2kB,KAOE50B,KAAOua,GACX0a,GAAe1a,EAAIva,EAAKg1B,IAa9B,SAASC,GACP5rB,EACArJ,EACAg1B,GAEA,IAAIE,GAAe/gB,KACI,oBAAZ6gB,GACTf,GAAyB30B,IAAM41B,EAC3BC,GAAqBn1B,GACrBo1B,GAAoBJ,GACxBf,GAAyBnf,IAAM7E,IAE/BgkB,GAAyB30B,IAAM01B,EAAQ11B,IACnC41B,IAAiC,IAAlBF,EAAQtmB,MACrBymB,GAAqBn1B,GACrBo1B,GAAoBJ,EAAQ11B,KAC9B2Q,EACJgkB,GAAyBnf,IAAMkgB,EAAQlgB,KAAO7E,GAWhD9Q,OAAOC,eAAeiK,EAAQrJ,EAAKi0B,IAGrC,SAASkB,GAAsBn1B,GAC7B,OAAO,WACL,IAAIuyB,EAAUvwB,KAAK8yB,mBAAqB9yB,KAAK8yB,kBAAkB90B,GAC/D,GAAIuyB,EAOF,OANIA,EAAQgB,OACVhB,EAAQyB,WAEN7e,GAAI9L,QACNkpB,EAAQ9c,SAEH8c,EAAQ7yB,OAKrB,SAAS01B,GAAoBt0B,GAC3B,OAAO,WACL,OAAOA,EAAGlC,KAAKoD,KAAMA,OAIzB,SAASqyB,GAAa9Z,EAAIW,GACZX,EAAG6C,SAASnC,MACxB,IAAK,IAAIjb,KAAOkb,EAsBdX,EAAGva,GAA+B,oBAAjBkb,EAAQlb,GAAsBiQ,EAAOhQ,EAAKib,EAAQlb,GAAMua,GAI7E,SAASia,GAAWja,EAAIxG,GACtB,IAAK,IAAI/T,KAAO+T,EAAO,CACrB,IAAIoK,EAAUpK,EAAM/T,GACpB,GAAIqG,MAAMsH,QAAQwQ,GAChB,IAAK,IAAI1f,EAAI,EAAGA,EAAI0f,EAAQnd,OAAQvC,IAClC42B,GAAc9a,EAAIva,EAAKme,EAAQ1f,SAGjC42B,GAAc9a,EAAIva,EAAKme,IAK7B,SAASkX,GACP9a,EACA0Y,EACA9U,EACAtW,GASA,OAPIqF,EAAciR,KAChBtW,EAAUsW,EACVA,EAAUA,EAAQA,SAEG,kBAAZA,IACTA,EAAU5D,EAAG4D,IAER5D,EAAG+a,OAAOrC,EAAS9U,EAAStW,GAGrC,SAAS0tB,GAAY5I,GAInB,IAAI6I,EAAU,CACd,IAAc,WAAc,OAAOxzB,KAAKyuB,QACpCgF,EAAW,CACf,IAAe,WAAc,OAAOzzB,KAAKqb,SAazCle,OAAOC,eAAeutB,EAAItsB,UAAW,QAASm1B,GAC9Cr2B,OAAOC,eAAeutB,EAAItsB,UAAW,SAAUo1B,GAE/C9I,EAAItsB,UAAUq1B,KAAO5gB,GACrB6X,EAAItsB,UAAUs1B,QAAU7b,GAExB6S,EAAItsB,UAAUi1B,OAAS,SACrBrC,EACA1T,EACA1X,GAEA,IAAI0S,EAAKvY,KACT,GAAIkL,EAAcqS,GAChB,OAAO8V,GAAc9a,EAAI0Y,EAAS1T,EAAI1X,GAExCA,EAAUA,GAAW,GACrBA,EAAQurB,MAAO,EACf,IAAIb,EAAU,IAAI1B,GAAQtW,EAAI0Y,EAAS1T,EAAI1X,GAC3C,GAAIA,EAAQ+tB,UAAW,CACrB,IAAIhY,EAAO,mCAAuC2U,EAAkB,WAAI,IACxEzc,KACAoI,GAAwBqB,EAAIhF,EAAI,CAACgY,EAAQ7yB,OAAQ6a,EAAIqD,GACrD7H,KAEF,OAAO,WACLwc,EAAQhC,aAOd,IAAIsF,GAAQ,EAEZ,SAASC,GAAWnJ,GAClBA,EAAItsB,UAAU01B,MAAQ,SAAUluB,GAC9B,IAAI0S,EAAKvY,KAETuY,EAAGyb,KAAOH,KAWVtb,EAAGjB,QAAS,EAERzR,GAAWA,EAAQijB,aAIrBmL,GAAsB1b,EAAI1S,GAE1B0S,EAAG6C,SAAWtB,GACZyO,GAA0BhQ,EAAGvT,aAC7Ba,GAAW,GACX0S,GAOFA,EAAGmL,aAAenL,EAGpBA,EAAG2b,MAAQ3b,EACXgV,GAAchV,GACd+T,GAAW/T,GACX4R,GAAW5R,GACXoP,GAASpP,EAAI,gBACb4H,GAAe5H,GACf4Z,GAAU5Z,GACV0H,GAAY1H,GACZoP,GAASpP,EAAI,WASTA,EAAG6C,SAASuT,IACdpW,EAAG+O,OAAO/O,EAAG6C,SAASuT,KAK5B,SAASsF,GAAuB1b,EAAI1S,GAClC,IAAIoM,EAAOsG,EAAG6C,SAAWje,OAAOY,OAAOwa,EAAGvT,YAAYa,SAElDwkB,EAAcxkB,EAAQkjB,aAC1B9W,EAAK4C,OAAShP,EAAQgP,OACtB5C,EAAK8W,aAAesB,EAEpB,IAAI8J,EAAwB9J,EAAY9V,iBACxCtC,EAAK0I,UAAYwZ,EAAsBxZ,UACvC1I,EAAKuY,iBAAmB2J,EAAsBjO,UAC9CjU,EAAKqY,gBAAkB6J,EAAsBhgB,SAC7ClC,EAAKmiB,cAAgBD,EAAsBjgB,IAEvCrO,EAAQ6b,SACVzP,EAAKyP,OAAS7b,EAAQ6b,OACtBzP,EAAKwR,gBAAkB5d,EAAQ4d,iBAInC,SAAS8E,GAA2B/V,GAClC,IAAI3M,EAAU2M,EAAK3M,QACnB,GAAI2M,EAAK6hB,MAAO,CACd,IAAIC,EAAe/L,GAA0B/V,EAAK6hB,OAC9CE,EAAqB/hB,EAAK8hB,aAC9B,GAAIA,IAAiBC,EAAoB,CAGvC/hB,EAAK8hB,aAAeA,EAEpB,IAAIE,EAAkBC,GAAuBjiB,GAEzCgiB,GACF5mB,EAAO4E,EAAKkiB,cAAeF,GAE7B3uB,EAAU2M,EAAK3M,QAAUiU,GAAawa,EAAc9hB,EAAKkiB,eACrD7uB,EAAQ7I,OACV6I,EAAQ8uB,WAAW9uB,EAAQ7I,MAAQwV,IAIzC,OAAO3M,EAGT,SAAS4uB,GAAwBjiB,GAC/B,IAAIoiB,EACAC,EAASriB,EAAK3M,QACdivB,EAAStiB,EAAKuiB,cAClB,IAAK,IAAI/2B,KAAO62B,EACVA,EAAO72B,KAAS82B,EAAO92B,KACpB42B,IAAYA,EAAW,IAC5BA,EAAS52B,GAAO62B,EAAO72B,IAG3B,OAAO42B,EAGT,SAASjK,GAAK9kB,GAMZ7F,KAAK+zB,MAAMluB,GAWb,SAASmvB,GAASrK,GAChBA,EAAIsK,IAAM,SAAUC,GAClB,IAAIC,EAAoBn1B,KAAKo1B,oBAAsBp1B,KAAKo1B,kBAAoB,IAC5E,GAAID,EAAiB7oB,QAAQ4oB,IAAW,EACtC,OAAOl1B,KAIT,IAAIJ,EAAO6N,EAAQpO,UAAW,GAQ9B,OAPAO,EAAKiD,QAAQ7C,MACiB,oBAAnBk1B,EAAOG,QAChBH,EAAOG,QAAQj2B,MAAM81B,EAAQt1B,GACF,oBAAXs1B,GAChBA,EAAO91B,MAAM,KAAMQ,GAErBu1B,EAAiBnyB,KAAKkyB,GACfl1B,MAMX,SAASs1B,GAAa3K,GACpBA,EAAI4K,MAAQ,SAAUA,GAEpB,OADAv1B,KAAK6F,QAAUiU,GAAa9Z,KAAK6F,QAAS0vB,GACnCv1B,MAMX,SAASw1B,GAAY7K,GAMnBA,EAAIvC,IAAM,EACV,IAAIA,EAAM,EAKVuC,EAAI/c,OAAS,SAAU8mB,GACrBA,EAAgBA,GAAiB,GACjC,IAAIe,EAAQz1B,KACR01B,EAAUD,EAAMrN,IAChBuN,EAAcjB,EAAckB,QAAUlB,EAAckB,MAAQ,IAChE,GAAID,EAAYD,GACd,OAAOC,EAAYD,GAGrB,IAAI14B,EAAO03B,EAAc13B,MAAQy4B,EAAM5vB,QAAQ7I,KAK/C,IAAI64B,EAAM,SAAuBhwB,GAC/B7F,KAAK+zB,MAAMluB,IA6Cb,OA3CAgwB,EAAIx3B,UAAYlB,OAAOY,OAAO03B,EAAMp3B,WACpCw3B,EAAIx3B,UAAU2G,YAAc6wB,EAC5BA,EAAIzN,IAAMA,IACVyN,EAAIhwB,QAAUiU,GACZ2b,EAAM5vB,QACN6uB,GAEFmB,EAAI,SAAWJ,EAKXI,EAAIhwB,QAAQoT,OACd6c,GAAYD,GAEVA,EAAIhwB,QAAQuT,UACd2c,GAAeF,GAIjBA,EAAIjoB,OAAS6nB,EAAM7nB,OACnBioB,EAAIN,MAAQE,EAAMF,MAClBM,EAAIZ,IAAMQ,EAAMR,IAIhB/lB,EAAYvM,SAAQ,SAAUoW,GAC5B8c,EAAI9c,GAAQ0c,EAAM1c,MAGhB/b,IACF64B,EAAIhwB,QAAQ8uB,WAAW33B,GAAQ64B,GAMjCA,EAAIvB,aAAemB,EAAM5vB,QACzBgwB,EAAInB,cAAgBA,EACpBmB,EAAId,cAAgBnnB,EAAO,GAAIioB,EAAIhwB,SAGnC8vB,EAAYD,GAAWG,EAChBA,GAIX,SAASC,GAAaE,GACpB,IAAI/c,EAAQ+c,EAAKnwB,QAAQoT,MACzB,IAAK,IAAIjb,KAAOib,EACduI,GAAMwU,EAAK33B,UAAW,SAAUL,GAIpC,SAAS+3B,GAAgBC,GACvB,IAAI5c,EAAW4c,EAAKnwB,QAAQuT,SAC5B,IAAK,IAAIpb,KAAOob,EACd6Z,GAAe+C,EAAK33B,UAAWL,EAAKob,EAASpb,IAMjD,SAASi4B,GAAoBtL,GAI3Bzb,EAAYvM,SAAQ,SAAUoW,GAC5B4R,EAAI5R,GAAQ,SACV3F,EACA8iB,GAEA,OAAKA,GAOU,cAATnd,GAAwB7N,EAAcgrB,KACxCA,EAAWl5B,KAAOk5B,EAAWl5B,MAAQoW,EACrC8iB,EAAal2B,KAAK6F,QAAQkU,MAAMnM,OAAOsoB,IAE5B,cAATnd,GAA8C,oBAAfmd,IACjCA,EAAa,CAAEj4B,KAAMi4B,EAAYtiB,OAAQsiB,IAE3Cl2B,KAAK6F,QAAQkT,EAAO,KAAK3F,GAAM8iB,EACxBA,GAdAl2B,KAAK6F,QAAQkT,EAAO,KAAK3F,OA0BxC,SAAS+iB,GAAkBlkB,GACzB,OAAOA,IAASA,EAAKO,KAAK3M,QAAQ7I,MAAQiV,EAAKiC,KAGjD,SAASkiB,GAASC,EAASr5B,GACzB,OAAIqH,MAAMsH,QAAQ0qB,GACTA,EAAQ/pB,QAAQtP,IAAS,EACJ,kBAAZq5B,EACTA,EAAQnqB,MAAM,KAAKI,QAAQtP,IAAS,IAClCmO,EAASkrB,IACXA,EAAQ13B,KAAK3B,GAMxB,SAASs5B,GAAYC,EAAmBC,GACtC,IAAI9pB,EAAQ6pB,EAAkB7pB,MAC1BmC,EAAO0nB,EAAkB1nB,KACzBub,EAASmM,EAAkBnM,OAC/B,IAAK,IAAIpsB,KAAO0O,EAAO,CACrB,IAAI+pB,EAAQ/pB,EAAM1O,GAClB,GAAIy4B,EAAO,CACT,IAAIz5B,EAAOy5B,EAAMz5B,KACbA,IAASw5B,EAAOx5B,IAClB05B,GAAgBhqB,EAAO1O,EAAK6Q,EAAMub,KAM1C,SAASsM,GACPhqB,EACA1O,EACA6Q,EACA8nB,GAEA,IAAIF,EAAQ/pB,EAAM1O,IACdy4B,GAAWE,GAAWF,EAAMviB,MAAQyiB,EAAQziB,KAC9CuiB,EAAM7hB,kBAAkBoT,WAE1Btb,EAAM1O,GAAO,KACboO,EAAOyC,EAAM7Q,GAjNf81B,GAAUnJ,IACV4I,GAAW5I,IACXoC,GAAYpC,IACZoD,GAAepD,IACfD,GAAYC,IAgNZ,IAAIiM,GAAe,CAACh4B,OAAQ+R,OAAQtM,OAEhCwyB,GAAY,CACd75B,KAAM,aACN4rB,UAAU,EAEV3P,MAAO,CACL6d,QAASF,GACTG,QAASH,GACTnwB,IAAK,CAAC7H,OAAQo4B,SAGhB9d,QAAS,CACP+d,WAAY,WACV,IAAInM,EAAM9qB,KACN0M,EAAQoe,EAAIpe,MACZmC,EAAOic,EAAIjc,KACXqoB,EAAepM,EAAIoM,aACnBC,EAAarM,EAAIqM,WACrB,GAAID,EAAc,CAChB,IAAIhjB,EAAMgjB,EAAahjB,IACnBU,EAAoBsiB,EAAatiB,kBACjCL,EAAmB2iB,EAAa3iB,iBACpC7H,EAAMyqB,GAAc,CAClBn6B,KAAMm5B,GAAiB5hB,GACvBL,IAAKA,EACLU,kBAAmBA,GAErB/F,EAAK7L,KAAKm0B,GAENn3B,KAAKyG,KAAOoI,EAAK7P,OAASo4B,SAASp3B,KAAKyG,MAC1CiwB,GAAgBhqB,EAAOmC,EAAK,GAAIA,EAAM7O,KAAKoqB,QAE7CpqB,KAAKk3B,aAAe,QAK1BG,QAAS,WACPr3B,KAAK0M,MAAQvP,OAAOY,OAAO,MAC3BiC,KAAK6O,KAAO,IAGdyoB,UAAW,WACT,IAAK,IAAIt5B,KAAOgC,KAAK0M,MACnBgqB,GAAgB12B,KAAK0M,MAAO1O,EAAKgC,KAAK6O,OAI1C0oB,QAAS,WACP,IAAI1R,EAAS7lB,KAEbA,KAAKi3B,aACLj3B,KAAKszB,OAAO,WAAW,SAAUjoB,GAC/BirB,GAAWzQ,GAAQ,SAAU7oB,GAAQ,OAAOo5B,GAAQ/qB,EAAKrO,SAE3DgD,KAAKszB,OAAO,WAAW,SAAUjoB,GAC/BirB,GAAWzQ,GAAQ,SAAU7oB,GAAQ,OAAQo5B,GAAQ/qB,EAAKrO,UAI9Dw6B,QAAS,WACPx3B,KAAKi3B,cAGPvV,OAAQ,WACN,IAAIjB,EAAOzgB,KAAKiiB,OAAO9G,QACnBtF,EAAQwW,GAAuB5L,GAC/BlM,EAAmBsB,GAASA,EAAMtB,iBACtC,GAAIA,EAAkB,CAEpB,IAAIvX,EAAOm5B,GAAiB5hB,GACxBuW,EAAM9qB,KACN82B,EAAUhM,EAAIgM,QACdC,EAAUjM,EAAIiM,QAClB,GAEGD,KAAa95B,IAASo5B,GAAQU,EAAS95B,KAEvC+5B,GAAW/5B,GAAQo5B,GAAQW,EAAS/5B,GAErC,OAAO6Y,EAGT,IAAI4hB,EAAQz3B,KACR0M,EAAQ+qB,EAAM/qB,MACdmC,EAAO4oB,EAAM5oB,KACb7Q,EAAmB,MAAb6X,EAAM7X,IAGZuW,EAAiB/B,KAAK4V,KAAO7T,EAAiBL,IAAO,KAAQK,EAAoB,IAAK,IACtFsB,EAAM7X,IACN0O,EAAM1O,IACR6X,EAAMjB,kBAAoBlI,EAAM1O,GAAK4W,kBAErCxI,EAAOyC,EAAM7Q,GACb6Q,EAAK7L,KAAKhF,KAGVgC,KAAKk3B,aAAerhB,EACpB7V,KAAKm3B,WAAan5B,GAGpB6X,EAAMtS,KAAK0jB,WAAY,EAEzB,OAAOpR,GAAU4K,GAAQA,EAAK,KAI9BiX,GAAoB,CACtBb,UAAWA,IAKb,SAASc,GAAehN,GAEtB,IAAIiN,EAAY,CAChB,IAAgB,WAAc,OAAOz1B,IAQrChF,OAAOC,eAAeutB,EAAK,SAAUiN,GAKrCjN,EAAIkN,KAAO,CACT5kB,KAAMA,GACNrF,OAAQA,EACRkM,aAAcA,GACdge,eAAgBvgB,IAGlBoT,EAAI7X,IAAMA,GACV6X,EAAIoN,OAASjgB,GACb6S,EAAIrN,SAAWA,GAGfqN,EAAIqN,WAAa,SAAUhtB,GAEzB,OADAmM,GAAQnM,GACDA,GAGT2f,EAAI9kB,QAAU1I,OAAOY,OAAO,MAC5BmR,EAAYvM,SAAQ,SAAUoW,GAC5B4R,EAAI9kB,QAAQkT,EAAO,KAAO5b,OAAOY,OAAO,SAK1C4sB,EAAI9kB,QAAQkU,MAAQ4Q,EAEpB/c,EAAO+c,EAAI9kB,QAAQ8uB,WAAY+C,IAE/B1C,GAAQrK,GACR2K,GAAY3K,GACZ6K,GAAW7K,GACXsL,GAAmBtL,GAGrBgN,GAAchN,IAEdxtB,OAAOC,eAAeutB,GAAItsB,UAAW,YAAa,CAChDf,IAAK6U,KAGPhV,OAAOC,eAAeutB,GAAItsB,UAAW,cAAe,CAClDf,IAAK,WAEH,OAAO0C,KAAK4pB,QAAU5pB,KAAK4pB,OAAOqO,cAKtC96B,OAAOC,eAAeutB,GAAK,0BAA2B,CACpDjtB,MAAOioB,KAGTgF,GAAIuN,QAAU,SAMd,IAAIpoB,GAAiBhE,EAAQ,eAGzBqsB,GAAcrsB,EAAQ,yCACtBoE,GAAc,SAAUgE,EAAK6E,EAAMqf,GACrC,MACY,UAATA,GAAoBD,GAAYjkB,IAAkB,WAAT6E,GAChC,aAATqf,GAA+B,WAARlkB,GACd,YAATkkB,GAA8B,UAARlkB,GACb,UAATkkB,GAA4B,UAARlkB,GAIrBmkB,GAAmBvsB,EAAQ,wCAE3BwsB,GAA8BxsB,EAAQ,sCAEtCysB,GAAyB,SAAUv6B,EAAKN,GAC1C,OAAO86B,GAAiB96B,IAAoB,UAAVA,EAC9B,QAEQ,oBAARM,GAA6Bs6B,GAA4B56B,GACvDA,EACA,QAGJ+6B,GAAgB3sB,EAClB,8XAQE4sB,GAAU,+BAEVC,GAAU,SAAU37B,GACtB,MAA0B,MAAnBA,EAAKiQ,OAAO,IAAmC,UAArBjQ,EAAKuC,MAAM,EAAG,IAG7Cq5B,GAAe,SAAU57B,GAC3B,OAAO27B,GAAQ37B,GAAQA,EAAKuC,MAAM,EAAGvC,EAAKgC,QAAU,IAGlDw5B,GAAmB,SAAUntB,GAC/B,OAAc,MAAPA,IAAuB,IAARA,GAKxB,SAASwtB,GAAkBhjB,GACzB,IAAItS,EAAOsS,EAAMtS,KACbu1B,EAAajjB,EACbkjB,EAAYljB,EAChB,MAAOjL,EAAMmuB,EAAUnkB,mBACrBmkB,EAAYA,EAAUnkB,kBAAkBwV,OACpC2O,GAAaA,EAAUx1B,OACzBA,EAAOy1B,GAAeD,EAAUx1B,KAAMA,IAG1C,MAAOqH,EAAMkuB,EAAaA,EAAWjkB,QAC/BikB,GAAcA,EAAWv1B,OAC3BA,EAAOy1B,GAAez1B,EAAMu1B,EAAWv1B,OAG3C,OAAO01B,GAAY11B,EAAK21B,YAAa31B,EAAK2mB,OAG5C,SAAS8O,GAAgBzjB,EAAOV,GAC9B,MAAO,CACLqkB,YAAa/4B,GAAOoV,EAAM2jB,YAAarkB,EAAOqkB,aAC9ChP,MAAOtf,EAAM2K,EAAM2U,OACf,CAAC3U,EAAM2U,MAAOrV,EAAOqV,OACrBrV,EAAOqV,OAIf,SAAS+O,GACPC,EACAC,GAEA,OAAIvuB,EAAMsuB,IAAgBtuB,EAAMuuB,GACvBh5B,GAAO+4B,EAAaE,GAAeD,IAGrC,GAGT,SAASh5B,GAAQjB,EAAGC,GAClB,OAAOD,EAAIC,EAAKD,EAAI,IAAMC,EAAKD,EAAKC,GAAK,GAG3C,SAASi6B,GAAgB17B,GACvB,OAAI2G,MAAMsH,QAAQjO,GACT27B,GAAe37B,GAEpB4B,EAAS5B,GACJ47B,GAAgB57B,GAEJ,kBAAVA,EACFA,EAGF,GAGT,SAAS27B,GAAgB37B,GAGvB,IAFA,IACI67B,EADAvrB,EAAM,GAEDvR,EAAI,EAAGC,EAAIgB,EAAMsB,OAAQvC,EAAIC,EAAGD,IACnCmO,EAAM2uB,EAAcH,GAAe17B,EAAMjB,MAAwB,KAAhB88B,IAC/CvrB,IAAOA,GAAO,KAClBA,GAAOurB,GAGX,OAAOvrB,EAGT,SAASsrB,GAAiB57B,GACxB,IAAIsQ,EAAM,GACV,IAAK,IAAIhQ,KAAON,EACVA,EAAMM,KACJgQ,IAAOA,GAAO,KAClBA,GAAOhQ,GAGX,OAAOgQ,EAKT,IAAIwrB,GAAe,CACjBC,IAAK,6BACLC,KAAM,sCAGJC,GAAY7tB,EACd,snBAeE8tB,GAAQ9tB,EACV,kNAGA,GAGE+D,GAAgB,SAAUqE,GAC5B,OAAOylB,GAAUzlB,IAAQ0lB,GAAM1lB,IAGjC,SAASlE,GAAiBkE,GACxB,OAAI0lB,GAAM1lB,GACD,MAIG,SAARA,EACK,YADT,EAKF,IAAI2lB,GAAsB18B,OAAOY,OAAO,MACxC,SAASgS,GAAkBmE,GAEzB,IAAKjD,EACH,OAAO,EAET,GAAIpB,GAAcqE,GAChB,OAAO,EAIT,GAFAA,EAAMA,EAAI5R,cAEsB,MAA5Bu3B,GAAoB3lB,GACtB,OAAO2lB,GAAoB3lB,GAE7B,IAAIya,EAAKxR,SAAS1Z,cAAcyQ,GAChC,OAAIA,EAAI5H,QAAQ,MAAQ,EAEdutB,GAAoB3lB,GAC1Bya,EAAG3pB,cAAgBvE,OAAOq5B,oBAC1BnL,EAAG3pB,cAAgBvE,OAAOs5B,YAGpBF,GAAoB3lB,GAAO,qBAAqBvV,KAAKgwB,EAAGpuB,YAIpE,IAAIy5B,GAAkBluB,EAAQ,6CAO9B,SAASmuB,GAAOtL,GACd,GAAkB,kBAAPA,EAAiB,CAC1B,IAAIuL,EAAW/c,SAASgd,cAAcxL,GACtC,OAAKuL,GAII/c,SAAS1Z,cAAc,OAIhC,OAAOkrB,EAMX,SAASyL,GAAiBC,EAASxkB,GACjC,IAAIxB,EAAM8I,SAAS1Z,cAAc42B,GACjC,MAAgB,WAAZA,GAIAxkB,EAAMtS,MAAQsS,EAAMtS,KAAK6b,YAAuCngB,IAA9B4W,EAAMtS,KAAK6b,MAAMkb,UACrDjmB,EAAIkmB,aAAa,WAAY,YAJtBlmB,EASX,SAASmmB,GAAiBC,EAAWJ,GACnC,OAAOld,SAASqd,gBAAgBhB,GAAaiB,GAAYJ,GAG3D,SAASjd,GAAgBhJ,GACvB,OAAO+I,SAASC,eAAehJ,GAGjC,SAASsmB,GAAetmB,GACtB,OAAO+I,SAASud,cAActmB,GAGhC,SAASumB,GAAc7B,EAAY8B,EAASC,GAC1C/B,EAAW6B,aAAaC,EAASC,GAGnC,SAASC,GAAaplB,EAAMH,GAC1BG,EAAKolB,YAAYvlB,GAGnB,SAASwlB,GAAarlB,EAAMH,GAC1BG,EAAKqlB,YAAYxlB,GAGnB,SAASujB,GAAYpjB,GACnB,OAAOA,EAAKojB,WAGd,SAASkC,GAAatlB,GACpB,OAAOA,EAAKslB,YAGd,SAASX,GAAS3kB,GAChB,OAAOA,EAAK2kB,QAGd,SAASY,GAAgBvlB,EAAMtB,GAC7BsB,EAAKwlB,YAAc9mB,EAGrB,SAAS+mB,GAAezlB,EAAM0lB,GAC5B1lB,EAAK6kB,aAAaa,EAAS,IAG7B,IAAIC,GAAuBl+B,OAAOsN,OAAO,CACvChH,cAAe22B,GACfI,gBAAiBA,GACjBpd,eAAgBA,GAChBsd,cAAeA,GACfC,aAAcA,GACdG,YAAaA,GACbC,YAAaA,GACbjC,WAAYA,GACZkC,YAAaA,GACbX,QAASA,GACTY,eAAgBA,GAChBE,cAAeA,KAKbrQ,GAAM,CACR/sB,OAAQ,SAAiB+O,EAAG+I,GAC1BylB,GAAYzlB,IAEdjC,OAAQ,SAAiB2T,EAAU1R,GAC7B0R,EAAShkB,KAAKunB,MAAQjV,EAAMtS,KAAKunB,MACnCwQ,GAAY/T,GAAU,GACtB+T,GAAYzlB,KAGhBiS,QAAS,SAAkBjS,GACzBylB,GAAYzlB,GAAO,KAIvB,SAASylB,GAAazlB,EAAO0lB,GAC3B,IAAIv9B,EAAM6X,EAAMtS,KAAKunB,IACrB,GAAKlgB,EAAM5M,GAAX,CAEA,IAAIua,EAAK1C,EAAMvB,QACXwW,EAAMjV,EAAMjB,mBAAqBiB,EAAMxB,IACvCmnB,EAAOjjB,EAAGmV,MACV6N,EACEl3B,MAAMsH,QAAQ6vB,EAAKx9B,IACrBoO,EAAOovB,EAAKx9B,GAAM8sB,GACT0Q,EAAKx9B,KAAS8sB,IACvB0Q,EAAKx9B,QAAOiB,GAGV4W,EAAMtS,KAAKk4B,SACRp3B,MAAMsH,QAAQ6vB,EAAKx9B,IAEbw9B,EAAKx9B,GAAKsO,QAAQwe,GAAO,GAElC0Q,EAAKx9B,GAAKgF,KAAK8nB,GAHf0Q,EAAKx9B,GAAO,CAAC8sB,GAMf0Q,EAAKx9B,GAAO8sB,GAiBlB,IAAI4Q,GAAY,IAAIznB,GAAM,GAAI,GAAI,IAE9B2E,GAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,WAEvD,SAAS+iB,GAAWz8B,EAAGC,GACrB,OACED,EAAElB,MAAQmB,EAAEnB,KACZkB,EAAEsV,eAAiBrV,EAAEqV,eAEjBtV,EAAEgV,MAAQ/U,EAAE+U,KACZhV,EAAE+V,YAAc9V,EAAE8V,WAClBrK,EAAM1L,EAAEqE,QAAUqH,EAAMzL,EAAEoE,OAC1Bq4B,GAAc18B,EAAGC,IAEjB0L,EAAO3L,EAAEmW,qBACT3K,EAAQvL,EAAEqV,aAAa3T,QAM/B,SAAS+6B,GAAe18B,EAAGC,GACzB,GAAc,UAAVD,EAAEgV,IAAmB,OAAO,EAChC,IAAIzX,EACAo/B,EAAQjxB,EAAMnO,EAAIyC,EAAEqE,OAASqH,EAAMnO,EAAIA,EAAE2iB,QAAU3iB,EAAEsc,KACrD+iB,EAAQlxB,EAAMnO,EAAI0C,EAAEoE,OAASqH,EAAMnO,EAAIA,EAAE2iB,QAAU3iB,EAAEsc,KACzD,OAAO8iB,IAAUC,GAAS9B,GAAgB6B,IAAU7B,GAAgB8B,GAGtE,SAASC,GAAmB5nB,EAAU6nB,EAAUC,GAC9C,IAAIx/B,EAAGuB,EACHiO,EAAM,GACV,IAAKxP,EAAIu/B,EAAUv/B,GAAKw/B,IAAUx/B,EAChCuB,EAAMmW,EAAS1X,GAAGuB,IACd4M,EAAM5M,KAAQiO,EAAIjO,GAAOvB,GAE/B,OAAOwP,EAGT,SAASiwB,GAAqBC,GAC5B,IAAI1/B,EAAGkzB,EACHxC,EAAM,GAENxwB,EAAUw/B,EAAQx/B,QAClB0+B,EAAUc,EAAQd,QAEtB,IAAK5+B,EAAI,EAAGA,EAAImc,GAAM5Z,SAAUvC,EAE9B,IADA0wB,EAAIvU,GAAMnc,IAAM,GACXkzB,EAAI,EAAGA,EAAIhzB,EAAQqC,SAAU2wB,EAC5B/kB,EAAMjO,EAAQgzB,GAAG/W,GAAMnc,MACzB0wB,EAAIvU,GAAMnc,IAAIuG,KAAKrG,EAAQgzB,GAAG/W,GAAMnc,KAK1C,SAAS2/B,EAAa/nB,GACpB,OAAO,IAAIJ,GAAMonB,EAAQhB,QAAQhmB,GAAK/R,cAAe,GAAI,QAAIrD,EAAWoV,GAG1E,SAASgoB,EAAYC,EAAUpW,GAC7B,SAASxH,IACuB,MAAxBA,EAAUwH,WACdqW,EAAWD,GAIf,OADA5d,EAAUwH,UAAYA,EACfxH,EAGT,SAAS6d,EAAY5N,GACnB,IAAI9Z,EAASwmB,EAAQvC,WAAWnK,GAE5B/jB,EAAMiK,IACRwmB,EAAQP,YAAYjmB,EAAQ8Z,GAsBhC,SAAS6N,EACP3mB,EACA4mB,EACAC,EACAC,EACAC,EACAC,EACA72B,GAYA,GAVI4E,EAAMiL,EAAMxB,MAAQzJ,EAAMiyB,KAM5BhnB,EAAQgnB,EAAW72B,GAAS4P,GAAWC,IAGzCA,EAAMb,cAAgB4nB,GAClB1U,EAAgBrS,EAAO4mB,EAAoBC,EAAWC,GAA1D,CAIA,IAAIp5B,EAAOsS,EAAMtS,KACb4Q,EAAW0B,EAAM1B,SACjBD,EAAM2B,EAAM3B,IACZtJ,EAAMsJ,IAeR2B,EAAMxB,IAAMwB,EAAM/X,GACdu9B,EAAQb,gBAAgB3kB,EAAM/X,GAAIoW,GAClCmnB,EAAQ53B,cAAcyQ,EAAK2B,GAC/BinB,EAASjnB,GAIPknB,EAAelnB,EAAO1B,EAAUsoB,GAC5B7xB,EAAMrH,IACRy5B,EAAkBnnB,EAAO4mB,GAE3BhV,EAAOiV,EAAW7mB,EAAMxB,IAAKsoB,IAMtB9xB,EAAOgL,EAAMZ,YACtBY,EAAMxB,IAAMgnB,EAAQX,cAAc7kB,EAAMzB,MACxCqT,EAAOiV,EAAW7mB,EAAMxB,IAAKsoB,KAE7B9mB,EAAMxB,IAAMgnB,EAAQje,eAAevH,EAAMzB,MACzCqT,EAAOiV,EAAW7mB,EAAMxB,IAAKsoB,KAIjC,SAASzU,EAAiBrS,EAAO4mB,EAAoBC,EAAWC,GAC9D,IAAIlgC,EAAIoZ,EAAMtS,KACd,GAAIqH,EAAMnO,GAAI,CACZ,IAAIwgC,EAAgBryB,EAAMiL,EAAMjB,oBAAsBnY,EAAEwqB,UAQxD,GAPIrc,EAAMnO,EAAIA,EAAEqc,OAASlO,EAAMnO,EAAIA,EAAEqqB,OACnCrqB,EAAEoZ,GAAO,GAMPjL,EAAMiL,EAAMjB,mBAMd,OALAsoB,EAAcrnB,EAAO4mB,GACrBhV,EAAOiV,EAAW7mB,EAAMxB,IAAKsoB,GACzB9xB,EAAOoyB,IACTE,EAAoBtnB,EAAO4mB,EAAoBC,EAAWC,IAErD,GAKb,SAASO,EAAernB,EAAO4mB,GACzB7xB,EAAMiL,EAAMtS,KAAK65B,iBACnBX,EAAmBz5B,KAAK5D,MAAMq9B,EAAoB5mB,EAAMtS,KAAK65B,eAC7DvnB,EAAMtS,KAAK65B,cAAgB,MAE7BvnB,EAAMxB,IAAMwB,EAAMjB,kBAAkBsZ,IAChCmP,EAAYxnB,IACdmnB,EAAkBnnB,EAAO4mB,GACzBK,EAASjnB,KAITylB,GAAYzlB,GAEZ4mB,EAAmBz5B,KAAK6S,IAI5B,SAASsnB,EAAqBtnB,EAAO4mB,EAAoBC,EAAWC,GAClE,IAAIlgC,EAKA6gC,EAAYznB,EAChB,MAAOynB,EAAU1oB,kBAEf,GADA0oB,EAAYA,EAAU1oB,kBAAkBwV,OACpCxf,EAAMnO,EAAI6gC,EAAU/5B,OAASqH,EAAMnO,EAAIA,EAAE8gC,YAAa,CACxD,IAAK9gC,EAAI,EAAGA,EAAI0wB,EAAIqQ,SAASx+B,SAAUvC,EACrC0wB,EAAIqQ,SAAS/gC,GAAGi/B,GAAW4B,GAE7Bb,EAAmBz5B,KAAKs6B,GACxB,MAKJ7V,EAAOiV,EAAW7mB,EAAMxB,IAAKsoB,GAG/B,SAASlV,EAAQ5S,EAAQR,EAAKopB,GACxB7yB,EAAMiK,KACJjK,EAAM6yB,GACJpC,EAAQvC,WAAW2E,KAAY5oB,GACjCwmB,EAAQV,aAAa9lB,EAAQR,EAAKopB,GAGpCpC,EAAQN,YAAYlmB,EAAQR,IAKlC,SAAS0oB,EAAgBlnB,EAAO1B,EAAUsoB,GACxC,GAAIp4B,MAAMsH,QAAQwI,GAAW,CACvB,EAGJ,IAAK,IAAI1X,EAAI,EAAGA,EAAI0X,EAASnV,SAAUvC,EACrC+/B,EAAUroB,EAAS1X,GAAIggC,EAAoB5mB,EAAMxB,IAAK,MAAM,EAAMF,EAAU1X,QAErEsO,EAAY8K,EAAMzB,OAC3BinB,EAAQN,YAAYllB,EAAMxB,IAAKgnB,EAAQje,eAAexe,OAAOiX,EAAMzB,QAIvE,SAASipB,EAAaxnB,GACpB,MAAOA,EAAMjB,kBACXiB,EAAQA,EAAMjB,kBAAkBwV,OAElC,OAAOxf,EAAMiL,EAAM3B,KAGrB,SAAS8oB,EAAmBnnB,EAAO4mB,GACjC,IAAK,IAAIvP,EAAM,EAAGA,EAAMC,EAAIpvB,OAAOiB,SAAUkuB,EAC3CC,EAAIpvB,OAAOmvB,GAAKwO,GAAW7lB,GAE7BpZ,EAAIoZ,EAAMtS,KAAKuV,KACXlO,EAAMnO,KACJmO,EAAMnO,EAAEsB,SAAWtB,EAAEsB,OAAO29B,GAAW7lB,GACvCjL,EAAMnO,EAAEgrB,SAAWgV,EAAmBz5B,KAAK6S,IAOnD,SAASinB,EAAUjnB,GACjB,IAAIpZ,EACJ,GAAImO,EAAMnO,EAAIoZ,EAAMlB,WAClB0mB,EAAQF,cAActlB,EAAMxB,IAAK5X,OAC5B,CACL,IAAIihC,EAAW7nB,EACf,MAAO6nB,EACD9yB,EAAMnO,EAAIihC,EAASppB,UAAY1J,EAAMnO,EAAIA,EAAE2e,SAASiL,WACtDgV,EAAQF,cAActlB,EAAMxB,IAAK5X,GAEnCihC,EAAWA,EAAS7oB,OAIpBjK,EAAMnO,EAAI4qB,KACZ5qB,IAAMoZ,EAAMvB,SACZ7X,IAAMoZ,EAAMpB,WACZ7J,EAAMnO,EAAIA,EAAE2e,SAASiL,WAErBgV,EAAQF,cAActlB,EAAMxB,IAAK5X,GAIrC,SAASkhC,EAAWjB,EAAWC,EAAQhW,EAAQiX,EAAU3B,EAAQQ,GAC/D,KAAOmB,GAAY3B,IAAU2B,EAC3BpB,EAAU7V,EAAOiX,GAAWnB,EAAoBC,EAAWC,GAAQ,EAAOhW,EAAQiX,GAItF,SAASC,EAAmBhoB,GAC1B,IAAIpZ,EAAGkzB,EACHpsB,EAAOsS,EAAMtS,KACjB,GAAIqH,EAAMrH,GAER,IADIqH,EAAMnO,EAAI8G,EAAKuV,OAASlO,EAAMnO,EAAIA,EAAEqrB,UAAYrrB,EAAEoZ,GACjDpZ,EAAI,EAAGA,EAAI0wB,EAAIrF,QAAQ9oB,SAAUvC,EAAK0wB,EAAIrF,QAAQrrB,GAAGoZ,GAE5D,GAAIjL,EAAMnO,EAAIoZ,EAAM1B,UAClB,IAAKwb,EAAI,EAAGA,EAAI9Z,EAAM1B,SAASnV,SAAU2wB,EACvCkO,EAAkBhoB,EAAM1B,SAASwb,IAKvC,SAASmO,EAAcnX,EAAQiX,EAAU3B,GACvC,KAAO2B,GAAY3B,IAAU2B,EAAU,CACrC,IAAIG,EAAKpX,EAAOiX,GACZhzB,EAAMmzB,KACJnzB,EAAMmzB,EAAG7pB,MACX8pB,EAA0BD,GAC1BF,EAAkBE,IAElBxB,EAAWwB,EAAG1pB,OAMtB,SAAS2pB,EAA2BnoB,EAAOooB,GACzC,GAAIrzB,EAAMqzB,IAAOrzB,EAAMiL,EAAMtS,MAAO,CAClC,IAAI9G,EACAypB,EAAYiH,EAAI/gB,OAAOpN,OAAS,EAapC,IAZI4L,EAAMqzB,GAGRA,EAAG/X,WAAaA,EAGhB+X,EAAK5B,EAAWxmB,EAAMxB,IAAK6R,GAGzBtb,EAAMnO,EAAIoZ,EAAMjB,oBAAsBhK,EAAMnO,EAAIA,EAAE2tB,SAAWxf,EAAMnO,EAAE8G,OACvEy6B,EAA0BvhC,EAAGwhC,GAE1BxhC,EAAI,EAAGA,EAAI0wB,EAAI/gB,OAAOpN,SAAUvC,EACnC0wB,EAAI/gB,OAAO3P,GAAGoZ,EAAOooB,GAEnBrzB,EAAMnO,EAAIoZ,EAAMtS,KAAKuV,OAASlO,EAAMnO,EAAIA,EAAE2P,QAC5C3P,EAAEoZ,EAAOooB,GAETA,SAGF1B,EAAW1mB,EAAMxB,KAIrB,SAAS6pB,EAAgBxB,EAAWyB,EAAOC,EAAO3B,EAAoB4B,GACpE,IAQIC,EAAaC,EAAUC,EAAa7B,EARpC8B,EAAc,EACdC,EAAc,EACdC,EAAYR,EAAMn/B,OAAS,EAC3B4/B,EAAgBT,EAAM,GACtBU,EAAcV,EAAMQ,GACpBG,EAAYV,EAAMp/B,OAAS,EAC3B+/B,EAAgBX,EAAM,GACtBY,EAAcZ,EAAMU,GAMpBG,GAAWZ,EAMf,MAAOI,GAAeE,GAAaD,GAAeI,EAC5Cp0B,EAAQk0B,GACVA,EAAgBT,IAAQM,GACf/zB,EAAQm0B,GACjBA,EAAcV,IAAQQ,GACbhD,GAAUiD,EAAeG,IAClCG,EAAWN,EAAeG,EAAetC,EAAoB2B,EAAOM,GACpEE,EAAgBT,IAAQM,GACxBM,EAAgBX,IAAQM,IACf/C,GAAUkD,EAAaG,IAChCE,EAAWL,EAAaG,EAAavC,EAAoB2B,EAAOU,GAChED,EAAcV,IAAQQ,GACtBK,EAAcZ,IAAQU,IACbnD,GAAUiD,EAAeI,IAClCE,EAAWN,EAAeI,EAAavC,EAAoB2B,EAAOU,GAClEG,GAAW5D,EAAQV,aAAa+B,EAAWkC,EAAcvqB,IAAKgnB,EAAQL,YAAY6D,EAAYxqB,MAC9FuqB,EAAgBT,IAAQM,GACxBO,EAAcZ,IAAQU,IACbnD,GAAUkD,EAAaE,IAChCG,EAAWL,EAAaE,EAAetC,EAAoB2B,EAAOM,GAClEO,GAAW5D,EAAQV,aAAa+B,EAAWmC,EAAYxqB,IAAKuqB,EAAcvqB,KAC1EwqB,EAAcV,IAAQQ,GACtBI,EAAgBX,IAAQM,KAEpBh0B,EAAQ4zB,KAAgBA,EAAcvC,GAAkBoC,EAAOM,EAAaE,IAChFJ,EAAW3zB,EAAMm0B,EAAc/gC,KAC3BsgC,EAAYS,EAAc/gC,KAC1BmhC,EAAaJ,EAAeZ,EAAOM,EAAaE,GAChDj0B,EAAQ6zB,GACV/B,EAAUuC,EAAetC,EAAoBC,EAAWkC,EAAcvqB,KAAK,EAAO+pB,EAAOM,IAEzFF,EAAcL,EAAMI,GAChB5C,GAAU6C,EAAaO,IACzBG,EAAWV,EAAaO,EAAetC,EAAoB2B,EAAOM,GAClEP,EAAMI,QAAYt/B,EAClBggC,GAAW5D,EAAQV,aAAa+B,EAAW8B,EAAYnqB,IAAKuqB,EAAcvqB,MAG1EmoB,EAAUuC,EAAetC,EAAoBC,EAAWkC,EAAcvqB,KAAK,EAAO+pB,EAAOM,IAG7FK,EAAgBX,IAAQM,IAGxBD,EAAcE,GAChBhC,EAASjyB,EAAQ0zB,EAAMU,EAAY,IAAM,KAAOV,EAAMU,EAAY,GAAGzqB,IACrEspB,EAAUjB,EAAWC,EAAQyB,EAAOM,EAAaI,EAAWrC,IACnDiC,EAAcI,GACvBhB,EAAaK,EAAOM,EAAaE,GAsBrC,SAASQ,EAAczpB,EAAMyoB,EAAOzwB,EAAO0xB,GACzC,IAAK,IAAI3iC,EAAIiR,EAAOjR,EAAI2iC,EAAK3iC,IAAK,CAChC,IAAIK,EAAIqhC,EAAM1hC,GACd,GAAImO,EAAM9N,IAAM6+B,GAAUjmB,EAAM5Y,GAAM,OAAOL,GAIjD,SAASyiC,EACP3X,EACA1R,EACA4mB,EACAI,EACA72B,EACAq4B,GAEA,GAAI9W,IAAa1R,EAAjB,CAIIjL,EAAMiL,EAAMxB,MAAQzJ,EAAMiyB,KAE5BhnB,EAAQgnB,EAAW72B,GAAS4P,GAAWC,IAGzC,IAAIxB,EAAMwB,EAAMxB,IAAMkT,EAASlT,IAE/B,GAAIxJ,EAAO0c,EAASlS,oBACdzK,EAAMiL,EAAMrB,aAAa4W,UAC3BiU,EAAQ9X,EAASlT,IAAKwB,EAAO4mB,GAE7B5mB,EAAMR,oBAAqB,OAS/B,GAAIxK,EAAOgL,EAAMd,WACflK,EAAO0c,EAASxS,WAChBc,EAAM7X,MAAQupB,EAASvpB,MACtB6M,EAAOgL,EAAMX,WAAarK,EAAOgL,EAAMV,SAExCU,EAAMjB,kBAAoB2S,EAAS3S,sBALrC,CASA,IAAInY,EACA8G,EAAOsS,EAAMtS,KACbqH,EAAMrH,IAASqH,EAAMnO,EAAI8G,EAAKuV,OAASlO,EAAMnO,EAAIA,EAAE0qB,WACrD1qB,EAAE8qB,EAAU1R,GAGd,IAAIsoB,EAAQ5W,EAASpT,SACjB4pB,EAAKloB,EAAM1B,SACf,GAAIvJ,EAAMrH,IAAS85B,EAAYxnB,GAAQ,CACrC,IAAKpZ,EAAI,EAAGA,EAAI0wB,EAAIvZ,OAAO5U,SAAUvC,EAAK0wB,EAAIvZ,OAAOnX,GAAG8qB,EAAU1R,GAC9DjL,EAAMnO,EAAI8G,EAAKuV,OAASlO,EAAMnO,EAAIA,EAAEmX,SAAWnX,EAAE8qB,EAAU1R,GAE7DnL,EAAQmL,EAAMzB,MACZxJ,EAAMuzB,IAAUvzB,EAAMmzB,GACpBI,IAAUJ,GAAMG,EAAe7pB,EAAK8pB,EAAOJ,EAAItB,EAAoB4B,GAC9DzzB,EAAMmzB,IAIXnzB,EAAM2c,EAASnT,OAASinB,EAAQJ,eAAe5mB,EAAK,IACxDspB,EAAUtpB,EAAK,KAAM0pB,EAAI,EAAGA,EAAG/+B,OAAS,EAAGy9B,IAClC7xB,EAAMuzB,GACfL,EAAaK,EAAO,EAAGA,EAAMn/B,OAAS,GAC7B4L,EAAM2c,EAASnT,OACxBinB,EAAQJ,eAAe5mB,EAAK,IAErBkT,EAASnT,OAASyB,EAAMzB,MACjCinB,EAAQJ,eAAe5mB,EAAKwB,EAAMzB,MAEhCxJ,EAAMrH,IACJqH,EAAMnO,EAAI8G,EAAKuV,OAASlO,EAAMnO,EAAIA,EAAE6iC,YAAc7iC,EAAE8qB,EAAU1R,KAItE,SAAS0pB,EAAkB1pB,EAAO+Z,EAAO4P,GAGvC,GAAI30B,EAAO20B,IAAY50B,EAAMiL,EAAMhB,QACjCgB,EAAMhB,OAAOtR,KAAK65B,cAAgBxN,OAElC,IAAK,IAAInzB,EAAI,EAAGA,EAAImzB,EAAM5wB,SAAUvC,EAClCmzB,EAAMnzB,GAAG8G,KAAKuV,KAAK2O,OAAOmI,EAAMnzB,IAKtC,IAKIgjC,EAAmB3zB,EAAQ,2CAG/B,SAASuzB,EAAShrB,EAAKwB,EAAO4mB,EAAoBiD,GAChD,IAAIjjC,EACAyX,EAAM2B,EAAM3B,IACZ3Q,EAAOsS,EAAMtS,KACb4Q,EAAW0B,EAAM1B,SAIrB,GAHAurB,EAASA,GAAWn8B,GAAQA,EAAKsmB,IACjChU,EAAMxB,IAAMA,EAERxJ,EAAOgL,EAAMZ,YAAcrK,EAAMiL,EAAMrB,cAEzC,OADAqB,EAAMR,oBAAqB,GACpB,EAQT,GAAIzK,EAAMrH,KACJqH,EAAMnO,EAAI8G,EAAKuV,OAASlO,EAAMnO,EAAIA,EAAEqqB,OAASrqB,EAAEoZ,GAAO,GACtDjL,EAAMnO,EAAIoZ,EAAMjB,oBAGlB,OADAsoB,EAAcrnB,EAAO4mB,IACd,EAGX,GAAI7xB,EAAMsJ,GAAM,CACd,GAAItJ,EAAMuJ,GAER,GAAKE,EAAIsrB,gBAIP,GAAI/0B,EAAMnO,EAAI8G,IAASqH,EAAMnO,EAAIA,EAAEwmB,WAAarY,EAAMnO,EAAIA,EAAEmjC,YAC1D,GAAInjC,IAAM4X,EAAIurB,UAWZ,OAAO,MAEJ,CAIL,IAFA,IAAIC,GAAgB,EAChB9G,EAAY1kB,EAAIyrB,WACX5S,EAAM,EAAGA,EAAM/Y,EAASnV,OAAQkuB,IAAO,CAC9C,IAAK6L,IAAcsG,EAAQtG,EAAW5kB,EAAS+Y,GAAMuP,EAAoBiD,GAAS,CAChFG,GAAgB,EAChB,MAEF9G,EAAYA,EAAUiC,YAIxB,IAAK6E,GAAiB9G,EAUpB,OAAO,OAxCXgE,EAAelnB,EAAO1B,EAAUsoB,GA6CpC,GAAI7xB,EAAMrH,GAAO,CACf,IAAIw8B,GAAa,EACjB,IAAK,IAAI/hC,KAAOuF,EACd,IAAKk8B,EAAiBzhC,GAAM,CAC1B+hC,GAAa,EACb/C,EAAkBnnB,EAAO4mB,GACzB,OAGCsD,GAAcx8B,EAAK,UAEtBma,GAASna,EAAK,gBAGT8Q,EAAI9Q,OAASsS,EAAMzB,OAC5BC,EAAI9Q,KAAOsS,EAAMzB,MAEnB,OAAO,EAcT,OAAO,SAAgBmT,EAAU1R,EAAOkR,EAAWsX,GACjD,IAAI3zB,EAAQmL,GAAZ,CAKA,IAAImqB,GAAiB,EACjBvD,EAAqB,GAEzB,GAAI/xB,EAAQ6c,GAEVyY,GAAiB,EACjBxD,EAAU3mB,EAAO4mB,OACZ,CACL,IAAIwD,EAAgBr1B,EAAM2c,EAAS2Y,UACnC,IAAKD,GAAiBtE,GAAUpU,EAAU1R,GAExCqpB,EAAW3X,EAAU1R,EAAO4mB,EAAoB,KAAM,KAAM4B,OACvD,CACL,GAAI4B,EAAe,CAQjB,GAJ0B,IAAtB1Y,EAAS2Y,UAAkB3Y,EAAS4Y,aAAalxB,KACnDsY,EAAS6Y,gBAAgBnxB,GACzB8X,GAAY,GAEVlc,EAAOkc,IACLsY,EAAQ9X,EAAU1R,EAAO4mB,GAE3B,OADA8C,EAAiB1pB,EAAO4mB,GAAoB,GACrClV,EAaXA,EAAW6U,EAAY7U,GAIzB,IAAI8Y,EAAS9Y,EAASlT,IAClBqoB,EAAYrB,EAAQvC,WAAWuH,GAcnC,GAXA7D,EACE3mB,EACA4mB,EAIA4D,EAAOC,SAAW,KAAO5D,EACzBrB,EAAQL,YAAYqF,IAIlBz1B,EAAMiL,EAAMhB,QAAS,CACvB,IAAI6oB,EAAW7nB,EAAMhB,OACjB0rB,EAAYlD,EAAYxnB,GAC5B,MAAO6nB,EAAU,CACf,IAAK,IAAIjhC,EAAI,EAAGA,EAAI0wB,EAAIrF,QAAQ9oB,SAAUvC,EACxC0wB,EAAIrF,QAAQrrB,GAAGihC,GAGjB,GADAA,EAASrpB,IAAMwB,EAAMxB,IACjBksB,EAAW,CACb,IAAK,IAAIrT,EAAM,EAAGA,EAAMC,EAAIpvB,OAAOiB,SAAUkuB,EAC3CC,EAAIpvB,OAAOmvB,GAAKwO,GAAWgC,GAK7B,IAAIjW,EAASiW,EAASn6B,KAAKuV,KAAK2O,OAChC,GAAIA,EAAOvI,OAET,IAAK,IAAIshB,EAAM,EAAGA,EAAM/Y,EAAOrJ,IAAIpf,OAAQwhC,IACzC/Y,EAAOrJ,IAAIoiB,UAIflF,GAAYoC,GAEdA,EAAWA,EAAS7oB,QAKpBjK,EAAM8xB,GACRoB,EAAa,CAACvW,GAAW,EAAG,GACnB3c,EAAM2c,EAASrT,MACxB2pB,EAAkBtW,IAMxB,OADAgY,EAAiB1pB,EAAO4mB,EAAoBuD,GACrCnqB,EAAMxB,IAnGPzJ,EAAM2c,IAAasW,EAAkBtW,IAyG/C,IAAI3N,GAAa,CACf7b,OAAQ0iC,GACR7sB,OAAQ6sB,GACR3Y,QAAS,SAA2BjS,GAClC4qB,GAAiB5qB,EAAO6lB,MAI5B,SAAS+E,GAAkBlZ,EAAU1R,IAC/B0R,EAAShkB,KAAKqW,YAAc/D,EAAMtS,KAAKqW,aACzCoU,GAAQzG,EAAU1R,GAItB,SAASmY,GAASzG,EAAU1R,GAC1B,IAQI7X,EAAK0iC,EAAQC,EARbC,EAAWrZ,IAAamU,GACxBmF,EAAYhrB,IAAU6lB,GACtBoF,EAAUC,GAAsBxZ,EAAShkB,KAAKqW,WAAY2N,EAASjT,SACnE0sB,EAAUD,GAAsBlrB,EAAMtS,KAAKqW,WAAY/D,EAAMvB,SAE7D2sB,EAAiB,GACjBC,EAAoB,GAGxB,IAAKljC,KAAOgjC,EACVN,EAASI,EAAQ9iC,GACjB2iC,EAAMK,EAAQhjC,GACT0iC,GAQHC,EAAI5O,SAAW2O,EAAOhjC,MACtBijC,EAAIQ,OAAST,EAAOU,IACpBC,GAAWV,EAAK,SAAU9qB,EAAO0R,GAC7BoZ,EAAInwB,KAAOmwB,EAAInwB,IAAI8wB,kBACrBJ,EAAkBl+B,KAAK29B,KAVzBU,GAAWV,EAAK,OAAQ9qB,EAAO0R,GAC3BoZ,EAAInwB,KAAOmwB,EAAInwB,IAAI4F,UACrB6qB,EAAej+B,KAAK29B,IAa1B,GAAIM,EAAejiC,OAAQ,CACzB,IAAIuiC,EAAa,WACf,IAAK,IAAI9kC,EAAI,EAAGA,EAAIwkC,EAAejiC,OAAQvC,IACzC4kC,GAAWJ,EAAexkC,GAAI,WAAYoZ,EAAO0R,IAGjDqZ,EACF9hB,GAAejJ,EAAO,SAAU0rB,GAEhCA,IAYJ,GARIL,EAAkBliC,QACpB8f,GAAejJ,EAAO,aAAa,WACjC,IAAK,IAAIpZ,EAAI,EAAGA,EAAIykC,EAAkBliC,OAAQvC,IAC5C4kC,GAAWH,EAAkBzkC,GAAI,mBAAoBoZ,EAAO0R,OAK7DqZ,EACH,IAAK5iC,KAAO8iC,EACLE,EAAQhjC,IAEXqjC,GAAWP,EAAQ9iC,GAAM,SAAUupB,EAAUA,EAAUsZ,GAM/D,IAAIW,GAAiBrkC,OAAOY,OAAO,MAEnC,SAASgjC,GACPpnB,EACApB,GAEA,IAKI9b,EAAGkkC,EALH3yB,EAAM7Q,OAAOY,OAAO,MACxB,IAAK4b,EAEH,OAAO3L,EAGT,IAAKvR,EAAI,EAAGA,EAAIkd,EAAK3a,OAAQvC,IAC3BkkC,EAAMhnB,EAAKld,GACNkkC,EAAIc,YAEPd,EAAIc,UAAYD,IAElBxzB,EAAI0zB,GAAcf,IAAQA,EAC1BA,EAAInwB,IAAM4J,GAAa7B,EAAG6C,SAAU,aAAculB,EAAI3jC,MAAM,GAG9D,OAAOgR,EAGT,SAAS0zB,GAAef,GACtB,OAAOA,EAAIgB,SAAahB,EAAQ,KAAI,IAAOxjC,OAAO0R,KAAK8xB,EAAIc,WAAa,IAAI1hC,KAAK,KAGnF,SAASshC,GAAYV,EAAK7nB,EAAMjD,EAAO0R,EAAUsZ,GAC/C,IAAI/hC,EAAK6hC,EAAInwB,KAAOmwB,EAAInwB,IAAIsI,GAC5B,GAAIha,EACF,IACEA,EAAG+W,EAAMxB,IAAKssB,EAAK9qB,EAAO0R,EAAUsZ,GACpC,MAAOn3B,IACPgS,GAAYhS,GAAGmM,EAAMvB,QAAU,aAAgBqsB,EAAQ,KAAI,IAAM7nB,EAAO,UAK9E,IAAI8oB,GAAc,CAChB9W,GACAlR,IAKF,SAASioB,GAAata,EAAU1R,GAC9B,IAAI5D,EAAO4D,EAAMtB,iBACjB,KAAI3J,EAAMqH,KAA4C,IAAnCA,EAAKO,KAAK3M,QAAQi8B,iBAGjCp3B,EAAQ6c,EAAShkB,KAAK6b,SAAU1U,EAAQmL,EAAMtS,KAAK6b,QAAvD,CAGA,IAAIphB,EAAK6d,EAAK+C,EACVvK,EAAMwB,EAAMxB,IACZ0tB,EAAWxa,EAAShkB,KAAK6b,OAAS,GAClCA,EAAQvJ,EAAMtS,KAAK6b,OAAS,GAMhC,IAAKphB,KAJD4M,EAAMwU,EAAM9I,UACd8I,EAAQvJ,EAAMtS,KAAK6b,MAAQxR,EAAO,GAAIwR,IAG5BA,EACVvD,EAAMuD,EAAMphB,GACZ4gB,EAAMmjB,EAAS/jC,GACX4gB,IAAQ/C,GACVmmB,GAAQ3tB,EAAKrW,EAAK6d,EAAKhG,EAAMtS,KAAKsmB,KAStC,IAAK7rB,KAHAwT,IAAQE,KAAW0N,EAAM1hB,QAAUqkC,EAASrkC,OAC/CskC,GAAQ3tB,EAAK,QAAS+K,EAAM1hB,OAElBqkC,EACNr3B,EAAQ0U,EAAMphB,MACZ26B,GAAQ36B,GACVqW,EAAI4tB,kBAAkBvJ,GAASE,GAAa56B,IAClCq6B,GAAiBr6B,IAC3BqW,EAAI+rB,gBAAgBpiC,KAM5B,SAASgkC,GAASrT,EAAI3wB,EAAKN,EAAOwkC,GAC5BA,GAAWvT,EAAG0L,QAAQ/tB,QAAQ,MAAQ,EACxC61B,GAAYxT,EAAI3wB,EAAKN,GACZ+6B,GAAcz6B,GAGnBw6B,GAAiB96B,GACnBixB,EAAGyR,gBAAgBpiC,IAInBN,EAAgB,oBAARM,GAA4C,UAAf2wB,EAAG0L,QACpC,OACAr8B,EACJ2wB,EAAG4L,aAAav8B,EAAKN,IAEd26B,GAAiBr6B,GAC1B2wB,EAAG4L,aAAav8B,EAAKu6B,GAAuBv6B,EAAKN,IACxCi7B,GAAQ36B,GACbw6B,GAAiB96B,GACnBixB,EAAGsT,kBAAkBvJ,GAASE,GAAa56B,IAE3C2wB,EAAGyT,eAAe1J,GAAS16B,EAAKN,GAGlCykC,GAAYxT,EAAI3wB,EAAKN,GAIzB,SAASykC,GAAaxT,EAAI3wB,EAAKN,GAC7B,GAAI86B,GAAiB96B,GACnBixB,EAAGyR,gBAAgBpiC,OACd,CAKL,GACEwT,KAASC,IACM,aAAfkd,EAAG0L,SACK,gBAARr8B,GAAmC,KAAVN,IAAiBixB,EAAG0T,OAC7C,CACA,IAAIC,EAAU,SAAU54B,GACtBA,EAAE64B,2BACF5T,EAAG6T,oBAAoB,QAASF,IAElC3T,EAAGzc,iBAAiB,QAASowB,GAE7B3T,EAAG0T,QAAS,EAEd1T,EAAG4L,aAAav8B,EAAKN,IAIzB,IAAI0hB,GAAQ,CACVrhB,OAAQ8jC,GACRjuB,OAAQiuB,IAKV,SAASY,GAAalb,EAAU1R,GAC9B,IAAI8Y,EAAK9Y,EAAMxB,IACX9Q,EAAOsS,EAAMtS,KACbm/B,EAAUnb,EAAShkB,KACvB,KACEmH,EAAQnH,EAAK21B,cACbxuB,EAAQnH,EAAK2mB,SACXxf,EAAQg4B,IACNh4B,EAAQg4B,EAAQxJ,cAChBxuB,EAAQg4B,EAAQxY,SALtB,CAYA,IAAIyY,EAAM9J,GAAiBhjB,GAGvB+sB,EAAkBjU,EAAGkU,mBACrBj4B,EAAMg4B,KACRD,EAAMxiC,GAAOwiC,EAAKvJ,GAAewJ,KAI/BD,IAAQhU,EAAGmU,aACbnU,EAAG4L,aAAa,QAASoI,GACzBhU,EAAGmU,WAAaH,IAIpB,IAyCII,GAzCAC,GAAQ,CACVjlC,OAAQ0kC,GACR7uB,OAAQ6uB,IAaNQ,GAAc,MACdC,GAAuB,MAQ3B,SAASC,GAAiB3kB,GAExB,GAAI5T,EAAM4T,EAAGykB,KAAe,CAE1B,IAAIpkB,EAAQrN,GAAO,SAAW,QAC9BgN,EAAGK,GAAS,GAAG1e,OAAOqe,EAAGykB,IAAczkB,EAAGK,IAAU,WAC7CL,EAAGykB,IAKRr4B,EAAM4T,EAAG0kB,OACX1kB,EAAG4kB,OAAS,GAAGjjC,OAAOqe,EAAG0kB,IAAuB1kB,EAAG4kB,QAAU,WACtD5kB,EAAG0kB,KAMd,SAASG,GAAqBxkB,EAAO1C,EAASH,GAC5C,IAAI4Q,EAAUmW,GACd,OAAO,SAASlW,IACd,IAAI7e,EAAMmO,EAAQ/c,MAAM,KAAMC,WAClB,OAAR2O,GACFs1B,GAASzkB,EAAOgO,EAAa7Q,EAAS4Q,IAQ5C,IAAI2W,GAAkB/mB,MAAsB5K,IAAQolB,OAAOplB,GAAK,KAAO,IAEvE,SAAS4xB,GACPxmC,EACAmf,EACAH,EACAiC,GAQA,GAAIslB,GAAiB,CACnB,IAAIE,EAAoBxT,GACpB/Z,EAAWiG,EACfA,EAAUjG,EAASwtB,SAAW,SAAUh6B,GACtC,GAIEA,EAAErC,SAAWqC,EAAEi6B,eAEfj6B,EAAE2mB,WAAaoT,GAIf/5B,EAAE2mB,WAAa,GAIf3mB,EAAErC,OAAOu8B,gBAAkBzmB,SAE3B,OAAOjH,EAAS9W,MAAMY,KAAMX,YAIlC0jC,GAAS7wB,iBACPlV,EACAmf,EACAnK,GACI,CAAEgK,QAASA,EAASiC,QAASA,GAC7BjC,GAIR,SAASsnB,GACPtmC,EACAmf,EACAH,EACA4Q,IAECA,GAAWmW,IAAUP,oBACpBxlC,EACAmf,EAAQunB,UAAYvnB,EACpBH,GAIJ,SAAS6nB,GAAoBtc,EAAU1R,GACrC,IAAInL,EAAQ6c,EAAShkB,KAAKib,MAAO9T,EAAQmL,EAAMtS,KAAKib,IAApD,CAGA,IAAIA,EAAK3I,EAAMtS,KAAKib,IAAM,GACtBC,EAAQ8I,EAAShkB,KAAKib,IAAM,GAChCukB,GAAWltB,EAAMxB,IACjB8uB,GAAgB3kB,GAChBD,GAAgBC,EAAIC,EAAO+kB,GAAOF,GAAUD,GAAqBxtB,EAAMvB,SACvEyuB,QAAW9jC,GAGb,IAOI6kC,GAPAC,GAAS,CACXhmC,OAAQ8lC,GACRjwB,OAAQiwB,IAOV,SAASG,GAAgBzc,EAAU1R,GACjC,IAAInL,EAAQ6c,EAAShkB,KAAK0f,YAAavY,EAAQmL,EAAMtS,KAAK0f,UAA1D,CAGA,IAAIjlB,EAAK6d,EACLxH,EAAMwB,EAAMxB,IACZ4vB,EAAW1c,EAAShkB,KAAK0f,UAAY,GACrChK,EAAQpD,EAAMtS,KAAK0f,UAAY,GAMnC,IAAKjlB,KAJD4M,EAAMqO,EAAM3C,UACd2C,EAAQpD,EAAMtS,KAAK0f,SAAWrV,EAAO,GAAIqL,IAG/BgrB,EACJjmC,KAAOib,IACX5E,EAAIrW,GAAO,IAIf,IAAKA,KAAOib,EAAO,CAKjB,GAJA4C,EAAM5C,EAAMjb,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAEhD,GADI6X,EAAM1B,WAAY0B,EAAM1B,SAASnV,OAAS,GAC1C6c,IAAQooB,EAASjmC,GAAQ,SAGC,IAA1BqW,EAAI6vB,WAAWllC,QACjBqV,EAAIymB,YAAYzmB,EAAI6vB,WAAW,IAInC,GAAY,UAARlmC,GAAmC,aAAhBqW,EAAIgmB,QAAwB,CAGjDhmB,EAAI8vB,OAAStoB,EAEb,IAAIuoB,EAAS15B,EAAQmR,GAAO,GAAKjd,OAAOid,GACpCwoB,GAAkBhwB,EAAK+vB,KACzB/vB,EAAI3W,MAAQ0mC,QAET,GAAY,cAARpmC,GAAuB47B,GAAMvlB,EAAIgmB,UAAY3vB,EAAQ2J,EAAIurB,WAAY,CAE9EkE,GAAeA,IAAgB3mB,SAAS1Z,cAAc,OACtDqgC,GAAalE,UAAY,QAAU/jB,EAAM,SACzC,IAAI4d,EAAMqK,GAAahE,WACvB,MAAOzrB,EAAIyrB,WACTzrB,EAAIymB,YAAYzmB,EAAIyrB,YAEtB,MAAOrG,EAAIqG,WACTzrB,EAAI0mB,YAAYtB,EAAIqG,iBAEjB,GAKLjkB,IAAQooB,EAASjmC,GAIjB,IACEqW,EAAIrW,GAAO6d,EACX,MAAOnS,QAQf,SAAS26B,GAAmBhwB,EAAKiwB,GAC/B,OAASjwB,EAAIkwB,YACK,WAAhBlwB,EAAIgmB,SACJmK,GAAqBnwB,EAAKiwB,IAC1BG,GAAqBpwB,EAAKiwB,IAI9B,SAASE,GAAsBnwB,EAAKiwB,GAGlC,IAAII,GAAa,EAGjB,IAAMA,EAAavnB,SAASwnB,gBAAkBtwB,EAAO,MAAO3K,KAC5D,OAAOg7B,GAAcrwB,EAAI3W,QAAU4mC,EAGrC,SAASG,GAAsBpwB,EAAKwD,GAClC,IAAIna,EAAQ2W,EAAI3W,MACZ+jC,EAAYptB,EAAIuwB,YACpB,GAAIh6B,EAAM62B,GAAY,CACpB,GAAIA,EAAUoD,OACZ,OAAOj5B,EAASlO,KAAWkO,EAASiM,GAEtC,GAAI4pB,EAAUqD,KACZ,OAAOpnC,EAAMonC,SAAWjtB,EAAOitB,OAGnC,OAAOpnC,IAAUma,EAGnB,IAAIoL,GAAW,CACbllB,OAAQimC,GACRpwB,OAAQowB,IAKNe,GAAiBt4B,GAAO,SAAUu4B,GACpC,IAAIh3B,EAAM,GACNi3B,EAAgB,gBAChBC,EAAoB,QAOxB,OANAF,EAAQ94B,MAAM+4B,GAAetiC,SAAQ,SAAU0J,GAC7C,GAAIA,EAAM,CACR,IAAIylB,EAAMzlB,EAAKH,MAAMg5B,GACrBpT,EAAI9yB,OAAS,IAAMgP,EAAI8jB,EAAI,GAAGgT,QAAUhT,EAAI,GAAGgT,YAG5C92B,KAIT,SAASm3B,GAAoB5hC,GAC3B,IAAI0mB,EAAQmb,GAAsB7hC,EAAK0mB,OAGvC,OAAO1mB,EAAK8hC,YACRz3B,EAAOrK,EAAK8hC,YAAapb,GACzBA,EAIN,SAASmb,GAAuBE,GAC9B,OAAIjhC,MAAMsH,QAAQ25B,GACTv3B,EAASu3B,GAEU,kBAAjBA,EACFP,GAAeO,GAEjBA,EAOT,SAASC,GAAU1vB,EAAO2vB,GACxB,IACIC,EADAz3B,EAAM,GAGV,GAAIw3B,EAAY,CACd,IAAIzM,EAAYljB,EAChB,MAAOkjB,EAAUnkB,kBACfmkB,EAAYA,EAAUnkB,kBAAkBwV,OAEtC2O,GAAaA,EAAUx1B,OACtBkiC,EAAYN,GAAmBpM,EAAUx1B,QAE1CqK,EAAOI,EAAKy3B,IAKbA,EAAYN,GAAmBtvB,EAAMtS,QACxCqK,EAAOI,EAAKy3B,GAGd,IAAI3M,EAAajjB,EACjB,MAAQijB,EAAaA,EAAWjkB,OAC1BikB,EAAWv1B,OAASkiC,EAAYN,GAAmBrM,EAAWv1B,QAChEqK,EAAOI,EAAKy3B,GAGhB,OAAOz3B,EAKT,IAyBI03B,GAzBAC,GAAW,MACXC,GAAc,iBACdC,GAAU,SAAUlX,EAAI3xB,EAAMqO,GAEhC,GAAIs6B,GAAShnC,KAAK3B,GAChB2xB,EAAG1E,MAAM6b,YAAY9oC,EAAMqO,QACtB,GAAIu6B,GAAYjnC,KAAK0M,GAC1BsjB,EAAG1E,MAAM6b,YAAY34B,EAAUnQ,GAAOqO,EAAI/H,QAAQsiC,GAAa,IAAK,iBAC/D,CACL,IAAIG,EAAiBC,GAAUhpC,GAC/B,GAAIqH,MAAMsH,QAAQN,GAIhB,IAAK,IAAI5O,EAAI,EAAG0Z,EAAM9K,EAAIrM,OAAQvC,EAAI0Z,EAAK1Z,IACzCkyB,EAAG1E,MAAM8b,GAAkB16B,EAAI5O,QAGjCkyB,EAAG1E,MAAM8b,GAAkB16B,IAK7B46B,GAAc,CAAC,SAAU,MAAO,MAGhCD,GAAYv5B,GAAO,SAAUmO,GAG/B,GAFA8qB,GAAaA,IAAcvoB,SAAS1Z,cAAc,OAAOwmB,MACzDrP,EAAO/N,EAAS+N,GACH,WAATA,GAAsBA,KAAQ8qB,GAChC,OAAO9qB,EAGT,IADA,IAAIsrB,EAAUtrB,EAAK3N,OAAO,GAAGF,cAAgB6N,EAAKrb,MAAM,GAC/C9C,EAAI,EAAGA,EAAIwpC,GAAYjnC,OAAQvC,IAAK,CAC3C,IAAIO,EAAOipC,GAAYxpC,GAAKypC,EAC5B,GAAIlpC,KAAQ0oC,GACV,OAAO1oC,MAKb,SAASmpC,GAAa5e,EAAU1R,GAC9B,IAAItS,EAAOsS,EAAMtS,KACbm/B,EAAUnb,EAAShkB,KAEvB,KAAImH,EAAQnH,EAAK8hC,cAAgB36B,EAAQnH,EAAK0mB,QAC5Cvf,EAAQg4B,EAAQ2C,cAAgB36B,EAAQg4B,EAAQzY,QADlD,CAMA,IAAIpO,EAAK7e,EACL2xB,EAAK9Y,EAAMxB,IACX+xB,EAAiB1D,EAAQ2C,YACzBgB,EAAkB3D,EAAQ4D,iBAAmB5D,EAAQzY,OAAS,GAG9Dsc,EAAWH,GAAkBC,EAE7Bpc,EAAQmb,GAAsBvvB,EAAMtS,KAAK0mB,QAAU,GAKvDpU,EAAMtS,KAAK+iC,gBAAkB17B,EAAMqf,EAAM3T,QACrC1I,EAAO,GAAIqc,GACXA,EAEJ,IAAIuc,EAAWjB,GAAS1vB,GAAO,GAE/B,IAAK7Y,KAAQupC,EACP77B,EAAQ87B,EAASxpC,KACnB6oC,GAAQlX,EAAI3xB,EAAM,IAGtB,IAAKA,KAAQwpC,EACX3qB,EAAM2qB,EAASxpC,GACX6e,IAAQ0qB,EAASvpC,IAEnB6oC,GAAQlX,EAAI3xB,EAAa,MAAP6e,EAAc,GAAKA,IAK3C,IAAIoO,GAAQ,CACVlsB,OAAQooC,GACRvyB,OAAQuyB,IAKNM,GAAe,MAMnB,SAASC,GAAU/X,EAAIgU,GAErB,GAAKA,IAASA,EAAMA,EAAImC,QAKxB,GAAInW,EAAGgY,UACDhE,EAAIr2B,QAAQ,MAAQ,EACtBq2B,EAAIz2B,MAAMu6B,IAAc9jC,SAAQ,SAAU7F,GAAK,OAAO6xB,EAAGgY,UAAU5zB,IAAIjW,MAEvE6xB,EAAGgY,UAAU5zB,IAAI4vB,OAEd,CACL,IAAI9mB,EAAM,KAAO8S,EAAGiY,aAAa,UAAY,IAAM,IAC/C/qB,EAAIvP,QAAQ,IAAMq2B,EAAM,KAAO,GACjChU,EAAG4L,aAAa,SAAU1e,EAAM8mB,GAAKmC,SAS3C,SAAS+B,GAAalY,EAAIgU,GAExB,GAAKA,IAASA,EAAMA,EAAImC,QAKxB,GAAInW,EAAGgY,UACDhE,EAAIr2B,QAAQ,MAAQ,EACtBq2B,EAAIz2B,MAAMu6B,IAAc9jC,SAAQ,SAAU7F,GAAK,OAAO6xB,EAAGgY,UAAUv6B,OAAOtP,MAE1E6xB,EAAGgY,UAAUv6B,OAAOu2B,GAEjBhU,EAAGgY,UAAU3nC,QAChB2vB,EAAGyR,gBAAgB,aAEhB,CACL,IAAIvkB,EAAM,KAAO8S,EAAGiY,aAAa,UAAY,IAAM,IAC/CE,EAAM,IAAMnE,EAAM,IACtB,MAAO9mB,EAAIvP,QAAQw6B,IAAQ,EACzBjrB,EAAMA,EAAIvY,QAAQwjC,EAAK,KAEzBjrB,EAAMA,EAAIipB,OACNjpB,EACF8S,EAAG4L,aAAa,QAAS1e,GAEzB8S,EAAGyR,gBAAgB,UAOzB,SAAS2G,GAAmBltB,GAC1B,GAAKA,EAAL,CAIA,GAAsB,kBAAXA,EAAqB,CAC9B,IAAI7L,EAAM,GAKV,OAJmB,IAAf6L,EAAOmtB,KACTp5B,EAAOI,EAAKi5B,GAAkBptB,EAAO7c,MAAQ,MAE/C4Q,EAAOI,EAAK6L,GACL7L,EACF,MAAsB,kBAAX6L,EACTotB,GAAkBptB,QADpB,GAKT,IAAIotB,GAAoBx6B,GAAO,SAAUzP,GACvC,MAAO,CACLkqC,WAAalqC,EAAO,SACpBmqC,aAAenqC,EAAO,YACtBoqC,iBAAmBpqC,EAAO,gBAC1BqqC,WAAarqC,EAAO,SACpBsqC,aAAetqC,EAAO,YACtBuqC,iBAAmBvqC,EAAO,oBAI1BwqC,GAAgBv2B,IAAcQ,GAC9Bg2B,GAAa,aACbC,GAAY,YAGZC,GAAiB,aACjBC,GAAqB,gBACrBC,GAAgB,YAChBC,GAAoB,eACpBN,UAE6BvoC,IAA3BwB,OAAOsnC,sBACwB9oC,IAAjCwB,OAAOunC,wBAEPL,GAAiB,mBACjBC,GAAqB,4BAEO3oC,IAA1BwB,OAAOwnC,qBACuBhpC,IAAhCwB,OAAOynC,uBAEPL,GAAgB,kBAChBC,GAAoB,uBAKxB,IAAIK,GAAMl3B,EACNxQ,OAAO2nC,sBACL3nC,OAAO2nC,sBAAsBnqC,KAAKwC,QAClCoc,WACyB,SAAU/d,GAAM,OAAOA,KAEtD,SAASupC,GAAWvpC,GAClBqpC,IAAI,WACFA,GAAIrpC,MAIR,SAASwpC,GAAoB3Z,EAAIgU,GAC/B,IAAI4F,EAAoB5Z,EAAGkU,qBAAuBlU,EAAGkU,mBAAqB,IACtE0F,EAAkBj8B,QAAQq2B,GAAO,IACnC4F,EAAkBvlC,KAAK2/B,GACvB+D,GAAS/X,EAAIgU,IAIjB,SAAS6F,GAAuB7Z,EAAIgU,GAC9BhU,EAAGkU,oBACLz2B,EAAOuiB,EAAGkU,mBAAoBF,GAEhCkE,GAAYlY,EAAIgU,GAGlB,SAAS8F,GACP9Z,EACA+Z,EACAnrB,GAEA,IAAIuN,EAAM6d,GAAkBha,EAAI+Z,GAC5B3vB,EAAO+R,EAAI/R,KACXpP,EAAUmhB,EAAInhB,QACdi/B,EAAY9d,EAAI8d,UACpB,IAAK7vB,EAAQ,OAAOwE,IACpB,IAAIsB,EAAQ9F,IAAS0uB,GAAaG,GAAqBE,GACnDe,EAAQ,EACRzJ,EAAM,WACRzQ,EAAG6T,oBAAoB3jB,EAAOiqB,GAC9BvrB,KAEEurB,EAAQ,SAAUp/B,GAChBA,EAAErC,SAAWsnB,KACTka,GAASD,GACbxJ,KAINviB,YAAW,WACLgsB,EAAQD,GACVxJ,MAEDz1B,EAAU,GACbglB,EAAGzc,iBAAiB2M,EAAOiqB,GAG7B,IAAIC,GAAc,yBAElB,SAASJ,GAAmBha,EAAI+Z,GAC9B,IASI3vB,EATAiwB,EAASvoC,OAAOwoC,iBAAiBta,GAEjCua,GAAoBF,EAAOrB,GAAiB,UAAY,IAAIz7B,MAAM,MAClEi9B,GAAuBH,EAAOrB,GAAiB,aAAe,IAAIz7B,MAAM,MACxEk9B,EAAoBC,GAAWH,EAAkBC,GACjDG,GAAmBN,EAAOnB,GAAgB,UAAY,IAAI37B,MAAM,MAChEq9B,GAAsBP,EAAOnB,GAAgB,aAAe,IAAI37B,MAAM,MACtEs9B,EAAmBH,GAAWC,EAAiBC,GAG/C5/B,EAAU,EACVi/B,EAAY,EAEZF,IAAiBjB,GACf2B,EAAoB,IACtBrwB,EAAO0uB,GACP99B,EAAUy/B,EACVR,EAAYO,EAAoBnqC,QAEzB0pC,IAAiBhB,GACtB8B,EAAmB,IACrBzwB,EAAO2uB,GACP/9B,EAAU6/B,EACVZ,EAAYW,EAAmBvqC,SAGjC2K,EAAUjD,KAAKD,IAAI2iC,EAAmBI,GACtCzwB,EAAOpP,EAAU,EACby/B,EAAoBI,EAClB/B,GACAC,GACF,KACJkB,EAAY7vB,EACRA,IAAS0uB,GACP0B,EAAoBnqC,OACpBuqC,EAAmBvqC,OACrB,GAEN,IAAIyqC,EACF1wB,IAAS0uB,IACTsB,GAAYpqC,KAAKqqC,EAAOrB,GAAiB,aAC3C,MAAO,CACL5uB,KAAMA,EACNpP,QAASA,EACTi/B,UAAWA,EACXa,aAAcA,GAIlB,SAASJ,GAAYK,EAAQC,GAE3B,MAAOD,EAAO1qC,OAAS2qC,EAAU3qC,OAC/B0qC,EAASA,EAAOvpC,OAAOupC,GAGzB,OAAOhjC,KAAKD,IAAIrH,MAAM,KAAMuqC,EAAU19B,KAAI,SAAUlP,EAAGN,GACrD,OAAOmtC,GAAK7sC,GAAK6sC,GAAKF,EAAOjtC,QAQjC,SAASmtC,GAAMprC,GACb,OAAkD,IAA3Cw4B,OAAOx4B,EAAEe,MAAM,GAAI,GAAG+D,QAAQ,IAAK,MAK5C,SAASumC,GAAOh0B,EAAOi0B,GACrB,IAAInb,EAAK9Y,EAAMxB,IAGXzJ,EAAM+jB,EAAG2R,YACX3R,EAAG2R,SAASyJ,WAAY,EACxBpb,EAAG2R,YAGL,IAAI/8B,EAAOwjC,GAAkBlxB,EAAMtS,KAAKg6B,YACxC,IAAI7yB,EAAQnH,KAKRqH,EAAM+jB,EAAGqb,WAA6B,IAAhBrb,EAAGuR,SAA7B,CAIA,IAAI8G,EAAMzjC,EAAKyjC,IACXjuB,EAAOxV,EAAKwV,KACZmuB,EAAa3jC,EAAK2jC,WAClBC,EAAe5jC,EAAK4jC,aACpBC,EAAmB7jC,EAAK6jC,iBACxB6C,EAAc1mC,EAAK0mC,YACnBC,EAAgB3mC,EAAK2mC,cACrBC,EAAoB5mC,EAAK4mC,kBACzBC,EAAc7mC,EAAK6mC,YACnBP,EAAQtmC,EAAKsmC,MACbQ,EAAa9mC,EAAK8mC,WAClBC,EAAiB/mC,EAAK+mC,eACtBC,EAAehnC,EAAKgnC,aACpBC,EAASjnC,EAAKinC,OACdC,EAAclnC,EAAKknC,YACnBC,EAAkBnnC,EAAKmnC,gBACvBC,EAAWpnC,EAAKonC,SAMhBr2B,EAAU+S,GACVujB,EAAiBvjB,GAAeuC,OACpC,MAAOghB,GAAkBA,EAAe/1B,OACtCP,EAAUs2B,EAAet2B,QACzBs2B,EAAiBA,EAAe/1B,OAGlC,IAAIg2B,GAAYv2B,EAAQoT,aAAe7R,EAAMb,aAE7C,IAAI61B,GAAaL,GAAqB,KAAXA,EAA3B,CAIA,IAAIM,EAAaD,GAAYZ,EACzBA,EACA/C,EACA6D,EAAcF,GAAYV,EAC1BA,EACA/C,EACA4D,EAAUH,GAAYX,EACtBA,EACA/C,EAEA8D,EAAkBJ,GACjBN,GACDH,EACAc,EAAYL,GACO,oBAAXL,EAAwBA,EAChCX,EACAsB,EAAiBN,GAChBJ,GACDJ,EACAe,EAAqBP,GACpBH,GACDJ,EAEAe,EAAwBz/B,EAC1BtM,EAASqrC,GACLA,EAASd,MACTc,GAGF,EAIJ,IAAIW,GAAqB,IAARtE,IAAkBv1B,GAC/B85B,EAAmBC,GAAuBN,GAE1C3tB,EAAKoR,EAAGqb,SAAWh7B,GAAK,WACtBs8B,IACF9C,GAAsB7Z,EAAIqc,GAC1BxC,GAAsB7Z,EAAIoc,IAExBxtB,EAAGwsB,WACDuB,GACF9C,GAAsB7Z,EAAImc,GAE5BM,GAAsBA,EAAmBzc,IAEzCwc,GAAkBA,EAAexc,GAEnCA,EAAGqb,SAAW,QAGXn0B,EAAMtS,KAAKkoC,MAEd3sB,GAAejJ,EAAO,UAAU,WAC9B,IAAIhB,EAAS8Z,EAAGmK,WACZ4S,EAAc72B,GAAUA,EAAO82B,UAAY92B,EAAO82B,SAAS91B,EAAM7X,KACjE0tC,GACFA,EAAYx3B,MAAQ2B,EAAM3B,KAC1Bw3B,EAAYr3B,IAAIisB,UAEhBoL,EAAYr3B,IAAIisB,WAElB4K,GAAaA,EAAUvc,EAAIpR,MAK/B0tB,GAAmBA,EAAgBtc,GAC/B2c,IACFhD,GAAmB3Z,EAAImc,GACvBxC,GAAmB3Z,EAAIoc,GACvB1C,IAAU,WACRG,GAAsB7Z,EAAImc,GACrBvtB,EAAGwsB,YACNzB,GAAmB3Z,EAAIqc,GAClBO,IACCK,GAAgBP,GAClBxuB,WAAWU,EAAI8tB,GAEf5C,GAAmB9Z,EAAI5V,EAAMwE,SAOnC1H,EAAMtS,KAAKkoC,OACb3B,GAAiBA,IACjBoB,GAAaA,EAAUvc,EAAIpR,IAGxB+tB,GAAeC,GAClBhuB,MAIJ,SAASsuB,GAAOh2B,EAAOooB,GACrB,IAAItP,EAAK9Y,EAAMxB,IAGXzJ,EAAM+jB,EAAGqb,YACXrb,EAAGqb,SAASD,WAAY,EACxBpb,EAAGqb,YAGL,IAAIzmC,EAAOwjC,GAAkBlxB,EAAMtS,KAAKg6B,YACxC,GAAI7yB,EAAQnH,IAAyB,IAAhBorB,EAAGuR,SACtB,OAAOjC,IAIT,IAAIrzB,EAAM+jB,EAAG2R,UAAb,CAIA,IAAI0G,EAAMzjC,EAAKyjC,IACXjuB,EAAOxV,EAAKwV,KACZsuB,EAAa9jC,EAAK8jC,WAClBC,EAAe/jC,EAAK+jC,aACpBC,EAAmBhkC,EAAKgkC,iBACxBuE,EAAcvoC,EAAKuoC,YACnBD,EAAQtoC,EAAKsoC,MACbE,EAAaxoC,EAAKwoC,WAClBC,EAAiBzoC,EAAKyoC,eACtBC,EAAa1oC,EAAK0oC,WAClBtB,EAAWpnC,EAAKonC,SAEhBW,GAAqB,IAARtE,IAAkBv1B,GAC/B85B,EAAmBC,GAAuBK,GAE1CK,EAAwBtgC,EAC1BtM,EAASqrC,GACLA,EAASkB,MACTlB,GAGF,EAIJ,IAAIptB,EAAKoR,EAAG2R,SAAWtxB,GAAK,WACtB2f,EAAGmK,YAAcnK,EAAGmK,WAAW6S,WACjChd,EAAGmK,WAAW6S,SAAS91B,EAAM7X,KAAO,MAElCstC,IACF9C,GAAsB7Z,EAAI2Y,GAC1BkB,GAAsB7Z,EAAI4Y,IAExBhqB,EAAGwsB,WACDuB,GACF9C,GAAsB7Z,EAAI0Y,GAE5B2E,GAAkBA,EAAerd,KAEjCsP,IACA8N,GAAcA,EAAWpd,IAE3BA,EAAG2R,SAAW,QAGZ2L,EACFA,EAAWE,GAEXA,IAGF,SAASA,IAEH5uB,EAAGwsB,aAIFl0B,EAAMtS,KAAKkoC,MAAQ9c,EAAGmK,cACxBnK,EAAGmK,WAAW6S,WAAahd,EAAGmK,WAAW6S,SAAW,KAAM91B,EAAS,KAAKA,GAE3Ei2B,GAAeA,EAAYnd,GACvB2c,IACFhD,GAAmB3Z,EAAI0Y,GACvBiB,GAAmB3Z,EAAI4Y,GACvBc,IAAU,WACRG,GAAsB7Z,EAAI0Y,GACrB9pB,EAAGwsB,YACNzB,GAAmB3Z,EAAI2Y,GAClBiE,IACCK,GAAgBM,GAClBrvB,WAAWU,EAAI2uB,GAEfzD,GAAmB9Z,EAAI5V,EAAMwE,SAMvCsuB,GAASA,EAAMld,EAAIpR,GACd+tB,GAAeC,GAClBhuB,MAsBN,SAASquB,GAAiBvgC,GACxB,MAAsB,kBAARA,IAAqBQ,MAAMR,GAS3C,SAASmgC,GAAwB1sC,GAC/B,GAAI4L,EAAQ5L,GACV,OAAO,EAET,IAAIstC,EAAattC,EAAGsf,IACpB,OAAIxT,EAAMwhC,GAEDZ,GACLnnC,MAAMsH,QAAQygC,GACVA,EAAW,GACXA,IAGEttC,EAAGyO,SAAWzO,EAAGE,QAAU,EAIvC,SAASqtC,GAAQv/B,EAAG+I,IACM,IAApBA,EAAMtS,KAAKkoC,MACb5B,GAAMh0B,GAIV,IAAI0nB,GAAatsB,EAAY,CAC3BlT,OAAQsuC,GACR7O,SAAU6O,GACVjgC,OAAQ,SAAoByJ,EAAOooB,IAET,IAApBpoB,EAAMtS,KAAKkoC,KACbI,GAAMh2B,EAAOooB,GAEbA,MAGF,GAEAqO,GAAkB,CACpBltB,GACA4jB,GACAe,GACA9gB,GACAgH,GACAsT,IAOE5gC,GAAU2vC,GAAgBnsC,OAAOyhC,IAEjC2K,GAAQrQ,GAAoB,CAAEb,QAASA,GAAS1+B,QAASA,KAQzD8U,IAEF0L,SAASjL,iBAAiB,mBAAmB,WAC3C,IAAIyc,EAAKxR,SAASwnB,cACdhW,GAAMA,EAAG6d,QACXC,GAAQ9d,EAAI,YAKlB,IAAI+d,GAAY,CACdt2B,SAAU,SAAmBuY,EAAIge,EAAS92B,EAAO0R,GAC7B,WAAd1R,EAAM3B,KAEJqT,EAASlT,MAAQkT,EAASlT,IAAIu4B,UAChC9tB,GAAejJ,EAAO,aAAa,WACjC62B,GAAUpL,iBAAiB3S,EAAIge,EAAS92B,MAG1Cg3B,GAAYle,EAAIge,EAAS92B,EAAMvB,SAEjCqa,EAAGie,UAAY,GAAG3gC,IAAIrP,KAAK+xB,EAAG9oB,QAASinC,MAChB,aAAdj3B,EAAM3B,KAAsB8lB,GAAgBrL,EAAG5V,SACxD4V,EAAGiW,YAAc+H,EAAQlL,UACpBkL,EAAQlL,UAAUpQ,OACrB1C,EAAGzc,iBAAiB,mBAAoB66B,IACxCpe,EAAGzc,iBAAiB,iBAAkB86B,IAKtCre,EAAGzc,iBAAiB,SAAU86B,IAE1Bv7B,KACFkd,EAAG6d,QAAS,MAMpBlL,iBAAkB,SAA2B3S,EAAIge,EAAS92B,GACxD,GAAkB,WAAdA,EAAM3B,IAAkB,CAC1B24B,GAAYle,EAAIge,EAAS92B,EAAMvB,SAK/B,IAAI24B,EAActe,EAAGie,UACjBM,EAAave,EAAGie,UAAY,GAAG3gC,IAAIrP,KAAK+xB,EAAG9oB,QAASinC,IACxD,GAAII,EAAWC,MAAK,SAAUjwC,EAAGT,GAAK,OAAQ2R,EAAWlR,EAAG+vC,EAAYxwC,OAAS,CAG/E,IAAI2wC,EAAYze,EAAG2L,SACfqS,EAAQjvC,MAAMyvC,MAAK,SAAUxiC,GAAK,OAAO0iC,GAAoB1iC,EAAGuiC,MAChEP,EAAQjvC,QAAUivC,EAAQ5a,UAAYsb,GAAoBV,EAAQjvC,MAAOwvC,GACzEE,GACFX,GAAQ9d,EAAI,cAOtB,SAASke,GAAale,EAAIge,EAASp0B,GACjC+0B,GAAoB3e,EAAIge,EAASp0B,IAE7B/G,IAAQE,KACVmL,YAAW,WACTywB,GAAoB3e,EAAIge,EAASp0B,KAChC,GAIP,SAAS+0B,GAAqB3e,EAAIge,EAASp0B,GACzC,IAAI7a,EAAQivC,EAAQjvC,MAChB6vC,EAAa5e,EAAG2L,SACpB,IAAIiT,GAAelpC,MAAMsH,QAAQjO,GAAjC,CASA,IADA,IAAIw8B,EAAUsT,EACL/wC,EAAI,EAAGC,EAAIiyB,EAAG9oB,QAAQ7G,OAAQvC,EAAIC,EAAGD,IAE5C,GADA+wC,EAAS7e,EAAG9oB,QAAQpJ,GAChB8wC,EACFrT,EAAWnrB,EAAarR,EAAOovC,GAASU,KAAY,EAChDA,EAAOtT,WAAaA,IACtBsT,EAAOtT,SAAWA,QAGpB,GAAI9rB,EAAW0+B,GAASU,GAAS9vC,GAI/B,YAHIixB,EAAG8e,gBAAkBhxC,IACvBkyB,EAAG8e,cAAgBhxC,IAMtB8wC,IACH5e,EAAG8e,eAAiB,IAIxB,SAASJ,GAAqB3vC,EAAOmI,GACnC,OAAOA,EAAQ4I,OAAM,SAAUvR,GAAK,OAAQkR,EAAWlR,EAAGQ,MAG5D,SAASovC,GAAUU,GACjB,MAAO,WAAYA,EACfA,EAAOrJ,OACPqJ,EAAO9vC,MAGb,SAASqvC,GAAoBrjC,GAC3BA,EAAErC,OAAOk9B,WAAY,EAGvB,SAASyI,GAAkBtjC,GAEpBA,EAAErC,OAAOk9B,YACd76B,EAAErC,OAAOk9B,WAAY,EACrBkI,GAAQ/iC,EAAErC,OAAQ,UAGpB,SAASolC,GAAS9d,EAAI5V,GACpB,IAAIrP,EAAIyT,SAASiT,YAAY,cAC7B1mB,EAAEgkC,UAAU30B,GAAM,GAAM,GACxB4V,EAAGgf,cAAcjkC,GAMnB,SAASkkC,GAAY/3B,GACnB,OAAOA,EAAMjB,mBAAuBiB,EAAMtS,MAASsS,EAAMtS,KAAKg6B,WAE1D1nB,EADA+3B,GAAW/3B,EAAMjB,kBAAkBwV,QAIzC,IAAIqhB,GAAO,CACTxtC,KAAM,SAAe0wB,EAAI7D,EAAKjV,GAC5B,IAAInY,EAAQotB,EAAIptB,MAEhBmY,EAAQ+3B,GAAW/3B,GACnB,IAAIg4B,EAAgBh4B,EAAMtS,MAAQsS,EAAMtS,KAAKg6B,WACzCuQ,EAAkBnf,EAAGof,mBACF,SAArBpf,EAAG1E,MAAM+jB,QAAqB,GAAKrf,EAAG1E,MAAM+jB,QAC1CtwC,GAASmwC,GACXh4B,EAAMtS,KAAKkoC,MAAO,EAClB5B,GAAMh0B,GAAO,WACX8Y,EAAG1E,MAAM+jB,QAAUF,MAGrBnf,EAAG1E,MAAM+jB,QAAUtwC,EAAQowC,EAAkB,QAIjDl6B,OAAQ,SAAiB+a,EAAI7D,EAAKjV,GAChC,IAAInY,EAAQotB,EAAIptB,MACZq0B,EAAWjH,EAAIiH,SAGnB,IAAKr0B,KAAWq0B,EAAhB,CACAlc,EAAQ+3B,GAAW/3B,GACnB,IAAIg4B,EAAgBh4B,EAAMtS,MAAQsS,EAAMtS,KAAKg6B,WACzCsQ,GACFh4B,EAAMtS,KAAKkoC,MAAO,EACd/tC,EACFmsC,GAAMh0B,GAAO,WACX8Y,EAAG1E,MAAM+jB,QAAUrf,EAAGof,sBAGxBlC,GAAMh2B,GAAO,WACX8Y,EAAG1E,MAAM+jB,QAAU,WAIvBrf,EAAG1E,MAAM+jB,QAAUtwC,EAAQixB,EAAGof,mBAAqB,SAIvDE,OAAQ,SACNtf,EACAge,EACA92B,EACA0R,EACAsZ,GAEKA,IACHlS,EAAG1E,MAAM+jB,QAAUrf,EAAGof,sBAKxBG,GAAqB,CACvB1lB,MAAOkkB,GACPjB,KAAMA,IAKJ0C,GAAkB,CACpBnxC,KAAM4B,OACN4rC,OAAQtlC,QACR8hC,IAAK9hC,QACLtH,KAAMgB,OACNma,KAAMna,OACNsoC,WAAYtoC,OACZyoC,WAAYzoC,OACZuoC,aAAcvoC,OACd0oC,aAAc1oC,OACdwoC,iBAAkBxoC,OAClB2oC,iBAAkB3oC,OAClBqrC,YAAarrC,OACburC,kBAAmBvrC,OACnBsrC,cAAetrC,OACf+rC,SAAU,CAAC3T,OAAQp4B,OAAQzB,SAK7B,SAASixC,GAAcv4B,GACrB,IAAIw4B,EAAcx4B,GAASA,EAAMtB,iBACjC,OAAI85B,GAAeA,EAAY77B,KAAK3M,QAAQ+iB,SACnCwlB,GAAa/hB,GAAuBgiB,EAAYl6B,WAEhD0B,EAIX,SAASy4B,GAAuBtjB,GAC9B,IAAIznB,EAAO,GACPsC,EAAUmlB,EAAK5P,SAEnB,IAAK,IAAIpd,KAAO6H,EAAQ8U,UACtBpX,EAAKvF,GAAOgtB,EAAKhtB,GAInB,IAAIkoB,EAAYrgB,EAAQ2kB,iBACxB,IAAK,IAAIxR,KAASkN,EAChB3iB,EAAKsJ,EAASmM,IAAUkN,EAAUlN,GAEpC,OAAOzV,EAGT,SAASgrC,GAAaC,EAAGC,GACvB,GAAI,iBAAiB9vC,KAAK8vC,EAASv6B,KACjC,OAAOs6B,EAAE,aAAc,CACrBv1B,MAAOw1B,EAASl6B,iBAAiBoG,YAKvC,SAAS+zB,GAAqB74B,GAC5B,MAAQA,EAAQA,EAAMhB,OACpB,GAAIgB,EAAMtS,KAAKg6B,WACb,OAAO,EAKb,SAASoR,GAAap5B,EAAOq5B,GAC3B,OAAOA,EAAS5wC,MAAQuX,EAAMvX,KAAO4wC,EAAS16B,MAAQqB,EAAMrB,IAG9D,IAAI26B,GAAgB,SAAU/xC,GAAK,OAAOA,EAAEoX,KAAOmB,GAAmBvY,IAElEgyC,GAAmB,SAAU/xC,GAAK,MAAkB,SAAXA,EAAEC,MAE3C+xC,GAAa,CACf/xC,KAAM,aACNic,MAAOk1B,GACPvlB,UAAU,EAEVlH,OAAQ,SAAiB8sB,GACvB,IAAI3oB,EAAS7lB,KAETmU,EAAWnU,KAAKiiB,OAAO9G,QAC3B,GAAKhH,IAKLA,EAAWA,EAASqiB,OAAOqY,IAEtB16B,EAASnV,QAAd,CAKI,EAQJ,IAAIpB,EAAOoC,KAAKpC,KAGZ,EASJ,IAAI6wC,EAAWt6B,EAAS,GAIxB,GAAIu6B,GAAoB1uC,KAAK4pB,QAC3B,OAAO6kB,EAKT,IAAIl5B,EAAQ64B,GAAaK,GAEzB,IAAKl5B,EACH,OAAOk5B,EAGT,GAAIzuC,KAAKgvC,SACP,OAAOT,GAAYC,EAAGC,GAMxB,IAAIr7B,EAAK,gBAAmBpT,KAAS,KAAI,IACzCuV,EAAMvX,IAAmB,MAAbuX,EAAMvX,IACduX,EAAMN,UACJ7B,EAAK,UACLA,EAAKmC,EAAMrB,IACbnJ,EAAYwK,EAAMvX,KACmB,IAAlCY,OAAO2W,EAAMvX,KAAKsO,QAAQ8G,GAAYmC,EAAMvX,IAAMoV,EAAKmC,EAAMvX,IAC9DuX,EAAMvX,IAEZ,IAAIuF,GAAQgS,EAAMhS,OAASgS,EAAMhS,KAAO,KAAKg6B,WAAa+Q,GAAsBtuC,MAC5EivC,EAAcjvC,KAAKoqB,OACnBwkB,EAAWR,GAAaa,GAQ5B,GAJI15B,EAAMhS,KAAKqW,YAAcrE,EAAMhS,KAAKqW,WAAWuzB,KAAK2B,MACtDv5B,EAAMhS,KAAKkoC,MAAO,GAIlBmD,GACAA,EAASrrC,OACRorC,GAAYp5B,EAAOq5B,KACnBv5B,GAAmBu5B,MAElBA,EAASh6B,oBAAqBg6B,EAASh6B,kBAAkBwV,OAAOnV,WAClE,CAGA,IAAIytB,EAAUkM,EAASrrC,KAAKg6B,WAAa3vB,EAAO,GAAIrK,GAEpD,GAAa,WAAT3F,EAOF,OALAoC,KAAKgvC,UAAW,EAChBlwB,GAAe4jB,EAAS,cAAc,WACpC7c,EAAOmpB,UAAW,EAClBnpB,EAAOkG,kBAEFwiB,GAAYC,EAAGC,GACjB,GAAa,WAAT7wC,EAAmB,CAC5B,GAAIyX,GAAmBE,GACrB,OAAO05B,EAET,IAAIC,EACA/C,EAAe,WAAc+C,KACjCpwB,GAAevb,EAAM,aAAc4oC,GACnCrtB,GAAevb,EAAM,iBAAkB4oC,GACvCrtB,GAAe4jB,EAAS,cAAc,SAAUmJ,GAASqD,EAAerD,MAI5E,OAAO4C,KAMPx1B,GAAQrL,EAAO,CACjBsG,IAAKtV,OACLuwC,UAAWvwC,QACVuvC,WAEIl1B,GAAMrb,KAEb,IAAIwxC,GAAkB,CACpBn2B,MAAOA,GAEPo2B,YAAa,WACX,IAAIxpB,EAAS7lB,KAET4T,EAAS5T,KAAKguB,QAClBhuB,KAAKguB,QAAU,SAAUnY,EAAOkR,GAC9B,IAAIqH,EAAwBf,GAAkBxH,GAE9CA,EAAOwI,UACLxI,EAAOuE,OACPvE,EAAOypB,MACP,GACA,GAEFzpB,EAAOuE,OAASvE,EAAOypB,KACvBlhB,IACAxa,EAAOhX,KAAKipB,EAAQhQ,EAAOkR,KAI/BrF,OAAQ,SAAiB8sB,GAQvB,IAPA,IAAIt6B,EAAMlU,KAAKkU,KAAOlU,KAAK4pB,OAAOrmB,KAAK2Q,KAAO,OAC1CjI,EAAM9O,OAAOY,OAAO,MACpBwxC,EAAevvC,KAAKuvC,aAAevvC,KAAKmU,SACxCq7B,EAAcxvC,KAAKiiB,OAAO9G,SAAW,GACrChH,EAAWnU,KAAKmU,SAAW,GAC3Bs7B,EAAiBnB,GAAsBtuC,MAElCvD,EAAI,EAAGA,EAAI+yC,EAAYxwC,OAAQvC,IAAK,CAC3C,IAAIK,EAAI0yC,EAAY/yC,GACpB,GAAIK,EAAEoX,IACJ,GAAa,MAATpX,EAAEkB,KAAoD,IAArCY,OAAO9B,EAAEkB,KAAKsO,QAAQ,WACzC6H,EAASnR,KAAKlG,GACdmP,EAAInP,EAAEkB,KAAOlB,GACXA,EAAEyG,OAASzG,EAAEyG,KAAO,KAAKg6B,WAAakS,QAS9C,GAAIF,EAAc,CAGhB,IAFA,IAAID,EAAO,GACPI,EAAU,GACLxiB,EAAM,EAAGA,EAAMqiB,EAAavwC,OAAQkuB,IAAO,CAClD,IAAIyiB,EAAMJ,EAAariB,GACvByiB,EAAIpsC,KAAKg6B,WAAakS,EACtBE,EAAIpsC,KAAKqsC,IAAMD,EAAIt7B,IAAIw7B,wBACnB5jC,EAAI0jC,EAAI3xC,KACVsxC,EAAKtsC,KAAK2sC,GAEVD,EAAQ1sC,KAAK2sC,GAGjB3vC,KAAKsvC,KAAOd,EAAEt6B,EAAK,KAAMo7B,GACzBtvC,KAAK0vC,QAAUA,EAGjB,OAAOlB,EAAEt6B,EAAK,KAAMC,IAGtBqjB,QAAS,WACP,IAAIrjB,EAAWnU,KAAKuvC,aAChBJ,EAAYnvC,KAAKmvC,YAAenvC,KAAKhD,MAAQ,KAAO,QACnDmX,EAASnV,QAAWgB,KAAK8vC,QAAQ37B,EAAS,GAAGE,IAAK86B,KAMvDh7B,EAASxR,QAAQotC,IACjB57B,EAASxR,QAAQqtC,IACjB77B,EAASxR,QAAQstC,IAKjBjwC,KAAKkwC,QAAU/yB,SAASgzB,KAAKC,aAE7Bj8B,EAASxR,SAAQ,SAAU7F,GACzB,GAAIA,EAAEyG,KAAK8sC,MAAO,CAChB,IAAI1hB,EAAK7xB,EAAEuX,IACP7V,EAAImwB,EAAG1E,MACXqe,GAAmB3Z,EAAIwgB,GACvB3wC,EAAE8xC,UAAY9xC,EAAE+xC,gBAAkB/xC,EAAEgyC,mBAAqB,GACzD7hB,EAAGzc,iBAAiB01B,GAAoBjZ,EAAG8hB,QAAU,SAASlzB,EAAI7T,GAC5DA,GAAKA,EAAErC,SAAWsnB,GAGjBjlB,IAAK,aAAa/K,KAAK+K,EAAEgnC,gBAC5B/hB,EAAG6T,oBAAoBoF,GAAoBrqB,GAC3CoR,EAAG8hB,QAAU,KACbjI,GAAsB7Z,EAAIwgB,YAOpCj2B,QAAS,CACP42B,QAAS,SAAkBnhB,EAAIwgB,GAE7B,IAAK3H,GACH,OAAO,EAGT,GAAIxnC,KAAK2wC,SACP,OAAO3wC,KAAK2wC,SAOd,IAAI/pB,EAAQ+H,EAAGiiB,YACXjiB,EAAGkU,oBACLlU,EAAGkU,mBAAmBlgC,SAAQ,SAAUggC,GAAOkE,GAAYjgB,EAAO+b,MAEpE+D,GAAS9f,EAAOuoB,GAChBvoB,EAAMqD,MAAM+jB,QAAU,OACtBhuC,KAAKkuB,IAAI6M,YAAYnU,GACrB,IAAIhL,EAAO+sB,GAAkB/hB,GAE7B,OADA5mB,KAAKkuB,IAAI4M,YAAYlU,GACb5mB,KAAK2wC,SAAW/0B,EAAK6tB,gBAKnC,SAASsG,GAAgBjzC,GAEnBA,EAAEuX,IAAIo8B,SACR3zC,EAAEuX,IAAIo8B,UAGJ3zC,EAAEuX,IAAI21B,UACRltC,EAAEuX,IAAI21B,WAIV,SAASgG,GAAgBlzC,GACvBA,EAAEyG,KAAKstC,OAAS/zC,EAAEuX,IAAIw7B,wBAGxB,SAASI,GAAkBnzC,GACzB,IAAIg0C,EAASh0C,EAAEyG,KAAKqsC,IAChBiB,EAAS/zC,EAAEyG,KAAKstC,OAChBE,EAAKD,EAAOE,KAAOH,EAAOG,KAC1BC,EAAKH,EAAOI,IAAML,EAAOK,IAC7B,GAAIH,GAAME,EAAI,CACZn0C,EAAEyG,KAAK8sC,OAAQ,EACf,IAAI7xC,EAAI1B,EAAEuX,IAAI4V,MACdzrB,EAAE8xC,UAAY9xC,EAAE+xC,gBAAkB,aAAeQ,EAAK,MAAQE,EAAK,MACnEzyC,EAAEgyC,mBAAqB,MAI3B,IAAIW,GAAqB,CACvBpC,WAAYA,GACZK,gBAAiBA,IAMnBzkB,GAAIxoB,OAAO+N,YAAcA,GACzBya,GAAIxoB,OAAO0N,cAAgBA,GAC3B8a,GAAIxoB,OAAO2N,eAAiBA,GAC5B6a,GAAIxoB,OAAO6N,gBAAkBA,GAC7B2a,GAAIxoB,OAAO4N,iBAAmBA,GAG9BnC,EAAO+c,GAAI9kB,QAAQ+T,WAAYs0B,IAC/BtgC,EAAO+c,GAAI9kB,QAAQ8uB,WAAYwc,IAG/BxmB,GAAItsB,UAAUgwB,UAAYpd,EAAYs7B,GAAQt+B,EAG9C0c,GAAItsB,UAAUipB,OAAS,SACrBqH,EACA5H,GAGA,OADA4H,EAAKA,GAAM1d,EAAYgpB,GAAMtL,QAAM1vB,EAC5ByvB,GAAe1uB,KAAM2uB,EAAI5H,IAK9B9V,GACF4L,YAAW,WACL1a,EAAOoN,UACLA,IACFA,GAASuhB,KAAK,OAAQnG,MAsBzB,GAKU,Y,6CC9yQf,IAiBIymB,EAAOC,EAASC,EAjBhBzqC,EAAS,EAAQ,QACjBrD,EAAQ,EAAQ,QAChBvF,EAAO,EAAQ,QACfszC,EAAO,EAAQ,QACf9tC,EAAgB,EAAQ,QACxB+tC,EAAS,EAAQ,QACjBC,EAAU,EAAQ,QAElBC,EAAW7qC,EAAO6qC,SAClB5+B,EAAMjM,EAAOkW,aACb/J,EAAQnM,EAAO8qC,eACfhpC,EAAU9B,EAAO8B,QACjBipC,EAAiB/qC,EAAO+qC,eACxBC,EAAWhrC,EAAOgrC,SAClB70B,EAAU,EACV4S,EAAQ,GACRkiB,EAAqB,qBAGrBrhB,EAAM,SAAUrd,GAElB,GAAIwc,EAAMtxB,eAAe8U,GAAK,CAC5B,IAAItU,EAAK8wB,EAAMxc,UACRwc,EAAMxc,GACbtU,MAIAizC,EAAS,SAAU3+B,GACrB,OAAO,WACLqd,EAAIrd,KAIJ4+B,EAAW,SAAUnzB,GACvB4R,EAAI5R,EAAMtb,OAGR0uC,EAAO,SAAU7+B,GAEnBvM,EAAOqrC,YAAY9+B,EAAK,GAAIs+B,EAASS,SAAW,KAAOT,EAASU,OAI7Dt/B,GAAQE,IACXF,EAAM,SAAsBhU,GAC1B,IAAIc,EAAO,GACPnD,EAAI,EACR,MAAO4C,UAAUL,OAASvC,EAAGmD,EAAKoD,KAAK3D,UAAU5C,MAMjD,OALAmzB,IAAQ5S,GAAW,YAEH,mBAANle,EAAmBA,EAAKgB,SAAShB,IAAKM,WAAMH,EAAWW,IAEjEwxC,EAAMp0B,GACCA,GAEThK,EAAQ,SAAwBI,UACvBwc,EAAMxc,IAGXq+B,EACFL,EAAQ,SAAUh+B,GAChBzK,EAAQ2U,SAASy0B,EAAO3+B,KAGjBy+B,GAAYA,EAAS1hB,IAC9BihB,EAAQ,SAAUh+B,GAChBy+B,EAAS1hB,IAAI4hB,EAAO3+B,KAIbw+B,IAAmBJ,GAC5BH,EAAU,IAAIO,EACdN,EAAOD,EAAQgB,MACfhB,EAAQiB,MAAMC,UAAYP,EAC1BZ,EAAQnzC,EAAKqzC,EAAKY,YAAaZ,EAAM,IAIrCzqC,EAAOqL,kBACe,mBAAfggC,cACNrrC,EAAO2rC,eACRd,GAAkC,UAAtBA,EAASS,WACpB3uC,EAAMyuC,IAEPb,EAAQa,EACRprC,EAAOqL,iBAAiB,UAAW8/B,GAAU,IAG7CZ,EADSU,KAAsBruC,EAAc,UACrC,SAAU2P,GAChBm+B,EAAKxW,YAAYt3B,EAAc,WAAWquC,GAAsB,WAC9DP,EAAKzW,YAAY96B,MACjBywB,EAAIrd,KAKA,SAAUA,GAChByJ,WAAWk1B,EAAO3+B,GAAK,KAK7B5W,EAAOD,QAAU,CACfuW,IAAKA,EACLE,MAAOA,I,uBCzGT,IAMInB,EAAOqmB,EANPrxB,EAAS,EAAQ,QACjBnC,EAAY,EAAQ,QAEpBiE,EAAU9B,EAAO8B,QACjB8pC,EAAW9pC,GAAWA,EAAQ8pC,SAC9BC,EAAKD,GAAYA,EAASC,GAG1BA,GACF7gC,EAAQ6gC,EAAGxmC,MAAM,KACjBgsB,EAAUrmB,EAAM,GAAK,EAAI,EAAIA,EAAM,GAAKA,EAAM,IACrCnN,IACTmN,EAAQnN,EAAUmN,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQnN,EAAUmN,MAAM,iBACpBA,IAAOqmB,EAAUrmB,EAAM,MAI/BrV,EAAOD,QAAU27B,IAAYA,G,oCCjB7B,IAAIya,EAAe,EAAQ,QAY3Bn2C,EAAOD,QAAU,SAAqBq2C,EAASzwC,EAAQ0wC,EAAM5wC,EAASC,GACpE,IAAIrB,EAAQ,IAAIiyC,MAAMF,GACtB,OAAOD,EAAa9xC,EAAOsB,EAAQ0wC,EAAM5wC,EAASC,K,oCCdpD1F,EAAOD,QAAU,SAAkBmB,GACjC,SAAUA,IAASA,EAAMq1C,c,oCCD3B,IAAIvxC,EAAQ,EAAQ,QAEpB,SAASwxC,EAAO3nC,GACd,OAAO4nC,mBAAmB5nC,GACxB/H,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrB9G,EAAOD,QAAU,SAAkB6F,EAAKgB,EAAQC,GAE9C,IAAKD,EACH,OAAOhB,EAGT,IAAI8wC,EACJ,GAAI7vC,EACF6vC,EAAmB7vC,EAAiBD,QAC/B,GAAI5B,EAAM6H,kBAAkBjG,GACjC8vC,EAAmB9vC,EAAO7C,eACrB,CACL,IAAI4yC,EAAQ,GAEZ3xC,EAAMmB,QAAQS,GAAQ,SAAmBiI,EAAKrN,GAChC,OAARqN,GAA+B,qBAARA,IAIvB7J,EAAMmK,QAAQN,GAChBrN,GAAY,KAEZqN,EAAM,CAACA,GAGT7J,EAAMmB,QAAQ0I,GAAK,SAAoBV,GACjCnJ,EAAM4xC,OAAOzoC,GACfA,EAAIA,EAAE0oC,cACG7xC,EAAMlC,SAASqL,KACxBA,EAAIrB,KAAKC,UAAUoB,IAErBwoC,EAAMnwC,KAAKgwC,EAAOh1C,GAAO,IAAMg1C,EAAOroC,WAI1CuoC,EAAmBC,EAAMpzC,KAAK,KAGhC,GAAImzC,EAAkB,CACpB,IAAII,EAAgBlxC,EAAIkK,QAAQ,MACT,IAAnBgnC,IACFlxC,EAAMA,EAAI7C,MAAM,EAAG+zC,IAGrBlxC,KAA8B,IAAtBA,EAAIkK,QAAQ,KAAc,IAAM,KAAO4mC,EAGjD,OAAO9wC,I,qBCpET,IAAImxC,EAAI,EAAQ,QACZ/vC,EAAQ,EAAQ,QAChBuK,EAAW,EAAQ,QACnBylC,EAAuB,EAAQ,QAC/BC,EAA2B,EAAQ,QAEnCC,EAAsBlwC,GAAM,WAAcgwC,EAAqB,MAInED,EAAE,CAAElsC,OAAQ,SAAUO,MAAM,EAAME,OAAQ4rC,EAAqB3rC,MAAO0rC,GAA4B,CAChGE,eAAgB,SAAwB/yC,GACtC,OAAO4yC,EAAqBzlC,EAASnN,Q,uBCZzC,IAAIkD,EAAa,EAAQ,QAEzBtH,EAAOD,QAAUuH,EAAW,YAAa,cAAgB,I,uBCFzD,IAAI8vC,EAAU,EAAQ,QAClBC,EAAY,EAAQ,QACpBp1C,EAAkB,EAAQ,QAE1BsF,EAAWtF,EAAgB,YAE/BjC,EAAOD,QAAU,SAAUqE,GACzB,QAAU3B,GAAN2B,EAAiB,OAAOA,EAAGmD,IAC1BnD,EAAG,eACHizC,EAAUD,EAAQhzC,M,uBCTzB,IAAIE,EAAc,EAAQ,QACtBsJ,EAAuB,EAAQ,QAC/BjF,EAAW,EAAQ,QACnB2uC,EAAa,EAAQ,QAKzBt3C,EAAOD,QAAUuE,EAAc3D,OAAOqY,iBAAmB,SAA0BlU,EAAGyyC,GACpF5uC,EAAS7D,GACT,IAGItD,EAHA6Q,EAAOilC,EAAWC,GAClB/0C,EAAS6P,EAAK7P,OACdgH,EAAQ,EAEZ,MAAOhH,EAASgH,EAAOoE,EAAqB9J,EAAEgB,EAAGtD,EAAM6Q,EAAK7I,KAAU+tC,EAAW/1C,IACjF,OAAOsD,I,oCCHT9E,EAAOD,QAAU,SAAsBsE,EAAOsB,EAAQ0wC,EAAM5wC,EAASC,GA4BnE,OA3BArB,EAAMsB,OAASA,EACX0wC,IACFhyC,EAAMgyC,KAAOA,GAGfhyC,EAAMoB,QAAUA,EAChBpB,EAAMqB,SAAWA,EACjBrB,EAAMmzC,cAAe,EAErBnzC,EAAMozC,OAAS,WACb,MAAO,CAELrB,QAAS5yC,KAAK4yC,QACd51C,KAAMgD,KAAKhD,KAEXk3C,YAAal0C,KAAKk0C,YAClBrP,OAAQ7kC,KAAK6kC,OAEbsP,SAAUn0C,KAAKm0C,SACfC,WAAYp0C,KAAKo0C,WACjBC,aAAcr0C,KAAKq0C,aACnBC,MAAOt0C,KAAKs0C,MAEZnyC,OAAQnC,KAAKmC,OACb0wC,KAAM7yC,KAAK6yC,OAGRhyC,I,kCCtCT,IAAIW,EAAQ,EAAQ,QAEpBhF,EAAOD,QACLiF,EAAM+yC,uBAIJ,WACE,IAEIC,EAFAC,EAAO,kBAAkB91C,KAAK4S,UAAU7M,WACxCgwC,EAAiBv3B,SAAS1Z,cAAc,KAS5C,SAASkxC,EAAWvyC,GAClB,IAAIwyC,EAAOxyC,EAWX,OATIqyC,IAEFC,EAAena,aAAa,OAAQqa,GACpCA,EAAOF,EAAeE,MAGxBF,EAAena,aAAa,OAAQqa,GAG7B,CACLA,KAAMF,EAAeE,KACrBzC,SAAUuC,EAAevC,SAAWuC,EAAevC,SAAS7uC,QAAQ,KAAM,IAAM,GAChF8uC,KAAMsC,EAAetC,KACrByC,OAAQH,EAAeG,OAASH,EAAeG,OAAOvxC,QAAQ,MAAO,IAAM,GAC3Eic,KAAMm1B,EAAen1B,KAAOm1B,EAAen1B,KAAKjc,QAAQ,KAAM,IAAM,GACpEwxC,SAAUJ,EAAeI,SACzBxD,KAAMoD,EAAepD,KACrByD,SAAiD,MAAtCL,EAAeK,SAAS9nC,OAAO,GACxCynC,EAAeK,SACf,IAAML,EAAeK,UAY3B,OARAP,EAAYG,EAAWl0C,OAAOixC,SAASkD,MAQhC,SAAyBI,GAC9B,IAAIC,EAAUzzC,EAAM0zC,SAASF,GAAeL,EAAWK,GAAcA,EACrE,OAAQC,EAAO9C,WAAaqC,EAAUrC,UAClC8C,EAAO7C,OAASoC,EAAUpC,MAhDlC,GAqDA,WACE,OAAO,WACL,OAAO,GAFX,I,uBC9DJ,IAAI9yC,EAAW,EAAQ,QAEvB9C,EAAOD,QAAU,SAAUqE,GACzB,IAAKtB,EAASsB,IAAc,OAAPA,EACnB,MAAMiD,UAAU,aAAejF,OAAOgC,GAAM,mBAC5C,OAAOA,I,oCCJX,IAAIqM,EAAS,EAAQ,QAAiCA,OAClDkoC,EAAsB,EAAQ,QAC9BC,EAAiB,EAAQ,QAEzBC,EAAkB,kBAClBC,EAAmBH,EAAoBriC,IACvCyiC,EAAmBJ,EAAoBK,UAAUH,GAIrDD,EAAex2C,OAAQ,UAAU,SAAU62C,GACzCH,EAAiBt1C,KAAM,CACrB+Y,KAAMs8B,EACNK,OAAQ92C,OAAO62C,GACfzvC,MAAO,OAIR,WACD,IAGI2vC,EAHAC,EAAQL,EAAiBv1C,MACzB01C,EAASE,EAAMF,OACf1vC,EAAQ4vC,EAAM5vC,MAElB,OAAIA,GAAS0vC,EAAO12C,OAAe,CAAEtB,WAAOuB,EAAWmF,MAAM,IAC7DuxC,EAAQ1oC,EAAOyoC,EAAQ1vC,GACvB4vC,EAAM5vC,OAAS2vC,EAAM32C,OACd,CAAEtB,MAAOi4C,EAAOvxC,MAAM,Q,qBC3B/B5H,EAAOD,QAAU,I,uBCAjB,IAAIsK,EAAS,EAAQ,QAErBrK,EAAOD,QAAUsK,G,qBCFjBtK,EAAQ+gB,SAAW,SAAkBxe,GACjC,IAAIc,EAAOyE,MAAMhG,UAAUkB,MAAM3C,KAAKyC,WACtCO,EAAKsD,QACL2Z,YAAW,WACP/d,EAAGM,MAAM,KAAMQ,KAChB,IAGPrD,EAAQ6U,SAAW7U,EAAQs5C,KAC3Bt5C,EAAQu5C,SAAWv5C,EAAQw5C,MAAQ,UACnCx5C,EAAQy5C,IAAM,EACdz5C,EAAQ05C,SAAU,EAClB15C,EAAQ6V,IAAM,GACd7V,EAAQ25C,KAAO,GAEf35C,EAAQowC,QAAU,SAAU3vC,GAC3B,MAAM,IAAI81C,MAAM,8CAGjB,WACI,IACIjiC,EADAslC,EAAM,IAEV55C,EAAQ45C,IAAM,WAAc,OAAOA,GACnC55C,EAAQ65C,MAAQ,SAAUzV,GACjB9vB,IAAMA,EAAO,EAAQ,SAC1BslC,EAAMtlC,EAAKnO,QAAQi+B,EAAKwV,IANhC,GAUA55C,EAAQ85C,KAAO95C,EAAQ+5C,KACvB/5C,EAAQg6C,MAAQh6C,EAAQi6C,OACxBj6C,EAAQk6C,OAASl6C,EAAQm6C,YACzBn6C,EAAQo6C,WAAa,aACrBp6C,EAAQq6C,SAAW,I,uBCjCnB,IAAIpzC,EAAQ,EAAQ,QAChBowC,EAAU,EAAQ,QAElB1nC,EAAQ,GAAGA,MAGf1P,EAAOD,QAAUiH,GAAM,WAGrB,OAAQrG,OAAO,KAAK05C,qBAAqB,MACtC,SAAUj2C,GACb,MAAsB,UAAfgzC,EAAQhzC,GAAkBsL,EAAMtP,KAAKgE,EAAI,IAAMzD,OAAOyD,IAC3DzD,Q,uBCZJ,IAAIsB,EAAkB,EAAQ,QAC1BV,EAAS,EAAQ,QACjBqM,EAAuB,EAAQ,QAE/B0sC,EAAcr4C,EAAgB,eAC9Bs4C,EAAiB1yC,MAAMhG,eAIQY,GAA/B83C,EAAeD,IACjB1sC,EAAqB9J,EAAEy2C,EAAgBD,EAAa,CAClDxsC,cAAc,EACd5M,MAAOK,EAAO,QAKlBvB,EAAOD,QAAU,SAAUyB,GACzB+4C,EAAeD,GAAa94C,IAAO,I,uBClBrC,IAAI6I,EAAS,EAAQ,QAErBrK,EAAOD,QAAU,SAAU2C,EAAGC,GAC5B,IAAImd,EAAUzV,EAAOyV,QACjBA,GAAWA,EAAQzb,QACA,IAArBxB,UAAUL,OAAesd,EAAQzb,MAAM3B,GAAKod,EAAQzb,MAAM3B,EAAGC,M,oCCHjE,IAAI63C,EAAc,EAAQ,QAS1Bx6C,EAAOD,QAAU,SAAgBmG,EAASupB,EAAQ/pB,GAChD,IAAI8H,EAAiB9H,EAASC,OAAO6H,eAChC9H,EAAS+H,QAAWD,IAAkBA,EAAe9H,EAAS+H,QAGjEgiB,EAAO+qB,EACL,mCAAqC90C,EAAS+H,OAC9C/H,EAASC,OACT,KACAD,EAASD,QACTC,IAPFQ,EAAQR,K,4CCdZ,IAAIiD,EAAW,EAAQ,QACnBtG,EAAY,EAAQ,QACpBJ,EAAkB,EAAQ,QAE1BoG,EAAUpG,EAAgB,WAI9BjC,EAAOD,QAAU,SAAU+E,EAAG21C,GAC5B,IACIC,EADAx3C,EAAIyF,EAAS7D,GAAG0D,YAEpB,YAAa/F,IAANS,QAAiDT,IAA7Bi4C,EAAI/xC,EAASzF,GAAGmF,IAAyBoyC,EAAqBp4C,EAAUq4C,K,qBCVrG,IAAItyC,EAAa,EAAQ,QACrBpB,EAAQ,EAAQ,QAGpBhH,EAAOD,UAAYY,OAAOg6C,wBAA0B3zC,GAAM,WACxD,IAAIghB,EAAShnB,SAGb,OAAQoB,OAAO4lB,MAAarnB,OAAOqnB,aAAmBhnB,UAEnDA,OAAOuK,MAAQnD,GAAcA,EAAa,O,oCCT/C,IAAIpD,EAAQ,EAAQ,QAUpBhF,EAAOD,QAAU,SAAqB66C,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAIl1C,EAAS,GAETm1C,EAAuB,CAAC,MAAO,SAAU,QACzCC,EAA0B,CAAC,UAAW,OAAQ,QAAS,UACvDC,EAAuB,CACzB,UAAW,mBAAoB,oBAAqB,mBACpD,UAAW,iBAAkB,kBAAmB,UAAW,eAAgB,iBAC3E,iBAAkB,mBAAoB,qBAAsB,aAC5D,mBAAoB,gBAAiB,eAAgB,YAAa,YAClE,aAAc,cAAe,aAAc,oBAEzCC,EAAkB,CAAC,kBAEvB,SAASC,EAAerwC,EAAQF,GAC9B,OAAI3F,EAAM0J,cAAc7D,IAAW7F,EAAM0J,cAAc/D,GAC9C3F,EAAM2I,MAAM9C,EAAQF,GAClB3F,EAAM0J,cAAc/D,GACtB3F,EAAM2I,MAAM,GAAIhD,GACd3F,EAAMmK,QAAQxE,GAChBA,EAAO5H,QAET4H,EAGT,SAASwwC,EAAoB/8B,GACtBpZ,EAAM+G,YAAY8uC,EAAQz8B,IAEnBpZ,EAAM+G,YAAY6uC,EAAQx8B,MACpCzY,EAAOyY,GAAQ88B,OAAez4C,EAAWm4C,EAAQx8B,KAFjDzY,EAAOyY,GAAQ88B,EAAeN,EAAQx8B,GAAOy8B,EAAQz8B,IAMzDpZ,EAAMmB,QAAQ20C,GAAsB,SAA0B18B,GACvDpZ,EAAM+G,YAAY8uC,EAAQz8B,MAC7BzY,EAAOyY,GAAQ88B,OAAez4C,EAAWo4C,EAAQz8B,QAIrDpZ,EAAMmB,QAAQ40C,EAAyBI,GAEvCn2C,EAAMmB,QAAQ60C,GAAsB,SAA0B58B,GACvDpZ,EAAM+G,YAAY8uC,EAAQz8B,IAEnBpZ,EAAM+G,YAAY6uC,EAAQx8B,MACpCzY,EAAOyY,GAAQ88B,OAAez4C,EAAWm4C,EAAQx8B,KAFjDzY,EAAOyY,GAAQ88B,OAAez4C,EAAWo4C,EAAQz8B,OAMrDpZ,EAAMmB,QAAQ80C,GAAiB,SAAe78B,GACxCA,KAAQy8B,EACVl1C,EAAOyY,GAAQ88B,EAAeN,EAAQx8B,GAAOy8B,EAAQz8B,IAC5CA,KAAQw8B,IACjBj1C,EAAOyY,GAAQ88B,OAAez4C,EAAWm4C,EAAQx8B,QAIrD,IAAIg9B,EAAYN,EACbn3C,OAAOo3C,GACPp3C,OAAOq3C,GACPr3C,OAAOs3C,GAENI,EAAY16C,OACb0R,KAAKuoC,GACLj3C,OAAOhD,OAAO0R,KAAKwoC,IACnB7gB,QAAO,SAAyBx4B,GAC/B,OAAmC,IAA5B45C,EAAUtrC,QAAQtO,MAK7B,OAFAwD,EAAMmB,QAAQk1C,EAAWF,GAElBx1C,I,uBCrFT,IAAIoxC,EAAI,EAAQ,QACZzvC,EAAa,EAAQ,QACrBjF,EAAY,EAAQ,QACpBsG,EAAW,EAAQ,QACnB7F,EAAW,EAAQ,QACnBvB,EAAS,EAAQ,QACjBE,EAAO,EAAQ,QACfuF,EAAQ,EAAQ,QAEhBs0C,EAAkBh0C,EAAW,UAAW,aAMxCi0C,EAAiBv0C,GAAM,WACzB,SAASw0C,KACT,QAASF,GAAgB,cAA6B,GAAIE,aAAcA,MAEtEC,GAAYz0C,GAAM,WACpBs0C,GAAgB,kBAEd1wC,EAAS2wC,GAAkBE,EAE/B1E,EAAE,CAAElsC,OAAQ,UAAWO,MAAM,EAAME,OAAQV,EAAQW,KAAMX,GAAU,CACjE3H,UAAW,SAAmBy4C,EAAQt4C,GACpCf,EAAUq5C,GACV/yC,EAASvF,GACT,IAAIu4C,EAAY94C,UAAUL,OAAS,EAAIk5C,EAASr5C,EAAUQ,UAAU,IACpE,GAAI44C,IAAaF,EAAgB,OAAOD,EAAgBI,EAAQt4C,EAAMu4C,GACtE,GAAID,GAAUC,EAAW,CAEvB,OAAQv4C,EAAKZ,QACX,KAAK,EAAG,OAAO,IAAIk5C,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOt4C,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAIs4C,EAAOt4C,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAIs4C,EAAOt4C,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAIs4C,EAAOt4C,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAIw4C,EAAQ,CAAC,MAEb,OADAA,EAAMp1C,KAAK5D,MAAMg5C,EAAOx4C,GACjB,IAAK3B,EAAKmB,MAAM84C,EAAQE,IAGjC,IAAIC,EAAQF,EAAU95C,UAClBi6C,EAAWv6C,EAAOuB,EAAS+4C,GAASA,EAAQl7C,OAAOkB,WACnDqH,EAAS5F,SAASV,MAAMxC,KAAKs7C,EAAQI,EAAU14C,GACnD,OAAON,EAASoG,GAAUA,EAAS4yC,M,gDChDvC,IAAIl4C,EAAkB,EAAQ,QAC1BiF,EAAW,EAAQ,QACnBkzC,EAAkB,EAAQ,QAG1BC,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAO/pB,EAAIgqB,GAC1B,IAGIj7C,EAHA4D,EAAIlB,EAAgBs4C,GACpB15C,EAASqG,EAAS/D,EAAEtC,QACpBgH,EAAQuyC,EAAgBI,EAAW35C,GAIvC,GAAIy5C,GAAe9pB,GAAMA,GAAI,MAAO3vB,EAASgH,EAG3C,GAFAtI,EAAQ4D,EAAE0E,KAENtI,GAASA,EAAO,OAAO,OAEtB,KAAMsB,EAASgH,EAAOA,IAC3B,IAAKyyC,GAAezyC,KAAS1E,IAAMA,EAAE0E,KAAW2oB,EAAI,OAAO8pB,GAAezyC,GAAS,EACnF,OAAQyyC,IAAgB,IAI9Bj8C,EAAOD,QAAU,CAGfq8C,SAAUJ,GAAa,GAGvBlsC,QAASksC,GAAa,K,oCC7BxB,IAAIjF,EAAI,EAAQ,QACZsF,EAAU,EAAQ,QAAgCriB,OAClDsiB,EAA+B,EAAQ,QAEvCC,EAAsBD,EAA6B,UAKvDvF,EAAE,CAAElsC,OAAQ,QAASgxC,OAAO,EAAMvwC,QAASixC,GAAuB,CAChEviB,OAAQ,SAAgBwiB,GACtB,OAAOH,EAAQ74C,KAAMg5C,EAAY35C,UAAUL,OAAS,EAAIK,UAAU,QAAKJ,O,oCCX3E,IAAIhB,EAAO,EAAQ,QACf8P,EAAW,EAAQ,QACnBkrC,EAA+B,EAAQ,QACvC7zC,EAAwB,EAAQ,QAChCC,EAAW,EAAQ,QACnB6zC,EAAiB,EAAQ,QACzB5zC,EAAoB,EAAQ,QAIhC9I,EAAOD,QAAU,SAAc48C,GAC7B,IAOIn6C,EAAQ0G,EAAQO,EAAMH,EAAU3B,EAAMzG,EAPtC4D,EAAIyM,EAASorC,GACbz5C,EAAmB,mBAARM,KAAqBA,KAAOqE,MACvC+0C,EAAkB/5C,UAAUL,OAC5Bq6C,EAAQD,EAAkB,EAAI/5C,UAAU,QAAKJ,EAC7Cq6C,OAAoBr6C,IAAVo6C,EACVE,EAAiBj0C,EAAkBhE,GACnC0E,EAAQ,EAIZ,GAFIszC,IAASD,EAAQp7C,EAAKo7C,EAAOD,EAAkB,EAAI/5C,UAAU,QAAKJ,EAAW,SAE3DA,GAAlBs6C,GAAiC75C,GAAK2E,OAASe,EAAsBm0C,GAWvE,IAFAv6C,EAASqG,EAAS/D,EAAEtC,QACpB0G,EAAS,IAAIhG,EAAEV,GACTA,EAASgH,EAAOA,IACpBtI,EAAQ47C,EAAUD,EAAM/3C,EAAE0E,GAAQA,GAAS1E,EAAE0E,GAC7CkzC,EAAexzC,EAAQM,EAAOtI,QAThC,IAHAoI,EAAWyzC,EAAe38C,KAAK0E,GAC/B6C,EAAO2B,EAAS3B,KAChBuB,EAAS,IAAIhG,IACLuG,EAAO9B,EAAKvH,KAAKkJ,IAAW1B,KAAM4B,IACxCtI,EAAQ47C,EAAUL,EAA6BnzC,EAAUuzC,EAAO,CAACpzC,EAAKvI,MAAOsI,IAAQ,GAAQC,EAAKvI,MAClGw7C,EAAexzC,EAAQM,EAAOtI,GAWlC,OADAgI,EAAO1G,OAASgH,EACTN,I,uBCvCT,IAAIc,EAAY,EAAQ,QAEpBG,EAAMD,KAAKC,IAIfnK,EAAOD,QAAU,SAAUi9C,GACzB,OAAOA,EAAW,EAAI7yC,EAAIH,EAAUgzC,GAAW,kBAAoB,I,qBCPrE,IAAIzrC,EAAW,EAAQ,QAEnBzP,EAAiB,GAAGA,eAExB9B,EAAOD,QAAUY,OAAOqP,QAAU,SAAgB5L,EAAI5C,GACpD,OAAOM,EAAe1B,KAAKmR,EAASnN,GAAK5C,K,kCCH3C,IAAIwD,EAAQ,EAAQ,QAChBi4C,EAAgB,EAAQ,QACxBC,EAAW,EAAQ,QACnB33C,EAAW,EAAQ,QAKvB,SAAS43C,EAA6Bx3C,GAChCA,EAAOy3C,aACTz3C,EAAOy3C,YAAYC,mBAUvBr9C,EAAOD,QAAU,SAAyB4F,GACxCw3C,EAA6Bx3C,GAG7BA,EAAOmG,QAAUnG,EAAOmG,SAAW,GAGnCnG,EAAOoB,KAAOk2C,EACZt3C,EAAOoB,KACPpB,EAAOmG,QACPnG,EAAOyG,kBAITzG,EAAOmG,QAAU9G,EAAM2I,MACrBhI,EAAOmG,QAAQ4B,QAAU,GACzB/H,EAAOmG,QAAQnG,EAAOE,SAAW,GACjCF,EAAOmG,SAGT9G,EAAMmB,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BN,UAClBF,EAAOmG,QAAQjG,MAI1B,IAAIoG,EAAUtG,EAAOsG,SAAW1G,EAAS0G,QAEzC,OAAOA,EAAQtG,GAAQc,MAAK,SAA6Bf,GAUvD,OATAy3C,EAA6Bx3C,GAG7BD,EAASqB,KAAOk2C,EACdv3C,EAASqB,KACTrB,EAASoG,QACTnG,EAAOqH,mBAGFtH,KACN,SAA4BgqB,GAc7B,OAbKwtB,EAASxtB,KACZytB,EAA6Bx3C,GAGzB+pB,GAAUA,EAAOhqB,WACnBgqB,EAAOhqB,SAASqB,KAAOk2C,EACrBvtB,EAAOhqB,SAASqB,KAChB2oB,EAAOhqB,SAASoG,QAChBnG,EAAOqH,qBAKN/G,QAAQwpB,OAAOC,Q,kCC5E1BzrB,OAAOyR,iBAAiB,oBAAoB,WAExC,IAAM4nC,EAAY38B,SAAS1Z,cAAc,SACzC,GAAIq2C,EAAUC,YAAa,CAEvB,IAAMC,EAAO,KAAOF,EAAUC,YAAY,oCAC1C,IAAKC,EAAK,CACN,IAAMC,EAAY98B,SAAS+8B,eAAe,WAC1C,GAAGD,EAAU,CACT,IAAM17C,EAAI4e,SAAS1Z,cAAc,KACjClF,EAAEooC,UAAU5zB,IAAI,WAChBknC,EAAUE,QAAQ57C,GAClBA,EAAEqhC,UAAF,0V,qBCZhB,IAAIwa,EAAU,EAAQ,QAClBC,EAAQ,EAAQ,SAEnB79C,EAAOD,QAAU,SAAUyB,EAAKN,GAC/B,OAAO28C,EAAMr8C,KAASq8C,EAAMr8C,QAAiBiB,IAAVvB,EAAsBA,EAAQ,MAChE,WAAY,IAAIsF,KAAK,CACtBk1B,QAAS,SACTt6B,KAAMw8C,EAAU,OAAS,SACzBE,UAAW,0C,uBCRb,IAAIx2C,EAAa,EAAQ,QACrBy2C,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCr1C,EAAW,EAAQ,QAGvB3I,EAAOD,QAAUuH,EAAW,UAAW,YAAc,SAAiBlD,GACpE,IAAIiO,EAAO0rC,EAA0Bj6C,EAAE6E,EAASvE,IAC5Cu2C,EAAwBqD,EAA4Bl6C,EACxD,OAAO62C,EAAwBtoC,EAAK1O,OAAOg3C,EAAsBv2C,IAAOiO,I,mBCR1ErS,EAAOD,QAAU,iD,uBCDjB,IAAIk+C,EAAyB,EAAQ,QACjCC,EAAc,EAAQ,QAEtBC,EAAa,IAAMD,EAAc,IACjCE,EAAQjqC,OAAO,IAAMgqC,EAAaA,EAAa,KAC/CE,EAAQlqC,OAAOgqC,EAAaA,EAAa,MAGzCnC,EAAe,SAAUsC,GAC3B,OAAO,SAAUpC,GACf,IAAIhD,EAAS92C,OAAO67C,EAAuB/B,IAG3C,OAFW,EAAPoC,IAAUpF,EAASA,EAAOpyC,QAAQs3C,EAAO,KAClC,EAAPE,IAAUpF,EAASA,EAAOpyC,QAAQu3C,EAAO,KACtCnF,IAIXl5C,EAAOD,QAAU,CAGfmR,MAAO8qC,EAAa,GAGpBpZ,IAAKoZ,EAAa,GAGlB1T,KAAM0T,EAAa,K,qBC1BrBh8C,EAAOD,QAAU,SAAUw+C,EAAQr9C,GACjC,MAAO,CACLL,aAAuB,EAAT09C,GACdzwC,eAAyB,EAATywC,GAChBtqC,WAAqB,EAATsqC,GACZr9C,MAAOA,K,oCCGXlB,EAAOD,QAAU,SAAsBy+C,GACrC,MAA2B,kBAAZA,IAAmD,IAAzBA,EAAQhH,e,uBCTnD,IAAIJ,EAAU,EAAQ,QAClB/sC,EAAS,EAAQ,QAErBrK,EAAOD,QAAqC,WAA3Bq3C,EAAQ/sC,EAAO8B,U,mBCHhCnM,EAAOD,QAA2B,iBAAVkE,Q,oCCCxB,IAAIK,EAAc,EAAQ,QACtB0C,EAAQ,EAAQ,QAChBswC,EAAa,EAAQ,QACrB0G,EAA8B,EAAQ,QACtCz5C,EAA6B,EAAQ,QACrCgN,EAAW,EAAQ,QACnBktC,EAAgB,EAAQ,QAGxBC,EAAU/9C,OAAOg+C,OAEjB/9C,EAAiBD,OAAOC,eAI5BZ,EAAOD,SAAW2+C,GAAW13C,GAAM,WAEjC,GAAI1C,GAQiB,IARFo6C,EAAQ,CAAE/7C,EAAG,GAAK+7C,EAAQ99C,EAAe,GAAI,IAAK,CACnEC,YAAY,EACZC,IAAK,WACHF,EAAe4C,KAAM,IAAK,CACxBtC,MAAO,EACPL,YAAY,OAGd,CAAE8B,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIi8C,EAAI,GACJC,EAAI,GAEJ72B,EAAShnB,SACT89C,EAAW,uBAGf,OAFAF,EAAE52B,GAAU,EACZ82B,EAASpvC,MAAM,IAAIvJ,SAAQ,SAAU44C,GAAOF,EAAEE,GAAOA,KACpB,GAA1BL,EAAQ,GAAIE,GAAG52B,IAAgBsvB,EAAWoH,EAAQ,GAAIG,IAAIt7C,KAAK,KAAOu7C,KAC1E,SAAgBj0C,EAAQF,GAC3B,IAAIq0C,EAAIztC,EAAS1G,GACb+xC,EAAkB/5C,UAAUL,OAC5BgH,EAAQ,EACRmxC,EAAwBqD,EAA4Bl6C,EACpDu2C,EAAuB91C,EAA2BT,EACtD,MAAO84C,EAAkBpzC,EAAO,CAC9B,IAIIhI,EAJAk5C,EAAI+D,EAAc57C,UAAU2G,MAC5B6I,EAAOsoC,EAAwBrD,EAAWoD,GAAG/2C,OAAOg3C,EAAsBD,IAAMpD,EAAWoD,GAC3Fl4C,EAAS6P,EAAK7P,OACd2wB,EAAI,EAER,MAAO3wB,EAAS2wB,EACd3xB,EAAM6Q,EAAK8gB,KACN7uB,IAAe+1C,EAAqBj6C,KAAKs6C,EAAGl5C,KAAMw9C,EAAEx9C,GAAOk5C,EAAEl5C,IAEpE,OAAOw9C,GACPN,G,qBCrDJ,IAAI10C,EAAY,EAAQ,QACpBi0C,EAAyB,EAAQ,QAGjCjC,EAAe,SAAUiD,GAC3B,OAAO,SAAU/C,EAAO9I,GACtB,IAGI8L,EAAOC,EAHPzE,EAAIt4C,OAAO67C,EAAuB/B,IAClCkD,EAAWp1C,EAAUopC,GACrBiM,EAAO3E,EAAEl4C,OAEb,OAAI48C,EAAW,GAAKA,GAAYC,EAAaJ,EAAoB,QAAKx8C,GACtEy8C,EAAQxE,EAAE3mC,WAAWqrC,GACdF,EAAQ,OAAUA,EAAQ,OAAUE,EAAW,IAAMC,IACtDF,EAASzE,EAAE3mC,WAAWqrC,EAAW,IAAM,OAAUD,EAAS,MAC1DF,EAAoBvE,EAAEjqC,OAAO2uC,GAAYF,EACzCD,EAAoBvE,EAAE33C,MAAMq8C,EAAUA,EAAW,GAA+BD,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,SAI7Gl/C,EAAOD,QAAU,CAGfu/C,OAAQtD,GAAa,GAGrBvrC,OAAQurC,GAAa,K,uBCzBvB,IAAIl5C,EAAW,EAAQ,QACnBqM,EAAU,EAAQ,QAClBlN,EAAkB,EAAQ,QAE1BoG,EAAUpG,EAAgB,WAI9BjC,EAAOD,QAAU,SAAUw/C,EAAe/8C,GACxC,IAAIU,EASF,OAREiM,EAAQowC,KACVr8C,EAAIq8C,EAAc/2C,YAEF,mBAALtF,GAAoBA,IAAM2E,QAASsH,EAAQjM,EAAErB,WAC/CiB,EAASI,KAChBA,EAAIA,EAAEmF,GACI,OAANnF,IAAYA,OAAIT,IAH+CS,OAAIT,GAKlE,SAAWA,IAANS,EAAkB2E,MAAQ3E,GAAc,IAAXV,EAAe,EAAIA,K,uBClBhE,IAWI8T,EAAKxV,EAAK4D,EAXV86C,EAAkB,EAAQ,QAC1Bn1C,EAAS,EAAQ,QACjBvH,EAAW,EAAQ,QACnBwH,EAA8B,EAAQ,QACtCm1C,EAAY,EAAQ,QACpBC,EAAS,EAAQ,QACjBC,EAAY,EAAQ,QACpBj0C,EAAa,EAAQ,QAErBk0C,EAA6B,6BAC7BC,EAAUx1C,EAAOw1C,QAGjBC,EAAU,SAAU17C,GACtB,OAAOM,EAAIN,GAAMtD,EAAIsD,GAAMkS,EAAIlS,EAAI,KAGjC40C,EAAY,SAAUsF,GACxB,OAAO,SAAUl6C,GACf,IAAIg1C,EACJ,IAAKt2C,EAASsB,KAAQg1C,EAAQt4C,EAAIsD,IAAKmY,OAAS+hC,EAC9C,MAAMj3C,UAAU,0BAA4Bi3C,EAAO,aACnD,OAAOlF,IAIb,GAAIoG,GAAmBE,EAAOtG,MAAO,CACnC,IAAIyE,EAAQ6B,EAAOtG,QAAUsG,EAAOtG,MAAQ,IAAIyG,GAC5CE,EAAQlC,EAAM/8C,IACdk/C,EAAQnC,EAAMn5C,IACdu7C,EAAQpC,EAAMvnC,IAClBA,EAAM,SAAUlS,EAAI87C,GAClB,GAAIF,EAAM5/C,KAAKy9C,EAAOz5C,GAAK,MAAM,IAAIiD,UAAUu4C,GAG/C,OAFAM,EAASC,OAAS/7C,EAClB67C,EAAM7/C,KAAKy9C,EAAOz5C,EAAI87C,GACfA,GAETp/C,EAAM,SAAUsD,GACd,OAAO27C,EAAM3/C,KAAKy9C,EAAOz5C,IAAO,IAElCM,EAAM,SAAUN,GACd,OAAO47C,EAAM5/C,KAAKy9C,EAAOz5C,QAEtB,CACL,IAAIg8C,EAAQT,EAAU,SACtBj0C,EAAW00C,IAAS,EACpB9pC,EAAM,SAAUlS,EAAI87C,GAClB,GAAIT,EAAUr7C,EAAIg8C,GAAQ,MAAM,IAAI/4C,UAAUu4C,GAG9C,OAFAM,EAASC,OAAS/7C,EAClBkG,EAA4BlG,EAAIg8C,EAAOF,GAChCA,GAETp/C,EAAM,SAAUsD,GACd,OAAOq7C,EAAUr7C,EAAIg8C,GAASh8C,EAAGg8C,GAAS,IAE5C17C,EAAM,SAAUN,GACd,OAAOq7C,EAAUr7C,EAAIg8C,IAIzBpgD,EAAOD,QAAU,CACfuW,IAAKA,EACLxV,IAAKA,EACL4D,IAAKA,EACLo7C,QAASA,EACT9G,UAAWA,I,uBCjEb,IAAI3uC,EAAS,EAAQ,QACjBC,EAA8B,EAAQ,QACtC5F,EAAM,EAAQ,QACd8F,EAAY,EAAQ,QACpB61C,EAAgB,EAAQ,QACxB1H,EAAsB,EAAQ,QAE9BI,EAAmBJ,EAAoB73C,IACvCw/C,EAAuB3H,EAAoBmH,QAC3CS,EAAWn+C,OAAOA,QAAQsN,MAAM,WAEnC1P,EAAOD,QAAU,SAAU+E,EAAGtD,EAAKN,EAAOmI,GACzC,IAGI+vC,EAHAoH,IAASn3C,KAAYA,EAAQm3C,OAC7BC,IAASp3C,KAAYA,EAAQxI,WAC7BwK,IAAchC,KAAYA,EAAQgC,YAElB,mBAATnK,IACS,iBAAPM,GAAoBkD,EAAIxD,EAAO,SACxCoJ,EAA4BpJ,EAAO,OAAQM,GAE7C43C,EAAQkH,EAAqBp/C,GACxBk4C,EAAMzuC,SACTyuC,EAAMzuC,OAAS41C,EAASh9C,KAAmB,iBAAP/B,EAAkBA,EAAM,MAG5DsD,IAAMuF,GAIEm2C,GAEAn1C,GAAevG,EAAEtD,KAC3Bi/C,GAAS,UAFF37C,EAAEtD,GAIPi/C,EAAQ37C,EAAEtD,GAAON,EAChBoJ,EAA4BxF,EAAGtD,EAAKN,IATnCu/C,EAAQ37C,EAAEtD,GAAON,EAChBsJ,EAAUhJ,EAAKN,KAUrBoC,SAASzB,UAAW,YAAY,WACjC,MAAsB,mBAAR2B,MAAsBu1C,EAAiBv1C,MAAMmH,QAAU01C,EAAc78C,U,qBCtCrF,SAASk9C,EAAQlyC,GAiBf,MAdsB,oBAAXxN,QAAoD,kBAApBA,OAAOsI,UAChDtJ,EAAOD,QAAU2gD,EAAU,SAAiBlyC,GAC1C,cAAcA,GAGhBxO,EAAOD,QAAQ,WAAaC,EAAOD,QAASC,EAAOD,QAAQsB,YAAa,IAExErB,EAAOD,QAAU2gD,EAAU,SAAiBlyC,GAC1C,OAAOA,GAAyB,oBAAXxN,QAAyBwN,EAAIhG,cAAgBxH,QAAUwN,IAAQxN,OAAOa,UAAY,gBAAkB2M,GAG3HxO,EAAOD,QAAQ,WAAaC,EAAOD,QAASC,EAAOD,QAAQsB,YAAa,GAGnEq/C,EAAQlyC,G,4DAGjBxO,EAAOD,QAAU2gD,EACjB1gD,EAAOD,QAAQ,WAAaC,EAAOD,QAASC,EAAOD,QAAQsB,YAAa,G,qBCrBxE,IAAIyB,EAAW,EAAQ,QACnB69C,EAAiB,EAAQ,QAG7B3gD,EAAOD,QAAU,SAAUm8C,EAAO0E,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEJ,GAE0C,mBAAlCG,EAAYF,EAAMp4C,cAC1Bs4C,IAAcD,GACd/9C,EAASi+C,EAAqBD,EAAUj/C,YACxCk/C,IAAuBF,EAAQh/C,WAC/B8+C,EAAezE,EAAO6E,GACjB7E,I,mBCdTn8C,EAAQ+D,EAAInD,OAAOg6C,uB,uBCDnB,IAAItmC,EAAO,EAAQ,QACf3P,EAAM,EAAQ,QACds8C,EAA+B,EAAQ,QACvCpgD,EAAiB,EAAQ,QAAuCkD,EAEpE9D,EAAOD,QAAU,SAAUkhD,GACzB,IAAIjgD,EAASqT,EAAKrT,SAAWqT,EAAKrT,OAAS,IACtC0D,EAAI1D,EAAQigD,IAAOrgD,EAAeI,EAAQigD,EAAM,CACnD//C,MAAO8/C,EAA6Bl9C,EAAEm9C,O,mBCP1CjhD,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,oCCAF,SAASmhD,EAAO9K,GACd5yC,KAAK4yC,QAAUA,EAGjB8K,EAAOr/C,UAAUkC,SAAW,WAC1B,MAAO,UAAYP,KAAK4yC,QAAU,KAAO5yC,KAAK4yC,QAAU,KAG1D8K,EAAOr/C,UAAU00C,YAAa,EAE9Bv2C,EAAOD,QAAUmhD,G,oCChBjB,IAAIl8C,EAAQ,EAAQ,QAEpBhF,EAAOD,QACLiF,EAAM+yC,uBAGJ,WACE,MAAO,CACLoJ,MAAO,SAAe3gD,EAAMU,EAAOkgD,EAAS/sC,EAAMgtC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO/6C,KAAKhG,EAAO,IAAMi2C,mBAAmBv1C,IAExC8D,EAAMw8C,SAASJ,IACjBG,EAAO/6C,KAAK,WAAa,IAAI0L,KAAKkvC,GAASK,eAGzCz8C,EAAM0zC,SAASrkC,IACjBktC,EAAO/6C,KAAK,QAAU6N,GAGpBrP,EAAM0zC,SAAS2I,IACjBE,EAAO/6C,KAAK,UAAY66C,IAGX,IAAXC,GACFC,EAAO/6C,KAAK,UAGdma,SAAS4gC,OAASA,EAAOh+C,KAAK,OAGhCm+C,KAAM,SAAclhD,GAClB,IAAI6U,EAAQsL,SAAS4gC,OAAOlsC,MAAM,IAAIlB,OAAO,aAAe3T,EAAO,cACnE,OAAQ6U,EAAQssC,mBAAmBtsC,EAAM,IAAM,MAGjDzF,OAAQ,SAAgBpP,GACtBgD,KAAK29C,MAAM3gD,EAAM,GAAI0R,KAAKyhB,MAAQ,SA/BxC,GAqCA,WACE,MAAO,CACLwtB,MAAO,aACPO,KAAM,WAAkB,OAAO,MAC/B9xC,OAAQ,cAJZ,I,uBC7CJ,IAAIquC,EAAyB,EAAQ,QAIrCj+C,EAAOD,QAAU,SAAUi9C,GACzB,OAAOr8C,OAAOs9C,EAAuBjB,M,uBCLvC,IAmDI4E,EAnDAj5C,EAAW,EAAQ,QACnBqQ,EAAmB,EAAQ,QAC3BvN,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QACrBqpC,EAAO,EAAQ,QACf8M,EAAwB,EAAQ,QAChClC,EAAY,EAAQ,QAEpBmC,EAAK,IACLC,EAAK,IACLC,EAAY,YACZC,EAAS,SACTC,EAAWvC,EAAU,YAErBwC,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,OAAON,EAAKE,EAASH,EAAKO,EAAUN,EAAK,IAAME,EAASH,GAItDQ,EAA4B,SAAUV,GACxCA,EAAgBT,MAAMiB,EAAU,KAChCR,EAAgBW,QAChB,IAAIC,EAAOZ,EAAgBa,aAAa9hD,OAExC,OADAihD,EAAkB,KACXY,GAILE,EAA2B,WAE7B,IAEIC,EAFAC,EAASf,EAAsB,UAC/BgB,EAAK,OAASZ,EAAS,IAU3B,OARAW,EAAOn1B,MAAM+jB,QAAU,OACvBuD,EAAKxW,YAAYqkB,GAEjBA,EAAOnoC,IAAMrY,OAAOygD,GACpBF,EAAiBC,EAAOE,cAAcniC,SACtCgiC,EAAeI,OACfJ,EAAexB,MAAMiB,EAAU,sBAC/BO,EAAeJ,QACRI,EAAenH,GASpBwH,EAAkB,WACpB,IAEEpB,EAAkBjhC,SAAS0gC,QAAU,IAAI4B,cAAc,YACvD,MAAO5+C,IACT2+C,EAAkBpB,EAAkBU,EAA0BV,GAAmBc,IACjF,IAAIlgD,EAASiJ,EAAYjJ,OACzB,MAAOA,WAAiBwgD,EAAgBhB,GAAWv2C,EAAYjJ,IAC/D,OAAOwgD,KAGTt3C,EAAWw2C,IAAY,EAIvBliD,EAAOD,QAAUY,OAAOY,QAAU,SAAgBuD,EAAGyyC,GACnD,IAAIruC,EAQJ,OAPU,OAANpE,GACFq9C,EAAiBH,GAAar5C,EAAS7D,GACvCoE,EAAS,IAAIi5C,EACbA,EAAiBH,GAAa,KAE9B94C,EAAOg5C,GAAYp9C,GACdoE,EAAS85C,SACMvgD,IAAf80C,EAA2BruC,EAAS8P,EAAiB9P,EAAQquC,K,oCC3EtE,IAAIR,EAAI,EAAQ,QACZmM,EAA4B,EAAQ,QACpC/L,EAAiB,EAAQ,QACzBwJ,EAAiB,EAAQ,QACzBwC,EAAiB,EAAQ,QACzB74C,EAA8B,EAAQ,QACtCC,EAAW,EAAQ,QACnBtI,EAAkB,EAAQ,QAC1B27C,EAAU,EAAQ,QAClBvG,EAAY,EAAQ,QACpB+L,EAAgB,EAAQ,QAExBC,EAAoBD,EAAcC,kBAClCC,EAAyBF,EAAcE,uBACvC/7C,EAAWtF,EAAgB,YAC3BshD,EAAO,OACPC,EAAS,SACTC,EAAU,UAEVC,EAAa,WAAc,OAAOlgD,MAEtCxD,EAAOD,QAAU,SAAU4jD,EAAU1C,EAAM2C,EAAqBj8C,EAAMk8C,EAASC,EAAQl5C,GACrFs4C,EAA0BU,EAAqB3C,EAAMt5C,GAErD,IAkBIo8C,EAA0BrnC,EAASsnC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASL,GAAWM,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKX,EAAM,OAAO,WAAkB,OAAO,IAAIK,EAAoBpgD,KAAM0gD,IACzE,KAAKV,EAAQ,OAAO,WAAoB,OAAO,IAAII,EAAoBpgD,KAAM0gD,IAC7E,KAAKT,EAAS,OAAO,WAAqB,OAAO,IAAIG,EAAoBpgD,KAAM0gD,IAC/E,OAAO,WAAc,OAAO,IAAIN,EAAoBpgD,QAGpDtB,EAAgB++C,EAAO,YACvBoD,GAAwB,EACxBD,EAAoBT,EAAS9hD,UAC7ByiD,EAAiBF,EAAkB78C,IAClC68C,EAAkB,eAClBP,GAAWO,EAAkBP,GAC9BM,GAAmBb,GAA0BgB,GAAkBL,EAAmBJ,GAClFU,EAA4B,SAARtD,GAAkBmD,EAAkBI,SAA4BF,EAiCxF,GA7BIC,IACFR,EAA2B5M,EAAeoN,EAAkBnkD,KAAK,IAAIujD,IACjEN,IAAsB1iD,OAAOkB,WAAakiD,EAAyBp8C,OAChEi2C,GAAWzG,EAAe4M,KAA8BV,IACvD1C,EACFA,EAAeoD,EAA0BV,GACa,mBAAtCU,EAAyBx8C,IACzC+C,EAA4By5C,EAA0Bx8C,EAAUm8C,IAIpEP,EAAeY,EAA0B7hD,GAAe,GAAM,GAC1D07C,IAASvG,EAAUn1C,GAAiBwhD,KAKxCG,GAAWL,GAAUc,GAAkBA,EAAe9jD,OAASgjD,IACjEa,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAelkD,KAAKoD,QAI7Do6C,IAAWhzC,GAAWw5C,EAAkB78C,KAAc48C,GAC1D75C,EAA4B85C,EAAmB78C,EAAU48C,GAE3D9M,EAAU4J,GAAQkD,EAGdN,EAMF,GALAnnC,EAAU,CACRoL,OAAQm8B,EAAmBT,GAC3BnxC,KAAMyxC,EAASK,EAAkBF,EAAmBV,GACpDiB,QAASP,EAAmBR,IAE1B74C,EAAQ,IAAKo5C,KAAOtnC,GAClB4mC,GAA0Be,KAA2BL,KAAOI,KAC9D75C,EAAS65C,EAAmBJ,EAAKtnC,EAAQsnC,SAEtCjN,EAAE,CAAElsC,OAAQo2C,EAAMpF,OAAO,EAAMvwC,OAAQg4C,GAA0Be,GAAyB3nC,GAGnG,OAAOA,I,uBCxFT,IAAIrS,EAAS,EAAQ,QACjBg2C,EAAgB,EAAQ,QAExBR,EAAUx1C,EAAOw1C,QAErB7/C,EAAOD,QAA6B,oBAAZ8/C,GAA0B,cAAc19C,KAAKk+C,EAAcR,K,gDCLnF,IAAI/8C,EAAW,EAAQ,QAEvB9C,EAAOD,QAAU,SAAUqE,GACzB,IAAKtB,EAASsB,GACZ,MAAMiD,UAAUjF,OAAOgC,GAAM,qBAC7B,OAAOA,I,uBCLX,IAAI4C,EAAQ,EAAQ,QAGpBhH,EAAOD,SAAWiH,GAAM,WAEtB,OAA8E,GAAvErG,OAAOC,eAAe,GAAI,EAAG,CAAEE,IAAK,WAAc,OAAO,KAAQ,O,oCCH1E,IAAI2jD,EAAgB,EAAQ,QACxBC,EAAc,EAAQ,QAW1B1kD,EAAOD,QAAU,SAAuB4kD,EAASC,GAC/C,OAAID,IAAYF,EAAcG,GACrBF,EAAYC,EAASC,GAEvBA,I,kCCjBT,IAAIngD,EAAc,EAAQ,QACtBmJ,EAAuB,EAAQ,QAC/BpJ,EAA2B,EAAQ,QAEvCxE,EAAOD,QAAU,SAAU4B,EAAQH,EAAKN,GACtC,IAAI2jD,EAAcpgD,EAAYjD,GAC1BqjD,KAAeljD,EAAQiM,EAAqB9J,EAAEnC,EAAQkjD,EAAargD,EAAyB,EAAGtD,IAC9FS,EAAOkjD,GAAe3jD,I,qBCR7BlB,EAAOD,QAAU,SAAUqE,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,qBCDvD,IAAIy5C,EAAQ,EAAQ,QAEhBiH,EAAmBxhD,SAASS,SAGE,mBAAvB85C,EAAMwC,gBACfxC,EAAMwC,cAAgB,SAAUj8C,GAC9B,OAAO0gD,EAAiB1kD,KAAKgE,KAIjCpE,EAAOD,QAAU89C,EAAMwC,e,oCCXvB,W,oCCEA,IAAIa,EAAS,EAAQ,QAQrB,SAAS6D,EAAYC,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAI39C,UAAU,gCAGtB,IAAI49C,EACJzhD,KAAKwC,QAAU,IAAIC,SAAQ,SAAyBC,GAClD++C,EAAiB/+C,KAGnB,IAAIg/C,EAAQ1hD,KACZwhD,GAAS,SAAgB5O,GACnB8O,EAAMx1B,SAKVw1B,EAAMx1B,OAAS,IAAIwxB,EAAO9K,GAC1B6O,EAAeC,EAAMx1B,YAOzBq1B,EAAYljD,UAAUw7C,iBAAmB,WACvC,GAAI75C,KAAKksB,OACP,MAAMlsB,KAAKksB,QAQfq1B,EAAYp6C,OAAS,WACnB,IAAIw6C,EACAD,EAAQ,IAAIH,GAAY,SAAkBzkD,GAC5C6kD,EAAS7kD,KAEX,MAAO,CACL4kD,MAAOA,EACPC,OAAQA,IAIZnlD,EAAOD,QAAUglD,G,qBCxDjB,IAAInuC,EAAK,EACLwuC,EAAUl7C,KAAKm7C,SAEnBrlD,EAAOD,QAAU,SAAUyB,GACzB,MAAO,UAAYY,YAAeK,IAARjB,EAAoB,GAAKA,GAAO,QAAUoV,EAAKwuC,GAASrhD,SAAS,M,qBCJ7F,IAAIO,EAAc,EAAQ,QACtBsJ,EAAuB,EAAQ,QAC/BpJ,EAA2B,EAAQ,QAEvCxE,EAAOD,QAAUuE,EAAc,SAAU3C,EAAQH,EAAKN,GACpD,OAAO0M,EAAqB9J,EAAEnC,EAAQH,EAAKgD,EAAyB,EAAGtD,KACrE,SAAUS,EAAQH,EAAKN,GAEzB,OADAS,EAAOH,GAAON,EACPS,I,2GCRL,EAAS,WAAa,IAAI2jD,EAAI9hD,KAAS+hD,EAAGD,EAAI5/B,eAAmBoE,EAAGw7B,EAAI5tB,MAAM5N,IAAIy7B,EAAG,OAAOz7B,EAAG,cAAc,CAAClH,MAAM,CAAC,kBAAkB0iC,EAAIE,cAAc,eAAeF,EAAIG,MAAMjjD,OAAS,EAAE,kBAAkB8iD,EAAII,eAAe,eAAc,EAAK,MAAQJ,EAAIG,MAAM,cAAa,EAAM,eAAc,EAAK,wBAAuB,EAAM,cAAa,EAAM,SAAWH,EAAIK,SAAS,kBAAkB,CACvY,CACEnlD,KAAM,eACN+4C,MAAO,aAET,eAAe,CAAEqM,UAAU,EAAO/6C,OAAQ,SAAU,gBAAgB,CACpEg7C,YAAa,sBACbC,WAAY,mCACZC,aAAc,oBACdC,gBAAiB,4BACjBC,eAAgB,gBAChBC,qBAAsB,mCACtBC,aAAc,sBACdC,OAAQ,aACRC,UAAW,eACXC,UAAW,sBACXC,UAAW,6BACVvkC,GAAG,CAAC,eAAesjC,EAAIkB,gBACxBv/B,EAAkB,GClBP,SAASw/B,EAAkBt/C,EAAKwS,IAClC,MAAPA,GAAeA,EAAMxS,EAAI3E,UAAQmX,EAAMxS,EAAI3E,QAE/C,IAAK,IAAIvC,EAAI,EAAGymD,EAAO,IAAI7+C,MAAM8R,GAAM1Z,EAAI0Z,EAAK1Z,IAC9CymD,EAAKzmD,GAAKkH,EAAIlH,GAGhB,OAAOymD,ECNM,SAASC,EAAmBx/C,GACzC,GAAIU,MAAMsH,QAAQhI,GAAM,OAAOy/C,EAAiBz/C,G,sECFnC,SAAS0/C,EAAiBC,GACvC,GAAsB,qBAAX9lD,QAAmD,MAAzB8lD,EAAK9lD,OAAOsI,WAA2C,MAAtBw9C,EAAK,cAAuB,OAAOj/C,MAAMC,KAAKg/C,G,oBCAvG,SAASC,EAA4BrmD,EAAGsmD,GACrD,GAAKtmD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOkmD,EAAiBlmD,EAAGsmD,GACtD,IAAItlD,EAAIf,OAAOkB,UAAUkC,SAAS3D,KAAKM,GAAGqC,MAAM,GAAI,GAEpD,MADU,WAANrB,GAAkBhB,EAAE8H,cAAa9G,EAAIhB,EAAE8H,YAAYhI,MAC7C,QAANkB,GAAqB,QAANA,EAAoBmG,MAAMC,KAAKpH,GACxC,cAANgB,GAAqB,2CAA2CS,KAAKT,GAAWklD,EAAiBlmD,EAAGsmD,QAAxG,GCPa,SAASC,IACtB,MAAM,IAAI5/C,UAAU,wICGP,SAAS6/C,EAAmB//C,GACzC,OAAOggD,EAAkBhgD,IAAQigD,EAAgBjgD,IAAQkgD,EAA2BlgD,IAAQmgD,ICL9F,SAASC,EAAmBC,EAAKthD,EAASupB,EAAQg4B,EAAOC,EAAQlmD,EAAKojC,GACpE,IACE,IAAIxlB,EAAOooC,EAAIhmD,GAAKojC,GAChB1jC,EAAQke,EAAKle,MACjB,MAAOmD,GAEP,YADAorB,EAAOprB,GAIL+a,EAAKxX,KACP1B,EAAQhF,GAER+E,QAAQC,QAAQhF,GAAOuF,KAAKghD,EAAOC,GAIxB,SAASC,EAAkBrlD,GACxC,OAAO,WACL,IAAIslD,EAAOpkD,KACPJ,EAAOP,UACX,OAAO,IAAIoD,SAAQ,SAAUC,EAASupB,GACpC,IAAI+3B,EAAMllD,EAAGM,MAAMglD,EAAMxkD,GAEzB,SAASqkD,EAAMvmD,GACbqmD,EAAmBC,EAAKthD,EAASupB,EAAQg4B,EAAOC,EAAQ,OAAQxmD,GAGlE,SAASwmD,EAAOvoC,GACdooC,EAAmBC,EAAKthD,EAASupB,EAAQg4B,EAAOC,EAAQ,QAASvoC,GAGnEsoC,OAAMhlD,OC/BG,SAASolD,EAAgB/L,EAAU10C,GAChD,KAAM00C,aAAoB10C,GACxB,MAAM,IAAIC,UAAU,qCCFxB,SAASygD,EAAkBj9C,EAAQ4R,GACjC,IAAK,IAAIxc,EAAI,EAAGA,EAAIwc,EAAMja,OAAQvC,IAAK,CACrC,IAAI+K,EAAayR,EAAMxc,GACvB+K,EAAWnK,WAAamK,EAAWnK,aAAc,EACjDmK,EAAW8C,cAAe,EACtB,UAAW9C,IAAYA,EAAWiJ,UAAW,GACjDtT,OAAOC,eAAeiK,EAAQG,EAAWxJ,IAAKwJ,IAInC,SAAS+8C,EAAa3gD,EAAa4gD,EAAYC,GAG5D,OAFID,GAAYF,EAAkB1gD,EAAYvF,UAAWmmD,GACrDC,GAAaH,EAAkB1gD,EAAa6gD,GACzC7gD,ECbM,SAAS8gD,EAAgBxnD,EAAGqB,GAMzC,OALAmmD,EAAkBvnD,OAAOggD,gBAAkB,SAAyBjgD,EAAGqB,GAErE,OADArB,EAAEga,UAAY3Y,EACPrB,GAGFwnD,EAAgBxnD,EAAGqB,GCLb,SAASomD,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIhhD,UAAU,sDAGtB+gD,EAASvmD,UAAYlB,OAAOY,OAAO8mD,GAAcA,EAAWxmD,UAAW,CACrE2G,YAAa,CACXtH,MAAOknD,EACPn0C,UAAU,EACVnG,cAAc,KAGdu6C,GAAY1H,EAAeyH,EAAUC,G,oBCb5B,SAASC,EAAgB5nD,GAItC,OAHA4nD,EAAkB3nD,OAAOggD,eAAiBhgD,OAAOw2C,eAAiB,SAAyBz2C,GACzF,OAAOA,EAAEga,WAAa/Z,OAAOw2C,eAAez2C,IAEvC4nD,EAAgB5nD,GCJV,SAAS6nD,IACtB,GAAuB,qBAAZpyC,UAA4BA,QAAQlT,UAAW,OAAO,EACjE,GAAIkT,QAAQlT,UAAUsI,KAAM,OAAO,EACnC,GAAqB,oBAAVi9C,MAAsB,OAAO,EAExC,IAEE,OADA9/C,QAAQ7G,UAAU4mD,QAAQroD,KAAK+V,QAAQlT,UAAUyF,QAAS,IAAI,iBACvD,EACP,MAAOwE,GACP,OAAO,G,yBCTI,SAASw7C,EAAuBd,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIe,eAAe,6DAG3B,OAAOf,ECHM,SAASgB,EAA2BhB,EAAMxnD,GACvD,OAAIA,GAA2B,WAAlBsgD,IAAQtgD,IAAsC,oBAATA,EAI3CyoD,EAAsBjB,GAHpBxnD,ECDI,SAAS0oD,EAAaC,GACnC,IAAIC,EAA4BC,IAChC,OAAO,WACL,IACI//C,EADA+vB,EAAQke,EAAe4R,GAG3B,GAAIC,EAA2B,CAC7B,IAAIlI,EAAY3J,EAAe3zC,MAAMgF,YACrCU,EAASiN,QAAQlT,UAAUg2B,EAAOp2B,UAAWi+C,QAE7C53C,EAAS+vB,EAAMr2B,MAAMY,KAAMX,WAG7B,OAAOqmD,EAA0B1lD,KAAM0F,I,oBCoCpC,SAASigD,EAAWC,EAAYv+C,EAAQrJ,EAAK6nD,GAChD,IAA2H9oD,EAAvHD,EAAIuC,UAAUL,OAAQzB,EAAIT,EAAI,EAAIuK,EAAkB,OAATw+C,EAAgBA,EAAO1oD,OAAOkE,yBAAyBgG,EAAQrJ,GAAO6nD,EACrH,GAAuB,kBAAZlzC,SAAoD,oBAArBA,QAAQmzC,SAAyBvoD,EAAIoV,QAAQmzC,SAASF,EAAYv+C,EAAQrJ,EAAK6nD,QACpH,IAAK,IAAIppD,EAAImpD,EAAW5mD,OAAS,EAAGvC,GAAK,EAAGA,KAASM,EAAI6oD,EAAWnpD,MAAIc,GAAKT,EAAI,EAAIC,EAAEQ,GAAKT,EAAI,EAAIC,EAAEsK,EAAQrJ,EAAKT,GAAKR,EAAEsK,EAAQrJ,KAAST,GAChJ,OAAOT,EAAI,GAAKS,GAAKJ,OAAOC,eAAeiK,EAAQrJ,EAAKT,GAAIA;;;;;;ACjDhE,SAAS2/C,EAAQlyC,GAWf,OATEkyC,EADoB,oBAAX1/C,QAAoD,kBAApBA,OAAOsI,SACtC,SAAUkF,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,oBAAXxN,QAAyBwN,EAAIhG,cAAgBxH,QAAUwN,IAAQxN,OAAOa,UAAY,gBAAkB2M,GAItHkyC,EAAQlyC,GAGjB,SAAS+6C,EAAgB/6C,EAAKhN,EAAKN,GAYjC,OAXIM,KAAOgN,EACT7N,OAAOC,eAAe4N,EAAKhN,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZiN,cAAc,EACdmG,UAAU,IAGZzF,EAAIhN,GAAON,EAGNsN,EAGT,SAAS,EAAmBrH,GAC1B,OAAO,EAAmBA,IAAQ,EAAiBA,IAAQ,IAG7D,SAAS,EAAmBA,GAC1B,GAAIU,MAAMsH,QAAQhI,GAAM,CACtB,IAAK,IAAIlH,EAAI,EAAGymD,EAAO,IAAI7+C,MAAMV,EAAI3E,QAASvC,EAAIkH,EAAI3E,OAAQvC,IAAKymD,EAAKzmD,GAAKkH,EAAIlH,GAEjF,OAAOymD,GAIX,SAAS,EAAiBI,GACxB,GAAI9lD,OAAOsI,YAAY3I,OAAOmmD,IAAkD,uBAAzCnmD,OAAOkB,UAAUkC,SAAS3D,KAAK0mD,GAAgC,OAAOj/C,MAAMC,KAAKg/C,GAG1H,SAAS,IACP,MAAM,IAAIz/C,UAAU,mDAMtB,SAASmiD,IACP,MAA0B,qBAAZrzC,SAA2BA,QAAQszC,gBAAkBtzC,QAAQuzC,mBAE7E,SAASC,EAAuBt4C,EAAIvJ,GAClC8hD,EAAgBv4C,EAAIvJ,GACpBnH,OAAOuD,oBAAoB4D,EAAKjG,WAAWsE,SAAQ,SAAU3E,GAC3DooD,EAAgBv4C,EAAGxP,UAAWiG,EAAKjG,UAAWL,MAEhDb,OAAOuD,oBAAoB4D,GAAM3B,SAAQ,SAAU3E,GACjDooD,EAAgBv4C,EAAIvJ,EAAMtG,MAI9B,SAASooD,EAAgBv4C,EAAIvJ,EAAM+8C,GACjC,IAAIgF,EAAWhF,EAAc1uC,QAAQuzC,mBAAmB5hD,EAAM+8C,GAAe1uC,QAAQuzC,mBAAmB5hD,GACxG+hD,EAAS1jD,SAAQ,SAAU2jD,GACzB,IAAI5J,EAAW2E,EAAc1uC,QAAQ4zC,eAAeD,EAAShiD,EAAM+8C,GAAe1uC,QAAQ4zC,eAAeD,EAAShiD,GAE9G+8C,EACF1uC,QAAQszC,eAAeK,EAAS5J,EAAU7uC,EAAIwzC,GAE9C1uC,QAAQszC,eAAeK,EAAS5J,EAAU7uC,MAKhD,IAAI24C,EAAY,CACdtvC,UAAW,IAETlG,EAAWw1C,aAAqBniD,MA2BpC,SAAS0G,EAAYrN,GACnB,IAAIqb,EAAOmkC,EAAQx/C,GAEnB,OAAgB,MAATA,GAA0B,WAATqb,GAA8B,aAATA,EAQ/C,SAAS0tC,EAA2BluC,EAAImuC,GAEtC,IAAIC,EAAeD,EAAUroD,UAAU01B,MAEvC2yB,EAAUroD,UAAU01B,MAAQ,WAC1B,IAAI6yB,EAAQ5mD,KAGR6O,EAAO1R,OAAOuD,oBAAoB6X,GAEtC,GAAIA,EAAG6C,SAASnC,MACd,IAAK,IAAIjb,KAAOua,EAAG6C,SAASnC,MACrBV,EAAGja,eAAeN,IACrB6Q,EAAK7L,KAAKhF,GAKhB6Q,EAAKlM,SAAQ,SAAU3E,GACrBb,OAAOC,eAAewpD,EAAO5oD,EAAK,CAChCV,IAAK,WACH,OAAOib,EAAGva,IAEZ8U,IAAK,SAAapV,GAChB6a,EAAGva,GAAON,GAEZ4M,cAAc,QAMpB,IAAI/G,EAAO,IAAImjD,EAEfA,EAAUroD,UAAU01B,MAAQ4yB,EAE5B,IAAIE,EAAY,GAahB,OAZA1pD,OAAO0R,KAAKtL,GAAMZ,SAAQ,SAAU3E,QAChBiB,IAAdsE,EAAKvF,KACP6oD,EAAU7oD,GAAOuF,EAAKvF,OAUnB6oD,EAGT,IAAIC,EAAiB,CAAC,OAAQ,eAAgB,UAAW,cAAe,UAAW,gBAAiB,YAAa,eAAgB,UAAW,YAAa,cAAe,SAAU,gBAAiB,kBAEnM,SAASC,EAAiBL,GACxB,IAAI7gD,EAAUxG,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,GAClFwG,EAAQ7I,KAAO6I,EAAQ7I,MAAQ0pD,EAAUtyB,eAAiBsyB,EAAU1pD,KAEpE,IAAIq7C,EAAQqO,EAAUroD,UACtBlB,OAAOuD,oBAAoB23C,GAAO11C,SAAQ,SAAU3E,GAClD,GAAY,gBAARA,EAKJ,GAAI8oD,EAAex6C,QAAQtO,IAAQ,EACjC6H,EAAQ7H,GAAOq6C,EAAMr6C,OADvB,CAKA,IAAIwJ,EAAarK,OAAOkE,yBAAyBg3C,EAAOr6C,QAE/B,IAArBwJ,EAAW9J,MAEmB,oBAArB8J,EAAW9J,OACnBmI,EAAQqT,UAAYrT,EAAQqT,QAAU,KAAKlb,GAAOwJ,EAAW9J,OAG7DmI,EAAQoU,SAAWpU,EAAQoU,OAAS,KAAKjX,KAAK,CAC7CO,KAAM,WACJ,OAAOwiD,EAAgB,GAAI/nD,EAAKwJ,EAAW9J,WAIxC8J,EAAWlK,KAAOkK,EAAWsL,QAErCjN,EAAQuT,WAAavT,EAAQuT,SAAW,KAAKpb,GAAO,CACnDV,IAAKkK,EAAWlK,IAChBwV,IAAKtL,EAAWsL,WAIrBjN,EAAQoU,SAAWpU,EAAQoU,OAAS,KAAKjX,KAAK,CAC7CO,KAAM,WACJ,OAAOkjD,EAA2BzmD,KAAM0mD,MAI5C,IAAId,EAAac,EAAUM,eAEvBpB,IACFA,EAAWjjD,SAAQ,SAAU7D,GAC3B,OAAOA,EAAG+G,aAEL6gD,EAAUM,gBAInB,IAAIC,EAAa9pD,OAAOw2C,eAAe+S,EAAUroD,WAC7Co3B,EAAQwxB,aAAsB,OAAMA,EAAWjiD,YAAc,OAC7DkiD,EAAWzxB,EAAM7nB,OAAO/H,GAO5B,OANAshD,EAAqBD,EAAUR,EAAWjxB,GAEtCuwB,KACFG,EAAuBe,EAAUR,GAG5BQ,EAET,IAKIE,EAAe,CACjB/oD,WAAW,EACXgB,WAAW,EACXgoD,QAAQ,EACRC,QAAQ,GAGV,SAASH,EAAqBD,EAAUK,EAAU9xB,GAEhDt4B,OAAOuD,oBAAoB6mD,GAAU5kD,SAAQ,SAAU3E,GAErD,IAAIopD,EAAappD,GAAjB,CAKA,IAAIwpD,EAAqBrqD,OAAOkE,yBAAyB6lD,EAAUlpD,GAEnE,IAAIwpD,GAAuBA,EAAmBl9C,aAA9C,CAIA,IAAI9C,EAAarK,OAAOkE,yBAAyBkmD,EAAUvpD,GAQ3D,IAAKgT,EAAU,CAIb,GAAY,QAARhT,EACF,OAGF,IAAIypD,EAAkBtqD,OAAOkE,yBAAyBo0B,EAAOz3B,GAE7D,IAAK+M,EAAYvD,EAAW9J,QAAU+pD,GAAmBA,EAAgB/pD,QAAU8J,EAAW9J,MAC5F,OAKA,EAIJP,OAAOC,eAAe8pD,EAAUlpD,EAAKwJ,QAIzC,SAAS,EAAU3B,GACjB,MAAuB,oBAAZA,EACFkhD,EAAiBlhD,GAGnB,SAAU6gD,GACf,OAAOK,EAAiBL,EAAW7gD,IAIvC,EAAU6hD,cAAgB,SAAuB74C,GAC/Ci4C,EAAe9jD,KAAK5D,MAAM0nD,EAAgB,EAAmBj4C,KAGhD,QC7TqC,qBAAZ8D,SAAkCA,QAAQg1C,Y,yBC8C7D,G,UAArB,kE,0BACE,EAAAC,OAA2B,KAC3B,EAAA3F,MAAe,CACb,CACE4F,OAAQ,SACRC,SAAU,GACVC,OAAQ,GACRC,MAAO,KAGX,EAAA9F,gBAAiB,EACjB,EAAAC,SAAqB,GACrB,EAAAH,cAA+B,KAZjC,mCAcE,WAEE,IAAIiG,EAA6B,GAC3BC,EAAc/qC,SAAS+8B,eAAe,aACxCgO,IAAaD,EAAcC,EAAYhtB,aAC3C,IAAIitB,EAAgB,KACpB,IAAIF,EACC,KAAM,wBADME,EAAW7+C,KAAKG,MAAMw+C,GAGvCjoD,KAAKiiD,MAAQ,CACX,CACE4F,OAAQM,EAASC,UACjBN,SAAUK,EAASE,WACnBN,OAAQ,GAERC,MAAO,CACL,CACEM,IAAK,EACLC,SAAU,cACVR,OAAQ,sBACR99C,OAAQ,CACN2rC,MAAO,SACP4S,YAAa,iBAGjB,CACEF,IAAK,EACLC,SAAU,cACVR,OAAQ,uBACR99C,OAAQ,CACN2rC,MAAO,SACP4S,YAAa,mBAGjB,CACEF,IAAK,EACLC,SAAU,cACVR,OAAQ,uBACR99C,OAAQ,CACN2rC,MAAO,SACP4S,YAAa,sBAMvBxoD,KAAKyoD,QAAQN,EAASC,WACtBpoD,KAAKgiD,cAAgBmG,EAASO,UA7DlC,qBAgEE,SAAQZ,GAEN,IAAI3V,EAAW,MACiB,UAA5B1xC,OAAOixC,SAASS,WAAsBA,EAAW,MACrDnyC,KAAK4nD,OAAS,IAAIe,UAAUxW,EAAW,MAAQ1xC,OAAOixC,SAASU,KAAO,YAAc0V,EAAW,KAC/F9nD,KAAK4oD,gBAEL5oD,KAAK4nD,OAAOiB,QAAU,WACpBvsC,QAAQwsC,IAAI,yBAxElB,uEAgFE,yGACE9oD,KAAK4nD,OAAQrV,UAAY,SAAC7oC,GACxB,IAAMnG,EAAO+F,KAAKG,MAAMC,EAAEnG,MACpBwV,EAAOxV,EAAKwV,KAElB,GAAY,WAARA,IAAqB,EAAKmpC,eAA9B,CACA,IAAM6G,EAAcxlD,EAAK4+C,SAEzB,GADA,EAAKA,SAAL,YAAoB,EAAKA,UAAzB,EAAsC4G,IAC1B,WAARhwC,EAAmB,CACrB,EAAKmpC,gBAAiB,EAEtB,IAAM8G,EAAmB7rC,SAASgd,cAAc,yBAChD,EAAKvP,WAAU,WACVo+B,IACDA,EAAiBC,UAAYD,EAAiBE,oBAdxD,gDAhFF,kFAoGE,YAA8C,IAAhCrK,EAAgC,EAAhCA,QAASsK,EAAuB,EAAvBA,aAErBnpD,KAAK4nD,OAAQwB,KACX9/C,KAAKC,UAAU,CACbqpC,QAASiM,EACTwK,QAASF,EAAeA,EAAab,IAAM,YAzGnD,GAAkC,SAAb,EAAI,GALxB,EAAU,CACT3zB,WAAY,CACV20B,WAAA,QAGiB,WC/C0W,I,UCMhX,SAASC,EACtBC,EACA9nC,EACA+B,EACAgmC,EACAC,EACAtuB,EACAuuB,EACAC,GAGA,IAqBI9wC,EArBAjT,EAAmC,oBAAlB2jD,EACjBA,EAAc3jD,QACd2jD,EAsDJ,GAnDI9nC,IACF7b,EAAQ6b,OAASA,EACjB7b,EAAQ4d,gBAAkBA,EAC1B5d,EAAQmgB,WAAY,GAIlByjC,IACF5jD,EAAQ6iB,YAAa,GAInB0S,IACFv1B,EAAQwgB,SAAW,UAAY+U,GAI7BuuB,GACF7wC,EAAO,SAAUxE,GAEfA,EACEA,GACCtU,KAAK4pB,QAAU5pB,KAAK4pB,OAAOqO,YAC3Bj4B,KAAK6U,QAAU7U,KAAK6U,OAAO+U,QAAU5pB,KAAK6U,OAAO+U,OAAOqO,WAEtD3jB,GAA0C,qBAAxBu1C,sBACrBv1C,EAAUu1C,qBAGRH,GACFA,EAAa9sD,KAAKoD,KAAMsU,GAGtBA,GAAWA,EAAQw1C,uBACrBx1C,EAAQw1C,sBAAsB/2C,IAAI42C,IAKtC9jD,EAAQkkD,aAAejxC,GACd4wC,IACT5wC,EAAO8wC,EACH,WACAF,EAAa9sD,KACXoD,MACC6F,EAAQ6iB,WAAa1oB,KAAK6U,OAAS7U,MAAMytB,MAAMrS,SAAS4uC,aAG3DN,GAGF5wC,EACF,GAAIjT,EAAQ6iB,WAAY,CAGtB7iB,EAAQokD,cAAgBnxC,EAExB,IAAIoxC,EAAiBrkD,EAAQ6b,OAC7B7b,EAAQ6b,OAAS,SAAmC8sB,EAAGl6B,GAErD,OADAwE,EAAKlc,KAAK0X,GACH41C,EAAe1b,EAAGl6B,QAEtB,CAEL,IAAIyP,EAAWle,EAAQskD,aACvBtkD,EAAQskD,aAAepmC,EACnB,GAAG5jB,OAAO4jB,EAAUjL,GACpB,CAACA,GAIT,MAAO,CACLvc,QAASitD,EACT3jD,QAASA,GCvFb,IAAIsmB,EAAY,EACd,EACA,EACA1I,GACA,EACA,KACA,KACA,MAIa,EAAA0I,E,QCnBX,GAAS,WAAa,IAAI21B,EAAI9hD,KAAS+hD,EAAGD,EAAI5/B,eAAmBoE,EAAGw7B,EAAI5tB,MAAM5N,IAAIy7B,EAAG,OAAOz7B,EAAG,MAAM,CAAClH,MAAM,CAAC,GAAK,gBAAgB,SAAW,KAAKZ,GAAG,CAAC,MAAQsjC,EAAIvC,KAAK,SAAWuC,EAAI/C,QAAQ,CAACz4B,EAAG,MAAM,CAAC4S,YAAY,QAAQ,CAAC5S,EAAG,MAAM,CAAC4S,YAAY,aAAa9Z,MAAM,CAAC,IAAM,oCAAoC,IAAM,gBAAgB,MAAQ,mBAAoB0iC,EAAIsI,eAAiB,EAAG9jC,EAAG,OAAO,CAAC4S,YAAY,cAAc,CAAC4oB,EAAIz8B,GAAGy8B,EAAIl9B,GAAGk9B,EAAIsI,mBAAmBtI,EAAIx8B,OAAQw8B,EAAU,OAAEx7B,EAAG,MAAM,CAAC4S,YAAY,sBAAsB,CAAC5S,EAAG,KAAKw7B,EAAIj9B,GAAIi9B,EAAY,UAAE,SAASlP,GAAS,OAAOtsB,EAAG,sBAAsB,CAACtoB,IAAI40C,EAAQ0V,IAAIlpC,MAAM,CAAC,GAAKwzB,EAAQ0V,IAAI,QAAU1V,EAAQiM,QAAQ,IAAMjM,EAAQxwC,IAAI,OAASwwC,EAAQyX,OAAO,gBAAgBzX,EAAQvb,cAAa,KAAKyqB,EAAIx8B,QACvvB,GAAkB,GCDlB,I,oBAAS,WAAa,IAAIw8B,EAAI9hD,KAAS+hD,EAAGD,EAAI5/B,eAAmBoE,EAAGw7B,EAAI5tB,MAAM5N,IAAIy7B,EAAG,OAAOz7B,EAAG,KAAK,CAAC9H,GAAG,CAAC,MAAQ,SAAS4E,GAAQ,OAAO0+B,EAAIwI,WAAW,QAAU,SAASlnC,GAAQ,MAAG,WAAYA,GAA4B,IAAlBA,EAAOmnC,OAAsB,KAAczI,EAAI0I,mBAAmB,CAAClkC,EAAG,OAAO,CAAC4D,MAAM,CAAE,UAAa43B,EAAIuI,OAAQj2C,MAAM,IAAQ,CAAC0tC,EAAIz8B,GAAGy8B,EAAIl9B,GAAGk9B,EAAIjD,YAAYv4B,EAAG,OAAO,CAAC4S,YAAY,QAAQ,CAAC4oB,EAAIz8B,GAAGy8B,EAAIl9B,GAAGk9B,EAAI2I,sBAAsB,WAChb,GAAkB,G,UCUP,SAASC,GAAgCC,GACtD,IAAIC,EAAU,IAAIl8C,KAAKA,KAAKm8C,IAAIF,EAAKG,cAAeH,EAAKI,WAAYJ,EAAKK,UAAWL,EAAKM,WAAYN,EAAKO,aAAcP,EAAKQ,aAAcR,EAAKS,oBAEjJ,OADAR,EAAQS,eAAeV,EAAKG,eACrBH,EAAKh8C,UAAYi8C,EAAQj8C,UCdnB,SAAS28C,GAAaC,EAAU3rD,GAC7C,GAAIA,EAAKZ,OAASusD,EAChB,MAAM,IAAI1nD,UAAU0nD,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyB3rD,EAAKZ,OAAS,YC8BrG,SAASwsD,GAAOhS,GAC7B8R,GAAa,EAAGjsD,WAChB,IAAIosD,EAAStuD,OAAOkB,UAAUkC,SAAS3D,KAAK48C,GAE5C,OAAIA,aAAoB9qC,MAA4B,kBAAb8qC,GAAoC,kBAAXiS,EAEvD,IAAI/8C,KAAK8qC,EAAS7qC,WACI,kBAAb6qC,GAAoC,oBAAXiS,EAClC,IAAI/8C,KAAK8qC,IAES,kBAAbA,GAAoC,oBAAXiS,GAAoD,qBAAZnvC,UAE3EA,QAAQrJ,KAAK,oJAEbqJ,QAAQrJ,MAAK,IAAI6/B,OAAQwB,QAGpB,IAAI5lC,KAAKg9C,MCxBL,SAASC,GAAWC,GACjCN,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GAElB,OADAjB,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,EC1BT,IAAImB,GAAsB,MAoCX,SAASC,GAAyBC,EAAeC,GAC9DX,GAAa,EAAGjsD,WAChB,IAAI6sD,EAAiBP,GAAWK,GAC5BG,EAAkBR,GAAWM,GAC7BG,EAAgBF,EAAev9C,UAAY+7C,GAAgCwB,GAC3EG,EAAiBF,EAAgBx9C,UAAY+7C,GAAgCyB,GAIjF,OAAOzlD,KAAK4lD,OAAOF,EAAgBC,GAAkBP,ICVxC,SAAS1Y,GAAO11C,GAE7B,OADA4tD,GAAa,EAAGjsD,WACT3B,aAAiBgR,MAAyB,kBAAVhR,GAAgE,kBAA1CP,OAAOkB,UAAUkC,SAAS3D,KAAKc,GCqB/E,SAAS6uD,GAAQX,GAG9B,GAFAN,GAAa,EAAGjsD,YAEX+zC,GAAOwY,IAAmC,kBAAdA,EAC/B,OAAO,EAGT,IAAIjB,EAAOa,GAAOI,GAClB,OAAQ//C,MAAMmrB,OAAO2zB,ICrEvB,IAAI6B,GAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,+BAETC,SAAU,CACRF,IAAK,WACLC,MAAO,qBAETE,YAAa,gBACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,+BAETI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAETK,YAAa,CACXN,IAAK,eACLC,MAAO,yBAETM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAETO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAETQ,YAAa,CACXT,IAAK,eACLC,MAAO,yBAETS,OAAQ,CACNV,IAAK,SACLC,MAAO,mBAETU,aAAc,CACZX,IAAK,gBACLC,MAAO,0BAETW,QAAS,CACPZ,IAAK,UACLC,MAAO,oBAETY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAETa,OAAQ,CACNd,IAAK,SACLC,MAAO,mBAETc,WAAY,CACVf,IAAK,cACLC,MAAO,wBAETe,aAAc,CACZhB,IAAK,gBACLC,MAAO,2BAIPgB,GAAiB,SAAUjM,EAAOkM,EAAO/nD,GAC3C,IAAIH,EACAmoD,EAAarB,GAAqB9K,GAUtC,OAPEh8C,EADwB,kBAAfmoD,EACAA,EACU,IAAVD,EACAC,EAAWnB,IAEXmB,EAAWlB,MAAMrpD,QAAQ,YAAasqD,EAAMrtD,YAGvC,OAAZsF,QAAgC,IAAZA,GAAsBA,EAAQioD,UAChDjoD,EAAQkoD,YAAcloD,EAAQkoD,WAAa,EACtC,MAAQroD,EAERA,EAAS,OAIbA,GAGM,MCvFA,SAASsoD,GAAkBpuD,GACxC,OAAO,WACL,IAAIiG,EAAUxG,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,GAE9E4uD,EAAQpoD,EAAQooD,MAAQrvD,OAAOiH,EAAQooD,OAASruD,EAAKsuD,aACrDC,EAASvuD,EAAKwuD,QAAQH,IAAUruD,EAAKwuD,QAAQxuD,EAAKsuD,cACtD,OAAOC,GCLX,IAAIE,GAAc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAELC,GAAc,CAChBJ,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAELE,GAAkB,CACpBL,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAELG,GAAa,CACfjE,KAAMqD,GAAkB,CACtBI,QAASC,GACTH,aAAc,SAEhBW,KAAMb,GAAkB,CACtBI,QAASM,GACTR,aAAc,SAEhBY,SAAUd,GAAkB,CAC1BI,QAASO,GACTT,aAAc,UAGH,MCjCXa,GAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVzC,MAAO,KAGL0C,GAAiB,SAAU3N,EAAO4N,EAAOC,EAAWC,GACtD,OAAOT,GAAqBrN,IAGf,MCbA,SAAS+N,GAAgB7vD,GACtC,OAAO,SAAU8vD,EAAYC,GAC3B,IAEIC,EAFA/pD,EAAU8pD,GAAgB,GAC1Br7C,EAAUzO,EAAQyO,QAAU1V,OAAOiH,EAAQyO,SAAW,aAG1D,GAAgB,eAAZA,GAA4B1U,EAAKiwD,iBAAkB,CACrD,IAAI3B,EAAetuD,EAAKkwD,wBAA0BlwD,EAAKsuD,aACnDD,EAAQpoD,EAAQooD,MAAQrvD,OAAOiH,EAAQooD,OAASC,EACpD0B,EAAchwD,EAAKiwD,iBAAiB5B,IAAUruD,EAAKiwD,iBAAiB3B,OAC/D,CACL,IAAI6B,EAAgBnwD,EAAKsuD,aAErB8B,EAASnqD,EAAQooD,MAAQrvD,OAAOiH,EAAQooD,OAASruD,EAAKsuD,aAE1D0B,EAAchwD,EAAK0kB,OAAO0rC,IAAWpwD,EAAK0kB,OAAOyrC,GAGnD,IAAI/pD,EAAQpG,EAAKqwD,iBAAmBrwD,EAAKqwD,iBAAiBP,GAAcA,EAExE,OAAOE,EAAY5pD,ICnBvB,IAAIkqD,GAAY,CACdC,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAEtBC,GAAgB,CAClBH,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAMlDE,GAAc,CAChBJ,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aAEnHG,GAAY,CACdL,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC1B,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5C2B,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aAEvEI,GAAkB,CACpBN,OAAQ,CACNO,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETZ,KAAM,CACJK,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAGPC,GAA4B,CAC9Bf,OAAQ,CACNO,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETZ,KAAM,CACJK,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAIPE,GAAgB,SAAUC,EAAa5B,GACzC,IAAI3qB,EAAS7N,OAAOo6B,GAOhBC,EAASxsB,EAAS,IAEtB,GAAIwsB,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOxsB,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,KAItB,OAAOA,EAAS,MAGd,GAAW,CACbssB,cAAeA,GACfG,IAAK7B,GAAgB,CACnBnrC,OAAQ4rC,GACRhC,aAAc,SAEhBqD,QAAS9B,GAAgB,CACvBnrC,OAAQgsC,GACRpC,aAAc,OACd+B,iBAAkB,SAAUsB,GAC1B,OAAOA,EAAU,KAGrBC,MAAO/B,GAAgB,CACrBnrC,OAAQisC,GACRrC,aAAc,SAEhBuD,IAAKhC,GAAgB,CACnBnrC,OAAQksC,GACRtC,aAAc,SAEhBwD,UAAWjC,GAAgB,CACzBnrC,OAAQmsC,GACRvC,aAAc,OACd2B,iBAAkBqB,GAClBpB,uBAAwB,UAGb,MCjJA,SAAS6B,GAAa/xD,GACnC,OAAO,SAAU81C,GACf,IAAI7vC,EAAUxG,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,GAC9E4uD,EAAQpoD,EAAQooD,MAChB2D,EAAe3D,GAASruD,EAAKiyD,cAAc5D,IAAUruD,EAAKiyD,cAAcjyD,EAAKkyD,mBAC7EC,EAAcrc,EAAO7jC,MAAM+/C,GAE/B,IAAKG,EACH,OAAO,KAGT,IAOIr0D,EAPAs0D,EAAgBD,EAAY,GAC5BE,EAAgBhE,GAASruD,EAAKqyD,cAAchE,IAAUruD,EAAKqyD,cAAcryD,EAAKsyD,mBAC9El0D,EAAMqG,MAAMsH,QAAQsmD,GAAiBE,GAAUF,GAAe,SAAU57B,GAC1E,OAAOA,EAAQ13B,KAAKqzD,MACjBI,GAAQH,GAAe,SAAU57B,GACpC,OAAOA,EAAQ13B,KAAKqzD,MAGtBt0D,EAAQkC,EAAKyyD,cAAgBzyD,EAAKyyD,cAAcr0D,GAAOA,EACvDN,EAAQmI,EAAQwsD,cAAgBxsD,EAAQwsD,cAAc30D,GAASA,EAC/D,IAAI40D,EAAO5c,EAAOn2C,MAAMyyD,EAAchzD,QACtC,MAAO,CACLtB,MAAOA,EACP40D,KAAMA,IAKZ,SAASF,GAAQj0D,EAAQo0D,GACvB,IAAK,IAAIv0D,KAAOG,EACd,GAAIA,EAAOG,eAAeN,IAAQu0D,EAAUp0D,EAAOH,IACjD,OAAOA,EAOb,SAASm0D,GAAUptD,EAAOwtD,GACxB,IAAK,IAAIv0D,EAAM,EAAGA,EAAM+G,EAAM/F,OAAQhB,IACpC,GAAIu0D,EAAUxtD,EAAM/G,IAClB,OAAOA,EC1CE,SAASw0D,GAAoB5yD,GAC1C,OAAO,SAAU81C,GACf,IAAI7vC,EAAUxG,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,GAC9E0yD,EAAcrc,EAAO7jC,MAAMjS,EAAKgyD,cACpC,IAAKG,EAAa,OAAO,KACzB,IAAIC,EAAgBD,EAAY,GAC5BU,EAAc/c,EAAO7jC,MAAMjS,EAAK8yD,cACpC,IAAKD,EAAa,OAAO,KACzB,IAAI/0D,EAAQkC,EAAKyyD,cAAgBzyD,EAAKyyD,cAAcI,EAAY,IAAMA,EAAY,GAClF/0D,EAAQmI,EAAQwsD,cAAgBxsD,EAAQwsD,cAAc30D,GAASA,EAC/D,IAAI40D,EAAO5c,EAAOn2C,MAAMyyD,EAAchzD,QACtC,MAAO,CACLtB,MAAOA,EACP40D,KAAMA,ICXZ,IAAIK,GAA4B,wBAC5BC,GAA4B,OAC5BC,GAAmB,CACrB1C,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DAEJyC,GAAmB,CACrBC,IAAK,CAAC,MAAO,YAEXC,GAAuB,CACzB7C,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAEJ4C,GAAuB,CACzBF,IAAK,CAAC,KAAM,KAAM,KAAM,OAEtBG,GAAqB,CACvB/C,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAEJ8C,GAAqB,CACvBhD,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtF4C,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAE5FK,GAAmB,CACrBjD,OAAQ,YACR1B,MAAO,2BACP2B,YAAa,kCACbC,KAAM,gEAEJgD,GAAmB,CACrBlD,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD4C,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAEjDO,GAAyB,CAC3BnD,OAAQ,6DACR4C,IAAK,kFAEHQ,GAAyB,CAC3BR,IAAK,CACHrC,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WAGPp/C,GAAQ,CACVs/C,cAAeqB,GAAoB,CACjCZ,aAAce,GACdD,aAAcE,GACdP,cAAe,SAAU30D,GACvB,OAAO05B,SAAS15B,EAAO,OAG3B4zD,IAAKK,GAAa,CAChBE,cAAegB,GACff,kBAAmB,OACnBG,cAAea,GACfZ,kBAAmB,QAErBX,QAASI,GAAa,CACpBE,cAAemB,GACflB,kBAAmB,OACnBG,cAAegB,GACff,kBAAmB,MACnBG,cAAe,SAAUrsD,GACvB,OAAOA,EAAQ,KAGnBwrD,MAAOG,GAAa,CAClBE,cAAeqB,GACfpB,kBAAmB,OACnBG,cAAekB,GACfjB,kBAAmB,QAErBT,IAAKE,GAAa,CAChBE,cAAeuB,GACftB,kBAAmB,OACnBG,cAAeoB,GACfnB,kBAAmB,QAErBR,UAAWC,GAAa,CACtBE,cAAeyB,GACfxB,kBAAmB,MACnBG,cAAesB,GACfrB,kBAAmB,SAGR,MClFX,GAAS,CACXrf,KAAM,QACN8a,eAAgB,GAChBiB,WAAY,GACZS,eAAgB,GAChBmE,SAAU,GACV3hD,MAAO,GACPhM,QAAS,CACP4tD,aAAc,EAGdC,sBAAuB,IAGZ,MC7BA,SAASltD,GAAU4qD,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAO1F,IAGT,IAAI7mB,EAAS7N,OAAOo6B,GAEpB,OAAIvlD,MAAMg5B,GACDA,EAGFA,EAAS,EAAIn+B,KAAKitD,KAAK9uB,GAAUn+B,KAAK6E,MAAMs5B,GCetC,SAAS+uB,GAAgBhI,EAAWiI,GACjDvI,GAAa,EAAGjsD,WAChB,IAAIy0D,EAAYtI,GAAOI,GAAWj9C,UAC9BolD,EAASvtD,GAAUqtD,GACvB,OAAO,IAAInlD,KAAKolD,EAAYC,GCJf,SAASC,GAAgBpI,EAAWiI,GACjDvI,GAAa,EAAGjsD,WAChB,IAAI00D,EAASvtD,GAAUqtD,GACvB,OAAOD,GAAgBhI,GAAYmI,GC3BrC,IAAI,GAAsB,MAGX,SAASE,GAAgBrI,GACtCN,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACdkI,EAAYnJ,EAAKh8C,UACrBg8C,EAAKuJ,YAAY,EAAG,GACpBvJ,EAAKwJ,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAIC,EAAuBzJ,EAAKh8C,UAC5B0lD,EAAaP,EAAYM,EAC7B,OAAO1tD,KAAK6E,MAAM8oD,EAAa,IAAuB,ECTzC,SAASC,GAAkB1I,GACxCN,GAAa,EAAGjsD,WAChB,IAAIo0D,EAAe,EACf9I,EAAOa,GAAOI,GACd6F,EAAM9G,EAAK4J,YACXC,GAAQ/C,EAAMgC,EAAe,EAAI,GAAKhC,EAAMgC,EAGhD,OAFA9I,EAAK8J,WAAW9J,EAAK+J,aAAeF,GACpC7J,EAAKwJ,YAAY,EAAG,EAAG,EAAG,GACnBxJ,ECPM,SAASgK,GAAkB/I,GACxCN,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACdgJ,EAAOjK,EAAKkK,iBACZC,EAA4B,IAAIpmD,KAAK,GACzComD,EAA0BzJ,eAAeuJ,EAAO,EAAG,EAAG,GACtDE,EAA0BX,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIY,EAAkBT,GAAkBQ,GACpCE,EAA4B,IAAItmD,KAAK,GACzCsmD,EAA0B3J,eAAeuJ,EAAM,EAAG,GAClDI,EAA0Bb,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIc,EAAkBX,GAAkBU,GAExC,OAAIrK,EAAKh8C,WAAaomD,EAAgBpmD,UAC7BimD,EAAO,EACLjK,EAAKh8C,WAAasmD,EAAgBtmD,UACpCimD,EAEAA,EAAO,EClBH,SAASM,GAAsBtJ,GAC5CN,GAAa,EAAGjsD,WAChB,IAAIu1D,EAAOD,GAAkB/I,GACzBuJ,EAAkB,IAAIzmD,KAAK,GAC/BymD,EAAgB9J,eAAeuJ,EAAM,EAAG,GACxCO,EAAgBhB,YAAY,EAAG,EAAG,EAAG,GACrC,IAAIxJ,EAAO2J,GAAkBa,GAC7B,OAAOxK,ECRT,IAAIyK,GAAuB,OAGZ,SAASC,GAAczJ,GACpCN,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACd4I,EAAOF,GAAkB3J,GAAMh8C,UAAYumD,GAAsBvK,GAAMh8C,UAI3E,OAAOjI,KAAK4lD,MAAMkI,EAAOY,IAAwB,ECTpC,SAASE,GAAe1J,EAAW+D,GAChDrE,GAAa,EAAGjsD,WAChB,IAAIwG,EAAU8pD,GAAgB,GAC1B4F,EAAS1vD,EAAQ0vD,OACjBC,EAAqBD,GAAUA,EAAO1vD,SAAW0vD,EAAO1vD,QAAQ4tD,aAChEgC,EAA4C,MAAtBD,EAA6B,EAAIhvD,GAAUgvD,GACjE/B,EAAuC,MAAxB5tD,EAAQ4tD,aAAuBgC,EAAsBjvD,GAAUX,EAAQ4tD,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIiC,WAAW,oDAGvB,IAAI/K,EAAOa,GAAOI,GACd6F,EAAM9G,EAAK4J,YACXC,GAAQ/C,EAAMgC,EAAe,EAAI,GAAKhC,EAAMgC,EAGhD,OAFA9I,EAAK8J,WAAW9J,EAAK+J,aAAeF,GACpC7J,EAAKwJ,YAAY,EAAG,EAAG,EAAG,GACnBxJ,EChBM,SAASgL,GAAe/J,EAAW+D,GAChDrE,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACdgJ,EAAOjK,EAAKkK,iBACZhvD,EAAU8pD,GAAgB,GAC1B4F,EAAS1vD,EAAQ0vD,OACjBK,EAA8BL,GAAUA,EAAO1vD,SAAW0vD,EAAO1vD,QAAQ6tD,sBACzEmC,EAA8D,MAA/BD,EAAsC,EAAIpvD,GAAUovD,GACnFlC,EAAyD,MAAjC7tD,EAAQ6tD,sBAAgCmC,EAA+BrvD,GAAUX,EAAQ6tD,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIgC,WAAW,6DAGvB,IAAII,EAAsB,IAAIpnD,KAAK,GACnConD,EAAoBzK,eAAeuJ,EAAO,EAAG,EAAGlB,GAChDoC,EAAoB3B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIY,EAAkBO,GAAeQ,EAAqBnG,GACtDoG,EAAsB,IAAIrnD,KAAK,GACnCqnD,EAAoB1K,eAAeuJ,EAAM,EAAGlB,GAC5CqC,EAAoB5B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIc,EAAkBK,GAAeS,EAAqBpG,GAE1D,OAAIhF,EAAKh8C,WAAaomD,EAAgBpmD,UAC7BimD,EAAO,EACLjK,EAAKh8C,WAAasmD,EAAgBtmD,UACpCimD,EAEAA,EAAO,EC5BH,SAASoB,GAAmBpK,EAAW+D,GACpDrE,GAAa,EAAGjsD,WAChB,IAAIwG,EAAU8pD,GAAgB,GAC1B4F,EAAS1vD,EAAQ0vD,OACjBK,EAA8BL,GAAUA,EAAO1vD,SAAW0vD,EAAO1vD,QAAQ6tD,sBACzEmC,EAA8D,MAA/BD,EAAsC,EAAIpvD,GAAUovD,GACnFlC,EAAyD,MAAjC7tD,EAAQ6tD,sBAAgCmC,EAA+BrvD,GAAUX,EAAQ6tD,uBACjHkB,EAAOe,GAAe/J,EAAW+D,GACjCsG,EAAY,IAAIvnD,KAAK,GACzBunD,EAAU5K,eAAeuJ,EAAM,EAAGlB,GAClCuC,EAAU9B,YAAY,EAAG,EAAG,EAAG,GAC/B,IAAIxJ,EAAO2K,GAAeW,EAAWtG,GACrC,OAAOhF,ECdT,IAAI,GAAuB,OAGZ,SAASuL,GAAWtK,EAAW/lD,GAC5CylD,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACd4I,EAAOc,GAAe3K,EAAM9kD,GAAS8I,UAAYqnD,GAAmBrL,EAAM9kD,GAAS8I,UAIvF,OAAOjI,KAAK4lD,MAAMkI,EAAO,IAAwB,ECdpC,SAAS2B,GAAgBtxB,EAAQuxB,GAC9C,IAAIC,EAAOxxB,EAAS,EAAI,IAAM,GAC1ByxB,EAAS5vD,KAAK6vD,IAAI1xB,GAAQtkC,WAE9B,MAAO+1D,EAAOt3D,OAASo3D,EACrBE,EAAS,IAAMA,EAGjB,OAAOD,EAAOC,ECMhB,IAAIE,GAAa,CAEfC,EAAG,SAAU9L,EAAMjJ,GASjB,IAAIgV,EAAa/L,EAAKkK,iBAElBD,EAAO8B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOP,GAA0B,OAAVzU,EAAiBkT,EAAO,IAAMA,EAAMlT,EAAM1iD,SAGnE23D,EAAG,SAAUhM,EAAMjJ,GACjB,IAAI8P,EAAQ7G,EAAKiM,cACjB,MAAiB,MAAVlV,EAAgB9iD,OAAO4yD,EAAQ,GAAK2E,GAAgB3E,EAAQ,EAAG,IAGxEz0D,EAAG,SAAU4tD,EAAMjJ,GACjB,OAAOyU,GAAgBxL,EAAK+J,aAAchT,EAAM1iD,SAGlDE,EAAG,SAAUyrD,EAAMjJ,GACjB,IAAImV,EAAqBlM,EAAKmM,cAAgB,IAAM,EAAI,KAAO,KAE/D,OAAQpV,GACN,IAAK,IACL,IAAK,KACH,OAAOmV,EAAmB9pD,cAE5B,IAAK,MACH,OAAO8pD,EAET,IAAK,QACH,OAAOA,EAAmB,GAE5B,IAAK,OACL,QACE,MAA8B,OAAvBA,EAA8B,OAAS,SAIpDroB,EAAG,SAAUmc,EAAMjJ,GACjB,OAAOyU,GAAgBxL,EAAKmM,cAAgB,IAAM,GAAIpV,EAAM1iD,SAG9D+3D,EAAG,SAAUpM,EAAMjJ,GACjB,OAAOyU,GAAgBxL,EAAKmM,cAAepV,EAAM1iD,SAGnDnC,EAAG,SAAU8tD,EAAMjJ,GACjB,OAAOyU,GAAgBxL,EAAKqM,gBAAiBtV,EAAM1iD,SAGrDR,EAAG,SAAUmsD,EAAMjJ,GACjB,OAAOyU,GAAgBxL,EAAKsM,gBAAiBvV,EAAM1iD,SAGrDk4C,EAAG,SAAUyT,EAAMjJ,GACjB,IAAIwV,EAAiBxV,EAAM1iD,OACvBm4D,EAAexM,EAAKyM,qBACpBC,EAAoB3wD,KAAK6E,MAAM4rD,EAAezwD,KAAK4wD,IAAI,GAAIJ,EAAiB,IAChF,OAAOf,GAAgBkB,EAAmB3V,EAAM1iD,UAGrC,MC5EXu4D,GAAgB,CAClB7G,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAgDL,GAAa,CAEfuG,EAAG,SAAU7M,EAAMjJ,EAAO8R,GACxB,IAAIlC,EAAM3G,EAAKkK,iBAAmB,EAAI,EAAI,EAE1C,OAAQnT,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8R,EAASlC,IAAIA,EAAK,CACvBrD,MAAO,gBAIX,IAAK,QACH,OAAOuF,EAASlC,IAAIA,EAAK,CACvBrD,MAAO,WAIX,IAAK,OACL,QACE,OAAOuF,EAASlC,IAAIA,EAAK,CACvBrD,MAAO,WAKfwI,EAAG,SAAU9L,EAAMjJ,EAAO8R,GAExB,GAAc,OAAV9R,EAAgB,CAClB,IAAIgV,EAAa/L,EAAKkK,iBAElBD,EAAO8B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOlD,EAASrC,cAAcyD,EAAM,CAClC6C,KAAM,SAIV,OAAOC,GAAgBjB,EAAE9L,EAAMjJ,IAGjCiW,EAAG,SAAUhN,EAAMjJ,EAAO8R,EAAU3tD,GAClC,IAAI+xD,EAAiBjC,GAAehL,EAAM9kD,GAEtCgyD,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAEzD,GAAc,OAAVlW,EAAgB,CAClB,IAAIoW,EAAeD,EAAW,IAC9B,OAAO1B,GAAgB2B,EAAc,GAIvC,MAAc,OAAVpW,EACK8R,EAASrC,cAAc0G,EAAU,CACtCJ,KAAM,SAKHtB,GAAgB0B,EAAUnW,EAAM1iD,SAGzC+4D,EAAG,SAAUpN,EAAMjJ,GACjB,IAAIsW,EAAcrD,GAAkBhK,GAEpC,OAAOwL,GAAgB6B,EAAatW,EAAM1iD,SAW5Ci5D,EAAG,SAAUtN,EAAMjJ,GACjB,IAAIkT,EAAOjK,EAAKkK,iBAChB,OAAOsB,GAAgBvB,EAAMlT,EAAM1iD,SAGrCk5D,EAAG,SAAUvN,EAAMjJ,EAAO8R,GACxB,IAAIjC,EAAU7qD,KAAKitD,MAAMhJ,EAAKiM,cAAgB,GAAK,GAEnD,OAAQlV,GAEN,IAAK,IACH,OAAO9iD,OAAO2yD,GAGhB,IAAK,KACH,OAAO4E,GAAgB5E,EAAS,GAGlC,IAAK,KACH,OAAOiC,EAASrC,cAAcI,EAAS,CACrCkG,KAAM,YAIV,IAAK,MACH,OAAOjE,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,SACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,OACP35C,QAAS,iBAKjB6jD,EAAG,SAAUxN,EAAMjJ,EAAO8R,GACxB,IAAIjC,EAAU7qD,KAAKitD,MAAMhJ,EAAKiM,cAAgB,GAAK,GAEnD,OAAQlV,GAEN,IAAK,IACH,OAAO9iD,OAAO2yD,GAGhB,IAAK,KACH,OAAO4E,GAAgB5E,EAAS,GAGlC,IAAK,KACH,OAAOiC,EAASrC,cAAcI,EAAS,CACrCkG,KAAM,YAIV,IAAK,MACH,OAAOjE,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,SACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAASjC,QAAQA,EAAS,CAC/BtD,MAAO,OACP35C,QAAS,iBAKjBqiD,EAAG,SAAUhM,EAAMjJ,EAAO8R,GACxB,IAAIhC,EAAQ7G,EAAKiM,cAEjB,OAAQlV,GACN,IAAK,IACL,IAAK,KACH,OAAOgW,GAAgBf,EAAEhM,EAAMjJ,GAGjC,IAAK,KACH,OAAO8R,EAASrC,cAAcK,EAAQ,EAAG,CACvCiG,KAAM,UAIV,IAAK,MACH,OAAOjE,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,SACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,OACP35C,QAAS,iBAKjB8jD,EAAG,SAAUzN,EAAMjJ,EAAO8R,GACxB,IAAIhC,EAAQ7G,EAAKiM,cAEjB,OAAQlV,GAEN,IAAK,IACH,OAAO9iD,OAAO4yD,EAAQ,GAGxB,IAAK,KACH,OAAO2E,GAAgB3E,EAAQ,EAAG,GAGpC,IAAK,KACH,OAAOgC,EAASrC,cAAcK,EAAQ,EAAG,CACvCiG,KAAM,UAIV,IAAK,MACH,OAAOjE,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,SACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAShC,MAAMA,EAAO,CAC3BvD,MAAO,OACP35C,QAAS,iBAKjB+jD,EAAG,SAAU1N,EAAMjJ,EAAO8R,EAAU3tD,GAClC,IAAIyyD,EAAOpC,GAAWvL,EAAM9kD,GAE5B,MAAc,OAAV67C,EACK8R,EAASrC,cAAcmH,EAAM,CAClCb,KAAM,SAIHtB,GAAgBmC,EAAM5W,EAAM1iD,SAGrCu5D,EAAG,SAAU5N,EAAMjJ,EAAO8R,GACxB,IAAIgF,EAAUnD,GAAc1K,GAE5B,MAAc,OAAVjJ,EACK8R,EAASrC,cAAcqH,EAAS,CACrCf,KAAM,SAIHtB,GAAgBqC,EAAS9W,EAAM1iD,SAGxCjC,EAAG,SAAU4tD,EAAMjJ,EAAO8R,GACxB,MAAc,OAAV9R,EACK8R,EAASrC,cAAcxG,EAAK+J,aAAc,CAC/C+C,KAAM,SAIHC,GAAgB36D,EAAE4tD,EAAMjJ,IAGjC+W,EAAG,SAAU9N,EAAMjJ,EAAO8R,GACxB,IAAIkF,EAAYzE,GAAgBtJ,GAEhC,MAAc,OAAVjJ,EACK8R,EAASrC,cAAcuH,EAAW,CACvCjB,KAAM,cAIHtB,GAAgBuC,EAAWhX,EAAM1iD,SAG1C25D,EAAG,SAAUhO,EAAMjJ,EAAO8R,GACxB,IAAIoF,EAAYjO,EAAK4J,YAErB,OAAQ7S,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8R,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,SACP35C,QAAS,eAIb,IAAK,SACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,QACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,OACP35C,QAAS,iBAKjB5K,EAAG,SAAUihD,EAAMjJ,EAAO8R,EAAU3tD,GAClC,IAAI+yD,EAAYjO,EAAK4J,YACjBsE,GAAkBD,EAAY/yD,EAAQ4tD,aAAe,GAAK,GAAK,EAEnE,OAAQ/R,GAEN,IAAK,IACH,OAAO9iD,OAAOi6D,GAGhB,IAAK,KACH,OAAO1C,GAAgB0C,EAAgB,GAGzC,IAAK,KACH,OAAOrF,EAASrC,cAAc0H,EAAgB,CAC5CpB,KAAM,QAGV,IAAK,MACH,OAAOjE,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,SACP35C,QAAS,eAIb,IAAK,SACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,QACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,OACP35C,QAAS,iBAKjBxX,EAAG,SAAU6tD,EAAMjJ,EAAO8R,EAAU3tD,GAClC,IAAI+yD,EAAYjO,EAAK4J,YACjBsE,GAAkBD,EAAY/yD,EAAQ4tD,aAAe,GAAK,GAAK,EAEnE,OAAQ/R,GAEN,IAAK,IACH,OAAO9iD,OAAOi6D,GAGhB,IAAK,KACH,OAAO1C,GAAgB0C,EAAgBnX,EAAM1iD,QAG/C,IAAK,KACH,OAAOw0D,EAASrC,cAAc0H,EAAgB,CAC5CpB,KAAM,QAGV,IAAK,MACH,OAAOjE,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,SACP35C,QAAS,eAIb,IAAK,SACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,QACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,OACP35C,QAAS,iBAKjB7X,EAAG,SAAUkuD,EAAMjJ,EAAO8R,GACxB,IAAIoF,EAAYjO,EAAK4J,YACjBuE,EAA6B,IAAdF,EAAkB,EAAIA,EAEzC,OAAQlX,GAEN,IAAK,IACH,OAAO9iD,OAAOk6D,GAGhB,IAAK,KACH,OAAO3C,GAAgB2C,EAAcpX,EAAM1iD,QAG7C,IAAK,KACH,OAAOw0D,EAASrC,cAAc2H,EAAc,CAC1CrB,KAAM,QAIV,IAAK,MACH,OAAOjE,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,cACP35C,QAAS,eAIb,IAAK,QACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,SACP35C,QAAS,eAIb,IAAK,SACH,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,QACP35C,QAAS,eAIb,IAAK,OACL,QACE,OAAOk/C,EAAS/B,IAAImH,EAAW,CAC7B3K,MAAO,OACP35C,QAAS,iBAKjBpV,EAAG,SAAUyrD,EAAMjJ,EAAO8R,GACxB,IAAIuF,EAAQpO,EAAKmM,cACbD,EAAqBkC,EAAQ,IAAM,EAAI,KAAO,KAElD,OAAQrX,GACN,IAAK,IACL,IAAK,KACH,OAAO8R,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,cACP35C,QAAS,eAGb,IAAK,MACH,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,cACP35C,QAAS,eACRhS,cAEL,IAAK,QACH,OAAOkxD,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,SACP35C,QAAS,eAGb,IAAK,OACL,QACE,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,OACP35C,QAAS,iBAKjBnV,EAAG,SAAUwrD,EAAMjJ,EAAO8R,GACxB,IACIqD,EADAkC,EAAQpO,EAAKmM,cAWjB,OAPED,EADY,KAAVkC,EACmBxB,GAAc1G,KAChB,IAAVkI,EACYxB,GAAc3G,SAEdmI,EAAQ,IAAM,EAAI,KAAO,KAGxCrX,GACN,IAAK,IACL,IAAK,KACH,OAAO8R,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,cACP35C,QAAS,eAGb,IAAK,MACH,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,cACP35C,QAAS,eACRhS,cAEL,IAAK,QACH,OAAOkxD,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,SACP35C,QAAS,eAGb,IAAK,OACL,QACE,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,OACP35C,QAAS,iBAKjB+mC,EAAG,SAAUsP,EAAMjJ,EAAO8R,GACxB,IACIqD,EADAkC,EAAQpO,EAAKmM,cAajB,OATED,EADEkC,GAAS,GACUxB,GAAcvG,QAC1B+H,GAAS,GACGxB,GAAcxG,UAC1BgI,GAAS,EACGxB,GAAczG,QAEdyG,GAActG,MAG7BvP,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8R,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,cACP35C,QAAS,eAGb,IAAK,QACH,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,SACP35C,QAAS,eAGb,IAAK,OACL,QACE,OAAOk/C,EAAS9B,UAAUmF,EAAoB,CAC5C5I,MAAO,OACP35C,QAAS,iBAKjBk6B,EAAG,SAAUmc,EAAMjJ,EAAO8R,GACxB,GAAc,OAAV9R,EAAgB,CAClB,IAAIqX,EAAQpO,EAAKmM,cAAgB,GAEjC,OADc,IAAViC,IAAaA,EAAQ,IAClBvF,EAASrC,cAAc4H,EAAO,CACnCtB,KAAM,SAIV,OAAOC,GAAgBlpB,EAAEmc,EAAMjJ,IAGjCqV,EAAG,SAAUpM,EAAMjJ,EAAO8R,GACxB,MAAc,OAAV9R,EACK8R,EAASrC,cAAcxG,EAAKmM,cAAe,CAChDW,KAAM,SAIHC,GAAgBX,EAAEpM,EAAMjJ,IAGjCsX,EAAG,SAAUrO,EAAMjJ,EAAO8R,GACxB,IAAIuF,EAAQpO,EAAKmM,cAAgB,GAEjC,MAAc,OAAVpV,EACK8R,EAASrC,cAAc4H,EAAO,CACnCtB,KAAM,SAIHtB,GAAgB4C,EAAOrX,EAAM1iD,SAGtCi6D,EAAG,SAAUtO,EAAMjJ,EAAO8R,GACxB,IAAIuF,EAAQpO,EAAKmM,cAGjB,OAFc,IAAViC,IAAaA,EAAQ,IAEX,OAAVrX,EACK8R,EAASrC,cAAc4H,EAAO,CACnCtB,KAAM,SAIHtB,GAAgB4C,EAAOrX,EAAM1iD,SAGtCnC,EAAG,SAAU8tD,EAAMjJ,EAAO8R,GACxB,MAAc,OAAV9R,EACK8R,EAASrC,cAAcxG,EAAKqM,gBAAiB,CAClDS,KAAM,WAIHC,GAAgB76D,EAAE8tD,EAAMjJ,IAGjCljD,EAAG,SAAUmsD,EAAMjJ,EAAO8R,GACxB,MAAc,OAAV9R,EACK8R,EAASrC,cAAcxG,EAAKsM,gBAAiB,CAClDQ,KAAM,WAIHC,GAAgBl5D,EAAEmsD,EAAMjJ,IAGjCxK,EAAG,SAAUyT,EAAMjJ,GACjB,OAAOgW,GAAgBxgB,EAAEyT,EAAMjJ,IAGjCwX,EAAG,SAAUvO,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxC2O,EAAiBF,EAAaG,oBAElC,GAAuB,IAAnBD,EACF,MAAO,IAGT,OAAQ5X,GAEN,IAAK,IACH,OAAO8X,GAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,GAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,GAAeH,EAAgB,OAI5CI,EAAG,SAAU/O,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxC2O,EAAiBF,EAAaG,oBAElC,OAAQ7X,GAEN,IAAK,IACH,OAAO8X,GAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,GAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,GAAeH,EAAgB,OAI5Ch4D,EAAG,SAAUqpD,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxC2O,EAAiBF,EAAaG,oBAElC,OAAQ7X,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBL,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,GAAeH,EAAgB,OAIpDM,EAAG,SAAUjP,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxC2O,EAAiBF,EAAaG,oBAElC,OAAQ7X,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBL,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,GAAeH,EAAgB,OAIpD37D,EAAG,SAAUgtD,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxCmJ,EAAYptD,KAAK6E,MAAM6tD,EAAazqD,UAAY,KACpD,OAAOwnD,GAAgBrC,EAAWpS,EAAM1iD,SAG1Cw8C,EAAG,SAAUmP,EAAMjJ,EAAOyX,EAAWtzD,GACnC,IAAIuzD,EAAevzD,EAAQwzD,eAAiB1O,EACxCmJ,EAAYsF,EAAazqD,UAC7B,OAAOwnD,GAAgBrC,EAAWpS,EAAM1iD,UAI5C,SAAS26D,GAAoBE,EAAQC,GACnC,IAAIzD,EAAOwD,EAAS,EAAI,IAAM,IAC1BE,EAAYrzD,KAAK6vD,IAAIsD,GACrBd,EAAQryD,KAAK6E,MAAMwuD,EAAY,IAC/BC,EAAUD,EAAY,GAE1B,GAAgB,IAAZC,EACF,OAAO3D,EAAOz3D,OAAOm6D,GAGvB,IAAIkB,EAAYH,GAAkB,GAClC,OAAOzD,EAAOz3D,OAAOm6D,GAASkB,EAAY9D,GAAgB6D,EAAS,GAGrE,SAASR,GAAkCK,EAAQC,GACjD,GAAID,EAAS,KAAO,EAAG,CACrB,IAAIxD,EAAOwD,EAAS,EAAI,IAAM,IAC9B,OAAOxD,EAAOF,GAAgBzvD,KAAK6vD,IAAIsD,GAAU,GAAI,GAGvD,OAAOJ,GAAeI,EAAQC,GAGhC,SAASL,GAAeI,EAAQC,GAC9B,IAAIG,EAAYH,GAAkB,GAC9BzD,EAAOwD,EAAS,EAAI,IAAM,IAC1BE,EAAYrzD,KAAK6vD,IAAIsD,GACrBd,EAAQ5C,GAAgBzvD,KAAK6E,MAAMwuD,EAAY,IAAK,GACpDC,EAAU7D,GAAgB4D,EAAY,GAAI,GAC9C,OAAO1D,EAAO0C,EAAQkB,EAAYD,EAGrB,UCj2Bf,SAASE,GAAkB7jC,EAASu4B,GAClC,OAAQv4B,GACN,IAAK,IACH,OAAOu4B,EAAWjE,KAAK,CACrBsD,MAAO,UAGX,IAAK,KACH,OAAOW,EAAWjE,KAAK,CACrBsD,MAAO,WAGX,IAAK,MACH,OAAOW,EAAWjE,KAAK,CACrBsD,MAAO,SAGX,IAAK,OACL,QACE,OAAOW,EAAWjE,KAAK,CACrBsD,MAAO,UAKf,SAASkM,GAAkB9jC,EAASu4B,GAClC,OAAQv4B,GACN,IAAK,IACH,OAAOu4B,EAAWC,KAAK,CACrBZ,MAAO,UAGX,IAAK,KACH,OAAOW,EAAWC,KAAK,CACrBZ,MAAO,WAGX,IAAK,MACH,OAAOW,EAAWC,KAAK,CACrBZ,MAAO,SAGX,IAAK,OACL,QACE,OAAOW,EAAWC,KAAK,CACrBZ,MAAO,UAKf,SAASmM,GAAsB/jC,EAASu4B,GACtC,IAQIyL,EARAtI,EAAc17B,EAAQxkB,MAAM,cAAgB,GAC5CyoD,EAAcvI,EAAY,GAC1BwI,EAAcxI,EAAY,GAE9B,IAAKwI,EACH,OAAOL,GAAkB7jC,EAASu4B,GAKpC,OAAQ0L,GACN,IAAK,IACHD,EAAiBzL,EAAWE,SAAS,CACnCb,MAAO,UAET,MAEF,IAAK,KACHoM,EAAiBzL,EAAWE,SAAS,CACnCb,MAAO,WAET,MAEF,IAAK,MACHoM,EAAiBzL,EAAWE,SAAS,CACnCb,MAAO,SAET,MAEF,IAAK,OACL,QACEoM,EAAiBzL,EAAWE,SAAS,CACnCb,MAAO,SAET,MAGJ,OAAOoM,EAAe/2D,QAAQ,WAAY42D,GAAkBI,EAAa1L,IAAatrD,QAAQ,WAAY62D,GAAkBI,EAAa3L,IAG3I,IAAI4L,GAAiB,CACnBj8D,EAAG47D,GACH54D,EAAG64D,IAEU,MC/FXK,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAC9B,SAASC,GAA0BjZ,GACxC,OAAoD,IAA7C+Y,GAAyBnuD,QAAQo1C,GAEnC,SAASkZ,GAAyBlZ,GACvC,OAAmD,IAA5CgZ,GAAwBpuD,QAAQo1C,GAElC,SAASmZ,GAAoBnZ,EAAOyM,EAAQ2M,GACjD,GAAc,SAAVpZ,EACF,MAAM,IAAIgU,WAAW,qCAAqCv1D,OAAOguD,EAAQ,0CAA0ChuD,OAAO26D,EAAO,iCAC5H,GAAc,OAAVpZ,EACT,MAAM,IAAIgU,WAAW,iCAAiCv1D,OAAOguD,EAAQ,0CAA0ChuD,OAAO26D,EAAO,iCACxH,GAAc,MAAVpZ,EACT,MAAM,IAAIgU,WAAW,+BAA+Bv1D,OAAOguD,EAAQ,sDAAsDhuD,OAAO26D,EAAO,iCAClI,GAAc,OAAVpZ,EACT,MAAM,IAAIgU,WAAW,iCAAiCv1D,OAAOguD,EAAQ,sDAAsDhuD,OAAO26D,EAAO,iCCK7I,IAAIC,GAAyB,wDAGzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAyTrB,SAAShN,GAAOvC,EAAWwP,EAAgBzL,GACxDrE,GAAa,EAAGjsD,WAChB,IAAIg8D,EAAYz8D,OAAOw8D,GACnBv1D,EAAU8pD,GAAgB,GAC1B4F,EAAS1vD,EAAQ0vD,QAAU,GAC3BK,EAA8BL,EAAO1vD,SAAW0vD,EAAO1vD,QAAQ6tD,sBAC/DmC,EAA8D,MAA/BD,EAAsC,EAAIpvD,GAAUovD,GACnFlC,EAAyD,MAAjC7tD,EAAQ6tD,sBAAgCmC,EAA+BrvD,GAAUX,EAAQ6tD,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIgC,WAAW,6DAGvB,IAAIF,EAAqBD,EAAO1vD,SAAW0vD,EAAO1vD,QAAQ4tD,aACtDgC,EAA4C,MAAtBD,EAA6B,EAAIhvD,GAAUgvD,GACjE/B,EAAuC,MAAxB5tD,EAAQ4tD,aAAuBgC,EAAsBjvD,GAAUX,EAAQ4tD,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIiC,WAAW,oDAGvB,IAAKH,EAAO/B,SACV,MAAM,IAAIkC,WAAW,yCAGvB,IAAKH,EAAO3G,WACV,MAAM,IAAI8G,WAAW,2CAGvB,IAAI0D,EAAe5N,GAAOI,GAE1B,IAAKW,GAAQ6M,GACX,MAAM,IAAI1D,WAAW,sBAMvB,IAAI4D,EAAiB5O,GAAgC0O,GACjDxO,EAAUoJ,GAAgBoF,EAAcE,GACxCgC,EAAmB,CACrB5H,sBAAuBA,EACvBD,aAAcA,EACd8B,OAAQA,EACR8D,cAAeD,GAEb1zD,EAAS21D,EAAUxpD,MAAMmpD,IAA4B/uD,KAAI,SAAUsvD,GACrE,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,GAA6C,MAAnBA,EAAwB,CACpD,IAAIC,EAAgB,GAAeD,GACnC,OAAOC,EAAcF,EAAWhG,EAAO3G,WAAY0M,GAGrD,OAAOC,KACNx7D,KAAK,IAAI8R,MAAMkpD,IAAwB9uD,KAAI,SAAUsvD,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAGT,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,EACF,OAAOE,GAAmBH,GAG5B,IAAII,EAAY,GAAWH,GAE3B,GAAIG,EASF,OARK91D,EAAQ+1D,6BAA+BhB,GAAyBW,IACnEV,GAAoBU,EAAWH,EAAgBxP,IAG5C/lD,EAAQg2D,8BAAgClB,GAA0BY,IACrEV,GAAoBU,EAAWH,EAAgBxP,GAG1C+P,EAAU/Q,EAAS2Q,EAAWhG,EAAO/B,SAAU8H,GAGxD,GAAIE,EAAe3pD,MAAMspD,IACvB,MAAM,IAAIzF,WAAW,iEAAmE8F,EAAiB,KAG3G,OAAOD,KACNx7D,KAAK,IACR,OAAO2F,EAGT,SAASg2D,GAAmBZ,GAC1B,OAAOA,EAAMjpD,MAAMopD,IAAqB,GAAG33D,QAAQ43D,GAAmB,KC/XzD,SAAS,GAAetP,EAAWkQ,EAAenM,GAC/DrE,GAAa,EAAGjsD,WAChB,IAAIsrD,EAAOa,GAAOI,GACdmQ,EAAWvQ,GAAOsQ,GAElBE,EAAOrM,GAAgB,GACvBsM,EAAcD,EAAKzG,OACnBA,OAAyB,IAAhB0G,EAAyB,GAAgBA,EAClDC,EAAoBF,EAAKvI,aACzBA,OAAqC,IAAtByI,EAA+B,EAAIA,EAEtD,IAAK3G,EAAO/B,SACV,MAAM,IAAIkC,WAAW,yCAGvB,IAAKH,EAAO3G,WACV,MAAM,IAAI8G,WAAW,2CAGvB,IAAKH,EAAOlG,eACV,MAAM,IAAIqG,WAAW,+CAGvB,IAMIhU,EANA8S,EAAOzI,GAAyBpB,EAAMoR,GAE1C,GAAIlwD,MAAM2oD,GACR,MAAM,IAAIkB,WAAW,sBAMrBhU,EADE8S,GAAQ,EACF,QACCA,GAAQ,EACT,WACCA,EAAO,EACR,YACCA,EAAO,EACR,QACCA,EAAO,EACR,WACCA,EAAO,EACR,WAEA,QAGV,IAAI5J,EAAUoJ,GAAgBrJ,EAAMD,GAAgCC,IAChEwR,EAAcnI,GAAgB+H,EAAUrR,GAAgCqR,IACxEV,EAAY9F,EAAOlG,eAAe3N,EAAOkJ,EAASuR,EAAa,CACjE5G,OAAQA,EACR9B,aAAcA,IAEhB,OAAOtF,GAAOxD,EAAM0Q,EAAW,CAC7B9F,OAAQA,EACR9B,aAAcA,ICvGlB,IAAI,GAAuB,CACzBhH,iBAAkB,CAChBC,IAAK,sBACLC,MAAO,+BAETC,SAAU,CACRF,IAAK,YACLC,MAAO,sBAETE,YAAa,cACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,8BAETI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAETK,YAAa,CACXN,IAAK,kBACLC,MAAO,4BAETM,OAAQ,CACNP,IAAK,UACLC,MAAO,oBAETO,MAAO,CACLR,IAAK,SACLC,MAAO,mBAETQ,YAAa,CACXT,IAAK,oBACLC,MAAO,8BAETS,OAAQ,CACNV,IAAK,YACLC,MAAO,sBAETU,aAAc,CACZX,IAAK,iBACLC,MAAO,0BAETW,QAAS,CACPZ,IAAK,SACLC,MAAO,kBAETY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAETa,OAAQ,CACNd,IAAK,OACLC,MAAO,iBAETc,WAAY,CACVf,IAAK,eACLC,MAAO,yBAETe,aAAc,CACZhB,IAAK,eACLC,MAAO,0BAIP,GAAiB,SAAUjL,EAAOkM,EAAO/nD,GAC3C,IAAIH,EACA02D,EAAO,GAAqB1a,GAUhC,OAPEh8C,EADkB,kBAAT02D,EACAA,EACU,IAAVxO,EACAwO,EAAK1P,IAEL0P,EAAKzP,MAAMrpD,QAAQ,YAAa1E,OAAOgvD,IAGlC,OAAZ/nD,QAAgC,IAAZA,GAAsBA,EAAQioD,UAChDjoD,EAAQkoD,YAAcloD,EAAQkoD,WAAa,EACtC,QAAUroD,EAEV,UAAYA,EAIhBA,GAGM,MCtFX,GAAc,CAChB4oD,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,WAEL,GAAc,CAChBH,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAEL,GAAkB,CACpBH,KAAM,wBACNC,KAAM,wBACNC,OAAQ,qBACRC,MAAO,sBAEL,GAAa,CACf9D,KAAMqD,GAAkB,CACtBI,QAAS,GACTF,aAAc,SAEhBW,KAAMb,GAAkB,CACtBI,QAAS,GACTF,aAAc,SAEhBY,SAAUd,GAAkB,CAC1BI,QAAS,GACTF,aAAc,UAGH,MCjCX,GAAuB,CACzBc,SAAU,qBACVC,UAAW,aACXC,MAAO,oBACPC,SAAU,gBACVC,SAAU,sBACVzC,MAAO,KAGL,GAAiB,SAAUjL,EAAO4N,EAAOC,EAAWC,GACtD,OAAO,GAAqB9N,IAGf,MCZX,GAAY,CACdyO,OAAQ,CAAC,WAAY,YACrBC,YAAa,CAAC,WAAY,YAC1BC,KAAM,CAAC,qBAAsB,uBAE3B,GAAgB,CAClBF,OAAQ,CAAC,KAAM,KAAM,KAAM,MAC3BC,YAAa,CAAC,YAAa,aAAc,aAAc,cACvDC,KAAM,CAAC,gBAAiB,iBAAkB,iBAAkB,mBAE1D,GAAc,CAChBF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,QACzGC,KAAM,CAAC,UAAW,UAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,OAAQ,YAAa,UAAW,WAAY,aAElH,GAAY,CACdF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC1B,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5C2B,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC9DC,KAAM,CAAC,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,WAEpE,GAAkB,CACpBF,OAAQ,CACNO,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,OACTC,UAAW,QACXC,QAAS,OACTC,MAAO,QAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,QACTC,UAAW,aACXC,QAAS,OACTC,MAAO,SAETZ,KAAM,CACJK,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,WACTC,UAAW,kBACXC,QAAS,UACTC,MAAO,aAIP,GAAgB,SAAUG,EAAavrD,GACzC,IAAIg/B,EAAS7N,OAAOo6B,GAChBqG,EAAmB,OAAZ5xD,QAAgC,IAAZA,OAAqB,EAASA,EAAQ4xD,KACrE,GAAe,IAAX5yB,EAAc,MAAO,IACzB,IACIw3B,EADAC,EAAgB,CAAC,OAAQ,OAAQ,OAAQ,SAAU,UASvD,OALED,EADa,IAAXx3B,EACO4yB,GAAQ6E,EAAc1jB,SAAS6e,GAAQ,MAAQ,KAE/C,MAGJ5yB,EAASw3B,GAGd,GAAW,CACblL,cAAe,GACfG,IAAK7B,GAAgB,CACnBnrC,OAAQ,GACR4pC,aAAc,SAEhBqD,QAAS9B,GAAgB,CACvBnrC,OAAQ,GACR4pC,aAAc,OACd+B,iBAAkB,SAAUsB,GAC1B,OAAOA,EAAU,KAGrBC,MAAO/B,GAAgB,CACrBnrC,OAAQ,GACR4pC,aAAc,SAEhBuD,IAAKhC,GAAgB,CACnBnrC,OAAQ,GACR4pC,aAAc,SAEhBwD,UAAWjC,GAAgB,CACzBnrC,OAAQ,GACR4pC,aAAc,UAGH,MC/FX,GAA4B,8BAC5B,GAA4B,OAC5B,GAAmB,CACrBiC,OAAQ,kCACRC,YAAa,oDACbC,KAAM,6CAEJ,GAAmB,CACrB0C,IAAK,CAAC,OAAQ,SAEZ,GAAuB,CACzB5C,OAAQ,aACRC,YAAa,8BACbC,KAAM,iCAEJ,GAAuB,CACzB0C,IAAK,CAAC,KAAM,KAAM,KAAM,OAEtB,GAAqB,CACvB5C,OAAQ,eACRC,YAAa,sEACbC,KAAM,4FAEJ,GAAqB,CACvBF,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtF4C,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,MAAO,MAAO,MAAO,QAE7F,GAAmB,CACrB5C,OAAQ,aACR1B,MAAO,2BACP2B,YAAa,qCACbC,KAAM,2DAEJ,GAAmB,CACrBF,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD4C,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAEpD,GAAyB,CAC3B5C,OAAQ,iDACR4C,IAAK,sEAEH,GAAyB,CAC3BA,IAAK,CACHrC,GAAI,MACJC,GAAI,MACJC,SAAU,QACVC,KAAM,QACNC,QAAS,OACTC,UAAW,MACXC,QAAS,QACTC,MAAO,UAGP,GAAQ,CACVE,cAAeqB,GAAoB,CACjCZ,aAAc,GACdc,aAAc,GACdL,cAAe,SAAU30D,GACvB,OAAO05B,SAAS15B,MAGpB4zD,IAAKK,GAAa,CAChBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBX,QAASI,GAAa,CACpBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,MACnBG,cAAe,SAAUrsD,GACvB,OAAOA,EAAQ,KAGnBwrD,MAAOG,GAAa,CAClBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBT,IAAKE,GAAa,CAChBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBR,UAAWC,GAAa,CACtBE,cAAe,GACfC,kBAAmB,MACnBG,cAAe,GACfC,kBAAmB,SAGR,MClFX,GAAS,CACXrf,KAAM,KACN8a,eAAgB,GAChBiB,WAAY,GACZS,eAAgB,GAChBmE,SAAU,GACV3hD,MAAO,GACPhM,QAAS,CACP4tD,aAAc,EAGdC,sBAAuB,IAGZ,M,wBCfT6I,GAA2B,OAAI3uD,OAAO,CAC1CqL,MAAO,CACL7F,GAAI4jB,OACJ6nB,QAASjgD,OACTwD,IAAKxD,OACLyrD,OAAQnlD,QACRs3D,aAAc59D,UAKG,GAArB,qKAEE,kGAC6B,IAAvBoB,KAAKy8D,OAAOpS,OADlB,gCAEU,GAAAnrD,EAAM+yC,KAAK,gBAAiB,CAAE7+B,GAAIpT,KAAKy8D,OAAOrpD,GAAIi3C,QAAQ,IAFpE,gDAFF,0HAQE,8FACErqD,KAAK08D,cACD18D,KAAKy8D,OAAOr6D,MAAK3B,OAAOixC,SAASkD,KAAO50C,KAAKy8D,OAAOr6D,KAF1D,gDARF,gIAaE,8FACEpC,KAAK08D,cACD18D,KAAKy8D,OAAOr6D,KAAK3B,OAAO8+C,KAAKv/C,KAAKy8D,OAAOr6D,IAAK,UAFpD,gDAbF,yFAkBE,WACE,OAAO,GAAe,IAAIsM,KAAK1O,KAAKy8D,OAAOD,cAAe,IAAI9tD,KAAQ,CAAE6mD,OAAQoH,SAnBpF,GAAiDJ,IAA5B,GAAmB,GADvC,GACoB,cCzB2Y,MCQ5Z,I,UAAY,EACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCcM,GAArB,kE,0BACE,EAAA3U,OAA2B,KAC3B,EAAA1F,gBAAiB,EACjB,EAAAC,SAAkB,GAClB,EAAAH,cAA+B,KAC/B,EAAA4a,QAAS,EALX,mCAOE,WAEE,IAAMC,EAAS1/C,SAAS+8B,eAAe,WAClC2iB,IAEL78D,KAAKgiD,cAAgB5qB,SAASylC,EAAOj2B,aAAa,SAAW,IAC7D5mC,KAAKyoD,aAbT,qBAgBE,WAEE,IAAItW,EAAW,MACiB,UAA5B1xC,OAAOixC,SAASS,WAAsBA,EAAW,MACrDnyC,KAAK4nD,OAAS,IAAIe,UAChBxW,EAAW,MAAQ1xC,OAAOixC,SAASU,KAAO,oBAAsBpyC,KAAKgiD,cAAgB,KAEvFhiD,KAAK4oD,gBAEL5oD,KAAK4nD,OAAOiB,QAAU,WACpBvsC,QAAQwsC,IAAI,yBA1BlB,uEA8BE,yGACE9oD,KAAK4nD,OAAQrV,UAAY,SAAC7oC,GACxB,IAAMnG,EAAO+F,KAAKG,MAAMC,EAAEnG,MACpBwV,EAAOxV,EAAKwV,KAGlB,GAAa,YAATA,IAAsB,EAAKmpC,eAA/B,CAEA,IAAM6G,EAAcxlD,EAAK4+C,SAIrBp+B,EAAW,KACF,QAAThL,GAAyC,IAAvBgwC,EAAY/pD,SAChC+kB,EAAW,EAAKo+B,SAASgQ,WAAU,SAACvf,GAAD,OAAaA,EAAQ0V,MAAQS,EAAY,GAAGT,QAK/E,EAAKnG,SADU,OAAbp+B,IAAmC,IAAdA,EACvB,YAAoB,EAAKo+B,SAAS5iD,MAAM,EAAGwkB,IAA3C,CAAsDglC,EAAY,IAAlE,EAAyE,EAAK5G,SAAS5iD,MAAMwkB,EAAW,KAGxG,YAAoBglC,GAApB,EAAoC,EAAK5G,WAC9B,YAATppC,IAAoB,EAAKmpC,gBAAiB,KAvBlD,gDA9BF,2EAyDE,WACEliD,KAAK48D,QAAS,IA1DlB,mBA4DE,WACE58D,KAAK48D,QAAS,IA7DlB,0BAgEE,WACE,OAAO58D,KAAKmiD,SAAS3rB,QAAO,SAAAoc,GAAO,OAAKA,EAAQyX,UAAQrrD,WAjE5D,GAA2C,QAAtB,GAAa,GALjC,EAAU,CACT21B,WAAY,CACVmoC,oBAAA,OAGiB,cCjCmX,MCQpY,I,UAAY,EACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCZf,GAAA59D,EAAM6C,SAAS8H,eAAiB,cAChC,GAAA3K,EAAM6C,SAAS6H,eAAiB,YAChC,GAAA1K,EAAM6C,SAASg7D,iBAAkB,EAEjC,OAAI56D,OAAOmN,eAAgB,EAEvB6N,SAAS+8B,eAAe,SAC1B,IAAI,OAAI,CACNx4B,OAAQ,SAAC8sB,GAAD,OAAOA,EAAE,MAChBlnB,OAAO,SAIRnK,SAAS+8B,eAAe,kBAC1B,IAAI,OAAI,CACNx4B,OAAQ,SAAC8sB,GAAD,OAAOA,EAAE,OAChBlnB,OAAO,mB,uBCvBZ9qB,EAAOD,QACE,SAAUI,GAET,IAAIP,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,QAnFpD,CAsFC,CAEJ,OACA,SAAUhC,EAAQD,EAASF,GAEjC,IAAIoC,EAAkBpC,EAAoB,QAEtCqC,EAAgBD,EAAgB,eAChCE,EAAO,GAEXA,EAAKD,GAAiB,IAEtBlC,EAAOD,QAA2B,eAAjBqC,OAAOD,IAKlB,OACA,SAAUnC,EAAQD,GAExB,SAASygE,EAASpP,GACd,OAAO,IAAIqP,UAAUrP,GAGzB,SAASsP,EAAUtP,GACf,OAAO,IAAIuP,WAAWvP,GAG1B,SAASwP,EAAQxP,GACb,OAAO,IAAIyP,WAAWzP,GAG1B,SAAS0P,EAAU1P,GACf,OAAO,IAAI2P,aAAa3P,GAG5B,SAAS4P,EAAW5P,GAChB,OAAO,IAAI6P,aAAa7P,GAG5B,SAAS8P,EAAY99D,GACjB,GAAmB,GAAfA,EAAKZ,OACL,OAAOs+D,EAAU19D,EAAK,IAE1B,IAAI+9D,EAAK/9D,EAAK,GACdA,EAAOA,EAAKL,MAAM,GAElB,IADA,IAAI67C,EAAI,GACC3+C,EAAI,EAAGA,EAAIkhE,EAAIlhE,IACpB2+C,EAAEp4C,KAAK06D,EAAY99D,IAEvB,OAAOw7C,EAEX,SAASwiB,EAAUh+D,GACf,GAAmB,GAAfA,EAAKZ,OACL,OAAOo+D,EAAQx9D,EAAK,IAExB,IAAI+9D,EAAK/9D,EAAK,GACdA,EAAOA,EAAKL,MAAM,GAElB,IADA,IAAI67C,EAAI,GACC3+C,EAAI,EAAGA,EAAIkhE,EAAIlhE,IACpB2+C,EAAEp4C,KAAK46D,EAAUh+D,IAErB,OAAOw7C,EAGX,SAASyiB,EAAYj+D,GACjB,GAAmB,GAAfA,EAAKZ,OACL,OAAOk+D,EAAUt9D,EAAK,IAE1B,IAAI+9D,EAAK/9D,EAAK,GACdA,EAAOA,EAAKL,MAAM,GAElB,IADA,IAAI67C,EAAI,GACC3+C,EAAI,EAAGA,EAAIkhE,EAAIlhE,IACpB2+C,EAAEp4C,KAAK66D,EAAYj+D,IAEvB,OAAOw7C,EAGX,SAAS0iB,EAAYl+D,GACjB,GAAmB,GAAfA,EAAKZ,OACL,OAAO,IAAIqF,MAAMzE,EAAK,IAE1B,IAAI+9D,EAAK/9D,EAAK,GACdA,EAAOA,EAAKL,MAAM,GAElB,IADA,IAAI67C,EAAI,GACC3+C,EAAI,EAAGA,EAAIkhE,EAAIlhE,IACpB2+C,EAAEp4C,KAAK86D,EAAYl+D,IAEvB,OAAOw7C,EAIX,IAAI2iB,EAAS,CAEb,KAAc,SAAU7+D,EAAGy5C,EAAWqlB,EAAS3yD,GAC3C,GAAwB,GAApBhM,UAAUL,OACV,IAAK,IAAIvC,EAAI,EAAGA,EAAIyC,EAAEF,OAAQvC,IAC1ByC,EAAEzC,GAAK4C,UAAU,QAGrB,IAAS5C,EAAIk8C,EAAWl8C,EAAIuhE,EAASvhE,IACjCyC,EAAEzC,GAAK4O,IAKf4yD,EAAS,CAEb,UAAmB,SAAUhnD,EAAKinD,EAAQC,EAAMC,EAASp/D,GACrD,IAAIq/D,EAASH,EAASl/D,EACtB,MAAOk/D,EAASG,EACZF,EAAKC,KAAannD,EAAIinD,OAI1BI,EAAO,GAUX,SAASC,EAAWC,GAChBx+D,KAAKw+D,QAAUA,EAVnBF,EAAKG,MAAQ,mBACbH,EAAKI,WAAa,SAAUhF,GACxB,OAAOhzD,KAAKi4D,MAAMjF,IAGtB4E,EAAKM,aAAe,SAAUlF,EAAGjD,GAC7B,OAAO/vD,KAAKi4D,MAAMjF,GAAKjD,GAS3B8H,EAAWM,oBAAsB,IAAIN,EAAW,GAIhDA,EAAWO,oBAAsB,IAAIP,EAAW,GAIhDA,EAAWQ,sBAAwB,IAAIR,EAAW,GAIlDA,EAAWS,mBAAqB,IAAIT,EAAW,GAE/C,IAAIU,EAAQ,GAGZ,SAASC,EAAQV,GACbx+D,KAAKw+D,QAAUA,EAHnBS,EAAME,UAAY,YAKlBD,EAAQE,QAAU,IAAIF,EAAQ,GAC9BA,EAAQG,OAAS,IAAIH,EAAQ,GAC7BA,EAAQI,OAAS,IAAIJ,EAAQ,GAC7BA,EAAQK,QAAU,IAAIL,EAAQ,GAC9BA,EAAQM,SAAW,IAAIN,EAAQ,GAC/BA,EAAQO,YAAcP,EAAQM,SAE9B,IAAIE,EAAS,SAAUhG,KAIvBl9D,EAAOD,QAAU,CACb,OAAU0hE,EACV,QAAWiB,EACX,MAASD,EACT,WAAcV,EACd,KAAQD,EACR,OAAUP,EACV,YAAeD,EACf,SAAYd,EACZ,WAAcQ,EACd,UAAaF,EACb,YAAeI,EACf,QAAWN,EACX,UAAaQ,EACb,UAAaV,EACb,YAAeW,EACf,OAAU6B,IAMR,OACA,SAAUljE,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAClCujE,EAAYvjE,EAAoB,QAChCwjE,EAAcxjE,EAAoB,QAElC4B,EAAO0hE,EAAYA,EAAY1hE,MAGnCzB,EAAOD,QAAU,SAAUuC,EAAIC,GAE7B,OADA6gE,EAAU9gE,QACMG,IAATF,EAAqBD,EAAK+gE,EAAc5hE,EAAKa,EAAIC,GAAQ,WAC9D,OAAOD,EAAGM,MAAML,EAAMM,cAOpB,OACA,SAAU7C,EAAQD,EAASF,GAGjC,IAAIuI,EAAavI,EAAoB,QACjCmH,EAAQnH,EAAoB,QAGhCG,EAAOD,UAAYY,OAAOg6C,wBAA0B3zC,GAAM,WACxD,IAAIghB,EAAShnB,SAGb,OAAQoB,OAAO4lB,MAAarnB,OAAOqnB,aAAmBhnB,UAEnDA,OAAOuK,MAAQnD,GAAcA,EAAa,OAMzC,OACA,SAAUpI,EAAQD,EAASF,GAEjC,IAAIyE,EAAczE,EAAoB,QAClCO,EAAOP,EAAoB,QAC3B0E,EAA6B1E,EAAoB,QACjD2E,EAA2B3E,EAAoB,QAC/C+D,EAAkB/D,EAAoB,QACtCyjE,EAAgBzjE,EAAoB,QACpCmQ,EAASnQ,EAAoB,QAC7B8E,EAAiB9E,EAAoB,QAGrC+E,EAA4BjE,OAAOkE,yBAIvC9E,EAAQ+D,EAAIQ,EAAcM,EAA4B,SAAkCE,EAAGC,GAGzF,GAFAD,EAAIlB,EAAgBkB,GACpBC,EAAIu+D,EAAcv+D,GACdJ,EAAgB,IAClB,OAAOC,EAA0BE,EAAGC,GACpC,MAAOV,IACT,GAAI2L,EAAOlL,EAAGC,GAAI,OAAOP,GAA0BpE,EAAKmE,EAA2BT,EAAGgB,EAAGC,GAAID,EAAEC,MAM3F,OACA,SAAU/E,EAAQD,EAASF,GAEjC,IAAIgJ,EAAWhJ,EAAoB,QAInCG,EAAOD,QAAU,SAAUyO,GACzB,OAAO3F,EAAS2F,EAAIhM,UAMhB,OACA,SAAUxC,EAAQD,EAASF,GAEjC,IAAI6N,EAAS7N,EAAoB,QAC7BihE,EAAYpzD,EAAOozD,UACnBF,EAAUlzD,EAAOkzD,QACRlzD,EAAOw1D,OAEpB,SAASK,IACL//D,KAAKggE,YAAc,EACnBhgE,KAAKigE,WAAa,EAClBjgE,KAAKiG,KAAOm3D,EAAQ,IACpBp9D,KAAKkgE,MAAQ5C,EAAU,IACvBt9D,KAAKmgE,UAAY7C,EAAU,IAG/B9gE,EAAOD,QAAUwjE,GAKX,OACA,SAAUvjE,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAClC0R,EAAW1R,EAAoB,QAE/BkP,EAAQ7E,KAAK6E,MACb0B,EAAS0yD,EAAY,GAAG1yD,QACxB3J,EAAUq8D,EAAY,GAAGr8D,SACzB88D,EAAcT,EAAY,GAAGpgE,OAC7B8gE,EAAuB,8BACvBC,EAAgC,sBAIpC9jE,EAAOD,QAAU,SAAUgkE,EAASx0D,EAAK6vC,EAAU4kB,EAAUC,EAAeC,GAC1E,IAAIC,EAAU/kB,EAAW2kB,EAAQvhE,OAC7BnC,EAAI2jE,EAASxhE,OACb4hE,EAAUN,EAKd,YAJsBrhE,IAAlBwhE,IACFA,EAAgB1yD,EAAS0yD,GACzBG,EAAUP,GAEL/8D,EAAQo9D,EAAaE,GAAS,SAAU/uD,EAAOksB,GACpD,IAAI/hB,EACJ,OAAQ/O,EAAO8wB,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOwiC,EACjB,IAAK,IAAK,OAAOH,EAAYr0D,EAAK,EAAG6vC,GACrC,IAAK,IAAK,OAAOwkB,EAAYr0D,EAAK40D,GAClC,IAAK,IACH3kD,EAAUykD,EAAcL,EAAYriC,EAAI,GAAI,IAC5C,MACF,QACE,IAAI7/B,GAAK6/B,EACT,GAAU,IAAN7/B,EAAS,OAAO2T,EACpB,GAAI3T,EAAIrB,EAAG,CACT,IAAIyD,EAAIiL,EAAMrN,EAAI,IAClB,OAAU,IAANoC,EAAgBuR,EAChBvR,GAAKzD,OAA8BoC,IAApBuhE,EAASlgE,EAAI,GAAmB2M,EAAO8wB,EAAI,GAAKyiC,EAASlgE,EAAI,GAAK2M,EAAO8wB,EAAI,GACzFlsB,EAETmK,EAAUwkD,EAAStiE,EAAI,GAE3B,YAAmBe,IAAZ+c,EAAwB,GAAKA,OAOlC,OACA,SAAUxf,EAAQD,EAASF,GAEjC,IAAIyE,EAAczE,EAAoB,QAClCmH,EAAQnH,EAAoB,QAC5BoH,EAAgBpH,EAAoB,QAGxCG,EAAOD,SAAWuE,IAAgB0C,GAAM,WAEtC,OAEQ,GAFDrG,OAAOC,eAAeqG,EAAc,OAAQ,IAAK,CACtDnG,IAAK,WAAc,OAAO,KACzB4B,MAMC,OACA,SAAU1C,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAElCwkE,EAAS/tB,MACTxvC,EAAUq8D,EAAY,GAAGr8D,SAEzBw9D,EAAO,SAAW1/B,GAAO,OAAOxiC,OAAOiiE,EAAOz/B,GAAKkT,OAA5C,CAAuD,UAC9DysB,EAA2B,uBAC3BC,EAAwBD,EAAyBpiE,KAAKmiE,GAE1DtkE,EAAOD,QAAU,SAAU+3C,EAAO2sB,GAChC,GAAID,GAAyC,iBAAT1sB,IAAsBusB,EAAOK,kBAC/D,MAAOD,IAAe3sB,EAAQhxC,EAAQgxC,EAAOysB,EAA0B,IACvE,OAAOzsB,IAML,OACA,SAAU93C,EAAQD,GAExB,IAAI4kE,EAAUviE,OAEdpC,EAAOD,QAAU,SAAUi9C,GACzB,IACE,OAAO2nB,EAAQ3nB,GACf,MAAO34C,GACP,MAAO,YAOL,OACA,SAAUrE,EAAQD,EAASF,GAEjC,IAAImH,EAAQnH,EAAoB,QAC5BwK,EAASxK,EAAoB,QAG7B+kE,EAAUv6D,EAAO8J,OAErBnU,EAAOD,QAAUiH,GAAM,WACrB,IAAI69D,EAAKD,EAAQ,UAAW,KAC5B,MAAiC,MAA1BC,EAAG98D,KAAK,KAAK+8D,OAAOpiE,GACI,OAA7B,IAAIoE,QAAQ+9D,EAAI,aAMd,OACA,SAAU7kE,EAAQD,EAASF,GAEjC,IAAImH,EAAQnH,EAAoB,QAC5BklE,EAAallE,EAAoB,QACjCmQ,EAASnQ,EAAoB,QAC7ByE,EAAczE,EAAoB,QAClCmlE,EAA6BnlE,EAAoB,QAAQolE,aACzD5kB,EAAgBxgD,EAAoB,QACpC84C,EAAsB94C,EAAoB,QAE1CygD,EAAuB3H,EAAoBmH,QAC3C/G,EAAmBJ,EAAoB73C,IAEvCF,EAAiBD,OAAOC,eAExBskE,EAAsB5gE,IAAgB0C,GAAM,WAC9C,OAAsF,IAA/EpG,GAAe,cAA6B,SAAU,CAAEM,MAAO,IAAKsB,UAGzE+9C,EAAWn+C,OAAOA,QAAQsN,MAAM,UAEhCy1D,EAAcnlE,EAAOD,QAAU,SAAUmB,EAAOV,EAAM6I,GACvB,YAA7BjH,OAAO5B,GAAMuC,MAAM,EAAG,KACxBvC,EAAO,IAAM4B,OAAO5B,GAAMsG,QAAQ,qBAAsB,MAAQ,KAE9DuC,GAAWA,EAAQ5I,SAAQD,EAAO,OAASA,GAC3C6I,GAAWA,EAAQ6R,SAAQ1a,EAAO,OAASA,KAC1CwP,EAAO9O,EAAO,SAAY8jE,GAA8B9jE,EAAMV,OAASA,KACtE8D,EAAa1D,EAAeM,EAAO,OAAQ,CAAEA,MAAOV,EAAMsN,cAAc,IACvE5M,EAAMV,KAAOA,GAEhB0kE,GAAuB77D,GAAW2G,EAAO3G,EAAS,UAAYnI,EAAMsB,SAAW6G,EAAQ+7D,OACzFxkE,EAAeM,EAAO,SAAU,CAAEA,MAAOmI,EAAQ+7D,QAEnD,IACM/7D,GAAW2G,EAAO3G,EAAS,gBAAkBA,EAAQb,YACnDlE,GAAa1D,EAAeM,EAAO,YAAa,CAAE+S,UAAU,IAEvD/S,EAAMW,YAAWX,EAAMW,eAAYY,GAC9C,MAAO4B,IACT,IAAI+0C,EAAQkH,EAAqBp/C,GAG/B,OAFG8O,EAAOopC,EAAO,YACjBA,EAAMzuC,OAAS41C,EAASh9C,KAAoB,iBAAR/C,EAAmBA,EAAO,KACvDU,GAKXoC,SAASzB,UAAUkC,SAAWohE,GAAY,WACxC,OAAOJ,EAAWvhE,OAASu1C,EAAiBv1C,MAAMmH,QAAU01C,EAAc78C,QACzE,aAKG,OACA,SAAUxD,EAAQD,EAASF,GAEjC,aAEA,IAAIk3C,EAAIl3C,EAAoB,QACxBwlE,EAAUxlE,EAAoB,QAAQ20C,KACtC8wB,EAAsBzlE,EAAoB,QAC1C0lE,EAAiB1lE,EAAoB,QACrCo1C,EAAUp1C,EAAoB,QAE9B2lE,EAAgBF,EAAoB,UAGpCG,GAAcxwB,GAAWswB,EAAiB,IAAMA,EAAiB,GAIrExuB,EAAE,CAAElsC,OAAQ,QAASgxC,OAAO,EAAMvwC,QAASk6D,GAAiBC,GAAc,CACxEC,OAAQ,SAAgBlpB,GACtB,IAAIh6C,EAASK,UAAUL,OACvB,OAAO6iE,EAAQ7hE,KAAMg5C,EAAYh6C,EAAQA,EAAS,EAAIK,UAAU,QAAKJ,OAOnE,OACA,SAAUzC,EAAQD,EAASF,GAEjC,IAAIO,EAAOP,EAAoB,QAC3B8I,EAAW9I,EAAoB,QAC/BklE,EAAallE,EAAoB,QACjCu3C,EAAUv3C,EAAoB,QAC9B8lE,EAAa9lE,EAAoB,QAEjC+lE,EAAav+D,UAIjBrH,EAAOD,QAAU,SAAUw7D,EAAG7gB,GAC5B,IAAI3yC,EAAOwzD,EAAExzD,KACb,GAAIg9D,EAAWh9D,GAAO,CACpB,IAAImB,EAAS9I,EAAK2H,EAAMwzD,EAAG7gB,GAE3B,OADe,OAAXxxC,GAAiBP,EAASO,GACvBA,EAET,GAAmB,WAAfkuC,EAAQmkB,GAAiB,OAAOn7D,EAAKulE,EAAYpK,EAAG7gB,GACxD,MAAMkrB,EAAW,iDAMb,KACA,SAAU5lE,EAAQD,GAIxBC,EAAOD,QAAU,SAAUi9C,GACzB,MAA0B,mBAAZA,IAMV,KACA,SAAUh9C,EAAQD,EAASF,GAEjC,aAGAE,EAAQsB,YAAa,EACrBtB,EAAQ8lE,SAAW9lE,EAAQ+lE,WAAa/lE,EAAQgmE,oBAAiBtjE,EAEjE,IAAIujE,EAASnmE,EAAoB,QAEjC,SAASomE,IACR,OAAO,SAAUC,GAChB1iE,KAAK2vB,EAAI,GACT3vB,KAAKw7C,EAAIknB,GAAU,MAuBrB,IAAIC,EAAYF,IAChBE,EAAUtkE,UAAY,CACrBukE,mBAAmB,EAgBnBpkD,GAAI,SAAYgG,EAAQoxB,GACvB,GAAIpxB,aAAkBngB,MAAO,CAC5B,IAAK,IAAI5H,EAAI,EAAGA,EAAI+nB,EAAOxlB,OAAQvC,IAClCuD,KAAK2vB,EAAE3sB,KAAK,CAACwhB,EAAO/nB,GAAIm5C,IAEzB,OAAO51C,KAGR,OADAA,KAAK2vB,EAAE3sB,KAAK,CAACwhB,EAAQoxB,IACd51C,MAWRmE,KAAM,SAAckI,GACnB,IAAK,IAAI5P,EAAI,EAAGA,EAAIuD,KAAK2vB,EAAE3wB,OAAQvC,IAAK,CACvC,IAAIomE,EAAO7iE,KAAK2vB,EAAElzB,GACd+nB,EAASq+C,EAAK,GACdjtB,EAAQitB,EAAK,GAGjB,GAAI7iE,KAAKrB,KAAK0N,EAAMmY,GACnB,OAAOoxB,EAKT,OAAO51C,KAAK4iE,mBAUbE,QAAS,WACR,QAAS9iE,KAAKw7C,GAaf78C,KAAM,SAAc0N,EAAMmY,GACzB,OAAOnY,IAASmY,GAUjBsM,KAAM,WACL,OAAO9wB,KAAKw7C,IAUd,IAAI+mB,GAAiB,EAAIC,EAAOO,UAAUJ,EAAWF,IAAoB,CASxE9jE,KAAM,SAAcqkE,EAAWC,GAC9B,OAAOD,IAAcC,GAAgBA,aAAwBtyD,QAAUsyD,EAAatkE,KAAKqkE,MAUvFV,GAAa,EAAIE,EAAOO,UAAUJ,EAAWF,IAAoB,CAUpEI,KAAM,SAAcnhB,GACnB,IAAIghB,EAASrjE,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,KAE7Eu2C,EAAQ51C,KAAKmE,KAAK,IAAIu9C,EAAM,KAQhC,OAPI9L,IAAU51C,KAAK4iE,mBAElBhtB,EAAQ,IAAI51C,KAAKgF,YAAY09D,GAC7B1iE,KAAKwe,GAAGkjC,EAAO9L,IACL8sB,IACV9sB,EAAM4F,EAAIknB,GAEJ9sB,GAWRj3C,KAAM,SAAc+iD,EAAOwhB,GAC1B,OAAOxhB,aAAiBwhB,KAwB1B,SAASb,EAASt2D,EAAK2B,EAAOy1D,EAAUC,GACvC,IAAI3mE,EAAI,EACJ0Z,EAAMpK,EAAI/M,OACV42C,EAAQloC,EACR21D,EAAY,GACZC,OAAY,EAGhB,MAAO7mE,EAAI0Z,IAAQmtD,EAAY1tB,EAAMzxC,KAAK4H,EAAItP,KAC7Cm5C,EAAQ0tB,EACR7mE,IAGD,GAAIA,GAAK0Z,EACR,MAAO,GAGR,MAAO1Z,EAAI0Z,EAAM,EAChBmtD,EAAY,IAAIf,EAAea,GAC/BC,EAAUrgE,KAAKsgE,GACf1tB,EAAMp3B,GAAGzS,EAAItP,GAAI6mE,GACjB1tB,EAAQ0tB,EACR7mE,IAOD,OAJA6mE,EAAY,IAAIf,EAAeY,GAC/BE,EAAUrgE,KAAKsgE,GACf1tB,EAAMp3B,GAAGzS,EAAIoK,EAAM,GAAImtD,GAEhBD,EAGR9mE,EAAQgmE,eAAiBA,EACzBhmE,EAAQ+lE,WAAaA,EACrB/lE,EAAQ8lE,SAAWA,GAIb,OACA,SAAU7lE,EAAQD,EAASF,GAEjC,IAAIknE,EAAoBlnE,EAAoB,QAExCmnE,EAAc9N,WAElBl5D,EAAOD,QAAU,SAAUqE,EAAI6iE,GAC7B,IAAI5J,EAAS0J,EAAkB3iE,GAC/B,GAAIi5D,EAAS4J,EAAO,MAAMD,EAAY,gBACtC,OAAO3J,IAMH,OACA,SAAUr9D,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAClC0R,EAAW1R,EAAoB,QAE/BiC,EAAiBqhE,EAAY,GAAGrhE,gBAKpC9B,EAAOD,QAAUY,OAAOqP,QAAU,SAAgB5L,EAAI5C,GACpD,OAAOM,EAAeyP,EAASnN,GAAK5C,KAMhC,OACA,SAAUxB,EAAQknE,EAAqBrnE,GAE7C,aACAA,EAAoBkB,EAAEmmE,GACSrnE,EAAoBU,EAAE2mE,EAAqB,gBAAgB,WAAa,OAAOC,KACpBtnE,EAAoB,QAG9G,SAASsnE,IACP,IAAIj/D,EAAYk/D,IACZC,EAAgBn/D,EAAUo/D,OAAO,EAAG,GACxC,MAAO,sVAAsVnlE,KAAK+F,IAAc,8+CAA8+C/F,KAAKklE,GAGr2D,SAASD,IACP,IAAIl/D,EAAY6M,UAAU7M,WAAa6M,UAAUwyD,QAAUtjE,OAAOujE,OAAS,KAC3E,IAAKt/D,EAAW,MAAM,IAAIouC,MAAM,8CAChC,OAAOpuC,IAKH,OACA,SAAUlI,EAAQD,EAASF,GAEjC,IAAIyH,EAAazH,EAAoB,QAErCG,EAAOD,QAAUuH,EAAW,WAAY,oBAKlC,OACA,SAAUtH,EAAQD,EAASF,GAEjC,aAEA,IAAI4nE,EAAsB5nE,EAAoB,QAC1C6nE,EAAiB7nE,EAAoB,QAAQ8nE,cAE7CC,EAAcH,EAAoBG,YAClCC,EAAyBJ,EAAoBI,uBAIjDA,EAAuB,iBAAiB,SAAuB9R,GAC7D,OAAO2R,EAAeE,EAAYpkE,MAAOuyD,EAAWlzD,UAAUL,OAAS,EAAIK,UAAU,QAAKJ,OAMtF,OACA,SAAUzC,EAAQD,EAASF,GAEjC,IAAIioE,EAAoBjoE,EAAoB,QAExC+lE,EAAav+D,UAIjBrH,EAAOD,QAAU,SAAUqE,GACzB,GAAI0jE,EAAkB1jE,GAAK,MAAMwhE,EAAW,wBAA0BxhE,GACtE,OAAOA,IAMH,OACA,SAAUpE,EAAQD,EAASF,GAEjC,IAAIkoE,EAAsBloE,EAAoB,QAE1CoK,EAAMC,KAAKD,IACXE,EAAMD,KAAKC,IAKfnK,EAAOD,QAAU,SAAUyJ,EAAOhH,GAChC,IAAI4H,EAAU29D,EAAoBv+D,GAClC,OAAOY,EAAU,EAAIH,EAAIG,EAAU5H,EAAQ,GAAK2H,EAAIC,EAAS5H,KAMzD,OACA,SAAUxC,EAAQD,EAASF,GAEjC,IAAIwK,EAASxK,EAAoB,QAC7BgF,EAA2BhF,EAAoB,QAAQiE,EACvDwG,EAA8BzK,EAAoB,QAClDmoE,EAAgBnoE,EAAoB,QACpCooE,EAAuBpoE,EAAoB,QAC3C4K,EAA4B5K,EAAoB,QAChD6K,EAAW7K,EAAoB,QAiBnCG,EAAOD,QAAU,SAAUsJ,EAASsB,GAClC,IAGIC,EAAQC,EAAQrJ,EAAKsJ,EAAgBC,EAAgBC,EAHrDC,EAAS5B,EAAQwB,OACjBK,EAAS7B,EAAQgB,OACjBc,EAAS9B,EAAQ+B,KASrB,GANEP,EADEK,EACOb,EACAc,EACAd,EAAOY,IAAWg9D,EAAqBh9D,EAAQ,KAE9CZ,EAAOY,IAAW,IAAIpJ,UAE9BgJ,EAAQ,IAAKrJ,KAAOmJ,EAAQ,CAQ9B,GAPAI,EAAiBJ,EAAOnJ,GACpB6H,EAAQ6+D,gBACVl9D,EAAanG,EAAyBgG,EAAQrJ,GAC9CsJ,EAAiBE,GAAcA,EAAW9J,OACrC4J,EAAiBD,EAAOrJ,GAC/BoJ,EAASF,EAASQ,EAAS1J,EAAMyJ,GAAUE,EAAS,IAAM,KAAO3J,EAAK6H,EAAQiC,SAEzEV,QAA6BnI,IAAnBqI,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDL,EAA0BM,EAAgBD,IAGxCzB,EAAQkC,MAAST,GAAkBA,EAAeS,OACpDjB,EAA4BS,EAAgB,QAAQ,GAEtDi9D,EAAcn9D,EAAQrJ,EAAKuJ,EAAgB1B,MAOzC,OACA,SAAUrJ,EAAQD,EAASF,GAEjC,IAAI2L,EAAqB3L,EAAoB,QACzC4L,EAAc5L,EAAoB,QAElC6L,EAAaD,EAAY9H,OAAO,SAAU,aAK9C5D,EAAQ+D,EAAInD,OAAOuD,qBAAuB,SAA6BY,GACrE,OAAO0G,EAAmB1G,EAAG4G,KAMzB,KACA,SAAU1L,EAAQD,GAIxB,SAASooE,IAIL3kE,KAAK4kE,IAAM,EAIX5kE,KAAK4d,KAAO,EAIZ5d,KAAK6kE,KAAO,EAIZ7kE,KAAK4vC,IAAM,EAIX5vC,KAAK67C,KAAO,EAIZ77C,KAAK8kE,IAAM,KACX9kE,KAAK+kE,cAAgB,EACrB/kE,KAAKglE,cAAgB,EAErBhlE,KAAKilE,eAAiB,EAG1BzoE,EAAOD,QAAUooE,GAKX,KACA,SAAUnoE,EAAQD,EAASF,GA+IjC,IAAI6N,EAAS7N,EAAoB,QAE7B6iE,GADSh1D,EAAO+zD,OACN/zD,EAAOg1D,SACjBD,EAAQ/0D,EAAO+0D,MACfV,EAAar0D,EAAOq0D,WACpBD,EAAOp0D,EAAOo0D,KACdP,EAAS7zD,EAAO6zD,OAIhBT,GAHcpzD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,WACnBI,EAAcxzD,EAAOwzD,YACrBN,EAAUlzD,EAAOkzD,QAEjBsC,GADYx1D,EAAO0zD,UACV1zD,EAAOw1D,QAEhBwF,EAAM7oE,EAAoB,QAC1B8oE,EAAU9oE,EAAoB,QAElC,SAAS+oE,IAEL,IAAIC,EAAM,IAAIH,EAEVI,EAAQ,kBAERC,EAAS,EACTC,EAAU,GACVC,EAAW,EACXC,EAAY,GAGZC,EAAU,IAGVC,EAAY,EAAK,WAAmBT,EAAQU,QAAU,GAEtDC,EAA2B,IAE3BC,EAAkB,GAClBC,EAAkB,GAClBC,EAAkB,GAElBC,EAAW,IAKXC,EAAW,GAGXC,EAAc,YAElB,SAASC,EAAwB3M,GAC7B,OAAOA,EA8CX,SAAS4M,EAAuBC,EAAQC,GAGpC,IAFA,IAAIC,EAAiB,EAEZhqE,EAAI,EAAGA,EAAI0oE,EAAQU,QAAU,IAAKppE,EACvCgqE,GAAkBF,EAAO9pE,GAAK+pE,EAAIE,IAAIC,MAAMlqE,GAGhD,OAFAgqE,GAAkBb,EAEXa,EAGX,SAASG,EAAaC,EAAKC,EAAWC,EAAaC,EAASC,EAAYC,EAASC,EAAYC,EAAQC,EAAKj+D,EAAQk+D,GAC9G,IAAId,EAAMK,EAAIU,eACd,GAAIF,EAAM,EACNhC,EAAImC,SAAShB,EAAKQ,EAAQC,GAAaI,EAAKj+D,EAAQk+D,GACpDjC,EAAIoC,UAAUjB,EAAKU,EAAQC,GAAaE,EAAKj+D,EAAQk+D,QAGpD,GAAW,GAAPD,EAAU,CACf,IAAK,IAAI13C,EAAIw1C,EAAQU,QAAU,EAAGl2C,GAAK,IAAKA,EAAG,CAC3C,IAAIjzB,EAAIsqE,EAAQC,EAAa,GAAGt3C,GAC5BpyB,EAAIypE,EAAQC,EAAa,GAAGt3C,GAChCq3C,EAAQC,EAAa,GAAGt3C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GACpDuI,EAAQC,EAAa,GAAGt3C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GAExD,IAAK,IAAIt/D,EAAI,EAAGA,GAAK,IAAKA,EACtB,IAASwwB,EAAIw1C,EAAQuC,UAAY,EAAG/3C,GAAK,IAAKA,EAAG,CACzCjzB,EAAIwqE,EAAQC,EAAa,GAAGhoE,GAAGwwB,GAC/BpyB,EAAI2pE,EAAQC,EAAa,GAAGhoE,GAAGwwB,GACnCu3C,EAAQC,EAAa,GAAGhoE,GAAGwwB,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GACvDyI,EAAQC,EAAa,GAAGhoE,GAAGwwB,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,IAQnEqI,EAAU,GAAKT,EAAwBW,EAAQC,EAAa,GAAG,IAC/DH,EAAU,IAAMA,EAAU,GAE1B,IAASn3C,EAAIw1C,EAAQU,QAAU,EAAI,EAAGl2C,GAAK,IAAKA,EAAG,CAC/C,IAAI0xC,EAAM2F,EAAQC,EAAa,GAAI9B,EAAQU,QAAU,EAAIl2C,GACrDg4C,EAAMX,EAAQC,EAAa,GAAI9B,EAAQU,QAAU,EAAIl2C,GACzDm3C,EAAU3B,EAAQU,QAAU,EAAIl2C,GAAK02C,EACf,IADwChF,EACxDA,EAAKsG,EAAKA,IAEpB,IAASxoE,EAAI,EAAGA,GAAK,IAAKA,EAAG,CACzB4nE,EAAY5nE,GAAG,GAAM+nE,EAAQC,EAAa,GAAIhoE,GAAG,GACjD4nE,EAAY5nE,GAAG,IAAM4nE,EAAY5nE,GAAG,GACpC,IAASwwB,EAAIw1C,EAAQuC,UAAY,EAAI,EAAG/3C,GAAK,IAAKA,EAAG,CAC7C0xC,EAAM6F,EAAQC,EAAa,GAAIhoE,GAAGgmE,EAAQuC,UAC5C,EAAI/3C,GACFg4C,EAAMT,EAAQC,EAAa,GAAIhoE,GAAGgmE,EAAQuC,UAC5C,EAAI/3C,GACNo3C,EAAY5nE,GAAGgmE,EAAQuC,UAAY,EAAI/3C,GAAK02C,EACtB,IAD+ChF,EAC/DA,EAAKsG,EAAKA,KAKpB,IAAIC,EAAc,EAClB,IAASj4C,EAAI,GAAIA,EAAIw1C,EAAQ0C,SAAUl4C,IACnCi4C,GAAed,EAAUn3C,GAKjC,GAHI62C,EAAIsB,SAAST,GAAOO,EAGpBf,EAAIkB,SAAU,CACd,IAASp4C,EAAI,EAAGA,EAAIw1C,EAAQ0C,SAAUl4C,IAClC62C,EAAIwB,MAAMzB,OAAOa,GAAQC,GAAK13C,GAAK62C,EAAIwB,MAAMC,YAAYZ,GAAK13C,GAC9D62C,EAAIwB,MAAMC,YAAYZ,GAAK13C,GAAKm3C,EAAUn3C,GAE9C62C,EAAIwB,MAAME,GAAGd,GAAQC,GAAOb,EAAI0B,GAAGb,GAMX,GAAxBR,EAAIsB,kBAAyBd,EAAM,IAEnCb,EAAI4B,YAAYhB,GAAQC,GAAOb,EAAI6B,iBAAiBhB,GACpDb,EAAI6B,iBAAiBhB,GAAOf,EAAuBQ,EAAWN,IAyBtE,IAUI8B,EACAC,EACAC,EAZAC,EAAU,EAIVC,EAAU,GAIVC,EAAS,GAcTC,EAAM,CAAC,EAAK,OAAS,OAAS,OAC9B,OAAS,OAAS,OAAS,OAAS,QAExC,SAASC,IACLP,EAAY5hE,KAAK4wD,IAAI,IAAKmR,EAAU,GAAK,IACzCF,EAAY7hE,KAAK4wD,IAAI,IAAKoR,EAAU,GAAK,IACzCF,EAAW9hE,KAAK4wD,IAAI,GAAI,EAAW,IAGvC,IAAIwR,EAAS,CAAC,OAAS,OACnB,QAAU,QAAS,aAAmB,aACtC,aAAmB,aAAmB,QAAU,QAChD,MAAQ,MAAO,aAAmB,QAAU,QAC5C,QAAU,QAAS,QAAU,QAAS,aACtC,aAAmB,QAAU,QAAS,QAAU,QAChD,aAAmB,aAAmB,QAAU,QAChD,aAAmB,QAAU,QAAS,OAAS,OAC/C,aAAmB,aAAmB,GAEtCC,EAAS,CAAC,aACV,QAAU,QAAS,QAAU,QAAS,QAAU,QAChD,QAAU,QAAS,OAAS,OAAQ,aACpC,QAAU,QAAS,aAAmB,GAEtCC,EAAS,CAAC,aACV,QAAU,QAAS,aAAmB,QAAU,QAChD,QAAU,QAAS,QAAU,QAAS,QAAU,QAChD,QAAU,QAAS,aAAmB,QAAU,QAChD,QAAU,QAAS,QAAU,QAAS,aACtC,cAKJ,SAASC,EAASC,EAAIC,EAAIC,EAAIjqE,EAAGqnE,EAAK6C,GAClC,IAAIC,EAEJ,GAAIH,EAAKD,EAAI,CACT,KAAIC,EAAMD,EAAKX,GAGX,OAAQW,EAAKC,EAFbG,EAAQH,EAAKD,MAGd,CACH,GAAIA,GAAOC,EAAKZ,EACZ,OAAQW,EAAKC,EACjBG,EAAQJ,EAAKC,EASjB,GALAzJ,EAAOwJ,GAAM,GACbxJ,EAAOyJ,GAAM,GAEbD,GAAMC,EAEDhqE,EAAI,GAAM,EAAO,CAIlB,GAAImqE,GAAShB,EAET,OAAOY,EAIX,IAAIzsE,EAAI,EAAK6hE,EAAKM,aAAa0K,EAAO,IACtC,OAAOJ,EAAKH,EAAOtsE,GAUvB,IAWY6D,EAAG/C,EAXXd,EAAI,EAAI6hE,EAAKM,aAAa0K,EAAO,IAOrC,OALIH,EADc,GAAdE,EACK7C,EAAIE,IAAI6C,KAAKH,GAAM5C,EAAIE,IAAI8C,OAE3BhD,EAAIE,IAAI+C,KAAKL,GAAM5C,EAAIE,IAAI8C,OAEpC9J,EAAOyJ,GAAM,GACTD,EAAKV,EAAWW,EAGZD,EAAKC,GAGL7oE,EAAI,EACA7D,GAAK,KACL6D,EAAI0oE,EAAOvsE,IAEfc,EAAI+gE,EAAKM,aAAasK,EAAKC,EAAI,GAAO,IAC/BD,IAAOJ,EAAOrsE,GAAK6D,GAAK/C,EAAI+C,IAGnC7D,EAAI,GACGysE,EAEJA,EAAKF,EAAOvsE,GAIhBysE,EAAKJ,EAAOrsE,GAGvB,IAAIitE,EAAU,CAAC,aACX,QAAU,QAAS,QAAU,QAAS,QAAU,QAChD,QAAU,QAAS,OAAS,OAAQ,aACpC,QAAU,QAAS,aAAmB,GAK1C,SAASC,EAAgBT,EAAIC,EAAIhqE,GAC7B,IAAImqE,EAQJ,GANIJ,EAAK,IACLA,EAAK,GAELC,EAAK,IACLA,EAAK,GAELD,GAAM,EACN,OAAOC,EAEX,GAAIA,GAAM,EACN,OAAOD,EAOX,GAJII,EADAH,EAAKD,EACGC,EAAKD,EAELA,EAAKC,GAEZ,GAAKhqE,GAAKA,GAAK,EAAG,CAGnB,GAAImqE,GAAShB,EACT,OAAOY,EAAKC,EAEZ,IAAI1sE,EAAI,EAAK6hE,EAAKM,aAAa0K,EAAO,IACtC,OAAQJ,EAAKC,GAAMO,EAAQjtE,GAGnC,OAAI6sE,EAAQf,EACDW,EAAKC,GAEZD,EAAKC,IACLD,EAAKC,GAEFD,GAMX,SAASU,EAA0B/C,EAAKyC,GACpC,IAAI9C,EAAMK,EAAIU,eACd,GAAIf,EAAIqD,aAAe,EAAG,CACtB,IAAK,IAAIC,EAAK,EAAGA,EAAK3E,EAAQ4E,QAASD,IAAM,CACzC,IAAIptE,EAAI8pE,EAAIwD,IAAI,GAAGttE,EAAEotE,GACjBvsE,EAAIipE,EAAIwD,IAAI,GAAGttE,EAAEotE,GACrBtD,EAAIwD,IAAI,GAAGttE,EAAEotE,IAAOvsE,EAAI+rE,EACxB9C,EAAIwD,IAAI,GAAGttE,EAAEotE,IAAOptE,EAAI4sE,EAE5B,IAASQ,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IACnC,IAAK,IAAII,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACnCxtE,EAAI8pE,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GACrB3sE,EAAIipE,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GACzB1D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,IAAW3sE,EAAI+rE,EAChC9C,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,IAAWxtE,EAAI4sE,IAShD,SAASa,EAAO3D,GACZ,IAAK,IAAIsD,EAAK,EAAGA,EAAK3E,EAAQ4E,QAASD,IAInC,KAAItD,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAM,KAAOtD,EAAIwD,IAAI,GAAGttE,EAAEotE,IACpCtD,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAM,KAAOtD,EAAIwD,IAAI,GAAGttE,EAAEotE,IAD9C,CAGA,IAAIM,EAAM5D,EAAI6D,MAAMP,GAAMtD,EAAI8D,GAAG,GAAG5tE,EAAEotE,GAClCS,EAAO7jE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAC7BpjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKM,IAE/BA,EAAM5D,EAAI6D,MAAMP,GAAMtD,EAAI8D,GAAG,GAAG5tE,EAAEotE,GAClC,IAAIU,EAAQ9jE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAC9BpjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKM,IAC/B5D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAMS,EACnB/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAMU,EAGvB,IAASV,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IACnC,IAAK,IAAII,EAAS,EAAGA,EAAS,EAAGA,IAC7B,KAAI1D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAU,KAAO1D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,IAChD1D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAU,KAAO1D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,IAD1D,CAGIE,EAAM5D,EAAIiE,MAAMX,GAAMtD,EAAI8D,GAAG,GAAG9rE,EAAEsrE,GAAII,GACtCK,EAAO7jE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GACjCxjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASE,IAEvCA,EAAM5D,EAAIiE,MAAMX,GAAMtD,EAAI8D,GAAG,GAAG9rE,EAAEsrE,GAAII,GAClCM,EAAQ9jE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAClCxjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASE,IAEvC5D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAUK,EAC3B/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAUM,GAUvC,SAASE,EAASlE,EAAKmE,EAAOC,GAC1B,IAAIC,EAASF,EACTG,EAAWpkE,KAAK4wD,IAAI,GAAIsT,GAE5BD,GAAS,EACTE,GAAU,EACV,IAAK,IAAIf,EAAK,EAAGA,EAAK3E,EAAQ4E,QAASD,IAAM,CAOzC,GALAiB,EAAOvE,EAAIE,IAAI+C,KAAKjD,EAAIwE,KAAKlB,IAAQgB,EACrCG,EAAQvkE,KAAKC,IAAID,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKiB,GACxCrkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKiB,IAC/BG,EAAOxkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKiB,GAClCI,EAAOzkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAKiB,GAC9BE,EAAQN,EAAQO,EAAOC,EAAM,CAC7B,IAAI7qE,EAAI2qE,EAAQJ,GAAUK,EAAOC,GACjCD,GAAQ5qE,EACR6qE,GAAQ7qE,EACRo/D,EAAOwL,EAAOC,EAAO,GAEzB3E,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAMpjE,KAAKC,IAAIukE,EAAM1E,EAAIwD,IAAI,GAAGttE,EAAEotE,IAC/CtD,EAAIwD,IAAI,GAAGttE,EAAEotE,GAAMpjE,KAAKC,IAAIwkE,EAAM3E,EAAIwD,IAAI,GAAGttE,EAAEotE,IAGnDgB,GAAc3F,EAAQuC,UAAYvC,EAAQU,QAC1C,IAASiE,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IACnC,IAAK,IAAII,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACvC,IAAIe,EAAOC,EAAMC,EAAMJ,EAOvB,GANAA,EAAOvE,EAAIE,IAAI6C,KAAK/C,EAAI4E,KAAKtB,IAAQgB,EACrCG,EAAQvkE,KAAKC,IAAID,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASa,GAChDrkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASa,IACvCG,EAAOxkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASa,GAC1CI,EAAOzkE,KAAKD,IAAI+/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAASa,GAEtCE,EAAQN,EAAQO,EAAOC,EAAM,CACzB7qE,EAAI2qE,EAAQN,GAASO,EAAOC,GAChCD,GAAQ5qE,EACR6qE,GAAQ7qE,EACRo/D,EAAOwL,EAAOC,EAAO,GAEzB3E,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAUxjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GACjDgB,GACJ1E,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GAAUxjE,KAAKC,IAAI6/D,EAAIwD,IAAI,GAAGxrE,EAAEsrE,GAAII,GACjDiB,IAWhB,SAASE,EAA6B7E,EAAK8E,EAAIC,EAAKlE,EAAK6C,GACrD,IAAIJ,EAAI3qE,EACJqsE,EAAM,EACNC,EAAO,EACX,IAAK3B,EAAK3qE,EAAI,EAAG2qE,EAAK3E,EAAQ8E,UAAW9qE,IAAK2qE,EAAI,CAC9C,IAAI4B,EAAUlF,EAAImF,KAAK7B,GACnB8B,EAAUpF,EAAIoF,QACdC,EAAQH,EAAUE,EAAUF,EAAUE,EAC1C,MAAOzsE,EAAI0sE,EACPnM,EAAO4L,EAAGnsE,IAAM,GAEhBugE,EAAO6L,EAAIpsE,IAAM,GACjBqsE,GAAOF,EAAGnsE,GACVssE,GAAQF,EAAIpsE,GACZA,IAKJ,GAHAqnE,EAAI8D,GAAGjD,GAAK7oE,EAAEsrE,GAAII,GAAUsB,EAC5BhF,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAAUuB,EAEzBtsE,GAAKysE,EAAS,GACZ9B,EACF,MAEJpK,EAAO4L,EAAGnsE,IAAM,GAEhBugE,EAAO6L,EAAIpsE,IAAM,GAGb,IAAI2sE,EAAStF,EAAIuF,IAAIC,YAAYlC,GAC7BmC,EAAS,EAAMH,EACnBN,EAAMM,EAASR,EAAGnsE,GAClBssE,EAAOK,EAASP,EAAIpsE,GACpBqnE,EAAI8D,GAAGjD,GAAK7oE,EAAEsrE,GAAII,IAAWsB,EAC7BhF,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,IAAWuB,EAC9BD,EAAMS,EAASX,EAAGnsE,GAClBssE,EAAOQ,EAASV,EAAIpsE,GAI5B,KAAO2qE,EAAK3E,EAAQ8E,UAAWH,EAC3BtD,EAAI8D,GAAGjD,GAAK7oE,EAAEsrE,GAAII,GAAU,EAC5B1D,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAAU,EAOrC,SAASgC,EAA6B1F,EAAK8E,EAAIC,EAAKlE,GAChD,IAAIyC,EAAI3qE,EACJqsE,EAAM,EACNC,EAAO,EACX,IAAK3B,EAAK3qE,EAAI,EAAG2qE,EAAK3E,EAAQ4E,UAAW5qE,IAAK2qE,EAAI,CAC9C,IAAIqC,EAAU3F,EAAI4F,KAAKtC,GACnBuC,EAAU7F,EAAI6F,QACdR,EAAQM,EAAUE,EAAUF,EAAUE,EAC1C,MAAOltE,EAAI0sE,EACPnM,EAAO4L,EAAGnsE,IAAM,GAEhBugE,EAAO6L,EAAIpsE,IAAM,GACjBqsE,GAAOF,EAAGnsE,GACVssE,GAAQF,EAAIpsE,GACZA,IAKJ,GAHAqnE,EAAI8D,GAAGjD,GAAK3qE,EAAEotE,GAAM0B,EACpBhF,EAAIwD,IAAI3C,GAAK3qE,EAAEotE,GAAM2B,EAEjBtsE,GAAKktE,EAAS,GACZvC,EACF,MAEJpK,EAAO4L,EAAGnsE,IAAM,GAChBugE,EAAO6L,EAAIpsE,IAAM,GAGb,IAAI2sE,EAAStF,EAAIuF,IAAIO,YAAYxC,GAC7BmC,EAAS,EAAMH,EACnBN,EAAMM,EAASR,EAAGnsE,GAClBssE,EAAOK,EAASP,EAAIpsE,GACpBqnE,EAAI8D,GAAGjD,GAAK3qE,EAAEotE,IAAO0B,EACrBhF,EAAIwD,IAAI3C,GAAK3qE,EAAEotE,IAAO2B,EACtBD,EAAMS,EAASX,EAAGnsE,GAClBssE,EAAOQ,EAASV,EAAIpsE,GAI5B,KAAO2qE,EAAK3E,EAAQ4E,UAAWD,EAC3BtD,EAAI8D,GAAGjD,GAAK3qE,EAAEotE,GAAM,EACpBtD,EAAIwD,IAAI3C,GAAK3qE,EAAEotE,GAAM,EAI7B,SAASyC,EAAkB1F,EAAKE,EAAauE,EAAIC,EAAKlE,EAAK6C,GACvD,IACIv6C,EAAGxwB,EADHqnE,EAAMK,EAAIU,eAGd,IAAKpoE,EAAIwwB,EAAI,EAAGxwB,EAAIqnE,EAAIoF,UAAWzsE,EAAG,CAGlC,IAFA,IAAIqtE,EAAM,EAAG3vE,EAAI,EACbqB,EAAIsoE,EAAIiG,WAAWttE,GACd1C,EAAI,EAAGA,EAAIyB,IAAKzB,IAAKkzB,EAAG,CAC7B,IAAIhB,EAAKo4C,EAAYmD,GAAQv6C,GAC7B68C,GAAO79C,EACH9xB,EAAI8xB,IACJ9xB,EAAI8xB,GAEZ28C,EAAGnsE,GAAKqtE,EAIZ,IAFA9M,EAAOvgE,GAAKqnE,EAAIoF,SAChBlM,EAAY,KAAL/vC,GACFA,EAAIxwB,EAAI,EAAGA,EAAIqnE,EAAIoF,QAASzsE,IAAK,CAClC,IAAIiqE,EAAK5C,EAAIkG,QAAQvtE,GAAG,GACpBwtE,EAAMnG,EAAIoG,MAAMj9C,KAAO27C,EAAGlC,KAC5BA,EACF,MAAOA,GAAM5C,EAAIkG,QAAQvtE,GAAG,GACxBwtE,GAAOnG,EAAIoG,MAAMj9C,GAAK27C,EAAGlC,KACvBz5C,IACAy5C,EAIF,IAAI1P,EAAI+L,EAAWe,EAAIqG,MAAMxF,GAAKloE,GAGtC,GAFIosE,EAAIpsE,GAAKuH,KAAKC,IAAIgmE,EAAKjT,GAEvB8M,EAAIsG,cAAoB,EAANzF,IAAYlC,EAAQ4H,WAAY,CAE9CrT,EAAIgM,EAAYc,EAAIwG,MAAM3F,GAAKloE,GAAnC,IACIs3D,EAAI8U,EAAIpsE,GACZosE,EAAIpsE,GAAKuH,KAAKC,IAAI+yD,EAAGjD,GAGzB+P,EAAIwG,MAAM3F,GAAKloE,GAAKqnE,EAAIqG,MAAMxF,GAAKloE,GACnCqnE,EAAIqG,MAAMxF,GAAKloE,GAAKwtE,EACpBjN,EAAO6L,EAAIpsE,IAAM,GAErB,KAAOA,GAAKgmE,EAAQ8H,SAAU9tE,EAC1BmsE,EAAGnsE,GAAK,EACRosE,EAAIpsE,GAAK,EAIjB,SAAS+tE,EAAerG,EAAKsG,EAAcC,EAAaC,GACpD,IAAI7G,EAAMK,EAAIU,eAEVV,EAAIyG,cAAgB/O,EAAWO,qBAIP,GAAnBqO,EAAa,IAA8B,GAAnBA,EAAa,KAC1CA,EAAa,GAAKA,EAAa,GAAK,GAMxC,IAAK,IAAI9F,EAAM,EAAGA,EAAMb,EAAIqD,aAAcxC,IACtCgG,EAAUhG,GAAOlC,EAAQoI,UAErB1G,EAAIyG,cAAgB/O,EAAWQ,wBAC/BoO,EAAa9F,GAAO,GACpBR,EAAIyG,cAAgB/O,EAAWS,qBAC/BmO,EAAa9F,GAAO,GAEC,GAArB8F,EAAa9F,IAEb3H,EAAO8G,EAAIsG,cAAczF,IAAQlC,EAAQqI,YACrChH,EAAIsG,cAAczF,IAAQlC,EAAQ4H,aAClCM,EAAUhG,GAAOlC,EAAQsI,aAG7BJ,EAAUhG,GAAOlC,EAAQ4H,WACrBvG,EAAIsG,cAAczF,IAAQlC,EAAQoI,YAClC/G,EAAIsG,cAAczF,GAAOlC,EAAQqI,YAEjChH,EAAIsG,cAAczF,IAAQlC,EAAQsI,YAClCjH,EAAIsG,cAAczF,GAAOlC,EAAQ4H,aAGzCK,EAAY/F,GAAOb,EAAIsG,cAAczF,GAErCb,EAAIsG,cAAczF,GAAOgG,EAAUhG,GAK3C,SAASqG,EAAUhU,EAAGjD,EAAGl5D,GAErB,OAAIA,GAAK,EAEEm8D,EAEPn8D,GAAK,EACEk5D,EACPA,EAAI,EAEI/vD,KAAK4wD,IAAIoC,EAAIjD,EAAGl5D,GAAKk5D,EAG1B,EAMX,IAAIkX,EAAY,CAAC,KAAM,KAAM,KAAM,GAAI,KACnC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAIxC,SAASC,EAASC,EAAIC,GAElB,IADA,IAAIC,EAAO,OACFjE,EAAK,EAAGA,EAAK3E,EAAQ8E,QAAU,EAAGH,IACvC,IAAK,IAAII,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACvC,IAAIF,EAAM6D,EAAG7D,IAAIxrE,EAAEsrE,GAAII,GAEvB,GADAxK,EAAOoK,EAAK6D,EAAU3uE,QAClBgrE,EAAM,EAAK,CACX,IAAItQ,EAAIsQ,EAAM8D,EACVxD,EAAKuD,EAAGvD,GAAG9rE,EAAEsrE,GAAII,GACjBI,EAAK5Q,IACD4Q,EAAS,KAAJ5Q,EACLqU,GAAQJ,EAAU7D,IAAO,GAAOxE,IAEhC5F,EAAOhG,EAAI,GACXqU,GAAQJ,EAAU7D,GAAMxL,EAAKI,WAAW4L,EAAK5Q,MAOjE,OAAOqU,EAMX,IAAIC,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IACtC,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACpD,KAAM,KAAM,KAAM,KAAM,OAI5B,SAASC,GAASJ,EAAIC,GAElB,IADA,IAAII,EAAO,SACFpE,EAAK,EAAGA,EAAK3E,EAAQ4E,QAAU,EAAGD,IAAM,CAC7C,IAAIE,EAAM6D,EAAG7D,IAAIttE,EAAEotE,GAEnB,GADApK,EAAOoK,EAAKkE,EAAUhvE,QAClBgrE,EAAM,EAAK,CACX,IAAItQ,EAAIsQ,EAAM8D,EACVxD,EAAKuD,EAAGvD,GAAG5tE,EAAEotE,GACbQ,EAAK5Q,IACD4Q,EAAS,KAAJ5Q,EACLwU,GAAQF,EAAUlE,IAAO,GAAOxE,IAEhC5F,EAAOhG,EAAI,GACXwU,GAAQF,EAAUlE,GAAMxL,EAAKI,WAAW4L,EAAK5Q,MAK7D,OAAOwU,EAGX,SAASC,GAAY3H,EAAKM,EAAWwE,EAAI7kE,EAAK2nE,GAC1C,IAAIjvE,EAAGwwB,EAEP,IAAKxwB,EAAIwwB,EAAI,EAAGxwB,EAAIqnE,EAAI6F,UAAWltE,EAAG,CAClC,IACI1C,EADA+vE,EAAM,EAAG3vE,EAAI,EAEjB,IAAKJ,EAAI,EAAGA,EAAI+pE,EAAI6H,WAAWlvE,KAAM1C,IAAKkzB,EAAG,CACzC,IAAIhB,EAAKm4C,EAAUn3C,GACnB+vC,EAAO/wC,GAAM,GACb69C,GAAO79C,EACH9xB,EAAI8xB,IACJ9xB,EAAI8xB,GAEZ28C,EAAGnsE,GAAKqtE,EACR/lE,EAAItH,GAAKtC,EACTuxE,EAAIjvE,GAAKqtE,EAAMhG,EAAI8H,YAAYnvE,GAC/BugE,EAAO8G,EAAI8H,YAAYnvE,IAAM,GAC7BugE,EAAO8M,GAAO,GACd9M,EAAO4L,EAAGnsE,IAAM,GAChBugE,EAAOj5D,EAAItH,IAAM,GACjBugE,EAAO0O,EAAIjvE,IAAM,IAIzB,SAASovE,GAAkB/H,EAAK//D,EAAK2nE,EAAKI,GACtC,IAAIC,EAAiB7F,EAAI5pE,OAAS,EAC9BG,EAAI,EACJD,EAAIkvE,EAAIjvE,GAAKivE,EAAIjvE,EAAI,GAEzB,GADAugE,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACT,IAAIrC,EAAI4J,EAAItH,GACRtC,EAAI4J,EAAItH,EAAI,KACZtC,EAAI4J,EAAItH,EAAI,IAChBugE,EAAQ8G,EAAI6H,WAAWlvE,GAAKqnE,EAAI6H,WAAWlvE,EAAI,GAAK,EAAK,GACzDD,EAAI,IAAY,EAAJrC,EAAUqC,IACfA,GAAKsnE,EAAI6H,WAAWlvE,GAAKqnE,EAAI6H,WAAWlvE,EAAI,GAAK,IACxD,IAAI85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAGlB,IAAKA,EAAI,EAAGA,EAAIqnE,EAAI6F,QAAU,EAAGltE,IAG7B,GAFAD,EAAIkvE,EAAIjvE,EAAI,GAAKivE,EAAIjvE,GAAKivE,EAAIjvE,EAAI,GAClCugE,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACLrC,EAAI4J,EAAItH,EAAI,GACZtC,EAAI4J,EAAItH,KACRtC,EAAI4J,EAAItH,IACRtC,EAAI4J,EAAItH,EAAI,KACZtC,EAAI4J,EAAItH,EAAI,IAChBugE,EAAQ8G,EAAI6H,WAAWlvE,EAAI,GAAKqnE,EAAI6H,WAAWlvE,GAAKqnE,EAAI6H,WAAWlvE,EAAI,GAAK,EAAK,GACjFD,EAAI,IACO,EAAJrC,EAAUqC,IACVA,GAAKsnE,EAAI6H,WAAWlvE,EAAI,GAAKqnE,EAAI6H,WAAWlvE,GAC7CqnE,EAAI6H,WAAWlvE,EAAI,GAAK,IAC1B85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAQtB,GALAugE,EAAOvgE,EAAI,GACXugE,EAAOvgE,GAAKqnE,EAAI6F,QAAU,GAE1BntE,EAAIkvE,EAAIjvE,EAAI,GAAKivE,EAAIjvE,GACrBugE,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACLrC,EAAI4J,EAAItH,EAAI,GACZtC,EAAI4J,EAAItH,KACRtC,EAAI4J,EAAItH,IACZugE,EAAQ8G,EAAI6H,WAAWlvE,EAAI,GAAKqnE,EAAI6H,WAAWlvE,GAAK,EAAK,GACzDD,EAAI,IAAY,EAAJrC,EAAUqC,IACfA,GAAKsnE,EAAI6H,WAAWlvE,EAAI,GAAKqnE,EAAI6H,WAAWlvE,GAAK,IACpD85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAElBugE,EAAOvgE,GAAMqnE,EAAI6F,QAAU,GAG/B,IAAIqC,GAAU,EACV,aAAkB,WAAiB,YAAkB,UACrD,YAAkB,UAAgB,UAAkB,UACpD,aAAkB,SAoYtB,SAASC,GAAqB9H,EAAKz9D,EAAQk+D,EAAQD,EAAKD,EAAQN,EAAWE,EAASC,GAChF,IAAIT,EAAMK,EAAIU,eACd,GAAIF,EAAM,EACNhC,EAAImC,SAAShB,EAAKQ,EAAQC,GAAaI,EAAKj+D,EAAQk+D,QACjD,GAAW,GAAPD,EAEP,IAAK,IAAI13C,EAAIw1C,EAAQU,QAAU,EAAGl2C,GAAK,IAAKA,EAAG,CAC3C,IAAIjzB,EAAIsqE,EAAQC,EAAa,GAAGt3C,GAC5BpyB,EAAIypE,EAAQC,EAAa,GAAGt3C,GAChCq3C,EAAQC,EAAa,GAAGt3C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GACpDuI,EAAQC,EAAa,GAAGt3C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GAO5DqI,EAAU,GAAKT,EAAwBW,EAAQC,EAAa,GAAG,IAC/DH,EAAU,IAAMA,EAAU,GAE1B,IAASn3C,EAAIw1C,EAAQU,QAAU,EAAI,EAAGl2C,GAAK,IAAKA,EAAG,CAC/C,IAAI0xC,EAAK2F,EAAQC,EAAa,GAAG9B,EAAQU,QAAU,EAAIl2C,GACnDg4C,EAAKX,EAAQC,EAAa,GAAG9B,EAAQU,QAAU,EAAIl2C,GACvDm3C,EAAU3B,EAAQU,QAAU,EAAIl2C,GAAK02C,EACf,IADwChF,EACxDA,EAAKsG,EAAKA,IAIhB,IAAIC,EAAc,EAClB,IAASj4C,EAAI,GAAIA,EAAIw1C,EAAQ0C,SAAUl4C,IACnCi4C,GAAed,EAAUn3C,GAKjC,GAHI62C,EAAIsB,SAAST,GAAOO,EAGpBf,EAAIkB,SAAU,CACd,IAASp4C,EAAI,EAAGA,EAAIw1C,EAAQ0C,SAAUl4C,IAClC62C,EAAIwB,MAAMzB,OAAOa,GAAQC,GAAK13C,GAAK62C,EAAIwB,MAAMC,YAAYZ,GAAK13C,GAC9D62C,EAAIwB,MAAMC,YAAYZ,GAAK13C,GAAKm3C,EAAUn3C,GAE9C62C,EAAIwB,MAAME,GAAGd,GAAQC,GAAOb,EAAI0B,GAAGb,IAI3C,SAASuH,GAAqB/H,EAAKz9D,EAAQk+D,EAAQD,EAAK6C,EAAQnD,EAAaG,EAASC,GAClF,IAAIX,EAAMK,EAAIU,eAKd,GAHc,GAAV2C,GAAe7C,EAAM,GACrBhC,EAAIoC,UAAUjB,EAAKU,EAAQC,GAAaE,EAAKj+D,EAAQk+D,GAE9C,GAAPD,EAEA,IAAK,IAAI13C,EAAIw1C,EAAQuC,UAAY,EAAG/3C,GAAK,IAAKA,EAAG,CAC7C,IAAIjzB,EAAIwqE,EAAQC,EAAa,GAAG+C,GAAQv6C,GACpCpyB,EAAI2pE,EAAQC,EAAa,GAAG+C,GAAQv6C,GACxCu3C,EAAQC,EAAa,GAAG+C,GAAQv6C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GAC5DyI,EAAQC,EAAa,GAAG+C,GAAQv6C,IAAMjzB,EAAIa,GAAK+gE,EAAKG,MAAQ,GAOpEsI,EAAYmD,GAAQ,GAAKhD,EAAQC,EAAa,GAAG+C,GAAQ,GACzDnD,EAAYmD,GAAQ,IAAMnD,EAAYmD,GAAQ,GAC9C,IAASv6C,EAAIw1C,EAAQuC,UAAY,EAAI,EAAG/3C,GAAK,IAAKA,EAAG,CACjD,IAAI0xC,EAAK6F,EAAQC,EAAa,GAAG+C,GAAQ/E,EAAQuC,UAAY,EAAI/3C,GAC7Dg4C,EAAKT,EAAQC,EAAa,GAAG+C,GAAQ/E,EAAQuC,UAAY,EAAI/3C,GACjEo3C,EAAYmD,GAAQ/E,EAAQuC,UAAY,EAAI/3C,GAAK02C,EAC3B,IADoDhF,EACpEA,EAAKsG,EAAKA,KAOxB,SAASkH,GAAwChI,EAAKO,EAAQC,EAAKP,GAC/D,IAAIN,EAAMK,EAAIU,eACc,GAAxBV,EAAIsB,kBAAyBd,EAAM,IAEnCb,EAAI4B,YAAYhB,GAAQC,GAAOb,EAAI6B,iBAAiBhB,GACpDb,EAAI6B,iBAAiBhB,GAAOf,EAAuBQ,EAAWN,IAldtExmE,KAAK8uE,iBAAmB,SAAUjI,EAAKz9D,EAAQk+D,EAAQF,EAAQ2H,EAAeC,EAAkBC,EAAgBC,EAAmB3I,EAAQ6G,GAKvI,IAeI+B,EAAQ9H,EACRloE,EAAG1C,EAAGkzB,EAAGspC,EACT6Q,EAAII,EAIJkF,EAuTIzE,EA5UJnE,EAAMK,EAAIU,eAGV8H,EAAU3R,EAAY,CAAC,EAAGyH,EAAQU,UAClCyJ,EAAU5R,EAAY,CAAC,EAAG,EAAGyH,EAAQuC,YAGrC6H,EAAOjS,EAAU6H,EAAQ8H,OAAS,GAClCuC,EAAOlS,EAAU6H,EAAQ8H,OAAS,GAClC1B,EAAMjO,EAAU6H,EAAQ8H,OAAS,GAGjCI,EAAYjQ,EAAQ,GAAI+P,EAAe/P,EAAQ,GAQ/CqS,EAAa/R,EAAY,CAAC,EAAG,MAE7BgS,GAAatS,EAAQ+H,EAAQ8H,OAAS,GAAI0C,GAAavS,EAAQ+H,EAAQ8H,OAAS,GAwBpF,IAtBAlP,EAAO6R,KAAKD,GAAY,GAExBR,EAAS3I,EAAIqD,aAEThD,EAAIjpE,MAAQiyE,SAASC,eACrBX,EAAS,GAGTC,EADAvI,EAAIkJ,KAAO7Q,EAAQE,QACK,GAAfoH,EAAIwJ,QAAe,EAAMxJ,EAAY,SAC5CA,EAAIwJ,QAAU,GACXnJ,EAAIkJ,KAAO7Q,EAAQI,QAAUuH,EAAIkJ,KAAO7Q,EAAQM,UAClDqH,EAAIkJ,KAAO7Q,EAAQG,OACb,GAEA,EAQRgI,EAAM,EAAGA,EAAMb,EAAIqD,aAAcxC,IAAO,CAEzC,IAAI4I,GAAS7mE,EAAOi+D,GAChB6I,GAAY5I,EAAS,IAAM,IAAMnB,EAAW,IAEhD,IADAzG,EAAOgP,GAAQ1vE,SAAYmnE,EAAW,GAAK,GACtC1pE,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACtB,IAAI0zE,GAAMC,GAGV,IAFAD,GAAOF,GAAOC,GAAYzzE,EAAI,IAC9B2zE,GAAO,EACFzgD,EAAI,EAAGA,GAAMw2C,EAAW,GAAK,EAAK,EAAGx2C,GAAK,EAC3CwgD,IAAQzB,GAAQ/+C,IACTsgD,GAAOC,GAAYzzE,EAAIkzB,GAAKsgD,GAAOC,GAAYzzE,EAChD0pE,EAAWx2C,IACjBygD,IAAQ1B,GAAQ/+C,EAAI,IACbsgD,GAAOC,GAAYzzE,EAAIkzB,EAAI,GAAKsgD,GAAOC,GACxCzzE,EAAI0pE,EAAWx2C,EAAI,IAE7B8/C,EAAWpI,GAAK5qE,GAAK0zE,GAAOC,GAEhCrB,EAAc3H,GAAQC,GAAKiD,GAAGnvB,OAAOqrB,EAAI8D,GAAGjD,IAC5C0H,EAAc3H,GAAQC,GAAK2C,IAAI7uB,OAAOqrB,EAAIwD,IAAI3C,IAC1C8H,EAAS,IAGTH,EAAiB5H,GAAQC,GAAKiD,GAAGnvB,OAAOqrB,EAAI8D,GAAGjD,EAAM,IACrD2H,EAAiB5H,GAAQC,GAAK2C,IAAI7uB,OAAOqrB,EAAIwD,IAAI3C,EAAM,KAI/D,IAAKA,EAAM,EAAGA,EAAM8H,EAAQ9H,IAAO,CAC/B,IAAIL,GACAE,GAKAmJ,GAJAC,GAAchT,EAAU,IACxBiT,GAAW,CAAC,EAAG,EAAG,EAAG,GACrBC,GAAmBlT,EAAU,IAC7BmT,GAAkB,EAElBhqE,GAAM62D,EAAU6H,EAAQ8H,QAASmB,GAAM9Q,EAAU6H,EAAQ8H,QACzDyD,GAAa,CAAC,EAAG,EAAG,EAAG,GACvB5J,GAAYxJ,EAAU6H,EAAQ0C,UAC9Bd,GAAcrJ,EAAY,CAAC,EAAGyH,EAAQwL,aAc1C,IAPAjR,EAAO8G,EAAIoF,SAAWzG,EAAQ8H,QAC9BvN,EAAO8G,EAAI6F,SAAWlH,EAAQ8H,QAMzBxwE,EAAI,EAAGA,EAAI,EAAGA,IACf6zE,GAAY7zE,GAAK+pE,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GACrDijE,EAAO8G,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GAAK,GAChD+zE,GAAiB/zE,GAAK6zE,GAAY7zE,GAC5B+pE,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GAC1C8zE,GAAS,IAAMD,GAAY7zE,GAG/B,GAAW,GAAP4qE,EACA,IAAK5qE,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACtB,IAAIC,GAAGa,GACPb,GAAI+yE,EAAW,GAAGhzE,GAClBc,GAAIkyE,EAAW,GAAGhzE,GAClBgzE,EAAW,GAAGhzE,GAAKC,GAAIa,GACvBkyE,EAAW,GAAGhzE,GAAKC,GAAIa,GAI3B,IAAIuzE,GAAKrB,EAAiB,EAANpI,GAChB0J,GAAQ,EACZ,IAAKt0E,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAGpB,IAFA,IAAIu0E,GAAMD,GAAQ,GACdxyE,GAAI,EACDwyE,GAAQC,GAAKD,KACZxyE,GAAImI,KAAK6vD,IAAIua,GAAGC,OAChBxyE,GAAImI,KAAK6vD,IAAIua,GAAGC,MAExBvK,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,GAAK6zE,GAAY7zE,EAAI,GAAK8B,GAC1DgyE,GAAS,EAAI9zE,EAAI,IAAM8B,GACnBA,GAAI+xE,GAAY7zE,EAAI,EAAI,IACxBijE,EAAO4Q,GAAY7zE,EAAI,EAAI,GAAK,GAChC8B,IAAQ+xE,GAAY7zE,EAAI,EAAI,IACrB6zE,GAAY7zE,EAAI,EAAI,GAAS,GAAJ8B,IAChCmhE,EAAOnhE,GAAI,GACXA,GAAI+xE,GAAY7zE,EAAI,EAAI,IAAU,GAAJ8B,KAE9BA,GAAI,EACRiyE,GAAiB/zE,EAAI,GAAK8B,GAIlC,GAAIsoE,EAAIkB,SAAU,CACd,IAAIrO,GAAI8W,GAAiB,GACzB,IAAK/zE,EAAI,EAAGA,EAAI,GAAIA,IACZi9D,GAAI8W,GAAiB/zE,KACrBi9D,GAAI8W,GAAiB/zE,IAC7B+pE,EAAIwB,MAAMiJ,IAAI7J,GAAQC,GAAOb,EAAIwB,MAAMkJ,SAAS7J,GAChDb,EAAIwB,MAAMkJ,SAAS7J,GAAO3N,GAM9B,IAFA2W,GAA0B,GAAPhJ,EAAYb,EAAIoK,MAAMO,aACnC3K,EAAIoK,MAAMQ,WACX30E,EAAI,EAAGA,EAAI,GAAIA,IACZ,GAAKi0E,GAAWj0E,EAAI,IACjB+zE,GAAiB/zE,GAAK4zE,KACzBK,GAAWj0E,EAAI,GAAMA,EAAI,EAAK,GAMtC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACpB,IAAI6sE,GACAiH,GAAS9zE,EAAI,GAAK8zE,GAAS9zE,IAC3BijE,EAAO6Q,GAAS9zE,GAAK,GACrB6sE,GAAQiH,GAAS9zE,EAAI,GAAK8zE,GAAS9zE,KAEnCijE,EAAO6Q,GAAS9zE,EAAI,GAAK,GACzB6sE,GAAQiH,GAAS9zE,GAAK8zE,GAAS9zE,EAAI,IAEnC6sE,GAAQ,MACRoH,GAAWj0E,GAAK,EACP,GAALA,IACAi0E,GAAW,GAAK,IA+C5B,IA3CqB,GAAjBA,GAAW,IAAyC,GAA9BlK,EAAIoK,MAAMS,YAAYhK,KAC5CqJ,GAAW,GAAK,GAEc,GAA9BlK,EAAIoK,MAAMS,YAAYhK,IAClBqJ,GAAW,GAAKA,GAAW,GAAKA,GAAW,GAAKA,GAAW,IAAO,IACtED,GAAkB,EAEG,GAAjBC,GAAW,IAA4B,GAAjBA,GAAW,KACjCA,GAAW,GAAK,GACC,GAAjBA,GAAW,IAA4B,GAAjBA,GAAW,KACjCA,GAAW,GAAK,GACC,GAAjBA,GAAW,IAA4B,GAAjBA,GAAW,KACjCA,GAAW,GAAK,IAGpBrJ,EAAM,EACN8F,EAAa9F,GAAOoJ,GAEG,GAAnBA,KACAtD,EAAa,GAAKA,EAAa,GAAK,GAQ5C5G,EAAOc,GAAOb,EAAIsB,SAAST,GAK3BH,GAAUoI,EACVtI,GAAUqI,EACVzI,EAAaC,EAAKC,GAAWC,GAAaC,GAAgB,EAANK,EAChDH,GAAgB,EAANG,EAAUD,EAAQC,EAAKj+D,EAAQk+D,GAK7C6G,GAAY3H,EAAKM,GAAWyI,EAAM9oE,GAAK2nE,IACvCG,GAAkB/H,EAAK//D,GAAK2nE,GAAKsB,IAE5BxF,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACnC,IAAIsB,GAAKC,GAIT,IAHAc,EAAkB1F,EAAKE,GAAayI,EAAMjE,EAAKlE,EAAK6C,GACpDmB,EAA6B7E,EAAKgJ,EAAMjE,EAAKlE,EAAK6C,GAE7CJ,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IAAM,CAIrC,GAHA2B,GAAOjF,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAE1BuB,IAAQ1F,EACJ2K,GAAWxG,IAAW,GAA+B,GAA1BwG,GAAWxG,EAAS,GAAS,CACxD,IAAIoH,GAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,GAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,IAAM7F,GACvCzF,EAAkBoJ,GACtB3D,GAAO/kE,KAAKC,IAAI8kE,GAAMltE,IAG1B,GAA0B,GAAtBmyE,GAAWxG,GAAc,CACrBoH,GAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,GAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,IAAM7F,GACvCxF,EAAkBmJ,GACtB3D,GAAO/kE,KAAKC,IAAI8kE,GAAMltE,SACnB,GAAe,GAAV2rE,GAAyC,GAA1BwG,GAAWxG,EAAS,IAC7B,GAAVA,GAA6C,GAA9B1D,EAAIoK,MAAMS,YAAYhK,GAAY,CACjDiK,GAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,GAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,IAAM7F,GACvCxF,EAAkBmJ,GACtB3D,GAAO/kE,KAAKC,IAAI8kE,GAAMltE,IAI1BitE,GAAM8E,GAAqB,EAATpG,EAAa,GACzBoG,GAAqB,EAATpG,EAAa,GACzBoG,GAAqB,EAATpG,EAAa,GACG,EAA9BoG,GAAqB,EAATpG,EAAa,GAASsB,KAClCC,IAAQ,GAC0B,EAA9B6E,GAAqB,EAATpG,EAAa,GAASsB,KAClCC,IAAQ,KAGhBjF,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAAUuB,IAWjC,IARJjF,EAAIoK,MAAMS,YAAYhK,GAAOqJ,GAAW,GAMxCzX,EAAI,EAEK95D,EAAI,EAAGA,EAAIqnE,EAAI6F,QAASltE,IAAK,CAK9B,IAAIiqE,GAAK5C,EAAI+K,MAAMpyE,GAAG,GAClBqyE,GAAMjC,EAAKnG,IAAMR,EAAI8G,GAAWtG,KAChCuD,GAAMnG,EAAIiL,MAAMxY,KAAOuY,GAC3B,QAASpI,IAAM5C,EAAI+K,MAAMpyE,GAAG,GACxBqyE,GAAMjC,EAAKnG,IAAMR,EAAI8G,GAAWtG,KAChCuD,GAAM1D,EAAS0D,GAAKnG,EAAIiL,MAAMxY,KAAOuY,GAAKpI,GAAIA,GAAKjqE,EAC/CqnE,EAAK,GAEbmG,IAAO,iBAoBHnG,EAAIsG,cAAoB,EAANzF,IAAYlC,EAAQ4H,WACtCxB,EAAIpsE,GAAKwtE,GAETpB,EAAIpsE,GAAKuuE,EACLhnE,KAAKC,IAAIgmE,GAAKjmE,KAAKC,IAAI4+D,EACjBiB,EAAIkL,KAAKrK,GAAKloE,GAAIqmE,EAClBgB,EAAImL,KAAKtK,GAAKloE,KAAMwtE,GAAKyC,GAEvC5I,EAAImL,KAAKtK,GAAKloE,GAAKqnE,EAAIkL,KAAKrK,GAAKloE,GACjCqnE,EAAIkL,KAAKrK,GAAKloE,GAAKwtE,GAG3B,KAAOxtE,GAAKgmE,EAAQ8H,SAAU9tE,EAC1BowE,EAAKpwE,GAAK,EACVosE,EAAIpsE,GAAK,EAGb+sE,EAA6B1F,EAAK+I,EAAMhE,EAAKlE,IAI7CR,EAAIjpE,MAAQiyE,SAAS+B,QAAU/K,EAAIjpE,MAAQiyE,SAASC,cAChDjJ,EAAIgL,aAAe,GACnBjI,EAA0B/C,EAAKA,EAAIgL,cAIvChL,EAAIjpE,MAAQiyE,SAASC,gBAErB3F,EAAO3D,GACPmE,EAAQ9D,EAAI8D,MACRjkE,KAAK6vD,IAAIoU,GAAS,GAClBD,EAASlE,EAAKmE,EAAO9D,EAAIiL,SAAWtL,EAAIE,IAAI8C,SAWpD,IALA0D,EAAerG,EAAKsG,EAAcC,EAAaC,GAK1ChG,EAAM,EAAGA,EAAM8H,EAAQ9H,IAAO,CAC/B,IAAI0K,GAEAh5D,GACA80D,GAFAmE,GAAS,EAIT3K,EAAM,GACN0K,GAAM7C,EACN8C,IAAU,EACVj5D,GAAOosD,EAAQoI,UACXH,EAAY,IAAMjI,EAAQ4H,YACvBK,EAAY,IAAMjI,EAAQ4H,aAC7Bh0D,GAAOosD,EAAQ4H,YACnBc,GAAKmB,EAAiB5H,GAAQC,EAAM,KAEpC0K,GAAM9C,EACN+C,GAAS,EACTj5D,GAAOq0D,EAAY/F,GACnBwG,GAAKkB,EAAc3H,GAAQC,IAG3BtuD,IAAQosD,EAAQ4H,WAChBgF,GAAIC,GAAS3K,GAAOuG,EAASC,GAAIrH,EAAIsH,eAErCiE,GAAIC,GAAS3K,GAAO4G,GAASJ,GAAIrH,EAAIsH,eAErCjH,EAAIkB,WACJvB,EAAIwB,MAAME,GAAGd,GAAQC,GAAO0K,GAAIC,GAAS3K,IAGjD,OAAO,GAwFX,IAAI4K,GAAW,EAAC,aACZ,WAAiB,YAAkB,UACnC,YAAkB,UAAgB,UAClC,UAAe,aAAkB,SAMrC,SAASC,GAAwBrL,EAAKz9D,EAAQk+D,EAAQF,EAAQ2H,EAAeC,EAAkBzI,EAAQ4L,EAAkBzB,EAAYvD,GAQjI,IAPA,IAAIsC,EAAa/R,EAAY,CAAC,EAAG,MAC7B8I,EAAMK,EAAIU,eACV6K,EAAY5L,EAAIqD,aAEhBwI,EAAaxL,EAAIjpE,MAAQiyE,SAASC,aAAgB,EAAIsC,EAGjD/K,EAAM,EAAGA,EAAM+K,EAAW/K,IAAO,CAEtC4I,OAAS7mE,EAAOi+D,GAChB,IAAI6I,EAAY5I,EAAS,IAAM,IAAMnB,EAAW,IAChDzG,EAAOuS,GAASjzE,SAAYmnE,EAAW,GAAK,GAC5C,IAAK,IAAI1pE,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC1B,IAAI0zE,EAAMC,EACVD,EAAOF,OAAOC,EAAYzzE,EAAI,IAC9B2zE,EAAO,EACP,IAAK,IAAIzgD,EAAI,EAAGA,GAAMw2C,EAAW,GAAK,EAAK,EAAGx2C,GAAK,EAC/CwgD,GAAQ8B,GAAStiD,IACVsgD,OAAOC,EAAYzzE,EAAIkzB,GAAKsgD,OAAOC,EAAYzzE,EAChD0pE,EAAWx2C,IACjBygD,GAAQ6B,GAAStiD,EAAI,IACdsgD,OAAOC,EAAYzzE,EAAIkzB,EAAI,GAAKsgD,OAAOC,EACxCzzE,EAAI0pE,EAAWx2C,EAAI,IAE7B8/C,EAAWpI,GAAK5qE,GAAK0zE,EAAOC,EAEhCrB,EAAc3H,GAAQC,GAAKiD,GAAGnvB,OAAOqrB,EAAI8D,GAAGjD,IAC5C0H,EAAc3H,GAAQC,GAAK2C,IAAI7uB,OAAOqrB,EAAIwD,IAAI3C,IAC1CgL,EAAY,IAGZrD,EAAiB5H,GAAQC,GAAKiD,GAAGnvB,OAAOqrB,EAAI8D,GAAGjD,EAAM,IACrD2H,EAAiB5H,GAAQC,GAAK2C,IAAI7uB,OAAOqrB,EAAIwD,IAAI3C,EAAM,KAG/D,IAASA,EAAM,EAAGA,EAAMgL,EAAWhL,IAAO,CACtC,IAAImJ,EAAmBlT,EAAU,IAC7BgT,EAAchT,EAAU,IACxBiT,EAAW,CAAC,EAAG,EAAG,EAAG,GACrBO,EAAKrB,EAAiB,EAANpI,GAChB0J,EAAQ,EACRV,EAA0B,GAAPhJ,EAAYb,EAAIoK,MAAMO,aACvC3K,EAAIoK,MAAMQ,WACZX,EAAkB,EAEtB,GAAW,GAAPpJ,EACA,IAAS5qE,EAAI,EAAGkzB,EAAI,IAAKA,EAAI,IAAKlzB,IAAKkzB,EAAG,CACtC,IAAIjzB,EAAI+yE,EAAW,GAAGhzE,GAClBc,EAAIkyE,EAAW,GAAGhzE,GACtBgzE,EAAW,GAAGhzE,GAAKC,EAAIa,EACvBkyE,EAAW,GAAGhzE,GAAKC,EAAIa,EAO/B,IAASd,EAAI,EAAGA,EAAI,EAAGA,IACnB6zE,EAAY7zE,GAAK+pE,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GACrDijE,EAAO8G,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GAAK,GAChD+zE,EAAiB/zE,GAAK6zE,EAAY7zE,GAC5B+pE,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,EAAI,GAC1C8zE,EAAS,IAAMD,EAAY7zE,GAG/B,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAGxB,IAFA,IAAIu0E,EAAMD,EAAQ,GACdxyE,EAAI,EACDwyE,EAAQC,EAAKD,IACZxyE,EAAImI,KAAK6vD,IAAIua,EAAGC,MAChBxyE,EAAImI,KAAK6vD,IAAIua,EAAGC,KAExBvK,EAAIoK,MAAMC,iBAAiBxJ,GAAK5qE,GAAK6zE,EAAY7zE,EAAI,GAAK8B,EAC1DgyE,EAAS,EAAI9zE,EAAI,IAAM8B,EACnBA,EAAI+xE,EAAY7zE,EAAI,EAAI,IACxBijE,EAAO4Q,EAAY7zE,EAAI,EAAI,GAAK,GAChC8B,GAAQ+xE,EAAY7zE,EAAI,EAAI,IACrB6zE,EAAY7zE,EAAI,EAAI,GAAS,GAAJ8B,GAChCmhE,EAAOnhE,EAAI,GACXA,EAAI+xE,EAAY7zE,EAAI,EAAI,IAAU,GAAJ8B,IAE9BA,EAAI,EAERiyE,EAAiB/zE,EAAI,GAAK8B,EAG9B,IAAS9B,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAI+uE,EAAM8E,EAAgB,EAAJ7zE,EAAQ,GACxB6zE,EAAgB,EAAJ7zE,EAAQ,GAAK6zE,EAAgB,EAAJ7zE,EAAQ,GAC/C61E,EAAS,EACgB,EAAzBhC,EAAgB,EAAJ7zE,EAAQ,GAAS+uE,IAC7B8G,GAAU,GACmB,EAAzBhC,EAAgB,EAAJ7zE,EAAQ,GAAS+uE,IAC7B8G,GAAU,KAGlBH,EAAiB9K,GAAK5qE,GAAK61E,EAG/B,GAAIzL,EAAIkB,SAAU,CACd,IAAIrO,EAAI8W,EAAiB,GACzB,IAAS/zE,EAAI,EAAGA,EAAI,GAAIA,IAChBi9D,EAAI8W,EAAiB/zE,KACrBi9D,EAAI8W,EAAiB/zE,IAG7B+pE,EAAIwB,MAAMiJ,IAAI7J,GAAQC,GAAOb,EAAIwB,MAAMkJ,SAAS7J,GAChDb,EAAIwB,MAAMkJ,SAAS7J,GAAO3N,EAI9B,IAASj9D,EAAI,EAAGA,EAAI,GAAIA,IAChB,GAAKi0E,EAAWrJ,GAAK5qE,EAAI,IACtB+zE,EAAiB/zE,GAAK4zE,IACzBK,EAAWrJ,GAAK5qE,EAAI,GAAMA,EAAI,EAAK,GAiB3C,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIw7D,EAAIsY,EAAS9zE,EAAI,GACjBkO,EAAI4lE,EAAS9zE,GACbI,EAAI6J,KAAKD,IAAIwxD,EAAGttD,GAChB9N,EAAI,KACAo7D,EAAI,IAAMttD,GAAKA,EAAI,IAAMstD,IAChB,GAALx7D,GAAUi0E,EAAWrJ,GAAK,IAAMqJ,EAAWrJ,GAAK5qE,KAChDi0E,EAAWrJ,GAAK,GAAK,GAEzBqJ,EAAWrJ,GAAK5qE,GAAK,GAK7Bi0E,EAAWrJ,GAAK,IAAMb,EAAIoK,MAAMS,YAAYhK,KAC5CqJ,EAAWrJ,GAAK,GAAK,GAGS,GAA9Bb,EAAIoK,MAAMS,YAAYhK,IAClBqJ,EAAWrJ,GAAK,GAAKqJ,EAAWrJ,GAAK,GACvCqJ,EAAWrJ,GAAK,GAAKqJ,EAAWrJ,GAAK,IAAO,IAC9CoJ,EAAkB,EAEQ,GAAtBC,EAAWrJ,GAAK,IAAiC,GAAtBqJ,EAAWrJ,GAAK,KAC3CqJ,EAAWrJ,GAAK,GAAK,GAEC,GAAtBqJ,EAAWrJ,GAAK,IAAiC,GAAtBqJ,EAAWrJ,GAAK,KAC3CqJ,EAAWrJ,GAAK,GAAK,GAEC,GAAtBqJ,EAAWrJ,GAAK,IAAiC,GAAtBqJ,EAAWrJ,GAAK,KAC3CqJ,EAAWrJ,GAAK,GAAK,IAGzBA,EAAM,EACN8F,EAAa9F,GAAOoJ,EAEG,GAAnBA,IACAtD,EAAa,GAAKA,EAAa,GAAK,GAQ5C5G,EAAOc,GAAOb,EAAIsB,SAAST,IAInC,SAASkL,GAAsB/L,EAAKa,EAAK6C,GACrC,GAAc,GAAVA,EACA,IAAK,IAAI/qE,EAAI,EAAGA,EAAIqnE,EAAIoF,QAASzsE,IAC7BqnE,EAAIwG,MAAM3F,GAAKloE,GAAKqnE,EAAIqG,MAAMxF,GAAKloE,GACnCqnE,EAAIqG,MAAMxF,GAAKloE,GAAK,EAKhC,SAASqzE,GAAsBhM,EAAKa,GAChC,IAAK,IAAIloE,EAAI,EAAGA,EAAIqnE,EAAI6F,QAASltE,IAC7BqnE,EAAImL,KAAKtK,GAAKloE,GAAKqnE,EAAIkL,KAAKrK,GAAKloE,GACjCqnE,EAAIkL,KAAKrK,GAAKloE,GAAK,EAI3B,SAASszE,GAAyBjM,EAAK//D,EAAK2nE,EAAKI,GAC7C,IAAIC,EAAiB7F,EAAI5pE,OAAS,EAC9BG,EAAI,EACJD,EAAIkvE,EAAIjvE,GAAKivE,EAAIjvE,EAAI,GAEzB,GADAugE,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACT,IAAIrC,EAAI4J,EAAItH,GACRtC,EAAI4J,EAAItH,EAAI,KACZtC,EAAI4J,EAAItH,EAAI,IAChBugE,EAAQ8G,EAAIiG,WAAWttE,GAAKqnE,EAAIiG,WAAWttE,EAAI,GAAK,EAAK,GACzDD,EAAI,IAAY,EAAJrC,EAAUqC,IACfA,GAAKsnE,EAAIiG,WAAWttE,GAAKqnE,EAAIiG,WAAWttE,EAAI,GAAK,IACxD,IAAI85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAGlB,IAAKA,EAAI,EAAGA,EAAIqnE,EAAIoF,QAAU,EAAGzsE,IAI7B,GAHAD,EAAIkvE,EAAIjvE,EAAI,GAAKivE,EAAIjvE,GAAKivE,EAAIjvE,EAAI,GAClCugE,EAAOvgE,EAAI,EAAIqnE,EAAIoF,SACnBlM,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACLrC,EAAI4J,EAAItH,EAAI,GACZtC,EAAI4J,EAAItH,KACRtC,EAAI4J,EAAItH,IACRtC,EAAI4J,EAAItH,EAAI,KACZtC,EAAI4J,EAAItH,EAAI,IAChBugE,EAAQ8G,EAAIiG,WAAWttE,EAAI,GAAKqnE,EAAIiG,WAAWttE,GAAKqnE,EAAIiG,WAAWttE,EAAI,GAAK,EAAK,GACjFD,EAAI,IACO,EAAJrC,EAAUqC,IACVA,GAAKsnE,EAAIiG,WAAWttE,EAAI,GAAKqnE,EAAIiG,WAAWttE,GAC7CqnE,EAAIiG,WAAWttE,EAAI,GAAK,IAC1B85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAQtB,GALAugE,EAAOvgE,EAAI,GACXugE,EAAOvgE,GAAKqnE,EAAIoF,QAAU,GAE1B1sE,EAAIkvE,EAAIjvE,EAAI,GAAKivE,EAAIjvE,GACrBugE,EAAOxgE,GAAK,GACRA,EAAI,EAAK,CACLrC,EAAI4J,EAAItH,EAAI,GACZtC,EAAI4J,EAAItH,KACRtC,EAAI4J,EAAItH,IACZugE,EAAQ8G,EAAIiG,WAAWttE,EAAI,GAAKqnE,EAAIiG,WAAWttE,GAAK,EAAK,GACzDD,EAAI,IAAY,EAAJrC,EAAUqC,IACfA,GAAKsnE,EAAIiG,WAAWttE,EAAI,GAAKqnE,EAAIiG,WAAWttE,GAAK,IACpD85D,EAAI,EAAI/5D,EACR+5D,EAAIwV,IACJxV,EAAIwV,GACRD,EAASrvE,GAAK85D,OAEduV,EAASrvE,GAAK,EAElBugE,EAAOvgE,GAAMqnE,EAAIoF,QAAU,GAG/B,SAAS8G,GAAyB7L,EAAKE,EAAauE,EAAIC,EAAKlE,EAAK6C,GAC9D,IAEIztE,EAAGkzB,EAAGxwB,EAFNqnE,EAAMK,EAAIU,eACV9gE,EAAM,IAAIksE,MAAMxN,EAAQ8H,QAASmB,EAAM9Q,EAAU6H,EAAQ8H,QAEzD0C,EAAa,IAAIiD,IAAIzN,EAAQ8H,QAEjC,IAAK9tE,EAAIwwB,EAAI,EAAGxwB,EAAIqnE,EAAIoF,UAAWzsE,EAAG,CAClC,IAAIqtE,EAAM,EAAG3vE,EAAI,EACbqB,EAAIsoE,EAAIiG,WAAWttE,GACvB,IAAK1C,EAAI,EAAGA,EAAIyB,IAAKzB,IAAKkzB,EAAG,CACzB,IAAIhB,EAAKo4C,EAAYmD,GAAQv6C,GAC7B68C,GAAO79C,EACH9xB,EAAI8xB,IACJ9xB,EAAI8xB,GAEZ28C,EAAGnsE,GAAKqtE,EACR9M,EAAO8M,GAAO,GACd/lE,EAAItH,GAAKtC,EACT6iE,EAAOxhE,EAAI,GACXkwE,EAAIjvE,GAAKqtE,EAAMtuE,EACfwhE,EAAO0O,EAAIjvE,IAAM,GAIrB,IAFAugE,EAAOvgE,GAAKqnE,EAAIoF,SAChBlM,EAAY,KAAL/vC,GACAxwB,EAAIgmE,EAAQ8H,SAAU9tE,EACzBsH,EAAItH,GAAK,EACTivE,EAAIjvE,GAAK,EAGb,IADAszE,GAAyBjM,EAAK//D,EAAK2nE,EAAKuB,GACnChgD,EAAIxwB,EAAI,EAAGA,EAAIqnE,EAAIoF,QAASzsE,IAAK,CAClC,IAEI0zE,EAAIC,EACJpZ,EAAGiT,EAAKoG,EAHR3J,EAAK5C,EAAIkG,QAAQvtE,GAAG,GACpB4gB,EAAOymD,EAAIkG,QAAQvtE,GAAG,GAG1B0zE,EAAKlD,EAAWvG,GAChB0J,EAAO,EACPnG,EAAMnG,EAAIoG,MAAMj9C,GAAK27C,EAAGlC,GAAMR,EAAI+G,EAAWvG,MAC3Cz5C,IACAy5C,EACF,MAAOA,GAAMrpD,EACT8yD,GAAMlD,EAAWvG,GACjB0J,GAAQ,EACRpZ,EAAI8M,EAAIoG,MAAMj9C,GAAK27C,EAAGlC,GAAMR,EAAI+G,EAAWvG,IAC3CuD,EAAMhD,EAAgBgD,EAAKjT,EAAG0P,EAAKjqE,KACjCwwB,IACAy5C,EAENyJ,GAAM,EAAI,EAAIA,IAAO,EAAIC,GACzBC,EAAqB,GAAVnK,EAAIiK,GACflG,GAAOoG,EACPxH,EAAIpsE,GAAKwtE,EACTnG,EAAIwG,MAAM3F,GAAKloE,GAAKqnE,EAAIqG,MAAMxF,GAAKloE,GACnCqnE,EAAIqG,MAAMxF,GAAKloE,GAAKwtE,EAQhBjT,EAAIjzD,EAAItH,GACRu6D,GAAK8M,EAAIwM,SAAS7zE,GAClBu6D,GAAKqZ,EACDxH,EAAIpsE,GAAKu6D,IACT6R,EAAIpsE,GAAKu6D,GAGb8M,EAAIsH,cAAgB,IACpBvC,EAAIpsE,IAAMqnE,EAAIsH,eAEdvC,EAAIpsE,GAAKmsE,EAAGnsE,KACZosE,EAAIpsE,GAAKmsE,EAAGnsE,IAEZqnE,EAAIsH,cAAgB,IACpBvC,EAAIpsE,IAAMqnE,EAAIsH,eAGlBpO,EAAO6L,EAAIpsE,IAAM,GAErB,KAAOA,EAAIgmE,EAAQ8H,SAAU9tE,EACzBmsE,EAAGnsE,GAAK,EACRosE,EAAIpsE,GAAK,EAIjB,SAAS8zE,GAAyBzM,EAAKM,EAAWyI,EAAMhE,EAAKlE,GACzD,IAEIloE,EAFAsH,EAAM62D,EAAU6H,EAAQ8H,QAASmB,EAAM9Q,EAAU6H,EAAQ8H,QACzDyC,EAAatS,EAAQ+H,EAAQ8H,OAAS,GAM1CkB,GAAY3H,EAAKM,EAAWyI,EAAM9oE,EAAK2nE,GACvCG,GAAkB/H,EAAK//D,EAAK2nE,EAAKsB,GAMjC,IAAIzW,EAAI,EACR,IAAK95D,EAAI,EAAGA,EAAIqnE,EAAI6F,QAASltE,IAAK,CAC9B,IAAIu6D,EAAGiT,EAAKoG,EAAUp1E,EAElByrE,EAAK5C,EAAI+K,MAAMpyE,GAAG,GAClB4gB,EAAOymD,EAAI+K,MAAMpyE,GAAG,GACpB0zE,EAAK,EAAGC,EAAO,EACnBD,EAAKnD,EAAWtG,GAChB0J,GAAQ,EACRnG,EAAMnG,EAAIiL,MAAMxY,GAAKsW,EAAKnG,GAAMR,EAAI8G,EAAWtG,MAC7CnQ,IACAmQ,EACF,MAAOA,GAAMrpD,EACT8yD,GAAMnD,EAAWtG,GACjB0J,GAAQ,EACRpZ,EAAI8M,EAAIiL,MAAMxY,GAAKsW,EAAKnG,GAAMR,EAAI8G,EAAWtG,IAC7CzrE,EAAIgsE,EAAgBgD,EAAKjT,EAAG0P,EAAKjqE,GACjCwtE,EAAMhvE,IACJs7D,IACAmQ,EAoBN,GAlBAyJ,GAAM,EAAI,EAAIA,IAAO,EAAIC,GACzBC,EAAqB,GAAVnK,EAAIiK,GACflG,GAAOoG,EAgBHvM,EAAIsG,cAAoB,EAANzF,IAAelC,EAAQ4H,WAAY,CACrD,IAAImG,EAAY3N,EAASiB,EAAIkL,KAAKrK,GAAKloE,GAEnCosE,EAAIpsE,GADJ+zE,EAAY,EACHxsE,KAAKC,IAAIgmE,EAAKuG,GAadxsE,KAAKC,IAAIgmE,EAAK4C,EAAKpwE,GAAK8mE,OAElC,CACH,IAAIkN,EAAc3N,EAAUgB,EAAImL,KAAKtK,GAAKloE,GACtCi0E,EAAc7N,EAASiB,EAAIkL,KAAKrK,GAAKloE,GAErCg0E,GAAe,IACfA,EAAcxG,GAEdyG,GAAe,IACfA,EAAczG,GAGduG,EADA1M,EAAIsG,cAAoB,EAANzF,IAAelC,EAAQoI,UAC7B7mE,KAAKC,IAAIysE,EAAaD,GAEtBC,EAEhB7H,EAAIpsE,GAAKuH,KAAKC,IAAIgmE,EAAKuG,GAE3B1M,EAAImL,KAAKtK,GAAKloE,GAAKqnE,EAAIkL,KAAKrK,GAAKloE,GACjCqnE,EAAIkL,KAAKrK,GAAKloE,GAAKwtE,EAQfjT,EAAIjzD,EAAItH,GACRu6D,GAAK8M,EAAI6M,SAASl0E,GAClBu6D,GAAKqZ,EACDxH,EAAIpsE,GAAKu6D,IACT6R,EAAIpsE,GAAKu6D,GAGb8M,EAAIsH,cAAgB,IACpBvC,EAAIpsE,IAAMqnE,EAAIsH,eAEdvC,EAAIpsE,GAAKowE,EAAKpwE,KACdosE,EAAIpsE,GAAKowE,EAAKpwE,IAEdqnE,EAAIsH,cAAgB,IACpBvC,EAAIpsE,IAAMqnE,EAAIsH,eAElBpO,EAAO6L,EAAIpsE,IAAM,GAErB,KAAOA,EAAIgmE,EAAQ8H,SAAU9tE,EACzBowE,EAAKpwE,GAAK,EACVosE,EAAIpsE,GAAK,EAIjB,SAASm0E,GAA0BzM,EAAKsG,GACpC,IAAI3G,EAAMK,EAAIU,eAEVV,EAAIyG,cAAgB/O,EAAWO,qBAIP,GAAnBqO,EAAa,IAA8B,GAAnBA,EAAa,KAC1CA,EAAa,GAAKA,EAAa,GAAK,GAExC,IAAK,IAAI9F,EAAM,EAAGA,EAAMb,EAAIqD,aAAcxC,IAElCR,EAAIyG,cAAgB/O,EAAWQ,wBAC/BoO,EAAa9F,GAAO,GAEpBR,EAAIyG,cAAgB/O,EAAWS,qBAC/BmO,EAAa9F,GAAO,GAKhC,SAASkM,GAAwB1M,EAAKsG,EAAcC,GAOhD,IANA,IAAI5G,EAAMK,EAAIU,eAMLF,EAAM,EAAGA,EAAMb,EAAIqD,aAAcxC,IAAO,CAC7C,IAAIgG,EAAYlI,EAAQoI,UAGC,GAArBJ,EAAa9F,IAEb3H,EAAO8G,EAAIsG,cAAczF,IAAQlC,EAAQqI,YACrChH,EAAIsG,cAAczF,IAAQlC,EAAQ4H,aAClCM,EAAYlI,EAAQsI,aAGxBJ,EAAYlI,EAAQ4H,WAChBvG,EAAIsG,cAAczF,IAAQlC,EAAQoI,YAClC/G,EAAIsG,cAAczF,GAAOlC,EAAQqI,YAEjChH,EAAIsG,cAAczF,IAAQlC,EAAQsI,YAClCjH,EAAIsG,cAAczF,GAAOlC,EAAQ4H,aAGzCK,EAAY/F,GAAOb,EAAIsG,cAAczF,GAErCb,EAAIsG,cAAczF,GAAOgG,GAQjC,SAASmG,GAA6BlI,EAAIC,EAAKkI,EAAQC,EAAQ9I,EAAWD,EAAOzsE,GAI7E,IAHA,IAEIssE,EAAOD,EAFPM,EAAiB,EAARF,EACTG,EAAWH,EAAQ,EAAIjkE,KAAK4wD,IAAI,GAAIsT,GAAa,EAE5CzrE,EAAI,EAAGA,EAAIjB,IAAKiB,EAAG,CACxB,IAAIw0E,EAAMrI,EAAG,GAAGnsE,GACZy0E,EAAMtI,EAAG,GAAGnsE,GACZ00E,EAAOtI,EAAI,GAAGpsE,GACd20E,EAAOvI,EAAI,GAAGpsE,GACd+rE,EAAOK,EAAI,GAAGpsE,GACdgsE,EAAOI,EAAI,GAAGpsE,GAGlB,GAAI00E,GAAQ,KAAOC,GAAQA,GAAQ,KAAOD,EAAM,CAC5C,IAAIE,EAAQN,EAAOt0E,GAAKy0E,EACpBnJ,EAAQgJ,EAAOt0E,GAAKw0E,EACxBpJ,EAAO7jE,KAAKD,IAAIykE,EAAMxkE,KAAKC,IAAIwkE,EAAM4I,IACrCvJ,EAAQ9jE,KAAKD,IAAI0kE,EAAMzkE,KAAKC,IAAIukE,EAAMT,SAEtCF,EAAOW,EACPV,EAAQW,EAEZ,GAAIR,EAAQ,EAAG,CAKX,IAAIM,EAAO+I,EACPjJ,EAAM2I,EAAOv0E,GAAK2rE,EAKtB,GAJAG,EAAQvkE,KAAKC,IAAID,KAAKD,IAAIotE,EAAM9I,GAAMrkE,KAAKD,IAAIqtE,EAAM/I,IACrDG,EAAOxkE,KAAKD,IAAI8jE,EAAMQ,GACtBI,EAAOzkE,KAAKD,IAAI+jE,EAAOO,GACvBiJ,EAAQ9I,EAAOC,EACX6I,EAAQ,GAAM/I,EAAQJ,EAAUmJ,EAAO,CACvC,IAAI1zE,EAAI2qE,EAAQJ,EAASmJ,EACzB9I,GAAQ5qE,EACR6qE,GAAQ7qE,EACRo/D,EAAOsU,EAAQ,GAEnBzJ,EAAO7jE,KAAKC,IAAIukE,EAAMX,GACtBC,EAAQ9jE,KAAKC,IAAIwkE,EAAMX,GAEvBD,EAAOoJ,IACPpJ,EAAOoJ,GAEPnJ,EAAQoJ,IACRpJ,EAAQoJ,GAEZrI,EAAI,GAAGpsE,GAAKorE,EACZgB,EAAI,GAAGpsE,GAAKqrE,GAmMpB,SAASyJ,GAAUC,EAAMC,GACrB,IAAkBC,EAAdC,EAAQH,EAOZ,OAJIE,EADAC,GAAS,EACQ,IAARA,EAEDA,EAAQF,EAEhBC,IAAU,GACH,EAEJ1tE,KAAK4tE,IAAIF,EAAQhO,GAG5B,SAASmO,GAAeJ,GACpB,IAAIK,EAAQ,EAAGC,EAAQ,EAEf/a,EAAI,EACR,IAAKA,EAAI,EAAGua,GAAUva,EAAGya,GAAY,MAAOza,GAAK,GAEjDh9D,EAAIg9D,EACJlrB,EAAI,EACJ,MAAO9nC,KAAK6vD,IAAI/nB,EAAI9xC,GAAK,MACrBg9D,GAAKlrB,EAAI9xC,GAAK,EACVu3E,GAAUva,EAAGya,GAAY,EACzB3lC,EAAIkrB,EAEJh9D,EAAIg9D,EAGZ8a,EAAQ93E,EAGR,IAAWA,EAAG8xC,EAAVkrB,EAAI,EACR,IAAKA,EAAI,EAAGua,GAAUva,EAAGya,GAAY,MAAOza,GAAK,GAEjDh9D,EAAI,EACJ8xC,EAAIkrB,EACJ,MAAOhzD,KAAK6vD,IAAI/nB,EAAI9xC,GAAK,MACrBg9D,GAAKlrB,EAAI9xC,GAAK,EACVu3E,GAAUva,EAAGya,GAAY,EACzBz3E,EAAIg9D,EAEJlrB,EAAIkrB,EAGZ+a,EAAQjmC,EAGR,IAEI/xC,EAFAmoE,EAAM,EACN/nE,EAAI,IAER,IAAKJ,EAAI,EAAGA,GAAKI,IAAKJ,EAAG,CACjBi9D,EAAI8a,EAAQ/3E,GAAKg4E,EAAQD,GAAS33E,EAAtC,IACI45D,EAAIwd,GAAUva,EAAGya,GACrBvP,GAAOnO,EAGP,IAAIie,GAAQ73E,EAAI,IAAM+nE,GAAO6P,EAAQD,IAErC,OAAOE,EAQnB,SAASC,GAAQT,GACb,IAAIG,EAAO3a,EAAG0a,EAAOp1B,EAgBrB,OAfAq1B,EAAQH,EAEJG,GADAA,GAAS,EACA,EAEA,IAETA,GAAS,IAAOA,GAAS,KACzBr1B,EAAOq1B,EAAQ,GACf3a,EAAI,GAAO1a,EAAOA,EAAO,EAAMA,IAE/B0a,EAAI,EACR2a,GAAS,KACTD,EAAQ,UAAY,IAAMC,EAAQ,KAC5B3tE,KAAKkuE,KAAK,EAAMP,EAAQA,GAE1BD,IAAU,GACH,GAEXC,EAAQ3tE,KAAK4tE,KAAK5a,EAAI0a,GAAShO,GAY/BiO,GAAS,SACFA,GAMX,SAASQ,GAAUC,GAKf,OAHIA,EAAO,IACPA,EAAO,GACXA,GAAc,KACP,GAAOpuE,KAAKquE,KAAK,IAAMD,GAAQ,IAChCpuE,KAAKquE,KAAKD,EAAOA,EAAO,OAGlC,SAASE,GAAaC,EAAUC,EAAIC,EAAIC,EAAMC,EAAYjL,EAAKkL,EAAMC,EAAOC,EAASC,EAAUC,EAAWC,GACtG,IAGIl5E,EAHAm5E,EAAQtY,EAAU6H,EAAQ8H,OAAS,GACnC4I,EAAmBN,GAASI,EAAQ,GAAK,KAAU,KACnDG,EAAY1Y,EAAQ+H,EAAQ0C,UAEhC0N,GAASC,EACT,IAAI7lD,EAAI,EACJomD,EAAK,EAGT,IAAKt5E,EAAI,EAAGA,EAAI0oE,EAAQ8H,OAAQxwE,IAAK,CACjC,IACIu5E,EAKJ,IAJAC,EAAQpB,GAAUU,EAAQ5lD,GAE1BimD,EAAMn5E,GAAK84E,EAAQ5lD,EAEdqmD,EAAKrmD,EAAGklD,GAAUU,EAAQS,GAAMC,EAAQtQ,GAC1CqQ,GAAMR,EAAU,EAAGQ,KAGtBf,EAASx4E,GAAKu5E,EAAKrmD,EACnBomD,EAAKt5E,EAAI,EAET,MAAOkzB,EAAIqmD,EACPtW,EAAO/vC,EAAIw1C,EAAQ0C,UACnBiO,EAAUnmD,KAAOlzB,EAErB,GAAIkzB,EAAI6lD,EAAU,EAAG,CACjB7lD,EAAI6lD,EAAU,IACZ/4E,EACF,OAGRijE,EAAOjjE,EAAI0oE,EAAQ8H,QACnB2I,EAAMn5E,GAAK84E,EAAQ5lD,EAEnB,IAAK,IAAIumD,EAAM,EAAGA,EAAMP,EAAOO,IAAO,CAClC,IAAIC,EAAIC,EAAI1oE,EAAO0xB,EACfgC,EACJ1zB,EAAQ+nE,EAASS,GACjB92C,EAAMq2C,EAASS,EAAM,GAErBC,EAAK,EAAIzvE,KAAK6E,MAAM,GAAKmqE,GAAahoE,EAAQ,KAC1CyoE,EAAK,IACLA,EAAK,GACTC,EAAK,EAAI1vE,KAAK6E,MAAM,GAAKmqE,GAAat2C,EAAM,KAExCg3C,EAAKZ,EAAU,IACfY,EAAKZ,EAAU,GAEnBL,EAAGe,IAAQJ,EAAUK,GAAML,EAAUM,IAAO,EAC5ClB,EAAGgB,GAAOJ,EAAUM,GACpB,IAAIC,EAAQR,EAAmBz2C,EAK/Bk2C,EAAKY,IAAQG,EAAQT,EAAMV,EAAGgB,MACvBN,EAAMV,EAAGgB,GAAO,GAAKN,EAAMV,EAAGgB,KACjCZ,EAAKY,GAAO,EACZZ,EAAKY,GAAO,EAERZ,EAAKY,GAAO,IACZZ,EAAKY,GAAO,GAKpB90C,EAAMyzC,GAAUU,EAAQE,EAASS,GAAOR,GACxCt0C,EAAQ16B,KAAKC,IAAIy6B,EAAK,MAAQ,KAE9BgpC,EAAI8L,GAAOxvE,KAAK4wD,IAAI,GAChB,MAAQ,EAAI5wD,KAAK4vE,IAAI5vE,KAAK6vE,GAAKn1C,IAAQ,KAI/CzR,EAAI,EACJ,IAAK,IAAIspC,EAAI,EAAGA,EAAI8c,EAAI9c,IAAK,CACzB,IACIgd,EAAOO,EADPne,EAAI4c,EAAShc,GAGjBgd,EAAQpB,GAAUU,EAAQ,GAC1BiB,EAAQ3B,GAAUU,GAAS5lD,EAAI0oC,EAAI,IACnC+c,EAAKnc,GAAK,IAAMgd,EAAQO,GAExBP,EAAQpB,GAAUU,GAAS5lD,EAAI,KAC/B6mD,EAAQ3B,GAAUU,GAAS5lD,EAAI0oC,EAAI,KACnCgd,EAAWpc,GAAKud,EAAQP,EACxBtmD,GAAK0oC,EAGT,OAAO0d,EAGX,SAASU,GAAelF,EAAOmF,EAAOtB,EAAMC,EAAYX,EAAMiC,GAC1D,IAMIhnD,EANAinD,EAAKlZ,EAAY,CAACyH,EAAQ8H,OAAQ9H,EAAQ8H,SAO1C4J,EAAmB,EAWvB,GAAIF,EACA,IAAK,IAAIl6E,EAAI,EAAGA,EAAIi6E,EAAOj6E,IACvB,IAAKkzB,EAAI,EAAGA,EAAI+mD,EAAO/mD,IAAK,CACxB,IAAIhlB,EAAIgqE,GAAQS,EAAK34E,GAAK24E,EAAKzlD,IAAM0lD,EAAW1lD,GAChDinD,EAAGn6E,GAAGkzB,GAAKhlB,EAAI+pE,EAAKj4E,QAI5B,IAAKkzB,EAAI,EAAGA,EAAI+mD,EAAO/mD,IACnB,KAAIwkD,EAAW,GAAKztE,KAAKC,IAAI,GAAKyuE,EAAKzlD,GAAI,IACvCmnD,EAAYvC,GAAeJ,GAC/B,IAAS13E,EAAI,EAAGA,EAAIi6E,EAAOj6E,IAAK,CACxBkO,EAAImsE,EACF7C,GAAUmB,EAAK34E,GAAK24E,EAAKzlD,GAAIwkD,GAC7BkB,EAAW1lD,GACjBinD,EAAGn6E,GAAGkzB,GAAKhlB,EAAI+pE,EAAKj4E,IAIhC,IAASA,EAAI,EAAGA,EAAIi6E,EAAOj6E,IAAK,CAC5B,IAAKkzB,EAAI,EAAGA,EAAI+mD,EAAO/mD,IACnB,GAAIinD,EAAGn6E,GAAGkzB,GAAK,EACX,MAIR,IAFA4hD,EAAM90E,GAAG,GAAKkzB,EAETA,EAAI+mD,EAAQ,EAAG/mD,EAAI,EAAGA,IACvB,GAAIinD,EAAGn6E,GAAGkzB,GAAK,EACX,MAER4hD,EAAM90E,GAAG,GAAKkzB,EACdknD,GAAqBtF,EAAM90E,GAAG,GAAK80E,EAAM90E,GAAG,GAAK,EAGrD,IAAI8B,EAAI++D,EAAUuZ,GACd5d,EAAI,EACR,IAASx8D,EAAI,EAAGA,EAAIi6E,EAAOj6E,IACvB,IAAKkzB,EAAI4hD,EAAM90E,GAAG,GAAIkzB,GAAK4hD,EAAM90E,GAAG,GAAIkzB,IACpCpxB,EAAE06D,KAAO2d,EAAGn6E,GAAGkzB,GAEvB,OAAOpxB,EAGX,SAASw4E,GAAcz2E,GAGnB,IAAI8gC,EAAMyzC,GAAUv0E,GAGpB,OAFA8gC,EAAO16B,KAAKC,IAAIy6B,EAAK,MAAQ,KAEtB16B,KAAK4wD,IAAI,GACZ,MAAQ,EAAI5wD,KAAK4vE,IAAI5vE,KAAK6vE,GAAKn1C,IAAQ,KA0S/C,SAAS41C,GAAc12E,EAAG5C,GA6BlB4C,GAAK,KACLA,EAAI,MAGRA,GAAK,IACLA,EAAIoG,KAAKD,IAAI,GAAKnG,GAClB,IAAIyqE,EAAM,KAAQrkE,KAAK4wD,IAAIh3D,GAAI,IAAO,IAChCoG,KAAK4tE,KAAK,GAAM5tE,KAAK4wD,IAAIh3D,EAAI,IAAK,IAAQ,EAC1CoG,KAAK4tE,KAAK,IAAO5tE,KAAK4wD,IAAIh3D,EAAI,IAAK,IACZ,MAAtB,GAAM,IAAO5C,GAAiBgJ,KAAK4wD,IAAIh3D,EAAG,GACjD,OAAOyqE,EAxyBX/qE,KAAKi3E,kBAAoB,SAAUpQ,EAAKz9D,EAAQk+D,EAAQF,EAAQ2H,EAAeC,EAAkBC,EAAgBC,EAAmB3I,EAAQ6G,GACxI,IAGIpG,EACAE,EAJAV,EAAMK,EAAIU,eAKVT,EAAYxJ,EAAU6H,EAAQ0C,UAC9Bd,EAAcrJ,EAAY,CAAC,EAAGyH,EAAQwL,aACtCtB,EAAU3R,EAAY,CAAC,EAAGyH,EAAQU,UAClCyJ,EAAU5R,EAAY,CAAC,EAAG,EAAGyH,EAAQuC,YACrC4D,EAAK5N,EAAY,CAAC,EAAGyH,EAAQ8H,SAAU1B,EAAM7N,EAAY,CAAC,EAAGyH,EAAQ8H,SACrEkF,EAAmBzU,EAAY,CAAC,EAAG,IACnC0R,EAAS,GAGTsB,EAAa,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GACpD,CAAC,EAAG,EAAG,EAAG,IACVvD,EAAe/P,EAAQ,GAKvBiV,EAAaxL,EAAIjpE,MAAQiyE,SAASC,aAAgB,EAChDtJ,EAAIqD,aAEVqI,GAAwBrL,EAAKz9D,EAAQk+D,EAAQF,EAAQ2H,EACjDC,EAAkBzI,EAAQ4L,EAAkBzB,EAC5CvD,GAEJmG,GAA0BzM,EAAKsG,GAI3B,IAAK,IAAI9F,EAAM,EAAGA,EAAMgL,EAAWhL,IAAO,CACtC,IAAI6P,EAAa,EAAN7P,EACXL,EAAUqI,EACVV,GAAqB9H,EAAKz9D,EAAQk+D,EAAQD,EAAKD,EAC3CN,EAAWE,EAASkQ,GAExBrI,GAAwChI,EAAKO,EAAQC,EACjDP,GAEsB,GAAtBqG,EAAa+J,GACbjE,GAAyBzM,EAAKM,EAAWwE,EAAGjE,GAAMkE,EAAIlE,GAClDA,GAEJmL,GAAsBhM,EAAKa,GAG9B8F,EAAa,GAAKA,EAAa,IAAO,GAEnCtG,EAAIjpE,MAAQiyE,SAASC,cACrB0D,GAA6BlI,EAAIC,EAAK/E,EAAI2Q,SACtC3Q,EAAIE,IAAI+C,KAAM5C,EAAIiL,SAAWtL,EAAIE,IAAI8C,OACrC3C,EAAI8D,MAAOnE,EAAI6F,SAI3B,IAAShF,EAAM,EAAGA,EAAMgL,EAAWhL,IAAO,CAClC6P,EAAa,EAAN7P,EACe,GAAtB8F,EAAa+J,IACbhL,EAA6B1F,EAAK8E,EAAGjE,GAAMkE,EAAIlE,GAAMA,GAO7D,IAAK,IAAI6C,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACvC,IAAS7C,EAAM,EAAGA,EAAMgL,IAAahL,EAAK,CAClC6P,EAAa,EAAN7P,EAEe,GAAtB8F,EAAa+J,GACb3E,GAAsB/L,EAAKa,EAAK6C,IAGhChD,EAAUoI,EACVV,GAAqB/H,EAAKz9D,EAAQk+D,EAAQD,EAAK6C,EAC3CnD,EAAaG,EAASgQ,GAC1BxE,GAAyB7L,EAAKE,EAAauE,EAAGjE,GAC1CkE,EAAIlE,GAAMA,EAAK6C,IAGtBiD,EAAa,GAAKA,EAAa,IAAO,GAEnCtG,EAAIjpE,MAAQiyE,SAASC,cACrB0D,GAA6BlI,EAAIC,EAAK/E,EAAI4Q,SACtC5Q,EAAIE,IAAI6C,KAAM1C,EAAIiL,SAAWtL,EAAIE,IAAI8C,OACrC3C,EAAI8D,MAAOnE,EAAIoF,SAK3B,IAASvE,EAAM,EAAGA,EAAMgL,IAAahL,EAAK,CAClC6P,EAAa,EAAN7P,EACP,GAAK8F,EAAa+J,IAClB7L,EAA6B7E,EAAK8E,EAAGjE,GAAMkE,EAAIlE,GAC3CA,EAAK6C,IAMrB,IAAS7C,EAAM,EAAGA,EAAMgL,EAAWhL,IAAO,CAClC6P,EAAa,EAAN7P,EAEX,GAA0B,GAAtB8F,EAAa+J,GAGjB,IAAK,IAAIpN,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IAAM,CACzC,IAAIuN,EAAW/Z,EAAU,GACzB,IAAS4M,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACvC,IAAIuB,EAAOjF,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAG9B,GAFAuB,GAAQ1F,EAEJ2K,EAAWrJ,GAAK6C,IAAW,GACO,GAA/BwG,EAAWrJ,GAAK6C,EAAS,GAAS,CACrC,IAAIoH,EAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,EAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,GAAM7F,EACvCzF,EAAkBoJ,GACtB3D,EAAO/kE,KAAKC,IAAI8kE,EAAMltE,QACnB,GAA+B,GAA3BmyE,EAAWrJ,GAAK6C,GAAc,CACjCoH,EAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,EAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,GAAM7F,EACvCxF,EAAkBmJ,GACtB3D,EAAO/kE,KAAKC,IAAI8kE,EAAMltE,QACnB,GAAe,GAAV2rE,GAA8C,GAA/BwG,EAAWrJ,GAAK6C,EAAS,IAClC,GAAVA,GAA6C,GAA9B1D,EAAIoK,MAAMS,YAAYhK,GAAY,CACjDiK,EAAiB,GAAVpH,EAAeA,EAAS,EAAI,EACnC3rE,EAAImvE,EAAUlH,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAIwH,GAAM7F,EACvCxF,EAAkBmJ,GACtB3D,EAAO/kE,KAAKC,IAAI8kE,EAAMltE,GAI1BktE,GAAQ0G,EAAiB9K,GAAK6C,GAE9BmN,EAASnN,GAAUuB,EAEvB,IAASvB,EAAS,EAAGA,EAAS,EAAGA,IAC7B1D,EAAIwD,IAAI3C,GAAK7oE,EAAEsrE,GAAII,GAAUmN,EAASnN,IAKtD,IAAS7C,EAAM,EAAGA,EAAMgL,EAAWhL,IAC/Bb,EAAIoK,MAAMS,YAAYhK,GAAOqJ,EAAWrJ,GAAK,GAMjDkM,GAAwB1M,EAAKsG,EAAcC,GAK3C,IAAS/F,EAAM,EAAGA,EAAMgL,EAAWhL,IAAO,CACtC,IAAI0K,EACAC,EACAj5D,EACA80D,EAEAxG,EAAM,GACN0K,EAAM7C,EACN8C,GAAU,EACVj5D,EAAOosD,EAAQoI,UACXH,EAAY,IAAMjI,EAAQ4H,YACvBK,EAAY,IAAMjI,EAAQ4H,aAC7Bh0D,EAAOosD,EAAQ4H,YACnBc,EAAKmB,EAAiB5H,GAAQC,EAAM,KAEpC0K,EAAM9C,EACN+C,EAAS,EACTj5D,EAAOq0D,EAAY/F,GACnBwG,EAAKkB,EAAc3H,GAAQC,IAG3BtuD,GAAQosD,EAAQ4H,WAChBgF,EAAIC,EAAS3K,GAAOuG,EAASC,EAAIrH,EAAIsH,eAErCiE,EAAIC,EAAS3K,GAAO4G,GAASJ,EAAIrH,EAAIsH,eAGrCjH,EAAIkB,WACJvB,EAAIwB,MAAME,GAAGd,GAAQC,GAAO0K,EAAIC,EAAS3K,IAGjD,OAAO,GAmSXrnE,KAAKs3E,cAAgB,SAAUzQ,GAC3B,IACIpqE,EADA+pE,EAAMK,EAAIU,eAEVgQ,GAAW,EACXC,EAAQ,GAAIC,EAAQ,GACpBC,EAAU,EAAGC,EAAU,EACvBC,GAAW,KAAMC,GAAW,IAC5BzC,EAAO9X,EAAU6H,EAAQ8H,QACzBoI,EAAa/X,EAAU6H,EAAQ8H,QAC/ByH,EAAOpX,EAAU6H,EAAQ8H,QACzBsI,EAAQ1O,EAAIiR,eAEhB,OAAQjR,EAAIkR,eACR,QACA,KAAK,EACDR,GAAW,EACX,MACJ,KAAK,EACDA,EAAY1Q,EAAIkJ,KAAO7Q,EAAQM,UAAYqH,EAAIkJ,KAAO7Q,EAAQG,OAE9D,MACJ,KAAK,EACDkY,GAAW,EACX,MACJ,KAAK,EACDC,EAAQ,EACRE,GAAW,KACXC,GAAW,MACXC,GAAW,KACXC,GAAW,KACX,MAMR,IAJArR,EAAIwR,kBAAoB,IACxBxR,EAAIsG,cAAc,GAAKtG,EAAIsG,cAAc,GAAK3H,EAAQoI,UAGjD9wE,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACpB,IAAK,IAAIkzB,EAAI,EAAGA,EAAIw1C,EAAQ8H,SAAUt9C,EAClC62C,EAAIkL,KAAKj1E,GAAGkzB,GAAK,KACjB62C,EAAImL,KAAKl1E,GAAGkzB,GAAK,KACjB62C,EAAIqG,MAAMpwE,GAAGkzB,GAAK62C,EAAIwG,MAAMvwE,GAAGkzB,GAAK,EAExC,IAAK,IAAIm6C,EAAK,EAAGA,EAAK3E,EAAQ4E,QAASD,IACnCtD,EAAI8D,GAAG7tE,GAAGC,EAAEotE,GAAM,KAClBtD,EAAIwD,IAAIvtE,GAAGC,EAAEotE,GAAM,KAEvB,IAASn6C,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAASm6C,EAAK,EAAGA,EAAK3E,EAAQ8E,QAASH,IACnCtD,EAAI8D,GAAG7tE,GAAG+B,EAAEsrE,GAAIn6C,GAAK,KACrB62C,EAAIwD,IAAIvtE,GAAG+B,EAAEsrE,GAAIn6C,GAAK,KAE1B62C,EAAIoK,MAAMS,YAAY50E,GAAK,EAE/B,IAASkzB,EAAI,EAAGA,EAAI,EAAGA,IACnB62C,EAAIoK,MAAMC,iBAAiBp0E,GAAGkzB,GAAK,GAiB3C,IAbA62C,EAAI6B,iBAAiB,GAAK7B,EAAI6B,iBAAiB,GAAK,EAOpD7B,EAAI6F,QAAU2I,GAAaxO,EAAI6H,WAAY7H,EAAI4F,KAAM5F,EAAIwE,KAAMoK,EAC3DC,EAAY7O,EAAI6D,MAAO7D,EAAIuF,IAAIO,YAAaiJ,EAC5CpQ,EAAQU,QAASW,EAAIyR,cAAcv7E,EAAGyoE,EAAQU,QAC5C,KAAaV,EAAQ4E,SAC3BrK,EAAO8G,EAAI6F,QAAUlH,EAAQ8H,QAExBxwE,EAAI,EAAGA,EAAI+pE,EAAI6F,QAAS5vE,IAAK,CAC9B,IAAIy7E,EAAMR,EACNtC,EAAK34E,IAAM+6E,IACXU,EAAMP,GAAWvC,EAAK34E,GAAK+6E,IAAUC,EAAQD,GAASE,GAC/CD,EAAQrC,EAAK34E,KAAOg7E,EAAQD,IAEvC9C,EAAKj4E,GAAKiK,KAAK4wD,IAAI,GAAM4gB,EAAM,IAC3B1R,EAAI6H,WAAW5xE,GAAK,EACpB+pE,EAAI8H,YAAY7xE,GAAK,EAAM+pE,EAAI6H,WAAW5xE,GAE1C+pE,EAAI8H,YAAY7xE,GAAK,EAG7B+pE,EAAIiL,MAAQgF,GAAejQ,EAAI+K,MAAO/K,EAAI6F,QAAS+I,EAAMC,EACrDX,EAAM6C,GAGV,IAkHQ5M,EAlHJh7C,EAAI,EACR,IAAKlzB,EAAI,EAAGA,EAAI+pE,EAAI6F,QAAS5vE,IAAK,CAI9Bi9D,EAAIuF,EAAME,UACV,IAAK,IAAIlG,EAAI,EAAGA,EAAIuN,EAAI6H,WAAW5xE,GAAIw8D,IAAKtpC,IAAK,CAC7C,IAAImlD,EAAOS,EAAQ5lD,GAAK,IAASw1C,EAAQU,SAKzCsS,EAAQn4E,KAAKo4E,WAAkB,IAAPtD,EAAajO,GAAO,GAE5CsR,EAAQzxE,KAAK4wD,IAAI,GAAK,GAAM6gB,GAE5BA,GAAS3R,EAAI6H,WAAW5xE,GACpBi9D,EAAIye,IACJze,EAAIye,GAEZ3R,EAAIE,IAAI+C,KAAKhtE,GAAKi9D,EAYlBA,EAAoB,GAAV0b,EAAK34E,GAAU,GAApB,GACDi9D,EAAI,IACJA,EAAI,KAEJA,GAAK,KACLA,GAAK,IAETA,GAAK,EACL8M,EAAI6M,SAAS52E,GAAMiK,KAAK4wD,IAAI,GAAMoC,EAAI,IAAO8M,EAAI6H,WAAW5xE,GAchE,IARA+pE,EAAIoF,QAAUoJ,GAAaxO,EAAIiG,WAAYjG,EAAImF,KAAMnF,EAAI4E,KAAMgK,EAC3DC,EAAY7O,EAAIiE,MAAOjE,EAAIuF,IAAIC,YAAauJ,EAC5CpQ,EAAQuC,UAAWlB,EAAIyR,cAAcz5E,EAAG2mE,EAAQuC,UAC9C,IAAavC,EAAQ8E,SAC3BvK,EAAO8G,EAAIoF,QAAUzG,EAAQ8H,QAG7Bt9C,EAAI,EACClzB,EAAI,EAAGA,EAAI+pE,EAAIoF,QAASnvE,IAAK,CAC9B,IAAIi9D,EACAwe,EAAMN,EACNxC,EAAK34E,IAAM+6E,IACXU,EAAML,GAAWzC,EAAK34E,GAAK+6E,IAAUC,EAAQD,GAASI,GAC/CH,EAAQrC,EAAK34E,KAAOg7E,EAAQD,IAEvC9C,EAAKj4E,GAAKiK,KAAK4wD,IAAI,GAAM4gB,EAAM,IAG/Bxe,EAAIuF,EAAME,UACV,IAASlG,EAAI,EAAGA,EAAIuN,EAAIiG,WAAWhwE,GAAIw8D,IAAKtpC,IAAK,CAC7C,IACIwoD,EADArD,EAAOS,EAAQ5lD,GAAK,IAASw1C,EAAQuC,WAOzCyQ,EAAQn4E,KAAKo4E,WAAkB,IAAPtD,EAAajO,GAAO,GAE5CsR,EAAQzxE,KAAK4wD,IAAI,GAAK,GAAM6gB,GAE5BA,GAAS3R,EAAIiG,WAAWhwE,GACpBi9D,EAAIye,IACJze,EAAIye,GAEZ3R,EAAIE,IAAI6C,KAAK9sE,GAAKi9D,EAOlBA,EAAsB,EAAV0b,EAAK34E,GAAW,GAAtB,EACF24E,EAAK34E,GAAK,KACVi9D,GAAK,EAAsB,IAAlBhzD,KAAKoiD,IAAI,EAAI4Q,IAEtB0b,EAAK34E,GAAK,KACVi9D,GAAK,EAAsB,IAAlBhzD,KAAKoiD,IAAI,EAAI4Q,IAEtBA,GAAK,KACLA,GAAK,IAETA,GAAK,EACL8M,EAAIwM,SAASv2E,GAAKiK,KAAK4wD,IAAI,GAAMoC,EAAI,IAC/B8M,EAAIiG,WAAWhwE,GAGzB+pE,EAAIoG,MAAQ6J,GAAejQ,EAAIkG,QAASlG,EAAIoF,QAASwJ,EAAMC,EACvDX,EAAM6C,GAEV1O,IACAxD,EAAIgT,SAAS7R,GAGbA,EAAI8R,MAAQ5xE,KAAK4tE,KAAK,EAAMhP,GACrBQ,EAA2ByP,EAAQ,MAItC5K,EAAQzE,EACuB,IAAN,EAApBW,EAAI0R,iBACL5N,EAAQ,GACRjkE,KAAK6vD,IAAIsQ,EAAI8D,OAAS,IACtBA,EAAQ9D,EAAI8D,OAChB9D,EAAI8D,MAAQA,EAMZ,IAAK,IAAIxrE,EAAI,EAAGA,EAAIqnE,EAAI6F,QAASltE,IACzBqnE,EAAI+K,MAAMpyE,GAAG,GAAKqnE,EAAI6F,QAAU,IAChC7F,EAAI+K,MAAMpyE,GAAG,GAAKqnE,EAAI6F,QAAU,GAO5C,IAAImM,EAAkB,IAAOhS,EAAIiS,QAAUlD,EAU3C,GATA/O,EAAIE,IAAI4R,MAAQ5xE,KAAK4wD,IAAI,IAAK,IAAakhB,GAC3ChS,EAAIE,IAAI8C,OAAS,IAEjBhD,EAAIE,IAAIgS,YAAc,EAGtBhZ,EAAO8G,EAAI4F,KAAKjH,EAAQ4E,QAAU,IAAMvD,EAAI6F,SAC5C3M,EAAO8G,EAAImF,KAAKxG,EAAQ8E,QAAU,IAAMzD,EAAIoF,UAExB,GAAhB/E,EAAI8R,QAAe,CAEnB,IACIC,EAAW/R,EAAIiR,eACZ3S,EAAe,QAClB0T,EAAc,EAElB,IADA/D,EAAO,EACFr4E,EAAI,EAAGA,EAAI0oE,EAAQU,QAAU,IAAKppE,EAGnCq4E,GAAQ8D,EACRpS,EAAIE,IAAIC,MAAMlqE,GAAK,EAAKiK,KAAK4wD,IAAI,GAAIt3D,KAAKo4E,WAAWtD,EAAMjO,GAAO,IAClEgS,GAAerS,EAAIE,IAAIC,MAAMlqE,GAGjC,IADAo8E,EAAc,EAAMA,EACfp8E,EAAI0oE,EAAQU,QAAU,IAAKppE,GAAK,GACjC+pE,EAAIE,IAAIC,MAAMlqE,IAAMo8E,EAIxB,IAAS15E,EAAIwwB,EAAI,EAAGxwB,EAAIqnE,EAAIoF,UAAWzsE,EACnC,IAAK1C,EAAI,EAAGA,EAAI+pE,EAAIiG,WAAWttE,KAAM1C,IAC/BkzB,EAGV+vC,EAAY,KAAL/vC,GACP,IAASxwB,EAAIwwB,EAAI,EAAGxwB,EAAIqnE,EAAI6F,UAAWltE,EACnC,IAAK1C,EAAI,EAAGA,EAAI+pE,EAAI6H,WAAWlvE,KAAM1C,IAC/BkzB,EAMd,IAHI+vC,EAAY,KAAL/vC,GAEXA,EAAI,EACClzB,EAAI,EAAGA,EAAI+pE,EAAI6F,QAAS5vE,IAAK,CAC1Bq4E,EAAOS,GAAS5lD,EAAI62C,EAAI6H,WAAW5xE,GAAK,IAAM,EAAM0oE,EAAQU,SAChEW,EAAI2Q,SAAS16E,GAAKs6E,GAAcjC,GAChCnlD,GAAK62C,EAAI6H,WAAW5xE,GAExB,KAAOA,EAAI0oE,EAAQ8H,SAAUxwE,EACzB+pE,EAAI2Q,SAAS16E,GAAK,EAGtB,IADAkzB,EAAI,EACClzB,EAAI,EAAGA,EAAI+pE,EAAIoF,QAASnvE,IAAK,CAC1Bq4E,EAAOS,GAAS5lD,EAAI62C,EAAIiG,WAAWhwE,GAAK,IAAM,EAAM0oE,EAAQuC,WAChElB,EAAI4Q,SAAS36E,GAAKs6E,GAAcjC,GAChCnlD,GAAK62C,EAAIiG,WAAWhwE,GAExB,KAAOA,EAAI0oE,EAAQ8H,SAAUxwE,EACzB+pE,EAAI4Q,SAAS36E,GAAK,EAEtB,OAAO,GAgDXuD,KAAKo4E,WAAa,SAAU93E,EAAGumE,GAC3B,IAAIkE,EACJ,OAAQlE,EAAI8R,SACR,KAAK,EACD5N,EAAMiM,GAAc12E,EAAG,GACvB,MACJ,KAAK,EAEDyqE,EAAMiM,GAAc12E,GAAI,GACxB,MACJ,KAAK,EACDyqE,EAAMiM,GAAc12E,EAAG,GACvB,MACJ,KAAK,EAEDyqE,EAAMiM,GAAc12E,EAAG,GAAK,EAC5B,MACJ,KAAK,EACDyqE,EAAMiM,GAAc12E,EAAGumE,EAAIiS,UAC3B,MACJ,QACI/N,EAAMiM,GAAc12E,EAAG,GACvB,MAER,OAAOyqE,GAKfvuE,EAAOD,QAAU6oE,GAKX,OACA,SAAU5oE,EAAQD,EAASF,GAEjC,aAKA,SAAS0mE,EAASluD,EAAQU,GACzB,IAAI0D,EAAQ5Z,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,GAE5E05E,EAAW57E,OAAOY,OAAO8W,EAAOxW,WACpC,IAAK,IAAIE,KAAK0a,EACb8/D,EAASx6E,GAAK0a,EAAM1a,GAIrB,OAFAw6E,EAAS/zE,YAAcuQ,EACvBA,EAAMlX,UAAY06E,EACXxjE,EAXRhZ,EAAQsB,YAAa,EACrBtB,EAAQwmE,SAAWA,GAeb,KACA,SAAUvmE,EAAQD,EAASF,GAEjC,IAAI6N,EAAS7N,EAAoB,QAY7B+gE,GAXSlzD,EAAO+zD,OACN/zD,EAAOg1D,QACTh1D,EAAO+0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,KACLp0D,EAAO6zD,OACF7zD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,UACLpzD,EAAOwzD,YACXxzD,EAAOkzD,SAIjB4b,GAHY9uE,EAAO0zD,UACV1zD,EAAOw1D,OAEPrjE,EAAoB,SAEjC,SAAS48E,IACLj5E,KAAKk5E,GAAK,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,OAChCl5E,KAAKm5E,gBAAkB,EACvBn5E,KAAKo5E,aAAe,EACpBp5E,KAAKq5E,cAAgB,EACrBr5E,KAAKs5E,eAAiB,EACtBt5E,KAAKu5E,MAAQ,CAACnc,EAAQ,GAAIA,EAAQ,IAElC,IAAK,IAAIoc,EAAK,EAAGA,EAAK,EAAGA,IACrB,IAAK,IAAIz7C,EAAK,EAAGA,EAAK,EAAGA,IACrB/9B,KAAKk5E,GAAGM,GAAIz7C,GAAM,IAAIi7C,EAKlCx8E,EAAOD,QAAU08E,GAKX,OACA,SAAUz8E,EAAQD,EAASF,GAEjC,IAAIwjE,EAAcxjE,EAAoB,QAElCo9E,EAAoB35E,SAASzB,UAC7Be,EAAQq6E,EAAkBr6E,MAC1BxC,EAAO68E,EAAkB78E,KAG7BJ,EAAOD,QAA4B,iBAAXoW,SAAuBA,QAAQvT,QAAUygE,EAAcjjE,EAAKqB,KAAKmB,GAAS,WAChG,OAAOxC,EAAKwC,MAAMA,EAAOC,cAMrB,OACA,SAAU7C,EAAQD,EAASF,GAEjC,IAOIwV,EAAOqmB,EAPPrxB,EAASxK,EAAoB,QAC7BqI,EAAYrI,EAAoB,QAEhCsM,EAAU9B,EAAO8B,QACjB+wE,EAAO7yE,EAAO6yE,KACdjnC,EAAW9pC,GAAWA,EAAQ8pC,UAAYinC,GAAQA,EAAKxhD,QACvDwa,EAAKD,GAAYA,EAASC,GAG1BA,IACF7gC,EAAQ6gC,EAAGxmC,MAAM,KAGjBgsB,EAAUrmB,EAAM,GAAK,GAAKA,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7DqmB,GAAWxzB,IACdmN,EAAQnN,EAAUmN,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQnN,EAAUmN,MAAM,iBACpBA,IAAOqmB,GAAWrmB,EAAM,MAIhCrV,EAAOD,QAAU27B,GAKX,OACA,SAAU17B,EAAQD,EAASF,GAEjC,aAGAE,EAAQsB,YAAa,EACrBtB,EAAQo9E,SAAWp9E,EAAQoC,KAAOpC,EAAQq9E,QAAUr9E,EAAQs9E,OAASt9E,EAAQsJ,QAAUtJ,EAAQwmE,SAAWxmE,EAAQu9E,UAAO76E,EAEzH,IAAIujE,EAASnmE,EAAoB,QAE7BmzD,EAAWnzD,EAAoB,QAE/BwJ,EAAUk0E,EAAwBvqB,GAElCwqB,EAAW39E,EAAoB,QAE/Bu9E,EAAUG,EAAwBC,GAElCC,EAAU59E,EAAoB,QAE9Bw9E,EAASE,EAAwBE,GAErC,SAASF,EAAwB/uE,GAAO,GAAIA,GAAOA,EAAInN,WAAc,OAAOmN,EAAc,IAAIkvE,EAAS,GAAI,GAAW,MAAPlvE,EAAe,IAAK,IAAIhN,KAAOgN,EAAW7N,OAAOkB,UAAUC,eAAe1B,KAAKoO,EAAKhN,KAAMk8E,EAAOl8E,GAAOgN,EAAIhN,IAAgC,OAAtBk8E,EAAO/+D,QAAUnQ,EAAYkvE,EAE7P71E,MAAMsH,UACVtH,MAAMsH,QAAU,SAAUy1B,GACzB,MAA+C,mBAAxCjkC,OAAOkB,UAAUkC,SAAS3D,KAAKwkC,KAUxC,IAAIu4C,EAAW,SAAkB5tE,GAChC,OAAO8tE,EAAOppD,IAAImpD,EAAQnpD,IAAI1kB,KAM3B+tE,EAAO,SAAc/tE,GAMxB,IALA,IAAIgN,EAAO1Z,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,KAE3E86E,EAASR,EAAS5tE,GAClBquE,EAAW,GAEN39E,EAAI,EAAGA,EAAI09E,EAAOn7E,OAAQvC,IAAK,CACvC,IAAIilD,EAAQy4B,EAAO19E,IACfilD,EAAM24B,QAAYthE,GAAQ2oC,EAAM3oC,OAASA,GAC5CqhE,EAASp3E,KAAK0+C,EAAM3zC,YAItB,OAAOqsE,GAgBJz7E,EAAO,SAAcoN,GACxB,IAAIgN,EAAO1Z,UAAUL,OAAS,QAAsBC,IAAjBI,UAAU,GAAmBA,UAAU,GAAK,KAE3E86E,EAASR,EAAS5tE,GACtB,OAAyB,IAAlBouE,EAAOn7E,QAAgBm7E,EAAO,GAAGE,UAAYthE,GAAQohE,EAAO,GAAGphE,OAASA,IAKhFxc,EAAQu9E,KAAOA,EACfv9E,EAAQwmE,SAAWP,EAAOO,SAC1BxmE,EAAQsJ,QAAUA,EAClBtJ,EAAQs9E,OAASA,EACjBt9E,EAAQq9E,QAAUA,EAClBr9E,EAAQoC,KAAOA,EACfpC,EAAQo9E,SAAWA,GAIb,OACA,SAAUn9E,EAAQD,EAASF,GA2FjC,IAAI6N,EAAS7N,EAAoB,QAC7B4hE,EAAS/zD,EAAO+zD,OAKhBF,GAJU7zD,EAAOg1D,QACTh1D,EAAO+0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,KACLp0D,EAAO6zD,QACF7zD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,UACLpzD,EAAOwzD,YACXxzD,EAAOkzD,QACLlzD,EAAO0zD,UACV1zD,EAAOw1D,OAwBpB,SAAS4a,IAIL,IAAIC,EAAW,MAMXC,GAJaF,EAAaG,WAIT,KAKjBC,GADgBJ,EAAaK,cACDL,EAAaI,2BAIzCE,EAA8BN,EAAaM,4BAO3CC,GAHyBP,EAAaQ,uBAG7B,CACT,CAAC,eAAmB,kBAAmB,gBACnC,kBAAmB,iBAAmB,mBACrC,eAAkB,mBAAoB,iBACtC,kBAAmB,gBAAkB,iBACrC,iBAAmB,iBAAkB,gBACtC,iBAAkB,iBAAmB,gBACrC,gBAAkB,gBAAkB,iBACxC,CAAC,gBAAmB,kBAAmB,gBACnC,kBAAmB,iBAAmB,kBACrC,gBAAkB,iBAAmB,iBACrC,iBAAkB,gBAAkB,kBACpC,iBAAmB,iBAAkB,gBACtC,kBAAmB,iBAAmB,gBACtC,gBAAkB,iBAAmB,iBACzC,CAAC,iBAAmB,kBAAmB,gBACnC,kBAAmB,iBAAmB,iBACtC,gBAAkB,kBAAmB,iBACpC,iBAAkB,gBAAkB,iBACrC,iBAAmB,gBAAkB,gBACrC,iBAAmB,iBAAmB,gBACtC,gBAAkB,gBAAmB,iBACzC,CAAC,iBAAmB,kBAAmB,gBACnC,iBAAmB,iBAAmB,eACtC,iBAAmB,gBAAmB,iBACrC,iBAAmB,gBAAkB,iBACrC,iBAAmB,gBAAkB,gBACtC,iBAAmB,cAAkB,gBACrC,gBAAkB,iBAAmB,iBACzC,CAAC,iBAAmB,kBAAmB,eACnC,iBAAmB,gBAAkB,gBACrC,iBAAmB,iBAAmB,gBACtC,iBAAmB,gBAAmB,iBACrC,gBAAmB,gBAAkB,gBACtC,gBAAkB,iBAAmB,iBACpC,eAAkB,iBAAmB,gBAC1C,CAAC,gBAAmB,iBAAmB,gBACnC,iBAAmB,iBAAmB,eACrC,gBAAkB,gBAAkB,iBACpC,iBAAmB,gBAAkB,gBACtC,gBAAkB,gBAAkB,gBACpC,iBAAmB,gBAAkB,iBACpC,gBAAkB,gBAAkB,iBACzC,CAAC,iBAAmB,kBAAmB,gBACnC,gBAAkB,gBAAmB,gBACrC,gBAAkB,iBAAmB,gBACrC,gBAAkB,gBAAmB,iBACpC,gBAAkB,eAAkB,iBACpC,gBAAkB,gBAAkB,iBACpC,eAAkB,iBAAmB,iBAC1C,CAAC,iBAAmB,iBAAmB,iBAClC,iBAAmB,iBAAmB,gBACvC,gBAAkB,eAAkB,gBACpC,gBAAkB,iBAAmB,iBACpC,iBAAmB,gBAAkB,iBACrC,gBAAkB,gBAAkB,iBACpC,gBAAkB,iBAAmB,iBAC1C,CAAC,iBAAmB,gBAAmB,iBAClC,iBAAmB,iBAAmB,gBACvC,iBAAmB,iBAAmB,gBACtC,gBAAkB,gBAAkB,iBACnC,iBAAmB,iBAAmB,iBACtC,iBAAmB,aAAkB,gBACtC,eAAkB,gBAAmB,mBAEzCC,EAAW,CACX,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,eAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,iBAAmB,iBACnC,gBAAkB,iBACtB,CAAC,iBAAmB,kBAAmB,iBACnC,gBAAkB,kBAS1B,SAASC,EAAWlgB,EAAOmgB,EAAU3kB,EAAQ4kB,EAAWC,EAAUC,GAE9D,MAAuB,GAAfD,IAEJ7kB,EAAO4kB,GAAa,MAAQpgB,EAAMmgB,EAAW,GAAKG,EAAO,GACnD9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAAKtgB,EAAMmgB,EAAW,GACrDG,EAAO,GAAK9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAC3CtgB,EAAMmgB,EAAW,GAAKG,EAAO,GAAK9kB,EAAO4kB,EAAY,GACrDE,EAAO,GAAKtgB,EAAMmgB,EAAW,GAAKG,EAAO,GACzC9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAAKtgB,EAAMmgB,EAAW,GACrDG,EAAO,GAAK9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAC3CtgB,EAAMmgB,EAAW,GAAKG,EAAO,IAAM9kB,EAAO4kB,EAAY,GACtDE,EAAO,IAAMtgB,EAAMmgB,EAAW,GAAKG,EAAO,IAC1C9kB,EAAO4kB,EAAY,GAAKE,EAAO,IAAMtgB,EAAMmgB,EAAW,GACtDG,EAAO,IAAM9kB,EAAO4kB,EAAY,GAAKE,EAAO,IAC5CtgB,EAAMmgB,EAAW,GAAKG,EAAO,IAAM9kB,EAAO4kB,EAAY,GACtDE,EAAO,IAAMtgB,EAAMmgB,EAAW,GAAKG,EAAO,IAC1C9kB,EAAO4kB,EAAY,IAAME,EAAO,IAChCtgB,EAAMmgB,EAAW,IAAMG,EAAO,MAClCF,IACAD,EAMV,SAASI,EAAavgB,EAAOmgB,EAAU3kB,EAAQ4kB,EAAWC,EAAUC,GAEhE,MAAuB,GAAfD,IACJ7kB,EAAO4kB,GAAapgB,EAAMmgB,EAAW,GAAKG,EAAO,GAC3C9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAAKtgB,EAAMmgB,EAAW,GACrDG,EAAO,GAAK9kB,EAAO4kB,EAAY,GAAKE,EAAO,GAC3CtgB,EAAMmgB,EAAW,GAAKG,EAAO,KACjCF,IACAD,EAQV,SAASK,EAAqBC,EAAQC,GAElC,IAAK,IAAI/+E,EAAI,EAAGA,EAAIg/E,UAAWh/E,IAC3B8+E,EAAOG,UAAUj/E,GAAK8+E,EAAOI,SAASl/E,GAAK8+E,EAAOK,QAAQn/E,GAAK8+E,EAAOM,UAAUp/E,GAAK8+E,EAAOO,SAASr/E,GAAK8+E,EAAOQ,QAAQt/E,GAAK,EAElI,OAAQ,EAAI,GACR,KAAK,KACD8+E,EAAOS,SAAW,EAClB,MACJ,KAAK,MACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,KACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,KACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,MACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,KACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,KACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,MACDT,EAAOS,SAAW,EAClB,MACJ,KAAK,IACDT,EAAOS,SAAW,EAClB,MACJ,QACI,OAAOC,yBAYf,OATAV,EAAOW,aAAe,GAAMV,EAAad,EACnCE,EAA8B,GAAKA,EAEzCW,EAAOY,KAAO,EACdZ,EAAOa,KAAO,EACdb,EAAOc,QAAU,EAEjBte,EAAOue,IAAIf,EAAOngC,EAAG,GAEdmhC,sBAuBX,SAASC,EAAKz/E,GACV,OAAOA,EAAIA,EA6Jf,SAAS0/E,EAAcp4E,EAAO8R,GAC1B,IAAI1Z,EAEAigF,EAAQ,EACZ,IAAKjgF,EAAI,EAAGA,EAAI0Z,EAAK1Z,IACjBigF,GAASr4E,EAAM5H,GACnB,GAAa,GAATigF,EACA,OAAOC,wBAEX,IAAIC,EAAQ,EAAIl2E,KAAKitD,KAAK+oB,GAAS,EAAKlC,IACxC,IAAK/9E,EAAI0Z,EAAK1Z,KAAM,GAChB,IAAKmgF,GAASv4E,EAAM5H,KAAO,EACvB,MAIR,OAAQ89E,EAAW99E,EAAI69E,EAAauC,aAlMxC78E,KAAK88E,iBAAmB,SAAUvB,EAAQC,GACtC,OAAIF,EAAqBC,EAAQC,IAAee,sBACrCN,0BAGXV,EAAOwB,OAAStB,UAChBF,EAAOyB,OAASvB,UAChBF,EAAO0B,MAAQxB,UACfF,EAAO2B,MAAQzB,UACfF,EAAO4B,KAAO1B,UACdF,EAAO6B,KAAO3B,UAEd1d,EAAO6R,KAAK2L,EAAOlgC,EAAG,GAEfkhC,wBAUXv8E,KAAKq9E,eAAiB,SAAU9B,EAAQ+B,EAAcC,EAAiBC,EAAeC,EAAkBC,EACxEC,GAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJ,GAAmB,GAAfR,EACA,OAAOS,iBAKX,OAHAD,EAAe,EACfF,EAAeN,EAEPC,GACJ,KAAK,EACDH,EAAgBF,EAChBG,EAAmBF,EACnB,MACJ,KAAK,EACD,MACJ,QACI,OAAOa,oBAGXV,EAAcjC,WACdxd,EAAOogB,UAAUf,EAAcC,EAAiBhC,EAAOG,UACnDD,UAAWiC,GACfzf,EAAOogB,UAAUb,EAAeC,EAAkBlC,EAAOM,UACrDJ,UAAWiC,KAEfzf,EAAOogB,UAAUf,EAAcC,EAAiBhC,EAAOG,UACnDD,UAAWA,WACfxd,EAAOogB,UAAUb,EAAeC,EAAkBlC,EAAOM,UACrDJ,UAAWA,YAGnB,MAAOuC,EAAe,EAAG,CACrBC,EAAaD,EAAezC,EAAOW,aAAeX,EAAOc,QAAUd,EAAOW,aACxEX,EAAOc,QACH2B,EACFE,EAAezC,WACfmC,EAAUrC,EAAOwB,OAASmB,EAC1BL,EAActC,EAAOG,UACrBoC,EAAWvC,EAAOyB,OAASkB,EAC3BH,EAAexC,EAAOM,UAClBoC,EAAaxC,UAAYyC,IACzBD,EAAaxC,UAAYyC,KAE7BN,EAAUL,EAAkBW,EAC5BL,EAAcP,EACdQ,EAAWL,EAAmBS,EAC9BH,EAAeP,GAGnBxC,EAAW6C,EAAaD,EAASrC,EAAOI,SAAUJ,EAAO0B,MACnD1B,EAAOc,QAAS4B,EAAYpD,EAAOU,EAAOS,WAChDhB,EAAW+C,EAAcD,EAAUvC,EAAOO,SAAUP,EAAO2B,MACrD3B,EAAOc,QAAS4B,EAAYpD,EAAOU,EAAOS,WAEhDX,EAAaE,EAAOI,SAAUJ,EAAO0B,MAAQ1B,EAAOc,QAChDd,EAAOK,QAASL,EAAO4B,KAAO5B,EAAOc,QAAS4B,EAC9ClD,EAASQ,EAAOS,WACpBX,EAAaE,EAAOO,SAAUP,EAAO2B,MAAQ3B,EAAOc,QAChDd,EAAOQ,QAASR,EAAO6B,KAAO7B,EAAOc,QAAS4B,EAC9ClD,EAASQ,EAAOS,WAEpB4B,EAAUrC,EAAO4B,KAAO5B,EAAOc,QAE/BwB,EAActC,EAAOK,QACrBkC,EAAWvC,EAAO6B,KAAO7B,EAAOc,QAChC0B,EAAexC,EAAOQ,QAEtB,IAAIt/E,EAAIwhF,EAAa,EACrB,MAAgB,GAARxhF,IACJ8+E,EAAOY,MAAQK,EAAKqB,EAAYD,MAChCrC,EAAOa,MAAQI,EAAKuB,EAAaD,MAErCrhF,EAAIwhF,EAAa,EACjB,MAAgB,GAARxhF,IACJ8+E,EAAOY,MAAQK,EAAKqB,EAAYD,EAAU,IACpCpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IAC3BpB,EAAKqB,EAAYD,EAAU,IACjCA,GAAW,EACXrC,EAAOa,MAAQI,EAAKuB,EAAaD,EAAW,IACtCtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IAC7BtB,EAAKuB,EAAaD,EAAW,IACnCA,GAAY,EAMhB,GAHAE,GAAgBC,EAChBC,GAAgBD,EAChB1C,EAAOc,SAAW4B,EACd1C,EAAOc,SAAWd,EAAOW,aAAc,CAEvC,IAAI7wE,EACE,GADIivE,EAAauC,aAEjBn2E,KAAKi4D,OAAO4c,EAAOY,KAAOZ,EAAOa,MAC7Bb,EAAOc,QAAU,GAAM,OAC7BiC,EAAQjzE,GAAO,EAAK,EAAI,EAAIA,EAC5BizE,GAAQ/C,EAAOngC,EAAEp8C,SACjBs/E,EAAO/C,EAAOngC,EAAEp8C,OAAS,GAC7Bu8E,EAAOngC,EAAEkjC,KACT/C,EAAOY,KAAOZ,EAAOa,KAAO,EAE5Bne,EAAOogB,UAAU9C,EAAOK,QAASL,EAAOc,QACpCd,EAAOK,QAAS,EAAGH,WACvBxd,EAAOogB,UAAU9C,EAAOQ,QAASR,EAAOc,QACpCd,EAAOQ,QAAS,EAAGN,WACvBxd,EAAOogB,UAAU9C,EAAOI,SAAUJ,EAAOc,QACrCd,EAAOI,SAAU,EAAGF,WACxBxd,EAAOogB,UAAU9C,EAAOO,SAAUP,EAAOc,QACrCd,EAAOO,SAAU,EAAGL,WACxBF,EAAOc,QAAU,EAErB,GAAId,EAAOc,QAAUd,EAAOW,aAKxB,OAAOkC,oBAmBf,OAhBIV,EAAcjC,WACdxd,EAAOogB,UAAU9C,EAAOG,UAAWgC,EAAanC,EAAOG,UACnD,EAAGD,UAAYiC,GACnBzf,EAAOogB,UAAU9C,EAAOM,UAAW6B,EAAanC,EAAOM,UACnD,EAAGJ,UAAYiC,GACnBzf,EAAOogB,UAAUf,EAAcC,EAAiBhC,EAAOG,UACnDD,UAAYiC,EAAaA,GAC7Bzf,EAAOogB,UAAUb,EAAeC,EAAkBlC,EAAOM,UACrDJ,UAAYiC,EAAaA,KAE7Bzf,EAAOogB,UAAUf,EAAcC,EAAkBG,EAC3CjC,UAAWF,EAAOG,UAAW,EAAGD,WACtCxd,EAAOogB,UAAUb,EAAeC,EAAmBC,EAC7CjC,UAAWF,EAAOM,UAAW,EAAGJ,YAGnC0C,kBAsBXn+E,KAAKu+E,aAAe,SAAUhD,GAG1B,IAFA,IAAIiD,EAAS/B,EAAclB,EAAOngC,EAAGmgC,EAAOngC,EAAEp8C,QAErCvC,EAAI,EAAGA,EAAI8+E,EAAOngC,EAAEp8C,OAAQvC,IACjC8+E,EAAOlgC,EAAE5+C,IAAM8+E,EAAOngC,EAAE3+C,GACxB8+E,EAAOngC,EAAE3+C,GAAK,EAGlB,IAASA,EAAI,EAAGA,EAAIg/E,UAAWh/E,IAC3B8+E,EAAOG,UAAUj/E,GAAK8+E,EAAOI,SAASl/E,GAAK8+E,EAAOK,QAAQn/E,GAAK8+E,EAAOM,UAAUp/E,GAAK8+E,EAAOO,SAASr/E,GAAK8+E,EAAOQ,QAAQt/E,GAAK,EAIlI,OAFA8+E,EAAOc,QAAU,EACjBd,EAAOY,KAAOZ,EAAOa,KAAO,EACrBoC,GAtbflE,EAAauC,aAAe,IAI5BvC,EAAamE,OAAS,IACtBnE,EAAaqC,yBAA2B,MACxCrC,EAAa8D,oBAAsB,EACnC9D,EAAa6D,iBAAmB,EAChC7D,EAAa2B,yBAA2B,EACxC3B,EAAaiC,sBAAwB,EAErCjC,EAAaG,WAAa,GAC1BH,EAAamB,UAAYnB,EAAaG,WAEtCH,EAAaK,cAAgB,KAC7BL,EAAaI,0BAA4B,EACzCJ,EAAaM,4BAA8B,GAC3CN,EAAaQ,uBAA2BR,EAAaK,cAAgBL,EAAaI,0BAA6BJ,EAAaM,4BAA8B,EA0a1Jp+E,EAAOD,QAAU+9E,GAKX,OACA,SAAU99E,EAAQD,EAASF,GAEjC,aAGAE,EAAQsB,YAAa,EAErB,IAAIq/C,EAA4B,oBAAX1/C,QAAoD,kBAApBA,OAAOsI,SAAwB,SAAUkF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAXxN,QAAyBwN,EAAIhG,cAAgBxH,QAAUwN,IAAQxN,OAAOa,UAAY,gBAAkB2M,GAElQjJ,EAAW,CACd28E,gBAAiB,OACjB36C,OAAQ,KACRoqB,OAAQlgD,EACR0wE,WAAY1wE,EACZ2wE,OAAO,EACPvkD,QAAS,IACThzB,OAAQw3E,EACRC,UAAU,EACVC,WAAY,GACZC,WAAY,KACZC,UAAW,aAQZ,SAASC,EAAQjtE,GAChBA,EAAOA,GAAQ,GAEfjS,KAAK0+E,gBAAkBzsE,EAAK3T,eAAe,mBAAqB2T,EAAKysE,gBAAkB38E,EAAS28E,gBAChG1+E,KAAK+jC,OAAS9xB,EAAK3T,eAAe,UAAY2T,EAAK8xB,OAAShiC,EAASgiC,OACrE/jC,KAAKmuD,OAASl8C,EAAK3T,eAAe,UAAY2T,EAAKk8C,OAASpsD,EAASosD,OACrEnuD,KAAK2+E,WAAa1sE,EAAK3T,eAAe,cAAgB2T,EAAK0sE,WAAa58E,EAAS48E,WACjF3+E,KAAK4+E,MAAQ3sE,EAAK3T,eAAe,SAAW2T,EAAK2sE,MAAQ78E,EAAS68E,MAClE5+E,KAAKq6B,QAAUpoB,EAAK3T,eAAe,WAAa2T,EAAKooB,QAAUt4B,EAASs4B,QACxEr6B,KAAKqH,OAAS4K,EAAK3T,eAAe,UAAY2T,EAAK5K,OAAStF,EAASsF,OACrErH,KAAK8+E,SAAW7sE,EAAK3T,eAAe,YAAc2T,EAAK6sE,SAAW/8E,EAAS+8E,SAC3E9+E,KAAK++E,WAAa,GAGlB/+E,KAAKg/E,WAAa/sE,EAAK+sE,YAAc/sE,EAAKktE,gBAAkBp9E,EAASi9E,WACrEh/E,KAAKi/E,UAAYhtE,EAAK3T,eAAe,aAAe2T,EAAKgtE,UAAYhtE,EAAKmtE,WAAar9E,EAASk9E,UAIhG,IADA,IAAII,EAAcptE,EAAK3T,eAAe,cAAgB2T,EAAK8sE,WAAah9E,EAASg9E,WACxEtiF,EAAI,EAAGA,EAAI4iF,EAAYrgF,OAAQvC,IACvCuD,KAAK++E,WAAW/7E,KAAKq8E,EAAY5iF,GAAGsQ,eAkEtC,SAASuyE,EAAS37E,EAAKjG,GACtB,IAAK,IAAIjB,EAAI,EAAGA,EAAIkH,EAAI3E,OAAQvC,IAC/B,GAAIkH,EAAIlH,KAAOiB,EACd,OAAO,EAGT,OAAO,EAGR,SAASuQ,EAAK5C,GACb,OAAOA,EAGR,SAASwzE,EAAajqC,EAAM77B,GAC3B,MAAgB,QAATA,EAAiB,SAAW,KAzGpCxc,EAAQwF,SAAWA,EACnBxF,EAAQ2iF,QAAUA,EAClB3iF,EAAQ+iF,SAAWA,EA2BnBJ,EAAQ7gF,UAAY,CAInBqE,QAAS,SAAiBg/C,GACzB,IAAI9M,EAAO8M,EAAM69B,OAAOv/E,KAAK0+E,iBAC7B,MAAO,CACNc,UAAWx/E,KAAK1C,IAAI,SAAUokD,EAAMnhD,WAAYmhD,GAChD+9B,cAAez/E,KAAK1C,IAAI,aAAcs3C,EAAM8M,GAC5CrnB,QAASr6B,KAAK1C,IAAI,UAAWs3C,EAAM8M,GACnCu9B,UAAWj/E,KAAK1C,IAAI,YAAas3C,EAAM8M,GACvCr6C,OAAQrH,KAAK1C,IAAI,SAAUs3C,EAAM8M,GACjC3d,OAAQ/jC,KAAK0/E,UAAU,SAAU9qC,EAAM8M,GACvCs9B,WAAYh/E,KAAK0/E,UAAU,aAAc9qC,EAAM8M,KASjDi+B,MAAO,SAAej+B,GACrB,OAAO1hD,KAAK1C,IAAI,WAAYokD,EAAMnhD,WAAYmhD,IAa/CpkD,IAAK,SAAaU,EAAK4hF,EAAUl+B,GAChC,IAAIm+B,OAAc,EACdryC,EAASxtC,KAAKhC,GAClB,IAAKwvC,EACJ,OAAOA,EAGR,OAA0B,qBAAXA,EAAyB,YAAc0P,EAAQ1P,IAC7D,IAAK,WACJ,OAAOA,EAAOoyC,EAAUl+B,EAAM3oC,MAC/B,IAAK,SAEJ,OADA8mE,EAAcryC,EAAOlvC,eAAeojD,EAAM3oC,MAAQy0B,EAAOkU,EAAM3oC,MAAQhX,EAAS/D,GAClD,oBAAhB6hF,EAA6BA,EAAYD,EAAUl+B,EAAM3oC,MAAQ8mE,EAGjF,OAAOryC,GAERkyC,UAAW,SAAmB1hF,EAAK4hF,EAAUl+B,GAC5C,IAAIlU,EAASxtC,KAAKhC,GAClB,MAAyB,oBAAXwvC,EAAwBA,EAAOoyC,EAAUl+B,EAAM3oC,MAAQy0B,KA0BjE,OACA,SAAUhxC,EAAQD,EAASF,GAEjC,IAAIyH,EAAazH,EAAoB,QAErCG,EAAOD,QAAUuH,EAAW,YAAa,cAAgB,IAKnD,OACA,SAAUtH,EAAQD,EAASF,GAEjC,IAAIyE,EAAczE,EAAoB,QAClCyjF,EAA0BzjF,EAAoB,QAC9C+N,EAAuB/N,EAAoB,QAC3C8I,EAAW9I,EAAoB,QAC/B+D,EAAkB/D,EAAoB,QACtCy3C,EAAaz3C,EAAoB,QAKrCE,EAAQ+D,EAAIQ,IAAgBg/E,EAA0B3iF,OAAOqY,iBAAmB,SAA0BlU,EAAGyyC,GAC3G5uC,EAAS7D,GACT,IAIItD,EAJAib,EAAQ7Y,EAAgB2zC,GACxBllC,EAAOilC,EAAWC,GAClB/0C,EAAS6P,EAAK7P,OACdgH,EAAQ,EAEZ,MAAOhH,EAASgH,EAAOoE,EAAqB9J,EAAEgB,EAAGtD,EAAM6Q,EAAK7I,KAAUiT,EAAMjb,IAC5E,OAAOsD,IAMH,KACA,SAAU9E,EAAQD,EAASF,GAEjC,IAAI6N,EAAS7N,EAAoB,QAE7B6iE,GADSh1D,EAAO+zD,OACN/zD,EAAOg1D,SACTh1D,EAAO+0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,KACLp0D,EAAO6zD,OACF7zD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,UACLpzD,EAAOwzD,YACXxzD,EAAOkzD,QACLlzD,EAAO0zD,UACV1zD,EAAOw1D,OAEpB,SAASqgB,IACL,SAASC,EAAWC,EAAMj1D,EAAMk1D,EACZzpB,EAAG0pB,EAAaC,EAChBC,EAAKC,EAAUC,EACfC,EAAOC,EAAMC,EACbC,EAAOC,EAAKC,GAC5B7gF,KAAK8gF,MAAQb,EACbjgF,KAAK+gF,WAAa/1D,EAClBhrB,KAAKghF,aAAed,EACpBlgF,KAAKihF,KAAOxqB,EACZz2D,KAAKkhF,OAASf,EACdngF,KAAKmhF,KAAOf,EACZpgF,KAAKohF,YAAcf,EACnBrgF,KAAKqhF,kBAAoBf,EACzBtgF,KAAKshF,UAAYf,EACjBvgF,KAAKuhF,UAAYf,EACjBxgF,KAAKwhF,gBAAkBf,EACvBzgF,KAAKyhF,QAAUf,EACf1gF,KAAK0hF,UAAYf,EACjB3gF,KAAK2hF,SAAWf,EAChB5gF,KAAK2qE,MAAQkW,EAGjB,SAASe,EAAWC,EAAM72D,EAAMk1D,EACZS,EAAOE,EAAKV,EACZC,EAAc0B,EAAMC,EACpBC,EAAMzB,EAAOC,EACbyB,EAASC,GACzBliF,KAAK+gF,WAAa/1D,EAClBhrB,KAAKghF,aAAed,EACpBlgF,KAAK0hF,UAAYf,EACjB3gF,KAAKmiF,QAAUtB,EACf7gF,KAAKkhF,OAASf,EACdngF,KAAKmhF,KAAOf,EACZpgF,KAAKoiF,OAASN,EACd9hF,KAAKqiF,MAAQN,EACb/hF,KAAKohF,YAAcY,EACnBhiF,KAAKshF,UAAYf,EACjBvgF,KAAKuhF,UAAYf,EACjBxgF,KAAKyhF,QAAUQ,EACfjiF,KAAKsiF,QAAUJ,EAGnB,IAAIK,EAEJviF,KAAKwiF,WAAa,SAAUC,GACxBF,EAAOE,GASX,IAAIC,EAAqB,CACrB,IAAI1C,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,KAAQ,KAAM,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,KACzE,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,KAAQ,KAAM,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,GAAI,MAC3E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,KAAQ,KAAM,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,MACzE,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,KAAQ,KAAM,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,GAAI,MAC1E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,EAAM,KAAQ,IAAM,IAAK,IAAK,KAAM,EAAG,EAAG,EAAG,EAAG,MAC3E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,GAAK,IAAM,IAAK,GAAI,GAAI,KAAQ,EAAG,EAAG,MAC9E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,IAAM,KAAO,KAAM,KAAM,GAAI,KAAQ,EAAG,EAAG,KACnF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,GAAK,KAAO,KAAM,GAAI,GAAI,KAAQ,EAAG,EAAG,KAChF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,IAAK,MAAO,KAAM,IAAK,GAAI,KAAQ,EAAG,EAAG,GACjF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,IAAK,KAAM,GAAI,IAAK,GAAI,KAAQ,EAAG,EAAG,GAC9E,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,IAAM,IAAO,EAAK,GAAM,GAAI,IAAK,GAAI,KAAQ,EAAG,EAAG,IAQ/E2C,EAAqB,CACrB,IAAI3C,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,GAAM,EAAK,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,KACxE,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,KAAM,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,GAAI,MAC1E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,KAAM,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,MACtE,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,KAAM,KAAM,IAAK,GAAI,EAAG,EAAG,EAAG,GAAI,MAC1E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,IAAK,GAAK,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,MACvE,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,EAAK,MAAO,IAAK,GAAI,GAAI,KAAQ,EAAG,EAAG,MAC/E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,IAAO,EAAK,MAAO,IAAK,KAAM,GAAI,KAAQ,EAAG,EAAG,GACjF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,GAAM,GAAK,GAAM,KAAM,GAAI,GAAI,KAAQ,EAAG,EAAG,GAC9E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,GAAM,EAAK,KAAM,GAAM,IAAK,GAAI,KAAQ,EAAG,EAAG,GAC/E,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAM,GAAM,IAAK,MAAO,GAAM,IAAK,GAAI,KAAQ,EAAG,EAAG,GAChF,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,IAAM,GAAM,EAAK,MAAO,GAAM,IAAK,GAAI,KAAQ,EAAG,EAAG,IAGrF,SAAS4C,EAAiB/b,EAAK3nE,EAAGo9C,GAC9B,IAAIumC,EAAahc,EAAIkJ,KAAO7Q,EAAQI,OAASojB,EACvCC,EAEFjpB,EAAImN,EAAIic,WACRvkF,EAAIskF,EAAW3jF,GACfi5D,EAAI0qB,EAAW3jF,EAAI,GACnB4T,EAAMvU,EAMVA,EAAE2iF,OAAS3iF,EAAE2iF,OAASxnB,GAAKvB,EAAE+oB,OAAS3iF,EAAE2iF,QAExC3iF,EAAE4iF,KAAO5iF,EAAE4iF,KAAOznB,GAAKvB,EAAEgpB,KAAO5iF,EAAE4iF,MAElC5iF,EAAE6iF,YAAc7iF,EAAE6iF,YAAc1nB,GAAKvB,EAAEipB,YAAc7iF,EAAE6iF,aAEvD7iF,EAAE8iF,kBAAoB9iF,EAAE8iF,kBAAoB3nB,GACrCvB,EAAEkpB,kBAAoB9iF,EAAE8iF,mBAE/B9iF,EAAE+iF,UAAY/iF,EAAE+iF,UAAY5nB,GAAKvB,EAAEmpB,UAAY/iF,EAAE+iF,WAEjD/iF,EAAEgjF,UAAYhjF,EAAEgjF,UAAY7nB,GAAKvB,EAAEopB,UAAYhjF,EAAEgjF,WAEjDhjF,EAAEijF,gBAAkBjjF,EAAEijF,gBAAkB9nB,GACjCvB,EAAEqpB,gBAAkBjjF,EAAEijF,iBAE7BjjF,EAAEkjF,QAAUljF,EAAEkjF,QAAU/nB,GAAKvB,EAAEspB,QAAUljF,EAAEkjF,SAI3CljF,EAAEosE,MAAQpsE,EAAEosE,MAAQjR,GAAKvB,EAAEwS,MAAQpsE,EAAEosE,OAGrCoY,EAAelc,EAAK/zD,EAAIguE,OAET,GAAXxkC,EACAuqB,EAAIka,WAAajuE,EAAIiuE,WACdr6E,KAAK6vD,IAAIsQ,EAAIka,aAAc,GAAK,IACvCla,EAAIka,WAAajuE,EAAIiuE,YAEV,GAAXzkC,EACAuqB,EAAImc,iBAAmBlwE,EAAIkuE,aACpBt6E,KAAK6vD,IAAIsQ,EAAImc,mBAAoB,GAAK,IAC7Cnc,EAAImc,iBAAmBlwE,EAAIkuE,cAEf,GAAZluE,EAAImuE,OACJpa,EAAIoc,cAA4B,GAAZnwE,EAAImuE,MAEb,GAAX3kC,EACAuqB,EAAIU,eAAeqJ,MAAMQ,WAAat+D,EAAIouE,OACnCx6E,KAAK6vD,IAAIsQ,EAAIU,eAAeqJ,MAAMQ,aAAc,GAAK,IAC5DvK,EAAIU,eAAeqJ,MAAMQ,WAAat+D,EAAIouE,QAE/B,GAAX5kC,EACAuqB,EAAIU,eAAeqJ,MAAMO,aAAer+D,EAAIquE,KACrCz6E,KAAK6vD,IAAIsQ,EAAIU,eAAeqJ,MAAMO,eAAgB,GAAK,IAC9DtK,EAAIU,eAAeqJ,MAAMO,aAAer+D,EAAIquE,MAEjC,GAAX7kC,EACAuqB,EAAIqc,cAAgBpwE,EAAIsuE,YACjB16E,KAAK6vD,IAAIsQ,EAAIqc,cAAgB,GAAK,IACzCrc,EAAIqc,cAAgBpwE,EAAIsuE,aAEb,GAAX9kC,EACAuqB,EAAIsc,oBAAsBrwE,EAAIuuE,kBACvB36E,KAAK6vD,IAAIsQ,EAAIsc,oBAAsB,GAAK,IAC/Ctc,EAAIsc,oBAAsBrwE,EAAIuuE,mBAEnB,GAAX/kC,EACAuqB,EAAIiL,UAAYh/D,EAAIwuE,UAAY,GACzB56E,KAAK6vD,IAAqB,IAAfsQ,EAAIiL,SAAmB,GAAK,IAC9CjL,EAAIiL,UAAYh/D,EAAIwuE,UAAY,IAErB,GAAXhlC,EACAuqB,EAAIiS,SAAWhmE,EAAIyuE,UACZ76E,KAAK6vD,IAAIsQ,EAAIiS,WAAY,GAAK,IACrCjS,EAAIiS,SAAWhmE,EAAIyuE,WAER,GAAXjlC,EACAuqB,EAAIuc,kBAAoBtwE,EAAI0uE,gBACrB96E,KAAK6vD,IAAIsQ,EAAIuc,oBAAqB,GAAK,IAC9Cvc,EAAIuc,kBAAoBtwE,EAAI0uE,iBAE5B1uE,EAAI2uE,QAAU,IACC,GAAXnlC,EACAuqB,EAAIgL,aAAe/+D,EAAI2uE,QAChB/6E,KAAK6vD,IAAIsQ,EAAIgL,eAAgB,GAAK,IACzChL,EAAIgL,aAAe/+D,EAAI2uE,UAK3B3uE,EAAI4uE,UAAY,IAChB7a,EAAI0R,cAAgB1R,EAAI0R,cAAgBzlE,EAAI4uE,WAE5C5uE,EAAI6uE,SAAW,IACf9a,EAAI0R,cAAgB1R,EAAI0R,cAAiBzlE,EAAI6uE,UAAY,IAE9C,GAAXrlC,EACAuqB,EAAI8D,MAAQ73D,EAAI63D,MACTjkE,KAAK6vD,IAAIsQ,EAAI8D,QAAS,GAAK,IAClC9D,EAAI8D,MAAQ73D,EAAI63D,OAGL,GAAXruB,IACAuqB,EAAIwc,MAAQnkF,EACZ2nE,EAAIic,WAAappB,GAWzB,IAAI4pB,EAAiB,CACjB,IAAI1B,EAAW,EAAG,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,MAAQ,GACxE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,KAAQ,GACzE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,KAAQ,GACzE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,KAAQ,GACzE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,KAAQ,GACzE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,GAAM,GAAI,KAAQ,GACzE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,EAAK,GAAI,KAAQ,GACxE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,GAAI,EAAK,GAAI,KAAQ,GACxE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,EAAG,IAAM,IAAK,EAAG,IAAM,EAAG,EAAI,EAAG,KAAQ,GACrE,IAAIA,EAAW,GAAI,EAAG,EAAG,EAAG,IAAM,IAAM,IAAK,EAAG,IAAM,EAAG,EAAK,IAAK,KAAQ,GAC3E,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,KAAM,IAAM,IAAK,EAAG,IAAM,EAAG,EAAK,IAAK,KAAQ,GAC5E,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,KAAM,IAAM,IAAK,EAAG,IAAM,EAAG,EAAK,EAAG,KAAQ,GAC1E,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,KAAM,EAAM,IAAK,EAAG,KAAO,EAAG,EAAK,IAAK,EAAG,GACxE,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,KAAM,IAAM,IAAK,EAAG,KAAO,EAAG,EAAK,EAAG,EAAG,GACtE,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,KAAM,IAAM,IAAK,EAAG,KAAO,EAAG,EAAK,EAAG,EAAG,GACtE,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,IAAM,IAAM,IAAK,EAAG,GAAO,EAAG,GAAM,EAAG,EAAG,GACvE,IAAIA,EAAW,IAAK,EAAG,EAAG,EAAG,GAAM,IAAM,IAAK,EAAG,GAAO,GAAI,GAAM,EAAG,EAAG,IAG5E,SAAS2B,EAAiB1c,EAAK2c,EAAQlnC,GAEnC,IAAImnC,EAAiBD,EAEjBjmF,EAAIglF,EAAKmB,wBAAwBF,GAoBrC,GAlBA3c,EAAIkJ,IAAM7Q,EAAQK,QAClBsH,EAAI8c,sBAAwBF,EAC5B5c,EAAI8c,sBAAwBj9E,KAAKC,IAAIkgE,EAAI8c,sBAAuB,KAChE9c,EAAI8c,sBAAwBj9E,KAAKD,IAAIogE,EAAI8c,sBAAuB,GAChE9c,EAAI+c,MAAQ/c,EAAI8c,sBACZ9c,EAAI8c,sBAAwB,MAC5B9c,EAAIgd,mBAAoB,GAIxBP,EAAe/lF,GAAGmkF,UAAY,IAC9B7a,EAAI0R,cAAoC,EAApB1R,EAAI0R,eAGxB+K,EAAe/lF,GAAG+kF,QAAU,IAC5Bzb,EAAIU,eAAeuc,cAAgB,GAGnCp9E,KAAK6vD,IAAI+sB,EAAe/lF,GAAG6kF,QAAU,EAAG,CACxC,IAAInpB,EAAI,IAAiC,EAA3BqqB,EAAe/lF,GAAG6kF,QAC5BnpB,EAAI,IACJA,GAAK,IACT4N,EAAI0R,cAAgB1R,EAAI0R,cAAiBtf,GAAK,EAmFlD,OAhFe,GAAX3c,EACAuqB,EAAIka,WAAauC,EAAe/lF,GAAGwjF,WAC5Br6E,KAAK6vD,IAAIsQ,EAAIka,aAAc,GAAK,IACvCla,EAAIka,WAAauC,EAAe/lF,GAAGwjF,YAExB,GAAXzkC,EACAuqB,EAAImc,iBAAmBM,EAAe/lF,GAAGyjF,aAClCt6E,KAAK6vD,IAAIsQ,EAAImc,mBAAoB,GAAK,IAC7Cnc,EAAImc,iBAAmBM,EAAe/lF,GAAGyjF,cAG9B,GAAX1kC,EACAuqB,EAAI8D,MAAQ2Y,EAAe/lF,GAAG4kF,QACvBz7E,KAAK6vD,IAAIsQ,EAAI8D,QAAS,GAAK,IAClC9D,EAAI8D,MAAQ2Y,EAAe/lF,GAAG4kF,SAGnB,GAAX7lC,EACAuqB,EAAIU,eAAeqJ,MAAMQ,WAAakS,EAAe/lF,GAAG2jF,OACjDx6E,KAAK6vD,IAAIsQ,EAAIU,eAAeqJ,MAAMQ,aAAc,GAAK,IAC5DvK,EAAIU,eAAeqJ,MAAMQ,WAAakS,EAAe/lF,GAAG2jF,QAE7C,GAAX5kC,EACAuqB,EAAIU,eAAeqJ,MAAMO,aAAemS,EAAe/lF,GAAG4jF,KACnDz6E,KAAK6vD,IAAIsQ,EAAIU,eAAeqJ,MAAMO,eAAgB,GAAK,IAC9DtK,EAAIU,eAAeqJ,MAAMO,aAAemS,EAAe/lF,GAAG4jF,MAW/C,GAAX7kC,EACAuqB,EAAIwb,MAAQiB,EAAe/lF,GAAG8kF,MACvB37E,KAAK6vD,IAAIsQ,EAAIwb,QAAS,GAAK,IAClCxb,EAAIwb,MAAQiB,EAAe/lF,GAAG8kF,OAGnB,GAAX/lC,EACAuqB,EAAIqc,cAAgBI,EAAe/lF,GAAG6jF,YAC/B16E,KAAK6vD,IAAIsQ,EAAIqc,cAAgB,GAAK,IACzCrc,EAAIqc,cAAgBI,EAAe/lF,GAAG6jF,aAEtCkC,EAAe/lF,GAAG6jF,YAAc,EACjB,GAAX9kC,EACAuqB,EAAIsc,oBAAuD,GAAhCG,EAAe/lF,GAAG6jF,YACtC16E,KAAK6vD,IAAIsQ,EAAIsc,oBAAsB,GAAK,IAC/Ctc,EAAIsc,oBAAuD,GAAhCG,EAAe/lF,GAAG6jF,aAIlC,GAAX9kC,EACAuqB,EAAIsc,oBAAuD,IAAhCG,EAAe/lF,GAAG6jF,YACtC16E,KAAK6vD,IAAIsQ,EAAIsc,oBAAsB,GAAK,IAC/Ctc,EAAIsc,oBAAuD,IAAhCG,EAAe/lF,GAAG6jF,aAKtC,GAAX9kC,EACAuqB,EAAIiL,UAAYwR,EAAe/lF,GAAG+jF,UAAY,GACvC56E,KAAK6vD,IAAqB,IAAfsQ,EAAIiL,SAAkB,GAAK,IAC7CjL,EAAIiL,UAAYwR,EAAe/lF,GAAG+jF,UAAY,IAEnC,GAAXhlC,EACAuqB,EAAIiS,SAAWwK,EAAe/lF,GAAGgkF,UAC1B76E,KAAK6vD,IAAIsQ,EAAIiS,WAAY,GAAK,IACrCjS,EAAIiS,SAAWwK,EAAe/lF,GAAGgkF,WAGtB,GAAXjlC,EACAuqB,EAAIgL,aAAeyR,EAAe/lF,GAAGkkF,QAC9B/6E,KAAK6vD,IAAIsQ,EAAIgL,eAAgB,GAAK,IACzChL,EAAIgL,aAAeyR,EAAe/lF,GAAGkkF,SAGlC+B,EA+GX,SAAST,EAAelc,EAAKwc,GACzB,IAAI11E,EAAM,EAcV,OAZI,EAAI01E,IAEJ11E,GAAO,EACP01E,EAAQ,GAER,EAAIA,IACJ11E,GAAO,EACP01E,EAAQ,GAGZxc,EAAIwc,MAAQA,EACZxc,EAAIic,WAAa,EACVn1E,EA3HX3N,KAAK+jF,aAAe,SAASld,EAAK2c,EAAQlnC,GAEtC,OAAQknC,GACJ,KAAKQ,KAAKC,MAENT,EAASQ,KAAKE,GACdrd,EAAIkJ,IAAM7Q,EAAQM,SAClB,MAEJ,KAAKwkB,KAAKG,OAENX,EAASQ,KAAKI,GACdvd,EAAIkJ,IAAM7Q,EAAQI,OAClB,MAEJ,KAAK0kB,KAAKK,YAENb,EAASQ,KAAKI,GACdvd,EAAIkJ,IAAM7Q,EAAQM,SAClB,MAEJ,KAAKwkB,KAAKM,SAENd,EAASQ,KAAKO,GACd1d,EAAIkJ,IAAM7Q,EAAQI,OAClB,MAEJ,KAAK0kB,KAAKQ,cAENhB,EAASQ,KAAKO,GACd1d,EAAIkJ,IAAM7Q,EAAQM,SAClB,MAEJ,KAAKwkB,KAAKS,QAENjB,EAASQ,KAAKU,GACd7d,EAAIkJ,IAAM7Q,EAAQI,OAClB,MAEJ,KAAK0kB,KAAKW,aAENnB,EAASQ,KAAKU,GACd7d,EAAIkJ,IAAM7Q,EAAQM,SAClB,MAEJ,KAAKwkB,KAAKY,OAMN,OAJApB,EAAS,IACT3c,EAAI2c,OAASA,EACbD,EAAiB1c,EAAK2c,EAAQlnC,GAC9BuqB,EAAIkJ,IAAM7Q,EAAQE,QACXokB,EAMX,OAFJ3c,EAAI2c,OAASA,EAEDA,GACJ,KAAKQ,KAAKa,GAEN,OADAjC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKc,GAEN,OADAlC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKe,GAEN,OADAnC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKgB,GAEN,OADApC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKiB,GAEN,OADArC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKI,GAEN,OADAxB,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKE,GAEN,OADAtB,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKO,GAEN,OADA3B,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKkB,GAEN,OADAtC,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,KAAKQ,KAAKU,GAEN,OADA9B,EAAiB/b,EAAK,EAAGvqB,GAClBknC,EACX,QACI,MAGZ,OAAI,GAAKA,GAAUA,GAAU,IAClBD,EAAiB1c,EAAK2c,EAAQlnC,IAIzCuqB,EAAI2c,OAAS,EACNA,IA8BfhnF,EAAOD,QAAUwjF,GAKX,OACA,SAAUvjF,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAEtCG,EAAOD,QAAUojE,EAAY,GAAGwlB,gBAK1B,OACA,SAAU3oF,EAAQD,EAASF,GAEjC,IAAIklE,EAAallE,EAAoB,QAEjC8kE,EAAUviE,OACVwjE,EAAav+D,UAEjBrH,EAAOD,QAAU,SAAUi9C,GACzB,GAAuB,iBAAZA,GAAwB+nB,EAAW/nB,GAAW,OAAOA,EAChE,MAAM4oB,EAAW,aAAejB,EAAQ3nB,GAAY,qBAMhD,OACA,SAAUh9C,EAAQD,EAASF,GAEjC,aAEA,IAAIwK,EAASxK,EAAoB,QAC7BO,EAAOP,EAAoB,QAC3B4nE,EAAsB5nE,EAAoB,QAC1C+oF,EAAoB/oF,EAAoB,QACxCgpF,EAAWhpF,EAAoB,QAC/B+D,EAAkB/D,EAAoB,QACtCmH,EAAQnH,EAAoB,QAE5Bq5D,EAAa7uD,EAAO6uD,WACpBuH,EAAYp2D,EAAOo2D,UACnBqoB,EAAqBroB,GAAaA,EAAU5+D,UAC5Cq1B,EAAO4xD,GAAsBA,EAAmBxyE,IAChDsxD,EAAcH,EAAoBG,YAClCC,EAAyBJ,EAAoBI,uBAE7CkhB,GAAiD/hF,GAAM,WAEzD,IAAIuB,EAAQ,IAAIygF,kBAAkB,GAElC,OADA5oF,EAAK82B,EAAM3uB,EAAO,CAAE/F,OAAQ,EAAGymF,EAAG,GAAK,GACnB,IAAb1gF,EAAM,MAIX2gF,EAAgBH,GAAiDthB,EAAoB0hB,2BAA6BniF,GAAM,WAC1H,IAAIuB,EAAQ,IAAIk4D,EAAU,GAG1B,OAFAl4D,EAAM+N,IAAI,GACV/N,EAAM+N,IAAI,IAAK,GACK,IAAb/N,EAAM,IAAyB,IAAbA,EAAM,MAKjCs/D,EAAuB,OAAO,SAAalrB,GACzCirB,EAAYpkE,MACZ,IAAI65D,EAASwrB,EAAShmF,UAAUL,OAAS,EAAIK,UAAU,QAAKJ,EAAW,GACnEgY,EAAM7W,EAAgB+4C,GAC1B,GAAIosC,EAA+C,OAAO3oF,EAAK82B,EAAM1zB,KAAMiX,EAAK4iD,GAChF,IAAI76D,EAASgB,KAAKhB,OACdmX,EAAMivE,EAAkBnuE,GACxBjR,EAAQ,EACZ,GAAImQ,EAAM0jD,EAAS76D,EAAQ,MAAM02D,EAAW,gBAC5C,MAAO1vD,EAAQmQ,EAAKnW,KAAK65D,EAAS7zD,GAASiR,EAAIjR,QAC7Cu/E,GAAiDG,IAK/C,OACA,SAAUlpF,EAAQD,GAExBC,EAAOD,QAAU,IAKX,OACA,SAAUC,EAAQD,EAASF,GAEjC,IAAImH,EAAQnH,EAAoB,QAEhCG,EAAOD,SAAWiH,GAAM,WAEtB,IAAI7E,EAAO,aAA8BV,OAEzC,MAAsB,mBAARU,GAAsBA,EAAKL,eAAe,iBAMpD,KACA,SAAU9B,EAAQD,EAASF,GAEjC,aAGAE,EAAQsB,YAAa,EACrBtB,EAAQmR,MAAQnR,EAAQk0B,IAAMl0B,EAAQqpF,OAASrpF,EAAQspF,WAAQ5mF,EAE/D,IAAI6mF,EAASzpF,EAAoB,QAE7B0pF,EAAS1pF,EAAoB,QAE7B2pF,EAAejM,EAAwBgM,GAEvCE,EAAQ5pF,EAAoB,QAEhC,SAAS09E,EAAwB/uE,GAAO,GAAIA,GAAOA,EAAInN,WAAc,OAAOmN,EAAc,IAAIkvE,EAAS,GAAI,GAAW,MAAPlvE,EAAe,IAAK,IAAIhN,KAAOgN,EAAW7N,OAAOkB,UAAUC,eAAe1B,KAAKoO,EAAKhN,KAAMk8E,EAAOl8E,GAAOgN,EAAIhN,IAAgC,OAAtBk8E,EAAO/+D,QAAUnQ,EAAYkvE,EAiBlQ,IAAIgM,EAAY,SAAmBhjB,GAClC,OAAO,IAAI4iB,EAAOxjB,WAAWY,IAI1BijB,EAAUD,IAIVE,EAAaF,IACbG,EAAWH,IACXI,EAAmBJ,IACnBK,EAAyBL,IACzBM,EAAWN,IACXO,EAAeP,IACfQ,EAAQR,EAAUH,EAAOY,KACzBC,EAAcV,IACdW,EAAaX,EAAUH,EAAOY,KAC9BG,EAAQZ,EAAUH,EAAOY,KACzBI,EAAsBb,IACtBc,EAAkBd,IAClBe,EAAoBf,IACpBgB,EAAyBhB,IACzBiB,EAAkBjB,IAClBkB,EAAoBlB,EAAUH,EAAOY,KACrCU,EAAsBnB,EAAUH,EAAOY,KACvCW,EAA2BpB,EAAUH,EAAOY,KAC5CY,EAAoBrB,EAAUH,EAAOY,KACrCa,EAAuBtB,IACvBuB,EAAyBvB,IACzBwB,EAA8BxB,IAC9ByB,EAAuBzB,IACvB0B,EAAiB1B,IACjB2B,EAAqB3B,IACrB4B,EAAU5B,EAAUH,EAAOgC,OAC3BC,EAAgB9B,IAChB+B,EAAe/B,EAAUH,EAAOgC,OAChCG,EAAiBhC,EAAUH,EAAOoC,aAClCC,EAA+BlC,IAC/BmC,EAAcnC,IACdoC,EAAiBpC,IACjBqC,EAAkBrC,IAClBsC,EAAOtC,EAAUH,EAAO0C,IAG5BtC,EAAQ3nE,GAAGynE,EAAMwC,GAAID,GAAMhqE,GAAGynE,EAAMyC,SAAUtC,GAAY5nE,GAAGynE,EAAM0C,OAAQtC,GAAU7nE,GAAGynE,EAAM2C,MAAOtC,GAErGF,EAAW5nE,GAAGynE,EAAM2C,MAAOtC,GAC3BA,EAAiB9nE,GAAGynE,EAAM2C,MAAOrC,GAGjCJ,EAAQ3nE,GAAGynE,EAAM4C,IAAKrC,GAAUhoE,GAAGynE,EAAM6C,OAAQtC,GAAUhoE,GAAGynE,EAAM8C,UAAWrC,GAAOloE,GAAGynE,EAAM+C,IAAKxC,GAGpGD,EAAuB/nE,GAAGynE,EAAM4C,IAAK/B,GAAOtoE,GAAGynE,EAAM6C,OAAQhC,GAAOtoE,GAAGynE,EAAM+C,IAAKlC,GAAOtoE,GAAGynE,EAAM8C,UAAWjC,GAI7GN,EAAShoE,GAAGynE,EAAMgD,IAAKxC,GACvBmB,EAAeppE,GAAGynE,EAAMgD,IAAKpB,GAK7BpB,EAAajoE,GAAGynE,EAAM4C,IAAKnC,GAAOloE,GAAGynE,EAAM6C,OAAQtC,GAAUhoE,GAAGynE,EAAM+C,IAAKxC,GAAUhoE,GAAGynE,EAAM8C,UAAWvC,GAEzGqB,EAAmBrpE,GAAGynE,EAAM4C,IAAKf,GAAStpE,GAAGynE,EAAM6C,OAAQlB,GAAgBppE,GAAGynE,EAAM+C,IAAKpB,GAAgBppE,GAAGynE,EAAM8C,UAAWnB,GAI7HlB,EAAMloE,GAAGynE,EAAMgD,IAAKxC,GACpBqB,EAAQtpE,GAAGynE,EAAMgD,IAAKpB,GAItBnB,EAAMloE,GAAGynE,EAAMiD,MAAOtC,GAAapoE,GAAGynE,EAAM2C,MAAO9B,GACnDF,EAAYpoE,GAAGynE,EAAM+C,IAAKnC,GAC1BA,EAAWroE,GAAGynE,EAAM2C,MAAO9B,GAC3BgB,EAAQtpE,GAAGynE,EAAMiD,MAAOlB,GACxBA,EAAcxpE,GAAGynE,EAAM+C,IAAKf,GAG5B,IAAIkB,EAAc,CAAClD,EAAM6C,OAAQ7C,EAAMmD,GAAInD,EAAM8C,UAAW9C,EAAM+C,IAAK/C,EAAMoD,KAAMpD,EAAMqD,MAAOrD,EAAMyC,SAAUzC,EAAM2C,MAAO3C,EAAM4C,IAAK5C,EAAMsD,WAAYtD,EAAMuD,IAAKvD,EAAMwD,WAKvKC,EAAiB,CAACzD,EAAMiD,MAAOjD,EAAMgD,IAAKhD,EAAM0D,MAAO1D,EAAM2D,YAAa3D,EAAM4D,WAAY5D,EAAM6D,aAAc7D,EAAM8D,kBAAmB9D,EAAM+D,WAAY/D,EAAMgE,UAAWhE,EAAMiE,YAAajE,EAAMkE,iBAAkBlE,EAAMmE,WAMjOtD,EAAMtoE,GAAGynE,EAAMgE,UAAWjD,GAAiBxoE,GAAGynE,EAAMiE,YAAajD,GAAmBzoE,GAAGynE,EAAMkE,iBAAkBjD,GAAwB1oE,GAAGynE,EAAMmE,UAAWjD,GAG3JJ,EAAoBvoE,GAAGynE,EAAMgE,UAAWjD,GAAiBxoE,GAAGynE,EAAMiE,YAAajD,GAAmBzoE,GAAGynE,EAAMkE,iBAAkBjD,GAAwB1oE,GAAGynE,EAAMmE,UAAWjD,GAGzKH,EAAgBxoE,GAAGynE,EAAM4D,WAAY/C,GACrCG,EAAkBzoE,GAAGynE,EAAM6D,aAAchD,GACzCI,EAAuB1oE,GAAGynE,EAAM8D,kBAAmBjD,GACnDK,EAAgB3oE,GAAGynE,EAAM+D,WAAYlD,GACrCM,EAAkB5oE,GAAGynE,EAAM4D,WAAY/C,GACvCO,EAAoB7oE,GAAGynE,EAAM6D,aAAchD,GAC3CQ,EAAyB9oE,GAAGynE,EAAM8D,kBAAmBjD,GACrDS,EAAkB/oE,GAAGynE,EAAM+D,WAAYlD,GACvCU,EAAqBhpE,GAAGynE,EAAM4D,WAAY/C,GAC1CW,EAAuBjpE,GAAGynE,EAAM6D,aAAchD,GAC9CY,EAA4BlpE,GAAGynE,EAAM8D,kBAAmBjD,GACxDa,EAAqBnpE,GAAGynE,EAAM+D,WAAYlD,GAK1CE,EAAgBxoE,GAAG2qE,EAAa/B,GAChCH,EAAkBzoE,GAAG2qE,EAAa9B,GAClCH,EAAuB1oE,GAAG2qE,EAAa7B,GACvCH,EAAgB3oE,GAAG2qE,EAAa5B,GAChCP,EAAgBxoE,GAAGkrE,EAAgBlC,GACnCP,EAAkBzoE,GAAGkrE,EAAgBjC,GACrCP,EAAuB1oE,GAAGkrE,EAAgBhC,GAC1CP,EAAgB3oE,GAAGkrE,EAAgB/B,GAGnCP,EAAkB5oE,GAAG2qE,EAAa/B,GAClCC,EAAoB7oE,GAAG2qE,EAAa9B,GACpCC,EAAyB9oE,GAAG2qE,EAAa7B,GACzCC,EAAkB/oE,GAAG2qE,EAAa5B,GAClCH,EAAkB5oE,GAAGkrE,EAAgBtC,GACrCC,EAAoB7oE,GAAGkrE,EAAgBrC,GACvCC,EAAyB9oE,GAAGkrE,EAAgBpC,GAC5CC,EAAkB/oE,GAAGkrE,EAAgBnC,GAErCC,EAAqBhpE,GAAG2qE,EAAa/B,GACrCK,EAAuBjpE,GAAG2qE,EAAa9B,GACvCK,EAA4BlpE,GAAG2qE,EAAa7B,GAC5CK,EAAqBnpE,GAAG2qE,EAAa5B,GACrCC,EAAqBhpE,GAAGkrE,EAAgBlC,GACxCC,EAAuBjpE,GAAGkrE,EAAgBjC,GAC1CC,EAA4BlpE,GAAGkrE,EAAgBhC,GAC/CC,EAAqBnpE,GAAGkrE,EAAgB/B,GAGxCb,EAAMtoE,GAAG2qE,EAAarC,GACtBC,EAAoBvoE,GAAG2qE,EAAarC,GAEpCA,EAAMtoE,GAAGkrE,EAAgB3C,GACzBA,EAAoBvoE,GAAGkrE,EAAgB3C,GAQvCV,EAAS7nE,GAAGynE,EAAM4C,IAAKX,GAAgB1pE,GAAGynE,EAAM6C,OAAQZ,GAAgB1pE,GAAGynE,EAAM+C,IAAKd,GAAgB1pE,GAAGynE,EAAM8C,UAAWb,GAG1HA,EAAe1pE,GAAG2qE,EAAajB,GAAgB1pE,GAAGkrE,EAAgBtB,GAClEA,EAA6B5pE,GAAG2qE,EAAajB,GAAgB1pE,GAAGkrE,EAAgBtB,GAIhF,IAAIiC,EAAqB,CAACpE,EAAM6C,OAAQ7C,EAAM+C,IAAK/C,EAAMoD,KAAMpD,EAAMqD,MAAOrD,EAAM0D,MAAO1D,EAAMsD,WAAYtD,EAAMuD,IAAKvD,EAAMwD,UAAWxD,EAAM4C,KAI7IrC,EAAShoE,GAAG6rE,EAAoBhC,GAAa7pE,GAAGynE,EAAMmD,GAAId,GAC1D5B,EAAMloE,GAAG6rE,EAAoBhC,GAAa7pE,GAAGynE,EAAMmD,GAAId,GACvD7B,EAAajoE,GAAG6rE,EAAoBhC,GAIpCA,EAAY7pE,GAAG6rE,EAAoBhC,GAAa7pE,GAAGynE,EAAMmD,GAAId,GAC5D9pE,GAAGynE,EAAMgD,IAAKV,GACfA,EAAgB/pE,GAAG6rE,EAAoBhC,GACvCC,EAAe9pE,GAAGynE,EAAM4C,IAAKjB,GAAgBppE,GAAGynE,EAAM6C,OAAQlB,GAAgBppE,GAAGynE,EAAM8C,UAAWjB,GAGlG,IAAIr3D,EAAM,SAAa0pD,GACtB,IAAIhkE,EAAMgkE,EAAOn7E,OACbsrF,EAAS,EACTC,EAAS,GACTC,EAAa,GAEjB,MAAOF,EAASn0E,EAAK,CACpB,IAAIy/B,EAAQuwC,EACRsE,EAAc,KACdnnB,EAAY,KACZonB,EAAc,EACdC,EAAkB,KAClBC,GAAgB,EAEpB,MAAON,EAASn0E,KAASs0E,EAAc70C,EAAMzxC,KAAKg2E,EAAOmQ,KAGxDE,EAAWxnF,KAAKm3E,EAAOmQ,MAGxB,MAAOA,EAASn0E,IAAQmtD,EAAYmnB,GAAe70C,EAAMzxC,KAAKg2E,EAAOmQ,KAGpEG,EAAc,KACd70C,EAAQ0tB,EAGJ1tB,EAAMktB,WACT8nB,EAAe,EACfD,EAAkB/0C,GACRg1C,GAAgB,GAC1BA,IAGDN,IACAI,IAGD,GAAIE,EAAe,EAIlB,IAAK,IAAInuF,EAAI6tF,EAASI,EAAajuF,EAAI6tF,EAAQ7tF,IAC9C+tF,EAAWxnF,KAAKm3E,EAAO19E,QAElB,CAKF+tF,EAAWxrF,OAAS,IACvBurF,EAAOvnF,KAAK,IAAI+iF,EAAO8E,KAAKL,IAC5BA,EAAa,IAIdF,GAAUM,EACVF,GAAeE,EAGf,IAAIE,EAAQH,EAAgB75D,OAC5By5D,EAAOvnF,KAAK,IAAI8nF,EAAM3Q,EAAO56E,MAAM+qF,EAASI,EAAaJ,MAS3D,OAJIE,EAAWxrF,OAAS,GACvBurF,EAAOvnF,KAAK,IAAI+iF,EAAO8E,KAAKL,IAGtBD,GAGRhuF,EAAQspF,MAAQC,EAAOxjB,WACvB/lE,EAAQqpF,OAASI,EACjBzpF,EAAQk0B,IAAMA,EACdl0B,EAAQmR,MAAQy4E,GAIV,OACA,SAAU3pF,EAAQknE,EAAqBrnE,GAE7C,aAC8fA,EAAoB,SAO5gB,OACA,SAAUG,EAAQD,EAASF,GAEjC,IAAIsjE,EAActjE,EAAoB,QAClCmH,EAAQnH,EAAoB,QAC5Bu3C,EAAUv3C,EAAoB,QAE9B0uF,EAAU5tF,OACV+O,EAAQyzD,EAAY,GAAGzzD,OAG3B1P,EAAOD,QAAUiH,GAAM,WAGrB,OAAQunF,EAAQ,KAAKl0C,qBAAqB,MACvC,SAAUj2C,GACb,MAAsB,UAAfgzC,EAAQhzC,GAAkBsL,EAAMtL,EAAI,IAAMmqF,EAAQnqF,IACvDmqF,GAKE,OACA,SAAUvuF,EAAQD,EAASF,GAEjC,IAAIiD,EAAWjD,EAAoB,QAC/Bu3C,EAAUv3C,EAAoB,QAC9BoC,EAAkBpC,EAAoB,QAEtC2uF,EAAQvsF,EAAgB,SAI5BjC,EAAOD,QAAU,SAAUqE,GACzB,IAAIuK,EACJ,OAAO7L,EAASsB,UAAmC3B,KAA1BkM,EAAWvK,EAAGoqF,MAA0B7/E,EAA0B,UAAfyoC,EAAQhzC,MAMhF,OACA,SAAUpE,EAAQD,EAASF,GAEjC,aAIA,SAAS4uF,IACR,OAAO,SAAUvtF,GACZA,IACHsC,KAAK2K,EAAIjN,IAJZnB,EAAQsB,YAAa,EASrBtB,EAAQ0uF,iBAAmBA,GAIrB,KACA,SAAUzuF,EAAQD,EAASF,GAEjC,IAAI8I,EAAW9I,EAAoB,QAC/B6uF,EAAe7uF,EAAoB,QACnCioE,EAAoBjoE,EAAoB,QACxCoC,EAAkBpC,EAAoB,QAEtCwI,EAAUpG,EAAgB,WAI9BjC,EAAOD,QAAU,SAAU+E,EAAG21C,GAC5B,IACIC,EADAx3C,EAAIyF,EAAS7D,GAAG0D,YAEpB,YAAa/F,IAANS,GAAmB4kE,EAAkBptB,EAAI/xC,EAASzF,GAAGmF,IAAYoyC,EAAqBi0C,EAAah0C,KAMtG,OACA,SAAU16C,EAAQD,EAASF,GAEjC,IAAIO,EAAOP,EAAoB,QAC3BklE,EAAallE,EAAoB,QACjCiD,EAAWjD,EAAoB,QAE/B+lE,EAAav+D,UAIjBrH,EAAOD,QAAU,SAAUu+D,EAAOqwB,GAChC,IAAIrsF,EAAIuM,EACR,GAAa,WAAT8/E,GAAqB5pB,EAAWziE,EAAKg8D,EAAMv6D,YAAcjB,EAAS+L,EAAMzO,EAAKkC,EAAIg8D,IAAS,OAAOzvD,EACrG,GAAIk2D,EAAWziE,EAAKg8D,EAAM7V,WAAa3lD,EAAS+L,EAAMzO,EAAKkC,EAAIg8D,IAAS,OAAOzvD,EAC/E,GAAa,WAAT8/E,GAAqB5pB,EAAWziE,EAAKg8D,EAAMv6D,YAAcjB,EAAS+L,EAAMzO,EAAKkC,EAAIg8D,IAAS,OAAOzvD,EACrG,MAAM+2D,EAAW,6CAMb,OACA,SAAU5lE,EAAQD,EAASF,GAEjC,IAAI6N,EAAS7N,EAAoB,QAU7BihE,GATSpzD,EAAO+zD,OACN/zD,EAAOg1D,QACTh1D,EAAO+0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,KACLp0D,EAAO6zD,OACF7zD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,WAEnBF,GADclzD,EAAOwzD,YACXxzD,EAAOkzD,SAEjBsC,GADYx1D,EAAO0zD,UACV1zD,EAAOw1D,QAEhB0rB,EAAW/uF,EAAoB,QAC/B8oE,EAAU9oE,EAAoB,QAC9BgvF,EAAShvF,EAAoB,QAC7BivF,EAAoBjvF,EAAoB,QAE5C,SAASkvF,EAAoBC,GACzB,IAAIC,EAAWD,EACfxrF,KAAKyrF,SAAWA,EACnBzrF,KAAK0rF,eAAiB,SAAS7kB,EAAKqB,EAAIyjB,EAAeriB,GACtD,IAImBsiB,EAJfplB,EAAMK,EAAIU,eACJskB,EAAUvuB,EAAU+tB,EAAOS,QACjCC,EAAQzuB,EAAU,KAClB0uB,EAAY5uB,EAAQ,GACpB6uB,EAAY,EACZC,EAAU1lB,EAAI0lB,QAEdC,EAAK,IAAIf,EAASa,GACtBjsF,KAAKyrF,SAASW,GAAGC,eAAexlB,EAAKslB,GACrCF,EAAYE,EAAGG,KAGf,IAAK,IAAI9S,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAAM,CAKxCoS,EAAW5rF,KAAKyrF,SAASc,MAAMC,MAAM3lB,EAAKqB,EAAI8jB,EAAWC,EACvDzS,EAAIA,GAEFhT,EAAIimB,UAAYtnB,EAAQunB,eAC3B1sF,KAAKyrF,SAASkB,WAAWnmB,EAAI0lB,QAAS1S,GACtCx5E,KAAKyrF,SAASc,MAAMK,YAAYZ,EAAWL,EAAcnS,GACvDyS,EAAWL,IAGd,IAAK,IAAI7tD,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAAM,CAC7C,IAAIyrC,EAAQqjB,EACRC,EAAWZ,EAAQhT,GAAGM,GAAIz7C,GAE1B+uD,EAASC,YAAc5nB,EAAQ4H,YAElCvD,EAAS,EACTqjB,EAAmBrmB,EAAIuF,IAAIihB,YAAcxjB,IAEzCA,EAAS,EACTqjB,EAAmBrmB,EAAIuF,IAAIkhB,kBAAoBzjB,GAEhDhD,EAAIsH,cAAiBpnE,KAAK4wD,IAAI,GACT,GAAnBu1B,GAKF7sF,KAAKyrF,SAASyB,gBAAgB1mB,EAAKsmB,GAC/B9sF,KAAKyrF,SAAS0B,WAAW3mB,EAAKsmB,EAAUf,KAM3C/rF,KAAKyrF,SAASc,MAAMa,UAAUvmB,EAAKyC,EAAMkQ,GAAIz7C,GAAK+uD,EAChDjB,GACF7rF,KAAKyrF,SAAS4B,WAAWxmB,EAAKimB,EAAUjB,EAASE,EAAOhuD,EACtDiuD,EAAUjuD,KAGb/9B,KAAKyrF,SAAS6B,qBAAqB9mB,EAAKgT,EAAIz7C,GAC5C2hC,EAAQotB,EAASS,gBAAkBjC,EAAkBkC,sBACrD9tB,EAAQotB,EAASS,gBAAkBvB,EAAUjuD,KAI/C/9B,KAAKyrF,SAASW,GAAGqB,aAAajnB,EAAKylB,IAGrCzvF,EAAOD,QAAUgvF,GAKX,OACA,SAAU/uF,EAAQD,GAGxBC,EAAOD,QAAgC,oBAAfmxF,aAAiD,oBAAZC,UAKvD,OACA,SAAUnxF,EAAQD,EAASF,GAEjC,IAAI6N,EAAS7N,EAAoB,QAC7B4hE,EAAS/zD,EAAO+zD,OAChBiB,EAAUh1D,EAAOg1D,QAKjBpB,GAJQ5zD,EAAO+0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,KACLp0D,EAAO6zD,OACF7zD,EAAO4zD,aAGrBR,GAFWpzD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,WACnBI,EAAcxzD,EAAOwzD,YACrBN,EAAUlzD,EAAOkzD,QAEjBsC,GADYx1D,EAAO0zD,UACV1zD,EAAOw1D,QA8FpB,SAASyF,IACL,IAAIyoB,EAAUvxF,EAAoB,QAC9BwxF,EAAgBxxF,EAAoB,QAEpCyxF,EAAY3oB,EAAQ2oB,UACpBpB,EAAevnB,EAAQunB,aAKvBqB,EAAK,KACT/tF,KAAKguF,IAAM,KACX,IAAIA,EAAM,KACNC,EAAM,KACN1B,EAAQ,KAIZvsF,KAAKwiF,WAAa,SAAU0L,EAAKC,EAAMC,EAAQC,GAC3CN,EAAKG,EACLluF,KAAKguF,IAAMG,EACXH,EAAMG,EACNF,EAAMI,EACN9B,EAAQ6B,GAGZ,IAAIE,EAAU,IAAIV,EA8BlB,SAASW,EAAW/nB,GAChB,IAAIgoB,EAASC,EAEb,GAAyB,GAArBjoB,EAAIE,IAAIgoB,UAyCZ,GAhCAD,EAAUjoB,EAAI4B,YAAY,GAAG,GAC7BomB,EAAUhoB,EAAI4B,YAAY,GAAG,GACL,GAApB5B,EAAIqD,cACJ4kB,GAAWjoB,EAAI4B,YAAY,GAAG,GAC9BomB,GAAWhoB,EAAI4B,YAAY,GAAG,KAE9BqmB,GAAWA,EACXD,GAAWA,GAEI,GAAfhoB,EAAIiS,UACJgW,EAAU/nF,KAAKD,IAAIgoF,EAASD,IAEhCC,GAAW,GAKXA,GAAWjoB,EAAIE,IAAIioB,eAefF,EAAU,OACNjoB,EAAIE,IAAI8C,QAAU,EAClBhD,EAAIE,IAAI8C,OAAS,EAKbhD,EAAIE,IAAI8C,OAAShD,EAAIE,IAAIgS,cACzBlS,EAAIE,IAAI8C,OAAShD,EAAIE,IAAIgS,aAGjClS,EAAIE,IAAIgS,YAAc,MACnB,CAEH,IAAIkW,EAAc,MAAQH,EAAU,OAChCjoB,EAAIE,IAAI8C,QAAUolB,GAClBpoB,EAAIE,IAAI8C,QAAwB,KAAdolB,EAAsB,KACpCpoB,EAAIE,IAAI8C,OAASolB,IACjBpoB,EAAIE,IAAI8C,OAASolB,IAGjBpoB,EAAIE,IAAIgS,aAAekW,EACvBpoB,EAAIE,IAAI8C,OAASolB,EAIbpoB,EAAIE,IAAI8C,OAAShD,EAAIE,IAAIgS,cACzBlS,EAAIE,IAAI8C,OAAShD,EAAIE,IAAIgS,aAIrClS,EAAIE,IAAIgS,YAAckW,OAvEtBpoB,EAAIE,IAAI8C,OAAS,EA0FzB,SAASqlB,EAAYroB,GACjB,IAAIgT,EAAIz7C,EAaR,IAZA2hC,EAAO,GAAK8G,EAAIsoB,eAAiBtoB,EAAIsoB,cAAgB,IACrDpvB,EAAO,GAAK8G,EAAIimB,UAAYjmB,EAAIimB,SAAW,GAG3CjmB,EAAIuoB,wBAAwBvoB,EAAIsoB,eAAe,KAC/CtoB,EAAIuoB,wBAAwB,IAAI,KAGR,GAApBvoB,EAAIqD,eACJrD,EAAIuoB,wBAAwBvoB,EAAIsoB,eAAetoB,EAAIimB,YACnDjmB,EAAIuoB,wBAAwB,IAAIvoB,EAAIimB,aAEnCjT,EAAK,EAAGA,EAAKhT,EAAIiS,UAAWe,EAC7B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,eAAgB9rC,EAAI,CACtC,IAAIixD,EAAyC,EAApCxoB,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIgvD,WACe,GAA3CvmB,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIkxD,mBACvBD,EAAK,GACTxoB,EAAI0oB,uBAAuB1oB,EAAIsoB,eAAeE,KAC9CxoB,EAAI0oB,uBAAuB1oB,EAAIsoB,eAAe,KAC9CtoB,EAAI0oB,uBAAuB,IAAIF,KAC/BxoB,EAAI0oB,uBAAuB,IAAI,MAK3C,SAASC,EAAuBtoB,EAAKuoB,GACjC,IAEIrxD,EAAIy7C,EAFJhT,EAAMK,EAAIU,eAId,GAAkC,GAA9Bf,EAAI2oB,uBAA6B,CAEjC,IAAI1yF,EAAGkzB,EACH0/D,EAAa/xB,EAAU,MACvBgyB,EAAahyB,EAAU,MAE3B,IADAkJ,EAAI2oB,uBAAyB,EACxB1yF,EAAI,EAAGkzB,EAAI,EAAGlzB,EAAI,IAAM,KAAO,EAAI+pE,EAAIiS,WAAYh8E,EAChDA,EAAI,IAAM+pE,EAAIiS,SACd4W,EAAW5yF,GAAK,EACQ,GAApB+pE,EAAIqD,eACJylB,EAAW7yF,GAAK,KAEpB4yF,EAAW5yF,GAAK2yF,EAAM,GAAGz/D,GACD,GAApB62C,EAAIqD,eACJylB,EAAW7yF,GAAK2yF,EAAM,GAAGz/D,MAC3BA,GAIV,IAAK6pD,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChCyoC,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIgvD,WAAa5nB,EAAQ4H,WAGpDuhB,EAAQiB,WAAW/oB,EAAK6oB,EAAYC,GAGpC5vB,EAAO,KAAOyF,EAAQ2oB,WAEtBpuB,EAAO8G,EAAIgpB,SAAYrqB,EAAQU,QAAUgB,EAAI4oB,UAAYtqB,EAAQ2oB,WAEjEpuB,EAAO8G,EAAIgpB,SAAY,IAAM3oB,EAAI4oB,UAAY,KAiErDzvF,KAAK0vF,sBAAwB,SAAU7oB,EAAK8oB,EAASC,EAASC,EAAQC,EAAWC,GAC7E,IAAIC,EACAC,EAAanyB,EAAY,CAAC,EAAG,IAKjCmyB,EAAW,GAAG,GAAK,IAAIpC,EACvBoC,EAAW,GAAG,GAAK,IAAIpC,EACvBoC,EAAW,GAAG,GAAK,IAAIpC,EACvBoC,EAAW,GAAG,GAAK,IAAIpC,EACvB,IAOIqC,EAPAC,EAAaryB,EAAY,CAAC,EAAG,IAEjCqyB,EAAW,GAAG,GAAK,IAAItC,EACvBsC,EAAW,GAAG,GAAK,IAAItC,EACvBsC,EAAW,GAAG,GAAK,IAAItC,EACvBsC,EAAW,GAAG,GAAK,IAAItC,EAIvB,IASIuC,EAEAryD,EAAIy7C,EAXJ4V,EAAQ,CAAC,KAAM,MACf5oB,EAAMK,EAAIU,eAEVO,EAAWpK,EAAY,CAAC,EAAG,IAC3BiuB,EAAgB,CAAC,GAAI,IACrBzjB,EAAK,CAAC,CAAC,EAAI,GAAK,CAAC,EAAI,IACrBmoB,EAAQ,CAAC,CAAC,EAAI,GAAK,CAAC,EAAI,IAsC5B,GA/BAjB,EAAM,GAAKO,EACXP,EAAM,GAAKQ,EAEuB,GAA9BppB,EAAI2oB,wBAEJA,EAAuBtoB,EAAKuoB,GAgBhC5oB,EAAI8pB,QAAU,GACT9pB,EAAI+pB,UAAY/pB,EAAIgqB,UAAY,IACjChqB,EAAI+pB,UAAY1pB,EAAIiR,eACpBtR,EAAI8pB,QAAU,GAOE,GAAhB9pB,EAAIiqB,SAAe,CAKnB,IAAI9iF,EACA+iF,EAAO,CAAC,KAAM,MAEdC,EAAU,EAEVtjB,EAAYjQ,EAAQ,GAExB,IAAKoc,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAAM,CAEjC,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChC2yD,EAAK3yD,GAAMqxD,EAAMrxD,GACjB4yD,EAAU,IAAW,IAALnX,EAAWrU,EAAQ2oB,UAWvC,GARIngF,EADAk5D,EAAIkJ,KAAO7Q,EAAQM,UAAYqH,EAAIkJ,KAAO7Q,EAAQG,OAC5C2uB,EAAI/W,kBAAkBpQ,EAAK6pB,EAAMC,EAASnX,EAC5CyW,EAAYE,EAAYjoB,EAAGsR,GAAK6W,EAAM7W,GACtC1R,EAAS0R,GAAKnM,GAEZ2gB,EAAIlf,iBAAiBjI,EAAK6pB,EAAMC,EAASnX,EAC3CyW,EAAYE,EAAYjoB,EAAGsR,GAAK6W,EAAM7W,GACtC1R,EAAS0R,GAAKnM,GAEX,GAAP1/D,EACA,OAAQ,EASZ,IAPIk5D,EAAIjpE,MAAQiyE,SAASC,eACrB6b,EAAcnS,GAAM1R,EAAS0R,GAAI,GAAK1R,EAAS0R,GAAI,GAC/CmS,EAAcnS,GAAM,IACpBmS,EAAcnS,GAAM1R,EAAS0R,GAAI,GAAKmS,EAAcnS,KAIvDz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAAM,CACtC,IAAI+uD,EAAWtmB,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAClC+uD,EAASC,WAAa1f,EAAUtvC,GAChC+uD,EAASmC,iBAAmB,SAKpC,IAAKzV,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChCyoC,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIgvD,WAAa5nB,EAAQoI,UAC5C/G,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIkxD,iBAAmB,EAC1CoB,EAAM7W,GAAIz7C,GAAMmqC,EAAGsR,GAAIz7C,GAAM,IAqBzC,GAhBAwwD,EAAW/nB,GAOX8nB,EAAQiB,WAAW/oB,EAAK4oB,EAAM,GAAIA,EAAM,IAOxC5oB,EAAIimB,SAAWtnB,EAAQyrB,aAEnB/pB,EAAIgqB,SACJrqB,EAAIimB,SAAWtnB,EAAQunB,kBACpB,GAAI7lB,EAAIjpE,MAAQiyE,SAASC,aAAc,CAgB1C,IAAIghB,EAAY,EACZC,EAAY,EAChB,IAAKvX,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChC+yD,GAAaT,EAAM7W,GAAIz7C,GACvBgzD,GAAa7oB,EAAGsR,GAAIz7C,GAK5B,GAAI+yD,GAAa,EAAOC,EAAW,CAE/B,IAAIC,EAAMxqB,EAAI0lB,QAAQhT,GAAG,GACrB+X,EAAMzqB,EAAI0lB,QAAQhT,GAAG1S,EAAIiS,QAAU,GAEnCuY,EAAI,GAAGjE,YAAciE,EAAI,GAAGjE,YACzBkE,EAAI,GAAGlE,YAAckE,EAAI,GAAGlE,aAE/BvmB,EAAIimB,SAAWtnB,EAAQunB,eAiBnC,GAXIlmB,EAAIimB,UAAYC,GAChBwD,EAAUC,EAEVC,EAASC,IAETH,EAAUD,EAEVG,EAASloB,GAITrB,EAAIkB,UAAyB,MAAbvB,EAAIwB,MACpB,IAAKwR,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChCyoC,EAAIwB,MAAMkpB,SAAS1X,GAAMhT,EAAI0qB,SAAS1X,GACtChT,EAAIwB,MAAM2jB,cAAcnS,GAAMmS,EAAcnS,GAC5ChT,EAAIwB,MAAMqF,UAAUmM,GAAIz7C,GAAMyoC,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIgvD,WACrDvmB,EAAIwB,MAAME,GAAGsR,GAAIz7C,GAAMqyD,EAAO5W,GAAIz7C,GAClCkgC,EAAOogB,UAAU7X,EAAI0lB,QAAQhT,GAAGM,GAAIz7C,GAAIozD,GAAI,EACxC3qB,EAAIwB,MAAMmpB,GAAG3X,GAAIz7C,GAAK,EAAG,KAKzByoC,EAAIimB,UAAYC,IAChBlmB,EAAIwB,MAAMiJ,IAAIuI,GAAIz7C,GAAMyoC,EAAIwB,MAAMiJ,IAAIuI,GAAIz7C,EAAK,GAC/CkgC,EAAOogB,UAAU7X,EAAIwB,MAAMzB,OAAOiT,GAAIz7C,EAAK,GAAI,EAC3CyoC,EAAIwB,MAAMzB,OAAOiT,GAAIz7C,GAAK,EAC1ByoC,EAAIwB,MAAMzB,OAAOiT,GAAIz7C,GAAI/+B,SAU7C,GAAI6nE,EAAIkJ,KAAO7Q,EAAQE,SAAWyH,EAAIkJ,KAAO7Q,EAAQK,QAAS,CAE1D,IAAI9iE,EACA6D,EAEJ,IAAK7D,EAAI,EAAGA,EAAI,GAAIA,IAChB+pE,EAAIoK,MAAMwgB,SAAS30F,GAAK+pE,EAAIoK,MAAMwgB,SAAS30F,EAAI,GAGnD,IADA6D,EAAI,EACCk5E,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChCz9B,GAAK8vF,EAAO5W,GAAIz7C,GAIxB,IAHAyoC,EAAIoK,MAAMwgB,SAAS,IAAM9wF,EAEzBA,EAAIkmE,EAAIoK,MAAMwgB,SAAS,GAClB30F,EAAI,EAAGA,EAAI,EAAGA,IACf6D,IAAMkmE,EAAIoK,MAAMwgB,SAAS30F,GAAK+pE,EAAIoK,MAAMwgB,SAAS,GAAK30F,IAChD0oE,EAAQuJ,QAAQjyE,GAG1B,IADA6D,EAAK,KAAUkmE,EAAIiS,QAAUjS,EAAIqD,aAAgBvpE,EAC5Ck5E,EAAK,EAAGA,EAAKhT,EAAIiS,QAASe,IAC3B,IAAKz7C,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAChCqyD,EAAO5W,GAAIz7C,IAAOz9B,EAmB9B,GAfAkmE,EAAIklB,eAAeA,eAAe7kB,EAAKupB,EAAQzE,EAAeuE,GAO9DnC,EAAGsD,iBAAiBxqB,GAGpBmpB,EAAWjC,EAAGuD,YAAY9qB,EAAKqpB,EAAQC,EAAWC,EAAa,GAE3DlpB,EAAI0qB,cACJtD,EAAIuD,YAAY3qB,GAEhBA,EAAIkB,UAAyB,MAAbvB,EAAIwB,MAAe,CACnC,IAAKjqC,EAAK,EAAGA,EAAKyoC,EAAIqD,aAAc9rC,IAAM,CACtC,IAAIpO,EACJ,IAAKA,EAAI,EAAGA,EAAIm+D,EAAWn+D,IACvB62C,EAAIwB,MAAMypB,QAAQ1zD,GAAIpO,GAAK62C,EAAIwB,MAAMypB,QAAQ1zD,GAAIpO,EAC/Ck3C,EAAI4oB,WACV,IAAK9/D,EAAIm+D,EAAWn+D,EAAI,KAAMA,IAC1B62C,EAAIwB,MAAMypB,QAAQ1zD,GAAIpO,GAAKy/D,EAAMrxD,GAAIpO,EAAIm+D,GAGjDvB,EAAMmF,gBAAgB7qB,EAAKqpB,GAK/B,OAFArB,EAAYroB,GAELwpB,GAtnBf7qB,EAAQwsB,SAAW,IAUnBxsB,EAAQysB,UAAY,KAMpBzsB,EAAQ0sB,UAAY,GACpB1sB,EAAQ2oB,UAAa,IAAM3oB,EAAQ0sB,UAKnC1sB,EAAQ2sB,SAAW,IAKnB3sB,EAAQ4sB,QAAU,GAKlB5sB,EAAQ8H,OAAS,GAKjB9H,EAAQ6sB,QAAU,GAClB7sB,EAAQ8sB,QAAU,GAKlB9sB,EAAQ4E,QAAU,GAClB5E,EAAQ8E,QAAU,GAClB9E,EAAQ+sB,OAAS,EACjB/sB,EAAQgtB,OAAS,EAKjBhtB,EAAQU,QAAU,KAClBV,EAAQ0C,SAAY1C,EAAQU,QAAU,EAAI,EAC1CV,EAAQuC,UAAY,IACpBvC,EAAQwL,WAAcxL,EAAQuC,UAAY,EAAI,EAE9CvC,EAAQoI,UAAY,EACpBpI,EAAQqI,WAAa,EACrBrI,EAAQ4H,WAAa,EACrB5H,EAAQsI,UAAY,EAcpBtI,EAAQyrB,aAAe,EACvBzrB,EAAQitB,YAAc,EACtBjtB,EAAQunB,aAAe,EACvBvnB,EAAQktB,YAAc,EAEtBltB,EAAQuJ,QAAU,EAAC,UAAgB,SAClB,GAAZ,UAAe,QAAe,YAAiB,SAAY,EAC5D,OAAa,QAAc,QAAW,GA2iB1ClyE,EAAOD,QAAU4oE,GAKX,OACA,SAAU3oE,EAAQknE,EAAqBrnE,GAE7C,aACAA,EAAoBkB,EAAEmmE,GACSrnE,EAAoBU,EAAE2mE,EAAqB,mBAAmB,WAAa,OAAO4uB,KAClFj2F,EAAoBU,EAAE2mE,EAAqB,yBAAyB,WAAa,OAAO6uB,KACxFl2F,EAAoBU,EAAE2mE,EAAqB,sBAAsB,WAAa,OAAO8uB,KAC/F,IAAIC,EAAqHp2F,EAAoB,QACxEA,EAAoB,QAI9G,SAASi2F,EAAgBtnF,GACvB,IAAI0nF,EAAgB,CAAC,CACnB10F,IAAK,SACL+a,KAAM,CAAC,SAAU,WAChB,CACD/a,IAAK,WACL+a,KAAM,CAAC,WACN,CACD/a,IAAK,QACL+a,KAAM,CAAC,WAGL+lE,EAAW,SAAkB9zE,EAAKiO,GACpC,OAAOA,EAAMxK,OAAM,SAAUmM,GAC3B,IAAI+3E,GAAY,EAUhB,OARqB,UAAjB/3E,EAAK7B,KAAK,IAAkB1U,MAAMsH,QAAQX,EAAI4P,EAAK5c,OAE5C4c,EAAK7B,KAAK+gE,MAAK,SAAUn8E,GAClC,OAAOA,IAAMR,OAAOs1F,EAAiI,KAAxIt1F,CAA8I6N,EAAI4P,EAAK5c,YAFpK20F,GAAY,GAOPA,GAAaC,EAAiB5nF,EAAK4P,EAAK5c,SAInD,IAAK8gF,EAAS9zE,EAAK0nF,GACjB,MAAM,IAAI5/C,MAAM,qGAGpB,SAASy/C,EAAsBvnF,GAC7B,IAAI6nF,EAAuB,CAAC,CAC1B70F,IAAK,MACL+a,KAAM,CAAC,SAAU,WAChB,CACD/a,IAAK,WACL+a,KAAM,CAAC,YAGL+lE,EAAW,SAAkB9zE,EAAKiO,GACpC,OAAOA,EAAMxK,OAAM,SAAUmM,GAC3B,IAAI+3E,EAAY/3E,EAAK7B,KAAK+gE,MAAK,SAAUn8E,GACvC,OAAOA,IAAMR,OAAOs1F,EAAiI,KAAxIt1F,CAA8I6N,EAAI4P,EAAK5c,SAEtK,OAAO20F,GAAaC,EAAiB5nF,EAAK4P,EAAK5c,SAInD,IAAK8gF,EAAS9zE,EAAK6nF,GACjB,MAAM,IAAI//C,MAAM,2FAGpB,SAAS0/C,EAAmBxnF,GAC1B,IAAI8nF,EAAmB,CAAC,CACtB90F,IAAK,MACL+a,KAAM,CAAC,SAAU,WAChB,CACD/a,IAAK,UACL+a,KAAM,CAAC,SAAU,WAChB,CACD/a,IAAK,WACL+a,KAAM,CAAC,SAAU,YAGf+lE,EAAW,SAAkB9zE,EAAKiO,GACpC,OAAOA,EAAMxK,OAAM,SAAUmM,GAC3B,IAAI+3E,EAAY/3E,EAAK7B,KAAK+gE,MAAK,SAAUn8E,GACvC,OAAOA,IAAMR,OAAOs1F,EAAiI,KAAxIt1F,CAA8I6N,EAAI4P,EAAK5c,SAEtK,OAAO20F,GAAaC,EAAiB5nF,EAAK4P,EAAK5c,SAInD,IAAK8gF,EAAS9zE,EAAK8nF,GACjB,MAAM,IAAIhgD,MAAM,wHAIpB,SAAS8/C,EAAiB5nF,EAAKhN,GAC7B,OAAOb,OAAOkB,UAAUC,eAAe1B,KAAKoO,EAAKhN,IAAqB,OAAbgN,EAAIhN,SAA8BiB,IAAb+L,EAAIhN,KAK9E,OACA,SAAUxB,EAAQD,EAASF,GAEjC,IAAI+D,EAAkB/D,EAAoB,QACtCk8C,EAAkBl8C,EAAoB,QACtC+oF,EAAoB/oF,EAAoB,QAGxCm8C,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAO/pB,EAAIgqB,GAC1B,IAGIj7C,EAHA4D,EAAIlB,EAAgBs4C,GACpB15C,EAASomF,EAAkB9jF,GAC3B0E,EAAQuyC,EAAgBI,EAAW35C,GAIvC,GAAIy5C,GAAe9pB,GAAMA,GAAI,MAAO3vB,EAASgH,EAG3C,GAFAtI,EAAQ4D,EAAE0E,KAENtI,GAASA,EAAO,OAAO,OAEtB,KAAMsB,EAASgH,EAAOA,IAC3B,IAAKyyC,GAAezyC,KAAS1E,IAAMA,EAAE0E,KAAW2oB,EAAI,OAAO8pB,GAAezyC,GAAS,EACnF,OAAQyyC,IAAgB,IAI9Bj8C,EAAOD,QAAU,CAGfq8C,SAAUJ,GAAa,GAGvBlsC,QAASksC,GAAa,KAMlB,KACA,SAAUh8C,EAAQD,EAASF,GAEjC,IAAI02F,EAAgB12F,EAAoB,QACpC22F,EAAc32F,EAAoB,QAElC+lE,EAAav+D,UAGjBrH,EAAOD,QAAU,SAAUi9C,GACzB,GAAIu5C,EAAcv5C,GAAW,OAAOA,EACpC,MAAM4oB,EAAW4wB,EAAYx5C,GAAY,2BAMrC,OACA,SAAUh9C,EAAQD,EAASF,GAEjC,IAAIkoE,EAAsBloE,EAAoB,QAE1CsK,EAAMD,KAAKC,IAIfnK,EAAOD,QAAU,SAAUi9C,GACzB,OAAOA,EAAW,EAAI7yC,EAAI49D,EAAoB/qB,GAAW,kBAAoB,IAMzE,OACA,SAAUh9C,EAAQknE,EAAqBrnE,GAE7C,aAEA,SAAS6gD,EAAQlyC,GAGf,OAAOkyC,EAAU,mBAAqB1/C,QAAU,iBAAmBA,OAAOsI,SAAW,SAAUkF,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBxN,QAAUwN,EAAIhG,cAAgBxH,QAAUwN,IAAQxN,OAAOa,UAAY,gBAAkB2M,GACvHkyC,EAAQlyC,GARkB3O,EAAoBU,EAAE2mE,EAAqB,KAAK,WAAa,OAAOxmB,MAa7F,KACA,SAAU1gD,EAAQD,EAASF,GAEjC,IAAI+9C,EAAU/9C,EAAoB,QAC9Bg+C,EAAQh+C,EAAoB,SAE/BG,EAAOD,QAAU,SAAUyB,EAAKN,GAC/B,OAAO28C,EAAMr8C,KAASq8C,EAAMr8C,QAAiBiB,IAAVvB,EAAsBA,EAAQ,MAChE,WAAY,IAAIsF,KAAK,CACtBk1B,QAAS,SACTt6B,KAAMw8C,EAAU,OAAS,SACzBE,UAAW,4CACX24C,QAAS,2DACT9rF,OAAQ,yCAMJ,OACA,SAAU3K,EAAQD,EAASF,GAEjC,IAAIyH,EAAazH,EAAoB,QACjCsjE,EAActjE,EAAoB,QAClCk+C,EAA4Bl+C,EAAoB,QAChDm+C,EAA8Bn+C,EAAoB,QAClD8I,EAAW9I,EAAoB,QAE/B8D,EAASw/D,EAAY,GAAGx/D,QAG5B3D,EAAOD,QAAUuH,EAAW,UAAW,YAAc,SAAiBlD,GACpE,IAAIiO,EAAO0rC,EAA0Bj6C,EAAE6E,EAASvE,IAC5Cu2C,EAAwBqD,EAA4Bl6C,EACxD,OAAO62C,EAAwBh3C,EAAO0O,EAAMsoC,EAAsBv2C,IAAOiO,IAMrE,OACA,SAAUrS,EAAQD,EAASF,GAEjC,IAAIu3C,EAAUv3C,EAAoB,QAE9B8kE,EAAUviE,OAEdpC,EAAOD,QAAU,SAAUi9C,GACzB,GAA0B,WAAtB5F,EAAQ4F,GAAwB,MAAM31C,UAAU,6CACpD,OAAOs9D,EAAQ3nB,KAMX,OACA,SAAUh9C,EAAQD,EAASF,GAoEjC,IAAI6N,EAAS7N,EAAoB,QAC7BqjE,EAASx1D,EAAOw1D,OAEpB,SAASwzB,IACR,IAAInF,EAEJ/tF,KAAKwiF,WAAc,SAAS0L,GAC3BH,EAAKG,GAGNluF,KAAKqsF,eAAiB,SAASxlB,EAAKolB,GACnC,IACIkH,EADA3sB,EAAMK,EAAIU,eAEV2kB,EAAU1lB,EAAI0lB,QAEdkH,EAAcrF,EAAGsF,aAAaxsB,GAClColB,EAAUK,MAAQ8G,EAAiC,EAAnB5sB,EAAI8sB,cAAoB9sB,EAAIiS,QA6C5D,IAAI8a,EAAY,KAAY/sB,EAAIiS,QAAU,EAMtC5R,EAAI+c,MAAQ,IAEfuP,EAAY,EAAK,IAAoB,IAAZtsB,EAAI+c,OACxB/c,EAAIiR,eAAiB,MAAQ,EAAI,KAMtCqb,EAAY,MAORtsB,EAAI2sB,aACPL,EAAY,EAAK,IAAO,MAAUtsB,EAAIiR,eAAiB,MAAQ,EAAI,MAIrEtR,EAAIwJ,QAAUmjB,EAAYC,EACtB5sB,EAAIwJ,QAAUujB,IACjB/sB,EAAIwJ,QAAUujB,IACX/sB,EAAIwJ,QAAU,GAAKnJ,EAAIgd,qBAC1Brd,EAAIwJ,QAAU,GAEf,IAAIyjB,EAAgBxH,EAAUK,KAAO9lB,EAAIiS,QACrC/xE,KAAKC,IAAI6/D,EAAIktB,SAAUltB,EAAIwJ,SAoB/B,OAlBIyjB,EAAgBN,IACnBM,EAAgBN,GAEjBzzB,EAAQ,GAAK8G,EAAIwJ,QAAU,GAC3BtQ,EAAQ8G,EAAIwJ,SAAW,GAEvBkc,EAAQ7S,cAAgB,EAGP,MAAb7S,EAAIwB,QAKPxB,EAAIwB,MAAMikB,UAAYA,EAAUK,KAAO,EACvC9lB,EAAIwB,MAAM2rB,SAAWntB,EAAIktB,UAGnBD,GAQRzzF,KAAK4zF,YAAc,SAAS/sB,EAAKolB,EAAWD,EAAW6H,GACtD,IACIC,EADAttB,EAAMK,EAAIU,eAEJmsB,EAAWltB,EAAIktB,SAAU1jB,EAAUxJ,EAAIwJ,QAGtC,GAAP6jB,IACHH,GAAYzH,GAEoB,IAAN,EAAtBzlB,EAAIutB,mBACR/jB,GAAW,IAEZgc,EAAUM,KAAOL,EAGF,GAAXyH,EAA0B,EAAV1jB,GACnB8jB,EAAWJ,EAAsB,EAAV1jB,EAAe,GACtCgc,EAAUM,MAAQwH,EAClBttB,EAAIutB,iBAAmB,MAEvBD,EAAW,EACXttB,EAAIutB,iBAAmB,IAMlBltB,EAAIgd,mBAAqB,IAA4B,EAAtBrd,EAAIutB,mBACvC/H,EAAUM,MAAQ,GAAKL,IAIzB,IAAI+H,EAAcN,EAA0B,EAAdltB,EAAIwJ,QAAe,GAAK0jB,EACnC,EAAdltB,EAAIwJ,QAAe,GAKxB,OAJAgkB,GAAcF,EAEVE,EAAa,IAChBA,EAAa,GACPA,GAORh0F,KAAKi0F,WAAa,SAASztB,EAAK0tB,GAC/B1tB,EAAIktB,UAAYQ,EAAG3G,eAAiB2G,EAAGC,cAOxCn0F,KAAKytF,aAAe,SAASjnB,EAAKylB,GACjC,IAAImI,EACAlI,EAAU1lB,EAAI0lB,QAElB1lB,EAAIktB,UAAYzH,EAAYzlB,EAAIiS,QAChC,IAAI4b,EAAe,EACnBnI,EAAQ5S,eAAiB,EACzB4S,EAAQ7S,cAAgB,EAGc,IAAjC+a,EAAY5tB,EAAIktB,SAAW,KAC/BW,GAAgBD,GAEjBA,EAAa5tB,EAAIktB,SAAWW,EAAgB7tB,EAAIwJ,QAC5CokB,EAAY,IACf10B,EAAQ,GAAK00B,EAAY,GACzB10B,EAAQ00B,GAAa,GACrBC,GAAgBD,GAyBhB,IAAIE,EAAY5tF,KAAKC,IAA8B,EAA1BulF,EAAQ/S,gBAAqBkb,GAAgB,EACtEnI,EAAQ7S,eAAiB,EAAIib,EAC7BD,GAAgB,EAAIC,EACpB9tB,EAAIktB,UAAY,EAAIY,EACpBpI,EAAQ/S,iBAAmBmb,EAG5BpI,EAAQ5S,gBAAkB+a,EAC1B7tB,EAAIktB,UAAYW,GAIlB73F,EAAOD,QAAU22F,GAKX,KACA,SAAU12F,EAAQD,EAASF,GAEjC,IAAIk4F,EAAQl4F,EAAoB,QAIhCG,EAAOD,QAAU,SAAUi9C,GACzB,IAAI3U,GAAU2U,EAEd,OAAO3U,IAAWA,GAAqB,IAAXA,EAAe,EAAI0vD,EAAM1vD,KAMjD,OACA,SAAUroC,EAAQD,EAASF,GAEjC,IAAIklE,EAAallE,EAAoB,QACjC22F,EAAc32F,EAAoB,QAElC+lE,EAAav+D,UAGjBrH,EAAOD,QAAU,SAAUi9C,GACzB,GAAI+nB,EAAW/nB,GAAW,OAAOA,EACjC,MAAM4oB,EAAW4wB,EAAYx5C,GAAY,wBAMrC,OACA,SAAUh9C,EAAQD,EAASF,GAEjC,aAEA,IAAIk3C,EAAIl3C,EAAoB,QACxBO,EAAOP,EAAoB,QAC3BsjE,EAActjE,EAAoB,QAClCo+C,EAAyBp+C,EAAoB,QAC7CklE,EAAallE,EAAoB,QACjCioE,EAAoBjoE,EAAoB,QACxC8O,EAAW9O,EAAoB,QAC/BkE,EAAWlE,EAAoB,QAC/Bm4F,EAAYn4F,EAAoB,QAChCo4F,EAAiBp4F,EAAoB,QACrCq4F,EAAkBr4F,EAAoB,QACtCoC,EAAkBpC,EAAoB,QACtC+9C,EAAU/9C,EAAoB,QAE9Bs4F,EAAUl2F,EAAgB,WAC1B2jE,EAAav+D,UACbyI,EAAUqzD,EAAY,GAAGrzD,SACzBhJ,EAAUq8D,EAAY,GAAGr8D,SACzB88D,EAAcT,EAAY,GAAGpgE,OAC7BkH,EAAMC,KAAKD,IAEXmuF,EAAgB,SAAUl/C,EAAQm/C,EAAal8C,GACjD,OAAIA,EAAYjD,EAAO12C,QAAgB,EACnB,KAAhB61F,EAA2Bl8C,EACxBrsC,EAAQopC,EAAQm/C,EAAal8C,IAKtCpF,EAAE,CAAElsC,OAAQ,SAAUgxC,OAAO,GAAQ,CACnCy8C,WAAY,SAAoBD,EAAaE,GAC3C,IACIC,EAAYC,EAAOC,EAAUx/C,EAAQy/C,EAAcC,EAAmBC,EAAcC,EAAW50B,EAD/Fp/D,EAAIm5C,EAAuBz6C,MAE3B47C,EAAW,EACX25C,EAAiB,EACjB7vF,EAAS,GACb,IAAK4+D,EAAkBuwB,GAAc,CAEnC,GADAG,EAAa7pF,EAAS0pF,GAClBG,IACFC,EAAQ10F,EAASk6C,EAAuBg6C,EAAeI,OACjDvoF,EAAQ2oF,EAAO,MAAM,MAAM7yB,EAAW,mDAG9C,GADA8yB,EAAWV,EAAUK,EAAaF,GAC9BO,EACF,OAAOt4F,EAAKs4F,EAAUL,EAAavzF,EAAGyzF,GACjC,GAAI36C,GAAW46C,EACpB,OAAO1xF,EAAQ/C,EAASe,GAAIuzF,EAAaE,GAG7Cr/C,EAASn1C,EAASe,GAClB6zF,EAAe50F,EAASs0F,GACxBO,EAAoB7zB,EAAWwzB,GAC1BK,IAAmBL,EAAex0F,EAASw0F,IAChDM,EAAeF,EAAan2F,OAC5Bs2F,EAAY7uF,EAAI,EAAG4uF,GACnBz5C,EAAWg5C,EAAcl/C,EAAQy/C,EAAc,GAC/C,OAAqB,IAAdv5C,EACL8kB,EAAc00B,EACV70F,EAASw0F,EAAaI,EAAcv5C,EAAUlG,IAC9Cg/C,EAAgBS,EAAcz/C,EAAQkG,EAAU,QAAI38C,EAAW81F,GACnErvF,GAAU06D,EAAY1qB,EAAQ6/C,EAAgB35C,GAAY8kB,EAC1D60B,EAAiB35C,EAAWy5C,EAC5Bz5C,EAAWg5C,EAAcl/C,EAAQy/C,EAAcv5C,EAAW05C,GAK5D,OAHIC,EAAiB7/C,EAAO12C,SAC1B0G,GAAU06D,EAAY1qB,EAAQ6/C,IAEzB7vF,MAOL,OACA,SAAUlJ,EAAQD,GAExBC,EAAOD,QAAU,SAAUw+C,EAAQr9C,GACjC,MAAO,CACLL,aAAuB,EAAT09C,GACdzwC,eAAyB,EAATywC,GAChBtqC,WAAqB,EAATsqC,GACZr9C,MAAOA,KAOL,OACA,SAAUlB,EAAQD,EAASF,GAEjC,IAAIyE,EAAczE,EAAoB,QAClCmQ,EAASnQ,EAAoB,QAE7Bo9E,EAAoB35E,SAASzB,UAE7Bm3F,EAAgB10F,GAAe3D,OAAOkE,yBAEtCo0F,EAASjpF,EAAOitE,EAAmB,QAEnCic,EAASD,GAA0D,cAAhD,aAAuCz4F,KAC1DykE,EAAeg0B,KAAY30F,GAAgBA,GAAe00F,EAAc/b,EAAmB,QAAQnvE,cAEvG9N,EAAOD,QAAU,CACfk5F,OAAQA,EACRC,OAAQA,EACRj0B,aAAcA,IAMV,OACA,SAAUjlE,EAAQD,GAExB,SAASo5F,EAAYx/E,EAAK1P,EAAKmiE,EAAKgtB,GAChC51F,KAAK61F,KAAO1/E,EACZnW,KAAK81F,OAASrvF,EACdzG,KAAK+1F,MAAQntB,EACb5oE,KAAKg2F,KAAOJ,EAGhB,IAAIK,EAAS,CAGb,KAAc,CACV,EAAG,EACH,EAAG,GAGP,KAAc,CACV,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAGV,KAAc,CACV,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAGV,KAAc,CACV,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAGb,KAAc,CACV,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAGb,KAAc,CACV,EAAG,EAAG,GAAI,GAAI,GAAI,GAClB,EAAG,EAAG,EAAG,GAAI,EAAG,EAChB,GAAI,EAAG,GAAI,GAAI,EAAG,EAClB,GAAI,GAAI,GAAI,GAAI,GAAI,EACpB,EAAG,EAAG,EAAG,GAAI,EAAG,EAChB,EAAG,EAAG,EAAG,EAAG,EAAG,GAGnB,KAAc,CACV,EAAG,EAAG,EAAG,GAAI,GAAI,EACjB,EAAG,EAAG,EAAG,GAAI,EAAG,EAChB,EAAG,EAAG,EAAG,GAAI,EAAG,EAChB,GAAI,GAAI,GAAI,GAAI,GAAI,EACpB,GAAI,EAAG,EAAG,GAAI,EAAG,EACjB,GAAI,EAAG,EAAG,EAAG,EAAG,GAGpB,KAAc,CACV,EAAG,EAAG,EAAG,GAAI,GAAI,EACjB,EAAG,EAAG,EAAG,EAAG,EAAG,EACf,EAAG,EAAG,EAAG,EAAG,EAAG,EACf,GAAI,EAAG,EAAG,GAAI,EAAG,EACjB,GAAI,EAAG,EAAG,EAAG,EAAG,EAChB,GAAI,EAAG,EAAG,EAAG,EAAG,GAGpB,MAAe,CACX,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1B,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACzB,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAC1B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGzB,MAAe,CACX,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1B,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GACzB,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAC3B,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EACzB,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAG1B,MAAe,CACX,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1B,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GACxB,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAC1B,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAG5B,MAAe,CACX,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACzD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAG5D,MAAe,CACX,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClE,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7D,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC9D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7D,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC7D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC7D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAC1D,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAG5D,MAAe,CACX,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClE,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAC9D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnE,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACpE,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EACvE,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACvE,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACzE,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EACvE,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EACxE,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACzE,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC1E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,EAC5E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,EAC7E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,EAC7E,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAG1D,MAAe,CACX,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACtE,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACtE,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACvE,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACzE,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC3E,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAC5E,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGxD,MAAe,CACX,EAAQ,GAAQ,EAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GACxD,GAAQ,GAAQ,GAAQ,EAAQ,GAAQ,GAAQ,GAAQ,IAG5D,MAAe,CACX,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAQ,GAC9D,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,EAAQ,GAG5D,IAAa,CACT,EAAG,EACH,EAAG,GAGP,IAAa,CACT,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAGV,IAAa,CACT,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAGV,IAAa,CACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GACT,EAAG,EAAG,EAAG,IAGb,IAAa,CACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAGb,IAAa,CACT,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,GAAI,GAAI,GACjB,EAAG,EAAG,GAAI,GAAI,GAAI,GAClB,EAAG,EAAG,GAAI,GAAI,GAAI,GAClB,EAAG,GAAI,GAAI,GAAI,GAAI,IAGvB,IAAa,CACT,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,GAAI,GAAI,GACjB,EAAG,EAAG,EAAG,GAAI,GAAI,GACjB,EAAG,GAAI,GAAI,GAAI,GAAI,GACnB,EAAG,EAAG,GAAI,GAAI,GAAI,GAClB,GAAI,GAAI,GAAI,GAAI,GAAI,IAGxB,IAAa,CACT,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,EAAG,EAAG,GACf,EAAG,EAAG,EAAG,EAAG,GAAI,GAChB,EAAG,EAAG,GAAI,GAAI,GAAI,IAGtB,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GACxB,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GACxB,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GACzB,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1B,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhC,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GACtB,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GACvB,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GACxB,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GACzB,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3B,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3B,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GACzB,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAG9B,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GACtB,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GACtB,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GACvB,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GACxB,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1B,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GACzB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhC,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACvD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACvD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,OAAgB,CACZ,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACvD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACvD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EACvD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EACzD,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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0D,MACF/0D,EAAOq0D,WACbr0D,EAAOo0D,MACdP,EAAS7zD,EAAO6zD,OAIhBT,GAHcpzD,EAAO4zD,YACV5zD,EAAO8yD,SACL9yD,EAAOszD,WACRtzD,EAAOozD,WAMnB6H,GALcj7D,EAAOwzD,YACXxzD,EAAOkzD,QACLlzD,EAAO0zD,UACV1zD,EAAOw1D,OAENrjE,EAAoB,SAGlC,SAASuxF,IAER,IAAI6pD,EAAW,EACb,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBAEA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBAAuB,mBAEvB,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBAAuB,mBAEvB,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBAAuB,mBAEvB,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBAAuB,kBAEvB,WAAgBn5E,EAAKG,MAAQ,GAAM,QACnC,WAAgBH,EAAKG,MAAQ,GAAM,QACnC,WAAeH,EAAKG,MAAQ,GAAM,QAClC,WAAeH,EAAKG,MAAQ,GAAM,QAClC,UAAcH,EAAKG,MAAQ,GAAM,QACjC,UAAcH,EAAKG,MAAQ,GAAM,QACjC,UAAcH,EAAKG,MAAQ,GAAM,QACjC,SAAaH,EAAKG,MAAQ,GAAM,QAEhC,mBAA2B,mBAC3B,kBAAyB,mBACzB,mBAA0B,mBAC1B,mBAGEi5E,EAAK,GACLjvD,EAAK,GAELkvD,EAAM,CACN,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEF,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBAED,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEF,CACC,kBACA,iBACA,kBAEA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBAEA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IAEC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBAED,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAIFC,EAAWD,EAAIxyE,EAAQ4H,YACvB8qE,EAAKF,EAAIxyE,EAAQ4H,YACjB+qE,EAAKH,EAAIxyE,EAAQ4H,YACjBgrE,EAAKJ,EAAIxyE,EAAQ4H,YAajBkuD,EAAQ,CACR,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAM5D,SAAS+c,EAAel7C,EAAIm7C,EAAO/4I,GAKlC,IAJA,IAuEW+4D,EAAGttD,EA8BTwmF,EArGD+mD,EAAK,GAELn7C,EAAKk7C,EAAQ,IAAM,GAAK,IAEnBx7I,GAAK,GAAIA,EAAI,EAAGA,IAAK,CAC7B,IAAI47D,EAAG75D,EAAGb,EAEV06D,EAAIo/E,EAASS,GAAM,IACnB15I,EAAIs+F,E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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!(argsLength in factories)) {\n    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n  var fn = aFunction(this);\n  var partArgs = slice.call(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = partArgs.concat(slice.call(arguments));\n    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n  };\n  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n  return boundFunction;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","module.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  next = iterator.next;\n  while (!(step = next.call(iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator);\n      throw error;\n    }\n    if (typeof result == 'object' && result && result instanceof Result) return result;\n  } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n  var returnMethod = iterator['return'];\n  if (returnMethod !== undefined) {\n    return anObject(returnMethod.call(iterator)).value;\n  }\n};\n","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n/*  */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n  return v === undefined || v === null\n}\n\nfunction isDef (v) {\n  return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n  return v === true\n}\n\nfunction isFalse (v) {\n  return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n  return (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    // $flow-disable-line\n    typeof value === 'symbol' ||\n    typeof value === 'boolean'\n  )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n  return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n  return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n  return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n  return (\n    isDef(val) &&\n    typeof val.then === 'function' &&\n    typeof val.catch === 'function'\n  )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n  return val == null\n    ? ''\n    : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n      ? JSON.stringify(val, null, 2)\n      : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n  str,\n  expectsLowerCase\n) {\n  var map = Object.create(null);\n  var list = str.split(',');\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? function (val) { return map[val.toLowerCase()]; }\n    : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n  var cache = Object.create(null);\n  return (function cachedFn (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n  function boundFn (a) {\n    var l = arguments.length;\n    return l\n      ? l > 1\n        ? fn.apply(ctx, arguments)\n        : fn.call(ctx, a)\n      : fn.call(ctx)\n  }\n\n  boundFn._length = fn.length;\n  return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n  return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n  ? nativeBind\n  : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n  return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime()\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) { return i }\n  }\n  return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n  'beforeCreate',\n  'created',\n  'beforeMount',\n  'mounted',\n  'beforeUpdate',\n  'updated',\n  'beforeDestroy',\n  'destroyed',\n  'activated',\n  'deactivated',\n  'errorCaptured',\n  'serverPrefetch'\n];\n\n/*  */\n\n\n\nvar config = ({\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Perform updates asynchronously. Intended to be used by Vue Test Utils\n   * This will significantly reduce performance if set to false.\n   */\n  async: true,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/*  */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) { return }\n      obj = obj[segments[i]];\n    }\n    return obj\n  }\n}\n\n/*  */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      get: function get () {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    })); // https://github.com/facebook/flow/issues/285\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n  return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = /*@__PURE__*/(function () {\n    function Set () {\n      this.set = Object.create(null);\n    }\n    Set.prototype.has = function has (key) {\n      return this.set[key] === true\n    };\n    Set.prototype.add = function add (key) {\n      this.set[key] = true;\n    };\n    Set.prototype.clear = function clear () {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }());\n}\n\n/*  */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n  var classify = function (str) { return str\n    .replace(classifyRE, function (c) { return c.toUpperCase(); })\n    .replace(/[-_]/g, ''); };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && (!config.silent)) {\n      console.error((\"[Vue warn]: \" + msg + trace));\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && (!config.silent)) {\n      console.warn(\"[Vue tip]: \" + msg + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      return '<Root>'\n    }\n    var options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm;\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (\n      (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n      (file && includeFile !== false ? (\" at \" + file) : '')\n    )\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n    while (n) {\n      if (n % 2 === 1) { res += str; }\n      if (n > 1) { str += str; }\n      n >>= 1;\n    }\n    return res\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n      while (vm) {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n        tree.push(vm);\n        vm = vm.$parent;\n      }\n      return '\\n\\nfound in\\n\\n' + tree\n        .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n            ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n            : formatComponentName(vm))); })\n        .join('\\n')\n    } else {\n      return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n    }\n  };\n}\n\n/*  */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n  if (Dep.target) {\n    Dep.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify () {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n  if (process.env.NODE_ENV !== 'production' && !config.async) {\n    // subs aren't sorted in scheduler if not running async\n    // we need to sort them now to make sure they fire in correct\n    // order\n    subs.sort(function (a, b) { return a.id - b.id; });\n  }\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n  targetStack.push(target);\n  Dep.target = target;\n}\n\nfunction popTarget () {\n  targetStack.pop();\n  Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*  */\n\nvar VNode = function VNode (\n  tag,\n  data,\n  children,\n  text,\n  elm,\n  context,\n  componentOptions,\n  asyncFactory\n) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n  return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n  if ( text === void 0 ) text = '';\n\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node\n};\n\nfunction createTextVNode (val) {\n  return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n  var cloned = new VNode(\n    vnode.tag,\n    vnode.data,\n    // #7975\n    // clone children array to avoid mutating original in case of cloning\n    // a child.\n    vnode.children && vnode.children.slice(),\n    vnode.text,\n    vnode.elm,\n    vnode.context,\n    vnode.componentOptions,\n    vnode.asyncFactory\n  );\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.asyncMeta = vnode.asyncMeta;\n  cloned.isCloned = true;\n  return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n  'push',\n  'pop',\n  'shift',\n  'unshift',\n  'splice',\n  'sort',\n  'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break\n      case 'splice':\n        inserted = args.slice(2);\n        break\n    }\n    if (inserted) { ob.observeArray(inserted); }\n    // notify change\n    ob.dep.notify();\n    return result\n  });\n});\n\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n  shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n  if (Array.isArray(value)) {\n    if (hasProto) {\n      protoAugment(value, arrayMethods);\n    } else {\n      copyAugment(value, arrayMethods, arrayKeys);\n    }\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n  var keys = Object.keys(obj);\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive$$1(obj, keys[i]);\n  }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return\n  }\n  var ob;\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (\n    shouldObserve &&\n    !isServerRendering() &&\n    (Array.isArray(value) || isPlainObject(value)) &&\n    Object.isExtensible(value) &&\n    !value._isVue\n  ) {\n    ob = new Observer(value);\n  }\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n  return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n  obj,\n  key,\n  val,\n  customSetter,\n  shallow\n) {\n  var dep = new Dep();\n\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  var getter = property && property.get;\n  var setter = property && property.set;\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      var value = getter ? getter.call(obj) : val;\n      if (Dep.target) {\n        dep.depend();\n        if (childOb) {\n          childOb.dep.depend();\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n      return value\n    },\n    set: function reactiveSetter (newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n      if (newVal === value || (newVal !== newVal && value !== value)) {\n        return\n      }\n      /* eslint-enable no-self-compare */\n      if (process.env.NODE_ENV !== 'production' && customSetter) {\n        customSetter();\n      }\n      // #7981: for accessor properties without setter\n      if (getter && !setter) { return }\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val\n  }\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid adding reactive properties to a Vue instance or its root $data ' +\n      'at runtime - declare it upfront in the data option.'\n    );\n    return val\n  }\n  if (!ob) {\n    target[key] = val;\n    return val\n  }\n  defineReactive$$1(ob.value, key, val);\n  ob.dep.notify();\n  return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid deleting properties on a Vue instance or its root $data ' +\n      '- just set it to null.'\n    );\n    return\n  }\n  if (!hasOwn(target, key)) {\n    return\n  }\n  delete target[key];\n  if (!ob) {\n    return\n  }\n  ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\n        \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n        'creation with the `new` keyword.'\n      );\n    }\n    return defaultStrat(parent, child)\n  };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n  if (!from) { return to }\n  var key, toVal, fromVal;\n\n  var keys = hasSymbol\n    ? Reflect.ownKeys(from)\n    : Object.keys(from);\n\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i];\n    // in case the object is already observed...\n    if (key === '__ob__') { continue }\n    toVal = to[key];\n    fromVal = from[key];\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (\n      toVal !== fromVal &&\n      isPlainObject(toVal) &&\n      isPlainObject(fromVal)\n    ) {\n      mergeData(toVal, fromVal);\n    }\n  }\n  return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal\n    }\n    if (!parentVal) {\n      return childVal\n    }\n    // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n    return function mergedDataFn () {\n      return mergeData(\n        typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n      )\n    }\n  } else {\n    return function mergedInstanceDataFn () {\n      // instance merge\n      var instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      var defaultData = typeof parentVal === 'function'\n        ? parentVal.call(vm, vm)\n        : parentVal;\n      if (instanceData) {\n        return mergeData(instanceData, defaultData)\n      } else {\n        return defaultData\n      }\n    }\n  }\n}\n\nstrats.data = function (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n      process.env.NODE_ENV !== 'production' && warn(\n        'The \"data\" option should be a function ' +\n        'that returns a per-instance value in component ' +\n        'definitions.',\n        vm\n      );\n\n      return parentVal\n    }\n    return mergeDataOrFn(parentVal, childVal)\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n  parentVal,\n  childVal\n) {\n  var res = childVal\n    ? parentVal\n      ? parentVal.concat(childVal)\n      : Array.isArray(childVal)\n        ? childVal\n        : [childVal]\n    : parentVal;\n  return res\n    ? dedupeHooks(res)\n    : res\n}\n\nfunction dedupeHooks (hooks) {\n  var res = [];\n  for (var i = 0; i < hooks.length; i++) {\n    if (res.indexOf(hooks[i]) === -1) {\n      res.push(hooks[i]);\n    }\n  }\n  return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  var res = Object.create(parentVal || null);\n  if (childVal) {\n    process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n    return extend(res, childVal)\n  } else {\n    return res\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) { parentVal = undefined; }\n  if (childVal === nativeWatch) { childVal = undefined; }\n  /* istanbul ignore if */\n  if (!childVal) { return Object.create(parentVal || null) }\n  if (process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = {};\n  extend(ret, parentVal);\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key$1] = parent\n      ? parent.concat(child)\n      : Array.isArray(child) ? child : [child];\n  }\n  return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  if (childVal && process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n  if (childVal) { extend(ret, childVal); }\n  return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined\n    ? parentVal\n    : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName (name) {\n  if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n    warn(\n      'Invalid component name: \"' + name + '\". Component names ' +\n      'should conform to valid custom element name in html5 specification.'\n    );\n  }\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn(\n      'Do not use built-in or reserved HTML elements as component ' +\n      'id: ' + name\n    );\n  }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n  var props = options.props;\n  if (!props) { return }\n  var res = {};\n  var i, val, name;\n  if (Array.isArray(props)) {\n    i = props.length;\n    while (i--) {\n      val = props[i];\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = { type: null };\n      } else if (process.env.NODE_ENV !== 'production') {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(props)) + \".\",\n      vm\n    );\n  }\n  options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n  var inject = options.inject;\n  if (!inject) { return }\n  var normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(inject)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n  var dirs = options.directives;\n  if (dirs) {\n    for (var key in dirs) {\n      var def$$1 = dirs[key];\n      if (typeof def$$1 === 'function') {\n        dirs[key] = { bind: def$$1, update: def$$1 };\n      }\n    }\n  }\n}\n\nfunction assertObjectType (name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\n      \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n      \"but got \" + (toRawType(value)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n  parent,\n  child,\n  vm\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child);\n\n  // Apply extends and mixins on the child options,\n  // but only if it is a raw options object that isn't\n  // the result of another mergeOptions call.\n  // Only merged options has the _base property.\n  if (!child._base) {\n    if (child.extends) {\n      parent = mergeOptions(parent, child.extends, vm);\n    }\n    if (child.mixins) {\n      for (var i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  var options = {};\n  var key;\n  for (key in parent) {\n    mergeField(key);\n  }\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n  function mergeField (key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n  return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n  options,\n  type,\n  id,\n  warnMissing\n) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return\n  }\n  var assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) { return assets[id] }\n  var camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n  var PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n  // fallback to prototype chain\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n    warn(\n      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n      options\n    );\n  }\n  return res\n}\n\n/*  */\n\n\n\nfunction validateProp (\n  key,\n  propOptions,\n  propsData,\n  vm\n) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key];\n  // boolean casting\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  }\n  // check default value\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key);\n    // since the default value is a fresh copy,\n    // make sure to observe it.\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n  if (\n    process.env.NODE_ENV !== 'production' &&\n    // skip validation for weex recycle-list child component props\n    !(false)\n  ) {\n    assertProp(prop, key, value, vm, absent);\n  }\n  return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined\n  }\n  var def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n    warn(\n      'Invalid default value for prop \"' + key + '\": ' +\n      'Props with type Object/Array must use a factory function ' +\n      'to return the default value.',\n      vm\n    );\n  }\n  // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n  if (vm && vm.$options.propsData &&\n    vm.$options.propsData[key] === undefined &&\n    vm._props[key] !== undefined\n  ) {\n    return vm._props[key]\n  }\n  // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n  return typeof def === 'function' && getType(prop.type) !== 'Function'\n    ? def.call(vm)\n    : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n  prop,\n  name,\n  value,\n  vm,\n  absent\n) {\n  if (prop.required && absent) {\n    warn(\n      'Missing required prop: \"' + name + '\"',\n      vm\n    );\n    return\n  }\n  if (value == null && !prop.required) {\n    return\n  }\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i], vm);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n  if (!valid && haveExpectedTypes) {\n    warn(\n      getInvalidTypeMessage(name, value, expectedTypes),\n      vm\n    );\n    return\n  }\n  var validator = prop.validator;\n  if (validator) {\n    if (!validator(value)) {\n      warn(\n        'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n        vm\n      );\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType (value, type, vm) {\n  var valid;\n  var expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    // for primitive wrapper objects\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    try {\n      valid = value instanceof type;\n    } catch (e) {\n      warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n      valid = false;\n    }\n  }\n  return {\n    valid: valid,\n    expectedType: expectedType\n  }\n}\n\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n  var match = fn && fn.toString().match(functionTypeCheckRE);\n  return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n  return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1\n  }\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i\n    }\n  }\n  return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n  var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n    \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n  var expectedType = expectedTypes[0];\n  var receivedType = toRawType(value);\n  // check if we need to specify expected value\n  if (\n    expectedTypes.length === 1 &&\n    isExplicable(expectedType) &&\n    isExplicable(typeof value) &&\n    !isBoolean(expectedType, receivedType)\n  ) {\n    message += \" with value \" + (styleValue(value, expectedType));\n  }\n  message += \", got \" + receivedType + \" \";\n  // check if we need to specify received value\n  if (isExplicable(receivedType)) {\n    message += \"with value \" + (styleValue(value, receivedType)) + \".\";\n  }\n  return message\n}\n\nfunction styleValue (value, type) {\n  if (type === 'String') {\n    return (\"\\\"\" + value + \"\\\"\")\n  } else if (type === 'Number') {\n    return (\"\" + (Number(value)))\n  } else {\n    return (\"\" + value)\n  }\n}\n\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\nfunction isExplicable (value) {\n  return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/*  */\n\nfunction handleError (err, vm, info) {\n  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n  // See: https://github.com/vuejs/vuex/issues/1505\n  pushTarget();\n  try {\n    if (vm) {\n      var cur = vm;\n      while ((cur = cur.$parent)) {\n        var hooks = cur.$options.errorCaptured;\n        if (hooks) {\n          for (var i = 0; i < hooks.length; i++) {\n            try {\n              var capture = hooks[i].call(cur, err, vm, info) === false;\n              if (capture) { return }\n            } catch (e) {\n              globalHandleError(e, cur, 'errorCaptured hook');\n            }\n          }\n        }\n      }\n    }\n    globalHandleError(err, vm, info);\n  } finally {\n    popTarget();\n  }\n}\n\nfunction invokeWithErrorHandling (\n  handler,\n  context,\n  args,\n  vm,\n  info\n) {\n  var res;\n  try {\n    res = args ? handler.apply(context, args) : handler.call(context);\n    if (res && !res._isVue && isPromise(res) && !res._handled) {\n      res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n      // issue #9511\n      // avoid catch triggering multiple times when nested calls\n      res._handled = true;\n    }\n  } catch (e) {\n    handleError(e, vm, info);\n  }\n  return res\n}\n\nfunction globalHandleError (err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info)\n    } catch (e) {\n      // if the user intentionally throws the original error in the handler,\n      // do not log it twice\n      if (e !== err) {\n        logError(e, null, 'config.errorHandler');\n      }\n    }\n  }\n  logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n  }\n  /* istanbul ignore else */\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err\n  }\n}\n\n/*  */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n  timerFunc = function () {\n    p.then(flushCallbacks);\n    // In problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n    if (isIOS) { setTimeout(noop); }\n  };\n  isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n  isNative(MutationObserver) ||\n  // PhantomJS and iOS 7.x\n  MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n  // Use MutationObserver where native Promise is not available,\n  // e.g. PhantomJS, iOS7, Android 4.4\n  // (#6466 MutationObserver is unreliable in IE11)\n  var counter = 1;\n  var observer = new MutationObserver(flushCallbacks);\n  var textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n  timerFunc = function () {\n    counter = (counter + 1) % 2;\n    textNode.data = String(counter);\n  };\n  isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  // Fallback to setImmediate.\n  // Technically it leverages the (macro) task queue,\n  // but it is still a better choice than setTimeout.\n  timerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick (cb, ctx) {\n  var _resolve;\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n  if (!pending) {\n    pending = true;\n    timerFunc();\n  }\n  // $flow-disable-line\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n  var allowedGlobals = makeMap(\n    'Infinity,undefined,NaN,isFinite,isNaN,' +\n    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n    'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\n      \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n      'referenced during render. Make sure that this property is reactive, ' +\n      'either in the data option, or for class-based components, by ' +\n      'initializing the property. ' +\n      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n      target\n    );\n  };\n\n  var warnReservedPrefix = function (target, key) {\n    warn(\n      \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n      'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n      'prevent conflicts with Vue internals. ' +\n      'See: https://vuejs.org/v2/api/#data',\n      target\n    );\n  };\n\n  var hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set (target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n          return false\n        } else {\n          target[key] = value;\n          return true\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has (target, key) {\n      var has = key in target;\n      var isAllowed = allowedGlobals(key) ||\n        (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n      if (!has && !isAllowed) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return has || !isAllowed\n    }\n  };\n\n  var getHandler = {\n    get: function get (target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return target[key]\n    }\n  };\n\n  initProxy = function initProxy (vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped\n        ? getHandler\n        : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n\n/*  */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n  _traverse(val, seenObjects);\n  seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n    if (seen.has(depId)) {\n      return\n    }\n    seen.add(depId);\n  }\n  if (isA) {\n    i = val.length;\n    while (i--) { _traverse(val[i], seen); }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n    while (i--) { _traverse(val[keys[i]], seen); }\n  }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n  if (\n    perf &&\n    perf.mark &&\n    perf.measure &&\n    perf.clearMarks &&\n    perf.clearMeasures\n  ) {\n    mark = function (tag) { return perf.mark(tag); };\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag);\n      // perf.clearMeasures(name)\n    };\n  }\n}\n\n/*  */\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  }\n});\n\nfunction createFnInvoker (fns, vm) {\n  function invoker () {\n    var arguments$1 = arguments;\n\n    var fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n      for (var i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n      }\n    } else {\n      // return handler return value for single handlers\n      return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n    }\n  }\n  invoker.fns = fns;\n  return invoker\n}\n\nfunction updateListeners (\n  on,\n  oldOn,\n  add,\n  remove$$1,\n  createOnceHandler,\n  vm\n) {\n  var name, def$$1, cur, old, event;\n  for (name in on) {\n    def$$1 = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n    if (isUndef(cur)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n        vm\n      );\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur, vm);\n      }\n      if (isTrue(event.once)) {\n        cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n      }\n      add(event.name, cur, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n\n/*  */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n  if (def instanceof VNode) {\n    def = def.data.hook || (def.data.hook = {});\n  }\n  var invoker;\n  var oldHook = def[hookKey];\n\n  function wrappedHook () {\n    hook.apply(this, arguments);\n    // important: remove merged hook to ensure it's called only once\n    // and prevent memory leak\n    remove(invoker.fns, wrappedHook);\n  }\n\n  if (isUndef(oldHook)) {\n    // no existing hook\n    invoker = createFnInvoker([wrappedHook]);\n  } else {\n    /* istanbul ignore if */\n    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n      // already a merged invoker\n      invoker = oldHook;\n      invoker.fns.push(wrappedHook);\n    } else {\n      // existing plain hook\n      invoker = createFnInvoker([oldHook, wrappedHook]);\n    }\n  }\n\n  invoker.merged = true;\n  def[hookKey] = invoker;\n}\n\n/*  */\n\nfunction extractPropsFromVNodeData (\n  data,\n  Ctor,\n  tag\n) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    return\n  }\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      if (process.env.NODE_ENV !== 'production') {\n        var keyInLowerCase = key.toLowerCase();\n        if (\n          key !== keyInLowerCase &&\n          attrs && hasOwn(attrs, keyInLowerCase)\n        ) {\n          tip(\n            \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n            (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n            \" \\\"\" + key + \"\\\". \" +\n            \"Note that HTML attributes are case-insensitive and camelCased \" +\n            \"props need to use their kebab-case equivalents when using in-DOM \" +\n            \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n          );\n        }\n      }\n      checkProp(res, props, key, altKey, true) ||\n      checkProp(res, attrs, key, altKey, false);\n    }\n  }\n  return res\n}\n\nfunction checkProp (\n  res,\n  hash,\n  key,\n  altKey,\n  preserve\n) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n      if (!preserve) {\n        delete hash[key];\n      }\n      return true\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n      if (!preserve) {\n        delete hash[altKey];\n      }\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children)\n    }\n  }\n  return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n  return isPrimitive(children)\n    ? [createTextVNode(children)]\n    : Array.isArray(children)\n      ? normalizeArrayChildren(children)\n      : undefined\n}\n\nfunction isTextNode (node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n    if (isUndef(c) || typeof c === 'boolean') { continue }\n    lastIndex = res.length - 1;\n    last = res[lastIndex];\n    //  nested\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n        // merge adjacent text nodes\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n          c.shift();\n        }\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) &&\n          isDef(c.tag) &&\n          isUndef(c.key) &&\n          isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n        res.push(c);\n      }\n    }\n  }\n  return res\n}\n\n/*  */\n\nfunction initProvide (vm) {\n  var provide = vm.$options.provide;\n  if (provide) {\n    vm._provided = typeof provide === 'function'\n      ? provide.call(vm)\n      : provide;\n  }\n}\n\nfunction initInjections (vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production') {\n        defineReactive$$1(vm, key, result[key], function () {\n          warn(\n            \"Avoid mutating an injected value directly since the changes will be \" +\n            \"overwritten whenever the provided component re-renders. \" +\n            \"injection being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        });\n      } else {\n        defineReactive$$1(vm, key, result[key]);\n      }\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject (inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol\n      ? Reflect.ownKeys(inject)\n      : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      // #6574 in case the inject object is observed...\n      if (key === '__ob__') { continue }\n      var provideKey = inject[key].from;\n      var source = vm;\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break\n        }\n        source = source.$parent;\n      }\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else if (process.env.NODE_ENV !== 'production') {\n          warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n        }\n      }\n    }\n    return result\n  }\n}\n\n/*  */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n  children,\n  context\n) {\n  if (!children || !children.length) {\n    return {}\n  }\n  var slots = {};\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data;\n    // remove slot attribute if the node is resolved as a Vue slot node\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    }\n    // named slots should only be respected if the vnode was rendered in the\n    // same context.\n    if ((child.context === context || child.fnContext === context) &&\n      data && data.slot != null\n    ) {\n      var name = data.slot;\n      var slot = (slots[name] || (slots[name] = []));\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      (slots.default || (slots.default = [])).push(child);\n    }\n  }\n  // ignore slots that contains only whitespace\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction normalizeScopedSlots (\n  slots,\n  normalSlots,\n  prevSlots\n) {\n  var res;\n  var hasNormalSlots = Object.keys(normalSlots).length > 0;\n  var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  var key = slots && slots.$key;\n  if (!slots) {\n    res = {};\n  } else if (slots._normalized) {\n    // fast path 1: child component re-render only, parent did not change\n    return slots._normalized\n  } else if (\n    isStable &&\n    prevSlots &&\n    prevSlots !== emptyObject &&\n    key === prevSlots.$key &&\n    !hasNormalSlots &&\n    !prevSlots.$hasNormal\n  ) {\n    // fast path 2: stable scoped slots w/ no normal slots to proxy,\n    // only need to normalize once\n    return prevSlots\n  } else {\n    res = {};\n    for (var key$1 in slots) {\n      if (slots[key$1] && key$1[0] !== '$') {\n        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n      }\n    }\n  }\n  // expose normal slots on scopedSlots\n  for (var key$2 in normalSlots) {\n    if (!(key$2 in res)) {\n      res[key$2] = proxyNormalSlot(normalSlots, key$2);\n    }\n  }\n  // avoriaz seems to mock a non-extensible $scopedSlots object\n  // and when that is passed down this would cause an error\n  if (slots && Object.isExtensible(slots)) {\n    (slots)._normalized = res;\n  }\n  def(res, '$stable', isStable);\n  def(res, '$key', key);\n  def(res, '$hasNormal', hasNormalSlots);\n  return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n  var normalized = function () {\n    var res = arguments.length ? fn.apply(null, arguments) : fn({});\n    res = res && typeof res === 'object' && !Array.isArray(res)\n      ? [res] // single vnode\n      : normalizeChildren(res);\n    var vnode = res && res[0];\n    return res && (\n      !vnode ||\n      (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391\n    ) ? undefined\n      : res\n  };\n  // this is a slot using the new v-slot syntax without scope. although it is\n  // compiled as a scoped slot, render fn users would expect it to be present\n  // on this.$slots because the usage is semantically a normal slot.\n  if (fn.proxy) {\n    Object.defineProperty(normalSlots, key, {\n      get: normalized,\n      enumerable: true,\n      configurable: true\n    });\n  }\n  return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n  return function () { return slots[key]; }\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  var ret, i, l, keys, key;\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i);\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i);\n    }\n  } else if (isObject(val)) {\n    if (hasSymbol && val[Symbol.iterator]) {\n      ret = [];\n      var iterator = val[Symbol.iterator]();\n      var result = iterator.next();\n      while (!result.done) {\n        ret.push(render(result.value, ret.length));\n        result = iterator.next();\n      }\n    } else {\n      keys = Object.keys(val);\n      ret = new Array(keys.length);\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[i] = render(val[key], key, i);\n      }\n    }\n  }\n  if (!isDef(ret)) {\n    ret = [];\n  }\n  (ret)._isVList = true;\n  return ret\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n  name,\n  fallbackRender,\n  props,\n  bindObject\n) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n  if (scopedSlotFn) {\n    // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n        warn('slot v-bind without argument expects an Object', this);\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    nodes =\n      scopedSlotFn(props) ||\n      (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  } else {\n    nodes =\n      this.$slots[name] ||\n      (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  }\n\n  var target = props && props.slot;\n  if (target) {\n    return this.$createElement('template', { slot: target }, nodes)\n  } else {\n    return nodes\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/*  */\n\nfunction isKeyNotMatch (expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1\n  } else {\n    return expect !== actual\n  }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n  eventKeyCode,\n  key,\n  builtInKeyCode,\n  eventKeyName,\n  builtInKeyName\n) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName)\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key\n  }\n  return eventKeyCode === undefined\n}\n\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n  data,\n  tag,\n  value,\n  asProp,\n  isSync\n) {\n  if (value) {\n    if (!isObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-bind without argument expects an Object or Array value',\n        this\n      );\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n      var hash;\n      var loop = function ( key ) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key)\n            ? data.domProps || (data.domProps = {})\n            : data.attrs || (data.attrs = {});\n        }\n        var camelizedKey = camelize(key);\n        var hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n            on[(\"update:\" + key)] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop( key );\n    }\n  }\n  return data\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n  index,\n  isInFor\n) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index];\n  // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n  if (tree && !isInFor) {\n    return tree\n  }\n  // otherwise, render a fresh tree.\n  tree = cached[index] = this.$options.staticRenderFns[index].call(\n    this._renderProxy,\n    null,\n    this // for render fns generated for functional component templates\n  );\n  markStatic(tree, (\"__static__\" + index), false);\n  return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n  tree,\n  index,\n  key\n) {\n  markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n  return tree\n}\n\nfunction markStatic (\n  tree,\n  key,\n  isOnce\n) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n\n/*  */\n\nfunction bindObjectListeners (data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n  return data\n}\n\n/*  */\n\nfunction resolveScopedSlots (\n  fns, // see flow/vnode\n  res,\n  // the following are added in 2.6\n  hasDynamicKeys,\n  contentHashKey\n) {\n  res = res || { $stable: !hasDynamicKeys };\n  for (var i = 0; i < fns.length; i++) {\n    var slot = fns[i];\n    if (Array.isArray(slot)) {\n      resolveScopedSlots(slot, res, hasDynamicKeys);\n    } else if (slot) {\n      // marker for reverse proxying v-slot without scope on this.$slots\n      if (slot.proxy) {\n        slot.fn.proxy = true;\n      }\n      res[slot.key] = slot.fn;\n    }\n  }\n  if (contentHashKey) {\n    (res).$key = contentHashKey;\n  }\n  return res\n}\n\n/*  */\n\nfunction bindDynamicKeys (baseObj, values) {\n  for (var i = 0; i < values.length; i += 2) {\n    var key = values[i];\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n      // null is a special value for explicitly removing a binding\n      warn(\n        (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n        this\n      );\n    }\n  }\n  return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n  return typeof value === 'string' ? symbol + value : value\n}\n\n/*  */\n\nfunction installRenderHelpers (target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n  target._d = bindDynamicKeys;\n  target._p = prependModifier;\n}\n\n/*  */\n\nfunction FunctionalRenderContext (\n  data,\n  props,\n  children,\n  parent,\n  Ctor\n) {\n  var this$1 = this;\n\n  var options = Ctor.options;\n  // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n  var contextVm;\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent);\n    // $flow-disable-line\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent;\n    // $flow-disable-line\n    parent = parent._original;\n  }\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n  this.slots = function () {\n    if (!this$1.$slots) {\n      normalizeScopedSlots(\n        data.scopedSlots,\n        this$1.$slots = resolveSlots(children, parent)\n      );\n    }\n    return this$1.$slots\n  };\n\n  Object.defineProperty(this, 'scopedSlots', ({\n    enumerable: true,\n    get: function get () {\n      return normalizeScopedSlots(data.scopedSlots, this.slots())\n    }\n  }));\n\n  // support for compiled functional template\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options;\n    // pre-resolve slots for renderSlot()\n    this.$slots = this.slots();\n    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n      return vnode\n    };\n  } else {\n    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n  Ctor,\n  propsData,\n  data,\n  contextVm,\n  children\n) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n    if (isDef(data.props)) { mergeProps(props, data.props); }\n  }\n\n  var renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n    }\n    return res\n  }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  if (process.env.NODE_ENV !== 'production') {\n    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n  }\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n  return clone\n}\n\nfunction mergeProps (to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n  init: function init (vnode, hydrating) {\n    if (\n      vnode.componentInstance &&\n      !vnode.componentInstance._isDestroyed &&\n      vnode.data.keepAlive\n    ) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch: function prepatch (oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(\n      child,\n      options.propsData, // updated props\n      options.listeners, // updated listeners\n      vnode, // new parent vnode\n      options.children // new children\n    );\n  },\n\n  insert: function insert (vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isMounted) {\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  },\n\n  destroy: function destroy (vnode) {\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n  Ctor,\n  data,\n  context,\n  children,\n  tag\n) {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  var baseCtor = context.$options._base;\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (process.env.NODE_ENV !== 'production') {\n      warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n    }\n    return\n  }\n\n  // async component\n  var asyncFactory;\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,\n        tag\n      )\n    }\n  }\n\n  data = data || {};\n\n  // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n  resolveConstructorOptions(Ctor);\n\n  // transform component v-model data into props & events\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  }\n\n  // extract props\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n  // functional component\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children)\n  }\n\n  // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n  var listeners = data.on;\n  // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n\n    // work around flow\n    var slot = data.slot;\n    data = {};\n    if (slot) {\n      data.slot = slot;\n    }\n  }\n\n  // install component management hooks onto the placeholder node\n  installComponentHooks(data);\n\n  // return a placeholder vnode\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\n    (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n    data, undefined, undefined, undefined, context,\n    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n    asyncFactory\n  );\n\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  // we know it's MountedComponentVNode but flow doesn't\n  vnode,\n  // activeInstance in lifecycle state\n  parent\n) {\n  var options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent: parent\n  };\n  // check inline-template render functions\n  var inlineTemplate = vnode.data.inlineTemplate;\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n  return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n  var hooks = data.hook || (data.hook = {});\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    var existing = hooks[key];\n    var toMerge = componentVNodeHooks[key];\n    if (existing !== toMerge && !(existing && existing._merged)) {\n      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n    }\n  }\n}\n\nfunction mergeHook$1 (f1, f2) {\n  var merged = function (a, b) {\n    // flow complains about extra args which is why we use any\n    f1(a, b);\n    f2(a, b);\n  };\n  merged._merged = true;\n  return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n  var prop = (options.model && options.model.prop) || 'value';\n  var event = (options.model && options.model.event) || 'input'\n  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  var existing = on[event];\n  var callback = data.model.callback;\n  if (isDef(existing)) {\n    if (\n      Array.isArray(existing)\n        ? existing.indexOf(callback) === -1\n        : existing !== callback\n    ) {\n      on[event] = [callback].concat(existing);\n    }\n  } else {\n    on[event] = callback;\n  }\n}\n\n/*  */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType,\n  alwaysNormalize\n) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n  return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType\n) {\n  if (isDef(data) && isDef((data).__ob__)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n      'Always create fresh vnode data objects in each render!',\n      context\n    );\n    return createEmptyVNode()\n  }\n  // object syntax in v-bind\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode()\n  }\n  // warn against non-primitive key\n  if (process.env.NODE_ENV !== 'production' &&\n    isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n  ) {\n    {\n      warn(\n        'Avoid using non-primitive value as key, ' +\n        'use string/number value instead.',\n        context\n      );\n    }\n  }\n  // support single function children as default scoped slot\n  if (Array.isArray(children) &&\n    typeof children[0] === 'function'\n  ) {\n    data = data || {};\n    data.scopedSlots = { default: children[0] };\n    children.length = 0;\n  }\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n  var vnode, ns;\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {\n        warn(\n          (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n          context\n        );\n      }\n      vnode = new VNode(\n        config.parsePlatformTagName(tag), data, children,\n        undefined, undefined, context\n      );\n    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(\n        tag, data, children,\n        undefined, undefined, context\n      );\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n  if (Array.isArray(vnode)) {\n    return vnode\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) { applyNS(vnode, ns); }\n    if (isDef(data)) { registerDeepBindings(data); }\n    return vnode\n  } else {\n    return createEmptyVNode()\n  }\n}\n\nfunction applyNS (vnode, ns, force) {\n  vnode.ns = ns;\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n      if (isDef(child.tag) && (\n        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n\n/*  */\n\nfunction initRender (vm) {\n  vm._vnode = null; // the root of the child tree\n  vm._staticTrees = null; // v-once cached trees\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject;\n  // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n  // normalization is always applied for the public version, used in\n  // user-written render functions.\n  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n  // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n  var parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== 'production') {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n  }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this)\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    if (_parentVnode) {\n      vm.$scopedSlots = normalizeScopedSlots(\n        _parentVnode.data.scopedSlots,\n        vm.$slots,\n        vm.$scopedSlots\n      );\n    }\n\n    // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n    vm.$vnode = _parentVnode;\n    // render self\n    var vnode;\n    try {\n      // There's no need to maintain a stack because all render fns are called\n      // separately from one another. Nested component's render fns are called\n      // when parent component is patched.\n      currentRenderingInstance = vm;\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\");\n      // return error render result,\n      // or previous vnode to prevent render error causing blank component\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n        try {\n          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n        } catch (e) {\n          handleError(e, vm, \"renderError\");\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    } finally {\n      currentRenderingInstance = null;\n    }\n    // if the returned array contains only a single node, allow it\n    if (Array.isArray(vnode) && vnode.length === 1) {\n      vnode = vnode[0];\n    }\n    // return empty vnode in case the render function errored out\n    if (!(vnode instanceof VNode)) {\n      if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n        warn(\n          'Multiple root nodes returned from render function. Render function ' +\n          'should return a single root node.',\n          vm\n        );\n      }\n      vnode = createEmptyVNode();\n    }\n    // set parent\n    vnode.parent = _parentVnode;\n    return vnode\n  };\n}\n\n/*  */\n\nfunction ensureCtor (comp, base) {\n  if (\n    comp.__esModule ||\n    (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n  ) {\n    comp = comp.default;\n  }\n  return isObject(comp)\n    ? base.extend(comp)\n    : comp\n}\n\nfunction createAsyncPlaceholder (\n  factory,\n  data,\n  context,\n  children,\n  tag\n) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n  return node\n}\n\nfunction resolveAsyncComponent (\n  factory,\n  baseCtor\n) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved\n  }\n\n  var owner = currentRenderingInstance;\n  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n    // already pending\n    factory.owners.push(owner);\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp\n  }\n\n  if (owner && !isDef(factory.owners)) {\n    var owners = factory.owners = [owner];\n    var sync = true;\n    var timerLoading = null;\n    var timerTimeout = null\n\n    ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n    var forceRender = function (renderCompleted) {\n      for (var i = 0, l = owners.length; i < l; i++) {\n        (owners[i]).$forceUpdate();\n      }\n\n      if (renderCompleted) {\n        owners.length = 0;\n        if (timerLoading !== null) {\n          clearTimeout(timerLoading);\n          timerLoading = null;\n        }\n        if (timerTimeout !== null) {\n          clearTimeout(timerTimeout);\n          timerTimeout = null;\n        }\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor);\n      // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n      if (!sync) {\n        forceRender(true);\n      } else {\n        owners.length = 0;\n      }\n    });\n\n    var reject = once(function (reason) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed to resolve async component: \" + (String(factory)) +\n        (reason ? (\"\\nReason: \" + reason) : '')\n      );\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender(true);\n      }\n    });\n\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (isPromise(res)) {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isPromise(res.component)) {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            timerLoading = setTimeout(function () {\n              timerLoading = null;\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender(false);\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          timerTimeout = setTimeout(function () {\n            timerTimeout = null;\n            if (isUndef(factory.resolved)) {\n              reject(\n                process.env.NODE_ENV !== 'production'\n                  ? (\"timeout (\" + (res.timeout) + \"ms)\")\n                  : null\n              );\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false;\n    // return in case resolved synchronously\n    return factory.loading\n      ? factory.loadingComp\n      : factory.resolved\n  }\n}\n\n/*  */\n\nfunction getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c\n      }\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\nfunction initEvents (vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false;\n  // init parent attached events\n  var listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add (event, fn) {\n  target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n  target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n  var _target = target;\n  return function onceHandler () {\n    var res = fn.apply(null, arguments);\n    if (res !== null) {\n      _target.$off(event, onceHandler);\n    }\n  }\n}\n\nfunction updateComponentListeners (\n  vm,\n  listeners,\n  oldListeners\n) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n  target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n  var hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    var vm = this;\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        vm.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn);\n      // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n    function on () {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var vm = this;\n    // all\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm\n    }\n    // array of events\n    if (Array.isArray(event)) {\n      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n        vm.$off(event[i$1], fn);\n      }\n      return vm\n    }\n    // specific event\n    var cbs = vm._events[event];\n    if (!cbs) {\n      return vm\n    }\n    if (!fn) {\n      vm._events[event] = null;\n      return vm\n    }\n    // specific handler\n    var cb;\n    var i = cbs.length;\n    while (i--) {\n      cb = cbs[i];\n      if (cb === fn || cb.fn === fn) {\n        cbs.splice(i, 1);\n        break\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n    if (process.env.NODE_ENV !== 'production') {\n      var lowerCaseEvent = event.toLowerCase();\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\n          \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n          (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n          \"Note that HTML attributes are case-insensitive and you cannot use \" +\n          \"v-on to listen to camelCase events when using in-DOM templates. \" +\n          \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n        );\n      }\n    }\n    var cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      var info = \"event handler for \\\"\" + event + \"\\\"\";\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n      }\n    }\n    return vm\n  };\n}\n\n/*  */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  var prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return function () {\n    activeInstance = prevActiveInstance;\n  }\n}\n\nfunction initLifecycle (vm) {\n  var options = vm.$options;\n\n  // locate first non-abstract parent\n  var parent = options.parent;\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n\n  vm.$children = [];\n  vm.$refs = {};\n\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var restoreActiveInstance = setActiveInstance(vm);\n    vm._vnode = vnode;\n    // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n    restoreActiveInstance();\n    // update __vue__ reference\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    }\n    // if parent is an HOC, update its $el as well\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    }\n    // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    var parent = vm.$parent;\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    }\n    // teardown watchers\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n    var i = vm._watchers.length;\n    while (i--) {\n      vm._watchers[i].teardown();\n    }\n    // remove reference from data ob\n    // frozen object may not have observer.\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    }\n    // call the last hook...\n    vm._isDestroyed = true;\n    // invoke destroy hooks on current rendered tree\n    vm.__patch__(vm._vnode, null);\n    // fire destroyed hook\n    callHook(vm, 'destroyed');\n    // turn off all instance listeners.\n    vm.$off();\n    // remove __vue__ reference\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    }\n    // release circular reference (#6759)\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction mountComponent (\n  vm,\n  el,\n  hydrating\n) {\n  vm.$el = el;\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyVNode;\n    if (process.env.NODE_ENV !== 'production') {\n      /* istanbul ignore if */\n      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n        vm.$options.el || el) {\n        warn(\n          'You are using the runtime-only build of Vue where the template ' +\n          'compiler is not available. Either pre-compile the templates into ' +\n          'render functions, or use the compiler-included build.',\n          vm\n        );\n      } else {\n        warn(\n          'Failed to mount component: template or render function not defined.',\n          vm\n        );\n      }\n    }\n  }\n  callHook(vm, 'beforeMount');\n\n  var updateComponent;\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n    updateComponent = function () {\n      var name = vm._name;\n      var id = vm._uid;\n      var startTag = \"vue-perf-start:\" + id;\n      var endTag = \"vue-perf-end:\" + id;\n\n      mark(startTag);\n      var vnode = vm._render();\n      mark(endTag);\n      measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n      mark(startTag);\n      vm._update(vnode, hydrating);\n      mark(endTag);\n      measure((\"vue \" + name + \" patch\"), startTag, endTag);\n    };\n  } else {\n    updateComponent = function () {\n      vm._update(vm._render(), hydrating);\n    };\n  }\n\n  // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n  new Watcher(vm, updateComponent, noop, {\n    before: function before () {\n      if (vm._isMounted && !vm._isDestroyed) {\n        callHook(vm, 'beforeUpdate');\n      }\n    }\n  }, true /* isRenderWatcher */);\n  hydrating = false;\n\n  // manually mounted instance, call mounted on self\n  // mounted is called for render-created child components in its inserted hook\n  if (vm.$vnode == null) {\n    vm._isMounted = true;\n    callHook(vm, 'mounted');\n  }\n  return vm\n}\n\nfunction updateChildComponent (\n  vm,\n  propsData,\n  listeners,\n  parentVnode,\n  renderChildren\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = true;\n  }\n\n  // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren.\n\n  // check if there are dynamic scopedSlots (hand-written or compiled but with\n  // dynamic slot names). Static scoped slots compiled from template has the\n  // \"$stable\" marker.\n  var newScopedSlots = parentVnode.data.scopedSlots;\n  var oldScopedSlots = vm.$scopedSlots;\n  var hasDynamicScopedSlot = !!(\n    (newScopedSlots && !newScopedSlots.$stable) ||\n    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n    (!newScopedSlots && vm.$scopedSlots.$key)\n  );\n\n  // Any static slot children from the parent may have changed during parent's\n  // update. Dynamic scoped slots may also have changed. In such cases, a forced\n  // update is necessary to ensure correctness.\n  var needsForceUpdate = !!(\n    renderChildren ||               // has new static slots\n    vm.$options._renderChildren ||  // has old static slots\n    hasDynamicScopedSlot\n  );\n\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) { // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n  vm.$options._renderChildren = renderChildren;\n\n  // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject;\n\n  // update props\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n    toggleObserving(true);\n    // keep a copy of raw propsData\n    vm.$options.propsData = propsData;\n  }\n\n  // update listeners\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners);\n\n  // resolve slots + force update if has children\n  if (needsForceUpdate) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree (vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) { return true }\n  }\n  return false\n}\n\nfunction activateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  } else if (vm._directInactive) {\n    return\n  }\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  }\n  if (!vm._inactive) {\n    vm._inactive = true;\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook (vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  var info = hook + \" hook\";\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n    }\n  }\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n  popTarget();\n}\n\n/*  */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  if (process.env.NODE_ENV !== 'production') {\n    circular = {};\n  }\n  waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n  var performance = window.performance;\n  if (\n    performance &&\n    typeof performance.now === 'function' &&\n    getNow() > document.createEvent('Event').timeStamp\n  ) {\n    // if the event timestamp, although evaluated AFTER the Date.now(), is\n    // smaller than it, it means the event is using a hi-res timestamp,\n    // and we need to use the hi-res version for event listener timestamps as\n    // well.\n    getNow = function () { return performance.now(); };\n  }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  var watcher, id;\n\n  // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n  queue.sort(function (a, b) { return a.id - b.id; });\n\n  // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n    if (watcher.before) {\n      watcher.before();\n    }\n    id = watcher.id;\n    has[id] = null;\n    watcher.run();\n    // in dev build, check and stop circular updates.\n    if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn(\n          'You may have an infinite update loop ' + (\n            watcher.user\n              ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n              : \"in a component render function.\"\n          ),\n          watcher.vm\n        );\n        break\n      }\n    }\n  }\n\n  // keep copies of post queues before resetting state\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n\n  resetSchedulerState();\n\n  // call component updated and activated hooks\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue);\n\n  // devtool hook\n  /* istanbul ignore if */\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks (queue) {\n  var i = queue.length;\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true /* true */);\n  }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n  var id = watcher.id;\n  if (has[id] == null) {\n    has[id] = true;\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n      queue.splice(i + 1, 0, watcher);\n    }\n    // queue the flush\n    if (!waiting) {\n      waiting = true;\n\n      if (process.env.NODE_ENV !== 'production' && !config.async) {\n        flushSchedulerQueue();\n        return\n      }\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n  vm,\n  expOrFn,\n  cb,\n  options,\n  isRenderWatcher\n) {\n  this.vm = vm;\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n  vm._watchers.push(this);\n  // options\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n    this.before = options.before;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n  this.cb = cb;\n  this.id = ++uid$2; // uid for batching\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression = process.env.NODE_ENV !== 'production'\n    ? expOrFn.toString()\n    : '';\n  // parse expression for getter\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n    if (!this.getter) {\n      this.getter = noop;\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n        'Watcher only accepts simple dot-delimited paths. ' +\n        'For full control, use a function instead.',\n        vm\n      );\n    }\n  }\n  this.value = this.lazy\n    ? undefined\n    : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n    } else {\n      throw e\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n    popTarget();\n    this.cleanupDeps();\n  }\n  return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n  var id = dep.id;\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n  var i = this.deps.length;\n  while (i--) {\n    var dep = this.deps[i];\n    if (!this.newDepIds.has(dep.id)) {\n      dep.removeSub(this);\n    }\n  }\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n  if (this.active) {\n    var value = this.get();\n    if (\n      value !== this.value ||\n      // Deep watchers and watchers on Object/Arrays should fire even\n      // when the value is the same, because the value may\n      // have mutated.\n      isObject(value) ||\n      this.deep\n    ) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n      if (this.user) {\n        var info = \"callback for watcher \\\"\" + (this.expression) + \"\\\"\";\n        invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n  this.value = this.get();\n  this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n  var i = this.deps.length;\n  while (i--) {\n    this.deps[i].depend();\n  }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n    var i = this.deps.length;\n    while (i--) {\n      this.deps[i].removeSub(this);\n    }\n    this.active = false;\n  }\n};\n\n/*  */\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter () {\n    return this[sourceKey][key]\n  };\n  sharedPropertyDefinition.set = function proxySetter (val) {\n    this[sourceKey][key] = val;\n  };\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n  if (opts.props) { initProps(vm, opts.props); }\n  if (opts.methods) { initMethods(vm, opts.methods); }\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true /* asRootData */);\n  }\n  if (opts.computed) { initComputed(vm, opts.computed); }\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps (vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  var loop = function ( key ) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      var hyphenatedKey = hyphenate(key);\n      if (isReservedAttribute(hyphenatedKey) ||\n          config.isReservedAttr(hyphenatedKey)) {\n        warn(\n          (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n          vm\n        );\n      }\n      defineReactive$$1(props, key, value, function () {\n        if (!isRoot && !isUpdatingChildComponent) {\n          warn(\n            \"Avoid mutating a prop directly since the value will be \" +\n            \"overwritten whenever the parent component re-renders. \" +\n            \"Instead, use a data or computed property based on the prop's \" +\n            \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        }\n      });\n    } else {\n      defineReactive$$1(props, key, value);\n    }\n    // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop( key );\n  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n    process.env.NODE_ENV !== 'production' && warn(\n      'data functions should return an object:\\n' +\n      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n      vm\n    );\n  }\n  // proxy data on instance\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n  while (i--) {\n    var key = keys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (methods && hasOwn(methods, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n          vm\n        );\n      }\n    }\n    if (props && hasOwn(props, key)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n        \"Use prop default value instead.\",\n        vm\n      );\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  }\n  // observe data\n  observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n  try {\n    return data.call(vm, vm)\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {}\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if (process.env.NODE_ENV !== 'production' && getter == null) {\n      warn(\n        (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n        vm\n      );\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(\n        vm,\n        getter || noop,\n        noop,\n        computedWatcherOptions\n      );\n    }\n\n    // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (process.env.NODE_ENV !== 'production') {\n      if (key in vm.$data) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n      } else if (vm.$options.methods && key in vm.$options.methods) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a method.\"), vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  var shouldCache = !isServerRendering();\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache\n      ? createComputedGetter(key)\n      : createGetterInvoker(userDef);\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get\n      ? shouldCache && userDef.cache !== false\n        ? createComputedGetter(key)\n        : createGetterInvoker(userDef.get)\n      : noop;\n    sharedPropertyDefinition.set = userDef.set || noop;\n  }\n  if (process.env.NODE_ENV !== 'production' &&\n      sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\n        (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n        this\n      );\n    };\n  }\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n  return function computedGetter () {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n      if (Dep.target) {\n        watcher.depend();\n      }\n      return watcher.value\n    }\n  }\n}\n\nfunction createGetterInvoker(fn) {\n  return function computedGetter () {\n    return fn.call(this, this)\n  }\n}\n\nfunction initMethods (vm, methods) {\n  var props = vm.$options.props;\n  for (var key in methods) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof methods[key] !== 'function') {\n        warn(\n          \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n          \"Did you reference the function correctly?\",\n          vm\n        );\n      }\n      if (props && hasOwn(props, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n          vm\n        );\n      }\n      if ((key in vm) && isReserved(key)) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n          \"Avoid defining component methods that start with _ or $.\"\n        );\n      }\n    }\n    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch (vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher (\n  vm,\n  expOrFn,\n  handler,\n  options\n) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n  return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n  dataDef.get = function () { return this._data };\n  var propsDef = {};\n  propsDef.get = function () { return this._props };\n  if (process.env.NODE_ENV !== 'production') {\n    dataDef.set = function () {\n      warn(\n        'Avoid replacing instance root $data. ' +\n        'Use nested data properties instead.',\n        this\n      );\n    };\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (\n    expOrFn,\n    cb,\n    options\n  ) {\n    var vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      var info = \"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\";\n      pushTarget();\n      invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n      popTarget();\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    var startTag, endTag;\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + (vm._uid);\n      endTag = \"vue-perf-end:\" + (vm._uid);\n      mark(startTag);\n    }\n\n    // a flag to avoid this being observed\n    vm._isVue = true;\n    // merge options\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(\n        resolveConstructorOptions(vm.constructor),\n        options || {},\n        vm\n      );\n    }\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      initProxy(vm);\n    } else {\n      vm._renderProxy = vm;\n    }\n    // expose real self\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    initInjections(vm); // resolve injections before data/props\n    initState(vm);\n    initProvide(vm); // resolve provide after data/props\n    callHook(vm, 'created');\n\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent (vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n  var options = Ctor.options;\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions;\n      // check if there are any late-modified/attached options (#4976)\n      var modifiedOptions = resolveModifiedOptions(Ctor);\n      // update base extend options\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n  return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var sealed = Ctor.sealedOptions;\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) { modified = {}; }\n      modified[key] = latest[key];\n    }\n  }\n  return modified\n}\n\nfunction Vue (options) {\n  if (process.env.NODE_ENV !== 'production' &&\n    !(this instanceof Vue)\n  ) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/*  */\n\nfunction initUse (Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initMixin$1 (Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initExtend (Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    var name = extendOptions.name || Super.options.name;\n    if (process.env.NODE_ENV !== 'production' && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent (options) {\n      this._init(options);\n    };\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(\n      Super.options,\n      extendOptions\n    );\n    Sub['super'] = Super;\n\n    // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    }\n\n    // allow further extension/mixin/plugin usage\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use;\n\n    // create asset registers, so extended classes\n    // can have their private assets too.\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    });\n    // enable recursive self-lookup\n    if (name) {\n      Sub.options.components[name] = Sub;\n    }\n\n    // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options);\n\n    // cache constructor\n    cachedCtors[SuperId] = Sub;\n    return Sub\n  };\n}\n\nfunction initProps$1 (Comp) {\n  var props = Comp.options.props;\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  var computed = Comp.options.computed;\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n\n/*  */\n\nfunction initAssetRegisters (Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (\n      id,\n      definition\n    ) {\n      if (!definition) {\n        return this.options[type + 's'][id]\n      } else {\n        /* istanbul ignore if */\n        if (process.env.NODE_ENV !== 'production' && type === 'component') {\n          validateComponentName(id);\n        }\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = { bind: definition, update: definition };\n        }\n        this.options[type + 's'][id] = definition;\n        return definition\n      }\n    };\n  });\n}\n\n/*  */\n\n\n\n\n\nfunction getComponentName (opts) {\n  return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name)\n  }\n  /* istanbul ignore next */\n  return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n  for (var key in cache) {\n    var entry = cache[key];\n    if (entry) {\n      var name = entry.name;\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry (\n  cache,\n  key,\n  keys,\n  current\n) {\n  var entry = cache[key];\n  if (entry && (!current || entry.tag !== current.tag)) {\n    entry.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n\n  methods: {\n    cacheVNode: function cacheVNode() {\n      var ref = this;\n      var cache = ref.cache;\n      var keys = ref.keys;\n      var vnodeToCache = ref.vnodeToCache;\n      var keyToCache = ref.keyToCache;\n      if (vnodeToCache) {\n        var tag = vnodeToCache.tag;\n        var componentInstance = vnodeToCache.componentInstance;\n        var componentOptions = vnodeToCache.componentOptions;\n        cache[keyToCache] = {\n          name: getComponentName(componentOptions),\n          tag: tag,\n          componentInstance: componentInstance,\n        };\n        keys.push(keyToCache);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n        this.vnodeToCache = null;\n      }\n    }\n  },\n\n  created: function created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed: function destroyed () {\n    for (var key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n\n  mounted: function mounted () {\n    var this$1 = this;\n\n    this.cacheVNode();\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) { return matches(val, name); });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) { return !matches(val, name); });\n    });\n  },\n\n  updated: function updated () {\n    this.cacheVNode();\n  },\n\n  render: function render () {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n      if (\n        // not included\n        (include && (!name || !matches(include, name))) ||\n        // excluded\n        (exclude && name && matches(exclude, name))\n      ) {\n        return vnode\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null\n        // same constructor may get registered as different local components\n        // so cid alone is not enough (#3269)\n        ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n        : vnode.key;\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance;\n        // make current key freshest\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        // delay setting the cache until update\n        this.vnodeToCache = vnode;\n        this.keyToCache = key;\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n};\n\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n};\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  var configDef = {};\n  configDef.get = function () { return config; };\n  if (process.env.NODE_ENV !== 'production') {\n    configDef.set = function () {\n      warn(\n        'Do not replace the Vue.config object, set individual fields instead.'\n      );\n    };\n  }\n  Object.defineProperty(Vue, 'config', configDef);\n\n  // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive$$1\n  };\n\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick;\n\n  // 2.6 explicit observable API\n  Vue.observable = function (obj) {\n    observe(obj);\n    return obj\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  });\n\n  // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n  Vue.options._base = Vue;\n\n  extend(Vue.options.components, builtInComponents);\n\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get () {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext\n  }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\n\nVue.version = '2.6.14';\n\n/*  */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n  return (\n    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n    (attr === 'selected' && tag === 'option') ||\n    (attr === 'checked' && tag === 'input') ||\n    (attr === 'muted' && tag === 'video')\n  )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n  return isFalsyAttrValue(value) || value === 'false'\n    ? 'false'\n    // allow arbitrary string value for contenteditable\n    : key === 'contenteditable' && isValidContentEditableValue(value)\n      ? value\n      : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n  'required,reversed,scoped,seamless,selected,sortable,' +\n  'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n  return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n  return val == null || val === false\n};\n\n/*  */\n\nfunction genClassForVnode (vnode) {\n  var data = vnode.data;\n  var parentNode = vnode;\n  var childNode = vnode;\n  while (isDef(childNode.componentInstance)) {\n    childNode = childNode.componentInstance._vnode;\n    if (childNode && childNode.data) {\n      data = mergeClassData(childNode.data, data);\n    }\n  }\n  while (isDef(parentNode = parentNode.parent)) {\n    if (parentNode && parentNode.data) {\n      data = mergeClassData(data, parentNode.data);\n    }\n  }\n  return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n  return {\n    staticClass: concat(child.staticClass, parent.staticClass),\n    class: isDef(child.class)\n      ? [child.class, parent.class]\n      : parent.class\n  }\n}\n\nfunction renderClass (\n  staticClass,\n  dynamicClass\n) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass))\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction concat (a, b) {\n  return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value)\n  }\n  if (isObject(value)) {\n    return stringifyObject(value)\n  }\n  if (typeof value === 'string') {\n    return value\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction stringifyArray (value) {\n  var res = '';\n  var stringified;\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) { res += ' '; }\n      res += stringified;\n    }\n  }\n  return res\n}\n\nfunction stringifyObject (value) {\n  var res = '';\n  for (var key in value) {\n    if (value[key]) {\n      if (res) { res += ' '; }\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n  'html,body,base,head,link,meta,style,title,' +\n  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n  'embed,object,param,source,canvas,script,noscript,del,ins,' +\n  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n  'output,progress,select,textarea,' +\n  'details,dialog,menu,menuitem,summary,' +\n  'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n  'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n  true\n);\n\nvar isReservedTag = function (tag) {\n  return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n  if (isSVG(tag)) {\n    return 'svg'\n  }\n  // basic support for MathML\n  // note it doesn't support other MathML elements being component roots\n  if (tag === 'math') {\n    return 'math'\n  }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return true\n  }\n  if (isReservedTag(tag)) {\n    return false\n  }\n  tag = tag.toLowerCase();\n  /* istanbul ignore if */\n  if (unknownElementCache[tag] != null) {\n    return unknownElementCache[tag]\n  }\n  var el = document.createElement(tag);\n  if (tag.indexOf('-') > -1) {\n    // http://stackoverflow.com/a/28210364/1070244\n    return (unknownElementCache[tag] = (\n      el.constructor === window.HTMLUnknownElement ||\n      el.constructor === window.HTMLElement\n    ))\n  } else {\n    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n  }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/*  */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n  if (typeof el === 'string') {\n    var selected = document.querySelector(el);\n    if (!selected) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'Cannot find element: ' + el\n      );\n      return document.createElement('div')\n    }\n    return selected\n  } else {\n    return el\n  }\n}\n\n/*  */\n\nfunction createElement$1 (tagName, vnode) {\n  var elm = document.createElement(tagName);\n  if (tagName !== 'select') {\n    return elm\n  }\n  // false or null will remove the attribute but undefined will not\n  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n    elm.setAttribute('multiple', 'multiple');\n  }\n  return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n  return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n  return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n  return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n  parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n  node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n  node.appendChild(child);\n}\n\nfunction parentNode (node) {\n  return node.parentNode\n}\n\nfunction nextSibling (node) {\n  return node.nextSibling\n}\n\nfunction tagName (node) {\n  return node.tagName\n}\n\nfunction setTextContent (node, text) {\n  node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n  node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n  createElement: createElement$1,\n  createElementNS: createElementNS,\n  createTextNode: createTextNode,\n  createComment: createComment,\n  insertBefore: insertBefore,\n  removeChild: removeChild,\n  appendChild: appendChild,\n  parentNode: parentNode,\n  nextSibling: nextSibling,\n  tagName: tagName,\n  setTextContent: setTextContent,\n  setStyleScope: setStyleScope\n});\n\n/*  */\n\nvar ref = {\n  create: function create (_, vnode) {\n    registerRef(vnode);\n  },\n  update: function update (oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy: function destroy (vnode) {\n    registerRef(vnode, true);\n  }\n};\n\nfunction registerRef (vnode, isRemoval) {\n  var key = vnode.data.ref;\n  if (!isDef(key)) { return }\n\n  var vm = vnode.context;\n  var ref = vnode.componentInstance || vnode.elm;\n  var refs = vm.$refs;\n  if (isRemoval) {\n    if (Array.isArray(refs[key])) {\n      remove(refs[key], ref);\n    } else if (refs[key] === ref) {\n      refs[key] = undefined;\n    }\n  } else {\n    if (vnode.data.refInFor) {\n      if (!Array.isArray(refs[key])) {\n        refs[key] = [ref];\n      } else if (refs[key].indexOf(ref) < 0) {\n        // $flow-disable-line\n        refs[key].push(ref);\n      }\n    } else {\n      refs[key] = ref;\n    }\n  }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n  return (\n    a.key === b.key &&\n    a.asyncFactory === b.asyncFactory && (\n      (\n        a.tag === b.tag &&\n        a.isComment === b.isComment &&\n        isDef(a.data) === isDef(b.data) &&\n        sameInputType(a, b)\n      ) || (\n        isTrue(a.isAsyncPlaceholder) &&\n        isUndef(b.asyncFactory.error)\n      )\n    )\n  )\n}\n\nfunction sameInputType (a, b) {\n  if (a.tag !== 'input') { return true }\n  var i;\n  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n  var i, key;\n  var map = {};\n  for (i = beginIdx; i <= endIdx; ++i) {\n    key = children[i].key;\n    if (isDef(key)) { map[key] = i; }\n  }\n  return map\n}\n\nfunction createPatchFunction (backend) {\n  var i, j;\n  var cbs = {};\n\n  var modules = backend.modules;\n  var nodeOps = backend.nodeOps;\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = [];\n    for (j = 0; j < modules.length; ++j) {\n      if (isDef(modules[j][hooks[i]])) {\n        cbs[hooks[i]].push(modules[j][hooks[i]]);\n      }\n    }\n  }\n\n  function emptyNodeAt (elm) {\n    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n  }\n\n  function createRmCb (childElm, listeners) {\n    function remove$$1 () {\n      if (--remove$$1.listeners === 0) {\n        removeNode(childElm);\n      }\n    }\n    remove$$1.listeners = listeners;\n    return remove$$1\n  }\n\n  function removeNode (el) {\n    var parent = nodeOps.parentNode(el);\n    // element may have already been removed due to v-html / v-text\n    if (isDef(parent)) {\n      nodeOps.removeChild(parent, el);\n    }\n  }\n\n  function isUnknownElement$$1 (vnode, inVPre) {\n    return (\n      !inVPre &&\n      !vnode.ns &&\n      !(\n        config.ignoredElements.length &&\n        config.ignoredElements.some(function (ignore) {\n          return isRegExp(ignore)\n            ? ignore.test(vnode.tag)\n            : ignore === vnode.tag\n        })\n      ) &&\n      config.isUnknownElement(vnode.tag)\n    )\n  }\n\n  var creatingElmInVPre = 0;\n\n  function createElm (\n    vnode,\n    insertedVnodeQueue,\n    parentElm,\n    refElm,\n    nested,\n    ownerArray,\n    index\n  ) {\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // This vnode was used in a previous render!\n      // now it's used as a new node, overwriting its elm would cause\n      // potential patch errors down the road when it's used as an insertion\n      // reference node. Instead, we clone the node on-demand before creating\n      // associated DOM element for it.\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    vnode.isRootInsert = !nested; // for transition enter check\n    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n      return\n    }\n\n    var data = vnode.data;\n    var children = vnode.children;\n    var tag = vnode.tag;\n    if (isDef(tag)) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (data && data.pre) {\n          creatingElmInVPre++;\n        }\n        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n          warn(\n            'Unknown custom element: <' + tag + '> - did you ' +\n            'register the component correctly? For recursive components, ' +\n            'make sure to provide the \"name\" option.',\n            vnode.context\n          );\n        }\n      }\n\n      vnode.elm = vnode.ns\n        ? nodeOps.createElementNS(vnode.ns, tag)\n        : nodeOps.createElement(tag, vnode);\n      setScope(vnode);\n\n      /* istanbul ignore if */\n      {\n        createChildren(vnode, children, insertedVnodeQueue);\n        if (isDef(data)) {\n          invokeCreateHooks(vnode, insertedVnodeQueue);\n        }\n        insert(parentElm, vnode.elm, refElm);\n      }\n\n      if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n        creatingElmInVPre--;\n      }\n    } else if (isTrue(vnode.isComment)) {\n      vnode.elm = nodeOps.createComment(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    } else {\n      vnode.elm = nodeOps.createTextNode(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    }\n  }\n\n  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i = vnode.data;\n    if (isDef(i)) {\n      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n      if (isDef(i = i.hook) && isDef(i = i.init)) {\n        i(vnode, false /* hydrating */);\n      }\n      // after calling the init hook, if the vnode is a child component\n      // it should've created a child instance and mounted it. the child\n      // component also has set the placeholder vnode's elm.\n      // in that case we can just return the element and be done.\n      if (isDef(vnode.componentInstance)) {\n        initComponent(vnode, insertedVnodeQueue);\n        insert(parentElm, vnode.elm, refElm);\n        if (isTrue(isReactivated)) {\n          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n        }\n        return true\n      }\n    }\n  }\n\n  function initComponent (vnode, insertedVnodeQueue) {\n    if (isDef(vnode.data.pendingInsert)) {\n      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n      vnode.data.pendingInsert = null;\n    }\n    vnode.elm = vnode.componentInstance.$el;\n    if (isPatchable(vnode)) {\n      invokeCreateHooks(vnode, insertedVnodeQueue);\n      setScope(vnode);\n    } else {\n      // empty component root.\n      // skip all element-related modules except for ref (#3455)\n      registerRef(vnode);\n      // make sure to invoke the insert hook\n      insertedVnodeQueue.push(vnode);\n    }\n  }\n\n  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i;\n    // hack for #4339: a reactivated component with inner transition\n    // does not trigger because the inner node's created hooks are not called\n    // again. It's not ideal to involve module-specific logic in here but\n    // there doesn't seem to be a better way to do it.\n    var innerNode = vnode;\n    while (innerNode.componentInstance) {\n      innerNode = innerNode.componentInstance._vnode;\n      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n        for (i = 0; i < cbs.activate.length; ++i) {\n          cbs.activate[i](emptyNode, innerNode);\n        }\n        insertedVnodeQueue.push(innerNode);\n        break\n      }\n    }\n    // unlike a newly created component,\n    // a reactivated keep-alive component doesn't insert itself\n    insert(parentElm, vnode.elm, refElm);\n  }\n\n  function insert (parent, elm, ref$$1) {\n    if (isDef(parent)) {\n      if (isDef(ref$$1)) {\n        if (nodeOps.parentNode(ref$$1) === parent) {\n          nodeOps.insertBefore(parent, elm, ref$$1);\n        }\n      } else {\n        nodeOps.appendChild(parent, elm);\n      }\n    }\n  }\n\n  function createChildren (vnode, children, insertedVnodeQueue) {\n    if (Array.isArray(children)) {\n      if (process.env.NODE_ENV !== 'production') {\n        checkDuplicateKeys(children);\n      }\n      for (var i = 0; i < children.length; ++i) {\n        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n      }\n    } else if (isPrimitive(vnode.text)) {\n      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n    }\n  }\n\n  function isPatchable (vnode) {\n    while (vnode.componentInstance) {\n      vnode = vnode.componentInstance._vnode;\n    }\n    return isDef(vnode.tag)\n  }\n\n  function invokeCreateHooks (vnode, insertedVnodeQueue) {\n    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n      cbs.create[i$1](emptyNode, vnode);\n    }\n    i = vnode.data.hook; // Reuse variable\n    if (isDef(i)) {\n      if (isDef(i.create)) { i.create(emptyNode, vnode); }\n      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n    }\n  }\n\n  // set scope id attribute for scoped CSS.\n  // this is implemented as a special case to avoid the overhead\n  // of going through the normal attribute patching process.\n  function setScope (vnode) {\n    var i;\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      var ancestor = vnode;\n      while (ancestor) {\n        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n          nodeOps.setStyleScope(vnode.elm, i);\n        }\n        ancestor = ancestor.parent;\n      }\n    }\n    // for slot content they should also get the scopeId from the host instance.\n    if (isDef(i = activeInstance) &&\n      i !== vnode.context &&\n      i !== vnode.fnContext &&\n      isDef(i = i.$options._scopeId)\n    ) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    }\n  }\n\n  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n    }\n  }\n\n  function invokeDestroyHook (vnode) {\n    var i, j;\n    var data = vnode.data;\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n    }\n    if (isDef(i = vnode.children)) {\n      for (j = 0; j < vnode.children.length; ++j) {\n        invokeDestroyHook(vnode.children[j]);\n      }\n    }\n  }\n\n  function removeVnodes (vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      var ch = vnodes[startIdx];\n      if (isDef(ch)) {\n        if (isDef(ch.tag)) {\n          removeAndInvokeRemoveHook(ch);\n          invokeDestroyHook(ch);\n        } else { // Text node\n          removeNode(ch.elm);\n        }\n      }\n    }\n  }\n\n  function removeAndInvokeRemoveHook (vnode, rm) {\n    if (isDef(rm) || isDef(vnode.data)) {\n      var i;\n      var listeners = cbs.remove.length + 1;\n      if (isDef(rm)) {\n        // we have a recursively passed down rm callback\n        // increase the listeners count\n        rm.listeners += listeners;\n      } else {\n        // directly removing\n        rm = createRmCb(vnode.elm, listeners);\n      }\n      // recursively invoke hooks on child component root node\n      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n        removeAndInvokeRemoveHook(i, rm);\n      }\n      for (i = 0; i < cbs.remove.length; ++i) {\n        cbs.remove[i](vnode, rm);\n      }\n      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n        i(vnode, rm);\n      } else {\n        rm();\n      }\n    } else {\n      removeNode(vnode.elm);\n    }\n  }\n\n  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n    // removeOnly is a special flag used only by <transition-group>\n    // to ensure removed elements stay in correct relative positions\n    // during leaving transitions\n    var canMove = !removeOnly;\n\n    if (process.env.NODE_ENV !== 'production') {\n      checkDuplicateKeys(newCh);\n    }\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (isUndef(oldStartVnode)) {\n        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n      } else if (isUndef(oldEndVnode)) {\n        oldEndVnode = oldCh[--oldEndIdx];\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        oldStartVnode = oldCh[++oldStartIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n        oldStartVnode = oldCh[++oldStartIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else {\n        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n        idxInOld = isDef(newStartVnode.key)\n          ? oldKeyToIdx[newStartVnode.key]\n          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n        if (isUndef(idxInOld)) { // New element\n          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n        } else {\n          vnodeToMove = oldCh[idxInOld];\n          if (sameVnode(vnodeToMove, newStartVnode)) {\n            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n            oldCh[idxInOld] = undefined;\n            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n          } else {\n            // same key but different element. treat as new element\n            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n          }\n        }\n        newStartVnode = newCh[++newStartIdx];\n      }\n    }\n    if (oldStartIdx > oldEndIdx) {\n      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n    } else if (newStartIdx > newEndIdx) {\n      removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n    }\n  }\n\n  function checkDuplicateKeys (children) {\n    var seenKeys = {};\n    for (var i = 0; i < children.length; i++) {\n      var vnode = children[i];\n      var key = vnode.key;\n      if (isDef(key)) {\n        if (seenKeys[key]) {\n          warn(\n            (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n            vnode.context\n          );\n        } else {\n          seenKeys[key] = true;\n        }\n      }\n    }\n  }\n\n  function findIdxInOld (node, oldCh, start, end) {\n    for (var i = start; i < end; i++) {\n      var c = oldCh[i];\n      if (isDef(c) && sameVnode(node, c)) { return i }\n    }\n  }\n\n  function patchVnode (\n    oldVnode,\n    vnode,\n    insertedVnodeQueue,\n    ownerArray,\n    index,\n    removeOnly\n  ) {\n    if (oldVnode === vnode) {\n      return\n    }\n\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // clone reused vnode\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    var elm = vnode.elm = oldVnode.elm;\n\n    if (isTrue(oldVnode.isAsyncPlaceholder)) {\n      if (isDef(vnode.asyncFactory.resolved)) {\n        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n      } else {\n        vnode.isAsyncPlaceholder = true;\n      }\n      return\n    }\n\n    // reuse element for static trees.\n    // note we only do this if the vnode is cloned -\n    // if the new node is not cloned it means the render functions have been\n    // reset by the hot-reload-api and we need to do a proper re-render.\n    if (isTrue(vnode.isStatic) &&\n      isTrue(oldVnode.isStatic) &&\n      vnode.key === oldVnode.key &&\n      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n    ) {\n      vnode.componentInstance = oldVnode.componentInstance;\n      return\n    }\n\n    var i;\n    var data = vnode.data;\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n    if (isDef(data) && isPatchable(vnode)) {\n      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n    }\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n      } else if (isDef(ch)) {\n        if (process.env.NODE_ENV !== 'production') {\n          checkDuplicateKeys(ch);\n        }\n        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n      } else if (isDef(oldCh)) {\n        removeVnodes(oldCh, 0, oldCh.length - 1);\n      } else if (isDef(oldVnode.text)) {\n        nodeOps.setTextContent(elm, '');\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      nodeOps.setTextContent(elm, vnode.text);\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n    }\n  }\n\n  function invokeInsertHook (vnode, queue, initial) {\n    // delay insert hooks for component root nodes, invoke them after the\n    // element is really inserted\n    if (isTrue(initial) && isDef(vnode.parent)) {\n      vnode.parent.data.pendingInsert = queue;\n    } else {\n      for (var i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  var hydrationBailed = false;\n  // list of modules that can skip create hook during hydration because they\n  // are already rendered on the client or has no need for initialization\n  // Note: style is excluded because it relies on initial clone for future\n  // deep updates (#7063).\n  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n  // Note: this is a browser-only function so we can assume elms are DOM nodes.\n  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n    var i;\n    var tag = vnode.tag;\n    var data = vnode.data;\n    var children = vnode.children;\n    inVPre = inVPre || (data && data.pre);\n    vnode.elm = elm;\n\n    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n      vnode.isAsyncPlaceholder = true;\n      return true\n    }\n    // assert node match\n    if (process.env.NODE_ENV !== 'production') {\n      if (!assertNodeMatch(elm, vnode, inVPre)) {\n        return false\n      }\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n      if (isDef(i = vnode.componentInstance)) {\n        // child component. it should have hydrated its own tree.\n        initComponent(vnode, insertedVnodeQueue);\n        return true\n      }\n    }\n    if (isDef(tag)) {\n      if (isDef(children)) {\n        // empty element, allow client to pick up and populate children\n        if (!elm.hasChildNodes()) {\n          createChildren(vnode, children, insertedVnodeQueue);\n        } else {\n          // v-html and domProps: innerHTML\n          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n            if (i !== elm.innerHTML) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('server innerHTML: ', i);\n                console.warn('client innerHTML: ', elm.innerHTML);\n              }\n              return false\n            }\n          } else {\n            // iterate and compare children lists\n            var childrenMatch = true;\n            var childNode = elm.firstChild;\n            for (var i$1 = 0; i$1 < children.length; i$1++) {\n              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n                childrenMatch = false;\n                break\n              }\n              childNode = childNode.nextSibling;\n            }\n            // if childNode is not null, it means the actual childNodes list is\n            // longer than the virtual children list.\n            if (!childrenMatch || childNode) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n              }\n              return false\n            }\n          }\n        }\n      }\n      if (isDef(data)) {\n        var fullInvoke = false;\n        for (var key in data) {\n          if (!isRenderedModule(key)) {\n            fullInvoke = true;\n            invokeCreateHooks(vnode, insertedVnodeQueue);\n            break\n          }\n        }\n        if (!fullInvoke && data['class']) {\n          // ensure collecting deps for deep class bindings for future updates\n          traverse(data['class']);\n        }\n      }\n    } else if (elm.data !== vnode.text) {\n      elm.data = vnode.text;\n    }\n    return true\n  }\n\n  function assertNodeMatch (node, vnode, inVPre) {\n    if (isDef(vnode.tag)) {\n      return vnode.tag.indexOf('vue-component') === 0 || (\n        !isUnknownElement$$1(vnode, inVPre) &&\n        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n      )\n    } else {\n      return node.nodeType === (vnode.isComment ? 8 : 3)\n    }\n  }\n\n  return function patch (oldVnode, vnode, hydrating, removeOnly) {\n    if (isUndef(vnode)) {\n      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n      return\n    }\n\n    var isInitialPatch = false;\n    var insertedVnodeQueue = [];\n\n    if (isUndef(oldVnode)) {\n      // empty mount (likely as component), create new root element\n      isInitialPatch = true;\n      createElm(vnode, insertedVnodeQueue);\n    } else {\n      var isRealElement = isDef(oldVnode.nodeType);\n      if (!isRealElement && sameVnode(oldVnode, vnode)) {\n        // patch existing root node\n        patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n      } else {\n        if (isRealElement) {\n          // mounting to a real element\n          // check if this is server-rendered content and if we can perform\n          // a successful hydration.\n          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n            oldVnode.removeAttribute(SSR_ATTR);\n            hydrating = true;\n          }\n          if (isTrue(hydrating)) {\n            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n              invokeInsertHook(vnode, insertedVnodeQueue, true);\n              return oldVnode\n            } else if (process.env.NODE_ENV !== 'production') {\n              warn(\n                'The client-side rendered virtual DOM tree is not matching ' +\n                'server-rendered content. This is likely caused by incorrect ' +\n                'HTML markup, for example nesting block-level elements inside ' +\n                '<p>, or missing <tbody>. Bailing hydration and performing ' +\n                'full client-side render.'\n              );\n            }\n          }\n          // either not server-rendered, or hydration failed.\n          // create an empty node and replace it\n          oldVnode = emptyNodeAt(oldVnode);\n        }\n\n        // replacing existing element\n        var oldElm = oldVnode.elm;\n        var parentElm = nodeOps.parentNode(oldElm);\n\n        // create new node\n        createElm(\n          vnode,\n          insertedVnodeQueue,\n          // extremely rare edge case: do not insert if old element is in a\n          // leaving transition. Only happens when combining transition +\n          // keep-alive + HOCs. (#4590)\n          oldElm._leaveCb ? null : parentElm,\n          nodeOps.nextSibling(oldElm)\n        );\n\n        // update parent placeholder node element, recursively\n        if (isDef(vnode.parent)) {\n          var ancestor = vnode.parent;\n          var patchable = isPatchable(vnode);\n          while (ancestor) {\n            for (var i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n            ancestor.elm = vnode.elm;\n            if (patchable) {\n              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n                cbs.create[i$1](emptyNode, ancestor);\n              }\n              // #6513\n              // invoke insert hooks that may have been merged by create hooks.\n              // e.g. for directives that uses the \"inserted\" hook.\n              var insert = ancestor.data.hook.insert;\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n                  insert.fns[i$2]();\n                }\n              }\n            } else {\n              registerRef(ancestor);\n            }\n            ancestor = ancestor.parent;\n          }\n        }\n\n        // destroy old node\n        if (isDef(parentElm)) {\n          removeVnodes([oldVnode], 0, 0);\n        } else if (isDef(oldVnode.tag)) {\n          invokeDestroyHook(oldVnode);\n        }\n      }\n    }\n\n    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n    return vnode.elm\n  }\n}\n\n/*  */\n\nvar directives = {\n  create: updateDirectives,\n  update: updateDirectives,\n  destroy: function unbindDirectives (vnode) {\n    updateDirectives(vnode, emptyNode);\n  }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n  if (oldVnode.data.directives || vnode.data.directives) {\n    _update(oldVnode, vnode);\n  }\n}\n\nfunction _update (oldVnode, vnode) {\n  var isCreate = oldVnode === emptyNode;\n  var isDestroy = vnode === emptyNode;\n  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n  var dirsWithInsert = [];\n  var dirsWithPostpatch = [];\n\n  var key, oldDir, dir;\n  for (key in newDirs) {\n    oldDir = oldDirs[key];\n    dir = newDirs[key];\n    if (!oldDir) {\n      // new directive, bind\n      callHook$1(dir, 'bind', vnode, oldVnode);\n      if (dir.def && dir.def.inserted) {\n        dirsWithInsert.push(dir);\n      }\n    } else {\n      // existing directive, update\n      dir.oldValue = oldDir.value;\n      dir.oldArg = oldDir.arg;\n      callHook$1(dir, 'update', vnode, oldVnode);\n      if (dir.def && dir.def.componentUpdated) {\n        dirsWithPostpatch.push(dir);\n      }\n    }\n  }\n\n  if (dirsWithInsert.length) {\n    var callInsert = function () {\n      for (var i = 0; i < dirsWithInsert.length; i++) {\n        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n      }\n    };\n    if (isCreate) {\n      mergeVNodeHook(vnode, 'insert', callInsert);\n    } else {\n      callInsert();\n    }\n  }\n\n  if (dirsWithPostpatch.length) {\n    mergeVNodeHook(vnode, 'postpatch', function () {\n      for (var i = 0; i < dirsWithPostpatch.length; i++) {\n        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n      }\n    });\n  }\n\n  if (!isCreate) {\n    for (key in oldDirs) {\n      if (!newDirs[key]) {\n        // no longer present, unbind\n        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n      }\n    }\n  }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n  dirs,\n  vm\n) {\n  var res = Object.create(null);\n  if (!dirs) {\n    // $flow-disable-line\n    return res\n  }\n  var i, dir;\n  for (i = 0; i < dirs.length; i++) {\n    dir = dirs[i];\n    if (!dir.modifiers) {\n      // $flow-disable-line\n      dir.modifiers = emptyModifiers;\n    }\n    res[getRawDirName(dir)] = dir;\n    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n  }\n  // $flow-disable-line\n  return res\n}\n\nfunction getRawDirName (dir) {\n  return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n  var fn = dir.def && dir.def[hook];\n  if (fn) {\n    try {\n      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n    } catch (e) {\n      handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n    }\n  }\n}\n\nvar baseModules = [\n  ref,\n  directives\n];\n\n/*  */\n\nfunction updateAttrs (oldVnode, vnode) {\n  var opts = vnode.componentOptions;\n  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n    return\n  }\n  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n    return\n  }\n  var key, cur, old;\n  var elm = vnode.elm;\n  var oldAttrs = oldVnode.data.attrs || {};\n  var attrs = vnode.data.attrs || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(attrs.__ob__)) {\n    attrs = vnode.data.attrs = extend({}, attrs);\n  }\n\n  for (key in attrs) {\n    cur = attrs[key];\n    old = oldAttrs[key];\n    if (old !== cur) {\n      setAttr(elm, key, cur, vnode.data.pre);\n    }\n  }\n  // #4391: in IE9, setting type can reset value for input[type=radio]\n  // #6666: IE/Edge forces progress value down to 1 before setting a max\n  /* istanbul ignore if */\n  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n    setAttr(elm, 'value', attrs.value);\n  }\n  for (key in oldAttrs) {\n    if (isUndef(attrs[key])) {\n      if (isXlink(key)) {\n        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n      } else if (!isEnumeratedAttr(key)) {\n        elm.removeAttribute(key);\n      }\n    }\n  }\n}\n\nfunction setAttr (el, key, value, isInPre) {\n  if (isInPre || el.tagName.indexOf('-') > -1) {\n    baseSetAttr(el, key, value);\n  } else if (isBooleanAttr(key)) {\n    // set attribute for blank value\n    // e.g. <option disabled>Select one</option>\n    if (isFalsyAttrValue(value)) {\n      el.removeAttribute(key);\n    } else {\n      // technically allowfullscreen is a boolean attribute for <iframe>,\n      // but Flash expects a value of \"true\" when used on <embed> tag\n      value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n        ? 'true'\n        : key;\n      el.setAttribute(key, value);\n    }\n  } else if (isEnumeratedAttr(key)) {\n    el.setAttribute(key, convertEnumeratedValue(key, value));\n  } else if (isXlink(key)) {\n    if (isFalsyAttrValue(value)) {\n      el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    baseSetAttr(el, key, value);\n  }\n}\n\nfunction baseSetAttr (el, key, value) {\n  if (isFalsyAttrValue(value)) {\n    el.removeAttribute(key);\n  } else {\n    // #7138: IE10 & 11 fires input event when setting placeholder on\n    // <textarea>... block the first input event and remove the blocker\n    // immediately.\n    /* istanbul ignore if */\n    if (\n      isIE && !isIE9 &&\n      el.tagName === 'TEXTAREA' &&\n      key === 'placeholder' && value !== '' && !el.__ieph\n    ) {\n      var blocker = function (e) {\n        e.stopImmediatePropagation();\n        el.removeEventListener('input', blocker);\n      };\n      el.addEventListener('input', blocker);\n      // $flow-disable-line\n      el.__ieph = true; /* IE placeholder patched */\n    }\n    el.setAttribute(key, value);\n  }\n}\n\nvar attrs = {\n  create: updateAttrs,\n  update: updateAttrs\n};\n\n/*  */\n\nfunction updateClass (oldVnode, vnode) {\n  var el = vnode.elm;\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n  if (\n    isUndef(data.staticClass) &&\n    isUndef(data.class) && (\n      isUndef(oldData) || (\n        isUndef(oldData.staticClass) &&\n        isUndef(oldData.class)\n      )\n    )\n  ) {\n    return\n  }\n\n  var cls = genClassForVnode(vnode);\n\n  // handle transition classes\n  var transitionClass = el._transitionClasses;\n  if (isDef(transitionClass)) {\n    cls = concat(cls, stringifyClass(transitionClass));\n  }\n\n  // set the class\n  if (cls !== el._prevClass) {\n    el.setAttribute('class', cls);\n    el._prevClass = cls;\n  }\n}\n\nvar klass = {\n  create: updateClass,\n  update: updateClass\n};\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/*  */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n  /* istanbul ignore if */\n  if (isDef(on[RANGE_TOKEN])) {\n    // IE input[type=range] only supports `change` event\n    var event = isIE ? 'change' : 'input';\n    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n    delete on[RANGE_TOKEN];\n  }\n  // This was originally intended to fix #4521 but no longer necessary\n  // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n  /* istanbul ignore if */\n  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n    delete on[CHECKBOX_RADIO_TOKEN];\n  }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n  var _target = target$1; // save current target element in closure\n  return function onceHandler () {\n    var res = handler.apply(null, arguments);\n    if (res !== null) {\n      remove$2(event, onceHandler, capture, _target);\n    }\n  }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n  name,\n  handler,\n  capture,\n  passive\n) {\n  // async edge case #6566: inner click event triggers patch, event handler\n  // attached to outer element during patch, and triggered again. This\n  // happens because browsers fire microtask ticks between event propagation.\n  // the solution is simple: we save the timestamp when a handler is attached,\n  // and the handler would only fire if the event passed to it was fired\n  // AFTER it was attached.\n  if (useMicrotaskFix) {\n    var attachedTimestamp = currentFlushTimestamp;\n    var original = handler;\n    handler = original._wrapper = function (e) {\n      if (\n        // no bubbling, should always fire.\n        // this is just a safety net in case event.timeStamp is unreliable in\n        // certain weird environments...\n        e.target === e.currentTarget ||\n        // event is fired after handler attachment\n        e.timeStamp >= attachedTimestamp ||\n        // bail for environments that have buggy event.timeStamp implementations\n        // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n        // #9681 QtWebEngine event.timeStamp is negative value\n        e.timeStamp <= 0 ||\n        // #9448 bail if event is fired in another document in a multi-page\n        // electron/nw.js app, since event.timeStamp will be using a different\n        // starting reference\n        e.target.ownerDocument !== document\n      ) {\n        return original.apply(this, arguments)\n      }\n    };\n  }\n  target$1.addEventListener(\n    name,\n    handler,\n    supportsPassive\n      ? { capture: capture, passive: passive }\n      : capture\n  );\n}\n\nfunction remove$2 (\n  name,\n  handler,\n  capture,\n  _target\n) {\n  (_target || target$1).removeEventListener(\n    name,\n    handler._wrapper || handler,\n    capture\n  );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n    return\n  }\n  var on = vnode.data.on || {};\n  var oldOn = oldVnode.data.on || {};\n  target$1 = vnode.elm;\n  normalizeEvents(on);\n  updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n  target$1 = undefined;\n}\n\nvar events = {\n  create: updateDOMListeners,\n  update: updateDOMListeners\n};\n\n/*  */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return\n  }\n  var key, cur;\n  var elm = vnode.elm;\n  var oldProps = oldVnode.data.domProps || {};\n  var props = vnode.data.domProps || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(props.__ob__)) {\n    props = vnode.data.domProps = extend({}, props);\n  }\n\n  for (key in oldProps) {\n    if (!(key in props)) {\n      elm[key] = '';\n    }\n  }\n\n  for (key in props) {\n    cur = props[key];\n    // ignore children if the node has textContent or innerHTML,\n    // as these will throw away existing DOM nodes and cause removal errors\n    // on subsequent patches (#3360)\n    if (key === 'textContent' || key === 'innerHTML') {\n      if (vnode.children) { vnode.children.length = 0; }\n      if (cur === oldProps[key]) { continue }\n      // #6601 work around Chrome version <= 55 bug where single textNode\n      // replaced by innerHTML/textContent retains its parentNode property\n      if (elm.childNodes.length === 1) {\n        elm.removeChild(elm.childNodes[0]);\n      }\n    }\n\n    if (key === 'value' && elm.tagName !== 'PROGRESS') {\n      // store value as _value as well since\n      // non-string values will be stringified\n      elm._value = cur;\n      // avoid resetting cursor position when value is the same\n      var strCur = isUndef(cur) ? '' : String(cur);\n      if (shouldUpdateValue(elm, strCur)) {\n        elm.value = strCur;\n      }\n    } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n      // IE doesn't support innerHTML for SVG elements\n      svgContainer = svgContainer || document.createElement('div');\n      svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n      var svg = svgContainer.firstChild;\n      while (elm.firstChild) {\n        elm.removeChild(elm.firstChild);\n      }\n      while (svg.firstChild) {\n        elm.appendChild(svg.firstChild);\n      }\n    } else if (\n      // skip the update if old and new VDOM state is the same.\n      // `value` is handled separately because the DOM value may be temporarily\n      // out of sync with VDOM state due to focus, composition and modifiers.\n      // This  #4521 by skipping the unnecessary `checked` update.\n      cur !== oldProps[key]\n    ) {\n      // some property updates can throw\n      // e.g. `value` on <progress> w/ non-finite value\n      try {\n        elm[key] = cur;\n      } catch (e) {}\n    }\n  }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n  return (!elm.composing && (\n    elm.tagName === 'OPTION' ||\n    isNotInFocusAndDirty(elm, checkVal) ||\n    isDirtyWithModifiers(elm, checkVal)\n  ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n  // return true when textbox (.number and .trim) loses focus and its value is\n  // not equal to the updated value\n  var notInFocus = true;\n  // #6157\n  // work around IE bug when accessing document.activeElement in an iframe\n  try { notInFocus = document.activeElement !== elm; } catch (e) {}\n  return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n  var value = elm.value;\n  var modifiers = elm._vModifiers; // injected by v-model runtime\n  if (isDef(modifiers)) {\n    if (modifiers.number) {\n      return toNumber(value) !== toNumber(newVal)\n    }\n    if (modifiers.trim) {\n      return value.trim() !== newVal.trim()\n    }\n  }\n  return value !== newVal\n}\n\nvar domProps = {\n  create: updateDOMProps,\n  update: updateDOMProps\n};\n\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n  var style = normalizeStyleBinding(data.style);\n  // static style is pre-processed into an object during compilation\n  // and is always a fresh object, so it's safe to merge into it\n  return data.staticStyle\n    ? extend(data.staticStyle, style)\n    : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle)\n  }\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle)\n  }\n  return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n  var res = {};\n  var styleData;\n\n  if (checkChild) {\n    var childNode = vnode;\n    while (childNode.componentInstance) {\n      childNode = childNode.componentInstance._vnode;\n      if (\n        childNode && childNode.data &&\n        (styleData = normalizeStyleData(childNode.data))\n      ) {\n        extend(res, styleData);\n      }\n    }\n  }\n\n  if ((styleData = normalizeStyleData(vnode.data))) {\n    extend(res, styleData);\n  }\n\n  var parentNode = vnode;\n  while ((parentNode = parentNode.parent)) {\n    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n      extend(res, styleData);\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n  /* istanbul ignore if */\n  if (cssVarRE.test(name)) {\n    el.style.setProperty(name, val);\n  } else if (importantRE.test(val)) {\n    el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n  } else {\n    var normalizedName = normalize(name);\n    if (Array.isArray(val)) {\n      // Support values array created by autoprefixer, e.g.\n      // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n      // Set them one by one, and the browser will only set those it can recognize\n      for (var i = 0, len = val.length; i < len; i++) {\n        el.style[normalizedName] = val[i];\n      }\n    } else {\n      el.style[normalizedName] = val;\n    }\n  }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n  emptyStyle = emptyStyle || document.createElement('div').style;\n  prop = camelize(prop);\n  if (prop !== 'filter' && (prop in emptyStyle)) {\n    return prop\n  }\n  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n  for (var i = 0; i < vendorNames.length; i++) {\n    var name = vendorNames[i] + capName;\n    if (name in emptyStyle) {\n      return name\n    }\n  }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticStyle) && isUndef(data.style) &&\n    isUndef(oldData.staticStyle) && isUndef(oldData.style)\n  ) {\n    return\n  }\n\n  var cur, name;\n  var el = vnode.elm;\n  var oldStaticStyle = oldData.staticStyle;\n  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n  // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n  var oldStyle = oldStaticStyle || oldStyleBinding;\n\n  var style = normalizeStyleBinding(vnode.data.style) || {};\n\n  // store normalized style under a different key for next diff\n  // make sure to clone it if it's reactive, since the user likely wants\n  // to mutate it.\n  vnode.data.normalizedStyle = isDef(style.__ob__)\n    ? extend({}, style)\n    : style;\n\n  var newStyle = getStyle(vnode, true);\n\n  for (name in oldStyle) {\n    if (isUndef(newStyle[name])) {\n      setProp(el, name, '');\n    }\n  }\n  for (name in newStyle) {\n    cur = newStyle[name];\n    if (cur !== oldStyle[name]) {\n      // ie9 setting to null has no effect, must use empty string\n      setProp(el, name, cur == null ? '' : cur);\n    }\n  }\n}\n\nvar style = {\n  create: updateStyle,\n  update: updateStyle\n};\n\n/*  */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    if (cur.indexOf(' ' + cls + ' ') < 0) {\n      el.setAttribute('class', (cur + cls).trim());\n    }\n  }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n    } else {\n      el.classList.remove(cls);\n    }\n    if (!el.classList.length) {\n      el.removeAttribute('class');\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    var tar = ' ' + cls + ' ';\n    while (cur.indexOf(tar) >= 0) {\n      cur = cur.replace(tar, ' ');\n    }\n    cur = cur.trim();\n    if (cur) {\n      el.setAttribute('class', cur);\n    } else {\n      el.removeAttribute('class');\n    }\n  }\n}\n\n/*  */\n\nfunction resolveTransition (def$$1) {\n  if (!def$$1) {\n    return\n  }\n  /* istanbul ignore else */\n  if (typeof def$$1 === 'object') {\n    var res = {};\n    if (def$$1.css !== false) {\n      extend(res, autoCssTransition(def$$1.name || 'v'));\n    }\n    extend(res, def$$1);\n    return res\n  } else if (typeof def$$1 === 'string') {\n    return autoCssTransition(def$$1)\n  }\n}\n\nvar autoCssTransition = cached(function (name) {\n  return {\n    enterClass: (name + \"-enter\"),\n    enterToClass: (name + \"-enter-to\"),\n    enterActiveClass: (name + \"-enter-active\"),\n    leaveClass: (name + \"-leave\"),\n    leaveToClass: (name + \"-leave-to\"),\n    leaveActiveClass: (name + \"-leave-active\")\n  }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n  /* istanbul ignore if */\n  if (window.ontransitionend === undefined &&\n    window.onwebkittransitionend !== undefined\n  ) {\n    transitionProp = 'WebkitTransition';\n    transitionEndEvent = 'webkitTransitionEnd';\n  }\n  if (window.onanimationend === undefined &&\n    window.onwebkitanimationend !== undefined\n  ) {\n    animationProp = 'WebkitAnimation';\n    animationEndEvent = 'webkitAnimationEnd';\n  }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n  ? window.requestAnimationFrame\n    ? window.requestAnimationFrame.bind(window)\n    : setTimeout\n  : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n  raf(function () {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass (el, cls) {\n  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n  if (transitionClasses.indexOf(cls) < 0) {\n    transitionClasses.push(cls);\n    addClass(el, cls);\n  }\n}\n\nfunction removeTransitionClass (el, cls) {\n  if (el._transitionClasses) {\n    remove(el._transitionClasses, cls);\n  }\n  removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n  el,\n  expectedType,\n  cb\n) {\n  var ref = getTransitionInfo(el, expectedType);\n  var type = ref.type;\n  var timeout = ref.timeout;\n  var propCount = ref.propCount;\n  if (!type) { return cb() }\n  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  var ended = 0;\n  var end = function () {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n  var onEnd = function (e) {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n  setTimeout(function () {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n  var styles = window.getComputedStyle(el);\n  // JSDOM may return undefined for transition properties\n  var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n  var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n  var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n  var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n  var type;\n  var timeout = 0;\n  var propCount = 0;\n  /* istanbul ignore if */\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0\n      ? transitionTimeout > animationTimeout\n        ? TRANSITION\n        : ANIMATION\n      : null;\n    propCount = type\n      ? type === TRANSITION\n        ? transitionDurations.length\n        : animationDurations.length\n      : 0;\n  }\n  var hasTransform =\n    type === TRANSITION &&\n    transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type: type,\n    timeout: timeout,\n    propCount: propCount,\n    hasTransform: hasTransform\n  }\n}\n\nfunction getTimeout (delays, durations) {\n  /* istanbul ignore next */\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n\n  return Math.max.apply(null, durations.map(function (d, i) {\n    return toMs(d) + toMs(delays[i])\n  }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n  return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/*  */\n\nfunction enter (vnode, toggleDisplay) {\n  var el = vnode.elm;\n\n  // call leave callback now\n  if (isDef(el._leaveCb)) {\n    el._leaveCb.cancelled = true;\n    el._leaveCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data)) {\n    return\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._enterCb) || el.nodeType !== 1) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var enterClass = data.enterClass;\n  var enterToClass = data.enterToClass;\n  var enterActiveClass = data.enterActiveClass;\n  var appearClass = data.appearClass;\n  var appearToClass = data.appearToClass;\n  var appearActiveClass = data.appearActiveClass;\n  var beforeEnter = data.beforeEnter;\n  var enter = data.enter;\n  var afterEnter = data.afterEnter;\n  var enterCancelled = data.enterCancelled;\n  var beforeAppear = data.beforeAppear;\n  var appear = data.appear;\n  var afterAppear = data.afterAppear;\n  var appearCancelled = data.appearCancelled;\n  var duration = data.duration;\n\n  // activeInstance will always be the <transition> component managing this\n  // transition. One edge case to check is when the <transition> is placed\n  // as the root node of a child component. In that case we need to check\n  // <transition>'s parent for appear check.\n  var context = activeInstance;\n  var transitionNode = activeInstance.$vnode;\n  while (transitionNode && transitionNode.parent) {\n    context = transitionNode.context;\n    transitionNode = transitionNode.parent;\n  }\n\n  var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return\n  }\n\n  var startClass = isAppear && appearClass\n    ? appearClass\n    : enterClass;\n  var activeClass = isAppear && appearActiveClass\n    ? appearActiveClass\n    : enterActiveClass;\n  var toClass = isAppear && appearToClass\n    ? appearToClass\n    : enterToClass;\n\n  var beforeEnterHook = isAppear\n    ? (beforeAppear || beforeEnter)\n    : beforeEnter;\n  var enterHook = isAppear\n    ? (typeof appear === 'function' ? appear : enter)\n    : enter;\n  var afterEnterHook = isAppear\n    ? (afterAppear || afterEnter)\n    : afterEnter;\n  var enterCancelledHook = isAppear\n    ? (appearCancelled || enterCancelled)\n    : enterCancelled;\n\n  var explicitEnterDuration = toNumber(\n    isObject(duration)\n      ? duration.enter\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(enterHook);\n\n  var cb = el._enterCb = once(function () {\n    if (expectsCSS) {\n      removeTransitionClass(el, toClass);\n      removeTransitionClass(el, activeClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, startClass);\n      }\n      enterCancelledHook && enterCancelledHook(el);\n    } else {\n      afterEnterHook && afterEnterHook(el);\n    }\n    el._enterCb = null;\n  });\n\n  if (!vnode.data.show) {\n    // remove pending leave element on enter by injecting an insert hook\n    mergeVNodeHook(vnode, 'insert', function () {\n      var parent = el.parentNode;\n      var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n      if (pendingNode &&\n        pendingNode.tag === vnode.tag &&\n        pendingNode.elm._leaveCb\n      ) {\n        pendingNode.elm._leaveCb();\n      }\n      enterHook && enterHook(el, cb);\n    });\n  }\n\n  // start enter transition\n  beforeEnterHook && beforeEnterHook(el);\n  if (expectsCSS) {\n    addTransitionClass(el, startClass);\n    addTransitionClass(el, activeClass);\n    nextFrame(function () {\n      removeTransitionClass(el, startClass);\n      if (!cb.cancelled) {\n        addTransitionClass(el, toClass);\n        if (!userWantsControl) {\n          if (isValidDuration(explicitEnterDuration)) {\n            setTimeout(cb, explicitEnterDuration);\n          } else {\n            whenTransitionEnds(el, type, cb);\n          }\n        }\n      }\n    });\n  }\n\n  if (vnode.data.show) {\n    toggleDisplay && toggleDisplay();\n    enterHook && enterHook(el, cb);\n  }\n\n  if (!expectsCSS && !userWantsControl) {\n    cb();\n  }\n}\n\nfunction leave (vnode, rm) {\n  var el = vnode.elm;\n\n  // call enter callback now\n  if (isDef(el._enterCb)) {\n    el._enterCb.cancelled = true;\n    el._enterCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data) || el.nodeType !== 1) {\n    return rm()\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._leaveCb)) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var leaveClass = data.leaveClass;\n  var leaveToClass = data.leaveToClass;\n  var leaveActiveClass = data.leaveActiveClass;\n  var beforeLeave = data.beforeLeave;\n  var leave = data.leave;\n  var afterLeave = data.afterLeave;\n  var leaveCancelled = data.leaveCancelled;\n  var delayLeave = data.delayLeave;\n  var duration = data.duration;\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(leave);\n\n  var explicitLeaveDuration = toNumber(\n    isObject(duration)\n      ? duration.leave\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  var cb = el._leaveCb = once(function () {\n    if (el.parentNode && el.parentNode._pending) {\n      el.parentNode._pending[vnode.key] = null;\n    }\n    if (expectsCSS) {\n      removeTransitionClass(el, leaveToClass);\n      removeTransitionClass(el, leaveActiveClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, leaveClass);\n      }\n      leaveCancelled && leaveCancelled(el);\n    } else {\n      rm();\n      afterLeave && afterLeave(el);\n    }\n    el._leaveCb = null;\n  });\n\n  if (delayLeave) {\n    delayLeave(performLeave);\n  } else {\n    performLeave();\n  }\n\n  function performLeave () {\n    // the delayed leave may have already been cancelled\n    if (cb.cancelled) {\n      return\n    }\n    // record leaving element\n    if (!vnode.data.show && el.parentNode) {\n      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n    }\n    beforeLeave && beforeLeave(el);\n    if (expectsCSS) {\n      addTransitionClass(el, leaveClass);\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(function () {\n        removeTransitionClass(el, leaveClass);\n        if (!cb.cancelled) {\n          addTransitionClass(el, leaveToClass);\n          if (!userWantsControl) {\n            if (isValidDuration(explicitLeaveDuration)) {\n              setTimeout(cb, explicitLeaveDuration);\n            } else {\n              whenTransitionEnds(el, type, cb);\n            }\n          }\n        }\n      });\n    }\n    leave && leave(el, cb);\n    if (!expectsCSS && !userWantsControl) {\n      cb();\n    }\n  }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n  if (typeof val !== 'number') {\n    warn(\n      \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n      \"got \" + (JSON.stringify(val)) + \".\",\n      vnode.context\n    );\n  } else if (isNaN(val)) {\n    warn(\n      \"<transition> explicit \" + name + \" duration is NaN - \" +\n      'the duration expression might be incorrect.',\n      vnode.context\n    );\n  }\n}\n\nfunction isValidDuration (val) {\n  return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n  if (isUndef(fn)) {\n    return false\n  }\n  var invokerFns = fn.fns;\n  if (isDef(invokerFns)) {\n    // invoker\n    return getHookArgumentsLength(\n      Array.isArray(invokerFns)\n        ? invokerFns[0]\n        : invokerFns\n    )\n  } else {\n    return (fn._length || fn.length) > 1\n  }\n}\n\nfunction _enter (_, vnode) {\n  if (vnode.data.show !== true) {\n    enter(vnode);\n  }\n}\n\nvar transition = inBrowser ? {\n  create: _enter,\n  activate: _enter,\n  remove: function remove$$1 (vnode, rm) {\n    /* istanbul ignore else */\n    if (vnode.data.show !== true) {\n      leave(vnode, rm);\n    } else {\n      rm();\n    }\n  }\n} : {};\n\nvar platformModules = [\n  attrs,\n  klass,\n  events,\n  domProps,\n  style,\n  transition\n];\n\n/*  */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n  // http://www.matts411.com/post/internet-explorer-9-oninput/\n  document.addEventListener('selectionchange', function () {\n    var el = document.activeElement;\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nvar directive = {\n  inserted: function inserted (el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', function () {\n          directive.componentUpdated(el, binding, vnode);\n        });\n      } else {\n        setSelected(el, binding, vnode.context);\n      }\n      el._vOptions = [].map.call(el.options, getValue);\n    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n      el._vModifiers = binding.modifiers;\n      if (!binding.modifiers.lazy) {\n        el.addEventListener('compositionstart', onCompositionStart);\n        el.addEventListener('compositionend', onCompositionEnd);\n        // Safari < 10.2 & UIWebView doesn't fire compositionend when\n        // switching focus before confirming composition choice\n        // this also fixes the issue where some browsers e.g. iOS Chrome\n        // fires \"change\" instead of \"input\" on autocomplete.\n        el.addEventListener('change', onCompositionEnd);\n        /* istanbul ignore if */\n        if (isIE9) {\n          el.vmodel = true;\n        }\n      }\n    }\n  },\n\n  componentUpdated: function componentUpdated (el, binding, vnode) {\n    if (vnode.tag === 'select') {\n      setSelected(el, binding, vnode.context);\n      // in case the options rendered by v-for have changed,\n      // it's possible that the value is out-of-sync with the rendered options.\n      // detect such cases and filter out values that no longer has a matching\n      // option in the DOM.\n      var prevOptions = el._vOptions;\n      var curOptions = el._vOptions = [].map.call(el.options, getValue);\n      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n        // trigger change event if\n        // no matching option found for at least one value\n        var needReset = el.multiple\n          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n        if (needReset) {\n          trigger(el, 'change');\n        }\n      }\n    }\n  }\n};\n\nfunction setSelected (el, binding, vm) {\n  actuallySetSelected(el, binding, vm);\n  /* istanbul ignore if */\n  if (isIE || isEdge) {\n    setTimeout(function () {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n  var value = binding.value;\n  var isMultiple = el.multiple;\n  if (isMultiple && !Array.isArray(value)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n      \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n      vm\n    );\n    return\n  }\n  var selected, option;\n  for (var i = 0, l = el.options.length; i < l; i++) {\n    option = el.options[i];\n    if (isMultiple) {\n      selected = looseIndexOf(value, getValue(option)) > -1;\n      if (option.selected !== selected) {\n        option.selected = selected;\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i) {\n          el.selectedIndex = i;\n        }\n        return\n      }\n    }\n  }\n  if (!isMultiple) {\n    el.selectedIndex = -1;\n  }\n}\n\nfunction hasNoMatchingOption (value, options) {\n  return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n  return '_value' in option\n    ? option._value\n    : option.value\n}\n\nfunction onCompositionStart (e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) { return }\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n\n/*  */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n    ? locateNode(vnode.componentInstance._vnode)\n    : vnode\n}\n\nvar show = {\n  bind: function bind (el, ref, vnode) {\n    var value = ref.value;\n\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    var originalDisplay = el.__vOriginalDisplay =\n      el.style.display === 'none' ? '' : el.style.display;\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, function () {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n\n  update: function update (el, ref, vnode) {\n    var value = ref.value;\n    var oldValue = ref.oldValue;\n\n    /* istanbul ignore if */\n    if (!value === !oldValue) { return }\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    if (transition$$1) {\n      vnode.data.show = true;\n      if (value) {\n        enter(vnode, function () {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, function () {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n\n  unbind: function unbind (\n    el,\n    binding,\n    vnode,\n    oldVnode,\n    isDestroy\n  ) {\n    if (!isDestroy) {\n      el.style.display = el.__vOriginalDisplay;\n    }\n  }\n};\n\nvar platformDirectives = {\n  model: directive,\n  show: show\n};\n\n/*  */\n\nvar transitionProps = {\n  name: String,\n  appear: Boolean,\n  css: Boolean,\n  mode: String,\n  type: String,\n  enterClass: String,\n  leaveClass: String,\n  enterToClass: String,\n  leaveToClass: String,\n  enterActiveClass: String,\n  leaveActiveClass: String,\n  appearClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n  var compOptions = vnode && vnode.componentOptions;\n  if (compOptions && compOptions.Ctor.options.abstract) {\n    return getRealChild(getFirstComponentChild(compOptions.children))\n  } else {\n    return vnode\n  }\n}\n\nfunction extractTransitionData (comp) {\n  var data = {};\n  var options = comp.$options;\n  // props\n  for (var key in options.propsData) {\n    data[key] = comp[key];\n  }\n  // events.\n  // extract listeners and pass them directly to the transition methods\n  var listeners = options._parentListeners;\n  for (var key$1 in listeners) {\n    data[camelize(key$1)] = listeners[key$1];\n  }\n  return data\n}\n\nfunction placeholder (h, rawChild) {\n  if (/\\d-keep-alive$/.test(rawChild.tag)) {\n    return h('keep-alive', {\n      props: rawChild.componentOptions.propsData\n    })\n  }\n}\n\nfunction hasParentTransition (vnode) {\n  while ((vnode = vnode.parent)) {\n    if (vnode.data.transition) {\n      return true\n    }\n  }\n}\n\nfunction isSameChild (child, oldChild) {\n  return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n\n  render: function render (h) {\n    var this$1 = this;\n\n    var children = this.$slots.default;\n    if (!children) {\n      return\n    }\n\n    // filter out text nodes (possible whitespaces)\n    children = children.filter(isNotTextNode);\n    /* istanbul ignore if */\n    if (!children.length) {\n      return\n    }\n\n    // warn multiple elements\n    if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n      warn(\n        '<transition> can only be used on a single element. Use ' +\n        '<transition-group> for lists.',\n        this.$parent\n      );\n    }\n\n    var mode = this.mode;\n\n    // warn invalid mode\n    if (process.env.NODE_ENV !== 'production' &&\n      mode && mode !== 'in-out' && mode !== 'out-in'\n    ) {\n      warn(\n        'invalid <transition> mode: ' + mode,\n        this.$parent\n      );\n    }\n\n    var rawChild = children[0];\n\n    // if this is a component root node and the component's\n    // parent container node also has transition, skip.\n    if (hasParentTransition(this.$vnode)) {\n      return rawChild\n    }\n\n    // apply transition data to child\n    // use getRealChild() to ignore abstract components e.g. keep-alive\n    var child = getRealChild(rawChild);\n    /* istanbul ignore if */\n    if (!child) {\n      return rawChild\n    }\n\n    if (this._leaving) {\n      return placeholder(h, rawChild)\n    }\n\n    // ensure a key that is unique to the vnode type and to this transition\n    // component instance. This key will be used to remove pending leaving nodes\n    // during entering.\n    var id = \"__transition-\" + (this._uid) + \"-\";\n    child.key = child.key == null\n      ? child.isComment\n        ? id + 'comment'\n        : id + child.tag\n      : isPrimitive(child.key)\n        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n        : child.key;\n\n    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    var oldRawChild = this._vnode;\n    var oldChild = getRealChild(oldRawChild);\n\n    // mark v-show\n    // so that the transition module can hand over the control to the directive\n    if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n      child.data.show = true;\n    }\n\n    if (\n      oldChild &&\n      oldChild.data &&\n      !isSameChild(child, oldChild) &&\n      !isAsyncPlaceholder(oldChild) &&\n      // #6687 component root is a comment node\n      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n    ) {\n      // replace old child transition data with fresh one\n      // important for dynamic transitions!\n      var oldData = oldChild.data.transition = extend({}, data);\n      // handle transition mode\n      if (mode === 'out-in') {\n        // return placeholder node and queue update when leave finishes\n        this._leaving = true;\n        mergeVNodeHook(oldData, 'afterLeave', function () {\n          this$1._leaving = false;\n          this$1.$forceUpdate();\n        });\n        return placeholder(h, rawChild)\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild\n        }\n        var delayedLeave;\n        var performLeave = function () { delayedLeave(); };\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n      }\n    }\n\n    return rawChild\n  }\n};\n\n/*  */\n\nvar props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n  props: props,\n\n  beforeMount: function beforeMount () {\n    var this$1 = this;\n\n    var update = this._update;\n    this._update = function (vnode, hydrating) {\n      var restoreActiveInstance = setActiveInstance(this$1);\n      // force removing pass\n      this$1.__patch__(\n        this$1._vnode,\n        this$1.kept,\n        false, // hydrating\n        true // removeOnly (!important, avoids unnecessary moves)\n      );\n      this$1._vnode = this$1.kept;\n      restoreActiveInstance();\n      update.call(this$1, vnode, hydrating);\n    };\n  },\n\n  render: function render (h) {\n    var tag = this.tag || this.$vnode.data.tag || 'span';\n    var map = Object.create(null);\n    var prevChildren = this.prevChildren = this.children;\n    var rawChildren = this.$slots.default || [];\n    var children = this.children = [];\n    var transitionData = extractTransitionData(this);\n\n    for (var i = 0; i < rawChildren.length; i++) {\n      var c = rawChildren[i];\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c);\n          map[c.key] = c\n          ;(c.data || (c.data = {})).transition = transitionData;\n        } else if (process.env.NODE_ENV !== 'production') {\n          var opts = c.componentOptions;\n          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n          warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n        }\n      }\n    }\n\n    if (prevChildren) {\n      var kept = [];\n      var removed = [];\n      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n        var c$1 = prevChildren[i$1];\n        c$1.data.transition = transitionData;\n        c$1.data.pos = c$1.elm.getBoundingClientRect();\n        if (map[c$1.key]) {\n          kept.push(c$1);\n        } else {\n          removed.push(c$1);\n        }\n      }\n      this.kept = h(tag, null, kept);\n      this.removed = removed;\n    }\n\n    return h(tag, null, children)\n  },\n\n  updated: function updated () {\n    var children = this.prevChildren;\n    var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n      return\n    }\n\n    // we divide the work into three loops to avoid mixing DOM reads and writes\n    // in each iteration - which helps prevent layout thrashing.\n    children.forEach(callPendingCbs);\n    children.forEach(recordPosition);\n    children.forEach(applyTranslation);\n\n    // force reflow to put everything in position\n    // assign to this to avoid being removed in tree-shaking\n    // $flow-disable-line\n    this._reflow = document.body.offsetHeight;\n\n    children.forEach(function (c) {\n      if (c.data.moved) {\n        var el = c.elm;\n        var s = el.style;\n        addTransitionClass(el, moveClass);\n        s.transform = s.WebkitTransform = s.transitionDuration = '';\n        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n          if (e && e.target !== el) {\n            return\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(transitionEndEvent, cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        });\n      }\n    });\n  },\n\n  methods: {\n    hasMove: function hasMove (el, moveClass) {\n      /* istanbul ignore if */\n      if (!hasTransition) {\n        return false\n      }\n      /* istanbul ignore if */\n      if (this._hasMove) {\n        return this._hasMove\n      }\n      // Detect whether an element with the move class applied has\n      // CSS transitions. Since the element may be inside an entering\n      // transition at this very moment, we make a clone of it and remove\n      // all other transition classes applied to ensure only the move class\n      // is applied.\n      var clone = el.cloneNode();\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n      }\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      var info = getTransitionInfo(clone);\n      this.$el.removeChild(clone);\n      return (this._hasMove = info.hasTransform)\n    }\n  }\n};\n\nfunction callPendingCbs (c) {\n  /* istanbul ignore if */\n  if (c.elm._moveCb) {\n    c.elm._moveCb();\n  }\n  /* istanbul ignore if */\n  if (c.elm._enterCb) {\n    c.elm._enterCb();\n  }\n}\n\nfunction recordPosition (c) {\n  c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n  var oldPos = c.data.pos;\n  var newPos = c.data.newPos;\n  var dx = oldPos.left - newPos.left;\n  var dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    c.data.moved = true;\n    var s = c.elm.style;\n    s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n    s.transitionDuration = '0s';\n  }\n}\n\nvar platformComponents = {\n  Transition: Transition,\n  TransitionGroup: TransitionGroup\n};\n\n/*  */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && inBrowser ? query(el) : undefined;\n  return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n  setTimeout(function () {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else if (\n        process.env.NODE_ENV !== 'production' &&\n        process.env.NODE_ENV !== 'test'\n      ) {\n        console[console.info ? 'info' : 'log'](\n          'Download the Vue Devtools extension for a better development experience:\\n' +\n          'https://github.com/vuejs/vue-devtools'\n        );\n      }\n    }\n    if (process.env.NODE_ENV !== 'production' &&\n      process.env.NODE_ENV !== 'test' &&\n      config.productionTip !== false &&\n      typeof console !== 'undefined'\n    ) {\n      console[console.info ? 'info' : 'log'](\n        \"You are running Vue in development mode.\\n\" +\n        \"Make sure to turn on production mode when deploying for production.\\n\" +\n        \"See more tips at https://vuejs.org/guide/deployment.html\"\n      );\n    }\n  }, 0);\n}\n\n/*  */\n\nexport default Vue;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func -- spec requirement\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    typeof postMessage == 'function' &&\n    !global.importScripts &&\n    location && location.protocol !== 'file:' &&\n    !fails(post)\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","exports.nextTick = function nextTick(fn) {\n    var args = Array.prototype.slice.call(arguments);\n    args.shift();\n    setTimeout(function () {\n        fn.apply(null, args);\n    }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n    var cwd = '/';\n    var path;\n    exports.cwd = function () { return cwd };\n    exports.chdir = function (dir) {\n        if (!path) path = require('path');\n        cwd = path.resolve(dir, cwd);\n    };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n    'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n  ];\n  var directMergeKeys = ['validateStatus'];\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  utils.forEach(directMergeKeys, function merge(prop) {\n    if (prop in config2) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys)\n    .concat(directMergeKeys);\n\n  var otherKeys = Object\n    .keys(config1)\n    .concat(Object.keys(config2))\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, mergeDeepProperties);\n\n  return config;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aFunction(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      $args.push.apply($args, args);\n      return new (bind.apply(Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : Object.prototype);\n    var result = Function.apply.call(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty.call(toObject(it), key);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","window.addEventListener(\"DOMContentLoaded\", () => {\n\n    const testVideo = document.createElement(\"video\");\n    if (testVideo.canPlayType) {\n        // Check for Webm support\n        const webm = \"\" !== testVideo.canPlayType('video/webm; codecs=\"vp8, vorbis\"');\n        if (!webm){\n            const container = document.getElementById(\"content\");\n            if(container){\n                const p = document.createElement(\"p\");\n                p.classList.add(\"warning\");\n                container.prepend(p);\n                p.innerHTML = `\n                    Votre navigateur n'est pas compatible avec le format video <abbr title=\"WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.\">WebM</abbr> des cours en direct.\n                    Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n                `;\n            }\n        }\n        \n    }\n});","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.14.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","module.exports = typeof window == 'object';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line es/no-symbol -- safe\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var state;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) {\n      createNonEnumerableProperty(value, 'name', key);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n\n    module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n\n    module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject -- old IE */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=style&index=0&lang=css&\"","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('chat-window',{attrs:{\"current-user-id\":_vm.currentUserId,\"rooms-loaded\":_vm.rooms.length > 0,\"messages-loaded\":_vm.messagesLoaded,\"single-room\":true,\"rooms\":_vm.rooms,\"show-files\":false,\"show-emojis\":true,\"show-reaction-emojis\":false,\"show-audio\":false,\"messages\":_vm.messages,\"message-actions\":[\n    {\n      name: 'replyMessage',\n      title: 'Répondre'\n    }\n  ],\"link-options\":{ disabled: false, target: '_self' },\"text-messages\":{\n    ROOMS_EMPTY: 'Aucune conversation',\n    ROOM_EMPTY: 'Aucune conversation sélectionnée',\n    NEW_MESSAGES: 'Nouveaux messages',\n    MESSAGE_DELETED: 'Ce message a été supprimé',\n    MESSAGES_EMPTY: 'Aucun message',\n    CONVERSATION_STARTED: 'La conversation a commencée le :',\n    TYPE_MESSAGE: 'Tapez votre message',\n    SEARCH: 'Rechercher',\n    IS_ONLINE: 'est en ligne',\n    LAST_SEEN: 'dernière connexion ',\n    IS_TYPING: 'est en train de taper...'\n  }},on:{\"send-message\":_vm.sendMessage}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _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++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","export default function _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}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\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 _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}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _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}","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}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\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;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","/**\n  * vue-class-component v7.2.6\n  * (c) 2015-present Evan You\n  * @license MIT\n  */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\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 _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 _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n  return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n  forwardMetadata(to, from);\n  Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n    forwardMetadata(to.prototype, from.prototype, key);\n  });\n  Object.getOwnPropertyNames(from).forEach(function (key) {\n    forwardMetadata(to, from, key);\n  });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n  var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n  metaKeys.forEach(function (metaKey) {\n    var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n    if (propertyKey) {\n      Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n    } else {\n      Reflect.defineMetadata(metaKey, metadata, to);\n    }\n  });\n}\n\nvar fakeArray = {\n  __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n  return function (target, key, index) {\n    var Ctor = typeof target === 'function' ? target : target.constructor;\n\n    if (!Ctor.__decorators__) {\n      Ctor.__decorators__ = [];\n    }\n\n    if (typeof index !== 'number') {\n      index = undefined;\n    }\n\n    Ctor.__decorators__.push(function (options) {\n      return factory(options, key, index);\n    });\n  };\n}\nfunction mixins() {\n  for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n    Ctors[_key] = arguments[_key];\n  }\n\n  return Vue.extend({\n    mixins: Ctors\n  });\n}\nfunction isPrimitive(value) {\n  var type = _typeof(value);\n\n  return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n  if (typeof console !== 'undefined') {\n    console.warn('[vue-class-component] ' + message);\n  }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n  // override _init to prevent to init as Vue instance\n  var originalInit = Component.prototype._init;\n\n  Component.prototype._init = function () {\n    var _this = this;\n\n    // proxy to actual vm\n    var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n    if (vm.$options.props) {\n      for (var key in vm.$options.props) {\n        if (!vm.hasOwnProperty(key)) {\n          keys.push(key);\n        }\n      }\n    }\n\n    keys.forEach(function (key) {\n      Object.defineProperty(_this, key, {\n        get: function get() {\n          return vm[key];\n        },\n        set: function set(value) {\n          vm[key] = value;\n        },\n        configurable: true\n      });\n    });\n  }; // should be acquired class property values\n\n\n  var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n  Component.prototype._init = originalInit; // create plain data object\n\n  var plainData = {};\n  Object.keys(data).forEach(function (key) {\n    if (data[key] !== undefined) {\n      plainData[key] = data[key];\n    }\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n      warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n    }\n  }\n\n  return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n  var proto = Component.prototype;\n  Object.getOwnPropertyNames(proto).forEach(function (key) {\n    if (key === 'constructor') {\n      return;\n    } // hooks\n\n\n    if ($internalHooks.indexOf(key) > -1) {\n      options[key] = proto[key];\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n    if (descriptor.value !== void 0) {\n      // methods\n      if (typeof descriptor.value === 'function') {\n        (options.methods || (options.methods = {}))[key] = descriptor.value;\n      } else {\n        // typescript decorated data\n        (options.mixins || (options.mixins = [])).push({\n          data: function data() {\n            return _defineProperty({}, key, descriptor.value);\n          }\n        });\n      }\n    } else if (descriptor.get || descriptor.set) {\n      // computed properties\n      (options.computed || (options.computed = {}))[key] = {\n        get: descriptor.get,\n        set: descriptor.set\n      };\n    }\n  });\n  (options.mixins || (options.mixins = [])).push({\n    data: function data() {\n      return collectDataFromConstructor(this, Component);\n    }\n  }); // decorate options\n\n  var decorators = Component.__decorators__;\n\n  if (decorators) {\n    decorators.forEach(function (fn) {\n      return fn(options);\n    });\n    delete Component.__decorators__;\n  } // find super\n\n\n  var superProto = Object.getPrototypeOf(Component.prototype);\n  var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n  var Extended = Super.extend(options);\n  forwardStaticMembers(Extended, Component, Super);\n\n  if (reflectionIsSupported()) {\n    copyReflectionMetadata(Extended, Component);\n  }\n\n  return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n  prototype: true,\n  arguments: true,\n  callee: true,\n  caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n  // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n  Object.getOwnPropertyNames(Original).forEach(function (key) {\n    // Skip the properties that should not be overwritten\n    if (shouldIgnore[key]) {\n      return;\n    } // Some browsers does not allow reconfigure built-in properties\n\n\n    var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n    if (extendedDescriptor && !extendedDescriptor.configurable) {\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n    // the sub class properties may be inherited properties from the super class in TypeScript.\n    // We need to exclude such properties to prevent to overwrite\n    // the component options object which stored on the extended constructor (See #192).\n    // If the value is a referenced value (object or function),\n    // we can check equality of them and exclude it if they have the same reference.\n    // If it is a primitive value, it will be forwarded for safety.\n\n    if (!hasProto) {\n      // Only `cid` is explicitly exluded from property forwarding\n      // because we cannot detect whether it is a inherited property or not\n      // on the no `__proto__` environment even though the property is reserved.\n      if (key === 'cid') {\n        return;\n      }\n\n      var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n      if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n        return;\n      }\n    } // Warn if the users manually declare reserved properties\n\n\n    if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n      warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n    }\n\n    Object.defineProperty(Extended, key, descriptor);\n  });\n}\n\nfunction Component(options) {\n  if (typeof options === 'function') {\n    return componentFactory(options);\n  }\n\n  return function (Component) {\n    return componentFactory(Component, options);\n  };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n  $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n    if (reflectMetadataIsSupported) {\n        if (!Array.isArray(options) &&\n            typeof options !== 'function' &&\n            !options.hasOwnProperty('type') &&\n            typeof options.type === 'undefined') {\n            var type = Reflect.getMetadata('design:type', target, key);\n            if (type !== Object) {\n                options.type = type;\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\nimport { Component, Vue } from \"vue-property-decorator\"\nimport ChatWindow, { Message, Messages, Rooms } from \"vue-advanced-chat\"\n\nimport \"vue-advanced-chat/dist/vue-advanced-chat.css\"\n\n@Component({\n  components: {\n    ChatWindow\n  }\n})\nexport default class Chat extends Vue {\n  socket: WebSocket | null = null\n  rooms: Rooms = [\n    {\n      roomId: \"global\",\n      roomName: \"\",\n      avatar: \"\",\n      users: []\n    }\n  ]\n  messagesLoaded = false\n  messages: Messages = []\n  currentUserId: number | null = null\n\n  created() {\n    // get room info\n    let roomInfoStr: string | null = \"\"\n    const roomInfoElm = document.getElementById(\"room-info\")\n    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n    let roomInfo: any = null\n    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n    else throw \"No room info provided\"\n\n    this.rooms = [\n      {\n        roomId: roomInfo.room_name,\n        roomName: roomInfo.room_title,\n        avatar: \"\",\n        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n        users: [\n          {\n            _id: 1,\n            username: \"Fake user 1\",\n            avatar: \"assets/imgs/doe.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"today, 14:30\"\n            }\n          },\n          {\n            _id: 2,\n            username: \"Fake user 2\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          },\n          {\n            _id: 3,\n            username: \"Fake user 3\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          }\n        ]\n      }\n    ]\n    this.connect(roomInfo.room_name)\n    this.currentUserId = roomInfo.user_id\n  }\n\n  connect(roomName: string) {\n    // connect to socket\n    let protocol = \"wss\"\n    if (window.location.protocol != \"https:\") protocol = \"ws\"\n    this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n    this.fetchMessages()\n\n    this.socket.onclose = () => {\n      console.log(\"Chat socket closed\")\n      // try to reconnect\n      // setTimeout(() => {\n      //   this.connect(roomName)\n      // }, 10000)\n    }\n  }\n\n  async fetchMessages() {\n    this.socket!.onmessage = (e) => {\n      const data = JSON.parse(e.data)\n      const type = data.type\n      // do not load messages in case of socket reconnect\n      if (type == \"initial\" && this.messagesLoaded) return\n      const newMessages = data.messages as Message[]\n      this.messages = [...this.messages, ...newMessages]\n      if (type == \"initial\") {\n        this.messagesLoaded = true\n        // scroll chat to bottom\n        const messageContainer = document.querySelector(\".vac-container-scroll\")\n        this.$nextTick(() => {\n          if(messageContainer)\n            messageContainer.scrollTop = messageContainer.scrollHeight\n        })\n      }\n    }\n  }\n\n  sendMessage({ content, replyMessage }: Message) {\n    /** send message to socket */\n    this.socket!.send(\n      JSON.stringify({\n        message: content,\n        replyTo: replyMessage ? replyMessage._id : null\n      })\n    )\n  }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=ts&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import { render, staticRenderFns } from \"./Chat.vue?vue&type=template&id=77bdc484&\"\nimport script from \"./Chat.vue?vue&type=script&lang=ts&\"\nexport * from \"./Chat.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Chat.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"notifications\",\"tabindex\":\"0\"},on:{\"focus\":_vm.open,\"focusout\":_vm.close}},[_c('div',{staticClass:\"bell\"},[_c('img',{staticClass:\"bell-image\",attrs:{\"src\":\"/static/teleforma/images/bell.svg\",\"alt\":\"Notifications\",\"title\":\"Notifications\"}}),(_vm.numberOfUnread > 0)?_c('span',{staticClass:\"bell-count\"},[_vm._v(_vm._s(_vm.numberOfUnread))]):_vm._e()]),(_vm.opened)?_c('div',{staticClass:\"notifications-list\"},[_c('ul',_vm._l((_vm.messages),function(message){return _c('NotificationMessage',{key:message._id,attrs:{\"id\":message._id,\"content\":message.content,\"url\":message.url,\"viewed\":message.viewed,\"creation-date\":message.created}})}),1)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{on:{\"click\":function($event){return _vm.onClick()},\"mouseup\":function($event){if('button' in $event && $event.button !== 1){ return null; }return _vm.onMiddleClick()}}},[_c('span',{class:{ 'unviewed': !_vm.viewed, text: true }},[_vm._v(_vm._s(_vm.content))]),_c('span',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.relativeCreationDate)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n  var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n  utcDate.setUTCFullYear(date.getFullYear());\n  return date.getTime() - utcDate.getTime();\n}","export default function requiredArgs(required, args) {\n  if (args.length < required) {\n    throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n  }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n  requiredArgs(1, arguments);\n  var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n  if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime());\n  } else if (typeof argument === 'number' || argStr === '[object Number]') {\n    return new Date(argument);\n  } else {\n    if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n      // eslint-disable-next-line no-console\n      console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n      console.warn(new Error().stack);\n    }\n\n    return new Date(NaN);\n  }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var startOfDayLeft = startOfDay(dirtyDateLeft);\n  var startOfDayRight = startOfDay(dirtyDateRight);\n  var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n  var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n  requiredArgs(1, arguments);\n  return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n *   if the first argument is not an instance of Date.\n *   Instead, argument is converted beforehand using `toDate`.\n *\n *   Examples:\n *\n *   | `isValid` argument        | Before v2.0.0 | v2.0.0 onward |\n *   |---------------------------|---------------|---------------|\n *   | `new Date()`              | `true`        | `true`        |\n *   | `new Date('2016-01-01')`  | `true`        | `true`        |\n *   | `new Date('')`            | `false`       | `false`       |\n *   | `new Date(1488370835081)` | `true`        | `true`        |\n *   | `new Date(NaN)`           | `false`       | `false`       |\n *   | `'2016-01-01'`            | `TypeError`   | `false`       |\n *   | `''`                      | `TypeError`   | `false`       |\n *   | `1488370835081`           | `TypeError`   | `true`        |\n *   | `NaN`                     | `TypeError`   | `false`       |\n *\n *   We introduce this change to make *date-fns* consistent with ECMAScript behavior\n *   that try to coerce arguments to the expected type\n *   (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n  requiredArgs(1, arguments);\n\n  if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n    return false;\n  }\n\n  var date = toDate(dirtyDate);\n  return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'less than a second',\n    other: 'less than {{count}} seconds'\n  },\n  xSeconds: {\n    one: '1 second',\n    other: '{{count}} seconds'\n  },\n  halfAMinute: 'half a minute',\n  lessThanXMinutes: {\n    one: 'less than a minute',\n    other: 'less than {{count}} minutes'\n  },\n  xMinutes: {\n    one: '1 minute',\n    other: '{{count}} minutes'\n  },\n  aboutXHours: {\n    one: 'about 1 hour',\n    other: 'about {{count}} hours'\n  },\n  xHours: {\n    one: '1 hour',\n    other: '{{count}} hours'\n  },\n  xDays: {\n    one: '1 day',\n    other: '{{count}} days'\n  },\n  aboutXWeeks: {\n    one: 'about 1 week',\n    other: 'about {{count}} weeks'\n  },\n  xWeeks: {\n    one: '1 week',\n    other: '{{count}} weeks'\n  },\n  aboutXMonths: {\n    one: 'about 1 month',\n    other: 'about {{count}} months'\n  },\n  xMonths: {\n    one: '1 month',\n    other: '{{count}} months'\n  },\n  aboutXYears: {\n    one: 'about 1 year',\n    other: 'about {{count}} years'\n  },\n  xYears: {\n    one: '1 year',\n    other: '{{count}} years'\n  },\n  overXYears: {\n    one: 'over 1 year',\n    other: 'over {{count}} years'\n  },\n  almostXYears: {\n    one: 'almost 1 year',\n    other: 'almost {{count}} years'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === 'string') {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace('{{count}}', count.toString());\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'in ' + result;\n    } else {\n      return result + ' ago';\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n  return function () {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // TODO: Remove String()\n    var width = options.width ? String(options.width) : args.defaultWidth;\n    var format = args.formats[width] || args.formats[args.defaultWidth];\n    return format;\n  };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: 'EEEE, MMMM do, y',\n  long: 'MMMM do, y',\n  medium: 'MMM d, y',\n  short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n  full: 'h:mm:ss a zzzz',\n  long: 'h:mm:ss a z',\n  medium: 'h:mm:ss a',\n  short: 'h:mm a'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'at' {{time}}\",\n  long: \"{{date}} 'at' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"'last' eeee 'at' p\",\n  yesterday: \"'yesterday at' p\",\n  today: \"'today at' p\",\n  tomorrow: \"'tomorrow at' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n  return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n  return function (dirtyIndex, dirtyOptions) {\n    var options = dirtyOptions || {};\n    var context = options.context ? String(options.context) : 'standalone';\n    var valuesArray;\n\n    if (context === 'formatting' && args.formattingValues) {\n      var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n      var width = options.width ? String(options.width) : defaultWidth;\n      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n    } else {\n      var _defaultWidth = args.defaultWidth;\n\n      var _width = options.width ? String(options.width) : args.defaultWidth;\n\n      valuesArray = args.values[_width] || args.values[_defaultWidth];\n    }\n\n    var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n    return valuesArray[index];\n  };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['B', 'A'],\n  abbreviated: ['BC', 'AD'],\n  wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n  narrow: ['1', '2', '3', '4'],\n  abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n  wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n  abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n  narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n  abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n  wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  }\n};\nvar formattingDayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n  var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n  // if they are different for different grammatical genders,\n  // use `options.unit`.\n  //\n  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n  // 'day', 'hour', 'minute', 'second'.\n\n  var rem100 = number % 100;\n\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + 'st';\n\n      case 2:\n        return number + 'nd';\n\n      case 3:\n        return number + 'rd';\n    }\n  }\n\n  return number + 'th';\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return quarter - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide',\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: 'wide'\n  })\n};\nexport default localize;","export default function buildMatchFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var width = options.width;\n    var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n    var matchResult = string.match(matchPattern);\n\n    if (!matchResult) {\n      return null;\n    }\n\n    var matchedString = matchResult[0];\n    var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n    var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    }) : findKey(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    });\n    var value;\n    value = args.valueCallback ? args.valueCallback(key) : key;\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}\n\nfunction findKey(object, predicate) {\n  for (var key in object) {\n    if (object.hasOwnProperty(key) && predicate(object[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}\n\nfunction findIndex(array, predicate) {\n  for (var key = 0; key < array.length; key++) {\n    if (predicate(array[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}","export default function buildMatchPatternFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var matchResult = string.match(args.matchPattern);\n    if (!matchResult) return null;\n    var matchedString = matchResult[0];\n    var parseResult = string.match(args.parsePattern);\n    if (!parseResult) return null;\n    var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(b|a)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|mo|tu|we|th|fr|sa)/i,\n  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mi/i,\n    noon: /^no/i,\n    morning: /morning/i,\n    afternoon: /afternoon/i,\n    evening: /evening/i,\n    night: /night/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n  code: 'en-US',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0\n    /* Sunday */\n    ,\n    firstWeekContainsDate: 1\n  }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n  if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n    return NaN;\n  }\n\n  var number = Number(dirtyNumber);\n\n  if (isNaN(number)) {\n    return number;\n  }\n\n  return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var timestamp = toDate(dirtyDate).getTime();\n  var amount = toInteger(dirtyAmount);\n  return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var timestamp = date.getTime();\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n  var startOfYearTimestamp = date.getTime();\n  var difference = timestamp - startOfYearTimestamp;\n  return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var weekStartsOn = 1;\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var fourthOfJanuaryOfNextYear = new Date(0);\n  fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n  var fourthOfJanuaryOfThisYear = new Date(0);\n  fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var year = getUTCISOWeekYear(dirtyDate);\n  var fourthOfJanuary = new Date(0);\n  fourthOfJanuary.setUTCFullYear(year, 0, 4);\n  fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCISOWeek(fourthOfJanuary);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var firstWeekOfNextYear = new Date(0);\n  firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n  firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n  var firstWeekOfThisYear = new Date(0);\n  firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n  var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n  var firstWeek = new Date(0);\n  firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeek.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCWeek(firstWeek, dirtyOptions);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n  var sign = number < 0 ? '-' : '';\n  var output = Math.abs(number).toString();\n\n  while (output.length < targetLength) {\n    output = '0' + output;\n  }\n\n  return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* |                                |\n * |  d  | Day of month                   |  D  |                                |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  m  | Minute                         |  M  | Month                          |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  y  | Year (abs)                     |  Y  |                                |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n  // Year\n  y: function (date, token) {\n    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n    // |----------|-------|----|-------|-------|-------|\n    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n    var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var year = signedYear > 0 ? signedYear : 1 - signedYear;\n    return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n  },\n  // Month\n  M: function (date, token) {\n    var month = date.getUTCMonth();\n    return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n  },\n  // Day of the month\n  d: function (date, token) {\n    return addLeadingZeros(date.getUTCDate(), token.length);\n  },\n  // AM or PM\n  a: function (date, token) {\n    var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return dayPeriodEnumValue.toUpperCase();\n\n      case 'aaa':\n        return dayPeriodEnumValue;\n\n      case 'aaaaa':\n        return dayPeriodEnumValue[0];\n\n      case 'aaaa':\n      default:\n        return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token) {\n    return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n  },\n  // Hour [0-23]\n  H: function (date, token) {\n    return addLeadingZeros(date.getUTCHours(), token.length);\n  },\n  // Minute\n  m: function (date, token) {\n    return addLeadingZeros(date.getUTCMinutes(), token.length);\n  },\n  // Second\n  s: function (date, token) {\n    return addLeadingZeros(date.getUTCSeconds(), token.length);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    var numberOfDigits = token.length;\n    var milliseconds = date.getUTCMilliseconds();\n    var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n    return addLeadingZeros(fractionalSeconds, token.length);\n  }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n  am: 'am',\n  pm: 'pm',\n  midnight: 'midnight',\n  noon: 'noon',\n  morning: 'morning',\n  afternoon: 'afternoon',\n  evening: 'evening',\n  night: 'night'\n};\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |\n * |  p! | Long localized time            |  P! | Long localized date            |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n  // Era\n  G: function (date, token, localize) {\n    var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n    switch (token) {\n      // AD, BC\n      case 'G':\n      case 'GG':\n      case 'GGG':\n        return localize.era(era, {\n          width: 'abbreviated'\n        });\n      // A, B\n\n      case 'GGGGG':\n        return localize.era(era, {\n          width: 'narrow'\n        });\n      // Anno Domini, Before Christ\n\n      case 'GGGG':\n      default:\n        return localize.era(era, {\n          width: 'wide'\n        });\n    }\n  },\n  // Year\n  y: function (date, token, localize) {\n    // Ordinal number\n    if (token === 'yo') {\n      var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n      var year = signedYear > 0 ? signedYear : 1 - signedYear;\n      return localize.ordinalNumber(year, {\n        unit: 'year'\n      });\n    }\n\n    return lightFormatters.y(date, token);\n  },\n  // Local week-numbering year\n  Y: function (date, token, localize, options) {\n    var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n    if (token === 'YY') {\n      var twoDigitYear = weekYear % 100;\n      return addLeadingZeros(twoDigitYear, 2);\n    } // Ordinal number\n\n\n    if (token === 'Yo') {\n      return localize.ordinalNumber(weekYear, {\n        unit: 'year'\n      });\n    } // Padding\n\n\n    return addLeadingZeros(weekYear, token.length);\n  },\n  // ISO week-numbering year\n  R: function (date, token) {\n    var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n    return addLeadingZeros(isoWeekYear, token.length);\n  },\n  // Extended year. This is a single number designating the year of this calendar system.\n  // The main difference between `y` and `u` localizers are B.C. years:\n  // | Year | `y` | `u` |\n  // |------|-----|-----|\n  // | AC 1 |   1 |   1 |\n  // | BC 1 |   1 |   0 |\n  // | BC 2 |   2 |  -1 |\n  // Also `yy` always returns the last two digits of a year,\n  // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n  u: function (date, token) {\n    var year = date.getUTCFullYear();\n    return addLeadingZeros(year, token.length);\n  },\n  // Quarter\n  Q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'Q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'QQ':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'Qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'QQQ':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'QQQQQ':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'QQQQ':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone quarter\n  q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'qq':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'qqq':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'qqqqq':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'qqqq':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Month\n  M: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      case 'M':\n      case 'MM':\n        return lightFormatters.M(date, token);\n      // 1st, 2nd, ..., 12th\n\n      case 'Mo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'MMM':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // J, F, ..., D\n\n      case 'MMMMM':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // January, February, ..., December\n\n      case 'MMMM':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone month\n  L: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      // 1, 2, ..., 12\n      case 'L':\n        return String(month + 1);\n      // 01, 02, ..., 12\n\n      case 'LL':\n        return addLeadingZeros(month + 1, 2);\n      // 1st, 2nd, ..., 12th\n\n      case 'Lo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'LLL':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // J, F, ..., D\n\n      case 'LLLLL':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // January, February, ..., December\n\n      case 'LLLL':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Local week of year\n  w: function (date, token, localize, options) {\n    var week = getUTCWeek(date, options);\n\n    if (token === 'wo') {\n      return localize.ordinalNumber(week, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(week, token.length);\n  },\n  // ISO week of year\n  I: function (date, token, localize) {\n    var isoWeek = getUTCISOWeek(date);\n\n    if (token === 'Io') {\n      return localize.ordinalNumber(isoWeek, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(isoWeek, token.length);\n  },\n  // Day of the month\n  d: function (date, token, localize) {\n    if (token === 'do') {\n      return localize.ordinalNumber(date.getUTCDate(), {\n        unit: 'date'\n      });\n    }\n\n    return lightFormatters.d(date, token);\n  },\n  // Day of year\n  D: function (date, token, localize) {\n    var dayOfYear = getUTCDayOfYear(date);\n\n    if (token === 'Do') {\n      return localize.ordinalNumber(dayOfYear, {\n        unit: 'dayOfYear'\n      });\n    }\n\n    return addLeadingZeros(dayOfYear, token.length);\n  },\n  // Day of week\n  E: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n\n    switch (token) {\n      // Tue\n      case 'E':\n      case 'EE':\n      case 'EEE':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'EEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'EEEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'EEEE':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Local day of week\n  e: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (Nth day of week with current locale or weekStartsOn)\n      case 'e':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'ee':\n        return addLeadingZeros(localDayOfWeek, 2);\n      // 1st, 2nd, ..., 7th\n\n      case 'eo':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'eee':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'eeeee':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'eeeeee':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'eeee':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone local day of week\n  c: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (same as in `e`)\n      case 'c':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'cc':\n        return addLeadingZeros(localDayOfWeek, token.length);\n      // 1st, 2nd, ..., 7th\n\n      case 'co':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'ccc':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // T\n\n      case 'ccccc':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // Tu\n\n      case 'cccccc':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'standalone'\n        });\n      // Tuesday\n\n      case 'cccc':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // ISO day of week\n  i: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n    var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n    switch (token) {\n      // 2\n      case 'i':\n        return String(isoDayOfWeek);\n      // 02\n\n      case 'ii':\n        return addLeadingZeros(isoDayOfWeek, token.length);\n      // 2nd\n\n      case 'io':\n        return localize.ordinalNumber(isoDayOfWeek, {\n          unit: 'day'\n        });\n      // Tue\n\n      case 'iii':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'iiiii':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'iiiiii':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'iiii':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM or PM\n  a: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'aaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'aaaaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'aaaa':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM, PM, midnight, noon\n  b: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours === 12) {\n      dayPeriodEnumValue = dayPeriodEnum.noon;\n    } else if (hours === 0) {\n      dayPeriodEnumValue = dayPeriodEnum.midnight;\n    } else {\n      dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n    }\n\n    switch (token) {\n      case 'b':\n      case 'bb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'bbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'bbbbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'bbbb':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // in the morning, in the afternoon, in the evening, at night\n  B: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours >= 17) {\n      dayPeriodEnumValue = dayPeriodEnum.evening;\n    } else if (hours >= 12) {\n      dayPeriodEnumValue = dayPeriodEnum.afternoon;\n    } else if (hours >= 4) {\n      dayPeriodEnumValue = dayPeriodEnum.morning;\n    } else {\n      dayPeriodEnumValue = dayPeriodEnum.night;\n    }\n\n    switch (token) {\n      case 'B':\n      case 'BB':\n      case 'BBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'BBBBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'BBBB':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token, localize) {\n    if (token === 'ho') {\n      var hours = date.getUTCHours() % 12;\n      if (hours === 0) hours = 12;\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.h(date, token);\n  },\n  // Hour [0-23]\n  H: function (date, token, localize) {\n    if (token === 'Ho') {\n      return localize.ordinalNumber(date.getUTCHours(), {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.H(date, token);\n  },\n  // Hour [0-11]\n  K: function (date, token, localize) {\n    var hours = date.getUTCHours() % 12;\n\n    if (token === 'Ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Hour [1-24]\n  k: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    if (hours === 0) hours = 24;\n\n    if (token === 'ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Minute\n  m: function (date, token, localize) {\n    if (token === 'mo') {\n      return localize.ordinalNumber(date.getUTCMinutes(), {\n        unit: 'minute'\n      });\n    }\n\n    return lightFormatters.m(date, token);\n  },\n  // Second\n  s: function (date, token, localize) {\n    if (token === 'so') {\n      return localize.ordinalNumber(date.getUTCSeconds(), {\n        unit: 'second'\n      });\n    }\n\n    return lightFormatters.s(date, token);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    return lightFormatters.S(date, token);\n  },\n  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n  X: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    if (timezoneOffset === 0) {\n      return 'Z';\n    }\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'X':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XX`\n\n      case 'XXXX':\n      case 'XX':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XXX`\n\n      case 'XXXXX':\n      case 'XXX': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n  x: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'x':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xx`\n\n      case 'xxxx':\n      case 'xx':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xxx`\n\n      case 'xxxxx':\n      case 'xxx': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (GMT)\n  O: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'O':\n      case 'OO':\n      case 'OOO':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'OOOO':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (specific non-location)\n  z: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'z':\n      case 'zz':\n      case 'zzz':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'zzzz':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Seconds timestamp\n  t: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = Math.floor(originalDate.getTime() / 1000);\n    return addLeadingZeros(timestamp, token.length);\n  },\n  // Milliseconds timestamp\n  T: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = originalDate.getTime();\n    return addLeadingZeros(timestamp, token.length);\n  }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = Math.floor(absOffset / 60);\n  var minutes = absOffset % 60;\n\n  if (minutes === 0) {\n    return sign + String(hours);\n  }\n\n  var delimiter = dirtyDelimiter || '';\n  return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n  if (offset % 60 === 0) {\n    var sign = offset > 0 ? '-' : '+';\n    return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n  }\n\n  return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n  var delimiter = dirtyDelimiter || '';\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n  var minutes = addLeadingZeros(absOffset % 60, 2);\n  return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'P':\n      return formatLong.date({\n        width: 'short'\n      });\n\n    case 'PP':\n      return formatLong.date({\n        width: 'medium'\n      });\n\n    case 'PPP':\n      return formatLong.date({\n        width: 'long'\n      });\n\n    case 'PPPP':\n    default:\n      return formatLong.date({\n        width: 'full'\n      });\n  }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'p':\n      return formatLong.time({\n        width: 'short'\n      });\n\n    case 'pp':\n      return formatLong.time({\n        width: 'medium'\n      });\n\n    case 'ppp':\n      return formatLong.time({\n        width: 'long'\n      });\n\n    case 'pppp':\n    default:\n      return formatLong.time({\n        width: 'full'\n      });\n  }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n  var matchResult = pattern.match(/(P+)(p+)?/) || [];\n  var datePattern = matchResult[1];\n  var timePattern = matchResult[2];\n\n  if (!timePattern) {\n    return dateLongFormatter(pattern, formatLong);\n  }\n\n  var dateTimeFormat;\n\n  switch (datePattern) {\n    case 'P':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'short'\n      });\n      break;\n\n    case 'PP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'medium'\n      });\n      break;\n\n    case 'PPP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'long'\n      });\n      break;\n\n    case 'PPPP':\n    default:\n      dateTimeFormat = formatLong.dateTime({\n        width: 'full'\n      });\n      break;\n  }\n\n  return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n  p: timeLongFormatter,\n  P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n  return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n  return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n  if (token === 'YYYY') {\n    throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'YY') {\n    throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'D') {\n    throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'DD') {\n    throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era                             | G..GGG  | AD, BC                            |       |\n * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 | GGGGG   | A, B                              |       |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |\n * |                                 | yy      | 44, 01, 00, 17                    | 5     |\n * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |\n * |                                 | yyyyy   | ...                               | 3,5   |\n * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |\n * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |\n * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |\n * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |\n * |                                 | YYYYY   | ...                               | 3,5   |\n * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |\n * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |\n * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |\n * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |\n * |                                 | RRRRR   | ...                               | 3,5,7 |\n * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |\n * |                                 | uu      | -43, 01, 1900, 2017               | 5     |\n * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |\n * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |\n * |                                 | uuuuu   | ...                               | 3,5   |\n * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |\n * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | QQ      | 01, 02, 03, 04                    |       |\n * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |\n * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | qq      | 01, 02, 03, 04                    |       |\n * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |\n * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | MM      | 01, 02, ..., 12                   |       |\n * |                                 | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 | MMMM    | January, February, ..., December  | 2     |\n * |                                 | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |\n * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | LL      | 01, 02, ..., 12                   |       |\n * |                                 | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 | LLLL    | January, February, ..., December  | 2     |\n * |                                 | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | w       | 1, 2, ..., 53                     |       |\n * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |\n * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | II      | 01, 02, ..., 53                   | 7     |\n * | Day of month                    | d       | 1, 2, ..., 31                     |       |\n * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |\n * |                                 | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |\n * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |\n * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |\n * |                                 | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 | DDDD    | ...                               | 3     |\n * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |\n * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |\n * |                                 | ii      | 01, 02, ..., 07                   | 7     |\n * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |\n * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |\n * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |\n * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |\n * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | ee      | 02, 03, ..., 01                   |       |\n * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | cc      | 02, 03, ..., 01                   |       |\n * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          | a..aa   | AM, PM                            |       |\n * |                                 | aaa     | am, pm                            |       |\n * |                                 | aaaa    | a.m., p.m.                        | 2     |\n * |                                 | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |\n * |                                 | bbb     | am, pm, noon, midnight            |       |\n * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |\n * |                                 | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |\n * |                                 | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |\n * |                                 | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |\n * |                                 | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |\n * |                                 | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          | m       | 0, 1, ..., 59                     |       |\n * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | mm      | 00, 01, ..., 59                   |       |\n * | Second                          | s       | 0, 1, ..., 59                     |       |\n * |                                 | so      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | ss      | 00, 01, ..., 59                   |       |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |       |\n * |                                 | SS      | 00, 01, ..., 99                   |       |\n * |                                 | SSS     | 000, 001, ..., 999                |       |\n * |                                 | SSSS    | ...                               | 3     |\n * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |\n * |                                 | XX      | -0800, +0530, Z                   |       |\n * |                                 | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |\n * |                                 | xx      | -0800, +0530, +0000               |       |\n * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |\n * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |\n * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |\n * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |\n * | Seconds timestamp               | t       | 512969520                         | 7     |\n * |                                 | tt      | ...                               | 3,7   |\n * | Milliseconds timestamp          | T       | 512969520900                      | 7     |\n * |                                 | TT      | ...                               | 3,7   |\n * | Long localized date             | P       | 04/29/1453                        | 7     |\n * |                                 | PP      | Apr 29, 1453                      | 7     |\n * |                                 | PPP     | April 29th, 1453                  | 7     |\n * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |\n * | Long localized time             | p       | 12:00 AM                          | 7     |\n * |                                 | pp      | 12:00:00 AM                       | 7     |\n * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |\n * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |\n * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |\n * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |\n * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |\n * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n *    the output will be the same as default pattern for this unit, usually\n *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n *    are marked with \"2\" in the last column of the table.\n *\n *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n *    The output will be padded with zeros to match the length of the pattern.\n *\n *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` always returns the last two digits of a year,\n *    while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n *    | Year | `yy` | `uu` |\n *    |------|------|------|\n *    | 1    |   01 |   01 |\n *    | 14   |   14 |   14 |\n *    | 376  |   76 |  376 |\n *    | 1453 |   53 | 1453 |\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n *    so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `t`: seconds timestamp\n *    - `T`: milliseconds timestamp\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   format(new Date(2016, 0, 1))\n *\n *   // v2.0.0 onward\n *   format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n *   ```\n *\n * - New format string API for `format` function\n *   which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n *   See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n *   see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n *   see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n *   locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var formatStr = String(dirtyFormatStr);\n  var options = dirtyOptions || {};\n  var locale = options.locale || defaultLocale;\n  var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  if (!locale.localize) {\n    throw new RangeError('locale must contain localize property');\n  }\n\n  if (!locale.formatLong) {\n    throw new RangeError('locale must contain formatLong property');\n  }\n\n  var originalDate = toDate(dirtyDate);\n\n  if (!isValid(originalDate)) {\n    throw new RangeError('Invalid time value');\n  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n  var utcDate = subMilliseconds(originalDate, timezoneOffset);\n  var formatterOptions = {\n    firstWeekContainsDate: firstWeekContainsDate,\n    weekStartsOn: weekStartsOn,\n    locale: locale,\n    _originalDate: originalDate\n  };\n  var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === 'p' || firstCharacter === 'P') {\n      var longFormatter = longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong, formatterOptions);\n    }\n\n    return substring;\n  }).join('').match(formattingTokensRegExp).map(function (substring) {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return \"'\";\n    }\n\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === \"'\") {\n      return cleanEscapedString(substring);\n    }\n\n    var formatter = formatters[firstCharacter];\n\n    if (formatter) {\n      if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      return formatter(utcDate, substring, locale.localize, formatterOptions);\n    }\n\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n    }\n\n    return substring;\n  }).join('');\n  return result;\n}\n\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport format from \"../format/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result                    |\n * |---------------------------|---------------------------|\n * | Previous 6 days           | last Sunday at 04:30 AM   |\n * | Last day                  | yesterday at 04:30 AM     |\n * | Same day                  | today at 04:30 AM         |\n * | Next day                  | tomorrow at 04:30 AM      |\n * | Next 6 days               | Sunday at 04:30 AM        |\n * | Other                     | 12/31/2017                |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(addDays(new Date(), -6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var baseDate = toDate(dirtyBaseDate);\n\n  var _ref = dirtyOptions || {},\n      _ref$locale = _ref.locale,\n      locale = _ref$locale === void 0 ? defaultLocale : _ref$locale,\n      _ref$weekStartsOn = _ref.weekStartsOn,\n      weekStartsOn = _ref$weekStartsOn === void 0 ? 0 : _ref$weekStartsOn;\n\n  if (!locale.localize) {\n    throw new RangeError('locale must contain localize property');\n  }\n\n  if (!locale.formatLong) {\n    throw new RangeError('locale must contain formatLong property');\n  }\n\n  if (!locale.formatRelative) {\n    throw new RangeError('locale must contain formatRelative property');\n  }\n\n  var diff = differenceInCalendarDays(date, baseDate);\n\n  if (isNaN(diff)) {\n    throw new RangeError('Invalid time value');\n  }\n\n  var token;\n\n  if (diff < -6) {\n    token = 'other';\n  } else if (diff < -1) {\n    token = 'lastWeek';\n  } else if (diff < 0) {\n    token = 'yesterday';\n  } else if (diff < 1) {\n    token = 'today';\n  } else if (diff < 2) {\n    token = 'tomorrow';\n  } else if (diff < 7) {\n    token = 'nextWeek';\n  } else {\n    token = 'other';\n  }\n\n  var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n  var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n  var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, {\n    locale: locale,\n    weekStartsOn: weekStartsOn\n  });\n  return format(date, formatStr, {\n    locale: locale,\n    weekStartsOn: weekStartsOn\n  });\n}","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'moins d’une seconde',\n    other: 'moins de {{count}} secondes'\n  },\n  xSeconds: {\n    one: '1 seconde',\n    other: '{{count}} secondes'\n  },\n  halfAMinute: '30 secondes',\n  lessThanXMinutes: {\n    one: 'moins d’une minute',\n    other: 'moins de {{count}} minutes'\n  },\n  xMinutes: {\n    one: '1 minute',\n    other: '{{count}} minutes'\n  },\n  aboutXHours: {\n    one: 'environ 1 heure',\n    other: 'environ {{count}} heures'\n  },\n  xHours: {\n    one: '1 heure',\n    other: '{{count}} heures'\n  },\n  xDays: {\n    one: '1 jour',\n    other: '{{count}} jours'\n  },\n  aboutXWeeks: {\n    one: 'environ 1 semaine',\n    other: 'environ {{count}} semaines'\n  },\n  xWeeks: {\n    one: '1 semaine',\n    other: '{{count}} semaines'\n  },\n  aboutXMonths: {\n    one: 'environ 1 mois',\n    other: 'environ {{count}} mois'\n  },\n  xMonths: {\n    one: '1 mois',\n    other: '{{count}} mois'\n  },\n  aboutXYears: {\n    one: 'environ 1 an',\n    other: 'environ {{count}} ans'\n  },\n  xYears: {\n    one: '1 an',\n    other: '{{count}} ans'\n  },\n  overXYears: {\n    one: 'plus d’un an',\n    other: 'plus de {{count}} ans'\n  },\n  almostXYears: {\n    one: 'presqu’un an',\n    other: 'presque {{count}} ans'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var form = formatDistanceLocale[token];\n\n  if (typeof form === 'string') {\n    result = form;\n  } else if (count === 1) {\n    result = form.one;\n  } else {\n    result = form.other.replace('{{count}}', String(count));\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'dans ' + result;\n    } else {\n      return 'il y a ' + result;\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: 'EEEE d MMMM y',\n  long: 'd MMMM y',\n  medium: 'd MMM y',\n  short: 'dd/MM/y'\n};\nvar timeFormats = {\n  full: 'HH:mm:ss zzzz',\n  long: 'HH:mm:ss z',\n  medium: 'HH:mm:ss',\n  short: 'HH:mm'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'à' {{time}}\",\n  long: \"{{date}} 'à' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"eeee 'dernier à' p\",\n  yesterday: \"'hier à' p\",\n  today: \"'aujourd’hui à' p\",\n  tomorrow: \"'demain à' p'\",\n  nextWeek: \"eeee 'prochain à' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n  return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['av. J.-C', 'ap. J.-C'],\n  abbreviated: ['av. J.-C', 'ap. J.-C'],\n  wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n  narrow: ['T1', 'T2', 'T3', 'T4'],\n  abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n  wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n  abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n  wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n  narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n  short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n  abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n  wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'mat.',\n    afternoon: 'ap.m.',\n    evening: 'soir',\n    night: 'mat.'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'matin',\n    afternoon: 'après-midi',\n    evening: 'soir',\n    night: 'matin'\n  },\n  wide: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'du matin',\n    afternoon: 'de l’après-midi',\n    evening: 'du soir',\n    night: 'du matin'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, options) {\n  var number = Number(dirtyNumber);\n  var unit = options === null || options === void 0 ? void 0 : options.unit;\n  if (number === 0) return '0';\n  var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n  var suffix;\n\n  if (number === 1) {\n    suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n  } else {\n    suffix = 'ème';\n  }\n\n  return number + suffix;\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return quarter - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide'\n  })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n  abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n  wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n  any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^T?[1234]/i,\n  abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n  wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n  wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[lmjvsd]/i,\n  short: /^(di|lu|ma|me|je|ve|sa)/i,\n  abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n  wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n  any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^min/i,\n    noon: /^mid/i,\n    morning: /mat/i,\n    afternoon: /ap/i,\n    evening: /soir/i,\n    night: /nuit/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n  code: 'fr',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1\n    /* Monday */\n    ,\n    firstWeekContainsDate: 4\n  }\n};\nexport default locale;","\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\"\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n// Define the props by using Vue's canonical way.\nconst NotificationMessageProps = Vue.extend({\n  props: {\n    id: Number,\n    content: String,\n    url: String,\n    viewed: Boolean,\n    creationDate: String\n  }\n})\n\n@Component\nexport default class NotificationMessage extends NotificationMessageProps {\n\n  async setAsViewed() {\n    if (this.$props.viewed === false) {\n      await axios.post(\"/notification\", { id: this.$props.id, viewed: true })\n    }\n  }\n\n  async onClick() {\n    this.setAsViewed()\n    if (this.$props.url) window.location.href = this.$props.url\n  }\n\n  async onMiddleClick() {\n    this.setAsViewed()\n    if (this.$props.url) window.open(this.$props.url, '_blank');\n  }\n\n  get relativeCreationDate() {\n    return formatRelative(new Date(this.$props.creationDate), new Date(), { locale: fr })\n  }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationMessage.vue?vue&type=template&id=3f1187ff&scoped=true&\"\nimport script from \"./NotificationMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationMessage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationMessage.vue?vue&type=style&index=0&id=3f1187ff&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3f1187ff\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\"\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\n@Component({\n  components: {\n    NotificationMessage\n  }\n})\nexport default class Notifications extends Vue {\n  socket: WebSocket | null = null\n  messagesLoaded = false\n  messages: any[] = []\n  currentUserId: number | null = null\n  opened = false\n\n  created() {\n    // get room info\n    const userId = document.getElementById(\"user_id\")\n    if (!userId) return\n    // this.connect(`notifications_${userId}`)\n    this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n    this.connect()\n  }\n\n  connect() {\n    // connect to socket\n    let protocol = \"wss\"\n    if (window.location.protocol != \"https:\") protocol = \"ws\"\n    this.socket = new WebSocket(\n      protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n    )\n    this.fetchMessages()\n\n    this.socket.onclose = () => {\n      console.log(\"Chat socket closed\")\n    }\n  }\n\n  async fetchMessages() {\n    this.socket!.onmessage = (e) => {\n      const data = JSON.parse(e.data)\n      const type = data.type\n      // debugger;\n      // do not load messages in case of socket reconnect\n      if (type === \"initial\" && this.messagesLoaded) return\n\n      const newMessages = data.messages\n\n      // check if a message with the same id already exists\n      // it means the message have been updated (probably the \"viewed\" state)\n      let existing = null\n      if (type === \"new\" && newMessages.length === 1) {\n        existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n      }\n      \n      // if it exists, then we update it instead of appending a new one\n      if (existing !== null && existing !== -1){\n        this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n      }\n      else\n        this.messages = [...newMessages, ...this.messages]\n      if (type === \"initial\") this.messagesLoaded = true\n    }\n  }\n\n  open() {\n    this.opened = true\n  }\n  close() {\n    this.opened = false\n  }\n\n  get numberOfUnread() {\n    return this.messages.filter(message => !message.viewed).length\n  }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=d06c11f4&scoped=true&\"\nimport script from \"./Notifications.vue?vue&type=script&lang=ts&\"\nexport * from \"./Notifications.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Notifications.vue?vue&type=style&index=0&id=d06c11f4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d06c11f4\",\n  null\n  \n)\n\nexport default component.exports","import \"./compatibility\"\nimport Vue from \"vue\"\nimport Chat from \"./components/Chat.vue\"\nimport Notifications from \"./components/Notifications.vue\"\n\nimport axios from \"axios\";\n// default axios config\naxios.defaults.xsrfHeaderName = \"X-CSRFTOKEN\";\naxios.defaults.xsrfCookieName = \"csrftoken\";\naxios.defaults.withCredentials = true\n\nVue.config.productionTip = false\n\nif (document.getElementById(\"chat\")) {\n  new Vue({\n    render: (h) => h(Chat)\n  }).$mount(\"#chat\")\n}\n\n\nif (document.getElementById(\"notifications\")) {\n  new Vue({\n    render: (h) => h(Notifications)\n  }).$mount(\"#notifications\")\n}\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"00ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"0206\":\n/***/ (function(module, exports) {\n\nfunction new_byte(count) {\n    return new Int8Array(count);\n}\n\nfunction new_short(count) {\n    return new Int16Array(count);\n}\n\nfunction new_int(count) {\n    return new Int32Array(count);\n}\n\nfunction new_float(count) {\n    return new Float32Array(count);\n}\n\nfunction new_double(count) {\n    return new Float64Array(count);\n}\n\nfunction new_float_n(args) {\n    if (args.length == 1) {\n        return new_float(args[0]);\n    }\n    var sz = args[0];\n    args = args.slice(1);\n    var A = [];\n    for (var i = 0; i < sz; i++) {\n        A.push(new_float_n(args));\n    }\n    return A;\n}\nfunction new_int_n(args) {\n    if (args.length == 1) {\n        return new_int(args[0]);\n    }\n    var sz = args[0];\n    args = args.slice(1);\n    var A = [];\n    for (var i = 0; i < sz; i++) {\n        A.push(new_int_n(args));\n    }\n    return A;\n}\n\nfunction new_short_n(args) {\n    if (args.length == 1) {\n        return new_short(args[0]);\n    }\n    var sz = args[0];\n    args = args.slice(1);\n    var A = [];\n    for (var i = 0; i < sz; i++) {\n        A.push(new_short_n(args));\n    }\n    return A;\n}\n\nfunction new_array_n(args) {\n    if (args.length == 1) {\n        return new Array(args[0]);\n    }\n    var sz = args[0];\n    args = args.slice(1);\n    var A = [];\n    for (var i = 0; i < sz; i++) {\n        A.push(new_array_n(args));\n    }\n    return A;\n}\n\n\nvar Arrays = {};\n\nArrays.fill = function (a, fromIndex, toIndex, val) {\n    if (arguments.length == 2) {\n        for (var i = 0; i < a.length; i++) {\n            a[i] = arguments[1];\n        }\n    } else {\n        for (var i = fromIndex; i < toIndex; i++) {\n            a[i] = val;\n        }\n    }\n};\n\nvar System = {};\n\nSystem.arraycopy = function (src, srcPos, dest, destPos, length) {\n    var srcEnd = srcPos + length;\n    while (srcPos < srcEnd)\n        dest[destPos++] = src[srcPos++];\n};\n\n\nvar Util = {};\nUtil.SQRT2 = 1.41421356237309504880;\nUtil.FAST_LOG10 = function (x) {\n    return Math.log10(x);\n};\n\nUtil.FAST_LOG10_X = function (x, y) {\n    return Math.log10(x) * y;\n};\n\nfunction ShortBlock(ordinal) {\n    this.ordinal = ordinal;\n}\n/**\n * LAME may use them, even different block types for L/R.\n */\nShortBlock.short_block_allowed = new ShortBlock(0);\n/**\n * LAME may use them, but always same block types in L/R.\n */\nShortBlock.short_block_coupled = new ShortBlock(1);\n/**\n * LAME will not use short blocks, long blocks only.\n */\nShortBlock.short_block_dispensed = new ShortBlock(2);\n/**\n * LAME will not use long blocks, short blocks only.\n */\nShortBlock.short_block_forced = new ShortBlock(3);\n\nvar Float = {};\nFloat.MAX_VALUE = 3.4028235e+38;\n\nfunction VbrMode(ordinal) {\n    this.ordinal = ordinal;\n}\nVbrMode.vbr_off = new VbrMode(0);\nVbrMode.vbr_mt = new VbrMode(1);\nVbrMode.vbr_rh = new VbrMode(2);\nVbrMode.vbr_abr = new VbrMode(3);\nVbrMode.vbr_mtrh = new VbrMode(4);\nVbrMode.vbr_default = VbrMode.vbr_mtrh;\n\nvar assert = function (x) {\n    //console.assert(x);\n};\n\nmodule.exports = {\n    \"System\": System,\n    \"VbrMode\": VbrMode,\n    \"Float\": Float,\n    \"ShortBlock\": ShortBlock,\n    \"Util\": Util,\n    \"Arrays\": Arrays,\n    \"new_array_n\": new_array_n,\n    \"new_byte\": new_byte,\n    \"new_double\": new_double,\n    \"new_float\": new_float,\n    \"new_float_n\": new_float_n,\n    \"new_int\": new_int,\n    \"new_int_n\": new_int_n,\n    \"new_short\": new_short,\n    \"new_short_n\": new_short_n,\n    \"assert\": assert\n};\n\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar aCallable = __webpack_require__(\"59ed\");\nvar NATIVE_BIND = __webpack_require__(\"40d5\");\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ \"04f8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(\"2d00\");\nvar fails = __webpack_require__(\"d039\");\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar call = __webpack_require__(\"c65b\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPropertyKey = __webpack_require__(\"a04b\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"07fa\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toLength = __webpack_require__(\"50c4\");\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n\n\n/***/ }),\n\n/***/ \"09e6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar new_float = common.new_float;\nvar new_int = common.new_int;\nvar assert = common.assert;\n\nfunction CalcNoiseData() {\n    this.global_gain = 0;\n    this.sfb_count1 = 0;\n    this.step = new_int(39);\n    this.noise = new_float(39);\n    this.noise_log = new_float(39);\n}\n\nmodule.exports = CalcNoiseData;\n\n\n/***/ }),\n\n/***/ \"0cb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar toObject = __webpack_require__(\"7b0b\");\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"0d26\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n\n\n/***/ }),\n\n/***/ \"0d51\":\n/***/ (function(module, exports) {\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n\n\n/***/ }),\n\n/***/ \"107c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar global = __webpack_require__(\"da84\");\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('(?<a>b)', 'g');\n  return re.exec('b').groups.a !== 'b' ||\n    'b'.replace(re, '$<a>c') !== 'bc';\n});\n\n\n/***/ }),\n\n/***/ \"13d2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar isCallable = __webpack_require__(\"1626\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(\"5e77\").CONFIGURABLE;\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (String(name).slice(0, 7) === 'Symbol(') {\n    name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar CHROME_VERSION = __webpack_require__(\"2d00\");\nvar IS_NODE = __webpack_require__(\"605d\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var length = arguments.length;\n    return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(\"c65b\");\nvar anObject = __webpack_require__(\"825a\");\nvar isCallable = __webpack_require__(\"1626\");\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (isCallable(exec)) {\n    var result = call(exec, R, S);\n    if (result !== null) anObject(result);\n    return result;\n  }\n  if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n  throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n\n\n/***/ }),\n\n/***/ \"1626\":\n/***/ (function(module, exports) {\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n  return typeof argument == 'function';\n};\n\n\n/***/ }),\n\n/***/ \"1652\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.stateify = exports.TokenState = exports.CharacterState = undefined;\n\nvar _class = __webpack_require__(\"254c\");\n\nfunction createStateClass() {\n\treturn function (tClass) {\n\t\tthis.j = [];\n\t\tthis.T = tClass || null;\n\t};\n}\n\n/**\n\tA simple state machine that can emit token classes\n\n\tThe `j` property in this class refers to state jumps. It's a\n\tmultidimensional array where for each element:\n\n\t* index [0] is a symbol or class of symbols to transition to.\n\t* index [1] is a State instance which matches\n\n\tThe type of symbol will depend on the target implementation for this class.\n\tIn Linkify, we have a two-stage scanner. Each stage uses this state machine\n\tbut with a slighly different (polymorphic) implementation.\n\n\tThe `T` property refers to the token class.\n\n\tTODO: Can the `on` and `next` methods be combined?\n\n\t@class BaseState\n*/\nvar BaseState = createStateClass();\nBaseState.prototype = {\n\tdefaultTransition: false,\n\n\t/**\n \t@method constructor\n \t@param {Class} tClass Pass in the kind of token to emit if there are\n \t\tno jumps after this state and the state is accepting.\n */\n\n\t/**\n \tOn the given symbol(s), this machine should go to the given state\n \t\t@method on\n \t@param {Array|Mixed} symbol\n \t@param {BaseState} state Note that the type of this state should be the\n \t\tsame as the current instance (i.e., don't pass in a different\n \t\tsubclass)\n */\n\ton: function on(symbol, state) {\n\t\tif (symbol instanceof Array) {\n\t\t\tfor (var i = 0; i < symbol.length; i++) {\n\t\t\t\tthis.j.push([symbol[i], state]);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tthis.j.push([symbol, state]);\n\t\treturn this;\n\t},\n\n\n\t/**\n \tGiven the next item, returns next state for that item\n \t@method next\n \t@param {Mixed} item Should be an instance of the symbols handled by\n \t\tthis particular machine.\n \t@return {State} state Returns false if no jumps are available\n */\n\tnext: function next(item) {\n\t\tfor (var i = 0; i < this.j.length; i++) {\n\t\t\tvar jump = this.j[i];\n\t\t\tvar symbol = jump[0]; // Next item to check for\n\t\t\tvar state = jump[1]; // State to jump to if items match\n\n\t\t\t// compare item with symbol\n\t\t\tif (this.test(item, symbol)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t}\n\n\t\t// Nowhere left to jump!\n\t\treturn this.defaultTransition;\n\t},\n\n\n\t/**\n \tDoes this state accept?\n \t`true` only of `this.T` exists\n \t\t@method accepts\n \t@return {Boolean}\n */\n\taccepts: function accepts() {\n\t\treturn !!this.T;\n\t},\n\n\n\t/**\n \tDetermine whether a given item \"symbolizes\" the symbol, where symbol is\n \ta class of items handled by this state machine.\n \t\tThis method should be overriden in extended classes.\n \t\t@method test\n \t@param {Mixed} item Does this item match the given symbol?\n \t@param {Mixed} symbol\n \t@return {Boolean}\n */\n\ttest: function test(item, symbol) {\n\t\treturn item === symbol;\n\t},\n\n\n\t/**\n \tEmit the token for this State (just return it in this case)\n \tIf this emits a token, this instance is an accepting state\n \t@method emit\n \t@return {Class} T\n */\n\temit: function emit() {\n\t\treturn this.T;\n\t}\n};\n\n/**\n\tState machine for string-based input\n\n\t@class CharacterState\n\t@extends BaseState\n*/\nvar CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {\n\t/**\n \tDoes the given character match the given character or regular\n \texpression?\n \t\t@method test\n \t@param {String} char\n \t@param {String|RegExp} charOrRegExp\n \t@return {Boolean}\n */\n\ttest: function test(character, charOrRegExp) {\n\t\treturn character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n\t}\n});\n\n/**\n\tState machine for input in the form of TextTokens\n\n\t@class TokenState\n\t@extends BaseState\n*/\nvar TokenState = (0, _class.inherits)(BaseState, createStateClass(), {\n\n\t/**\n  * Similar to `on`, but returns the state the results in the transition from\n  * the given item\n  * @method jump\n  * @param {Mixed} item\n  * @param {Token} [token]\n  * @return state\n  */\n\tjump: function jump(token) {\n\t\tvar tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tvar state = this.next(new token('')); // dummy temp token\n\t\tif (state === this.defaultTransition) {\n\t\t\t// Make a new state!\n\t\t\tstate = new this.constructor(tClass);\n\t\t\tthis.on(token, state);\n\t\t} else if (tClass) {\n\t\t\tstate.T = tClass;\n\t\t}\n\t\treturn state;\n\t},\n\n\n\t/**\n \tIs the given token an instance of the given token class?\n \t\t@method test\n \t@param {TextToken} token\n \t@param {Class} tokenClass\n \t@return {Boolean}\n */\n\ttest: function test(token, tokenClass) {\n\t\treturn token instanceof tokenClass;\n\t}\n});\n\n/**\n\tGiven a non-empty target string, generates states (if required) for each\n\tconsecutive substring of characters in str starting from the beginning of\n\tthe string. The final state will have a special value, as specified in\n\toptions. All other \"in between\" substrings will have a default end state.\n\n\tThis turns the state machine into a Trie-like data structure (rather than a\n\tintelligently-designed DFA).\n\n\tNote that I haven't really tried these with any strings other than\n\tDOMAIN.\n\n\t@param {String} str\n\t@param {CharacterState} start State to jump from the first character\n\t@param {Class} endToken Token class to emit when the given string has been\n\t\tmatched and no more jumps exist.\n\t@param {Class} defaultToken \"Filler token\", or which token type to emit when\n\t\twe don't have a full match\n\t@return {Array} list of newly-created states\n*/\nfunction stateify(str, start, endToken, defaultToken) {\n\tvar i = 0,\n\t    len = str.length,\n\t    state = start,\n\t    newStates = [],\n\t    nextState = void 0;\n\n\t// Find the next state without a jump to the next character\n\twhile (i < len && (nextState = state.next(str[i]))) {\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tif (i >= len) {\n\t\treturn [];\n\t} // no new tokens were added\n\n\twhile (i < len - 1) {\n\t\tnextState = new CharacterState(defaultToken);\n\t\tnewStates.push(nextState);\n\t\tstate.on(str[i], nextState);\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tnextState = new CharacterState(endToken);\n\tnewStates.push(nextState);\n\tstate.on(str[len - 1], nextState);\n\n\treturn newStates;\n}\n\nexports.CharacterState = CharacterState;\nexports.TokenState = TokenState;\nexports.stateify = stateify;\n\n/***/ }),\n\n/***/ \"182d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(\"f8cd\");\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw $RangeError('Wrong offset');\n  return offset;\n};\n\n\n/***/ }),\n\n/***/ \"1a2d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar toObject = __webpack_require__(\"7b0b\");\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ }),\n\n/***/ \"1a98\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"detectMobile\", function() { return detectMobile; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"d9e2\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction detectMobile() {\n  var userAgent = getUserAgent();\n  var userAgentPart = userAgent.substr(0, 4);\n  return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(userAgentPart);\n}\n\nfunction getUserAgent() {\n  var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n  if (!userAgent) throw new Error('Failed to look for user agent information.');\n  return userAgent;\n}\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1d02\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $findLastIndex = __webpack_require__(\"a258\").findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isNullOrUndefined = __webpack_require__(\"7234\");\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(\"5926\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar defineBuiltIn = __webpack_require__(\"cb2d\");\nvar defineGlobalProperty = __webpack_require__(\"6374\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"2466\":\n/***/ (function(module, exports) {\n\n//package mp3;\n\nfunction VBRSeekInfo() {\n    /**\n     * What we have seen so far.\n     */\n    this.sum = 0;\n    /**\n     * How many frames we have seen in this chunk.\n     */\n    this.seen = 0;\n    /**\n     * How many frames we want to collect into one chunk.\n     */\n    this.want = 0;\n    /**\n     * Actual position in our bag.\n     */\n    this.pos = 0;\n    /**\n     * Size of our bag.\n     */\n    this.size = 0;\n    /**\n     * Pointer to our bag.\n     */\n    this.bag = null;\n    this.nVbrNumFrames = 0;\n    this.nBytesWritten = 0;\n    /* VBR tag data */\n    this.TotalFrameSize = 0;\n}\n\nmodule.exports = VBRSeekInfo;\n\n\n/***/ }),\n\n/***/ \"2474\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *      psymodel.c\n *\n *      Copyright (c) 1999-2000 Mark Taylor\n *      Copyright (c) 2001-2002 Naoki Shibata\n *      Copyright (c) 2000-2003 Takehiro Tominaga\n *      Copyright (c) 2000-2008 Robert Hegemann\n *      Copyright (c) 2000-2005 Gabriel Bouvigne\n *      Copyright (c) 2000-2005 Alexander Leidinger\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: PsyModel.java,v 1.27 2011/05/24 20:48:06 kenchis Exp $ */\n\n\n/*\n PSYCHO ACOUSTICS\n\n\n This routine computes the psycho acoustics, delayed by one granule.\n\n Input: buffer of PCM data (1024 samples).\n\n This window should be centered over the 576 sample granule window.\n The routine will compute the psycho acoustics for\n this granule, but return the psycho acoustics computed\n for the *previous* granule.  This is because the block\n type of the previous granule can only be determined\n after we have computed the psycho acoustics for the following\n granule.\n\n Output:  maskings and energies for each scalefactor band.\n block type, PE, and some correlation measures.\n The PE is used by CBR modes to determine if extra bits\n from the bit reservoir should be used.  The correlation\n measures are used to determine mid/side or regular stereo.\n */\n/*\n Notation:\n\n barks:  a non-linear frequency scale.  Mapping from frequency to\n barks is given by freq2bark()\n\n scalefactor bands: The spectrum (frequencies) are broken into\n SBMAX \"scalefactor bands\".  Thes bands\n are determined by the MPEG ISO spec.  In\n the noise shaping/quantization code, we allocate\n bits among the partition bands to achieve the\n best possible quality\n\n partition bands:   The spectrum is also broken into about\n 64 \"partition bands\".  Each partition\n band is about .34 barks wide.  There are about 2-5\n partition bands for each scalefactor band.\n\n LAME computes all psycho acoustic information for each partition\n band.  Then at the end of the computations, this information\n is mapped to scalefactor bands.  The energy in each scalefactor\n band is taken as the sum of the energy in all partition bands\n which overlap the scalefactor band.  The maskings can be computed\n in the same way (and thus represent the average masking in that band)\n or by taking the minmum value multiplied by the number of\n partition bands used (which represents a minimum masking in that band).\n */\n/*\n The general outline is as follows:\n\n 1. compute the energy in each partition band\n 2. compute the tonality in each partition band\n 3. compute the strength of each partion band \"masker\"\n 4. compute the masking (via the spreading function applied to each masker)\n 5. Modifications for mid/side masking.\n\n Each partition band is considiered a \"masker\".  The strength\n of the i'th masker in band j is given by:\n\n s3(bark(i)-bark(j))*strength(i)\n\n The strength of the masker is a function of the energy and tonality.\n The more tonal, the less masking.  LAME uses a simple linear formula\n (controlled by NMT and TMN) which says the strength is given by the\n energy divided by a linear function of the tonality.\n */\n/*\n s3() is the \"spreading function\".  It is given by a formula\n determined via listening tests.\n\n The total masking in the j'th partition band is the sum over\n all maskings i.  It is thus given by the convolution of\n the strength with s3(), the \"spreading function.\"\n\n masking(j) = sum_over_i  s3(i-j)*strength(i)  = s3 o strength\n\n where \"o\" = convolution operator.  s3 is given by a formula determined\n via listening tests.  It is normalized so that s3 o 1 = 1.\n\n Note: instead of a simple convolution, LAME also has the\n option of using \"additive masking\"\n\n The most critical part is step 2, computing the tonality of each\n partition band.  LAME has two tonality estimators.  The first\n is based on the ISO spec, and measures how predictiable the\n signal is over time.  The more predictable, the more tonal.\n The second measure is based on looking at the spectrum of\n a single granule.  The more peaky the spectrum, the more\n tonal.  By most indications, the latter approach is better.\n\n Finally, in step 5, the maskings for the mid and side\n channel are possibly increased.  Under certain circumstances,\n noise in the mid & side channels is assumed to also\n be masked by strong maskers in the L or R channels.\n\n\n Other data computed by the psy-model:\n\n ms_ratio        side-channel / mid-channel masking ratio (for previous granule)\n ms_ratio_next   side-channel / mid-channel masking ratio for this granule\n\n percep_entropy[2]     L and R values (prev granule) of PE - A measure of how\n much pre-echo is in the previous granule\n percep_entropy_MS[2]  mid and side channel values (prev granule) of percep_entropy\n energy[4]             L,R,M,S energy in each channel, prev granule\n blocktype_d[2]        block type to use for previous granule\n */\n//package mp3;\n\n//import java.util.Arrays;\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar FFT = __webpack_require__(\"8100\");\nvar Encoder = __webpack_require__(\"4b5e\");\n\nfunction PsyModel() {\n\n    var fft = new FFT();\n\n    var LOG10 = 2.30258509299404568402;\n\n    var rpelev = 2;\n    var rpelev2 = 16;\n    var rpelev_s = 2;\n    var rpelev2_s = 16;\n\n    /* size of each partition band, in barks: */\n    var DELBARK = .34;\n\n    /* tuned for output level (sensitive to energy scale) */\n    var VO_SCALE = (1. / (14752 * 14752) / (Encoder.BLKSIZE / 2));\n\n    var temporalmask_sustain_sec = 0.01;\n\n    var NS_PREECHO_ATT0 = 0.8;\n    var NS_PREECHO_ATT1 = 0.6;\n    var NS_PREECHO_ATT2 = 0.3;\n\n    var NS_MSFIX = 3.5;\n\n    var NSATTACKTHRE = 4.4;\n    var NSATTACKTHRE_S = 25;\n\n    var NSFIRLEN = 21;\n\n    /* size of each partition band, in barks: */\n    var LN_TO_LOG10 = 0.2302585093;\n\n    function NON_LINEAR_SCALE_ENERGY(x) {\n        return x;\n    }\n\n    /**\n     * <PRE>\n     *       L3psycho_anal.  Compute psycho acoustics.\n     *\n     *       Data returned to the calling program must be delayed by one\n     *       granule.\n     *\n     *       This is done in two places.\n     *       If we do not need to know the blocktype, the copying\n     *       can be done here at the top of the program: we copy the data for\n     *       the last granule (computed during the last call) before it is\n     *       overwritten with the new data.  It looks like this:\n     *\n     *       0. static psymodel_data\n     *       1. calling_program_data = psymodel_data\n     *       2. compute psymodel_data\n     *\n     *       For data which needs to know the blocktype, the copying must be\n     *       done at the end of this loop, and the old values must be saved:\n     *\n     *       0. static psymodel_data_old\n     *       1. compute psymodel_data\n     *       2. compute possible block type of this granule\n     *       3. compute final block type of previous granule based on #2.\n     *       4. calling_program_data = psymodel_data_old\n     *       5. psymodel_data_old = psymodel_data\n     *     psycho_loudness_approx\n     *       jd - 2001 mar 12\n     *    in:  energy   - BLKSIZE/2 elements of frequency magnitudes ^ 2\n     *         gfp      - uses out_samplerate, ATHtype (also needed for ATHformula)\n     *    returns: loudness^2 approximation, a positive value roughly tuned for a value\n     *             of 1.0 for signals near clipping.\n     *    notes:   When calibrated, feeding this function binary white noise at sample\n     *             values +32767 or -32768 should return values that approach 3.\n     *             ATHformula is used to approximate an equal loudness curve.\n     *    future:  Data indicates that the shape of the equal loudness curve varies\n     *             with intensity.  This function might be improved by using an equal\n     *             loudness curve shaped for typical playback levels (instead of the\n     *             ATH, that is shaped for the threshold).  A flexible realization might\n     *             simply bend the existing ATH curve to achieve the desired shape.\n     *             However, the potential gain may not be enough to justify an effort.\n     * </PRE>\n     */\n    function psycho_loudness_approx(energy, gfc) {\n        var loudness_power = 0.0;\n        /* apply weights to power in freq. bands */\n        for (var i = 0; i < Encoder.BLKSIZE / 2; ++i)\n            loudness_power += energy[i] * gfc.ATH.eql_w[i];\n        loudness_power *= VO_SCALE;\n\n        return loudness_power;\n    }\n\n    function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n        var gfc = gfp.internal_flags;\n        if (chn < 2) {\n            fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n            fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n        }\n        /* FFT data for mid and side channel is derived from L & R */\n        else if (chn == 2) {\n            for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n                var l = wsamp_l[wsamp_lPos + 0][j];\n                var r = wsamp_l[wsamp_lPos + 1][j];\n                wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n                wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n            }\n            for (var b = 2; b >= 0; --b) {\n                for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n                    var l = wsamp_s[wsamp_sPos + 0][b][j];\n                    var r = wsamp_s[wsamp_sPos + 1][b][j];\n                    wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util.SQRT2 * 0.5;\n                    wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util.SQRT2 * 0.5;\n                }\n            }\n        }\n\n        /*********************************************************************\n         * compute energies\n         *********************************************************************/\n        fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n        fftenergy[0] *= fftenergy[0];\n\n        for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n            var re = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 - j];\n            var im = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 + j];\n            fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n                * re + im * im) * 0.5);\n        }\n        for (var b = 2; b >= 0; --b) {\n            fftenergy_s[b][0] = (wsamp_s[wsamp_sPos + 0])[b][0];\n            fftenergy_s[b][0] *= fftenergy_s[b][0];\n            for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n                var re = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n                / 2 - j];\n                var im = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n                / 2 + j];\n                fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n                    * re + im * im) * 0.5);\n            }\n        }\n        /* total energy */\n        {\n            var totalenergy = 0.0;\n            for (var j = 11; j < Encoder.HBLKSIZE; j++)\n                totalenergy += fftenergy[j];\n\n            gfc.tot_ener[chn] = totalenergy;\n        }\n\n        if (gfp.analysis) {\n            for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n                gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n                gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n            }\n            gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n        }\n\n        /*********************************************************************\n         * compute loudness approximation (used for ATH auto-level adjustment)\n         *********************************************************************/\n        if (gfp.athaa_loudapprox == 2 && chn < 2) {\n            // no loudness for mid/side ch\n            gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n            gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n        }\n    }\n\n    /* mask_add optimization */\n    /* init the limit values used to avoid computing log in mask_add when it is not necessary */\n\n    /**\n     * <PRE>\n     *  For example, with i = 10*log10(m2/m1)/10*16         (= log10(m2/m1)*16)\n     *\n     * abs(i)>8 is equivalent (as i is an integer) to\n     * abs(i)>=9\n     * i>=9 || i<=-9\n     * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16\n     * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)\n     * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16\n     * exp10 is strictly increasing thus this is equivalent to\n     * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants\n     * </PRE>\n     */\n\n    /**\n     * as in if(i>8)\n     */\n    var I1LIMIT = 8;\n    /**\n     * as in if(i>24) . changed 23\n     */\n    var I2LIMIT = 23;\n    /**\n     * as in if(m<15)\n     */\n    var MLIMIT = 15;\n\n    var ma_max_i1;\n    var ma_max_i2;\n    var ma_max_m;\n\n    /**\n     * This is the masking table:<BR>\n     * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).<BR>\n     * After additive masking computation, 8dB are added, so final values are\n     * going from 8dB to 17.3dB\n     *\n     * pow(10, -0.0..-0.6)\n     */\n    var tab = [1.0, 0.79433, 0.63096, 0.63096,\n        0.63096, 0.63096, 0.63096, 0.25119, 0.11749];\n\n    function init_mask_add_max_values() {\n        ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);\n        ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);\n        ma_max_m = Math.pow(10, (MLIMIT) / 10.0);\n    }\n\n    var table1 = [3.3246 * 3.3246,\n        3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412,\n        2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209,\n        2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552,\n        1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911,\n        1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036,\n        1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203,\n        1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659,\n        1.03826 * 1.03826, 1.01895 * 1.01895, 1];\n\n    var table2 = [1.33352 * 1.33352,\n        1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n        1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n        1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n    var table3 = [2.35364 * 2.35364,\n        2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675,\n        2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303,\n        1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148,\n        1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084,\n        1.03826 * 1.03826];\n\n    /**\n     * addition of simultaneous masking Naoki Shibata 2000/7\n     */\n    function mask_add(m1, m2, kk, b, gfc, shortblock) {\n        var ratio;\n\n        if (m2 > m1) {\n            if (m2 < (m1 * ma_max_i2))\n                ratio = m2 / m1;\n            else\n                return (m1 + m2);\n        } else {\n            if (m1 >= (m2 * ma_max_i2))\n                return (m1 + m2);\n            ratio = m1 / m2;\n        }\n\n        /* Should always be true, just checking */\n        assert(m1 >= 0);\n        assert(m2 >= 0);\n\n        m1 += m2;\n        //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {\n        if ((b + 3) <= 3 + 3) {\n            /* approximately, 1 bark = 3 partitions */\n            /* 65% of the cases */\n            /* originally 'if(i > 8)' */\n            if (ratio >= ma_max_i1) {\n                /* 43% of the total */\n                return m1;\n            }\n\n            /* 22% of the total */\n            var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n            return m1 * table2[i];\n        }\n\n        /**\n         * <PRE>\n         * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5\n         * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5\n         * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]\n         * </PRE>\n         */\n        var i = 0 | Util.FAST_LOG10_X(ratio, 16.0);\n        if (shortblock != 0) {\n            m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n        } else {\n            m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n        }\n        assert(m2 >= 0);\n        if (m1 < ma_max_m * m2) {\n            /* 3% of the total */\n            /* Originally if (m > 0) { */\n            if (m1 > m2) {\n                var f, r;\n\n                f = 1.0;\n                if (i <= 13)\n                    f = table3[i];\n\n                r = Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);\n                return m1 * ((table1[i] - f) * r + f);\n            }\n\n            if (i > 13)\n                return m1;\n\n            return m1 * table3[i];\n        }\n\n        /* 10% of total */\n        return m1 * table1[i];\n    }\n\n    var table2_ = [1.33352 * 1.33352,\n        1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n        1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n        1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n    /**\n     * addition of simultaneous masking Naoki Shibata 2000/7\n     */\n    function vbrpsy_mask_add(m1, m2, b) {\n        var ratio;\n\n        if (m1 < 0) {\n            m1 = 0;\n        }\n        if (m2 < 0) {\n            m2 = 0;\n        }\n        if (m1 <= 0) {\n            return m2;\n        }\n        if (m2 <= 0) {\n            return m1;\n        }\n        if (m2 > m1) {\n            ratio = m2 / m1;\n        } else {\n            ratio = m1 / m2;\n        }\n        if (-2 <= b && b <= 2) {\n            /* approximately, 1 bark = 3 partitions */\n            /* originally 'if(i > 8)' */\n            if (ratio >= ma_max_i1) {\n                return m1 + m2;\n            } else {\n                var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n                return (m1 + m2) * table2_[i];\n            }\n        }\n        if (ratio < ma_max_i2) {\n            return m1 + m2;\n        }\n        if (m1 < m2) {\n            m1 = m2;\n        }\n        return m1;\n    }\n\n    /**\n     * compute interchannel masking effects\n     */\n    function calc_interchannel_masking(gfp, ratio) {\n        var gfc = gfp.internal_flags;\n        if (gfc.channels_out > 1) {\n            for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n                var l = gfc.thm[0].l[sb];\n                var r = gfc.thm[1].l[sb];\n                gfc.thm[0].l[sb] += r * ratio;\n                gfc.thm[1].l[sb] += l * ratio;\n            }\n            for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n                for (var sblock = 0; sblock < 3; sblock++) {\n                    var l = gfc.thm[0].s[sb][sblock];\n                    var r = gfc.thm[1].s[sb][sblock];\n                    gfc.thm[0].s[sb][sblock] += r * ratio;\n                    gfc.thm[1].s[sb][sblock] += l * ratio;\n                }\n            }\n        }\n    }\n\n    /**\n     * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n     */\n    function msfix1(gfc) {\n        for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n            /* use this fix if L & R masking differs by 2db or less */\n            /* if db = 10*log10(x2/x1) < 2 */\n            /* if (x2 < 1.58*x1) { */\n            if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb]\n                || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb])\n                continue;\n            var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n            var rmid = Math.max(gfc.thm[2].l[sb],\n                Math.min(gfc.thm[3].l[sb], mld));\n\n            mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n            var rside = Math.max(gfc.thm[3].l[sb],\n                Math.min(gfc.thm[2].l[sb], mld));\n            gfc.thm[2].l[sb] = rmid;\n            gfc.thm[3].l[sb] = rside;\n        }\n\n        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n            for (var sblock = 0; sblock < 3; sblock++) {\n                if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock]\n                    || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock])\n                    continue;\n                var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n                var rmid = Math.max(gfc.thm[2].s[sb][sblock],\n                    Math.min(gfc.thm[3].s[sb][sblock], mld));\n\n                mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n                var rside = Math.max(gfc.thm[3].s[sb][sblock],\n                    Math.min(gfc.thm[2].s[sb][sblock], mld));\n\n                gfc.thm[2].s[sb][sblock] = rmid;\n                gfc.thm[3].s[sb][sblock] = rside;\n            }\n        }\n    }\n\n    /**\n     * Adjust M/S maskings if user set \"msfix\"\n     *\n     * Naoki Shibata 2000\n     */\n    function ns_msfix(gfc, msfix, athadjust) {\n        var msfix2 = msfix;\n        var athlower = Math.pow(10, athadjust);\n\n        msfix *= 2.0;\n        msfix2 *= 2.0;\n        for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n            var thmLR, thmM, thmS, ath;\n            ath = (gfc.ATH.cb_l[gfc.bm_l[sb]]) * athlower;\n            thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath),\n                Math.max(gfc.thm[1].l[sb], ath));\n            thmM = Math.max(gfc.thm[2].l[sb], ath);\n            thmS = Math.max(gfc.thm[3].l[sb], ath);\n            if (thmLR * msfix < thmM + thmS) {\n                var f = thmLR * msfix2 / (thmM + thmS);\n                thmM *= f;\n                thmS *= f;\n                assert(thmM + thmS > 0);\n            }\n            gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n            gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n        }\n\n        athlower *= ( Encoder.BLKSIZE_s / Encoder.BLKSIZE);\n        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n            for (var sblock = 0; sblock < 3; sblock++) {\n                var thmLR, thmM, thmS, ath;\n                ath = (gfc.ATH.cb_s[gfc.bm_s[sb]]) * athlower;\n                thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath),\n                    Math.max(gfc.thm[1].s[sb][sblock], ath));\n                thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n                thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n\n                if (thmLR * msfix < thmM + thmS) {\n                    var f = thmLR * msfix / (thmM + thmS);\n                    thmM *= f;\n                    thmS *= f;\n                    assert(thmM + thmS > 0);\n                }\n                gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock],\n                    thmM);\n                gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock],\n                    thmS);\n            }\n        }\n    }\n\n    /**\n     * short block threshold calculation (part 2)\n     *\n     * partition band bo_s[sfb] is at the transition from scalefactor band sfb\n     * to the next one sfb+1; enn and thmm have to be split between them\n     */\n    function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n        var sb, b;\n        var enn = 0.0;\n        var thmm = 0.0;\n        for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n            var bo_s_sb = gfc.bo_s[sb];\n            var npart_s = gfc.npart_s;\n            var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n            while (b < b_lim) {\n                assert(eb[b] >= 0);\n                // iff failed, it may indicate some index error elsewhere\n                assert(thr[b] >= 0);\n                enn += eb[b];\n                thmm += thr[b];\n                b++;\n            }\n            gfc.en[chn].s[sb][sblock] = enn;\n            gfc.thm[chn].s[sb][sblock] = thmm;\n\n            if (b >= npart_s) {\n                ++sb;\n                break;\n            }\n            assert(eb[b] >= 0);\n            // iff failed, it may indicate some index error elsewhere\n            assert(thr[b] >= 0);\n            {\n                /* at transition sfb . sfb+1 */\n                var w_curr = gfc.PSY.bo_s_weight[sb];\n                var w_next = 1.0 - w_curr;\n                enn = w_curr * eb[b];\n                thmm = w_curr * thr[b];\n                gfc.en[chn].s[sb][sblock] += enn;\n                gfc.thm[chn].s[sb][sblock] += thmm;\n                enn = w_next * eb[b];\n                thmm = w_next * thr[b];\n            }\n        }\n        /* zero initialize the rest */\n        for (; sb < Encoder.SBMAX_s; ++sb) {\n            gfc.en[chn].s[sb][sblock] = 0;\n            gfc.thm[chn].s[sb][sblock] = 0;\n        }\n    }\n\n    /**\n     * longblock threshold calculation (part 2)\n     */\n    function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n        var sb, b;\n        var enn = 0.0;\n        var thmm = 0.0;\n        for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n            var bo_l_sb = gfc.bo_l[sb];\n            var npart_l = gfc.npart_l;\n            var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n            while (b < b_lim) {\n                assert(eb[b] >= 0);\n                // iff failed, it may indicate some index error elsewhere\n                assert(thr[b] >= 0);\n                enn += eb[b];\n                thmm += thr[b];\n                b++;\n            }\n            gfc.en[chn].l[sb] = enn;\n            gfc.thm[chn].l[sb] = thmm;\n\n            if (b >= npart_l) {\n                ++sb;\n                break;\n            }\n            assert(eb[b] >= 0);\n            assert(thr[b] >= 0);\n            {\n                /* at transition sfb . sfb+1 */\n                var w_curr = gfc.PSY.bo_l_weight[sb];\n                var w_next = 1.0 - w_curr;\n                enn = w_curr * eb[b];\n                thmm = w_curr * thr[b];\n                gfc.en[chn].l[sb] += enn;\n                gfc.thm[chn].l[sb] += thmm;\n                enn = w_next * eb[b];\n                thmm = w_next * thr[b];\n            }\n        }\n        /* zero initialize the rest */\n        for (; sb < Encoder.SBMAX_l; ++sb) {\n            gfc.en[chn].l[sb] = 0;\n            gfc.thm[chn].l[sb] = 0;\n        }\n    }\n\n    function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n        var gfc = gfp.internal_flags;\n        var j, b;\n\n        for (b = j = 0; b < gfc.npart_s; ++b) {\n            var ebb = 0, m = 0;\n            var n = gfc.numlines_s[b];\n            for (var i = 0; i < n; ++i, ++j) {\n                var el = fftenergy_s[sblock][j];\n                ebb += el;\n                if (m < el)\n                    m = el;\n            }\n            eb[b] = ebb;\n        }\n        assert(b == gfc.npart_s);\n        assert(j == 129);\n        for (j = b = 0; b < gfc.npart_s; b++) {\n            var kk = gfc.s3ind_s[b][0];\n            var ecb = gfc.s3_ss[j++] * eb[kk];\n            ++kk;\n            while (kk <= gfc.s3ind_s[b][1]) {\n                ecb += gfc.s3_ss[j] * eb[kk];\n                ++j;\n                ++kk;\n            }\n\n            { /* limit calculated threshold by previous granule */\n                var x = rpelev_s * gfc.nb_s1[chn][b];\n                thr[b] = Math.min(ecb, x);\n            }\n            if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n                /* limit calculated threshold by even older granule */\n                var x = rpelev2_s * gfc.nb_s2[chn][b];\n                var y = thr[b];\n                thr[b] = Math.min(x, y);\n            }\n\n            gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n            gfc.nb_s1[chn][b] = ecb;\n            assert(thr[b] >= 0);\n        }\n        for (; b <= Encoder.CBANDS; ++b) {\n            eb[b] = 0;\n            thr[b] = 0;\n        }\n    }\n\n    function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n        var gfc = gfp.internal_flags;\n\n        if (gfp.short_blocks == ShortBlock.short_block_coupled\n                /* force both channels to use the same block type */\n                /* this is necessary if the frame is to be encoded in ms_stereo. */\n                /* But even without ms_stereo, FhG does this */\n            && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n            uselongblock[0] = uselongblock[1] = 0;\n\n        /*\n         * update the blocktype of the previous granule, since it depends on\n         * what happend in this granule\n         */\n        for (var chn = 0; chn < gfc.channels_out; chn++) {\n            blocktype[chn] = Encoder.NORM_TYPE;\n            /* disable short blocks */\n            if (gfp.short_blocks == ShortBlock.short_block_dispensed)\n                uselongblock[chn] = 1;\n            if (gfp.short_blocks == ShortBlock.short_block_forced)\n                uselongblock[chn] = 0;\n\n            if (uselongblock[chn] != 0) {\n                /* no attack : use long blocks */\n                assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n                if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n                    blocktype[chn] = Encoder.STOP_TYPE;\n            } else {\n                /* attack : use short blocks */\n                blocktype[chn] = Encoder.SHORT_TYPE;\n                if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n                    gfc.blocktype_old[chn] = Encoder.START_TYPE;\n                }\n                if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n                    gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n            }\n\n            blocktype_d[chn] = gfc.blocktype_old[chn];\n            // value returned to calling program\n            gfc.blocktype_old[chn] = blocktype[chn];\n            // save for next call to l3psy_anal\n        }\n    }\n\n    function NS_INTERP(x, y, r) {\n        /* was pow((x),(r))*pow((y),1-(r)) */\n        if (r >= 1.0) {\n            /* 99.7% of the time */\n            return x;\n        }\n        if (r <= 0.0)\n            return y;\n        if (y > 0.0) {\n            /* rest of the time */\n            return (Math.pow(x / y, r) * y);\n        }\n        /* never happens */\n        return 0.0;\n    }\n\n    /**\n     * these values are tuned only for 44.1kHz...\n     */\n    var regcoef_s = [11.8, 13.6, 17.2, 32, 46.5,\n        51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130,\n        /* 255.8 */\n    ];\n\n    function pecalc_s(mr, masking_lower) {\n        var pe_s = 1236.28 / 4;\n        for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n            for (var sblock = 0; sblock < 3; sblock++) {\n                var thm = mr.thm.s[sb][sblock];\n                assert(sb < regcoef_s.length);\n                if (thm > 0.0) {\n                    var x = thm * masking_lower;\n                    var en = mr.en.s[sb][sblock];\n                    if (en > x) {\n                        if (en > x * 1e10) {\n                            pe_s += regcoef_s[sb] * (10.0 * LOG10);\n                        } else {\n                            assert(x > 0);\n                            pe_s += regcoef_s[sb] * Util.FAST_LOG10(en / x);\n                        }\n                    }\n                }\n            }\n        }\n\n        return pe_s;\n    }\n\n    /**\n     * these values are tuned only for 44.1kHz...\n     */\n    var regcoef_l = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9,\n        12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5,\n        60.7, 73.9, 85.7, 93.4, 126.1,\n        /* 241.3 */\n    ];\n\n    function pecalc_l(mr, masking_lower) {\n        var pe_l = 1124.23 / 4;\n        for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n            var thm = mr.thm.l[sb];\n            assert(sb < regcoef_l.length);\n            if (thm > 0.0) {\n                var x = thm * masking_lower;\n                var en = mr.en.l[sb];\n                if (en > x) {\n                    if (en > x * 1e10) {\n                        pe_l += regcoef_l[sb] * (10.0 * LOG10);\n                    } else {\n                        assert(x > 0);\n                        pe_l += regcoef_l[sb] * Util.FAST_LOG10(en / x);\n                    }\n                }\n            }\n        }\n        return pe_l;\n    }\n\n    function calc_energy(gfc, fftenergy, eb, max, avg) {\n        var b, j;\n\n        for (b = j = 0; b < gfc.npart_l; ++b) {\n            var ebb = 0, m = 0;\n            var i;\n            for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n                var el = fftenergy[j];\n                assert(el >= 0);\n                ebb += el;\n                if (m < el)\n                    m = el;\n            }\n            eb[b] = ebb;\n            max[b] = m;\n            avg[b] = ebb * gfc.rnumlines_l[b];\n            assert(gfc.rnumlines_l[b] >= 0);\n            assert(ebb >= 0);\n            assert(eb[b] >= 0);\n            assert(max[b] >= 0);\n            assert(avg[b] >= 0);\n        }\n    }\n\n    function calc_mask_index_l(gfc, max, avg, mask_idx) {\n        var last_tab_entry = tab.length - 1;\n        var b = 0;\n        var a = avg[b] + avg[b + 1];\n        assert(a >= 0);\n        if (a > 0.0) {\n            var m = max[b];\n            if (m < max[b + 1])\n                m = max[b + 1];\n            assert((gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n            a = 20.0 * (m * 2.0 - a)\n                / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n            var k = 0 | a;\n            if (k > last_tab_entry)\n                k = last_tab_entry;\n            mask_idx[b] = k;\n        } else {\n            mask_idx[b] = 0;\n        }\n\n        for (b = 1; b < gfc.npart_l - 1; b++) {\n            a = avg[b - 1] + avg[b] + avg[b + 1];\n            assert(a >= 0);\n            if (a > 0.0) {\n                var m = max[b - 1];\n                if (m < max[b])\n                    m = max[b];\n                if (m < max[b + 1])\n                    m = max[b + 1];\n                assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n                a = 20.0\n                    * (m * 3.0 - a)\n                    / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b]\n                    + gfc.numlines_l[b + 1] - 1));\n                var k = 0 | a;\n                if (k > last_tab_entry)\n                    k = last_tab_entry;\n                mask_idx[b] = k;\n            } else {\n                mask_idx[b] = 0;\n            }\n        }\n        assert(b > 0);\n        assert(b == gfc.npart_l - 1);\n\n        a = avg[b - 1] + avg[b];\n        assert(a >= 0);\n        if (a > 0.0) {\n            var m = max[b - 1];\n            if (m < max[b])\n                m = max[b];\n            assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1) > 0);\n            a = 20.0 * (m * 2.0 - a)\n                / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n            var k = 0 | a;\n            if (k > last_tab_entry)\n                k = last_tab_entry;\n            mask_idx[b] = k;\n        } else {\n            mask_idx[b] = 0;\n        }\n        assert(b == (gfc.npart_l - 1));\n    }\n\n    var fircoef = [\n        -8.65163e-18 * 2, -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n        -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2, 0.0931738 * 2,\n        -5.52212e-17 * 2, -0.313819 * 2\n    ];\n\n    this.L3psycho_anal_ns = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n        /*\n         * to get a good cache performance, one has to think about the sequence,\n         * in which the variables are used.\n         */\n        var gfc = gfp.internal_flags;\n\n        /* fft and energy calculation */\n        var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n        var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n\n        /* convolution */\n        var eb_l = new_float(Encoder.CBANDS + 1);\n        var eb_s = new_float(Encoder.CBANDS + 1);\n        var thr = new_float(Encoder.CBANDS + 2);\n\n        /* block type */\n        var blocktype = new_int(2), uselongblock = new_int(2);\n\n        /* usual variables like loop indices, etc.. */\n        var numchn, chn;\n        var b, i, j, k;\n        var sb, sblock;\n\n        /* variables used for --nspsytune */\n        var ns_hpfsmpl = new_float_n([2, 576]);\n        var pcfact;\n        var mask_idx_l = new_int(Encoder.CBANDS + 2), mask_idx_s = new_int(Encoder.CBANDS + 2);\n\n        Arrays.fill(mask_idx_s, 0);\n\n        numchn = gfc.channels_out;\n        /* chn=2 and 3 = Mid and Side channels */\n        if (gfp.mode == MPEGMode.JOINT_STEREO)\n            numchn = 4;\n\n        if (gfp.VBR == VbrMode.vbr_off)\n            pcfact = gfc.ResvMax == 0 ? 0 : ( gfc.ResvSize)\n            / gfc.ResvMax * 0.5;\n        else if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh\n            || gfp.VBR == VbrMode.vbr_mt) {\n            pcfact = 0.6;\n        } else\n            pcfact = 1.0;\n\n        /**********************************************************************\n         * Apply HPF of fs/4 to the input signal. This is used for attack\n         * detection / handling.\n         **********************************************************************/\n        /* Don't copy the input buffer into a temporary buffer */\n        /* unroll the loop 2 times */\n        for (chn = 0; chn < gfc.channels_out; chn++) {\n            /* apply high pass filter of fs/4 */\n            var firbuf = buffer[chn];\n            var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n            assert(fircoef.length == ((NSFIRLEN - 1) / 2));\n            for (i = 0; i < 576; i++) {\n                var sum1, sum2;\n                sum1 = firbuf[firbufPos + i + 10];\n                sum2 = 0.0;\n                for (j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n                    sum1 += fircoef[j]\n                        * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n                        + NSFIRLEN - j]);\n                    sum2 += fircoef[j + 1]\n                        * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n                        + i + NSFIRLEN - j - 1]);\n                }\n                ns_hpfsmpl[chn][i] = sum1 + sum2;\n            }\n            masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n            masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n            if (numchn > 2) {\n                /* MS maskings */\n                /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n                masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n                masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n            }\n        }\n\n        for (chn = 0; chn < numchn; chn++) {\n            var wsamp_l;\n            var wsamp_s;\n            var en_subshort = new_float(12);\n            var en_short = [0, 0, 0, 0];\n            var attack_intensity = new_float(12);\n            var ns_uselongblock = 1;\n            var attackThreshold;\n            var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n            var ns_attacks = [0, 0, 0, 0];\n            var fftenergy = new_float(Encoder.HBLKSIZE);\n            var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n\n            /*\n             * rh 20040301: the following loops do access one off the limits so\n             * I increase the array dimensions by one and initialize the\n             * accessed values to zero\n             */\n            assert(gfc.npart_s <= Encoder.CBANDS);\n            assert(gfc.npart_l <= Encoder.CBANDS);\n\n            /***************************************************************\n             * determine the block type (window type)\n             ***************************************************************/\n            /* calculate energies of each sub-shortblocks */\n            for (i = 0; i < 3; i++) {\n                en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n                assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n                attack_intensity[i] = en_subshort[i]\n                    / gfc.nsPsy.last_en_subshort[chn][i + 4];\n                en_short[0] += en_subshort[i];\n            }\n\n            if (chn == 2) {\n                for (i = 0; i < 576; i++) {\n                    var l, r;\n                    l = ns_hpfsmpl[0][i];\n                    r = ns_hpfsmpl[1][i];\n                    ns_hpfsmpl[0][i] = l + r;\n                    ns_hpfsmpl[1][i] = l - r;\n                }\n            }\n            {\n                var pf = ns_hpfsmpl[chn & 1];\n                var pfPos = 0;\n                for (i = 0; i < 9; i++) {\n                    var pfe = pfPos + 576 / 9;\n                    var p = 1.;\n                    for (; pfPos < pfe; pfPos++)\n                        if (p < Math.abs(pf[pfPos]))\n                            p = Math.abs(pf[pfPos]);\n\n                    gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n                    en_short[1 + i / 3] += p;\n                    if (p > en_subshort[i + 3 - 2]) {\n                        assert(en_subshort[i + 3 - 2] > 0);\n                        p = p / en_subshort[i + 3 - 2];\n                    } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n                        assert(p > 0);\n                        p = en_subshort[i + 3 - 2] / (p * 10.0);\n                    } else\n                        p = 0.0;\n                    attack_intensity[i + 3] = p;\n                }\n            }\n\n            if (gfp.analysis) {\n                var x = attack_intensity[0];\n                for (i = 1; i < 12; i++)\n                    if (x < attack_intensity[i])\n                        x = attack_intensity[i];\n                gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n                gfc.pinfo.ers_save[chn] = x;\n            }\n\n            /* compare energies between sub-shortblocks */\n            attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n                : gfc.nsPsy.attackthre;\n            for (i = 0; i < 12; i++)\n                if (0 == ns_attacks[i / 3]\n                    && attack_intensity[i] > attackThreshold)\n                    ns_attacks[i / 3] = (i % 3) + 1;\n\n            /*\n             * should have energy change between short blocks, in order to avoid\n             * periodic signals\n             */\n            for (i = 1; i < 4; i++) {\n                var ratio;\n                if (en_short[i - 1] > en_short[i]) {\n                    assert(en_short[i] > 0);\n                    ratio = en_short[i - 1] / en_short[i];\n                } else {\n                    assert(en_short[i - 1] > 0);\n                    ratio = en_short[i] / en_short[i - 1];\n                }\n                if (ratio < 1.7) {\n                    ns_attacks[i] = 0;\n                    if (i == 1)\n                        ns_attacks[0] = 0;\n                }\n            }\n\n            if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0)\n                ns_attacks[0] = 0;\n\n            if (gfc.nsPsy.lastAttacks[chn] == 3\n                || (ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3]) != 0) {\n                ns_uselongblock = 0;\n\n                if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n                    ns_attacks[1] = 0;\n                if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n                    ns_attacks[2] = 0;\n                if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n                    ns_attacks[3] = 0;\n            }\n\n            if (chn < 2) {\n                uselongblock[chn] = ns_uselongblock;\n            } else {\n                if (ns_uselongblock == 0) {\n                    uselongblock[0] = uselongblock[1] = 0;\n                }\n            }\n\n            /*\n             * there is a one granule delay. Copy maskings computed last call\n             * into masking_ratio to return to calling program.\n             */\n            energy[chn] = gfc.tot_ener[chn];\n\n            /*********************************************************************\n             * compute FFTs\n             *********************************************************************/\n            wsamp_s = wsamp_S;\n            wsamp_l = wsamp_L;\n            compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, (chn & 1),\n                wsamp_s, (chn & 1), gr_out, chn, buffer, bufPos);\n\n            /*********************************************************************\n             * Calculate the energy and the tonality of each partition.\n             *********************************************************************/\n            calc_energy(gfc, fftenergy, eb_l, max, avg);\n            calc_mask_index_l(gfc, max, avg, mask_idx_l);\n            /* compute masking thresholds for short blocks */\n            for (sblock = 0; sblock < 3; sblock++) {\n                var enn, thmm;\n                compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n                convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n                /**** short block pre-echo control ****/\n                for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n                    thmm = gfc.thm[chn].s[sb][sblock];\n\n                    thmm *= NS_PREECHO_ATT0;\n                    if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n                        var idx = (sblock != 0) ? sblock - 1 : 2;\n                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                            NS_PREECHO_ATT1 * pcfact);\n                        thmm = Math.min(thmm, p);\n                    }\n\n                    if (ns_attacks[sblock] == 1) {\n                        var idx = (sblock != 0) ? sblock - 1 : 2;\n                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                            NS_PREECHO_ATT2 * pcfact);\n                        thmm = Math.min(thmm, p);\n                    } else if ((sblock != 0 && ns_attacks[sblock - 1] == 3)\n                        || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n                        var idx = (sblock != 2) ? sblock + 1 : 0;\n                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                            NS_PREECHO_ATT2 * pcfact);\n                        thmm = Math.min(thmm, p);\n                    }\n\n                    /* pulse like signal detection for fatboy.wav and so on */\n                    enn = en_subshort[sblock * 3 + 3]\n                        + en_subshort[sblock * 3 + 4]\n                        + en_subshort[sblock * 3 + 5];\n                    if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n                        thmm *= 0.5;\n                        if (en_subshort[sblock * 3 + 4] * 6 < enn)\n                            thmm *= 0.5;\n                    }\n\n                    gfc.thm[chn].s[sb][sblock] = thmm;\n                }\n            }\n            gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n\n            /*********************************************************************\n             * convolve the partitioned energy and unpredictability with the\n             * spreading function, s3_l[b][k]\n             ********************************************************************/\n            k = 0;\n            {\n                for (b = 0; b < gfc.npart_l; b++) {\n                    /*\n                     * convolve the partitioned energy with the spreading\n                     * function\n                     */\n                    var kk = gfc.s3ind[b][0];\n                    var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n                    var ecb = gfc.s3_ll[k++] * eb2;\n                    while (++kk <= gfc.s3ind[b][1]) {\n                        eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n                        ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b,\n                            gfc, 0);\n                    }\n                    ecb *= 0.158489319246111;\n                    /* pow(10,-0.8) */\n\n                    /**** long block pre-echo control ****/\n                    /**\n                     * <PRE>\n                     * dont use long block pre-echo control if previous granule was\n                     * a short block.  This is to avoid the situation:\n                     * frame0:  quiet (very low masking)\n                     * frame1:  surge  (triggers short blocks)\n                     * frame2:  regular frame.  looks like pre-echo when compared to\n                     *          frame0, but all pre-echo was in frame1.\n                     * </PRE>\n                     */\n                    /*\n                     * chn=0,1 L and R channels\n                     *\n                     * chn=2,3 S and M channels.\n                     */\n\n                    if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n                        thr[b] = ecb;\n                    else\n                        thr[b] = NS_INTERP(\n                            Math.min(ecb, Math.min(rpelev\n                                * gfc.nb_1[chn][b], rpelev2\n                                * gfc.nb_2[chn][b])), ecb, pcfact);\n\n                    gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n                    gfc.nb_1[chn][b] = ecb;\n                }\n            }\n            for (; b <= Encoder.CBANDS; ++b) {\n                eb_l[b] = 0;\n                thr[b] = 0;\n            }\n            /* compute masking thresholds for long blocks */\n            convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n        }\n        /* end loop over chn */\n\n        if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n            if (gfp.interChRatio > 0.0) {\n                calc_interchannel_masking(gfp, gfp.interChRatio);\n            }\n        }\n\n        if (gfp.mode == MPEGMode.JOINT_STEREO) {\n            var msfix;\n            msfix1(gfc);\n            msfix = gfp.msfix;\n            if (Math.abs(msfix) > 0.0)\n                ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n        }\n\n        /***************************************************************\n         * determine final block type\n         ***************************************************************/\n        block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n\n        /*********************************************************************\n         * compute the value of PE to return ... no delay and advance\n         *********************************************************************/\n        for (chn = 0; chn < numchn; chn++) {\n            var ppe;\n            var ppePos = 0;\n            var type;\n            var mr;\n\n            if (chn > 1) {\n                ppe = percep_MS_entropy;\n                ppePos = -2;\n                type = Encoder.NORM_TYPE;\n                if (blocktype_d[0] == Encoder.SHORT_TYPE\n                    || blocktype_d[1] == Encoder.SHORT_TYPE)\n                    type = Encoder.SHORT_TYPE;\n                mr = masking_MS_ratio[gr_out][chn - 2];\n            } else {\n                ppe = percep_entropy;\n                ppePos = 0;\n                type = blocktype_d[chn];\n                mr = masking_ratio[gr_out][chn];\n            }\n\n            if (type == Encoder.SHORT_TYPE)\n                ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n            else\n                ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n\n            if (gfp.analysis)\n                gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n\n        }\n        return 0;\n    }\n\n    function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n        var gfc = gfp.internal_flags;\n        if (chn < 2) {\n            fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n        } else if (chn == 2) {\n            /* FFT data for mid and side channel is derived from L & R */\n            for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n                var l = wsamp_l[wsamp_lPos + 0][j];\n                var r = wsamp_l[wsamp_lPos + 1][j];\n                wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n                wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n            }\n        }\n\n        /*********************************************************************\n         * compute energies\n         *********************************************************************/\n        fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n        fftenergy[0] *= fftenergy[0];\n\n        for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n            var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n            var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n            fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n                * re + im * im) * 0.5);\n        }\n        /* total energy */\n        {\n            var totalenergy = 0.0;\n            for (var j = 11; j < Encoder.HBLKSIZE; j++)\n                totalenergy += fftenergy[j];\n\n            gfc.tot_ener[chn] = totalenergy;\n        }\n\n        if (gfp.analysis) {\n            for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n                gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n                gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n            }\n            gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n        }\n    }\n\n    function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n        var gfc = gfp.internal_flags;\n\n        if (sblock == 0 && chn < 2) {\n            fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n        }\n        if (chn == 2) {\n            /* FFT data for mid and side channel is derived from L & R */\n            for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n                var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n                var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n                wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util.SQRT2 * 0.5;\n                wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util.SQRT2 * 0.5;\n            }\n        }\n\n        /*********************************************************************\n         * compute energies\n         *********************************************************************/\n        fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n        fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n        for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n            var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n            var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n            fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n                * re + im * im) * 0.5);\n        }\n    }\n\n    /**\n     * compute loudness approximation (used for ATH auto-level adjustment)\n     */\n    function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n        var gfc = gfp.internal_flags;\n        if (gfp.athaa_loudapprox == 2 && chn < 2) {\n            // no loudness for mid/side ch\n            gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n            gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n        }\n    }\n\n    var fircoef_ = [-8.65163e-18 * 2,\n        -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n        -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2,\n        0.0931738 * 2, -5.52212e-17 * 2, -0.313819 * 2];\n\n    /**\n     * Apply HPF of fs/4 to the input signal. This is used for attack detection\n     * / handling.\n     */\n    function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n        var ns_hpfsmpl = new_float_n([2, 576]);\n        var gfc = gfp.internal_flags;\n        var n_chn_out = gfc.channels_out;\n        /* chn=2 and 3 = Mid and Side channels */\n        var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4 : n_chn_out;\n        /* Don't copy the input buffer into a temporary buffer */\n        /* unroll the loop 2 times */\n        for (var chn = 0; chn < n_chn_out; chn++) {\n            /* apply high pass filter of fs/4 */\n            firbuf = buffer[chn];\n            var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n            assert(fircoef_.length == ((NSFIRLEN - 1) / 2));\n            for (var i = 0; i < 576; i++) {\n                var sum1, sum2;\n                sum1 = firbuf[firbufPos + i + 10];\n                sum2 = 0.0;\n                for (var j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n                    sum1 += fircoef_[j]\n                        * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n                        + NSFIRLEN - j]);\n                    sum2 += fircoef_[j + 1]\n                        * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n                        + i + NSFIRLEN - j - 1]);\n                }\n                ns_hpfsmpl[chn][i] = sum1 + sum2;\n            }\n            masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n            masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n            if (n_chn_psy > 2) {\n                /* MS maskings */\n                /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n                masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n                masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n            }\n        }\n        for (var chn = 0; chn < n_chn_psy; chn++) {\n            var attack_intensity = new_float(12);\n            var en_subshort = new_float(12);\n            var en_short = [0, 0, 0, 0];\n            var pf = ns_hpfsmpl[chn & 1];\n            var pfPos = 0;\n            var attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n                : gfc.nsPsy.attackthre;\n            var ns_uselongblock = 1;\n\n            if (chn == 2) {\n                for (var i = 0, j = 576; j > 0; ++i, --j) {\n                    var l = ns_hpfsmpl[0][i];\n                    var r = ns_hpfsmpl[1][i];\n                    ns_hpfsmpl[0][i] = l + r;\n                    ns_hpfsmpl[1][i] = l - r;\n                }\n            }\n            /***************************************************************\n             * determine the block type (window type)\n             ***************************************************************/\n            /* calculate energies of each sub-shortblocks */\n            for (var i = 0; i < 3; i++) {\n                en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n                assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n                attack_intensity[i] = en_subshort[i]\n                    / gfc.nsPsy.last_en_subshort[chn][i + 4];\n                en_short[0] += en_subshort[i];\n            }\n\n            for (var i = 0; i < 9; i++) {\n                var pfe = pfPos + 576 / 9;\n                var p = 1.;\n                for (; pfPos < pfe; pfPos++)\n                    if (p < Math.abs(pf[pfPos]))\n                        p = Math.abs(pf[pfPos]);\n\n                gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n                en_short[1 + i / 3] += p;\n                if (p > en_subshort[i + 3 - 2]) {\n                    assert(en_subshort[i + 3 - 2] > 0);\n                    p = p / en_subshort[i + 3 - 2];\n                } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n                    assert(p > 0);\n                    p = en_subshort[i + 3 - 2] / (p * 10.0);\n                } else {\n                    p = 0.0;\n                }\n                attack_intensity[i + 3] = p;\n            }\n            /* pulse like signal detection for fatboy.wav and so on */\n            for (var i = 0; i < 3; ++i) {\n                var enn = en_subshort[i * 3 + 3]\n                    + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n                var factor = 1.;\n                if (en_subshort[i * 3 + 5] * 6 < enn) {\n                    factor *= 0.5;\n                    if (en_subshort[i * 3 + 4] * 6 < enn) {\n                        factor *= 0.5;\n                    }\n                }\n                sub_short_factor[chn][i] = factor;\n            }\n\n            if (gfp.analysis) {\n                var x = attack_intensity[0];\n                for (var i = 1; i < 12; i++) {\n                    if (x < attack_intensity[i]) {\n                        x = attack_intensity[i];\n                    }\n                }\n                gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n                gfc.pinfo.ers_save[chn] = x;\n            }\n\n            /* compare energies between sub-shortblocks */\n            for (var i = 0; i < 12; i++) {\n                if (0 == ns_attacks[chn][i / 3]\n                    && attack_intensity[i] > attackThreshold) {\n                    ns_attacks[chn][i / 3] = (i % 3) + 1;\n                }\n            }\n\n            /*\n             * should have energy change between short blocks, in order to avoid\n             * periodic signals\n             */\n            /* Good samples to show the effect are Trumpet test songs */\n            /*\n             * GB: tuned (1) to avoid too many short blocks for test sample\n             * TRUMPET\n             */\n            /*\n             * RH: tuned (2) to let enough short blocks through for test sample\n             * FSOL and SNAPS\n             */\n            for (var i = 1; i < 4; i++) {\n                var u = en_short[i - 1];\n                var v = en_short[i];\n                var m = Math.max(u, v);\n                if (m < 40000) { /* (2) */\n                    if (u < 1.7 * v && v < 1.7 * u) { /* (1) */\n                        if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n                            ns_attacks[chn][0] = 0;\n                        }\n                        ns_attacks[chn][i] = 0;\n                    }\n                }\n            }\n\n            if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n                ns_attacks[chn][0] = 0;\n            }\n\n            if (gfc.nsPsy.lastAttacks[chn] == 3\n                || (ns_attacks[chn][0] + ns_attacks[chn][1]\n                + ns_attacks[chn][2] + ns_attacks[chn][3]) != 0) {\n                ns_uselongblock = 0;\n\n                if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n                    ns_attacks[chn][1] = 0;\n                }\n                if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n                    ns_attacks[chn][2] = 0;\n                }\n                if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n                    ns_attacks[chn][3] = 0;\n                }\n            }\n            if (chn < 2) {\n                uselongblock[chn] = ns_uselongblock;\n            } else {\n                if (ns_uselongblock == 0) {\n                    uselongblock[0] = uselongblock[1] = 0;\n                }\n            }\n\n            /*\n             * there is a one granule delay. Copy maskings computed last call\n             * into masking_ratio to return to calling program.\n             */\n            energy[chn] = gfc.tot_ener[chn];\n        }\n    }\n\n    function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n        if (sblock == 0) {\n            for (var b = 0; b < gfc.npart_s; b++) {\n                gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n                gfc.nb_s1[chn][b] = 0;\n            }\n        }\n    }\n\n    function vbrpsy_skip_masking_l(gfc, chn) {\n        for (var b = 0; b < gfc.npart_l; b++) {\n            gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n            gfc.nb_1[chn][b] = 0;\n        }\n    }\n\n    function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n        var last_tab_entry = tab.length - 1;\n        var b = 0;\n        var a = avg[b] + avg[b + 1];\n        assert(a >= 0);\n        if (a > 0.0) {\n            var m = max[b];\n            if (m < max[b + 1])\n                m = max[b + 1];\n            assert((gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n            a = 20.0 * (m * 2.0 - a)\n                / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n            var k = 0 | a;\n            if (k > last_tab_entry)\n                k = last_tab_entry;\n            mask_idx[b] = k;\n        } else {\n            mask_idx[b] = 0;\n        }\n\n        for (b = 1; b < gfc.npart_s - 1; b++) {\n            a = avg[b - 1] + avg[b] + avg[b + 1];\n            assert(b + 1 < gfc.npart_s);\n            assert(a >= 0);\n            if (a > 0.0) {\n                var m = max[b - 1];\n                if (m < max[b])\n                    m = max[b];\n                if (m < max[b + 1])\n                    m = max[b + 1];\n                assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n                a = 20.0\n                    * (m * 3.0 - a)\n                    / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b]\n                    + gfc.numlines_s[b + 1] - 1));\n                var k = 0 | a;\n                if (k > last_tab_entry)\n                    k = last_tab_entry;\n                mask_idx[b] = k;\n            } else {\n                mask_idx[b] = 0;\n            }\n        }\n        assert(b > 0);\n        assert(b == gfc.npart_s - 1);\n\n        a = avg[b - 1] + avg[b];\n        assert(a >= 0);\n        if (a > 0.0) {\n            var m = max[b - 1];\n            if (m < max[b])\n                m = max[b];\n            assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1) > 0);\n            a = 20.0 * (m * 2.0 - a)\n                / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n            var k = 0 | a;\n            if (k > last_tab_entry)\n                k = last_tab_entry;\n            mask_idx[b] = k;\n        } else {\n            mask_idx[b] = 0;\n        }\n        assert(b == (gfc.npart_s - 1));\n    }\n\n    function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n        var gfc = gfp.internal_flags;\n        var max = new float[Encoder.CBANDS], avg = new_float(Encoder.CBANDS);\n        var i, j, b;\n        var mask_idx_s = new int[Encoder.CBANDS];\n\n        for (b = j = 0; b < gfc.npart_s; ++b) {\n            var ebb = 0, m = 0;\n            var n = gfc.numlines_s[b];\n            for (i = 0; i < n; ++i, ++j) {\n                var el = fftenergy_s[sblock][j];\n                ebb += el;\n                if (m < el)\n                    m = el;\n            }\n            eb[b] = ebb;\n            assert(ebb >= 0);\n            max[b] = m;\n            assert(n > 0);\n            avg[b] = ebb / n;\n            assert(avg[b] >= 0);\n        }\n        assert(b == gfc.npart_s);\n        assert(j == 129);\n        for (; b < Encoder.CBANDS; ++b) {\n            max[b] = 0;\n            avg[b] = 0;\n        }\n        psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n        for (j = b = 0; b < gfc.npart_s; b++) {\n            var kk = gfc.s3ind_s[b][0];\n            var last = gfc.s3ind_s[b][1];\n            var dd, dd_n;\n            var x, ecb, avg_mask;\n            dd = mask_idx_s[kk];\n            dd_n = 1;\n            ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n            ++j;\n            ++kk;\n            while (kk <= last) {\n                dd += mask_idx_s[kk];\n                dd_n += 1;\n                x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n                ecb = vbrpsy_mask_add(ecb, x, kk - b);\n                ++j;\n                ++kk;\n            }\n            dd = (1 + 2 * dd) / (2 * dd_n);\n            avg_mask = tab[dd] * 0.5;\n            ecb *= avg_mask;\n            thr[b] = ecb;\n            gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n            gfc.nb_s1[chn][b] = ecb;\n            {\n                /*\n                 * if THR exceeds EB, the quantization routines will take the\n                 * difference from other bands. in case of strong tonal samples\n                 * (tonaltest.wav) this leads to heavy distortions. that's why\n                 * we limit THR here.\n                 */\n                x = max[b];\n                x *= gfc.minval_s[b];\n                x *= avg_mask;\n                if (thr[b] > x) {\n                    thr[b] = x;\n                }\n            }\n            if (gfc.masking_lower > 1) {\n                thr[b] *= gfc.masking_lower;\n            }\n            if (thr[b] > eb[b]) {\n                thr[b] = eb[b];\n            }\n            if (gfc.masking_lower < 1) {\n                thr[b] *= gfc.masking_lower;\n            }\n\n            assert(thr[b] >= 0);\n        }\n        for (; b < Encoder.CBANDS; ++b) {\n            eb[b] = 0;\n            thr[b] = 0;\n        }\n    }\n\n    function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n        var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n        var mask_idx_l = new_int(Encoder.CBANDS + 2);\n        var b;\n\n        /*********************************************************************\n         * Calculate the energy and the tonality of each partition.\n         *********************************************************************/\n        calc_energy(gfc, fftenergy, eb_l, max, avg);\n        calc_mask_index_l(gfc, max, avg, mask_idx_l);\n\n        /*********************************************************************\n         * convolve the partitioned energy and unpredictability with the\n         * spreading function, s3_l[b][k]\n         ********************************************************************/\n        var k = 0;\n        for (b = 0; b < gfc.npart_l; b++) {\n            var x, ecb, avg_mask, t;\n            /* convolve the partitioned energy with the spreading function */\n            var kk = gfc.s3ind[b][0];\n            var last = gfc.s3ind[b][1];\n            var dd = 0, dd_n = 0;\n            dd = mask_idx_l[kk];\n            dd_n += 1;\n            ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n            ++k;\n            ++kk;\n            while (kk <= last) {\n                dd += mask_idx_l[kk];\n                dd_n += 1;\n                x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n                t = vbrpsy_mask_add(ecb, x, kk - b);\n                ecb = t;\n                ++k;\n                ++kk;\n            }\n            dd = (1 + 2 * dd) / (2 * dd_n);\n            avg_mask = tab[dd] * 0.5;\n            ecb *= avg_mask;\n\n            /**** long block pre-echo control ****/\n            /**\n             * <PRE>\n             * dont use long block pre-echo control if previous granule was\n             * a short block.  This is to avoid the situation:\n             * frame0:  quiet (very low masking)\n             * frame1:  surge  (triggers short blocks)\n             * frame2:  regular frame.  looks like pre-echo when compared to\n             *          frame0, but all pre-echo was in frame1.\n             * </PRE>\n             */\n            /*\n             * chn=0,1 L and R channels chn=2,3 S and M channels.\n             */\n            if (gfc.blocktype_old[chn & 0x01] == Encoder.SHORT_TYPE) {\n                var ecb_limit = rpelev * gfc.nb_1[chn][b];\n                if (ecb_limit > 0) {\n                    thr[b] = Math.min(ecb, ecb_limit);\n                } else {\n                    /**\n                     * <PRE>\n                     * Robert 071209:\n                     * Because we don't calculate long block psy when we know a granule\n                     * should be of short blocks, we don't have any clue how the granule\n                     * before would have looked like as a long block. So we have to guess\n                     * a little bit for this END_TYPE block.\n                     * Most of the time we get away with this sloppyness. (fingers crossed :)\n                     * The speed increase is worth it.\n                     * </PRE>\n                     */\n                    thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n                }\n            } else {\n                var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n                var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n                var ecb_limit;\n                if (ecb_limit_2 <= 0) {\n                    ecb_limit_2 = ecb;\n                }\n                if (ecb_limit_1 <= 0) {\n                    ecb_limit_1 = ecb;\n                }\n                if (gfc.blocktype_old[chn & 0x01] == Encoder.NORM_TYPE) {\n                    ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n                } else {\n                    ecb_limit = ecb_limit_1;\n                }\n                thr[b] = Math.min(ecb, ecb_limit);\n            }\n            gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n            gfc.nb_1[chn][b] = ecb;\n            {\n                /*\n                 * if THR exceeds EB, the quantization routines will take the\n                 * difference from other bands. in case of strong tonal samples\n                 * (tonaltest.wav) this leads to heavy distortions. that's why\n                 * we limit THR here.\n                 */\n                x = max[b];\n                x *= gfc.minval_l[b];\n                x *= avg_mask;\n                if (thr[b] > x) {\n                    thr[b] = x;\n                }\n            }\n            if (gfc.masking_lower > 1) {\n                thr[b] *= gfc.masking_lower;\n            }\n            if (thr[b] > eb_l[b]) {\n                thr[b] = eb_l[b];\n            }\n            if (gfc.masking_lower < 1) {\n                thr[b] *= gfc.masking_lower;\n            }\n            assert(thr[b] >= 0);\n        }\n        for (; b < Encoder.CBANDS; ++b) {\n            eb_l[b] = 0;\n            thr[b] = 0;\n        }\n    }\n\n    function vbrpsy_compute_block_type(gfp, uselongblock) {\n        var gfc = gfp.internal_flags;\n\n        if (gfp.short_blocks == ShortBlock.short_block_coupled\n                /* force both channels to use the same block type */\n                /* this is necessary if the frame is to be encoded in ms_stereo. */\n                /* But even without ms_stereo, FhG does this */\n            && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n            uselongblock[0] = uselongblock[1] = 0;\n\n        for (var chn = 0; chn < gfc.channels_out; chn++) {\n            /* disable short blocks */\n            if (gfp.short_blocks == ShortBlock.short_block_dispensed) {\n                uselongblock[chn] = 1;\n            }\n            if (gfp.short_blocks == ShortBlock.short_block_forced) {\n                uselongblock[chn] = 0;\n            }\n        }\n    }\n\n    function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n        var gfc = gfp.internal_flags;\n\n        /*\n         * update the blocktype of the previous granule, since it depends on\n         * what happend in this granule\n         */\n        for (var chn = 0; chn < gfc.channels_out; chn++) {\n            var blocktype = Encoder.NORM_TYPE;\n            /* disable short blocks */\n\n            if (uselongblock[chn] != 0) {\n                /* no attack : use long blocks */\n                assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n                if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n                    blocktype = Encoder.STOP_TYPE;\n            } else {\n                /* attack : use short blocks */\n                blocktype = Encoder.SHORT_TYPE;\n                if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n                    gfc.blocktype_old[chn] = Encoder.START_TYPE;\n                }\n                if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n                    gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n            }\n\n            blocktype_d[chn] = gfc.blocktype_old[chn];\n            // value returned to calling program\n            gfc.blocktype_old[chn] = blocktype;\n            // save for next call to l3psy_anal\n        }\n    }\n\n    /**\n     * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n     */\n    function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n        var msfix2 = msfix * 2;\n        var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n        var rside, rmid;\n        for (var b = 0; b < n; ++b) {\n            var ebM = eb[2][b];\n            var ebS = eb[3][b];\n            var thmL = thr[0][b];\n            var thmR = thr[1][b];\n            var thmM = thr[2][b];\n            var thmS = thr[3][b];\n\n            /* use this fix if L & R masking differs by 2db or less */\n            if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n                var mld_m = cb_mld[b] * ebS;\n                var mld_s = cb_mld[b] * ebM;\n                rmid = Math.max(thmM, Math.min(thmS, mld_m));\n                rside = Math.max(thmS, Math.min(thmM, mld_s));\n            } else {\n                rmid = thmM;\n                rside = thmS;\n            }\n            if (msfix > 0) {\n                /***************************************************************/\n                /* Adjust M/S maskings if user set \"msfix\" */\n                /***************************************************************/\n                /* Naoki Shibata 2000 */\n                var thmLR, thmMS;\n                var ath = ath_cb[b] * athlower;\n                thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n                thmM = Math.max(rmid, ath);\n                thmS = Math.max(rside, ath);\n                thmMS = thmM + thmS;\n                if (thmMS > 0 && (thmLR * msfix2) < thmMS) {\n                    var f = thmLR * msfix2 / thmMS;\n                    thmM *= f;\n                    thmS *= f;\n                    assert(thmMS > 0);\n                }\n                rmid = Math.min(thmM, rmid);\n                rside = Math.min(thmS, rside);\n            }\n            if (rmid > ebM) {\n                rmid = ebM;\n            }\n            if (rside > ebS) {\n                rside = ebS;\n            }\n            thr[2][b] = rmid;\n            thr[3][b] = rside;\n        }\n    }\n\n    this.L3psycho_anal_vbr = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n        var gfc = gfp.internal_flags;\n\n        /* fft and energy calculation */\n        var wsamp_l;\n        var wsamp_s;\n        var fftenergy = new_float(Encoder.HBLKSIZE);\n        var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n        var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n        var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n        var eb = new_float_n([4, Encoder.CBANDS]), thr = new_float_n([4, Encoder.CBANDS]);\n        var sub_short_factor = new_float_n([4, 3]);\n        var pcfact = 0.6;\n\n        /* block type */\n        var ns_attacks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],\n            [0, 0, 0, 0]];\n        var uselongblock = new_int(2);\n\n        /* usual variables like loop indices, etc.. */\n\n        /* chn=2 and 3 = Mid and Side channels */\n        var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4\n            : gfc.channels_out;\n\n        vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio,\n            masking_MS_ratio, energy, sub_short_factor, ns_attacks,\n            uselongblock);\n\n        vbrpsy_compute_block_type(gfp, uselongblock);\n\n        /* LONG BLOCK CASE */\n        {\n            for (var chn = 0; chn < n_chn_psy; chn++) {\n                var ch01 = chn & 0x01;\n                wsamp_l = wsamp_L;\n                vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out,\n                    fftenergy, wsamp_l, ch01);\n\n                vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn,\n                    fftenergy);\n\n                if (uselongblock[ch01] != 0) {\n                    vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn],\n                        chn);\n                } else {\n                    vbrpsy_skip_masking_l(gfc, chn);\n                }\n            }\n            if ((uselongblock[0] + uselongblock[1]) == 2) {\n                /* M/S channel */\n                if (gfp.mode == MPEGMode.JOINT_STEREO) {\n                    vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l,\n                        gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust,\n                        gfp.msfix, gfc.npart_l);\n                }\n            }\n            /* TODO: apply adaptive ATH masking here ?? */\n            for (var chn = 0; chn < n_chn_psy; chn++) {\n                var ch01 = chn & 0x01;\n                if (uselongblock[ch01] != 0) {\n                    convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n                }\n            }\n        }\n\n        /* SHORT BLOCKS CASE */\n        {\n            for (var sblock = 0; sblock < 3; sblock++) {\n                for (var chn = 0; chn < n_chn_psy; ++chn) {\n                    var ch01 = chn & 0x01;\n\n                    if (uselongblock[ch01] != 0) {\n                        vbrpsy_skip_masking_s(gfc, chn, sblock);\n                    } else {\n                        /* compute masking thresholds for short blocks */\n                        wsamp_s = wsamp_S;\n                        vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock,\n                            fftenergy_s, wsamp_s, ch01);\n                        vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn],\n                            thr[chn], chn, sblock);\n                    }\n                }\n                if ((uselongblock[0] + uselongblock[1]) == 0) {\n                    /* M/S channel */\n                    if (gfp.mode == MPEGMode.JOINT_STEREO) {\n                        vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s,\n                            gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust,\n                            gfp.msfix, gfc.npart_s);\n                    }\n                    /* L/R channel */\n                }\n                /* TODO: apply adaptive ATH masking here ?? */\n                for (var chn = 0; chn < n_chn_psy; ++chn) {\n                    var ch01 = chn & 0x01;\n                    if (0 == uselongblock[ch01]) {\n                        convert_partition2scalefac_s(gfc, eb[chn], thr[chn],\n                            chn, sblock);\n                    }\n                }\n            }\n\n            /**** short block pre-echo control ****/\n            for (var chn = 0; chn < n_chn_psy; chn++) {\n                var ch01 = chn & 0x01;\n\n                if (uselongblock[ch01] != 0) {\n                    continue;\n                }\n                for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n                    var new_thmm = new_float(3);\n                    for (var sblock = 0; sblock < 3; sblock++) {\n                        var thmm = gfc.thm[chn].s[sb][sblock];\n                        thmm *= NS_PREECHO_ATT0;\n\n                        if (ns_attacks[chn][sblock] >= 2\n                            || ns_attacks[chn][sblock + 1] == 1) {\n                            var idx = (sblock != 0) ? sblock - 1 : 2;\n                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                                NS_PREECHO_ATT1 * pcfact);\n                            thmm = Math.min(thmm, p);\n                        } else if (ns_attacks[chn][sblock] == 1) {\n                            var idx = (sblock != 0) ? sblock - 1 : 2;\n                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                                NS_PREECHO_ATT2 * pcfact);\n                            thmm = Math.min(thmm, p);\n                        } else if ((sblock != 0 && ns_attacks[chn][sblock - 1] == 3)\n                            || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n                            var idx = (sblock != 2) ? sblock + 1 : 0;\n                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n                                NS_PREECHO_ATT2 * pcfact);\n                            thmm = Math.min(thmm, p);\n                        }\n\n                        /* pulse like signal detection for fatboy.wav and so on */\n                        thmm *= sub_short_factor[chn][sblock];\n\n                        new_thmm[sblock] = thmm;\n                    }\n                    for (var sblock = 0; sblock < 3; sblock++) {\n                        gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n                    }\n                }\n            }\n        }\n        for (var chn = 0; chn < n_chn_psy; chn++) {\n            gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n        }\n\n        /***************************************************************\n         * determine final block type\n         ***************************************************************/\n        vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n\n        /*********************************************************************\n         * compute the value of PE to return ... no delay and advance\n         *********************************************************************/\n        for (var chn = 0; chn < n_chn_psy; chn++) {\n            var ppe;\n            var ppePos;\n            var type;\n            var mr;\n\n            if (chn > 1) {\n                ppe = percep_MS_entropy;\n                ppePos = -2;\n                type = Encoder.NORM_TYPE;\n                if (blocktype_d[0] == Encoder.SHORT_TYPE\n                    || blocktype_d[1] == Encoder.SHORT_TYPE)\n                    type = Encoder.SHORT_TYPE;\n                mr = masking_MS_ratio[gr_out][chn - 2];\n            } else {\n                ppe = percep_entropy;\n                ppePos = 0;\n                type = blocktype_d[chn];\n                mr = masking_ratio[gr_out][chn];\n            }\n\n            if (type == Encoder.SHORT_TYPE) {\n                ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n            } else {\n                ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n            }\n\n            if (gfp.analysis) {\n                gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n            }\n        }\n        return 0;\n    }\n\n    function s3_func_x(bark, hf_slope) {\n        var tempx = bark, tempy;\n\n        if (tempx >= 0) {\n            tempy = -tempx * 27;\n        } else {\n            tempy = tempx * hf_slope;\n        }\n        if (tempy <= -72.0) {\n            return 0;\n        }\n        return Math.exp(tempy * LN_TO_LOG10);\n    }\n\n    function norm_s3_func_x(hf_slope) {\n        var lim_a = 0, lim_b = 0;\n        {\n            var x = 0, l, h;\n            for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n                ;\n            l = x;\n            h = 0;\n            while (Math.abs(h - l) > 1e-12) {\n                x = (h + l) / 2;\n                if (s3_func_x(x, hf_slope) > 0) {\n                    h = x;\n                } else {\n                    l = x;\n                }\n            }\n            lim_a = l;\n        }\n        {\n            var x = 0, l, h;\n            for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n                ;\n            l = 0;\n            h = x;\n            while (Math.abs(h - l) > 1e-12) {\n                x = (h + l) / 2;\n                if (s3_func_x(x, hf_slope) > 0) {\n                    l = x;\n                } else {\n                    h = x;\n                }\n            }\n            lim_b = h;\n        }\n        {\n            var sum = 0;\n            var m = 1000;\n            var i;\n            for (i = 0; i <= m; ++i) {\n                var x = lim_a + i * (lim_b - lim_a) / m;\n                var y = s3_func_x(x, hf_slope);\n                sum += y;\n            }\n            {\n                var norm = (m + 1) / (sum * (lim_b - lim_a));\n                /* printf( \"norm = %lf\\n\",norm); */\n                return norm;\n            }\n        }\n    }\n\n    /**\n     *   The spreading function.  Values returned in units of energy\n     */\n    function s3_func(bark) {\n        var tempx, x, tempy, temp;\n        tempx = bark;\n        if (tempx >= 0)\n            tempx *= 3;\n        else\n            tempx *= 1.5;\n\n        if (tempx >= 0.5 && tempx <= 2.5) {\n            temp = tempx - 0.5;\n            x = 8.0 * (temp * temp - 2.0 * temp);\n        } else\n            x = 0.0;\n        tempx += 0.474;\n        tempy = 15.811389 + 7.5 * tempx - 17.5\n            * Math.sqrt(1.0 + tempx * tempx);\n\n        if (tempy <= -60.0)\n            return 0.0;\n\n        tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n\n        /**\n         * <PRE>\n         * Normalization.  The spreading function should be normalized so that:\n         * +inf\n         * /\n         * |  s3 [ bark ]  d(bark)   =  1\n         * /\n         * -inf\n         * </PRE>\n         */\n        tempx /= .6609193;\n        return tempx;\n    }\n\n    /**\n     * see for example \"Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7\n     */\n    function freq2bark(freq) {\n        /* input: freq in hz output: barks */\n        if (freq < 0)\n            freq = 0;\n        freq = freq * 0.001;\n        return 13.0 * Math.atan(.76 * freq) + 3.5\n            * Math.atan(freq * freq / (7.5 * 7.5));\n    }\n\n    function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n        var b_frq = new_float(Encoder.CBANDS + 1);\n        var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n        var partition = new_int(Encoder.HBLKSIZE);\n        var i;\n        sfreq /= blksize;\n        var j = 0;\n        var ni = 0;\n        /* compute numlines, the number of spectral lines in each partition band */\n        /* each partition band should be about DELBARK wide. */\n        for (i = 0; i < Encoder.CBANDS; i++) {\n            var bark1;\n            var j2;\n            bark1 = freq2bark(sfreq * j);\n\n            b_frq[i] = sfreq * j;\n\n            for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK\n            && j2 <= blksize / 2; j2++)\n                ;\n\n            numlines[i] = j2 - j;\n            ni = i + 1;\n\n            while (j < j2) {\n                assert(j < Encoder.HBLKSIZE);\n                partition[j++] = i;\n            }\n            if (j > blksize / 2) {\n                j = blksize / 2;\n                ++i;\n                break;\n            }\n        }\n        assert(i < Encoder.CBANDS);\n        b_frq[i] = sfreq * j;\n\n        for (var sfb = 0; sfb < sbmax; sfb++) {\n            var i1, i2, start, end;\n            var arg;\n            start = scalepos[sfb];\n            end = scalepos[sfb + 1];\n\n            i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));\n            if (i1 < 0)\n                i1 = 0;\n            i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));\n\n            if (i2 > blksize / 2)\n                i2 = blksize / 2;\n\n            bm[sfb] = (partition[i1] + partition[i2]) / 2;\n            bo[sfb] = partition[i2];\n            var f_tmp = sample_freq_frac * end;\n            /*\n             * calculate how much of this band belongs to current scalefactor\n             * band\n             */\n            bo_w[sfb] = (f_tmp - b_frq[bo[sfb]])\n                / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n            if (bo_w[sfb] < 0) {\n                bo_w[sfb] = 0;\n            } else {\n                if (bo_w[sfb] > 1) {\n                    bo_w[sfb] = 1;\n                }\n            }\n            /* setup stereo demasking thresholds */\n            /* formula reverse enginerred from plot in paper */\n            arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n            arg = ( Math.min(arg, 15.5) / 15.5);\n\n            mld[sfb] = Math.pow(10.0,\n                1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n        }\n\n        /* compute bark values of each critical band */\n        j = 0;\n        for (var k = 0; k < ni; k++) {\n            var w = numlines[k];\n            var bark1, bark2;\n\n            bark1 = freq2bark(sfreq * (j));\n            bark2 = freq2bark(sfreq * (j + w - 1));\n            bval[k] = .5 * (bark1 + bark2);\n\n            bark1 = freq2bark(sfreq * (j - .5));\n            bark2 = freq2bark(sfreq * (j + w - .5));\n            bval_width[k] = bark2 - bark1;\n            j += w;\n        }\n\n        return ni;\n    }\n\n    function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n        var s3 = new_float_n([Encoder.CBANDS, Encoder.CBANDS]);\n        /*\n         * The s3 array is not linear in the bark scale.\n         *\n         * bval[x] should be used to get the bark value.\n         */\n        var j;\n        var numberOfNoneZero = 0;\n\n        /**\n         * <PRE>\n         * s[i][j], the value of the spreading function,\n         * centered at band j (masker), for band i (maskee)\n         *\n         * i.e.: sum over j to spread into signal barkval=i\n         * NOTE: i and j are used opposite as in the ISO docs\n         * </PRE>\n         */\n        if (use_old_s3) {\n            for (var i = 0; i < npart; i++) {\n                for (j = 0; j < npart; j++) {\n                    var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n                    s3[i][j] = v * norm[i];\n                }\n            }\n        } else {\n            for (j = 0; j < npart; j++) {\n                var hf_slope = 15 + Math.min(21 / bval[j], 12);\n                var s3_x_norm = norm_s3_func_x(hf_slope);\n                for (var i = 0; i < npart; i++) {\n                    var v = s3_x_norm\n                        * s3_func_x(bval[i] - bval[j], hf_slope)\n                        * bval_width[j];\n                    s3[i][j] = v * norm[i];\n                }\n            }\n        }\n        for (var i = 0; i < npart; i++) {\n            for (j = 0; j < npart; j++) {\n                if (s3[i][j] > 0.0)\n                    break;\n            }\n            s3ind[i][0] = j;\n\n            for (j = npart - 1; j > 0; j--) {\n                if (s3[i][j] > 0.0)\n                    break;\n            }\n            s3ind[i][1] = j;\n            numberOfNoneZero += (s3ind[i][1] - s3ind[i][0] + 1);\n        }\n\n        var p = new_float(numberOfNoneZero);\n        var k = 0;\n        for (var i = 0; i < npart; i++)\n            for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n                p[k++] = s3[i][j];\n\n        return p;\n    }\n\n    function stereo_demask(f) {\n        /* setup stereo demasking thresholds */\n        /* formula reverse enginerred from plot in paper */\n        var arg = freq2bark(f);\n        arg = (Math.min(arg, 15.5) / 15.5);\n\n        return Math.pow(10.0,\n            1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n    }\n\n    /**\n     * NOTE: the bitrate reduction from the inter-channel masking effect is low\n     * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr\n     * does not use this feature. (Robert 071216)\n     */\n    this.psymodel_init = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var i;\n        var useOldS3 = true;\n        var bvl_a = 13, bvl_b = 24;\n        var snr_l_a = 0, snr_l_b = 0;\n        var snr_s_a = -8.25, snr_s_b = -4.5;\n        var bval = new_float(Encoder.CBANDS);\n        var bval_width = new_float(Encoder.CBANDS);\n        var norm = new_float(Encoder.CBANDS);\n        var sfreq = gfp.out_samplerate;\n\n        switch (gfp.experimentalZ) {\n            default:\n            case 0:\n                useOldS3 = true;\n                break;\n            case 1:\n                useOldS3 = (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) ? false\n                    : true;\n                break;\n            case 2:\n                useOldS3 = false;\n                break;\n            case 3:\n                bvl_a = 8;\n                snr_l_a = -1.75;\n                snr_l_b = -0.0125;\n                snr_s_a = -8.25;\n                snr_s_b = -2.25;\n                break;\n        }\n        gfc.ms_ener_ratio_old = .25;\n        gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n        // the vbr header is long blocks\n\n        for (i = 0; i < 4; ++i) {\n            for (var j = 0; j < Encoder.CBANDS; ++j) {\n                gfc.nb_1[i][j] = 1e20;\n                gfc.nb_2[i][j] = 1e20;\n                gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;\n            }\n            for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n                gfc.en[i].l[sb] = 1e20;\n                gfc.thm[i].l[sb] = 1e20;\n            }\n            for (var j = 0; j < 3; ++j) {\n                for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n                    gfc.en[i].s[sb][j] = 1e20;\n                    gfc.thm[i].s[sb][j] = 1e20;\n                }\n                gfc.nsPsy.lastAttacks[i] = 0;\n            }\n            for (var j = 0; j < 9; j++)\n                gfc.nsPsy.last_en_subshort[i][j] = 10.;\n        }\n\n        /* init. for loudness approx. -jd 2001 mar 27 */\n        gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;\n\n        /*************************************************************************\n         * now compute the psychoacoustic model specific constants\n         ************************************************************************/\n        /* compute numlines, bo, bm, bval, bval_width, mld */\n\n        gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval,\n            bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq,\n            Encoder.BLKSIZE, gfc.scalefac_band.l, Encoder.BLKSIZE\n            / (2.0 * 576), Encoder.SBMAX_l);\n        assert(gfc.npart_l < Encoder.CBANDS);\n        /* compute the spreading function */\n        for (i = 0; i < gfc.npart_l; i++) {\n            var snr = snr_l_a;\n            if (bval[i] >= bvl_a) {\n                snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a\n                    * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n            }\n            norm[i] = Math.pow(10.0, snr / 10.0);\n            if (gfc.numlines_l[i] > 0) {\n                gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];\n            } else {\n                gfc.rnumlines_l[i] = 0;\n            }\n        }\n        gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width,\n            norm, useOldS3);\n\n        /* compute long block specific values, ATH and MINVAL */\n        var j = 0;\n        for (i = 0; i < gfc.npart_l; i++) {\n            var x;\n\n            /* ATH */\n            x = Float.MAX_VALUE;\n            for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n                var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE);\n                var level;\n                /*\n                 * ATH below 100 Hz constant, not further climbing\n                 */\n                level = this.ATHformula(freq * 1000, gfp) - 20;\n                // scale to FFT units; returned value is in dB\n                level = Math.pow(10., 0.1 * level);\n                // convert from dB . energy\n                level *= gfc.numlines_l[i];\n                if (x > level)\n                    x = level;\n            }\n            gfc.ATH.cb_l[i] = x;\n\n            /*\n             * MINVAL. For low freq, the strength of the masking is limited by\n             * minval this is an ISO MPEG1 thing, dont know if it is really\n             * needed\n             */\n            /*\n             * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax\n             * and lead-voice samples, but introduces some 3 kbps bit bloat too.\n             * TODO: Further refinement of the shape of this hack.\n             */\n            x = -20 + bval[i] * 20 / 10;\n            if (x > 6) {\n                x = 100;\n            }\n            if (x < -15) {\n                x = -15;\n            }\n            x -= 8.;\n            gfc.minval_l[i] = (Math.pow(10.0, x / 10.) * gfc.numlines_l[i]);\n        }\n\n        /************************************************************************\n         * do the same things for short blocks\n         ************************************************************************/\n        gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval,\n            bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq,\n            Encoder.BLKSIZE_s, gfc.scalefac_band.s, Encoder.BLKSIZE_s\n            / (2.0 * 192), Encoder.SBMAX_s);\n        assert(gfc.npart_s < Encoder.CBANDS);\n\n        /* SNR formula. short block is normalized by SNR. is it still right ? */\n        j = 0;\n        for (i = 0; i < gfc.npart_s; i++) {\n            var x;\n            var snr = snr_s_a;\n            if (bval[i] >= bvl_a) {\n                snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a\n                    * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n            }\n            norm[i] = Math.pow(10.0, snr / 10.0);\n\n            /* ATH */\n            x = Float.MAX_VALUE;\n            for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n                var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE_s);\n                var level;\n                /* freq = Min(.1,freq); */\n                /*\n                 * ATH below 100 Hz constant, not\n                 * further climbing\n                 */\n                level = this.ATHformula(freq * 1000, gfp) - 20;\n                // scale to FFT units; returned value is in dB\n                level = Math.pow(10., 0.1 * level);\n                // convert from dB . energy\n                level *= gfc.numlines_s[i];\n                if (x > level)\n                    x = level;\n            }\n            gfc.ATH.cb_s[i] = x;\n\n            /*\n             * MINVAL. For low freq, the strength of the masking is limited by\n             * minval this is an ISO MPEG1 thing, dont know if it is really\n             * needed\n             */\n            x = (-7.0 + bval[i] * 7.0 / 12.0);\n            if (bval[i] > 12) {\n                x *= 1 + Math.log(1 + x) * 3.1;\n            }\n            if (bval[i] < 12) {\n                x *= 1 + Math.log(1 - x) * 2.3;\n            }\n            if (x < -15) {\n                x = -15;\n            }\n            x -= 8;\n            gfc.minval_s[i] = Math.pow(10.0, x / 10)\n                * gfc.numlines_s[i];\n        }\n\n        gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width,\n            norm, useOldS3);\n\n        init_mask_add_max_values();\n        fft.init_fft(gfc);\n\n        /* setup temporal masking */\n        gfc.decay = Math.exp(-1.0 * LOG10\n            / (temporalmask_sustain_sec * sfreq / 192.0));\n\n        {\n            var msfix;\n            msfix = NS_MSFIX;\n            if ((gfp.exp_nspsytune & 2) != 0)\n                msfix = 1.0;\n            if (Math.abs(gfp.msfix) > 0.0)\n                msfix = gfp.msfix;\n            gfp.msfix = msfix;\n\n            /*\n             * spread only from npart_l bands. Normally, we use the spreading\n             * function to convolve from npart_l down to npart_l bands\n             */\n            for (var b = 0; b < gfc.npart_l; b++)\n                if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n                    gfc.s3ind[b][1] = gfc.npart_l - 1;\n        }\n\n        /*\n         * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB\n         * per second\n         */\n        var frame_duration = (576. * gfc.mode_gr / sfreq);\n        gfc.ATH.decay = Math.pow(10., -12. / 10. * frame_duration);\n        gfc.ATH.adjust = 0.01;\n        /* minimum, for leading low loudness */\n        gfc.ATH.adjustLimit = 1.0;\n        /* on lead, allow adjust up to maximum */\n\n        assert(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n        assert(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n\n        if (gfp.ATHtype != -1) {\n            /* compute equal loudness weights (eql_w) */\n            var freq;\n            var freq_inc = gfp.out_samplerate\n                / (Encoder.BLKSIZE);\n            var eql_balance = 0.0;\n            freq = 0.0;\n            for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n                /* convert ATH dB to relative power (not dB) */\n                /* to determine eql_w */\n                freq += freq_inc;\n                gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n                eql_balance += gfc.ATH.eql_w[i];\n            }\n            eql_balance = 1.0 / eql_balance;\n            for (i = Encoder.BLKSIZE / 2; --i >= 0;) { /* scale weights */\n                gfc.ATH.eql_w[i] *= eql_balance;\n            }\n        }\n        {\n            for (var b = j = 0; b < gfc.npart_s; ++b) {\n                for (i = 0; i < gfc.numlines_s[b]; ++i) {\n                    ++j;\n                }\n            }\n            assert(j == 129);\n            for (var b = j = 0; b < gfc.npart_l; ++b) {\n                for (i = 0; i < gfc.numlines_l[b]; ++i) {\n                    ++j;\n                }\n            }\n            assert(j == 513);\n        }\n        j = 0;\n        for (i = 0; i < gfc.npart_l; i++) {\n            var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * Encoder.BLKSIZE);\n            gfc.mld_cb_l[i] = stereo_demask(freq);\n            j += gfc.numlines_l[i];\n        }\n        for (; i < Encoder.CBANDS; ++i) {\n            gfc.mld_cb_l[i] = 1;\n        }\n        j = 0;\n        for (i = 0; i < gfc.npart_s; i++) {\n            var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * Encoder.BLKSIZE_s);\n            gfc.mld_cb_s[i] = stereo_demask(freq);\n            j += gfc.numlines_s[i];\n        }\n        for (; i < Encoder.CBANDS; ++i) {\n            gfc.mld_cb_s[i] = 1;\n        }\n        return 0;\n    }\n\n    /**\n     * Those ATH formulas are returning their minimum value for input = -1\n     */\n    function ATHformula_GB(f, value) {\n        /**\n         * <PRE>\n         *  from Painter & Spanias\n         *           modified by Gabriel Bouvigne to better fit the reality\n         *           ath =    3.640 * pow(f,-0.8)\n         *           - 6.800 * exp(-0.6*pow(f-3.4,2.0))\n         *           + 6.000 * exp(-0.15*pow(f-8.7,2.0))\n         *           + 0.6* 0.001 * pow(f,4.0);\n         *\n         *\n         *           In the past LAME was using the Painter &Spanias formula.\n         *           But we had some recurrent problems with HF content.\n         *           We measured real ATH values, and found the older formula\n         *           to be inaccurate in the higher part. So we made this new\n         *           formula and this solved most of HF problematic test cases.\n         *           The tradeoff is that in VBR mode it increases a lot the\n         *           bitrate.\n         * </PRE>\n         */\n\n        /*\n         * This curve can be adjusted according to the VBR scale: it adjusts\n         * from something close to Painter & Spanias on V9 up to Bouvigne's\n         * formula for V0. This way the VBR bitrate is more balanced according\n         * to the -V value.\n         */\n\n        // the following Hack allows to ask for the lowest value\n        if (f < -.3)\n            f = 3410;\n\n        // convert to khz\n        f /= 1000;\n        f = Math.max(0.1, f);\n        var ath = 3.640 * Math.pow(f, -0.8) - 6.800\n            * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000\n            * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0))\n            + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);\n        return ath;\n    }\n\n    this.ATHformula = function (f, gfp) {\n        var ath;\n        switch (gfp.ATHtype) {\n            case 0:\n                ath = ATHformula_GB(f, 9);\n                break;\n            case 1:\n                // over sensitive, should probably be removed\n                ath = ATHformula_GB(f, -1);\n                break;\n            case 2:\n                ath = ATHformula_GB(f, 0);\n                break;\n            case 3:\n                // modification of GB formula by Roel\n                ath = ATHformula_GB(f, 1) + 6;\n                break;\n            case 4:\n                ath = ATHformula_GB(f, gfp.ATHcurve);\n                break;\n            default:\n                ath = ATHformula_GB(f, 0);\n                break;\n        }\n        return ath;\n    }\n\n}\n\nmodule.exports = PsyModel;\n\n\n/***/ }),\n\n/***/ \"254c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.inherits = inherits;\nfunction inherits(parent, child) {\n\tvar props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar extended = Object.create(parent.prototype);\n\tfor (var p in props) {\n\t\textended[p] = props[p];\n\t}\n\textended.constructor = child;\n\tchild.prototype = extended;\n\treturn child;\n}\n\n/***/ }),\n\n/***/ \"2695\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GrInfo = __webpack_require__(\"f3b5\");\n\nfunction IIISideInfo() {\n    this.tt = [[null, null], [null, null]];\n    this.main_data_begin = 0;\n    this.private_bits = 0;\n    this.resvDrain_pre = 0;\n    this.resvDrain_post = 0;\n    this.scfsi = [new_int(4), new_int(4)];\n\n    for (var gr = 0; gr < 2; gr++) {\n        for (var ch = 0; ch < 2; ch++) {\n            this.tt[gr][ch] = new GrInfo();\n        }\n    }\n}\n\nmodule.exports = IIISideInfo;\n\n\n/***/ }),\n\n/***/ \"2ba4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(\"40d5\");\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n\n\n/***/ }),\n\n/***/ \"2d78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;\n\nvar _class = __webpack_require__(\"254c\");\n\nvar _options = __webpack_require__(\"316e\");\n\nvar options = _interopRequireWildcard(_options);\n\nvar _scanner = __webpack_require__(\"b7fe\");\n\nvar scanner = _interopRequireWildcard(_scanner);\n\nvar _parser = __webpack_require__(\"4128\");\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n\tConverts a string into tokens that represent linkable and non-linkable bits\n\t@method tokenize\n\t@param {String} str\n\t@return {Array} tokens\n*/\nvar tokenize = function tokenize(str) {\n\treturn parser.run(scanner.run(str));\n};\n\n/**\n\tReturns a list of linkable items in the given string.\n*/\nvar find = function find(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\tvar filtered = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tif (token.isLink && (!type || token.type === type)) {\n\t\t\tfiltered.push(token.toObject());\n\t\t}\n\t}\n\n\treturn filtered;\n};\n\n/**\n\tIs the given string valid linkable text of some sort\n\tNote that this does not trim the text for you.\n\n\tOptionally pass in a second `type` param, which is the type of link to test\n\tfor.\n\n\tFor example,\n\n\t\ttest(str, 'email');\n\n\tWill return `true` if str is a valid email.\n*/\nvar test = function test(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\treturn tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\n\n// Scanner and parser provide states and tokens for the lexicographic stage\n// (will be used to add additional link types)\nexports.find = find;\nexports.inherits = _class.inherits;\nexports.options = options;\nexports.parser = parser;\nexports.scanner = scanner;\nexports.test = test;\nexports.tokenize = tokenize;\n\n/***/ }),\n\n/***/ \"2f21\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *  ReplayGainAnalysis - analyzes input samples and give the recommended dB change\n *  Copyright (C) 2001 David Robinson and Glen Sawyer\n *  Improvements and optimizations added by Frank Klemm, and by Marcel Muller \n *\n *  This library is free software; you can redistribute it and/or\n *  modify it under the terms of the GNU Lesser General Public\n *  License as published by the Free Software Foundation; either\n *  version 2.1 of the License, or (at your option) any later version.\n *\n *  This library is distributed in the hope that it will be useful,\n *  but WITHOUT ANY WARRANTY; without even the implied warranty of\n *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n *  Lesser General Public License for more details.\n *\n *  You should have received a copy of the GNU Lesser General Public\n *  License along with this library; if not, write to the Free Software\n *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n *\n *  concept and filter values by David Robinson (David@Robinson.org)\n *    -- blame him if you think the idea is flawed\n *  original coding by Glen Sawyer (mp3gain@hotmail.com)\n *    -- blame him if you think this runs too slowly, or the coding is otherwise flawed\n *\n *  lots of code improvements by Frank Klemm ( http://www.uni-jena.de/~pfk/mpp/ )\n *    -- credit him for all the _good_ programming ;)\n *\n *\n *  For an explanation of the concepts and the basic algorithms involved, go to:\n *    http://www.replaygain.org/\n */\n\n/*\n *  Here's the deal. Call\n *\n *    InitGainAnalysis ( long samplefreq );\n *\n *  to initialize everything. Call\n *\n *    AnalyzeSamples ( var Float_t*  left_samples,\n *                     var Float_t*  right_samples,\n *                     size_t          num_samples,\n *                     int             num_channels );\n *\n *  as many times as you want, with as many or as few samples as you want.\n *  If mono, pass the sample buffer in through left_samples, leave\n *  right_samples NULL, and make sure num_channels = 1.\n *\n *    GetTitleGain()\n *\n *  will return the recommended dB level change for all samples analyzed\n *  SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis().\n *\n *    GetAlbumGain()\n *\n *  will return the recommended dB level change for all samples analyzed\n *  since InitGainAnalysis() was called and finalized with GetTitleGain().\n *\n *  Pseudo-code to process an album:\n *\n *    Float_t       l_samples [4096];\n *    Float_t       r_samples [4096];\n *    size_t        num_samples;\n *    unsigned int  num_songs;\n *    unsigned int  i;\n *\n *    InitGainAnalysis ( 44100 );\n *    for ( i = 1; i <= num_songs; i++ ) {\n *        while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 )\n *            AnalyzeSamples ( left_samples, right_samples, num_samples, 2 );\n *        fprintf (\"Recommended dB change for song %2d: %+6.2 dB\\n\", i, GetTitleGain() );\n *    }\n *    fprintf (\"Recommended dB change for whole album: %+6.2 dB\\n\", GetAlbumGain() );\n */\n\n/*\n *  So here's the main source of potential code confusion:\n *\n *  The filters applied to the incoming samples are IIR filters,\n *  meaning they rely on up to <filter order> number of previous samples\n *  AND up to <filter order> number of previous filtered samples.\n *\n *  I set up the AnalyzeSamples routine to minimize memory usage and interface\n *  complexity. The speed isn't compromised too much (I don't think), but the\n *  internal complexity is higher than it should be for such a relatively\n *  simple routine.\n *\n *  Optimization/clarity suggestions are welcome.\n */\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * Table entries per dB\n */\nGainAnalysis.STEPS_per_dB = 100.;\n/**\n * Table entries for 0...MAX_dB (normal max. values are 70...80 dB)\n */\nGainAnalysis.MAX_dB = 120.;\nGainAnalysis.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.GAIN_ANALYSIS_OK = 1;\nGainAnalysis.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.INIT_GAIN_ANALYSIS_OK = 1;\n\nGainAnalysis.YULE_ORDER = 10;\nGainAnalysis.MAX_ORDER = GainAnalysis.YULE_ORDER;\n\nGainAnalysis.MAX_SAMP_FREQ = 48000;\nGainAnalysis.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis.MAX_SAMPLES_PER_WINDOW = ((GainAnalysis.MAX_SAMP_FREQ * GainAnalysis.RMS_WINDOW_TIME_NUMERATOR) / GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR + 1);\n\nfunction GainAnalysis() {\n    /**\n     * calibration value for 89dB\n     */\n    var PINK_REF = 64.82;\n\n    var YULE_ORDER = GainAnalysis.YULE_ORDER;\n    /**\n     * percentile which is louder than the proposed level\n     */\n    var RMS_PERCENTILE = 0.95;\n    /**\n     * maximum allowed sample frequency [Hz]\n     */\n    var MAX_SAMP_FREQ = GainAnalysis.MAX_SAMP_FREQ;\n    var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis.RMS_WINDOW_TIME_NUMERATOR;\n    /**\n     * numerator / denominator = time slice size [s]\n     */\n    var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR;\n    /**\n     * max. Samples per Time slice\n     */\n    var MAX_SAMPLES_PER_WINDOW = GainAnalysis.MAX_SAMPLES_PER_WINDOW;\n\n\n    var ABYule = [\n        [0.03857599435200, -3.84664617118067, -0.02160367184185,\n            7.81501653005538, -0.00123395316851, -11.34170355132042,\n            -0.00009291677959, 13.05504219327545, -0.01655260341619,\n            -12.28759895145294, 0.02161526843274, 9.48293806319790,\n            -0.02074045215285, -5.87257861775999, 0.00594298065125,\n            2.75465861874613, 0.00306428023191, -0.86984376593551,\n            0.00012025322027, 0.13919314567432, 0.00288463683916],\n        [0.05418656406430, -3.47845948550071, -0.02911007808948,\n            6.36317777566148, -0.00848709379851, -8.54751527471874,\n            -0.00851165645469, 9.47693607801280, -0.00834990904936,\n            -8.81498681370155, 0.02245293253339, 6.85401540936998,\n            -0.02596338512915, -4.39470996079559, 0.01624864962975,\n            2.19611684890774, -0.00240879051584, -0.75104302451432,\n            0.00674613682247, 0.13149317958808, -0.00187763777362],\n        [0.15457299681924, -2.37898834973084, -0.09331049056315,\n            2.84868151156327, -0.06247880153653, -2.64577170229825,\n            0.02163541888798, 2.23697657451713, -0.05588393329856,\n            -1.67148153367602, 0.04781476674921, 1.00595954808547,\n            0.00222312597743, -0.45953458054983, 0.03174092540049,\n            0.16378164858596, -0.01390589421898, -0.05032077717131,\n            0.00651420667831, 0.02347897407020, -0.00881362733839],\n        [0.30296907319327, -1.61273165137247, -0.22613988682123,\n            1.07977492259970, -0.08587323730772, -0.25656257754070,\n            0.03282930172664, -0.16276719120440, -0.00915702933434,\n            -0.22638893773906, -0.02364141202522, 0.39120800788284,\n            -0.00584456039913, -0.22138138954925, 0.06276101321749,\n            0.04500235387352, -0.00000828086748, 0.02005851806501,\n            0.00205861885564, 0.00302439095741, -0.02950134983287],\n        [0.33642304856132, -1.49858979367799, -0.25572241425570,\n            0.87350271418188, -0.11828570177555, 0.12205022308084,\n            0.11921148675203, -0.80774944671438, -0.07834489609479,\n            0.47854794562326, -0.00469977914380, -0.12453458140019,\n            -0.00589500224440, -0.04067510197014, 0.05724228140351,\n            0.08333755284107, 0.00832043980773, -0.04237348025746,\n            -0.01635381384540, 0.02977207319925, -0.01760176568150],\n        [0.44915256608450, -0.62820619233671, -0.14351757464547,\n            0.29661783706366, -0.22784394429749, -0.37256372942400,\n            -0.01419140100551, 0.00213767857124, 0.04078262797139,\n            -0.42029820170918, -0.12398163381748, 0.22199650564824,\n            0.04097565135648, 0.00613424350682, 0.10478503600251,\n            0.06747620744683, -0.01863887810927, 0.05784820375801,\n            -0.03193428438915, 0.03222754072173, 0.00541907748707],\n        [0.56619470757641, -1.04800335126349, -0.75464456939302,\n            0.29156311971249, 0.16242137742230, -0.26806001042947,\n            0.16744243493672, 0.00819999645858, -0.18901604199609,\n            0.45054734505008, 0.30931782841830, -0.33032403314006,\n            -0.27562961986224, 0.06739368333110, 0.00647310677246,\n            -0.04784254229033, 0.08647503780351, 0.01639907836189,\n            -0.03788984554840, 0.01807364323573, -0.00588215443421],\n        [0.58100494960553, -0.51035327095184, -0.53174909058578,\n            -0.31863563325245, -0.14289799034253, -0.20256413484477,\n            0.17520704835522, 0.14728154134330, 0.02377945217615,\n            0.38952639978999, 0.15558449135573, -0.23313271880868,\n            -0.25344790059353, -0.05246019024463, 0.01628462406333,\n            -0.02505961724053, 0.06920467763959, 0.02442357316099,\n            -0.03721611395801, 0.01818801111503, -0.00749618797172],\n        [0.53648789255105, -0.25049871956020, -0.42163034350696,\n            -0.43193942311114, -0.00275953611929, -0.03424681017675,\n            0.04267842219415, -0.04678328784242, -0.10214864179676,\n            0.26408300200955, 0.14590772289388, 0.15113130533216,\n            -0.02459864859345, -0.17556493366449, -0.11202315195388,\n            -0.18823009262115, -0.04060034127000, 0.05477720428674,\n            0.04788665548180, 0.04704409688120, -0.02217936801134]];\n\n    var ABButter = [\n        [0.98621192462708, -1.97223372919527, -1.97242384925416,\n            0.97261396931306, 0.98621192462708],\n        [0.98500175787242, -1.96977855582618, -1.97000351574484,\n            0.97022847566350, 0.98500175787242],\n        [0.97938932735214, -1.95835380975398, -1.95877865470428,\n            0.95920349965459, 0.97938932735214],\n        [0.97531843204928, -1.95002759149878, -1.95063686409857,\n            0.95124613669835, 0.97531843204928],\n        [0.97316523498161, -1.94561023566527, -1.94633046996323,\n            0.94705070426118, 0.97316523498161],\n        [0.96454515552826, -1.92783286977036, -1.92909031105652,\n            0.93034775234268, 0.96454515552826],\n        [0.96009142950541, -1.91858953033784, -1.92018285901082,\n            0.92177618768381, 0.96009142950541],\n        [0.95856916599601, -1.91542108074780, -1.91713833199203,\n            0.91885558323625, 0.95856916599601],\n        [0.94597685600279, -1.88903307939452, -1.89195371200558,\n            0.89487434461664, 0.94597685600279]];\n\n\n    /**\n     * When calling this procedure, make sure that ip[-order] and op[-order]\n     * point to real data\n     */\n    //private void filterYule(final float[] input, int inputPos, float[] output,\n    //int outputPos, int nSamples, final float[] kernel) {\n    function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n\n        while ((nSamples--) != 0) {\n            /* 1e-10 is a hack to avoid slowdown because of denormals */\n            output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0]\n                - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n                * kernel[2] - output[outputPos - 2] * kernel[3]\n                + input[inputPos - 2] * kernel[4] - output[outputPos - 3]\n                * kernel[5] + input[inputPos - 3] * kernel[6]\n                - output[outputPos - 4] * kernel[7] + input[inputPos - 4]\n                * kernel[8] - output[outputPos - 5] * kernel[9]\n                + input[inputPos - 5] * kernel[10] - output[outputPos - 6]\n                * kernel[11] + input[inputPos - 6] * kernel[12]\n                - output[outputPos - 7] * kernel[13] + input[inputPos - 7]\n                * kernel[14] - output[outputPos - 8] * kernel[15]\n                + input[inputPos - 8] * kernel[16] - output[outputPos - 9]\n                * kernel[17] + input[inputPos - 9] * kernel[18]\n                - output[outputPos - 10] * kernel[19]\n                + input[inputPos - 10] * kernel[20];\n            ++outputPos;\n            ++inputPos;\n        }\n    }\n\n//private void filterButter(final float[] input, int inputPos,\n//    float[] output, int outputPos, int nSamples, final float[] kernel) {\n    function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n\n        while ((nSamples--) != 0) {\n            output[outputPos] = input[inputPos + 0] * kernel[0]\n                - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n                * kernel[2] - output[outputPos - 2] * kernel[3]\n                + input[inputPos - 2] * kernel[4];\n            ++outputPos;\n            ++inputPos;\n        }\n    }\n\n    /**\n     * @return INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if\n     *         not\n     */\n    function ResetSampleFrequency(rgData, samplefreq) {\n        /* zero out initial values */\n        for (var i = 0; i < MAX_ORDER; i++)\n            rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n        switch (0 | (samplefreq)) {\n            case 48000:\n                rgData.reqindex = 0;\n                break;\n            case 44100:\n                rgData.reqindex = 1;\n                break;\n            case 32000:\n                rgData.reqindex = 2;\n                break;\n            case 24000:\n                rgData.reqindex = 3;\n                break;\n            case 22050:\n                rgData.reqindex = 4;\n                break;\n            case 16000:\n                rgData.reqindex = 5;\n                break;\n            case 12000:\n                rgData.reqindex = 6;\n                break;\n            case 11025:\n                rgData.reqindex = 7;\n                break;\n            case 8000:\n                rgData.reqindex = 8;\n                break;\n            default:\n                return INIT_GAIN_ANALYSIS_ERROR;\n        }\n\n        rgData.sampleWindow = 0 | ((samplefreq * RMS_WINDOW_TIME_NUMERATOR\n            + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR);\n\n        rgData.lsum = 0.;\n        rgData.rsum = 0.;\n        rgData.totsamp = 0;\n\n        Arrays.ill(rgData.A, 0);\n\n        return INIT_GAIN_ANALYSIS_OK;\n    }\n\n    this.InitGainAnalysis = function (rgData, samplefreq) {\n        if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n            return INIT_GAIN_ANALYSIS_ERROR;\n        }\n\n        rgData.linpre = MAX_ORDER;\n        rgData.rinpre = MAX_ORDER;\n        rgData.lstep = MAX_ORDER;\n        rgData.rstep = MAX_ORDER;\n        rgData.lout = MAX_ORDER;\n        rgData.rout = MAX_ORDER;\n\n        Arrays.fill(rgData.B, 0);\n\n        return INIT_GAIN_ANALYSIS_OK;\n    };\n\n    /**\n     * square\n     */\n    function fsqr(d) {\n        return d * d;\n    }\n\n    this.AnalyzeSamples = function (rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples,\n                                    num_channels) {\n        var curleft;\n        var curleftBase;\n        var curright;\n        var currightBase;\n        var batchsamples;\n        var cursamples;\n        var cursamplepos;\n\n        if (num_samples == 0)\n            return GAIN_ANALYSIS_OK;\n\n        cursamplepos = 0;\n        batchsamples = num_samples;\n\n        switch (num_channels) {\n            case 1:\n                right_samples = left_samples;\n                right_samplesPos = left_samplesPos;\n                break;\n            case 2:\n                break;\n            default:\n                return GAIN_ANALYSIS_ERROR;\n        }\n\n        if (num_samples < MAX_ORDER) {\n            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n                MAX_ORDER, num_samples);\n            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n                MAX_ORDER, num_samples);\n        } else {\n            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n                MAX_ORDER, MAX_ORDER);\n            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n                MAX_ORDER, MAX_ORDER);\n        }\n\n        while (batchsamples > 0) {\n            cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow\n            - rgData.totsamp\n                : batchsamples;\n            if (cursamplepos < MAX_ORDER) {\n                curleft = rgData.linpre + cursamplepos;\n                curleftBase = rgData.linprebuf;\n                curright = rgData.rinpre + cursamplepos;\n                currightBase = rgData.rinprebuf;\n                if (cursamples > MAX_ORDER - cursamplepos)\n                    cursamples = MAX_ORDER - cursamplepos;\n            } else {\n                curleft = left_samplesPos + cursamplepos;\n                curleftBase = left_samples;\n                curright = right_samplesPos + cursamplepos;\n                currightBase = right_samples;\n            }\n\n            filterYule(curleftBase, curleft, rgData.lstepbuf, rgData.lstep\n                + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n            filterYule(currightBase, curright, rgData.rstepbuf, rgData.rstep\n                + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n\n            filterButter(rgData.lstepbuf, rgData.lstep + rgData.totsamp,\n                rgData.loutbuf, rgData.lout + rgData.totsamp, cursamples,\n                ABButter[rgData.reqindex]);\n            filterButter(rgData.rstepbuf, rgData.rstep + rgData.totsamp,\n                rgData.routbuf, rgData.rout + rgData.totsamp, cursamples,\n                ABButter[rgData.reqindex]);\n\n            curleft = rgData.lout + rgData.totsamp;\n            /* Get the squared values */\n            curleftBase = rgData.loutbuf;\n            curright = rgData.rout + rgData.totsamp;\n            currightBase = rgData.routbuf;\n\n            var i = cursamples % 8;\n            while ((i--) != 0) {\n                rgData.lsum += fsqr(curleftBase[curleft++]);\n                rgData.rsum += fsqr(currightBase[curright++]);\n            }\n            i = cursamples / 8;\n            while ((i--) != 0) {\n                rgData.lsum += fsqr(curleftBase[curleft + 0])\n                    + fsqr(curleftBase[curleft + 1])\n                    + fsqr(curleftBase[curleft + 2])\n                    + fsqr(curleftBase[curleft + 3])\n                    + fsqr(curleftBase[curleft + 4])\n                    + fsqr(curleftBase[curleft + 5])\n                    + fsqr(curleftBase[curleft + 6])\n                    + fsqr(curleftBase[curleft + 7]);\n                curleft += 8;\n                rgData.rsum += fsqr(currightBase[curright + 0])\n                    + fsqr(currightBase[curright + 1])\n                    + fsqr(currightBase[curright + 2])\n                    + fsqr(currightBase[curright + 3])\n                    + fsqr(currightBase[curright + 4])\n                    + fsqr(currightBase[curright + 5])\n                    + fsqr(currightBase[curright + 6])\n                    + fsqr(currightBase[curright + 7]);\n                curright += 8;\n            }\n\n            batchsamples -= cursamples;\n            cursamplepos += cursamples;\n            rgData.totsamp += cursamples;\n            if (rgData.totsamp == rgData.sampleWindow) {\n                /* Get the Root Mean Square (RMS) for this set of samples */\n                var val = GainAnalysis.STEPS_per_dB\n                    * 10.\n                    * Math.log10((rgData.lsum + rgData.rsum)\n                        / rgData.totsamp * 0.5 + 1.e-37);\n                var ival = (val <= 0) ? 0 : 0 | val;\n                if (ival >= rgData.A.length)\n                    ival = rgData.A.length - 1;\n                rgData.A[ival]++;\n                rgData.lsum = rgData.rsum = 0.;\n\n                System.arraycopy(rgData.loutbuf, rgData.totsamp,\n                    rgData.loutbuf, 0, MAX_ORDER);\n                System.arraycopy(rgData.routbuf, rgData.totsamp,\n                    rgData.routbuf, 0, MAX_ORDER);\n                System.arraycopy(rgData.lstepbuf, rgData.totsamp,\n                    rgData.lstepbuf, 0, MAX_ORDER);\n                System.arraycopy(rgData.rstepbuf, rgData.totsamp,\n                    rgData.rstepbuf, 0, MAX_ORDER);\n                rgData.totsamp = 0;\n            }\n            if (rgData.totsamp > rgData.sampleWindow) {\n                /*\n                 * somehow I really screwed up: Error in programming! Contact\n                 * author about totsamp > sampleWindow\n                 */\n                return GAIN_ANALYSIS_ERROR;\n            }\n        }\n        if (num_samples < MAX_ORDER) {\n            System.arraycopy(rgData.linprebuf, num_samples, rgData.linprebuf,\n                0, MAX_ORDER - num_samples);\n            System.arraycopy(rgData.rinprebuf, num_samples, rgData.rinprebuf,\n                0, MAX_ORDER - num_samples);\n            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n                MAX_ORDER - num_samples, num_samples);\n            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n                MAX_ORDER - num_samples, num_samples);\n        } else {\n            System.arraycopy(left_samples, left_samplesPos + num_samples\n                - MAX_ORDER, rgData.linprebuf, 0, MAX_ORDER);\n            System.arraycopy(right_samples, right_samplesPos + num_samples\n                - MAX_ORDER, rgData.rinprebuf, 0, MAX_ORDER);\n        }\n\n        return GAIN_ANALYSIS_OK;\n    };\n\n    function analyzeResult(Array, len) {\n        var i;\n\n        var elems = 0;\n        for (i = 0; i < len; i++)\n            elems += Array[i];\n        if (elems == 0)\n            return GAIN_NOT_ENOUGH_SAMPLES;\n\n        var upper = 0 | Math.ceil(elems * (1. - RMS_PERCENTILE));\n        for (i = len; i-- > 0;) {\n            if ((upper -= Array[i]) <= 0)\n                break;\n        }\n\n        //return (float) ((float) PINK_REF - (float) i / (float) STEPS_per_dB);\n        return (PINK_REF - i / GainAnalysis.STEPS_per_dB);\n    }\n\n    this.GetTitleGain = function (rgData) {\n        var retval = analyzeResult(rgData.A, rgData.A.length);\n\n        for (var i = 0; i < rgData.A.length; i++) {\n            rgData.B[i] += rgData.A[i];\n            rgData.A[i] = 0;\n        }\n\n        for (var i = 0; i < MAX_ORDER; i++)\n            rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n        rgData.totsamp = 0;\n        rgData.lsum = rgData.rsum = 0.;\n        return retval;\n    }\n\n}\n\nmodule.exports = GainAnalysis;\n\n\n/***/ }),\n\n/***/ \"316e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar defaults = {\n\tdefaultProtocol: 'http',\n\tevents: null,\n\tformat: noop,\n\tformatHref: noop,\n\tnl2br: false,\n\ttagName: 'a',\n\ttarget: typeToTarget,\n\tvalidate: true,\n\tignoreTags: [],\n\tattributes: null,\n\tclassName: 'linkified' // Deprecated value - no default class will be provided in the future\n};\n\nexports.defaults = defaults;\nexports.Options = Options;\nexports.contains = contains;\n\n\nfunction Options(opts) {\n\topts = opts || {};\n\n\tthis.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;\n\tthis.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;\n\tthis.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;\n\tthis.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;\n\tthis.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;\n\tthis.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;\n\tthis.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;\n\tthis.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;\n\tthis.ignoreTags = [];\n\n\t// linkAttributes and linkClass is deprecated\n\tthis.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n\tthis.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;\n\n\t// Make all tags names upper case\n\tvar ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;\n\tfor (var i = 0; i < ignoredTags.length; i++) {\n\t\tthis.ignoreTags.push(ignoredTags[i].toUpperCase());\n\t}\n}\n\nOptions.prototype = {\n\t/**\n  * Given the token, return all options for how it should be displayed\n  */\n\tresolve: function resolve(token) {\n\t\tvar href = token.toHref(this.defaultProtocol);\n\t\treturn {\n\t\t\tformatted: this.get('format', token.toString(), token),\n\t\t\tformattedHref: this.get('formatHref', href, token),\n\t\t\ttagName: this.get('tagName', href, token),\n\t\t\tclassName: this.get('className', href, token),\n\t\t\ttarget: this.get('target', href, token),\n\t\t\tevents: this.getObject('events', href, token),\n\t\t\tattributes: this.getObject('attributes', href, token)\n\t\t};\n\t},\n\n\n\t/**\n  * Returns true or false based on whether a token should be displayed as a\n  * link based on the user options. By default,\n  */\n\tcheck: function check(token) {\n\t\treturn this.get('validate', token.toString(), token);\n\t},\n\n\n\t// Private methods\n\n\t/**\n  * Resolve an option's value based on the value of the option and the given\n  * params.\n  * @param {String} key Name of option to use\n  * @param operator will be passed to the target option if it's method\n  * @param {MultiToken} token The token from linkify.tokenize\n  */\n\tget: function get(key, operator, token) {\n\t\tvar optionValue = void 0,\n\t\t    option = this[key];\n\t\tif (!option) {\n\t\t\treturn option;\n\t\t}\n\n\t\tswitch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {\n\t\t\tcase 'function':\n\t\t\t\treturn option(operator, token.type);\n\t\t\tcase 'object':\n\t\t\t\toptionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n\t\t\t\treturn typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;\n\t\t}\n\n\t\treturn option;\n\t},\n\tgetObject: function getObject(key, operator, token) {\n\t\tvar option = this[key];\n\t\treturn typeof option === 'function' ? option(operator, token.type) : option;\n\t}\n};\n\n/**\n * Quick indexOf replacement for checking the ignoreTags option\n */\nfunction contains(arr, value) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (arr[i] === value) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction noop(val) {\n\treturn val;\n}\n\nfunction typeToTarget(href, type) {\n\treturn type === 'url' ? '_blank' : null;\n}\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(\"aed9\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"3967\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction Presets() {\n    function VBRPresets(qual, comp, compS,\n                        y, shThreshold, shThresholdS,\n                        adj, adjShort, lower,\n                        curve, sens, inter,\n                        joint, mod, fix) {\n        this.vbr_q = qual;\n        this.quant_comp = comp;\n        this.quant_comp_s = compS;\n        this.expY = y;\n        this.st_lrm = shThreshold;\n        this.st_s = shThresholdS;\n        this.masking_adj = adj;\n        this.masking_adj_short = adjShort;\n        this.ath_lower = lower;\n        this.ath_curve = curve;\n        this.ath_sensitivity = sens;\n        this.interch = inter;\n        this.safejoint = joint;\n        this.sfb21mod = mod;\n        this.msfix = fix;\n    }\n\n    function ABRPresets(kbps, comp, compS,\n                        joint, fix, shThreshold,\n                        shThresholdS, bass, sc,\n                        mask, lower, curve,\n                        interCh, sfScale) {\n        this.quant_comp = comp;\n        this.quant_comp_s = compS;\n        this.safejoint = joint;\n        this.nsmsfix = fix;\n        this.st_lrm = shThreshold;\n        this.st_s = shThresholdS;\n        this.nsbass = bass;\n        this.scale = sc;\n        this.masking_adj = mask;\n        this.ath_lower = lower;\n        this.ath_curve = curve;\n        this.interch = interCh;\n        this.sfscale = sfScale;\n    }\n\n    var lame;\n\n    this.setModules = function (_lame) {\n        lame = _lame;\n    };\n\n    /**\n     * <PRE>\n     * Switch mappings for VBR mode VBR_RH\n     *             vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * </PRE>\n     */\n    var vbr_old_switch_map = [\n        new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),\n        new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n        new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),\n        new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),\n        new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),\n        new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),\n        new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),\n        new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),\n        new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),\n        new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),\n        new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)\n    ];\n\n    /**\n     * <PRE>\n     *                 vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * </PRE>\n     */\n    var vbr_psy_switch_map = [\n        new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7.0, -4.0, 7.5, 1, 0, 0, 2, 26, 0.97),\n        new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n        new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n        new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),\n        new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n        new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1.0, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),\n        new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0.0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),\n        new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),\n        new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22.0, 10, -23, 0.0007, 0, 0, 2),\n        new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30.0, 11, -25, 0.0008, 0, 0, 2),\n        new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36.0, 12, -30, 0.0008, 0, 0, 2)\n    ];\n\n    function apply_vbr_preset(gfp, a, enforce) {\n        var vbr_preset = gfp.VBR == VbrMode.vbr_rh ? vbr_old_switch_map\n            : vbr_psy_switch_map;\n\n        var x = gfp.VBR_q_frac;\n        var p = vbr_preset[a];\n        var q = vbr_preset[a + 1];\n        var set = p;\n\n        // NOOP(vbr_q);\n        // NOOP(quant_comp);\n        // NOOP(quant_comp_s);\n        // NOOP(expY);\n        p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);\n        // LERP(st_lrm);\n        p.st_s = p.st_s + x * (q.st_s - p.st_s);\n        // LERP(st_s);\n        p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);\n        // LERP(masking_adj);\n        p.masking_adj_short = p.masking_adj_short + x\n            * (q.masking_adj_short - p.masking_adj_short);\n        // LERP(masking_adj_short);\n        p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);\n        // LERP(ath_lower);\n        p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);\n        // LERP(ath_curve);\n        p.ath_sensitivity = p.ath_sensitivity + x\n            * (q.ath_sensitivity - p.ath_sensitivity);\n        // LERP(ath_sensitivity);\n        p.interch = p.interch + x * (q.interch - p.interch);\n        // LERP(interch);\n        // NOOP(safejoint);\n        // NOOP(sfb21mod);\n        p.msfix = p.msfix + x * (q.msfix - p.msfix);\n        // LERP(msfix);\n\n        lame_set_VBR_q(gfp, set.vbr_q);\n\n        if (enforce != 0)\n            gfp.quant_comp = set.quant_comp;\n        else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n            gfp.quant_comp = set.quant_comp;\n        // SET_OPTION(quant_comp, set.quant_comp, -1);\n        if (enforce != 0)\n            gfp.quant_comp_short = set.quant_comp_s;\n        else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n            gfp.quant_comp_short = set.quant_comp_s;\n        // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);\n        if (set.expY != 0) {\n            gfp.experimentalY = set.expY != 0;\n        }\n        if (enforce != 0)\n            gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n            gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n        // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);\n        if (enforce != 0)\n            gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n            gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n        // SET_OPTION(short_threshold_s, set.st_s, -1);\n        if (enforce != 0)\n            gfp.maskingadjust = set.masking_adj;\n        else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n            gfp.maskingadjust = set.masking_adj;\n        // SET_OPTION(maskingadjust, set.masking_adj, 0);\n        if (enforce != 0)\n            gfp.maskingadjust_short = set.masking_adj_short;\n        else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n            gfp.maskingadjust_short = set.masking_adj_short;\n        // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);\n        if (enforce != 0)\n            gfp.ATHlower = -set.ath_lower / 10.0;\n        else if (!(Math.abs((-gfp.ATHlower * 10.0) - 0) > 0))\n            gfp.ATHlower = -set.ath_lower / 10.0;\n        // SET_OPTION(ATHlower, set.ath_lower, 0);\n        if (enforce != 0)\n            gfp.ATHcurve = set.ath_curve;\n        else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n            gfp.ATHcurve = set.ath_curve;\n        // SET_OPTION(ATHcurve, set.ath_curve, -1);\n        if (enforce != 0)\n            gfp.athaa_sensitivity = set.ath_sensitivity;\n        else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0))\n            gfp.athaa_sensitivity = set.ath_sensitivity;\n        // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);\n        if (set.interch > 0) {\n            if (enforce != 0)\n                gfp.interChRatio = set.interch;\n            else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n                gfp.interChRatio = set.interch;\n            // SET_OPTION(interChRatio, set.interch, -1);\n        }\n\n        /* parameters for which there is no proper set/get interface */\n        if (set.safejoint > 0) {\n            gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;\n        }\n        if (set.sfb21mod > 0) {\n            gfp.exp_nspsytune = gfp.exp_nspsytune | (set.sfb21mod << 20);\n        }\n        if (enforce != 0)\n            gfp.msfix = set.msfix;\n        else if (!(Math.abs(gfp.msfix - -1) > 0))\n            gfp.msfix = set.msfix;\n        // SET_OPTION(msfix, set.msfix, -1);\n\n        if (enforce == 0) {\n            gfp.VBR_q = a;\n            gfp.VBR_q_frac = x;\n        }\n    }\n\n    /**\n     * <PRE>\n     *  Switch mappings for ABR mode\n     *\n     *              kbps  quant q_s safejoint nsmsfix st_lrm  st_s  ns-bass scale   msk ath_lwr ath_curve  interch , sfscale\n     * </PRE>\n     */\n    var abr_switch_map = [\n        new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30.0, 11, 0.0012, 1), /*   8, impossible to use in stereo */\n        new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25.0, 11, 0.0010, 1), /*  16 */\n        new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20.0, 11, 0.0010, 1), /*  24 */\n        new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15.0, 11, 0.0010, 1), /*  32 */\n        new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /*  40 */\n        new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /*  48 */\n        new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6.0, 11, 0.0008, 1), /*  56 */\n        new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2.0, 11, 0.0008, 1), /*  64 */\n        new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1), /*  80 */\n        new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1), /*  96 */\n        new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1), /* 112 */\n        new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1), /* 128 */\n        new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1), /* 160 */\n        new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0), /* 192 */\n        new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0), /* 224 */\n        new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0), /* 256 */\n        new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0)  /* 320 */\n    ];\n\n    function apply_abr_preset(gfp, preset, enforce) {\n        /* Variables for the ABR stuff */\n        var actual_bitrate = preset;\n\n        var r = lame.nearestBitrateFullIndex(preset);\n\n        gfp.VBR = VbrMode.vbr_abr;\n        gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n        gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n        gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n        gfp.brate = gfp.VBR_mean_bitrate_kbps;\n        if (gfp.VBR_mean_bitrate_kbps > 320) {\n            gfp.disable_reservoir = true;\n        }\n\n        /* parameters for which there is no proper set/get interface */\n        if (abr_switch_map[r].safejoint > 0)\n            gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n        /* safejoint */\n\n        if (abr_switch_map[r].sfscale > 0) {\n            gfp.internal_flags.noise_shaping = 2;\n        }\n        /* ns-bass tweaks */\n        if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n            var k = (int)(abr_switch_map[r].nsbass * 4);\n            if (k < 0)\n                k += 64;\n            gfp.exp_nspsytune = gfp.exp_nspsytune | (k << 2);\n        }\n\n        if (enforce != 0)\n            gfp.quant_comp = abr_switch_map[r].quant_comp;\n        else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n            gfp.quant_comp = abr_switch_map[r].quant_comp;\n        // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);\n        if (enforce != 0)\n            gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n        else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n            gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n        // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);\n\n        if (enforce != 0)\n            gfp.msfix = abr_switch_map[r].nsmsfix;\n        else if (!(Math.abs(gfp.msfix - -1) > 0))\n            gfp.msfix = abr_switch_map[r].nsmsfix;\n        // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);\n\n        if (enforce != 0)\n            gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n            gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n        // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);\n        if (enforce != 0)\n            gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n            gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n        // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);\n\n        /*\n         * ABR seems to have big problems with clipping, especially at low\n         * bitrates\n         */\n        /*\n         * so we compensate for that here by using a scale value depending on\n         * bitrate\n         */\n        if (enforce != 0)\n            gfp.scale = abr_switch_map[r].scale;\n        else if (!(Math.abs(gfp.scale - -1) > 0))\n            gfp.scale = abr_switch_map[r].scale;\n        // SET_OPTION(scale, abr_switch_map[r].scale, -1);\n\n        if (enforce != 0)\n            gfp.maskingadjust = abr_switch_map[r].masking_adj;\n        else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n            gfp.maskingadjust = abr_switch_map[r].masking_adj;\n        // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);\n        if (abr_switch_map[r].masking_adj > 0) {\n            if (enforce != 0)\n                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n            else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n            // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n            // .9, 0);\n        } else {\n            if (enforce != 0)\n                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n            else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n            // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n            // 1.1, 0);\n        }\n\n        if (enforce != 0)\n            gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n        else if (!(Math.abs((-gfp.ATHlower * 10.) - 0) > 0))\n            gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n        // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);\n        if (enforce != 0)\n            gfp.ATHcurve = abr_switch_map[r].ath_curve;\n        else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n            gfp.ATHcurve = abr_switch_map[r].ath_curve;\n        // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);\n\n        if (enforce != 0)\n            gfp.interChRatio = abr_switch_map[r].interch;\n        else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n            gfp.interChRatio = abr_switch_map[r].interch;\n        // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);\n\n        return preset;\n    }\n\n    this.apply_preset = function(gfp, preset, enforce) {\n        /* translate legacy presets */\n        switch (preset) {\n            case Lame.R3MIX:\n            {\n                preset = Lame.V3;\n                gfp.VBR = VbrMode.vbr_mtrh;\n                break;\n            }\n            case Lame.MEDIUM:\n            {\n                preset = Lame.V4;\n                gfp.VBR = VbrMode.vbr_rh;\n                break;\n            }\n            case Lame.MEDIUM_FAST:\n            {\n                preset = Lame.V4;\n                gfp.VBR = VbrMode.vbr_mtrh;\n                break;\n            }\n            case Lame.STANDARD:\n            {\n                preset = Lame.V2;\n                gfp.VBR = VbrMode.vbr_rh;\n                break;\n            }\n            case Lame.STANDARD_FAST:\n            {\n                preset = Lame.V2;\n                gfp.VBR = VbrMode.vbr_mtrh;\n                break;\n            }\n            case Lame.EXTREME:\n            {\n                preset = Lame.V0;\n                gfp.VBR = VbrMode.vbr_rh;\n                break;\n            }\n            case Lame.EXTREME_FAST:\n            {\n                preset = Lame.V0;\n                gfp.VBR = VbrMode.vbr_mtrh;\n                break;\n            }\n            case Lame.INSANE:\n            {\n                preset = 320;\n                gfp.preset = preset;\n                apply_abr_preset(gfp, preset, enforce);\n                gfp.VBR = VbrMode.vbr_off;\n                return preset;\n            }\n        }\n\n        gfp.preset = preset;\n        {\n            switch (preset) {\n                case Lame.V9:\n                    apply_vbr_preset(gfp, 9, enforce);\n                    return preset;\n                case Lame.V8:\n                    apply_vbr_preset(gfp, 8, enforce);\n                    return preset;\n                case Lame.V7:\n                    apply_vbr_preset(gfp, 7, enforce);\n                    return preset;\n                case Lame.V6:\n                    apply_vbr_preset(gfp, 6, enforce);\n                    return preset;\n                case Lame.V5:\n                    apply_vbr_preset(gfp, 5, enforce);\n                    return preset;\n                case Lame.V4:\n                    apply_vbr_preset(gfp, 4, enforce);\n                    return preset;\n                case Lame.V3:\n                    apply_vbr_preset(gfp, 3, enforce);\n                    return preset;\n                case Lame.V2:\n                    apply_vbr_preset(gfp, 2, enforce);\n                    return preset;\n                case Lame.V1:\n                    apply_vbr_preset(gfp, 1, enforce);\n                    return preset;\n                case Lame.V0:\n                    apply_vbr_preset(gfp, 0, enforce);\n                    return preset;\n                default:\n                    break;\n            }\n        }\n        if (8 <= preset && preset <= 320) {\n            return apply_abr_preset(gfp, preset, enforce);\n        }\n\n        /* no corresponding preset found */\n        gfp.preset = 0;\n        return preset;\n    }\n\n    // Rest from getset.c:\n\n    /**\n     * VBR quality level.<BR>\n     * 0 = highest<BR>\n     * 9 = lowest\n     */\n    function lame_set_VBR_q(gfp, VBR_q) {\n        var ret = 0;\n\n        if (0 > VBR_q) {\n            /* Unknown VBR quality level! */\n            ret = -1;\n            VBR_q = 0;\n        }\n        if (9 < VBR_q) {\n            ret = -1;\n            VBR_q = 9;\n        }\n\n        gfp.VBR_q = VBR_q;\n        gfp.VBR_q_frac = 0;\n        return ret;\n    }\n\n}\n\nmodule.exports = Presets;\n\n\n/***/ }),\n\n/***/ \"3a9b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ }),\n\n/***/ \"3bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(\"1626\");\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ }),\n\n/***/ \"3c5d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(\"da84\");\nvar call = __webpack_require__(\"c65b\");\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar lengthOfArrayLike = __webpack_require__(\"07fa\");\nvar toOffset = __webpack_require__(\"182d\");\nvar toIndexedObject = __webpack_require__(\"7b0b\");\nvar fails = __webpack_require__(\"d039\");\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n\n\n/***/ }),\n\n/***/ \"3f8c\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"40d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ }),\n\n/***/ \"4128\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = __webpack_require__(\"1652\");\n\nvar _multi = __webpack_require__(\"bea1\");\n\nvar MULTI_TOKENS = _interopRequireWildcard(_multi);\n\nvar _text = __webpack_require__(\"7656\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main parser\n*/\n\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.TokenState(tokenClass);\n};\n\n// The universal starting state.\nvar S_START = makeState();\n\n// Intermediate states for URLs. Note that domains that begin with a protocol\n// are treated slighly differently from those that don't.\nvar S_PROTOCOL = makeState(); // e.g., 'http:'\nvar S_MAILTO = makeState(); // 'mailto:'\nvar S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''\nvar S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'\nvar S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\nvar S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\nvar S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string\nvar S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\nvar S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number\nvar S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string\nvar S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\nvar S_URL_OPENBRACE = makeState(); // URL followed by {\nvar S_URL_OPENBRACKET = makeState(); // URL followed by [\nvar S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\nvar S_URL_OPENPAREN = makeState(); // URL followed by (\nvar S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it\nvar S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it\nvar S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it\nvar S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it\nvar S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\nvar S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\nvar S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\nvar S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\nvar S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)\nvar S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\nvar S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port\nvar S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\nvar S_LOCALPART = makeState(); // Local part of the email address\nvar S_LOCALPART_AT = makeState(); // Local part of the email address plus @\nvar S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\nvar S_NL = makeState(_multi.NL); // single new line\n\n// Make path from start to protocol (with '//')\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\n\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\n\n// The very first potential domain name\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\n\n// Force URL for protocol followed by anything sane\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\n\n// Account for dots and hyphens\n// hyphens are usually parts of domain names\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Hyphen can jump back to a domain name\n\n// After the first domain and a dot, we can find either a URL or another domain\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\n\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\n\n// S_TLD accepts! But the URL could be longer, try to find a match greedily\n// The `run` function should be able to \"rollback\" to the accepting state\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Become real URLs after `SLASH` or `COLON NUM SLASH`\n// Here PSS and non-PSS converge\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\n\n// Types of characters the URL can definitely end in\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\n\n// Types of tokens that can follow a URL and be part of the query string\n// but cannot be the very last characters\n// Characters that cannot appear in the URL at all should be excluded\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\n\n// These states are responsible primarily for determining whether or not to\n// include the final round bracket.\n\n// URL, followed by an opening bracket\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// URL with extra symbols at the end, followed by an opening bracket\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// Closing bracket component. This character WILL be included in the URL\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\n\n// URL that beings with an opening bracket, followed by a symbols.\n// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n// has a single opening bracket for some reason).\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// URL that begins with an opening bracket, followed by some symbols\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\n\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// Account for the query string\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\n\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\n\n// Email address-specific state definitions\n// Note: We are not allowing '/' in email addresses since this would interfere\n// with real URLs\n\n// For addresses with the mailto prefix\n// 'mailto:' followed by anything sane is a valid email\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\n\n// Greedily get more potential valid email values\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n\n// For addresses without the mailto prefix\n// Tokens allowed in the localpart of the email\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\n\n// Some of the tokens in `localpartAccepting` are already accounted for here and\n// will not be overwritten (don't worry)\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\n\n// Okay we're on a localpart. Now what?\n// TODO: IP addresses and what if the email starts with numbers?\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now\n.on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\n// States following `@` defined above\n\nvar run = function run(tokens) {\n\tvar len = tokens.length;\n\tvar cursor = 0;\n\tvar multis = [];\n\tvar textTokens = [];\n\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar secondState = null;\n\t\tvar nextState = null;\n\t\tvar multiLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && !(secondState = state.next(tokens[cursor]))) {\n\t\t\t// Starting tokens with nowhere to jump to.\n\t\t\t// Consider these to be just plain text\n\t\t\ttextTokens.push(tokens[cursor++]);\n\t\t}\n\n\t\twhile (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {\n\n\t\t\t// Get the next state\n\t\t\tsecondState = null;\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\tcursor++;\n\t\t\tmultiLength++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\n\t\t\t// No accepting state was found, part of a regular text token\n\t\t\t// Add all the tokens we looked at to the text tokens array\n\t\t\tfor (var i = cursor - multiLength; i < cursor; i++) {\n\t\t\t\ttextTokens.push(tokens[i]);\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Accepting state!\n\n\t\t\t// First close off the textTokens (if available)\n\t\t\tif (textTokens.length > 0) {\n\t\t\t\tmultis.push(new _multi.TEXT(textTokens));\n\t\t\t\ttextTokens = [];\n\t\t\t}\n\n\t\t\t// Roll back to the latest accepting state\n\t\t\tcursor -= sinceAccepts;\n\t\t\tmultiLength -= sinceAccepts;\n\n\t\t\t// Create a new multitoken\n\t\t\tvar MULTI = latestAccepting.emit();\n\t\t\tmultis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n\t\t}\n\t}\n\n\t// Finally close off the textTokens (if available)\n\tif (textTokens.length > 0) {\n\t\tmultis.push(new _multi.TEXT(textTokens));\n\t}\n\n\treturn multis;\n};\n\nexports.State = _state.TokenState;\nexports.TOKENS = MULTI_TOKENS;\nexports.run = run;\nexports.start = S_START;\n\n/***/ }),\n\n/***/ \"42ca\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_id_32846052_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"cc2b\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_id_32846052_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_id_32846052_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ }),\n\n/***/ \"44e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar classof = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"46f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nfunction createTokenClass() {\n\treturn function (value) {\n\t\tif (value) {\n\t\t\tthis.v = value;\n\t\t}\n\t};\n}\n\nexports.createTokenClass = createTokenClass;\n\n/***/ }),\n\n/***/ \"4840\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar aConstructor = __webpack_require__(\"5087\");\nvar isNullOrUndefined = __webpack_require__(\"7234\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n\n\n/***/ }),\n\n/***/ \"485a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(\"c65b\");\nvar isCallable = __webpack_require__(\"1626\");\nvar isObject = __webpack_require__(\"861d\");\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"4a65\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar MeanBits = __webpack_require__(\"f052\");\nvar Encoder = __webpack_require__(\"4b5e\");\nvar L3Side = __webpack_require__(\"9828\");\nvar LameInternalFlags = __webpack_require__(\"bd8b\");\n\nfunction CBRNewIterationLoop(_quantize)  {\n    var quantize = _quantize;\n    this.quantize = quantize;\n\tthis.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n\t\tvar gfc = gfp.internal_flags;\n        var l3_xmin = new_float(L3Side.SFBMAX);\n\t\tvar xrpow = new_float(576);\n\t\tvar targ_bits = new_int(2);\n\t\tvar mean_bits = 0, max_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar mb = new MeanBits(mean_bits);\n\t\tthis.quantize.rv.ResvFrameBegin(gfp, mb);\n\t\tmean_bits = mb.bits;\n\n\t\t/* quantize! */\n\t\tfor (var gr = 0; gr < gfc.mode_gr; gr++) {\n\n\t\t\t/*\n\t\t\t * calculate needed bits\n\t\t\t */\n\t\t\tmax_bits = this.quantize.qupvt.on_pe(gfp, pe, targ_bits, mean_bits,\n\t\t\t\t\tgr, gr);\n\n\t\t\tif (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n\t\t\t\tthis.quantize.ms_convert(gfc.l3_side, gr);\n\t\t\t\tthis.quantize.qupvt.reduce_side(targ_bits, ms_ener_ratio[gr],\n\t\t\t\t\t\tmean_bits, max_bits);\n\t\t\t}\n\n\t\t\tfor (var ch = 0; ch < gfc.channels_out; ch++) {\n\t\t\t\tvar adjust, masking_lower_db;\n\t\t\t\tvar cod_info = l3_side.tt[gr][ch];\n\n\t\t\t\tif (cod_info.block_type != Encoder.SHORT_TYPE) {\n\t\t\t\t\t// NORM, START or STOP type\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust - adjust;\n\t\t\t\t} else {\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n\t\t\t\t}\n\t\t\t\tgfc.masking_lower =  Math.pow(10.0,\n\t\t\t\t\t\tmasking_lower_db * 0.1);\n\n\t\t\t\t/*\n\t\t\t\t * init_outer_loop sets up cod_info, scalefac and xrpow\n\t\t\t\t */\n\t\t\t\tthis.quantize.init_outer_loop(gfc, cod_info);\n\t\t\t\tif (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n\t\t\t\t\t/*\n\t\t\t\t\t * xr contains energy we will have to encode calculate the\n\t\t\t\t\t * masking abilities find some good quantization in\n\t\t\t\t\t * outer_loop\n\t\t\t\t\t */\n\t\t\t\t\tthis.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n\t\t\t\t\t\t\tl3_xmin);\n\t\t\t\t\tthis.quantize.outer_loop(gfp, cod_info, l3_xmin, xrpow, ch,\n\t\t\t\t\t\t\ttarg_bits[ch]);\n\t\t\t\t}\n\n\t\t\t\tthis.quantize.iteration_finish_one(gfc, gr, ch);\n\t\t\t\tassert (cod_info.part2_3_length <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n\t\t\t\tassert (cod_info.part2_3_length <= targ_bits[ch]);\n\t\t\t} /* for ch */\n\t\t} /* for gr */\n\n\t\tthis.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n\t}\n}\nmodule.exports = CBRNewIterationLoop;\n\n\n/***/ }),\n\n/***/ \"4b11\":\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n\n/***/ }),\n\n/***/ \"4b5e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * ENCDELAY The encoder delay.\n *\n * Minimum allowed is MDCTDELAY (see below)\n *\n * The first 96 samples will be attenuated, so using a value less than 96\n * will result in corrupt data for the first 96-ENCDELAY samples.\n *\n * suggested: 576 set to 1160 to sync with FhG.\n */\nEncoder.ENCDELAY = 576;\n/**\n * make sure there is at least one complete frame after the last frame\n * containing real data\n *\n * Using a value of 288 would be sufficient for a a very sophisticated\n * decoder that can decode granule-by-granule instead of frame by frame. But\n * lets not assume this, and assume the decoder will not decode frame N\n * unless it also has data for frame N+1\n */\nEncoder.POSTDELAY = 1152;\n\n/**\n * delay of the MDCT used in mdct.c original ISO routines had a delay of\n * 528! Takehiro's routines:\n */\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = (224 + Encoder.MDCTDELAY);\n\n/**\n * Most decoders, including the one we use, have a delay of 528 samples.\n */\nEncoder.DECDELAY = 528;\n\n/**\n * number of subbands\n */\nEncoder.SBLIMIT = 32;\n\n/**\n * parition bands bands\n */\nEncoder.CBANDS = 64;\n\n/**\n * number of critical bands/scale factor bands where masking is computed\n */\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\n\n/**\n * total number of scalefactor bands encoded\n */\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\n\n/**\n * FFT sizes\n */\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = (Encoder.BLKSIZE / 2 + 1);\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = (Encoder.BLKSIZE_s / 2 + 1);\n\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\n\n/**\n * <PRE>\n * Mode Extention:\n * When we are in stereo mode, there are 4 possible methods to store these\n * two channels. The stereo modes -m? are using a subset of them.\n *\n *  -ms: MPG_MD_LR_LR\n *  -mj: MPG_MD_LR_LR and MPG_MD_MS_LR\n *  -mf: MPG_MD_MS_LR\n *  -mi: all\n * </PRE>\n */\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\n\nEncoder.fircoef = [-0.0207887 * 5, -0.0378413 * 5,\n    -0.0432472 * 5, -0.031183 * 5, 7.79609e-18 * 5, 0.0467745 * 5,\n    0.10091 * 5, 0.151365 * 5, 0.187098 * 5];\n\nfunction Encoder() {\n    var NewMDCT = __webpack_require__(\"f3e2\");\n    var III_psy_ratio = __webpack_require__(\"f26d\");\n\n    var FFTOFFSET = Encoder.FFTOFFSET;\n    var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n    //BitStream bs;\n    //PsyModel psy;\n    //VBRTag vbr;\n    //QuantizePVT qupvt;\n    var bs = null;\n    this.psy = null;\n    var psy = null;\n    var vbr = null;\n    var qupvt = null;\n\n    //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,\n    //    VBRTag vbr) {\n    this.setModules = function (_bs, _psy, _qupvt, _vbr) {\n        bs = _bs;\n        this.psy = _psy;\n        psy = _psy;\n        vbr = _vbr;\n        qupvt = _qupvt;\n    };\n\n    var newMDCT = new NewMDCT();\n\n    /***********************************************************************\n     *\n     * encoder and decoder delays\n     *\n     ***********************************************************************/\n\n    /**\n     * <PRE>\n     * layer III enc->dec delay:  1056 (1057?)   (observed)\n     * layer  II enc->dec delay:   480  (481?)   (observed)\n     *\n     * polyphase 256-16             (dec or enc)        = 240\n     * mdct      256+32  (9*32)     (dec or enc)        = 288\n     * total:    512+16\n     *\n     * My guess is that delay of polyphase filterbank is actualy 240.5\n     * (there are technical reasons for this, see postings in mp3encoder).\n     * So total Encode+Decode delay = ENCDELAY + 528 + 1\n     * </PRE>\n     */\n\n\n    /**\n     * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001\n     *\n     * modifies some values in gfp.internal_flags.ATH (gfc.ATH)\n     */\n//private void adjust_ATH(final LameInternalFlags gfc) {\n    function adjust_ATH(gfc) {\n        var gr2_max, max_pow;\n\n        if (gfc.ATH.useAdjust == 0) {\n            gfc.ATH.adjust = 1.0;\n            /* no adjustment */\n            return;\n        }\n\n        /* jd - 2001 mar 12, 27, jun 30 */\n        /* loudness based on equal loudness curve; */\n        /* use granule with maximum combined loudness */\n        max_pow = gfc.loudness_sq[0][0];\n        gr2_max = gfc.loudness_sq[1][0];\n        if (gfc.channels_out == 2) {\n            max_pow += gfc.loudness_sq[0][1];\n            gr2_max += gfc.loudness_sq[1][1];\n        } else {\n            max_pow += max_pow;\n            gr2_max += gr2_max;\n        }\n        if (gfc.mode_gr == 2) {\n            max_pow = Math.max(max_pow, gr2_max);\n        }\n        max_pow *= 0.5;\n        /* max_pow approaches 1.0 for full band noise */\n\n        /* jd - 2001 mar 31, jun 30 */\n        /* user tuning of ATH adjustment region */\n        max_pow *= gfc.ATH.aaSensitivityP;\n\n        /*\n         * adjust ATH depending on range of maximum value\n         */\n\n        /* jd - 2001 feb27, mar12,20, jun30, jul22 */\n        /* continuous curves based on approximation */\n        /* to GB's original values. */\n        /* For an increase in approximate loudness, */\n        /* set ATH adjust to adjust_limit immediately */\n        /* after a delay of one frame. */\n        /* For a loudness decrease, reduce ATH adjust */\n        /* towards adjust_limit gradually. */\n        /* max_pow is a loudness squared or a power. */\n        if (max_pow > 0.03125) { /* ((1 - 0.000625)/ 31.98) from curve below */\n            if (gfc.ATH.adjust >= 1.0) {\n                gfc.ATH.adjust = 1.0;\n            } else {\n                /* preceding frame has lower ATH adjust; */\n                /* ascend only to the preceding adjust_limit */\n                /* in case there is leading low volume */\n                if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n                    gfc.ATH.adjust = gfc.ATH.adjustLimit;\n                }\n            }\n            gfc.ATH.adjustLimit = 1.0;\n        } else { /* adjustment curve */\n            /* about 32 dB maximum adjust (0.000625) */\n            var adj_lim_new = 31.98 * max_pow + 0.000625;\n            if (gfc.ATH.adjust >= adj_lim_new) { /* descend gradually */\n                gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n                if (gfc.ATH.adjust < adj_lim_new) { /* stop descent */\n                    gfc.ATH.adjust = adj_lim_new;\n                }\n            } else { /* ascend */\n                if (gfc.ATH.adjustLimit >= adj_lim_new) {\n                    gfc.ATH.adjust = adj_lim_new;\n                } else {\n                    /* preceding frame has lower ATH adjust; */\n                    /* ascend only to the preceding adjust_limit */\n                    if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n                        gfc.ATH.adjust = gfc.ATH.adjustLimit;\n                    }\n                }\n            }\n            gfc.ATH.adjustLimit = adj_lim_new;\n        }\n    }\n\n    /**\n     * <PRE>\n     *  some simple statistics\n     *\n     *  bitrate index 0: free bitrate . not allowed in VBR mode\n     *  : bitrates, kbps depending on MPEG version\n     *  bitrate index 15: forbidden\n     *\n     *  mode_ext:\n     *  0:  LR\n     *  1:  LR-i\n     *  2:  MS\n     *  3:  MS-i\n     * </PRE>\n     */\n    function updateStats(gfc) {\n        var gr, ch;\n        assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);\n        assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);\n\n        /* count bitrate indices */\n        gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n        gfc.bitrate_stereoMode_Hist[15][4]++;\n\n        /* count 'em for every mode extension in case of 2 channel encoding */\n        if (gfc.channels_out == 2) {\n            gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n            gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n        }\n        for (gr = 0; gr < gfc.mode_gr; ++gr) {\n            for (ch = 0; ch < gfc.channels_out; ++ch) {\n                var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n                if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n                    bt = 4;\n                gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n                gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n                gfc.bitrate_blockType_Hist[15][bt]++;\n                gfc.bitrate_blockType_Hist[15][5]++;\n            }\n        }\n    }\n\n    function lame_encode_frame_init(gfp, inbuf) {\n        var gfc = gfp.internal_flags;\n\n        var ch, gr;\n\n        if (gfc.lame_encode_frame_init == 0) {\n            /* prime the MDCT/polyphase filterbank with a short block */\n            var i, j;\n            var primebuff0 = new_float(286 + 1152 + 576);\n            var primebuff1 = new_float(286 + 1152 + 576);\n            gfc.lame_encode_frame_init = 1;\n            for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n                if (i < 576 * gfc.mode_gr) {\n                    primebuff0[i] = 0;\n                    if (gfc.channels_out == 2)\n                        primebuff1[i] = 0;\n                } else {\n                    primebuff0[i] = inbuf[0][j];\n                    if (gfc.channels_out == 2)\n                        primebuff1[i] = inbuf[1][j];\n                    ++j;\n                }\n            }\n            /* polyphase filtering / mdct */\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n                }\n            }\n            newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n\n            /* check FFT will not use a negative starting offset */\n            assert(576 >= Encoder.FFTOFFSET);\n            /* check if we have enough data for FFT */\n            assert(gfc.mf_size >= (Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET));\n            /* check if we have enough data for polyphase filterbank */\n            assert(gfc.mf_size >= (512 + gfp.framesize - 32));\n        }\n\n    }\n\n    /**\n     * <PRE>\n     * encodeframe()           Layer 3\n     *\n     * encode a single frame\n     *\n     *\n     *    lame_encode_frame()\n     *\n     *\n     *                           gr 0            gr 1\n     *    inbuf:           |--------------|--------------|--------------|\n     *\n     *\n     *    Polyphase (18 windows, each shifted 32)\n     *    gr 0:\n     *    window1          <----512---.\n     *    window18                 <----512---.\n     *\n     *    gr 1:\n     *    window1                         <----512---.\n     *    window18                                <----512---.\n     *\n     *\n     *\n     *    MDCT output:  |--------------|--------------|--------------|\n     *\n     *    FFT's                    <---------1024---------.\n     *                                             <---------1024-------.\n     *\n     *\n     *\n     *        inbuf = buffer of PCM data size=MP3 framesize\n     *        encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY\n     *        so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]\n     *\n     *        psy-model FFT has a 1 granule delay, so we feed it data for the\n     *        next granule.\n     *        FFT is centered over granule:  224+576+224\n     *        So FFT starts at:   576-224-MDCTDELAY\n     *\n     *        MPEG2:  FFT ends at:  BLKSIZE+576-224-MDCTDELAY      (1328)\n     *        MPEG1:  FFT ends at:  BLKSIZE+2*576-224-MDCTDELAY    (1904)\n     *\n     *        MPEG2:  polyphase first window:  [0..511]\n     *                          18th window:   [544..1055]          (1056)\n     *        MPEG1:            36th window:   [1120..1631]         (1632)\n     *                data needed:  512+framesize-32\n     *\n     *        A close look newmdct.c shows that the polyphase filterbank\n     *        only uses data from [0..510] for each window.  Perhaps because the window\n     *        used by the filterbank is zero for the last point, so Takehiro's\n     *        code doesn't bother to compute with it.\n     *\n     *        FFT starts at 576-224-MDCTDELAY (304)  = 576-FFTOFFSET\n     *\n     * </PRE>\n     */\n\n\n    this.lame_encode_mp3_frame = function (gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n        var mp3count;\n        var masking_LR = new_array_n([2, 2]);\n        /*\n         * LR masking &\n         * energy\n         */\n        masking_LR[0][0] = new III_psy_ratio();\n        masking_LR[0][1] = new III_psy_ratio();\n        masking_LR[1][0] = new III_psy_ratio();\n        masking_LR[1][1] = new III_psy_ratio();\n        var masking_MS = new_array_n([2, 2]);\n        /* MS masking & energy */\n        masking_MS[0][0] = new III_psy_ratio();\n        masking_MS[0][1] = new III_psy_ratio();\n        masking_MS[1][0] = new III_psy_ratio();\n        masking_MS[1][1] = new III_psy_ratio();\n        //III_psy_ratio masking[][];\n        var masking;\n        /* pointer to selected maskings */\n        var inbuf = [null, null];\n        var gfc = gfp.internal_flags;\n\n        var tot_ener = new_float_n([2, 4]);\n        var ms_ener_ratio = [.5, .5];\n        var pe = [[0., 0.], [0., 0.]];\n        var pe_MS = [[0., 0.], [0., 0.]];\n\n//float[][] pe_use;\n        var pe_use;\n\n        var ch, gr;\n\n        inbuf[0] = inbuf_l;\n        inbuf[1] = inbuf_r;\n\n        if (gfc.lame_encode_frame_init == 0) {\n            /* first run? */\n            lame_encode_frame_init(gfp, inbuf);\n\n        }\n\n        /********************** padding *****************************/\n        /**\n         * <PRE>\n         * padding method as described in\n         * \"MPEG-Layer3 / Bitstream Syntax and Decoding\"\n         * by Martin Sieler, Ralph Sperschneider\n         *\n         * note: there is no padding for the very first frame\n         *\n         * Robert Hegemann 2000-06-22\n         * </PRE>\n         */\n        gfc.padding = 0;\n        if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n            gfc.slot_lag += gfp.out_samplerate;\n            gfc.padding = 1;\n        }\n\n        /****************************************\n         * Stage 1: psychoacoustic model *\n         ****************************************/\n\n        if (gfc.psymodel != 0) {\n            /*\n             * psychoacoustic model psy model has a 1 granule (576) delay that\n             * we must compensate for (mt 6/99).\n             */\n            var ret;\n            var bufp = [null, null];\n            /* address of beginning of left & right granule */\n            var bufpPos = 0;\n            /* address of beginning of left & right granule */\n            var blocktype = new_int(2);\n\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    bufp[ch] = inbuf[ch];\n                    bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n                }\n                if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n                    ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr,\n                        masking_LR, masking_MS, pe[gr], pe_MS[gr],\n                        tot_ener[gr], blocktype);\n                } else {\n                    ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr,\n                        masking_LR, masking_MS, pe[gr], pe_MS[gr],\n                        tot_ener[gr], blocktype);\n                }\n                if (ret != 0)\n                    return -4;\n\n                if (gfp.mode == MPEGMode.JOINT_STEREO) {\n                    ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n                    if (ms_ener_ratio[gr] > 0)\n                        ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n                }\n\n                /* block type flags */\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    var cod_info = gfc.l3_side.tt[gr][ch];\n                    cod_info.block_type = blocktype[ch];\n                    cod_info.mixed_block_flag = 0;\n                }\n            }\n        } else {\n            /* no psy model */\n            for (gr = 0; gr < gfc.mode_gr; gr++)\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n                    gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n                    pe_MS[gr][ch] = pe[gr][ch] = 700;\n                }\n        }\n\n        /* auto-adjust of ATH, useful for low volume */\n        adjust_ATH(gfc);\n\n        /****************************************\n         * Stage 2: MDCT *\n         ****************************************/\n\n        /* polyphase filtering / mdct */\n        newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n\n        /****************************************\n         * Stage 3: MS/LR decision *\n         ****************************************/\n\n        /* Here will be selected MS or LR coding of the 2 stereo channels */\n        gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n\n        if (gfp.force_ms) {\n            gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n        } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n            /*\n             * ms_ratio = is scaled, for historical reasons, to look like a\n             * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R\n             * uncorrelated\n             */\n\n            /**\n             * <PRE>\n             * [0] and [1] are the results for the two granules in MPEG-1,\n             * in MPEG-2 it's only a faked averaging of the same value\n             * _prev is the value of the last granule of the previous frame\n             * _next is the value of the first granule of the next frame\n             * </PRE>\n             */\n\n            var sum_pe_MS = 0.;\n            var sum_pe_LR = 0.;\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    sum_pe_MS += pe_MS[gr][ch];\n                    sum_pe_LR += pe[gr][ch];\n                }\n            }\n\n            /* based on PE: M/S coding would not use much more bits than L/R */\n            if (sum_pe_MS <= 1.00 * sum_pe_LR) {\n\n                var gi0 = gfc.l3_side.tt[0];\n                var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n\n                if (gi0[0].block_type == gi0[1].block_type\n                    && gi1[0].block_type == gi1[1].block_type) {\n\n                    gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n                }\n            }\n        }\n\n        /* bit and noise allocation */\n        if (gfc.mode_ext == MPG_MD_MS_LR) {\n            masking = masking_MS;\n            /* use MS masking */\n            pe_use = pe_MS;\n        } else {\n            masking = masking_LR;\n            /* use LR masking */\n            pe_use = pe;\n        }\n\n        /* copy data for MP3 frame analyzer */\n        if (gfp.analysis && gfc.pinfo != null) {\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n                    gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n                    gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n                    gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n                    System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0,\n                        gfc.pinfo.xr[gr][ch], 0, 576);\n                    /*\n                     * in psymodel, LR and MS data was stored in pinfo. switch\n                     * to MS data:\n                     */\n                    if (gfc.mode_ext == MPG_MD_MS_LR) {\n                        gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n                        System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0,\n                            gfc.pinfo.energy[gr][ch], 0,\n                            gfc.pinfo.energy[gr][ch].length);\n                    }\n                }\n            }\n        }\n\n        /****************************************\n         * Stage 4: quantization loop *\n         ****************************************/\n\n        if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr) {\n\n            var i;\n            var f;\n\n            for (i = 0; i < 18; i++)\n                gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n\n            f = 0.0;\n            for (gr = 0; gr < gfc.mode_gr; gr++)\n                for (ch = 0; ch < gfc.channels_out; ch++)\n                    f += pe_use[gr][ch];\n            gfc.nsPsy.pefirbuf[18] = f;\n\n            f = gfc.nsPsy.pefirbuf[9];\n            for (i = 0; i < 9; i++)\n                f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i])\n                    * Encoder.fircoef[i];\n\n            f = (670 * 5 * gfc.mode_gr * gfc.channels_out) / f;\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    pe_use[gr][ch] *= f;\n                }\n            }\n        }\n        gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n\n        /****************************************\n         * Stage 5: bitstream formatting *\n         ****************************************/\n\n        /* write the frame to the bitstream */\n        bs.format_bitstream(gfp);\n\n        /* copy mp3 bit buffer into array */\n        mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n\n        if (gfp.bWriteVbrTag)\n            vbr.addVbrFrame(gfp);\n\n        if (gfp.analysis && gfc.pinfo != null) {\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                var j;\n                for (j = 0; j < FFTOFFSET; j++)\n                    gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j\n                    + gfp.framesize];\n                for (j = FFTOFFSET; j < 1600; j++) {\n                    gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n                }\n            }\n            qupvt.set_frame_pinfo(gfp, masking);\n        }\n\n        updateStats(gfc);\n\n        return mp3count;\n    }\n}\n\n\nmodule.exports = Encoder;\n\n\n/***/ }),\n\n/***/ \"4c1d\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"roomsValidation\", function() { return roomsValidation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partcipantsValidation\", function() { return partcipantsValidation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"messagesValidation\", function() { return messagesValidation; });\n/* harmony import */ var _Users_antoine_vue_vue_advanced_chat_node_modules_babel_runtime_helpers_esm_typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"53ca\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"d9e2\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction roomsValidation(obj) {\n  var roomsValidate = [{\n    key: 'roomId',\n    type: ['string', 'number']\n  }, {\n    key: 'roomName',\n    type: ['string']\n  }, {\n    key: 'users',\n    type: ['array']\n  }];\n\n  var validate = function validate(obj, props) {\n    return props.every(function (prop) {\n      var validType = false;\n\n      if (prop.type[0] === 'array' && Array.isArray(obj[prop.key])) {\n        validType = true;\n      } else if (prop.type.find(function (t) {\n        return t === Object(_Users_antoine_vue_vue_advanced_chat_node_modules_babel_runtime_helpers_esm_typeof_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(obj[prop.key]);\n      })) {\n        validType = true;\n      }\n\n      return validType && checkObjectValid(obj, prop.key);\n    });\n  };\n\n  if (!validate(obj, roomsValidate)) {\n    throw new Error('Rooms object is not valid! Must contain roomId[String, Number], roomName[String] and users[Array]');\n  }\n}\nfunction partcipantsValidation(obj) {\n  var participantsValidate = [{\n    key: '_id',\n    type: ['string', 'number']\n  }, {\n    key: 'username',\n    type: ['string']\n  }];\n\n  var validate = function validate(obj, props) {\n    return props.every(function (prop) {\n      var validType = prop.type.find(function (t) {\n        return t === Object(_Users_antoine_vue_vue_advanced_chat_node_modules_babel_runtime_helpers_esm_typeof_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(obj[prop.key]);\n      });\n      return validType && checkObjectValid(obj, prop.key);\n    });\n  };\n\n  if (!validate(obj, participantsValidate)) {\n    throw new Error('Participants object is not valid! Must contain _id[String, Number] and username[String]');\n  }\n}\nfunction messagesValidation(obj) {\n  var messagesValidate = [{\n    key: '_id',\n    type: ['string', 'number']\n  }, {\n    key: 'content',\n    type: ['string', 'number']\n  }, {\n    key: 'senderId',\n    type: ['string', 'number']\n  }];\n\n  var validate = function validate(obj, props) {\n    return props.every(function (prop) {\n      var validType = prop.type.find(function (t) {\n        return t === Object(_Users_antoine_vue_vue_advanced_chat_node_modules_babel_runtime_helpers_esm_typeof_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(obj[prop.key]);\n      });\n      return validType && checkObjectValid(obj, prop.key);\n    });\n  };\n\n  if (!validate(obj, messagesValidate)) {\n    throw new Error('Messages object is not valid! Must contain _id[String, Number], content[String, Number] and senderId[String, Number]');\n  }\n}\n\nfunction checkObjectValid(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== undefined;\n}\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\nvar lengthOfArrayLike = __webpack_require__(\"07fa\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"5087\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isConstructor = __webpack_require__(\"68ee\");\nvar tryToString = __webpack_require__(\"0d51\");\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(\"5926\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"53ca\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.25.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.25.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar uncurryThis = __webpack_require__(\"e330\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"577e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"f5df\");\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n\n\n/***/ }),\n\n/***/ \"58b1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *      bit reservoir source file\n *\n *      Copyright (c) 1999-2000 Mark Taylor\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Reservoir.java,v 1.9 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n/**\n * ResvFrameBegin:<BR>\n * Called (repeatedly) at the beginning of a frame. Updates the maximum size of\n * the reservoir, and checks to make sure main_data_begin was set properly by\n * the formatter<BR>\n * Background information:\n * \n * This is the original text from the ISO standard. Because of sooo many bugs\n * and irritations correcting comments are added in brackets []. A '^W' means\n * you should remove the last word.\n * \n * <PRE>\n *  1. The following rule can be used to calculate the maximum\n *     number of bits used for one granule [^W frame]:<BR>\n *     At the highest possible bitrate of Layer III (320 kbps\n *     per stereo signal [^W^W^W], 48 kHz) the frames must be of\n *     [^W^W^W are designed to have] constant length, i.e.\n *     one buffer [^W^W the frame] length is:<BR>\n * \n *         320 kbps * 1152/48 kHz = 7680 bit = 960 byte\n * \n *     This value is used as the maximum buffer per channel [^W^W] at\n *     lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps\n *     stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit\n *     [per granule and channel] at 48 kHz sampling frequency.\n *     This means that there is a maximum deviation (short time buffer\n *     [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.\n *     The actual deviation is equal to the number of bytes [with the\n *     meaning of octets] denoted by the main_data_end offset pointer.\n *     The actual maximum deviation is (2^9-1)*8 bit = 4088 bits\n *     [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].\n *     ... The xchange of buffer bits between the left and right channel\n *     is allowed without restrictions [exception: dual channel].\n *     Because of the [constructed] constraint on the buffer size\n *     main_data_end is always set to 0 in the case of bit_rate_index==14,\n *     i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case\n *     all data are allocated between adjacent header [^W sync] words\n *     [, i.e. there is no buffering at all].\n * </PRE>\n */\n\nvar common = __webpack_require__(\"0206\");\nvar assert = common.assert;\n\nfunction Reservoir() {\n\tvar bs;\n\n\tthis.setModules  = function(_bs) {\n\t\tbs = _bs;\n\t}\n\n\tthis.ResvFrameBegin = function(gfp, mean_bits) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar maxmp3buf;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar frameLength = bs.getframebits(gfp);\n\t\tmean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n\n\t\t/**\n\t\t * <PRE>\n\t\t *  Meaning of the variables:\n\t\t *      resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))\n\t\t *          Number of bits can be stored in previous frame(s) due to\n\t\t *          counter size constaints\n\t\t *      maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))\n\t\t *          Number of bits allowed to encode one frame (you can take 8*511 bit\n\t\t *          from the bit reservoir and at most 8*1440 bit from the current\n\t\t *          frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible\n\t\t *          value for MPEG-1 and -2)\n\t\t * \n\t\t *          maximum allowed granule/channel size times 4 = 8*2047 bits.,\n\t\t *          so this is the absolute maximum supported by the format.\n\t\t * \n\t\t * \n\t\t *      fullFrameBits:  maximum number of bits available for encoding\n\t\t *                      the current frame.\n\t\t * \n\t\t *      mean_bits:      target number of bits per granule.\n\t\t * \n\t\t *      frameLength:\n\t\t * \n\t\t *      gfc.ResvMax:   maximum allowed reservoir\n\t\t * \n\t\t *      gfc.ResvSize:  current reservoir size\n\t\t * \n\t\t *      l3_side.resvDrain_pre:\n\t\t *         ancillary data to be added to previous frame:\n\t\t *         (only usefull in VBR modes if it is possible to have\n\t\t *         maxmp3buf < fullFrameBits)).  Currently disabled,\n\t\t *         see #define NEW_DRAIN\n\t\t *         2010-02-13: RH now enabled, it seems to be needed for CBR too,\n\t\t *                     as there exists one example, where the FhG decoder\n\t\t *                     can't decode a -b320 CBR file anymore.\n\t\t * \n\t\t *      l3_side.resvDrain_post:\n\t\t *         ancillary data to be added to this frame:\n\t\t * \n\t\t * </PRE>\n\t\t */\n\n\t\t/* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */\n\t\tvar resvLimit = (8 * 256) * gfc.mode_gr - 8;\n\n\t\t/*\n\t\t * maximum allowed frame size. dont use more than this number of bits,\n\t\t * even if the frame has the space for them:\n\t\t */\n\t\tif (gfp.brate > 320) {\n\t\t\t/* in freeformat the buffer is constant */\n\t\t\tmaxmp3buf = 8 * ((int) ((gfp.brate * 1000)\n\t\t\t\t\t/ (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t} else {\n\t\t\t/*\n\t\t\t * all mp3 decoders should have enough buffer to handle this value:\n\t\t\t * size of a 320kbps 32kHz frame\n\t\t\t */\n\t\t\tmaxmp3buf = 8 * 1440;\n\n\t\t\t/*\n\t\t\t * Bouvigne suggests this more lax interpretation of the ISO doc\n\t\t\t * instead of using 8*960.\n\t\t\t */\n\n\t\t\tif (gfp.strict_ISO) {\n\t\t\t\tmaxmp3buf = 8 * ((int) (320000 / (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t\t}\n\t\t}\n\n\t\tgfc.ResvMax = maxmp3buf - frameLength;\n\t\tif (gfc.ResvMax > resvLimit)\n\t\t\tgfc.ResvMax = resvLimit;\n\t\tif (gfc.ResvMax < 0 || gfp.disable_reservoir)\n\t\t\tgfc.ResvMax = 0;\n\n\t\tvar fullFrameBits = mean_bits.bits * gfc.mode_gr\n\t\t\t\t+ Math.min(gfc.ResvSize, gfc.ResvMax);\n\n\t\tif (fullFrameBits > maxmp3buf)\n\t\t\tfullFrameBits = maxmp3buf;\n\n\t\tassert (0 == gfc.ResvMax % 8);\n\t\tassert (gfc.ResvMax >= 0);\n\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t// frame analyzer code\n\t\tif (gfc.pinfo != null) {\n\t\t\t/*\n\t\t\t * expected bits per channel per granule [is this also right for\n\t\t\t * mono/stereo, MPEG-1/2 ?]\n\t\t\t */\n\t\t\tgfc.pinfo.mean_bits = mean_bits.bits / 2;\n\t\t\tgfc.pinfo.resvsize = gfc.ResvSize;\n\t\t}\n\n\t\treturn fullFrameBits;\n\t}\n\n\t/**\n\t * returns targ_bits: target number of bits to use for 1 granule<BR>\n\t * extra_bits: amount extra available from reservoir<BR>\n\t * Mark Taylor 4/99\n\t */\n\tthis.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar add_bits;\n        var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;\n\n\t\t/* compensate the saved bits used in the 1st granule */\n\t\tif (cbr != 0)\n\t\t\tResvSize += mean_bits;\n\n\t\tif ((gfc.substep_shaping & 1) != 0)\n\t\t\tResvMax *= 0.9;\n\n\t\ttarg_bits.bits = mean_bits;\n\n\t\t/* extra bits if the reservoir is almost full */\n\t\tif (ResvSize * 10 > ResvMax * 9) {\n\t\t\tadd_bits = ResvSize - (ResvMax * 9) / 10;\n\t\t\ttarg_bits.bits += add_bits;\n\t\t\tgfc.substep_shaping |= 0x80;\n\t\t} else {\n\t\t\tadd_bits = 0;\n\t\t\tgfc.substep_shaping &= 0x7f;\n\t\t\t/*\n\t\t\t * build up reservoir. this builds the reservoir a little slower\n\t\t\t * than FhG. It could simple be mean_bits/15, but this was rigged to\n\t\t\t * always produce 100 (the old value) at 128kbs\n\t\t\t */\n\t\t\tif (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1))\n\t\t\t\ttarg_bits.bits -= .1 * mean_bits;\n\t\t}\n\n\t\t/* amount from the reservoir we are allowed to use. ISO says 6/10 */\n\t\tvar extra_bits = (ResvSize < (gfc.ResvMax * 6) / 10 ? ResvSize\n\t\t\t\t: (gfc.ResvMax * 6) / 10);\n\t\textra_bits -= add_bits;\n\n\t\tif (extra_bits < 0)\n\t\t\textra_bits = 0;\n\t\treturn extra_bits;\n\t}\n\n\t/**\n\t * Called after a granule's bit allocation. Readjusts the size of the\n\t * reservoir to reflect the granule's usage.\n\t */\n\tthis.ResvAdjust = function(gfc, gi) {\n\t\tgfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n\t}\n\n\t/**\n\t * Called after all granules in a frame have been allocated. Makes sure that\n\t * the reservoir size is within limits, possibly by adding stuffing bits.\n\t */\n\tthis.ResvFrameEnd = function(gfc, mean_bits) {\n\t\tvar over_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tgfc.ResvSize += mean_bits * gfc.mode_gr;\n\t\tvar stuffingBits = 0;\n\t\tl3_side.resvDrain_post = 0;\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t/* we must be byte aligned */\n\t\tif ((over_bits = gfc.ResvSize % 8) != 0)\n\t\t\tstuffingBits += over_bits;\n\n\t\tover_bits = (gfc.ResvSize - stuffingBits) - gfc.ResvMax;\n\t\tif (over_bits > 0) {\n\t\t\tassert (0 == over_bits % 8);\n\t\t\tassert (over_bits >= 0);\n\t\t\tstuffingBits += over_bits;\n\t\t}\n\n\t\t/*\n\t\t * NOTE: enabling the NEW_DRAIN code fixes some problems with FhG\n\t\t * decoder shipped with MS Windows operating systems. Using this, it is\n\t\t * even possible to use Gabriel's lax buffer consideration again, which\n\t\t * assumes, any decoder should have a buffer large enough for a 320 kbps\n\t\t * frame at 32 kHz sample rate.\n\t\t * \n\t\t * old drain code: lame -b320 BlackBird.wav --. does not play with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * new drain code: lame -b320 BlackBird.wav --. plays fine with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * Robert Hegemann, 2010-02-13.\n\t\t */\n\t\t/*\n\t\t * drain as many bits as possible into previous frame ancillary data In\n\t\t * particular, in VBR mode ResvMax may have changed, and we have to make\n\t\t * sure main_data_begin does not create a reservoir bigger than ResvMax\n\t\t * mt 4/00\n\t\t */\n\t\t{\n\t\t\tvar mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n\t\t\tl3_side.resvDrain_pre += 8 * mdb_bytes;\n\t\t\tstuffingBits -= 8 * mdb_bytes;\n\t\t\tgfc.ResvSize -= 8 * mdb_bytes;\n\t\t\tl3_side.main_data_begin -= mdb_bytes;\n\t\t}\n\t\t/* drain the rest into this frames ancillary data */\n\t\tl3_side.resvDrain_post += stuffingBits;\n\t\tgfc.ResvSize -= stuffingBits;\n\t}\n}\n\nmodule.exports = Reservoir;\n\n\n/***/ }),\n\n/***/ \"5926\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar trunc = __webpack_require__(\"b42e\");\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ }),\n\n/***/ \"59ed\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(\"1626\");\nvar tryToString = __webpack_require__(\"0d51\");\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ }),\n\n/***/ \"5b81\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar call = __webpack_require__(\"c65b\");\nvar uncurryThis = __webpack_require__(\"e330\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar isCallable = __webpack_require__(\"1626\");\nvar isNullOrUndefined = __webpack_require__(\"7234\");\nvar isRegExp = __webpack_require__(\"44e7\");\nvar toString = __webpack_require__(\"577e\");\nvar getMethod = __webpack_require__(\"dc4a\");\nvar getRegExpFlags = __webpack_require__(\"90d8\");\nvar getSubstitution = __webpack_require__(\"0cb2\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n  if (fromIndex > string.length) return -1;\n  if (searchValue === '') return fromIndex;\n  return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n    var position = 0;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (!isNullOrUndefined(searchValue)) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n        if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) {\n        return call(replacer, searchValue, O, replaceValue);\n      } else if (IS_PURE && IS_REG_EXP) {\n        return replace(toString(O), searchValue, replaceValue);\n      }\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = stringIndexOf(string, searchString, 0);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = stringIndexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ \"5e77\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar hasOwn = __webpack_require__(\"1a2d\");\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ }),\n\n/***/ \"5f84\":\n/***/ (function(module, exports) {\n\nfunction HuffCodeTab(len, max, tab, hl) {\n    this.xlen = len;\n    this.linmax = max;\n    this.table = tab;\n    this.hlen = hl;\n}\n\nvar Tables = {};\n\n\nTables.t1HB = [\n    1, 1,\n    1, 0\n];\n\nTables.t2HB = [\n    1, 2, 1,\n    3, 1, 1,\n    3, 2, 0\n];\n\nTables.t3HB = [\n    3, 2, 1,\n    1, 1, 1,\n    3, 2, 0\n];\n\nTables.t5HB = [\n    1, 2, 6, 5,\n    3, 1, 4, 4,\n    7, 5, 7, 1,\n    6, 1, 1, 0\n];\n\nTables.t6HB = [\n    7, 3, 5, 1,\n    6, 2, 3, 2,\n    5, 4, 4, 1,\n    3, 3, 2, 0\n];\n\nTables.t7HB = [\n    1, 2, 10, 19, 16, 10,\n    3, 3, 7, 10, 5, 3,\n    11, 4, 13, 17, 8, 4,\n    12, 11, 18, 15, 11, 2,\n    7, 6, 9, 14, 3, 1,\n    6, 4, 5, 3, 2, 0\n];\n\nTables.t8HB = [\n    3, 4, 6, 18, 12, 5,\n    5, 1, 2, 16, 9, 3,\n    7, 3, 5, 14, 7, 3,\n    19, 17, 15, 13, 10, 4,\n    13, 5, 8, 11, 5, 1,\n    12, 4, 4, 1, 1, 0\n];\n\nTables.t9HB = [\n    7, 5, 9, 14, 15, 7,\n    6, 4, 5, 5, 6, 7,\n    7, 6, 8, 8, 8, 5,\n    15, 6, 9, 10, 5, 1,\n    11, 7, 9, 6, 4, 1,\n    14, 4, 6, 2, 6, 0\n];\n\nTables.t10HB = [\n    1, 2, 10, 23, 35, 30, 12, 17,\n    3, 3, 8, 12, 18, 21, 12, 7,\n    11, 9, 15, 21, 32, 40, 19, 6,\n    14, 13, 22, 34, 46, 23, 18, 7,\n    20, 19, 33, 47, 27, 22, 9, 3,\n    31, 22, 41, 26, 21, 20, 5, 3,\n    14, 13, 10, 11, 16, 6, 5, 1,\n    9, 8, 7, 8, 4, 4, 2, 0\n];\n\nTables.t11HB = [\n    3, 4, 10, 24, 34, 33, 21, 15,\n    5, 3, 4, 10, 32, 17, 11, 10,\n    11, 7, 13, 18, 30, 31, 20, 5,\n    25, 11, 19, 59, 27, 18, 12, 5,\n    35, 33, 31, 58, 30, 16, 7, 5,\n    28, 26, 32, 19, 17, 15, 8, 14,\n    14, 12, 9, 13, 14, 9, 4, 1,\n    11, 4, 6, 6, 6, 3, 2, 0\n];\n\nTables.t12HB = [\n    9, 6, 16, 33, 41, 39, 38, 26,\n    7, 5, 6, 9, 23, 16, 26, 11,\n    17, 7, 11, 14, 21, 30, 10, 7,\n    17, 10, 15, 12, 18, 28, 14, 5,\n    32, 13, 22, 19, 18, 16, 9, 5,\n    40, 17, 31, 29, 17, 13, 4, 2,\n    27, 12, 11, 15, 10, 7, 4, 1,\n    27, 12, 8, 12, 6, 3, 1, 0\n];\n\nTables.t13HB = [\n    1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,\n    3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,\n    15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,\n    22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,\n    35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,\n    58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,\n    47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,\n    72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,\n    43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,\n    53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,\n    35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,\n    53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,\n    34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,\n    45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,\n    48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,\n    16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1\n];\n\nTables.t15HB = [\n    7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,\n    13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,\n    19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,\n    29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,\n    52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,\n    77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,\n    125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,\n    109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,\n    90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,\n    71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,\n    109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,\n    86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,\n    118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,\n    91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,\n    123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,\n    71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0\n];\n\nTables.t16HB = [\n    1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,\n    3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,\n    15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,\n    45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,\n    75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,\n    66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,\n    111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,\n    98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,\n    85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,\n    154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,\n    139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,\n    243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,\n    202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,\n    747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,\n    377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,\n    12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3\n];\n\nTables.t24HB = [\n    15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,\n    14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,\n    47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,\n    81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,\n    147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,\n    263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,\n    249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,\n    435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,\n    427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,\n    335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,\n    668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,\n    652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,\n    648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,\n    620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,\n    1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,\n    43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3\n];\n\nTables.t32HB = [\n    1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,\n    7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4\n];\n\nTables.t33HB = [\n    15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,\n    7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4\n];\n\nTables.t1l = [\n    1, 4,\n    3, 5\n];\n\nTables.t2l = [\n    1, 4, 7,\n    4, 5, 7,\n    6, 7, 8\n];\n\nTables.t3l = [\n    2, 3, 7,\n    4, 4, 7,\n    6, 7, 8\n];\n\nTables.t5l = [\n    1, 4, 7, 8,\n    4, 5, 8, 9,\n    7, 8, 9, 10,\n    8, 8, 9, 10\n];\n\nTables.t6l = [\n    3, 4, 6, 8,\n    4, 4, 6, 7,\n    5, 6, 7, 8,\n    7, 7, 8, 9\n];\n\nTables.t7l = [\n    1, 4, 7, 9, 9, 10,\n    4, 6, 8, 9, 9, 10,\n    7, 7, 9, 10, 10, 11,\n    8, 9, 10, 11, 11, 11,\n    8, 9, 10, 11, 11, 12,\n    9, 10, 11, 12, 12, 12\n];\n\nTables.t8l = [\n    2, 4, 7, 9, 9, 10,\n    4, 4, 6, 10, 10, 10,\n    7, 6, 8, 10, 10, 11,\n    9, 10, 10, 11, 11, 12,\n    9, 9, 10, 11, 12, 12,\n    10, 10, 11, 11, 13, 13\n];\n\nTables.t9l = [\n    3, 4, 6, 7, 9, 10,\n    4, 5, 6, 7, 8, 10,\n    5, 6, 7, 8, 9, 10,\n    7, 7, 8, 9, 9, 10,\n    8, 8, 9, 9, 10, 11,\n    9, 9, 10, 10, 11, 11\n];\n\nTables.t10l = [\n    1, 4, 7, 9, 10, 10, 10, 11,\n    4, 6, 8, 9, 10, 11, 10, 10,\n    7, 8, 9, 10, 11, 12, 11, 11,\n    8, 9, 10, 11, 12, 12, 11, 12,\n    9, 10, 11, 12, 12, 12, 12, 12,\n    10, 11, 12, 12, 13, 13, 12, 13,\n    9, 10, 11, 12, 12, 12, 13, 13,\n    10, 10, 11, 12, 12, 13, 13, 13\n];\n\nTables.t11l = [\n    2, 4, 6, 8, 9, 10, 9, 10,\n    4, 5, 6, 8, 10, 10, 9, 10,\n    6, 7, 8, 9, 10, 11, 10, 10,\n    8, 8, 9, 11, 10, 12, 10, 11,\n    9, 10, 10, 11, 11, 12, 11, 12,\n    9, 10, 11, 12, 12, 13, 12, 13,\n    9, 9, 9, 10, 11, 12, 12, 12,\n    9, 9, 10, 11, 12, 12, 12, 12\n];\n\nTables.t12l = [\n    4, 4, 6, 8, 9, 10, 10, 10,\n    4, 5, 6, 7, 9, 9, 10, 10,\n    6, 6, 7, 8, 9, 10, 9, 10,\n    7, 7, 8, 8, 9, 10, 10, 10,\n    8, 8, 9, 9, 10, 10, 10, 11,\n    9, 9, 10, 10, 10, 11, 10, 11,\n    9, 9, 9, 10, 10, 11, 11, 12,\n    10, 10, 10, 11, 11, 11, 11, 12\n];\n\nTables.t13l = [\n    1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,\n    4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,\n    7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,\n    8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,\n    9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,\n    10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,\n    10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,\n    11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,\n    10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,\n    11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,\n    11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,\n    12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,\n    12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,\n    13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,\n    14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,\n    13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18\n];\n\nTables.t15l = [\n    3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,\n    5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,\n    6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,\n    7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n    8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n    9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,\n    10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,\n    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,\n    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,\n    10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,\n    11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,\n    11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,\n    12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,\n    12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,\n    13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,\n    13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15\n];\n\nTables.t16_5l = [\n    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,\n    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,\n    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,\n    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,\n    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,\n    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,\n    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,\n    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,\n    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,\n    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,\n    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,\n    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,\n    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,\n    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,\n    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,\n    11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12\n];\n\nTables.t16l = [\n    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,\n    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,\n    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,\n    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,\n    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,\n    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,\n    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,\n    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,\n    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,\n    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,\n    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,\n    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,\n    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,\n    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,\n    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,\n    10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10\n];\n\nTables.t24l = [\n    4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,\n    5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,\n    7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,\n    8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,\n    9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,\n    10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,\n    10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,\n    11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,\n    11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,\n    11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,\n    12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n    12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,\n    12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,\n    13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,\n    9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6\n];\n\nTables.t32l = [\n    1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,\n    4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4\n];\n\nTables.t33l = [\n    4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,\n    4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4\n];\n\nTables.ht = [\n    /* xlen, linmax, table, hlen */\n    new HuffCodeTab(0, 0, null, null),\n    new HuffCodeTab(2, 0, Tables.t1HB, Tables.t1l),\n    new HuffCodeTab(3, 0, Tables.t2HB, Tables.t2l),\n    new HuffCodeTab(3, 0, Tables.t3HB, Tables.t3l),\n    new HuffCodeTab(0, 0, null, null), /* Apparently not used */\n    new HuffCodeTab(4, 0, Tables.t5HB, Tables.t5l),\n    new HuffCodeTab(4, 0, Tables.t6HB, Tables.t6l),\n    new HuffCodeTab(6, 0, Tables.t7HB, Tables.t7l),\n    new HuffCodeTab(6, 0, Tables.t8HB, Tables.t8l),\n    new HuffCodeTab(6, 0, Tables.t9HB, Tables.t9l),\n    new HuffCodeTab(8, 0, Tables.t10HB, Tables.t10l),\n    new HuffCodeTab(8, 0, Tables.t11HB, Tables.t11l),\n    new HuffCodeTab(8, 0, Tables.t12HB, Tables.t12l),\n    new HuffCodeTab(16, 0, Tables.t13HB, Tables.t13l),\n    new HuffCodeTab(0, 0, null, Tables.t16_5l), /* Apparently not used */\n    new HuffCodeTab(16, 0, Tables.t15HB, Tables.t15l),\n\n    new HuffCodeTab(1, 1, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(2, 3, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(3, 7, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(4, 15, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(6, 63, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(8, 255, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(10, 1023, Tables.t16HB, Tables.t16l),\n    new HuffCodeTab(13, 8191, Tables.t16HB, Tables.t16l),\n\n    new HuffCodeTab(4, 15, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(5, 31, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(6, 63, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(7, 127, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(8, 255, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(9, 511, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(11, 2047, Tables.t24HB, Tables.t24l),\n    new HuffCodeTab(13, 8191, Tables.t24HB, Tables.t24l),\n\n    new HuffCodeTab(0, 0, Tables.t32HB, Tables.t32l),\n    new HuffCodeTab(0, 0, Tables.t33HB, Tables.t33l),\n];\n\n/**\n * <CODE>\n *  for (i = 0; i < 16*16; i++) [\n *      largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];\n *  ]\n * </CODE>\n *\n */\nTables.largetbl = [\n    0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,\n    0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,\n    0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,\n    0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,\n    0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,\n    0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,\n    0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,\n    0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,\n    0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,\n    0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,\n    0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,\n    0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,\n    0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,\n    0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,\n    0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,\n    0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,\n    0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,\n    0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,\n    0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,\n    0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,\n    0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,\n    0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,\n    0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,\n    0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,\n    0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,\n    0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,\n    0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,\n    0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,\n    0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,\n    0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,\n    0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,\n    0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006\n];\n/**\n * <CODE>\n *  for (i = 0; i < 3*3; i++) [\n *      table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];\n *  ]\n * </CODE>\n *\n */\nTables.table23 = [\n    0x010002, 0x040003, 0x070007,\n    0x040004, 0x050004, 0x070007,\n    0x060006, 0x070007, 0x080008\n];\n\n/**\n * <CODE>\n *  for (i = 0; i < 4*4; i++) [\n *       table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];\n *   ]\n * </CODE>\n *\n */\nTables.table56 = [\n    0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,\n    0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009\n];\n\nTables.bitrate_table = [\n    [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], /* MPEG 2 */\n    [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], /* MPEG 1 */\n    [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1], /* MPEG 2.5 */\n];\n\n/**\n * MPEG 2, MPEG 1, MPEG 2.5.\n */\nTables.samplerate_table = [\n    [22050, 24000, 16000, -1],\n    [44100, 48000, 32000, -1],\n    [11025, 12000, 8000, -1],\n];\n\n/**\n * This is the scfsi_band table from 2.4.2.7 of the IS.\n */\nTables.scfsi_band = [0, 6, 11, 16, 21];\n\nmodule.exports = Tables;\n\n\n/***/ }),\n\n/***/ \"605d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = classof(global.process) == 'process';\n\n\n/***/ }),\n\n/***/ \"6374\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar toIntegerOrInfinity = __webpack_require__(\"5926\");\nvar toString = __webpack_require__(\"577e\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"67b2\":\n/***/ (function(module, exports) {\n\n//package mp3;\n\n/* MPEG modes */\nfunction MPEGMode(ordinal) {\n    var _ordinal = ordinal;\n    this.ordinal = function () {\n        return _ordinal;\n    }\n}\n\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\n\nmodule.exports = MPEGMode;\n\n\n/***/ }),\n\n/***/ \"68ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar fails = __webpack_require__(\"d039\");\nvar isCallable = __webpack_require__(\"1626\");\nvar classof = __webpack_require__(\"f5df\");\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, empty, argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n/***/ }),\n\n/***/ \"69b2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Takehiro = __webpack_require__(\"d9be\");\nvar Tables = __webpack_require__(\"5f84\");\nvar Encoder = __webpack_require__(\"4b5e\");\nvar LameInternalFlags = __webpack_require__(\"bd8b\");\n\nBitStream.EQ = function (a, b) {\n    return (Math.abs(a) > Math.abs(b)) ? (Math.abs((a) - (b)) <= (Math\n        .abs(a) * 1e-6))\n        : (Math.abs((a) - (b)) <= (Math.abs(b) * 1e-6));\n};\n\nBitStream.NEQ = function (a, b) {\n    return !BitStream.EQ(a, b);\n};\n\nfunction BitStream() {\n    var self = this;\n    var CRC16_POLYNOMIAL = 0x8005;\n\n    /*\n     * we work with ints, so when doing bit manipulation, we limit ourselves to\n     * MAX_LENGTH-2 just to be on the safe side\n     */\n    var MAX_LENGTH = 32;\n\n    //GainAnalysis ga;\n    //MPGLib mpg;\n    //Version ver;\n    //VBRTag vbr;\n    var ga = null;\n    var mpg = null;\n    var ver = null;\n    var vbr = null;\n\n    //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,\n    //\tVBRTag vbr) {\n\n    this.setModules = function (_ga, _mpg, _ver, _vbr) {\n        ga = _ga;\n        mpg = _mpg;\n        ver = _ver;\n        vbr = _vbr;\n    };\n\n    /**\n     * Bit stream buffer.\n     */\n    //private byte[] buf;\n    var buf = null;\n    /**\n     * Bit counter of bit stream.\n     */\n    var totbit = 0;\n    /**\n     * Pointer to top byte in buffer.\n     */\n    var bufByteIdx = 0;\n    /**\n     * Pointer to top bit of top byte in buffer.\n     */\n    var bufBitIdx = 0;\n\n    /**\n     * compute bitsperframe and mean_bits for a layer III frame\n     */\n    this.getframebits = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var bit_rate;\n\n        /* get bitrate in kbps [?] */\n        if (gfc.bitrate_index != 0)\n            bit_rate = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n        else\n            bit_rate = gfp.brate;\n        assert(8 <= bit_rate && bit_rate <= 640);\n\n        /* main encoding routine toggles padding on and off */\n        /* one Layer3 Slot consists of 8 bits */\n        var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;\n        return 8 * bytes;\n    };\n\n    function putheader_bits(gfc) {\n        System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);\n        bufByteIdx += gfc.sideinfo_len;\n        totbit += gfc.sideinfo_len * 8;\n        gfc.w_ptr = (gfc.w_ptr + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n    }\n\n    /**\n     * write j bits into the bit stream\n     */\n    function putbits2(gfc, val, j) {\n        assert(j < MAX_LENGTH - 2);\n\n        while (j > 0) {\n            var k;\n            if (bufBitIdx == 0) {\n                bufBitIdx = 8;\n                bufByteIdx++;\n                assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n                assert(gfc.header[gfc.w_ptr].write_timing >= totbit);\n                if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n                    putheader_bits(gfc);\n                }\n                buf[bufByteIdx] = 0;\n            }\n\n            k = Math.min(j, bufBitIdx);\n            j -= k;\n\n            bufBitIdx -= k;\n\n            assert(j < MAX_LENGTH);\n            /* 32 too large on 32 bit machines */\n            assert(bufBitIdx < MAX_LENGTH);\n\n            buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n            totbit += k;\n        }\n    }\n\n    /**\n     * write j bits into the bit stream, ignoring frame headers\n     */\n    function putbits_noheaders(gfc, val, j) {\n        assert(j < MAX_LENGTH - 2);\n\n        while (j > 0) {\n            var k;\n            if (bufBitIdx == 0) {\n                bufBitIdx = 8;\n                bufByteIdx++;\n                assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n                buf[bufByteIdx] = 0;\n            }\n\n            k = Math.min(j, bufBitIdx);\n            j -= k;\n\n            bufBitIdx -= k;\n\n            assert(j < MAX_LENGTH);\n            /* 32 too large on 32 bit machines */\n            assert(bufBitIdx < MAX_LENGTH);\n\n            buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n            totbit += k;\n        }\n    }\n\n    /**\n     * Some combinations of bitrate, Fs, and stereo make it impossible to stuff\n     * out a frame using just main_data, due to the limited number of bits to\n     * indicate main_data_length. In these situations, we put stuffing bits into\n     * the ancillary data...\n     */\n    function drain_into_ancillary(gfp, remainingBits) {\n        var gfc = gfp.internal_flags;\n        var i;\n        assert(remainingBits >= 0);\n\n        if (remainingBits >= 8) {\n            putbits2(gfc, 0x4c, 8);\n            remainingBits -= 8;\n        }\n        if (remainingBits >= 8) {\n            putbits2(gfc, 0x41, 8);\n            remainingBits -= 8;\n        }\n        if (remainingBits >= 8) {\n            putbits2(gfc, 0x4d, 8);\n            remainingBits -= 8;\n        }\n        if (remainingBits >= 8) {\n            putbits2(gfc, 0x45, 8);\n            remainingBits -= 8;\n        }\n\n        if (remainingBits >= 32) {\n            var version = ver.getLameShortVersion();\n            if (remainingBits >= 32)\n                for (i = 0; i < version.length && remainingBits >= 8; ++i) {\n                    remainingBits -= 8;\n                    putbits2(gfc, version.charAt(i), 8);\n                }\n        }\n\n        for (; remainingBits >= 1; remainingBits -= 1) {\n            putbits2(gfc, gfc.ancillary_flag, 1);\n            gfc.ancillary_flag ^= (!gfp.disable_reservoir ? 1 : 0);\n        }\n\n        assert(remainingBits == 0);\n\n    }\n\n    /**\n     * write N bits into the header\n     */\n    function writeheader(gfc, val, j) {\n        var ptr = gfc.header[gfc.h_ptr].ptr;\n\n        while (j > 0) {\n            var k = Math.min(j, 8 - (ptr & 7));\n            j -= k;\n            assert(j < MAX_LENGTH);\n            /* >> 32 too large for 32 bit machines */\n\n            gfc.header[gfc.h_ptr].buf[ptr >> 3] |= ((val >> j)) << (8 - (ptr & 7) - k);\n            ptr += k;\n        }\n        gfc.header[gfc.h_ptr].ptr = ptr;\n    }\n\n    function CRC_update(value, crc) {\n        value <<= 8;\n        for (var i = 0; i < 8; i++) {\n            value <<= 1;\n            crc <<= 1;\n\n            if ((((crc ^ value) & 0x10000) != 0))\n                crc ^= CRC16_POLYNOMIAL;\n        }\n        return crc;\n    }\n\n    this.CRC_writeheader = function (gfc, header) {\n        var crc = 0xffff;\n        /* (jo) init crc16 for error_protection */\n\n        crc = CRC_update(header[2] & 0xff, crc);\n        crc = CRC_update(header[3] & 0xff, crc);\n        for (var i = 6; i < gfc.sideinfo_len; i++) {\n            crc = CRC_update(header[i] & 0xff, crc);\n        }\n\n        header[4] = (byte)(crc >> 8);\n        header[5] = (byte)(crc & 255);\n    };\n\n    function encodeSideInfo2(gfp, bitsPerFrame) {\n        var gfc = gfp.internal_flags;\n        var l3_side;\n        var gr, ch;\n\n        l3_side = gfc.l3_side;\n        gfc.header[gfc.h_ptr].ptr = 0;\n        Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n        if (gfp.out_samplerate < 16000)\n            writeheader(gfc, 0xffe, 12);\n        else\n            writeheader(gfc, 0xfff, 12);\n        writeheader(gfc, (gfp.version), 1);\n        writeheader(gfc, 4 - 3, 2);\n        writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);\n        writeheader(gfc, (gfc.bitrate_index), 4);\n        writeheader(gfc, (gfc.samplerate_index), 2);\n        writeheader(gfc, (gfc.padding), 1);\n        writeheader(gfc, (gfp.extension), 1);\n        writeheader(gfc, (gfp.mode.ordinal()), 2);\n        writeheader(gfc, (gfc.mode_ext), 2);\n        writeheader(gfc, (gfp.copyright), 1);\n        writeheader(gfc, (gfp.original), 1);\n        writeheader(gfc, (gfp.emphasis), 2);\n        if (gfp.error_protection) {\n            writeheader(gfc, 0, 16);\n            /* dummy */\n        }\n\n        if (gfp.version == 1) {\n            /* MPEG1 */\n            assert(l3_side.main_data_begin >= 0);\n            writeheader(gfc, (l3_side.main_data_begin), 9);\n\n            if (gfc.channels_out == 2)\n                writeheader(gfc, l3_side.private_bits, 3);\n            else\n                writeheader(gfc, l3_side.private_bits, 5);\n\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                var band;\n                for (band = 0; band < 4; band++) {\n                    writeheader(gfc, l3_side.scfsi[ch][band], 1);\n                }\n            }\n\n            for (gr = 0; gr < 2; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    var gi = l3_side.tt[gr][ch];\n                    writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n                    writeheader(gfc, gi.big_values / 2, 9);\n                    writeheader(gfc, gi.global_gain, 8);\n                    writeheader(gfc, gi.scalefac_compress, 4);\n\n                    if (gi.block_type != Encoder.NORM_TYPE) {\n                        writeheader(gfc, 1, 1);\n                        /* window_switching_flag */\n                        writeheader(gfc, gi.block_type, 2);\n                        writeheader(gfc, gi.mixed_block_flag, 1);\n\n                        if (gi.table_select[0] == 14)\n                            gi.table_select[0] = 16;\n                        writeheader(gfc, gi.table_select[0], 5);\n                        if (gi.table_select[1] == 14)\n                            gi.table_select[1] = 16;\n                        writeheader(gfc, gi.table_select[1], 5);\n\n                        writeheader(gfc, gi.subblock_gain[0], 3);\n                        writeheader(gfc, gi.subblock_gain[1], 3);\n                        writeheader(gfc, gi.subblock_gain[2], 3);\n                    } else {\n                        writeheader(gfc, 0, 1);\n                        /* window_switching_flag */\n                        if (gi.table_select[0] == 14)\n                            gi.table_select[0] = 16;\n                        writeheader(gfc, gi.table_select[0], 5);\n                        if (gi.table_select[1] == 14)\n                            gi.table_select[1] = 16;\n                        writeheader(gfc, gi.table_select[1], 5);\n                        if (gi.table_select[2] == 14)\n                            gi.table_select[2] = 16;\n                        writeheader(gfc, gi.table_select[2], 5);\n\n                        assert(0 <= gi.region0_count && gi.region0_count < 16);\n                        assert(0 <= gi.region1_count && gi.region1_count < 8);\n                        writeheader(gfc, gi.region0_count, 4);\n                        writeheader(gfc, gi.region1_count, 3);\n                    }\n                    writeheader(gfc, gi.preflag, 1);\n                    writeheader(gfc, gi.scalefac_scale, 1);\n                    writeheader(gfc, gi.count1table_select, 1);\n                }\n            }\n        } else {\n            /* MPEG2 */\n            assert(l3_side.main_data_begin >= 0);\n            writeheader(gfc, (l3_side.main_data_begin), 8);\n            writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n\n            gr = 0;\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                var gi = l3_side.tt[gr][ch];\n                writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n                writeheader(gfc, gi.big_values / 2, 9);\n                writeheader(gfc, gi.global_gain, 8);\n                writeheader(gfc, gi.scalefac_compress, 9);\n\n                if (gi.block_type != Encoder.NORM_TYPE) {\n                    writeheader(gfc, 1, 1);\n                    /* window_switching_flag */\n                    writeheader(gfc, gi.block_type, 2);\n                    writeheader(gfc, gi.mixed_block_flag, 1);\n\n                    if (gi.table_select[0] == 14)\n                        gi.table_select[0] = 16;\n                    writeheader(gfc, gi.table_select[0], 5);\n                    if (gi.table_select[1] == 14)\n                        gi.table_select[1] = 16;\n                    writeheader(gfc, gi.table_select[1], 5);\n\n                    writeheader(gfc, gi.subblock_gain[0], 3);\n                    writeheader(gfc, gi.subblock_gain[1], 3);\n                    writeheader(gfc, gi.subblock_gain[2], 3);\n                } else {\n                    writeheader(gfc, 0, 1);\n                    /* window_switching_flag */\n                    if (gi.table_select[0] == 14)\n                        gi.table_select[0] = 16;\n                    writeheader(gfc, gi.table_select[0], 5);\n                    if (gi.table_select[1] == 14)\n                        gi.table_select[1] = 16;\n                    writeheader(gfc, gi.table_select[1], 5);\n                    if (gi.table_select[2] == 14)\n                        gi.table_select[2] = 16;\n                    writeheader(gfc, gi.table_select[2], 5);\n\n                    assert(0 <= gi.region0_count && gi.region0_count < 16);\n                    assert(0 <= gi.region1_count && gi.region1_count < 8);\n                    writeheader(gfc, gi.region0_count, 4);\n                    writeheader(gfc, gi.region1_count, 3);\n                }\n\n                writeheader(gfc, gi.scalefac_scale, 1);\n                writeheader(gfc, gi.count1table_select, 1);\n            }\n        }\n\n        if (gfp.error_protection) {\n            /* (jo) error_protection: add crc16 information to header */\n            CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n        }\n\n        {\n            var old = gfc.h_ptr;\n            assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n\n            gfc.h_ptr = (old + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n            gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing\n                + bitsPerFrame;\n\n            if (gfc.h_ptr == gfc.w_ptr) {\n                /* yikes! we are out of header buffer space */\n                System.err\n                    .println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n            }\n\n        }\n    }\n\n    function huffman_coder_count1(gfc, gi) {\n        /* Write count1 area */\n        var h = Tables.ht[gi.count1table_select + 32];\n        var i, bits = 0;\n\n        var ix = gi.big_values;\n        var xr = gi.big_values;\n        assert(gi.count1table_select < 2);\n\n        for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n            var huffbits = 0;\n            var p = 0, v;\n\n            v = gi.l3_enc[ix + 0];\n            if (v != 0) {\n                p += 8;\n                if (gi.xr[xr + 0] < 0)\n                    huffbits++;\n                assert(v <= 1);\n            }\n\n            v = gi.l3_enc[ix + 1];\n            if (v != 0) {\n                p += 4;\n                huffbits *= 2;\n                if (gi.xr[xr + 1] < 0)\n                    huffbits++;\n                assert(v <= 1);\n            }\n\n            v = gi.l3_enc[ix + 2];\n            if (v != 0) {\n                p += 2;\n                huffbits *= 2;\n                if (gi.xr[xr + 2] < 0)\n                    huffbits++;\n                assert(v <= 1);\n            }\n\n            v = gi.l3_enc[ix + 3];\n            if (v != 0) {\n                p++;\n                huffbits *= 2;\n                if (gi.xr[xr + 3] < 0)\n                    huffbits++;\n                assert(v <= 1);\n            }\n\n            ix += 4;\n            xr += 4;\n            putbits2(gfc, huffbits + h.table[p], h.hlen[p]);\n            bits += h.hlen[p];\n        }\n        return bits;\n    }\n\n    /**\n     * Implements the pseudocode of page 98 of the IS\n     */\n    function Huffmancode(gfc, tableindex, start, end, gi) {\n        var h = Tables.ht[tableindex];\n        var bits = 0;\n\n        assert(tableindex < 32);\n        if (0 == tableindex)\n            return bits;\n\n        for (var i = start; i < end; i += 2) {\n            var cbits = 0;\n            var xbits = 0;\n            var linbits = h.xlen;\n            var xlen = h.xlen;\n            var ext = 0;\n            var x1 = gi.l3_enc[i];\n            var x2 = gi.l3_enc[i + 1];\n\n            if (x1 != 0) {\n                if (gi.xr[i] < 0)\n                    ext++;\n                cbits--;\n            }\n\n            if (tableindex > 15) {\n                /* use ESC-words */\n                if (x1 > 14) {\n                    var linbits_x1 = x1 - 15;\n                    assert(linbits_x1 <= h.linmax);\n                    ext |= linbits_x1 << 1;\n                    xbits = linbits;\n                    x1 = 15;\n                }\n\n                if (x2 > 14) {\n                    var linbits_x2 = x2 - 15;\n                    assert(linbits_x2 <= h.linmax);\n                    ext <<= linbits;\n                    ext |= linbits_x2;\n                    xbits += linbits;\n                    x2 = 15;\n                }\n                xlen = 16;\n            }\n\n            if (x2 != 0) {\n                ext <<= 1;\n                if (gi.xr[i + 1] < 0)\n                    ext++;\n                cbits--;\n            }\n\n            assert((x1 | x2) < 16);\n\n            x1 = x1 * xlen + x2;\n            xbits -= cbits;\n            cbits += h.hlen[x1];\n\n            assert(cbits <= MAX_LENGTH);\n            assert(xbits <= MAX_LENGTH);\n\n            putbits2(gfc, h.table[x1], cbits);\n            putbits2(gfc, ext, xbits);\n            bits += cbits + xbits;\n        }\n        return bits;\n    }\n\n    /**\n     * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as\n     * well as the definitions of the side information on pages 26 and 27.\n     */\n    function ShortHuffmancodebits(gfc, gi) {\n        var region1Start = 3 * gfc.scalefac_band.s[3];\n        if (region1Start > gi.big_values)\n            region1Start = gi.big_values;\n\n        /* short blocks do not have a region2 */\n        var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n        bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n            gi.big_values, gi);\n        return bits;\n    }\n\n    function LongHuffmancodebits(gfc, gi) {\n        var bigvalues, bits;\n        var region1Start, region2Start;\n\n        bigvalues = gi.big_values;\n        assert(0 <= bigvalues && bigvalues <= 576);\n\n        var i = gi.region0_count + 1;\n        assert(0 <= i);\n        assert(i < gfc.scalefac_band.l.length);\n        region1Start = gfc.scalefac_band.l[i];\n        i += gi.region1_count + 1;\n        assert(0 <= i);\n        assert(i < gfc.scalefac_band.l.length);\n        region2Start = gfc.scalefac_band.l[i];\n\n        if (region1Start > bigvalues)\n            region1Start = bigvalues;\n\n        if (region2Start > bigvalues)\n            region2Start = bigvalues;\n\n        bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n        bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n            region2Start, gi);\n        bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues,\n            gi);\n        return bits;\n    }\n\n    function writeMainData(gfp) {\n        var gr, ch, sfb, data_bits, tot_bits = 0;\n        var gfc = gfp.internal_flags;\n        var l3_side = gfc.l3_side;\n\n        if (gfp.version == 1) {\n            /* MPEG 1 */\n            for (gr = 0; gr < 2; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    var gi = l3_side.tt[gr][ch];\n                    var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n                    var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n                    data_bits = 0;\n                    for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n                        if (gi.scalefac[sfb] == -1)\n                            continue;\n                        /* scfsi is used */\n                        putbits2(gfc, gi.scalefac[sfb], slen1);\n                        data_bits += slen1;\n                    }\n                    for (; sfb < gi.sfbmax; sfb++) {\n                        if (gi.scalefac[sfb] == -1)\n                            continue;\n                        /* scfsi is used */\n                        putbits2(gfc, gi.scalefac[sfb], slen2);\n                        data_bits += slen2;\n                    }\n                    assert(data_bits == gi.part2_length);\n\n                    if (gi.block_type == Encoder.SHORT_TYPE) {\n                        data_bits += ShortHuffmancodebits(gfc, gi);\n                    } else {\n                        data_bits += LongHuffmancodebits(gfc, gi);\n                    }\n                    data_bits += huffman_coder_count1(gfc, gi);\n                    /* does bitcount in quantize.c agree with actual bit count? */\n                    assert(data_bits == gi.part2_3_length + gi.part2_length);\n                    tot_bits += data_bits;\n                }\n                /* for ch */\n            }\n            /* for gr */\n        } else {\n            /* MPEG 2 */\n            gr = 0;\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                var gi = l3_side.tt[gr][ch];\n                var i, sfb_partition, scale_bits = 0;\n                assert(gi.sfb_partition_table != null);\n                data_bits = 0;\n                sfb = 0;\n                sfb_partition = 0;\n\n                if (gi.block_type == Encoder.SHORT_TYPE) {\n                    for (; sfb_partition < 4; sfb_partition++) {\n                        var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n                        var slen = gi.slen[sfb_partition];\n                        for (i = 0; i < sfbs; i++, sfb++) {\n                            putbits2(gfc,\n                                Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n                            putbits2(gfc,\n                                Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n                            putbits2(gfc,\n                                Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n                            scale_bits += 3 * slen;\n                        }\n                    }\n                    data_bits += ShortHuffmancodebits(gfc, gi);\n                } else {\n                    for (; sfb_partition < 4; sfb_partition++) {\n                        var sfbs = gi.sfb_partition_table[sfb_partition];\n                        var slen = gi.slen[sfb_partition];\n                        for (i = 0; i < sfbs; i++, sfb++) {\n                            putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n                            scale_bits += slen;\n                        }\n                    }\n                    data_bits += LongHuffmancodebits(gfc, gi);\n                }\n                data_bits += huffman_coder_count1(gfc, gi);\n                /* does bitcount in quantize.c agree with actual bit count? */\n                assert(data_bits == gi.part2_3_length);\n                assert(scale_bits == gi.part2_length);\n                tot_bits += scale_bits + data_bits;\n            }\n            /* for ch */\n        }\n        /* for gf */\n        return tot_bits;\n    }\n\n    /* main_data */\n\n    function TotalBytes() {\n        this.total = 0;\n    }\n\n    /*\n     * compute the number of bits required to flush all mp3 frames currently in\n     * the buffer. This should be the same as the reservoir size. Only call this\n     * routine between frames - i.e. only after all headers and data have been\n     * added to the buffer by format_bitstream().\n     *\n     * Also compute total_bits_output = size of mp3 buffer (including frame\n     * headers which may not have yet been send to the mp3 buffer) + number of\n     * bits needed to flush all mp3 frames.\n     *\n     * total_bytes_output is the size of the mp3 output buffer if\n     * lame_encode_flush_nogap() was called right now.\n     */\n    function compute_flushbits(gfp, total_bytes_output) {\n        var gfc = gfp.internal_flags;\n        var flushbits, remaining_headers;\n        var bitsPerFrame;\n        var last_ptr, first_ptr;\n        first_ptr = gfc.w_ptr;\n        /* first header to add to bitstream */\n        last_ptr = gfc.h_ptr - 1;\n        /* last header to add to bitstream */\n        if (last_ptr == -1)\n            last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n\n        /* add this many bits to bitstream so we can flush all headers */\n        flushbits = gfc.header[last_ptr].write_timing - totbit;\n        total_bytes_output.total = flushbits;\n\n        if (flushbits >= 0) {\n            /* if flushbits >= 0, some headers have not yet been written */\n            /* reduce flushbits by the size of the headers */\n            remaining_headers = 1 + last_ptr - first_ptr;\n            if (last_ptr < first_ptr)\n                remaining_headers = 1 + last_ptr - first_ptr\n                    + LameInternalFlags.MAX_HEADER_BUF;\n            flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n        }\n\n        /*\n         * finally, add some bits so that the last frame is complete these bits\n         * are not necessary to decode the last frame, but some decoders will\n         * ignore last frame if these bits are missing\n         */\n        bitsPerFrame = self.getframebits(gfp);\n        flushbits += bitsPerFrame;\n        total_bytes_output.total += bitsPerFrame;\n        /* round up: */\n        if ((total_bytes_output.total % 8) != 0)\n            total_bytes_output.total = 1 + (total_bytes_output.total / 8);\n        else\n            total_bytes_output.total = (total_bytes_output.total / 8);\n        total_bytes_output.total += bufByteIdx + 1;\n\n        if (flushbits < 0) {\n            System.err.println(\"strange error flushing buffer ... \\n\");\n        }\n        return flushbits;\n    }\n\n    this.flush_bitstream = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var l3_side;\n        var flushbits;\n        var last_ptr = gfc.h_ptr - 1;\n        /* last header to add to bitstream */\n        if (last_ptr == -1)\n            last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n        l3_side = gfc.l3_side;\n\n        if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n            return;\n        drain_into_ancillary(gfp, flushbits);\n\n        /* check that the 100% of the last frame has been written to bitstream */\n        assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n\n        /*\n         * we have padded out all frames with ancillary data, which is the same\n         * as filling the bitreservoir with ancillary data, so :\n         */\n        gfc.ResvSize = 0;\n        l3_side.main_data_begin = 0;\n\n        /* save the ReplayGain value */\n        if (gfc.findReplayGain) {\n            var RadioGain = ga.GetTitleGain(gfc.rgdata);\n            assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n            gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;\n            /* round to nearest */\n        }\n\n        /* find the gain and scale change required for no clipping */\n        if (gfc.findPeakSample) {\n            gfc.noclipGainChange = Math.ceil(Math\n                        .log10(gfc.PeakSample / 32767.0) * 20.0 * 10.0) | 0;\n            /* round up */\n\n            if (gfc.noclipGainChange > 0) {\n                /* clipping occurs */\n                if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0))\n                    gfc.noclipScale = (Math\n                        .floor((32767.0 / gfc.PeakSample) * 100.0) / 100.0);\n                /* round down */\n                else {\n                    /*\n                     * the user specified his own scaling factor. We could\n                     * suggest the scaling factor of\n                     * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually\n                     * very inaccurate. So we'd rather not advice him on the\n                     * scaling factor.\n                     */\n                    gfc.noclipScale = -1;\n                }\n            } else\n            /* no clipping */\n                gfc.noclipScale = -1;\n        }\n    };\n\n    this.add_dummy_byte = function (gfp, val, n) {\n        var gfc = gfp.internal_flags;\n        var i;\n\n        while (n-- > 0) {\n            putbits_noheaders(gfc, val, 8);\n\n            for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n                gfc.header[i].write_timing += 8;\n        }\n    };\n\n    /**\n     * This is called after a frame of audio has been quantized and coded. It\n     * will write the encoded audio to the bitstream. Note that from a layer3\n     * encoder's perspective the bit stream is primarily a series of main_data()\n     * blocks, with header and side information inserted at the proper locations\n     * to maintain framing. (See Figure A.7 in the IS).\n     */\n    this.format_bitstream = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var l3_side;\n        l3_side = gfc.l3_side;\n\n        var bitsPerFrame = this.getframebits(gfp);\n        drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n\n        encodeSideInfo2(gfp, bitsPerFrame);\n        var bits = 8 * gfc.sideinfo_len;\n        bits += writeMainData(gfp);\n        drain_into_ancillary(gfp, l3_side.resvDrain_post);\n        bits += l3_side.resvDrain_post;\n\n        l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n\n        /*\n         * compare number of bits needed to clear all buffered mp3 frames with\n         * what we think the resvsize is:\n         */\n        if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n            System.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n        }\n\n        /*\n         * compare main_data_begin for the next frame with what we think the\n         * resvsize is:\n         */\n        if ((l3_side.main_data_begin * 8) != gfc.ResvSize) {\n            System.err.printf(\"bit reservoir error: \\n\"\n                + \"l3_side.main_data_begin: %d \\n\"\n                + \"Resvoir size:             %d \\n\"\n                + \"resv drain (post)         %d \\n\"\n                + \"resv drain (pre)          %d \\n\"\n                + \"header and sideinfo:      %d \\n\"\n                + \"data bits:                %d \\n\"\n                + \"total bits:               %d (remainder: %d) \\n\"\n                + \"bitsperframe:             %d \\n\",\n                8 * l3_side.main_data_begin, gfc.ResvSize,\n                l3_side.resvDrain_post, l3_side.resvDrain_pre,\n                8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8\n                * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);\n\n            System.err.println(\"This is a fatal error.  It has several possible causes:\");\n            System.err.println(\"90%%  LAME compiled with buggy version of gcc using advanced optimizations\");\n            System.err.println(\" 9%%  Your system is overclocked\");\n            System.err.println(\" 1%%  bug in LAME encoding library\");\n\n            gfc.ResvSize = l3_side.main_data_begin * 8;\n        }\n        //;\n        assert(totbit % 8 == 0);\n\n        if (totbit > 1000000000) {\n            /*\n             * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset\n             * bit counter\n             */\n            var i;\n            for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n                gfc.header[i].write_timing -= totbit;\n            totbit = 0;\n        }\n\n        return 0;\n    };\n\n    /**\n     * <PRE>\n     * copy data out of the internal MP3 bit buffer into a user supplied\n     *       unsigned char buffer.\n     *\n     *       mp3data=0      indicates data in buffer is an id3tags and VBR tags\n     *       mp3data=1      data is real mp3 frame data.\n     * </PRE>\n     */\n    this.copy_buffer = function (gfc, buffer, bufferPos, size, mp3data) {\n        var minimum = bufByteIdx + 1;\n        if (minimum <= 0)\n            return 0;\n        if (size != 0 && minimum > size) {\n            /* buffer is too small */\n            return -1;\n        }\n        System.arraycopy(buf, 0, buffer, bufferPos, minimum);\n        bufByteIdx = -1;\n        bufBitIdx = 0;\n\n        if (mp3data != 0) {\n            var crc = new_int(1);\n            crc[0] = gfc.nMusicCRC;\n            vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n            gfc.nMusicCRC = crc[0];\n\n            /**\n             * sum number of bytes belonging to the mp3 stream this info will be\n             * written into the Xing/LAME header for seeking\n             */\n            if (minimum > 0) {\n                gfc.VBR_seek_table.nBytesWritten += minimum;\n            }\n\n            if (gfc.decode_on_the_fly) { /* decode the frame */\n                var pcm_buf = new_float_n([2, 1152]);\n                var mp3_in = minimum;\n                var samples_out = -1;\n                var i;\n\n                /* re-synthesis to pcm. Repeat until we get a samples_out=0 */\n                while (samples_out != 0) {\n\n                    samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer,\n                        bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);\n                    /*\n                     * samples_out = 0: need more data to decode samples_out =\n                     * -1: error. Lets assume 0 pcm output samples_out = number\n                     * of samples output\n                     */\n\n                    /*\n                     * set the lenght of the mp3 input buffer to zero, so that\n                     * in the next iteration of the loop we will be querying\n                     * mpglib about buffered data\n                     */\n                    mp3_in = 0;\n\n                    if (samples_out == -1) {\n                        /*\n                         * error decoding. Not fatal, but might screw up the\n                         * ReplayGain tag. What should we do? Ignore for now\n                         */\n                        samples_out = 0;\n                    }\n                    if (samples_out > 0) {\n                        /* process the PCM data */\n\n                        /*\n                         * this should not be possible, and indicates we have\n                         * overflown the pcm_buf buffer\n                         */\n                        assert(samples_out <= 1152);\n\n                        if (gfc.findPeakSample) {\n                            for (i = 0; i < samples_out; i++) {\n                                if (pcm_buf[0][i] > gfc.PeakSample)\n                                    gfc.PeakSample = pcm_buf[0][i];\n                                else if (-pcm_buf[0][i] > gfc.PeakSample)\n                                    gfc.PeakSample = -pcm_buf[0][i];\n                            }\n                            if (gfc.channels_out > 1)\n                                for (i = 0; i < samples_out; i++) {\n                                    if (pcm_buf[1][i] > gfc.PeakSample)\n                                        gfc.PeakSample = pcm_buf[1][i];\n                                    else if (-pcm_buf[1][i] > gfc.PeakSample)\n                                        gfc.PeakSample = -pcm_buf[1][i];\n                                }\n                        }\n\n                        if (gfc.findReplayGain)\n                            if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0,\n                                    pcm_buf[1], 0, samples_out,\n                                    gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n                                return -6;\n\n                    }\n                    /* if (samples_out>0) */\n                }\n                /* while (samples_out!=0) */\n            }\n            /* if (gfc.decode_on_the_fly) */\n\n        }\n        /* if (mp3data) */\n        return minimum;\n    };\n\n    this.init_bit_stream_w = function (gfc) {\n        buf = new_byte(Lame.LAME_MAXMP3BUFFER);\n\n        gfc.h_ptr = gfc.w_ptr = 0;\n        gfc.header[gfc.h_ptr].write_timing = 0;\n        bufByteIdx = -1;\n        bufBitIdx = 0;\n        totbit = 0;\n    };\n\n    // From machine.h\n\n\n}\n\nmodule.exports = BitStream;\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"cdce\");\nvar global = __webpack_require__(\"da84\");\nvar uncurryThis = __webpack_require__(\"e330\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar shared = __webpack_require__(\"c6cd\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = uncurryThis(store.get);\n  var wmhas = uncurryThis(store.has);\n  var wmset = uncurryThis(store.set);\n  set = function (it, metadata) {\n    if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"7156\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(\"1626\");\nvar isObject = __webpack_require__(\"861d\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n/***/ }),\n\n/***/ \"7234\":\n/***/ (function(module, exports) {\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n\n\n/***/ }),\n\n/***/ \"725d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GainAnalysis = __webpack_require__(\"2f21\");\n\nfunction ReplayGain() {\n    this.linprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n    /**\n     * left input samples, with pre-buffer\n     */\n    this.linpre = 0;\n    this.lstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n    /**\n     * left \"first step\" (i.e. post first filter) samples\n     */\n    this.lstep = 0;\n    this.loutbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n    /**\n     * left \"out\" (i.e. post second filter) samples\n     */\n    this.lout = 0;\n    this.rinprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n    /**\n     * right input samples ...\n     */\n    this.rinpre = 0;\n    this.rstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n    this.rstep = 0;\n    this.routbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n    this.rout = 0;\n    /**\n     * number of samples required to reach number of milliseconds required\n     * for RMS window\n     */\n    this.sampleWindow = 0;\n    this.totsamp = 0;\n    this.lsum = 0.;\n    this.rsum = 0.;\n    this.freqindex = 0;\n    this.first = 0;\n    this.A = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n    this.B = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n\n}\n\nmodule.exports = ReplayGain;\n\n\n/***/ }),\n\n/***/ \"7276\":\n/***/ (function(module, exports) {\n\n//package mp3;\n\nfunction CalcNoiseResult() {\n    /**\n     * sum of quantization noise > masking\n     */\n    this.over_noise = 0.;\n    /**\n     * sum of all quantization noise\n     */\n    this.tot_noise = 0.;\n    /**\n     * max quantization noise\n     */\n    this.max_noise = 0.;\n    /**\n     * number of quantization noise > masking\n     */\n    this.over_count = 0;\n    /**\n     * SSD-like cost of distorted bands\n     */\n    this.over_SSD = 0;\n    this.bits = 0;\n}\n\nmodule.exports = CalcNoiseResult;\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"74fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"2d78\");\n\n\n/***/ }),\n\n/***/ \"7656\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;\n\nvar _createTokenClass = __webpack_require__(\"46f3\");\n\nvar _class = __webpack_require__(\"254c\");\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n\n/**\n\tAbstract class used for manufacturing text tokens.\n\tPass in the value this token represents\n\n\t@class TextToken\n\t@abstract\n*/\nvar TextToken = (0, _createTokenClass.createTokenClass)();\nTextToken.prototype = {\n\ttoString: function toString() {\n\t\treturn this.v + '';\n\t}\n};\n\nfunction inheritsToken(value) {\n\tvar props = value ? { v: value } : {};\n\treturn (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);\n}\n\n/**\n\tA valid domain token\n\t@class DOMAIN\n\t@extends TextToken\n*/\nvar DOMAIN = inheritsToken();\n\n/**\n\t@class AT\n\t@extends TextToken\n*/\nvar AT = inheritsToken('@');\n\n/**\n\tRepresents a single colon `:` character\n\n\t@class COLON\n\t@extends TextToken\n*/\nvar COLON = inheritsToken(':');\n\n/**\n\t@class DOT\n\t@extends TextToken\n*/\nvar DOT = inheritsToken('.');\n\n/**\n\tA character class that can surround the URL, but which the URL cannot begin\n\tor end with. Does not include certain English punctuation like parentheses.\n\n\t@class PUNCTUATION\n\t@extends TextToken\n*/\nvar PUNCTUATION = inheritsToken();\n\n/**\n\tThe word localhost (by itself)\n\t@class LOCALHOST\n\t@extends TextToken\n*/\nvar LOCALHOST = inheritsToken();\n\n/**\n\tNewline token\n\t@class NL\n\t@extends TextToken\n*/\nvar NL = inheritsToken('\\n');\n\n/**\n\t@class NUM\n\t@extends TextToken\n*/\nvar NUM = inheritsToken();\n\n/**\n\t@class PLUS\n\t@extends TextToken\n*/\nvar PLUS = inheritsToken('+');\n\n/**\n\t@class POUND\n\t@extends TextToken\n*/\nvar POUND = inheritsToken('#');\n\n/**\n\tRepresents a web URL protocol. Supported types include\n\n\t* `http:`\n\t* `https:`\n\t* `ftp:`\n\t* `ftps:`\n\n\t@class PROTOCOL\n\t@extends TextToken\n*/\nvar PROTOCOL = inheritsToken();\n\n/**\n\tRepresents the start of the email URI protocol\n\n\t@class MAILTO\n\t@extends TextToken\n*/\nvar MAILTO = inheritsToken('mailto:');\n\n/**\n\t@class QUERY\n\t@extends TextToken\n*/\nvar QUERY = inheritsToken('?');\n\n/**\n\t@class SLASH\n\t@extends TextToken\n*/\nvar SLASH = inheritsToken('/');\n\n/**\n\t@class UNDERSCORE\n\t@extends TextToken\n*/\nvar UNDERSCORE = inheritsToken('_');\n\n/**\n\tOne ore more non-whitespace symbol.\n\t@class SYM\n\t@extends TextToken\n*/\nvar SYM = inheritsToken();\n\n/**\n\t@class TLD\n\t@extends TextToken\n*/\nvar TLD = inheritsToken();\n\n/**\n\tRepresents a string of consecutive whitespace characters\n\n\t@class WS\n\t@extends TextToken\n*/\nvar WS = inheritsToken();\n\n/**\n\tOpening/closing bracket classes\n*/\n\nvar OPENBRACE = inheritsToken('{');\nvar OPENBRACKET = inheritsToken('[');\nvar OPENANGLEBRACKET = inheritsToken('<');\nvar OPENPAREN = inheritsToken('(');\nvar CLOSEBRACE = inheritsToken('}');\nvar CLOSEBRACKET = inheritsToken(']');\nvar CLOSEANGLEBRACKET = inheritsToken('>');\nvar CLOSEPAREN = inheritsToken(')');\n\nvar AMPERSAND = inheritsToken('&');\n\nexports.Base = TextToken;\nexports.DOMAIN = DOMAIN;\nexports.AT = AT;\nexports.COLON = COLON;\nexports.DOT = DOT;\nexports.PUNCTUATION = PUNCTUATION;\nexports.LOCALHOST = LOCALHOST;\nexports.NL = NL;\nexports.NUM = NUM;\nexports.PLUS = PLUS;\nexports.POUND = POUND;\nexports.QUERY = QUERY;\nexports.PROTOCOL = PROTOCOL;\nexports.MAILTO = MAILTO;\nexports.SLASH = SLASH;\nexports.UNDERSCORE = UNDERSCORE;\nexports.SYM = SYM;\nexports.TLD = TLD;\nexports.WS = WS;\nexports.OPENBRACE = OPENBRACE;\nexports.OPENBRACKET = OPENBRACKET;\nexports.OPENANGLEBRACKET = OPENANGLEBRACKET;\nexports.OPENPAREN = OPENPAREN;\nexports.CLOSEBRACE = CLOSEBRACE;\nexports.CLOSEBRACKET = CLOSEBRACKET;\nexports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\nexports.CLOSEPAREN = CLOSEPAREN;\nexports.AMPERSAND = AMPERSAND;\n\n/***/ }),\n\n/***/ \"77d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\n__webpack_require__(\"1d02\");\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(\"825a\");\nvar definePropertiesModule = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"8100\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\nfunction FFT() {\n\n    var window = new_float(Encoder.BLKSIZE);\n    var window_s = new_float(Encoder.BLKSIZE_s / 2);\n\n    var costab = [\n        9.238795325112867e-01, 3.826834323650898e-01,\n        9.951847266721969e-01, 9.801714032956060e-02,\n        9.996988186962042e-01, 2.454122852291229e-02,\n        9.999811752826011e-01, 6.135884649154475e-03\n    ];\n\n    function fht(fz, fzPos, n) {\n        var tri = 0;\n        var k4;\n        var fi;\n        var gi;\n\n        n <<= 1;\n        /* to get BLKSIZE, because of 3DNow! ASM routine */\n        var fn = fzPos + n;\n        k4 = 4;\n        do {\n            var s1, c1;\n            var i, k1, k2, k3, kx;\n            kx = k4 >> 1;\n            k1 = k4;\n            k2 = k4 << 1;\n            k3 = k2 + k1;\n            k4 = k2 << 1;\n            fi = fzPos;\n            gi = fi + kx;\n            do {\n                var f0, f1, f2, f3;\n                f1 = fz[fi + 0] - fz[fi + k1];\n                f0 = fz[fi + 0] + fz[fi + k1];\n                f3 = fz[fi + k2] - fz[fi + k3];\n                f2 = fz[fi + k2] + fz[fi + k3];\n                fz[fi + k2] = f0 - f2;\n                fz[fi + 0] = f0 + f2;\n                fz[fi + k3] = f1 - f3;\n                fz[fi + k1] = f1 + f3;\n                f1 = fz[gi + 0] - fz[gi + k1];\n                f0 = fz[gi + 0] + fz[gi + k1];\n                f3 = (Util.SQRT2 * fz[gi + k3]);\n                f2 = (Util.SQRT2 * fz[gi + k2]);\n                fz[gi + k2] = f0 - f2;\n                fz[gi + 0] = f0 + f2;\n                fz[gi + k3] = f1 - f3;\n                fz[gi + k1] = f1 + f3;\n                gi += k4;\n                fi += k4;\n            } while (fi < fn);\n            c1 = costab[tri + 0];\n            s1 = costab[tri + 1];\n            for (i = 1; i < kx; i++) {\n                var c2, s2;\n                c2 = 1 - (2 * s1) * s1;\n                s2 = (2 * s1) * c1;\n                fi = fzPos + i;\n                gi = fzPos + k1 - i;\n                do {\n                    var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n                    b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n                    a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n                    f1 = fz[fi + 0] - a;\n                    f0 = fz[fi + 0] + a;\n                    g1 = fz[gi + 0] - b;\n                    g0 = fz[gi + 0] + b;\n                    b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n                    a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n                    f3 = fz[fi + k2] - a;\n                    f2 = fz[fi + k2] + a;\n                    g3 = fz[gi + k2] - b;\n                    g2 = fz[gi + k2] + b;\n                    b = s1 * f2 - c1 * g3;\n                    a = c1 * f2 + s1 * g3;\n                    fz[fi + k2] = f0 - a;\n                    fz[fi + 0] = f0 + a;\n                    fz[gi + k3] = g1 - b;\n                    fz[gi + k1] = g1 + b;\n                    b = c1 * g2 - s1 * f3;\n                    a = s1 * g2 + c1 * f3;\n                    fz[gi + k2] = g0 - a;\n                    fz[gi + 0] = g0 + a;\n                    fz[fi + k3] = f1 - b;\n                    fz[fi + k1] = f1 + b;\n                    gi += k4;\n                    fi += k4;\n                } while (fi < fn);\n                c2 = c1;\n                c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n                s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n            }\n            tri += 2;\n        } while (k4 < n);\n    }\n\n    var rv_tbl = [0x00, 0x80, 0x40,\n        0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10,\n        0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70,\n        0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28,\n        0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58,\n        0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04,\n        0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64,\n        0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34,\n        0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c,\n        0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c,\n        0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c,\n        0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22,\n        0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52,\n        0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a,\n        0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a,\n        0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a,\n        0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46,\n        0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16,\n        0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76,\n        0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e,\n        0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e,\n        0xde, 0x3e, 0xbe, 0x7e, 0xfe];\n\n    this.fft_short = function (gfc, x_real, chn, buffer, bufPos) {\n        for (var b = 0; b < 3; b++) {\n            var x = Encoder.BLKSIZE_s / 2;\n            var k = 0xffff & ((576 / 3) * (b + 1));\n            var j = Encoder.BLKSIZE_s / 8 - 1;\n            do {\n                var f0, f1, f2, f3, w;\n                var i = rv_tbl[j << 2] & 0xff;\n\n                f0 = window_s[i] * buffer[chn][bufPos + i + k];\n                w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];\n                f1 = f0 - w;\n                f0 = f0 + w;\n                f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];\n                w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];\n                f3 = f2 - w;\n                f2 = f2 + w;\n\n                x -= 4;\n                x_real[b][x + 0] = f0 + f2;\n                x_real[b][x + 2] = f0 - f2;\n                x_real[b][x + 1] = f1 + f3;\n                x_real[b][x + 3] = f1 - f3;\n\n                f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];\n                w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];\n                f1 = f0 - w;\n                f0 = f0 + w;\n                f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];\n                w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];\n                f3 = f2 - w;\n                f2 = f2 + w;\n\n                x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n                x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n                x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n                x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n            } while (--j >= 0);\n\n            fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n            /* BLKSIZE_s/2 because of 3DNow! ASM routine */\n            /* BLKSIZE/2 because of 3DNow! ASM routine */\n        }\n    }\n\n    this.fft_long = function (gfc, y, chn, buffer, bufPos) {\n        var jj = Encoder.BLKSIZE / 8 - 1;\n        var x = Encoder.BLKSIZE / 2;\n\n        do {\n            var f0, f1, f2, f3, w;\n            var i = rv_tbl[jj] & 0xff;\n            f0 = window[i] * buffer[chn][bufPos + i];\n            w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];\n            f1 = f0 - w;\n            f0 = f0 + w;\n            f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];\n            w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];\n            f3 = f2 - w;\n            f2 = f2 + w;\n\n            x -= 4;\n            y[x + 0] = f0 + f2;\n            y[x + 2] = f0 - f2;\n            y[x + 1] = f1 + f3;\n            y[x + 3] = f1 - f3;\n\n            f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];\n            w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];\n            f1 = f0 - w;\n            f0 = f0 + w;\n            f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];\n            w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];\n            f3 = f2 - w;\n            f2 = f2 + w;\n\n            y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n            y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n            y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n            y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n        } while (--jj >= 0);\n\n        fht(y, x, Encoder.BLKSIZE / 2);\n        /* BLKSIZE/2 because of 3DNow! ASM routine */\n    }\n\n    this.init_fft = function (gfc) {\n        /* The type of window used here will make no real difference, but */\n        /*\n         * in the interest of merging nspsytune stuff - switch to blackman\n         * window\n         */\n        for (var i = 0; i < Encoder.BLKSIZE; i++)\n            /* blackman window */\n            window[i] = (0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5)\n                / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5)\n                / Encoder.BLKSIZE));\n\n        for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++)\n            window_s[i] = (0.5 * (1.0 - Math.cos(2.0 * Math.PI\n                * (i + 0.5) / Encoder.BLKSIZE_s)));\n\n    }\n\n}\n\nmodule.exports = FFT;\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(\"1626\");\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = SPECIAL_DOCUMENT_ALL ? function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n\n/***/ \"874e\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export default */\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"da58\");\n\n\nfunction noop() { }\nfunction run(fn) {\n    return fn();\n}\nfunction blank_object() {\n    return Object.create(null);\n}\nfunction run_all(fns) {\n    fns.forEach(run);\n}\nfunction is_function(thing) {\n    return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n    if (!src_url_equal_anchor) {\n        src_url_equal_anchor = document.createElement('a');\n    }\n    src_url_equal_anchor.href = url;\n    return element_src === src_url_equal_anchor.href;\n}\nfunction is_empty(obj) {\n    return Object.keys(obj).length === 0;\n}\nfunction action_destroyer(action_result) {\n    return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction append(target, node) {\n    target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n    target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n    node.parentNode.removeChild(node);\n}\nfunction element(name) {\n    return document.createElement(name);\n}\nfunction text(data) {\n    return document.createTextNode(data);\n}\nfunction listen(node, event, handler, options) {\n    node.addEventListener(event, handler, options);\n    return () => node.removeEventListener(event, handler, options);\n}\nfunction attr(node, attribute, value) {\n    if (value == null)\n        node.removeAttribute(attribute);\n    else if (node.getAttribute(attribute) !== value)\n        node.setAttribute(attribute, value);\n}\nfunction set_data(text, data) {\n    data = '' + data;\n    if (text.wholeText !== data)\n        text.data = data;\n}\nfunction set_input_value(input, value) {\n    input.value = value == null ? '' : value;\n}\nfunction set_style(node, key, value, important) {\n    if (value === null) {\n        node.style.removeProperty(key);\n    }\n    else {\n        node.style.setProperty(key, value, important ? 'important' : '');\n    }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n    current_component = component;\n}\n\nconst dirty_components = [];\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n    if (!update_scheduled) {\n        update_scheduled = true;\n        resolved_promise.then(flush);\n    }\n}\nfunction tick() {\n    schedule_update();\n    return resolved_promise;\n}\nfunction add_render_callback(fn) {\n    render_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n//    for afterUpdates called during the initial onMount, which are called in\n//    reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n//    dirty_components array and will cause a reentrant call to flush(). Because\n//    the flush index is kept outside the function, the reentrant call will pick\n//    up where the earlier call left off and go through all dirty components. The\n//    current_component value is saved and restored so that the reentrant call will\n//    not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n//    callback called a second time; the seen_callbacks set, outside the flush()\n//    function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n    const saved_component = current_component;\n    do {\n        // first, call beforeUpdate functions\n        // and update components\n        while (flushidx < dirty_components.length) {\n            const component = dirty_components[flushidx];\n            flushidx++;\n            set_current_component(component);\n            update(component.$$);\n        }\n        set_current_component(null);\n        dirty_components.length = 0;\n        flushidx = 0;\n        while (binding_callbacks.length)\n            binding_callbacks.pop()();\n        // then, once components are updated, call\n        // afterUpdate functions. This may cause\n        // subsequent updates...\n        for (let i = 0; i < render_callbacks.length; i += 1) {\n            const callback = render_callbacks[i];\n            if (!seen_callbacks.has(callback)) {\n                // ...so guard against infinite loops\n                seen_callbacks.add(callback);\n                callback();\n            }\n        }\n        render_callbacks.length = 0;\n    } while (dirty_components.length);\n    while (flush_callbacks.length) {\n        flush_callbacks.pop()();\n    }\n    update_scheduled = false;\n    seen_callbacks.clear();\n    set_current_component(saved_component);\n}\nfunction update($$) {\n    if ($$.fragment !== null) {\n        $$.update();\n        run_all($$.before_update);\n        const dirty = $$.dirty;\n        $$.dirty = [-1];\n        $$.fragment && $$.fragment.p($$.ctx, dirty);\n        $$.after_update.forEach(add_render_callback);\n    }\n}\nconst outroing = new Set();\nfunction transition_in(block, local) {\n    if (block && block.i) {\n        outroing.delete(block);\n        block.i(local);\n    }\n}\n\nconst globals = (typeof window !== 'undefined'\n    ? window\n    : typeof globalThis !== 'undefined'\n        ? globalThis\n        : global);\n\nfunction destroy_block(block, lookup) {\n    block.d(1);\n    lookup.delete(block.key);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n    let o = old_blocks.length;\n    let n = list.length;\n    let i = o;\n    const old_indexes = {};\n    while (i--)\n        old_indexes[old_blocks[i].key] = i;\n    const new_blocks = [];\n    const new_lookup = new Map();\n    const deltas = new Map();\n    i = n;\n    while (i--) {\n        const child_ctx = get_context(ctx, list, i);\n        const key = get_key(child_ctx);\n        let block = lookup.get(key);\n        if (!block) {\n            block = create_each_block(key, child_ctx);\n            block.c();\n        }\n        else if (dynamic) {\n            block.p(child_ctx, dirty);\n        }\n        new_lookup.set(key, new_blocks[i] = block);\n        if (key in old_indexes)\n            deltas.set(key, Math.abs(i - old_indexes[key]));\n    }\n    const will_move = new Set();\n    const did_move = new Set();\n    function insert(block) {\n        transition_in(block, 1);\n        block.m(node, next);\n        lookup.set(block.key, block);\n        next = block.first;\n        n--;\n    }\n    while (o && n) {\n        const new_block = new_blocks[n - 1];\n        const old_block = old_blocks[o - 1];\n        const new_key = new_block.key;\n        const old_key = old_block.key;\n        if (new_block === old_block) {\n            // do nothing\n            next = new_block.first;\n            o--;\n            n--;\n        }\n        else if (!new_lookup.has(old_key)) {\n            // remove old block\n            destroy(old_block, lookup);\n            o--;\n        }\n        else if (!lookup.has(new_key) || will_move.has(new_key)) {\n            insert(new_block);\n        }\n        else if (did_move.has(old_key)) {\n            o--;\n        }\n        else if (deltas.get(new_key) > deltas.get(old_key)) {\n            did_move.add(new_key);\n            insert(new_block);\n        }\n        else {\n            will_move.add(old_key);\n            o--;\n        }\n    }\n    while (o--) {\n        const old_block = old_blocks[o];\n        if (!new_lookup.has(old_block.key))\n            destroy(old_block, lookup);\n    }\n    while (n)\n        insert(new_blocks[n - 1]);\n    return new_blocks;\n}\nfunction mount_component(component, target, anchor, customElement) {\n    const { fragment, on_mount, on_destroy, after_update } = component.$$;\n    fragment && fragment.m(target, anchor);\n    if (!customElement) {\n        // onMount happens before the initial afterUpdate\n        add_render_callback(() => {\n            const new_on_destroy = on_mount.map(run).filter(is_function);\n            if (on_destroy) {\n                on_destroy.push(...new_on_destroy);\n            }\n            else {\n                // Edge case - component was destroyed immediately,\n                // most likely as a result of a binding initialising\n                run_all(new_on_destroy);\n            }\n            component.$$.on_mount = [];\n        });\n    }\n    after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n    const $$ = component.$$;\n    if ($$.fragment !== null) {\n        run_all($$.on_destroy);\n        $$.fragment && $$.fragment.d(detaching);\n        // TODO null out other refs, including component.$$ (but need to\n        // preserve final state?)\n        $$.on_destroy = $$.fragment = null;\n        $$.ctx = [];\n    }\n}\nfunction make_dirty(component, i) {\n    if (component.$$.dirty[0] === -1) {\n        dirty_components.push(component);\n        schedule_update();\n        component.$$.dirty.fill(0);\n    }\n    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n    const parent_component = current_component;\n    set_current_component(component);\n    const $$ = component.$$ = {\n        fragment: null,\n        ctx: null,\n        // state\n        props,\n        update: noop,\n        not_equal,\n        bound: blank_object(),\n        // lifecycle\n        on_mount: [],\n        on_destroy: [],\n        on_disconnect: [],\n        before_update: [],\n        after_update: [],\n        context: new Map((parent_component ? parent_component.$$.context : [])),\n        // everything else\n        callbacks: blank_object(),\n        dirty,\n        skip_bound: false,\n        root: options.target || parent_component.$$.root\n    };\n    append_styles && append_styles($$.root);\n    let ready = false;\n    $$.ctx = instance\n        ? instance(component, options.props || {}, (i, ret, ...rest) => {\n            const value = rest.length ? rest[0] : ret;\n            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n                if (!$$.skip_bound && $$.bound[i])\n                    $$.bound[i](value);\n                if (ready)\n                    make_dirty(component, i);\n            }\n            return ret;\n        })\n        : [];\n    $$.update();\n    ready = true;\n    run_all($$.before_update);\n    // `false` as a special case of no DOM component\n    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n    if (options.target) {\n        {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.c();\n        }\n        mount_component(component, options.target, undefined, undefined);\n        flush();\n    }\n    set_current_component(parent_component);\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n    $destroy() {\n        destroy_component(this, 1);\n        this.$destroy = noop;\n    }\n    $on(type, callback) {\n        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n        callbacks.push(callback);\n        return () => {\n            const index = callbacks.indexOf(callback);\n            if (index !== -1)\n                callbacks.splice(index, 1);\n        };\n    }\n    $set($$props) {\n        if (this.$$set && !is_empty($$props)) {\n            this.$$.skip_bound = true;\n            this.$$set($$props);\n            this.$$.skip_bound = false;\n        }\n    }\n}\n\n// via https://unpkg.com/browse/emojibase-data@6.0.0/meta/groups.json\nconst allGroups = [\n  [-1, '✨', 'custom'],\n  [0, '😀', 'smileys-emotion'],\n  [1, '👋', 'people-body'],\n  [3, '🐱', 'animals-nature'],\n  [4, '🍎', 'food-drink'],\n  [5, '🏠️', 'travel-places'],\n  [6, '⚽', 'activities'],\n  [7, '📝', 'objects'],\n  [8, '⛔️', 'symbols'],\n  [9, '🏁', 'flags']\n].map(([id, emoji, name]) => ({ id, emoji, name }));\n\nconst groups = allGroups.slice(1);\nconst customGroup = allGroups[0];\n\nconst MIN_SEARCH_TEXT_LENGTH = 2;\nconst NUM_SKIN_TONES = 6;\n\n/* istanbul ignore next */\nconst rIC = typeof requestIdleCallback === 'function' ? requestIdleCallback : setTimeout;\n\n// check for ZWJ (zero width joiner) character\nfunction hasZwj (emoji) {\n  return emoji.unicode.includes('\\u200d')\n}\n\n// Find one good representative emoji from each version to test by checking its color.\n// Ideally it should have color in the center. For some inspiration, see:\n// https://about.gitlab.com/blog/2018/05/30/journey-in-native-unicode-emoji/\n//\n// Note that for certain versions (12.1, 13.1), there is no point in testing them explicitly, because\n// all the emoji from this version are compound-emoji from previous versions. So they would pass a color\n// test, even in browsers that display them as double emoji. (E.g. \"face in clouds\" might render as\n// \"face without mouth\" plus \"fog\".) These emoji can only be filtered using the width test,\n// which happens in checkZwjSupport.js.\nconst versionsAndTestEmoji = {\n  '🫠': 14,\n  '🥲': 13.1, // smiling face with tear, technically from v13 but see note above\n  '🥻': 12.1, // sari, technically from v12 but see note above\n  '🥰': 11,\n  '🤩': 5,\n  '👱‍♀️': 4,\n  '🤣': 3,\n  '👁️‍🗨️': 2,\n  '😀': 1,\n  '😐️': 0.7,\n  '😃': 0.6\n};\n\nconst TIMEOUT_BEFORE_LOADING_MESSAGE = 1000; // 1 second\nconst DEFAULT_SKIN_TONE_EMOJI = '🖐️';\nconst DEFAULT_NUM_COLUMNS = 8;\n\n// Based on https://fivethirtyeight.com/features/the-100-most-used-emojis/ and\n// https://blog.emojipedia.org/facebook-reveals-most-and-least-used-emojis/ with\n// a bit of my own curation. (E.g. avoid the \"OK\" gesture because of connotations:\n// https://emojipedia.org/ok-hand/)\nconst MOST_COMMONLY_USED_EMOJI = [\n  '😊',\n  '😒',\n  '♥️',\n  '👍️',\n  '😍',\n  '😂',\n  '😭',\n  '☺️',\n  '😔',\n  '😩',\n  '😏',\n  '💕',\n  '🙌',\n  '😘'\n];\n\n// It's important to list Twemoji Mozilla before everything else, because Mozilla bundles their\n// own font on some platforms (notably Windows and Linux as of this writing). Typically Mozilla\n// updates faster than the underlying OS, and we don't want to render older emoji in one font and\n// newer emoji in another font:\n// https://github.com/nolanlawson/emoji-picker-element/pull/268#issuecomment-1073347283\nconst FONT_FAMILY = '\"Twemoji Mozilla\",\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",' +\n  '\"Noto Color Emoji\",\"EmojiOne Color\",\"Android Emoji\",sans-serif';\n\n/* istanbul ignore next */\nconst DEFAULT_CATEGORY_SORTING = (a, b) => a < b ? -1 : a > b ? 1 : 0;\n\n// Test if an emoji is supported by rendering it to canvas and checking that the color is not black\n\nconst getTextFeature = (text, color) => {\n  const canvas = document.createElement('canvas');\n  canvas.width = canvas.height = 1;\n\n  const ctx = canvas.getContext('2d');\n  ctx.textBaseline = 'top';\n  ctx.font = `100px ${FONT_FAMILY}`;\n  ctx.fillStyle = color;\n  ctx.scale(0.01, 0.01);\n  ctx.fillText(text, 0, 0);\n\n  return ctx.getImageData(0, 0, 1, 1).data\n};\n\nconst compareFeatures = (feature1, feature2) => {\n  const feature1Str = [...feature1].join(',');\n  const feature2Str = [...feature2].join(',');\n  // This is RGBA, so for 0,0,0, we are checking that the first RGB is not all zeroes.\n  // Most of the time when unsupported this is 0,0,0,0, but on Chrome on Mac it is\n  // 0,0,0,61 - there is a transparency here.\n  return feature1Str === feature2Str && !feature1Str.startsWith('0,0,0,')\n};\n\nfunction testColorEmojiSupported (text) {\n  // Render white and black and then compare them to each other and ensure they're the same\n  // color, and neither one is black. This shows that the emoji was rendered in color.\n  const feature1 = getTextFeature(text, '#000');\n  const feature2 = getTextFeature(text, '#fff');\n  return feature1 && feature2 && compareFeatures(feature1, feature2)\n}\n\n// rather than check every emoji ever, which would be expensive, just check some representatives from the\n\nfunction determineEmojiSupportLevel () {\n  const entries = Object.entries(versionsAndTestEmoji);\n  try {\n    // start with latest emoji and work backwards\n    for (const [emoji, version] of entries) {\n      if (testColorEmojiSupported(emoji)) {\n        return version\n      }\n    }\n  } catch (e) { // canvas error\n  } finally {\n  }\n  // In case of an error, be generous and just assume all emoji are supported (e.g. for canvas errors\n  // due to anti-fingerprinting add-ons). Better to show some gray boxes than nothing at all.\n  return entries[0][1] // first one in the list is the most recent version\n}\n\n// Check which emojis we know for sure aren't supported, based on Unicode version level\nconst emojiSupportLevelPromise = new Promise(resolve => (\n  rIC(() => (\n    resolve(determineEmojiSupportLevel()) // delay so ideally this can run while IDB is first populating\n  ))\n));\n// determine which emojis containing ZWJ (zero width joiner) characters\n// are supported (rendered as one glyph) rather than unsupported (rendered as two or more glyphs)\nconst supportedZwjEmojis = new Map();\n\nconst VARIATION_SELECTOR = '\\ufe0f';\nconst SKINTONE_MODIFIER = '\\ud83c';\nconst ZWJ = '\\u200d';\nconst LIGHT_SKIN_TONE = 0x1F3FB;\nconst LIGHT_SKIN_TONE_MODIFIER = 0xdffb;\n\n// TODO: this is a naive implementation, we can improve it later\n// It's only used for the skintone picker, so as long as people don't customize with\n// really exotic emoji then it should work fine\nfunction applySkinTone (str, skinTone) {\n  if (skinTone === 0) {\n    return str\n  }\n  const zwjIndex = str.indexOf(ZWJ);\n  if (zwjIndex !== -1) {\n    return str.substring(0, zwjIndex) +\n      String.fromCodePoint(LIGHT_SKIN_TONE + skinTone - 1) +\n      str.substring(zwjIndex)\n  }\n  if (str.endsWith(VARIATION_SELECTOR)) {\n    str = str.substring(0, str.length - 1);\n  }\n  return str + SKINTONE_MODIFIER + String.fromCodePoint(LIGHT_SKIN_TONE_MODIFIER + skinTone - 1)\n}\n\nfunction halt (event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n\n// Implementation left/right or up/down navigation, circling back when you\n// reach the start/end of the list\nfunction incrementOrDecrement (decrement, val, arr) {\n  val += (decrement ? -1 : 1);\n  if (val < 0) {\n    val = arr.length - 1;\n  } else if (val >= arr.length) {\n    val = 0;\n  }\n  return val\n}\n\n// like lodash's uniqBy but much smaller\nfunction uniqBy (arr, func) {\n  const set = new Set();\n  const res = [];\n  for (const item of arr) {\n    const key = func(item);\n    if (!set.has(key)) {\n      set.add(key);\n      res.push(item);\n    }\n  }\n  return res\n}\n\n// We don't need all the data on every emoji, and there are specific things we need\n// for the UI, so build a \"view model\" from the emoji object we got from the database\n\nfunction summarizeEmojisForUI (emojis, emojiSupportLevel) {\n  const toSimpleSkinsMap = skins => {\n    const res = {};\n    for (const skin of skins) {\n      // ignore arrays like [1, 2] with multiple skin tones\n      // also ignore variants that are in an unsupported emoji version\n      // (these do exist - variants from a different version than their base emoji)\n      if (typeof skin.tone === 'number' && skin.version <= emojiSupportLevel) {\n        res[skin.tone] = skin.unicode;\n      }\n    }\n    return res\n  };\n\n  return emojis.map(({ unicode, skins, shortcodes, url, name, category }) => ({\n    unicode,\n    name,\n    shortcodes,\n    url,\n    category,\n    id: unicode || name,\n    skins: skins && toSimpleSkinsMap(skins),\n    title: (shortcodes || []).join(', ')\n  }))\n}\n\n// import rAF from one place so that the bundle size is a bit smaller\nconst rAF = requestAnimationFrame;\n\n// Svelte action to calculate the width of an element and auto-update\n\nlet resizeObserverSupported = typeof ResizeObserver === 'function';\n\nfunction calculateWidth (node, onUpdate) {\n  let resizeObserver;\n  if (resizeObserverSupported) {\n    resizeObserver = new ResizeObserver(entries => (\n      onUpdate(entries[0].contentRect.width)\n    ));\n    resizeObserver.observe(node);\n  } else { // just set the width once, don't bother trying to track it\n    rAF(() => (\n      onUpdate(node.getBoundingClientRect().width)\n    ));\n  }\n\n  // cleanup function (called on destroy)\n  return {\n    destroy () {\n      if (resizeObserver) {\n        resizeObserver.disconnect();\n      }\n    }\n  }\n}\n\n// get the width of the text inside of a DOM node, via https://stackoverflow.com/a/59525891/680742\nfunction calculateTextWidth (node) {\n  /* istanbul ignore else */\n  {\n    const range = document.createRange();\n    range.selectNode(node.firstChild);\n    return range.getBoundingClientRect().width\n  }\n}\n\nlet baselineEmojiWidth;\n\nfunction checkZwjSupport (zwjEmojisToCheck, baselineEmoji, emojiToDomNode) {\n  for (const emoji of zwjEmojisToCheck) {\n    const domNode = emojiToDomNode(emoji);\n    const emojiWidth = calculateTextWidth(domNode);\n    if (typeof baselineEmojiWidth === 'undefined') { // calculate the baseline emoji width only once\n      baselineEmojiWidth = calculateTextWidth(baselineEmoji);\n    }\n    // On Windows, some supported emoji are ~50% bigger than the baseline emoji, but what we really want to guard\n    // against are the ones that are 2x the size, because those are truly broken (person with red hair = person with\n    // floating red wig, black cat = cat with black square, polar bear = bear with snowflake, etc.)\n    // So here we set the threshold at 1.8 times the size of the baseline emoji.\n    const supported = emojiWidth / 1.8 < baselineEmojiWidth;\n    supportedZwjEmojis.set(emoji.unicode, supported);\n  }\n}\n\n// Measure after style/layout are complete\n\nconst requestPostAnimationFrame = callback => {\n  rAF(() => {\n    setTimeout(callback);\n  });\n};\n\n// like lodash's uniq\n\nfunction uniq (arr) {\n  return uniqBy(arr, _ => _)\n}\n\n/* src/picker/components/Picker/Picker.svelte generated by Svelte v3.46.4 */\n\nconst { Map: Map_1 } = globals;\n\nfunction get_each_context(ctx, list, i) {\n\tconst child_ctx = ctx.slice();\n\tchild_ctx[63] = list[i];\n\tchild_ctx[65] = i;\n\treturn child_ctx;\n}\n\nfunction get_each_context_1(ctx, list, i) {\n\tconst child_ctx = ctx.slice();\n\tchild_ctx[66] = list[i];\n\tchild_ctx[65] = i;\n\treturn child_ctx;\n}\n\nfunction get_each_context_2(ctx, list, i) {\n\tconst child_ctx = ctx.slice();\n\tchild_ctx[63] = list[i];\n\tchild_ctx[65] = i;\n\treturn child_ctx;\n}\n\nfunction get_each_context_3(ctx, list, i) {\n\tconst child_ctx = ctx.slice();\n\tchild_ctx[69] = list[i];\n\treturn child_ctx;\n}\n\nfunction get_each_context_4(ctx, list, i) {\n\tconst child_ctx = ctx.slice();\n\tchild_ctx[72] = list[i];\n\tchild_ctx[65] = i;\n\treturn child_ctx;\n}\n\n// (43:38) {#each skinTones as skinTone, i (skinTone)}\nfunction create_each_block_4(key_1, ctx) {\n\tlet div;\n\tlet t_value = /*skinTone*/ ctx[72] + \"\";\n\tlet t;\n\tlet div_id_value;\n\tlet div_class_value;\n\tlet div_aria_selected_value;\n\tlet div_title_value;\n\tlet div_aria_label_value;\n\n\treturn {\n\t\tkey: key_1,\n\t\tfirst: null,\n\t\tc() {\n\t\t\tdiv = element(\"div\");\n\t\t\tt = text(t_value);\n\t\t\tattr(div, \"id\", div_id_value = \"skintone-\" + /*i*/ ctx[65]);\n\n\t\t\tattr(div, \"class\", div_class_value = \"emoji hide-focus \" + (/*i*/ ctx[65] === /*activeSkinTone*/ ctx[20]\n\t\t\t? 'active'\n\t\t\t: ''));\n\n\t\t\tattr(div, \"aria-selected\", div_aria_selected_value = /*i*/ ctx[65] === /*activeSkinTone*/ ctx[20]);\n\t\t\tattr(div, \"role\", \"option\");\n\t\t\tattr(div, \"title\", div_title_value = /*i18n*/ ctx[0].skinTones[/*i*/ ctx[65]]);\n\t\t\tattr(div, \"tabindex\", \"-1\");\n\t\t\tattr(div, \"aria-label\", div_aria_label_value = /*i18n*/ ctx[0].skinTones[/*i*/ ctx[65]]);\n\t\t\tthis.first = div;\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, div, anchor);\n\t\t\tappend(div, t);\n\t\t},\n\t\tp(new_ctx, dirty) {\n\t\t\tctx = new_ctx;\n\t\t\tif (dirty[0] & /*skinTones*/ 512 && t_value !== (t_value = /*skinTone*/ ctx[72] + \"\")) set_data(t, t_value);\n\n\t\t\tif (dirty[0] & /*skinTones*/ 512 && div_id_value !== (div_id_value = \"skintone-\" + /*i*/ ctx[65])) {\n\t\t\t\tattr(div, \"id\", div_id_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTones, activeSkinTone*/ 1049088 && div_class_value !== (div_class_value = \"emoji hide-focus \" + (/*i*/ ctx[65] === /*activeSkinTone*/ ctx[20]\n\t\t\t? 'active'\n\t\t\t: ''))) {\n\t\t\t\tattr(div, \"class\", div_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTones, activeSkinTone*/ 1049088 && div_aria_selected_value !== (div_aria_selected_value = /*i*/ ctx[65] === /*activeSkinTone*/ ctx[20])) {\n\t\t\t\tattr(div, \"aria-selected\", div_aria_selected_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n, skinTones*/ 513 && div_title_value !== (div_title_value = /*i18n*/ ctx[0].skinTones[/*i*/ ctx[65]])) {\n\t\t\t\tattr(div, \"title\", div_title_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n, skinTones*/ 513 && div_aria_label_value !== (div_aria_label_value = /*i18n*/ ctx[0].skinTones[/*i*/ ctx[65]])) {\n\t\t\t\tattr(div, \"aria-label\", div_aria_label_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(div);\n\t\t}\n\t};\n}\n\n// (53:33) {#each groups as group (group.id)}\nfunction create_each_block_3(key_1, ctx) {\n\tlet button;\n\tlet div;\n\tlet t_value = /*group*/ ctx[69].emoji + \"\";\n\tlet t;\n\tlet button_aria_controls_value;\n\tlet button_aria_label_value;\n\tlet button_aria_selected_value;\n\tlet button_title_value;\n\tlet mounted;\n\tlet dispose;\n\n\tfunction click_handler() {\n\t\treturn /*click_handler*/ ctx[49](/*group*/ ctx[69]);\n\t}\n\n\treturn {\n\t\tkey: key_1,\n\t\tfirst: null,\n\t\tc() {\n\t\t\tbutton = element(\"button\");\n\t\t\tdiv = element(\"div\");\n\t\t\tt = text(t_value);\n\t\t\tattr(div, \"class\", \"nav-emoji emoji\");\n\t\t\tattr(button, \"role\", \"tab\");\n\t\t\tattr(button, \"class\", \"nav-button\");\n\t\t\tattr(button, \"aria-controls\", button_aria_controls_value = \"tab-\" + /*group*/ ctx[69].id);\n\t\t\tattr(button, \"aria-label\", button_aria_label_value = /*i18n*/ ctx[0].categories[/*group*/ ctx[69].name]);\n\t\t\tattr(button, \"aria-selected\", button_aria_selected_value = !/*searchMode*/ ctx[4] && /*currentGroup*/ ctx[13].id === /*group*/ ctx[69].id);\n\t\t\tattr(button, \"title\", button_title_value = /*i18n*/ ctx[0].categories[/*group*/ ctx[69].name]);\n\t\t\tthis.first = button;\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, button, anchor);\n\t\t\tappend(button, div);\n\t\t\tappend(div, t);\n\n\t\t\tif (!mounted) {\n\t\t\t\tdispose = listen(button, \"click\", click_handler);\n\t\t\t\tmounted = true;\n\t\t\t}\n\t\t},\n\t\tp(new_ctx, dirty) {\n\t\t\tctx = new_ctx;\n\t\t\tif (dirty[0] & /*groups*/ 4096 && t_value !== (t_value = /*group*/ ctx[69].emoji + \"\")) set_data(t, t_value);\n\n\t\t\tif (dirty[0] & /*groups*/ 4096 && button_aria_controls_value !== (button_aria_controls_value = \"tab-\" + /*group*/ ctx[69].id)) {\n\t\t\t\tattr(button, \"aria-controls\", button_aria_controls_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n, groups*/ 4097 && button_aria_label_value !== (button_aria_label_value = /*i18n*/ ctx[0].categories[/*group*/ ctx[69].name])) {\n\t\t\t\tattr(button, \"aria-label\", button_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentGroup, groups*/ 12304 && button_aria_selected_value !== (button_aria_selected_value = !/*searchMode*/ ctx[4] && /*currentGroup*/ ctx[13].id === /*group*/ ctx[69].id)) {\n\t\t\t\tattr(button, \"aria-selected\", button_aria_selected_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n, groups*/ 4097 && button_title_value !== (button_title_value = /*i18n*/ ctx[0].categories[/*group*/ ctx[69].name])) {\n\t\t\t\tattr(button, \"title\", button_title_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(button);\n\t\t\tmounted = false;\n\t\t\tdispose();\n\t\t}\n\t};\n}\n\n// (93:100) {:else}\nfunction create_else_block_1(ctx) {\n\tlet img;\n\tlet img_src_value;\n\n\treturn {\n\t\tc() {\n\t\t\timg = element(\"img\");\n\t\t\tattr(img, \"class\", \"custom-emoji\");\n\t\t\tif (!src_url_equal(img.src, img_src_value = /*emoji*/ ctx[63].url)) attr(img, \"src\", img_src_value);\n\t\t\tattr(img, \"alt\", \"\");\n\t\t\tattr(img, \"loading\", \"lazy\");\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, img, anchor);\n\t\t},\n\t\tp(ctx, dirty) {\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && !src_url_equal(img.src, img_src_value = /*emoji*/ ctx[63].url)) {\n\t\t\t\tattr(img, \"src\", img_src_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(img);\n\t\t}\n\t};\n}\n\n// (93:40) {#if emoji.unicode}\nfunction create_if_block_1(ctx) {\n\tlet t_value = /*unicodeWithSkin*/ ctx[27](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]) + \"\";\n\tlet t;\n\n\treturn {\n\t\tc() {\n\t\t\tt = text(t_value);\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, t, anchor);\n\t\t},\n\t\tp(ctx, dirty) {\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories, currentSkinTone*/ 33024 && t_value !== (t_value = /*unicodeWithSkin*/ ctx[27](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]) + \"\")) set_data(t, t_value);\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(t);\n\t\t}\n\t};\n}\n\n// (88:53) {#each emojiWithCategory.emojis as emoji, i (emoji.id)}\nfunction create_each_block_2(key_1, ctx) {\n\tlet button;\n\tlet button_role_value;\n\tlet button_aria_selected_value;\n\tlet button_aria_label_value;\n\tlet button_title_value;\n\tlet button_class_value;\n\tlet button_id_value;\n\n\tfunction select_block_type(ctx, dirty) {\n\t\tif (/*emoji*/ ctx[63].unicode) return create_if_block_1;\n\t\treturn create_else_block_1;\n\t}\n\n\tlet current_block_type = select_block_type(ctx);\n\tlet if_block = current_block_type(ctx);\n\n\treturn {\n\t\tkey: key_1,\n\t\tfirst: null,\n\t\tc() {\n\t\t\tbutton = element(\"button\");\n\t\t\tif_block.c();\n\t\t\tattr(button, \"role\", button_role_value = /*searchMode*/ ctx[4] ? 'option' : 'menuitem');\n\n\t\t\tattr(button, \"aria-selected\", button_aria_selected_value = /*searchMode*/ ctx[4]\n\t\t\t? /*i*/ ctx[65] == /*activeSearchItem*/ ctx[5]\n\t\t\t: '');\n\n\t\t\tattr(button, \"aria-label\", button_aria_label_value = /*labelWithSkin*/ ctx[28](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]));\n\t\t\tattr(button, \"title\", button_title_value = /*emoji*/ ctx[63].title);\n\n\t\t\tattr(button, \"class\", button_class_value = \"emoji \" + (/*searchMode*/ ctx[4] && /*i*/ ctx[65] === /*activeSearchItem*/ ctx[5]\n\t\t\t? 'active'\n\t\t\t: ''));\n\n\t\t\tattr(button, \"id\", button_id_value = \"emo-\" + /*emoji*/ ctx[63].id);\n\t\t\tthis.first = button;\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, button, anchor);\n\t\t\tif_block.m(button, null);\n\t\t},\n\t\tp(new_ctx, dirty) {\n\t\t\tctx = new_ctx;\n\n\t\t\tif (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t} else {\n\t\t\t\tif_block.d(1);\n\t\t\t\tif_block = current_block_type(ctx);\n\n\t\t\t\tif (if_block) {\n\t\t\t\t\tif_block.c();\n\t\t\t\t\tif_block.m(button, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode*/ 16 && button_role_value !== (button_role_value = /*searchMode*/ ctx[4] ? 'option' : 'menuitem')) {\n\t\t\t\tattr(button, \"role\", button_role_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentEmojisWithCategories, activeSearchItem*/ 32816 && button_aria_selected_value !== (button_aria_selected_value = /*searchMode*/ ctx[4]\n\t\t\t? /*i*/ ctx[65] == /*activeSearchItem*/ ctx[5]\n\t\t\t: '')) {\n\t\t\t\tattr(button, \"aria-selected\", button_aria_selected_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories, currentSkinTone*/ 33024 && button_aria_label_value !== (button_aria_label_value = /*labelWithSkin*/ ctx[28](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]))) {\n\t\t\t\tattr(button, \"aria-label\", button_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && button_title_value !== (button_title_value = /*emoji*/ ctx[63].title)) {\n\t\t\t\tattr(button, \"title\", button_title_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentEmojisWithCategories, activeSearchItem*/ 32816 && button_class_value !== (button_class_value = \"emoji \" + (/*searchMode*/ ctx[4] && /*i*/ ctx[65] === /*activeSearchItem*/ ctx[5]\n\t\t\t? 'active'\n\t\t\t: ''))) {\n\t\t\t\tattr(button, \"class\", button_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && button_id_value !== (button_id_value = \"emo-\" + /*emoji*/ ctx[63].id)) {\n\t\t\t\tattr(button, \"id\", button_id_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(button);\n\t\t\tif_block.d();\n\t\t}\n\t};\n}\n\n// (69:36) {#each currentEmojisWithCategories as emojiWithCategory, i (emojiWithCategory.category)}\nfunction create_each_block_1(key_1, ctx) {\n\tlet div0;\n\n\tlet t_value = (/*searchMode*/ ctx[4]\n\t? /*i18n*/ ctx[0].searchResultsLabel\n\t: /*emojiWithCategory*/ ctx[66].category\n\t\t? /*emojiWithCategory*/ ctx[66].category\n\t\t: /*currentEmojisWithCategories*/ ctx[15].length > 1\n\t\t\t? /*i18n*/ ctx[0].categories.custom\n\t\t\t: /*i18n*/ ctx[0].categories[/*currentGroup*/ ctx[13].name]) + \"\";\n\n\tlet t;\n\tlet div0_id_value;\n\tlet div0_class_value;\n\tlet div1;\n\tlet each_blocks = [];\n\tlet each_1_lookup = new Map_1();\n\tlet div1_role_value;\n\tlet div1_aria_labelledby_value;\n\tlet div1_id_value;\n\tlet each_value_2 = /*emojiWithCategory*/ ctx[66].emojis;\n\tconst get_key = ctx => /*emoji*/ ctx[63].id;\n\n\tfor (let i = 0; i < each_value_2.length; i += 1) {\n\t\tlet child_ctx = get_each_context_2(ctx, each_value_2, i);\n\t\tlet key = get_key(child_ctx);\n\t\teach_1_lookup.set(key, each_blocks[i] = create_each_block_2(key, child_ctx));\n\t}\n\n\treturn {\n\t\tkey: key_1,\n\t\tfirst: null,\n\t\tc() {\n\t\t\tdiv0 = element(\"div\");\n\t\t\tt = text(t_value);\n\t\t\tdiv1 = element(\"div\");\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].c();\n\t\t\t}\n\n\t\t\tattr(div0, \"id\", div0_id_value = \"menu-label-\" + /*i*/ ctx[65]);\n\n\t\t\tattr(div0, \"class\", div0_class_value = \"category \" + (/*currentEmojisWithCategories*/ ctx[15].length === 1 && /*currentEmojisWithCategories*/ ctx[15][0].category === ''\n\t\t\t? 'gone'\n\t\t\t: ''));\n\n\t\t\tattr(div0, \"aria-hidden\", \"true\");\n\t\t\tattr(div1, \"class\", \"emoji-menu\");\n\t\t\tattr(div1, \"role\", div1_role_value = /*searchMode*/ ctx[4] ? 'listbox' : 'menu');\n\t\t\tattr(div1, \"aria-labelledby\", div1_aria_labelledby_value = \"menu-label-\" + /*i*/ ctx[65]);\n\t\t\tattr(div1, \"id\", div1_id_value = /*searchMode*/ ctx[4] ? 'search-results' : '');\n\t\t\tthis.first = div0;\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, div0, anchor);\n\t\t\tappend(div0, t);\n\t\t\tinsert(target, div1, anchor);\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].m(div1, null);\n\t\t\t}\n\t\t},\n\t\tp(new_ctx, dirty) {\n\t\t\tctx = new_ctx;\n\n\t\t\tif (dirty[0] & /*searchMode, i18n, currentEmojisWithCategories, currentGroup*/ 40977 && t_value !== (t_value = (/*searchMode*/ ctx[4]\n\t\t\t? /*i18n*/ ctx[0].searchResultsLabel\n\t\t\t: /*emojiWithCategory*/ ctx[66].category\n\t\t\t\t? /*emojiWithCategory*/ ctx[66].category\n\t\t\t\t: /*currentEmojisWithCategories*/ ctx[15].length > 1\n\t\t\t\t\t? /*i18n*/ ctx[0].categories.custom\n\t\t\t\t\t: /*i18n*/ ctx[0].categories[/*currentGroup*/ ctx[13].name]) + \"\")) set_data(t, t_value);\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && div0_id_value !== (div0_id_value = \"menu-label-\" + /*i*/ ctx[65])) {\n\t\t\t\tattr(div0, \"id\", div0_id_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && div0_class_value !== (div0_class_value = \"category \" + (/*currentEmojisWithCategories*/ ctx[15].length === 1 && /*currentEmojisWithCategories*/ ctx[15][0].category === ''\n\t\t\t? 'gone'\n\t\t\t: ''))) {\n\t\t\t\tattr(div0, \"class\", div0_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentEmojisWithCategories, activeSearchItem, labelWithSkin, currentSkinTone, unicodeWithSkin*/ 402686256) {\n\t\t\t\teach_value_2 = /*emojiWithCategory*/ ctx[66].emojis;\n\t\t\t\teach_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_2, each_1_lookup, div1, destroy_block, create_each_block_2, null, get_each_context_2);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode*/ 16 && div1_role_value !== (div1_role_value = /*searchMode*/ ctx[4] ? 'listbox' : 'menu')) {\n\t\t\t\tattr(div1, \"role\", div1_role_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentEmojisWithCategories*/ 32768 && div1_aria_labelledby_value !== (div1_aria_labelledby_value = \"menu-label-\" + /*i*/ ctx[65])) {\n\t\t\t\tattr(div1, \"aria-labelledby\", div1_aria_labelledby_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode*/ 16 && div1_id_value !== (div1_id_value = /*searchMode*/ ctx[4] ? 'search-results' : '')) {\n\t\t\t\tattr(div1, \"id\", div1_id_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(div0);\n\t\t\tif (detaching) detach(div1);\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].d();\n\t\t\t}\n\t\t}\n\t};\n}\n\n// (102:94) {:else}\nfunction create_else_block(ctx) {\n\tlet img;\n\tlet img_src_value;\n\n\treturn {\n\t\tc() {\n\t\t\timg = element(\"img\");\n\t\t\tattr(img, \"class\", \"custom-emoji\");\n\t\t\tif (!src_url_equal(img.src, img_src_value = /*emoji*/ ctx[63].url)) attr(img, \"src\", img_src_value);\n\t\t\tattr(img, \"alt\", \"\");\n\t\t\tattr(img, \"loading\", \"lazy\");\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, img, anchor);\n\t\t},\n\t\tp(ctx, dirty) {\n\t\t\tif (dirty[0] & /*currentFavorites*/ 1024 && !src_url_equal(img.src, img_src_value = /*emoji*/ ctx[63].url)) {\n\t\t\t\tattr(img, \"src\", img_src_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(img);\n\t\t}\n\t};\n}\n\n// (102:34) {#if emoji.unicode}\nfunction create_if_block(ctx) {\n\tlet t_value = /*unicodeWithSkin*/ ctx[27](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]) + \"\";\n\tlet t;\n\n\treturn {\n\t\tc() {\n\t\t\tt = text(t_value);\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, t, anchor);\n\t\t},\n\t\tp(ctx, dirty) {\n\t\t\tif (dirty[0] & /*currentFavorites, currentSkinTone*/ 1280 && t_value !== (t_value = /*unicodeWithSkin*/ ctx[27](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]) + \"\")) set_data(t, t_value);\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(t);\n\t\t}\n\t};\n}\n\n// (98:102) {#each currentFavorites as emoji, i (emoji.id)}\nfunction create_each_block(key_1, ctx) {\n\tlet button;\n\tlet button_aria_label_value;\n\tlet button_title_value;\n\tlet button_id_value;\n\n\tfunction select_block_type_1(ctx, dirty) {\n\t\tif (/*emoji*/ ctx[63].unicode) return create_if_block;\n\t\treturn create_else_block;\n\t}\n\n\tlet current_block_type = select_block_type_1(ctx);\n\tlet if_block = current_block_type(ctx);\n\n\treturn {\n\t\tkey: key_1,\n\t\tfirst: null,\n\t\tc() {\n\t\t\tbutton = element(\"button\");\n\t\t\tif_block.c();\n\t\t\tattr(button, \"role\", \"menuitem\");\n\t\t\tattr(button, \"aria-label\", button_aria_label_value = /*labelWithSkin*/ ctx[28](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]));\n\t\t\tattr(button, \"title\", button_title_value = /*emoji*/ ctx[63].title);\n\t\t\tattr(button, \"class\", \"emoji\");\n\t\t\tattr(button, \"id\", button_id_value = \"fav-\" + /*emoji*/ ctx[63].id);\n\t\t\tthis.first = button;\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, button, anchor);\n\t\t\tif_block.m(button, null);\n\t\t},\n\t\tp(new_ctx, dirty) {\n\t\t\tctx = new_ctx;\n\n\t\t\tif (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {\n\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t} else {\n\t\t\t\tif_block.d(1);\n\t\t\t\tif_block = current_block_type(ctx);\n\n\t\t\t\tif (if_block) {\n\t\t\t\t\tif_block.c();\n\t\t\t\t\tif_block.m(button, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentFavorites, currentSkinTone*/ 1280 && button_aria_label_value !== (button_aria_label_value = /*labelWithSkin*/ ctx[28](/*emoji*/ ctx[63], /*currentSkinTone*/ ctx[8]))) {\n\t\t\t\tattr(button, \"aria-label\", button_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentFavorites*/ 1024 && button_title_value !== (button_title_value = /*emoji*/ ctx[63].title)) {\n\t\t\t\tattr(button, \"title\", button_title_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*currentFavorites*/ 1024 && button_id_value !== (button_id_value = \"fav-\" + /*emoji*/ ctx[63].id)) {\n\t\t\t\tattr(button, \"id\", button_id_value);\n\t\t\t}\n\t\t},\n\t\td(detaching) {\n\t\t\tif (detaching) detach(button);\n\t\t\tif_block.d();\n\t\t}\n\t};\n}\n\nfunction create_fragment(ctx) {\n\tlet section;\n\tlet div0;\n\tlet div4;\n\tlet div1;\n\tlet input;\n\tlet input_placeholder_value;\n\tlet input_aria_expanded_value;\n\tlet input_aria_activedescendant_value;\n\tlet label;\n\tlet t0_value = /*i18n*/ ctx[0].searchLabel + \"\";\n\tlet t0;\n\tlet span0;\n\tlet t1_value = /*i18n*/ ctx[0].searchDescription + \"\";\n\tlet t1;\n\tlet div2;\n\tlet button0;\n\tlet t2;\n\tlet button0_class_value;\n\tlet div2_class_value;\n\tlet span1;\n\tlet t3_value = /*i18n*/ ctx[0].skinToneDescription + \"\";\n\tlet t3;\n\tlet div3;\n\tlet each_blocks_3 = [];\n\tlet each0_lookup = new Map_1();\n\tlet div3_class_value;\n\tlet div3_aria_label_value;\n\tlet div3_aria_activedescendant_value;\n\tlet div3_aria_hidden_value;\n\tlet div5;\n\tlet each_blocks_2 = [];\n\tlet each1_lookup = new Map_1();\n\tlet div5_aria_label_value;\n\tlet div7;\n\tlet div6;\n\tlet div8;\n\tlet t4;\n\tlet div8_class_value;\n\tlet div10;\n\tlet div9;\n\tlet each_blocks_1 = [];\n\tlet each2_lookup = new Map_1();\n\tlet div10_class_value;\n\tlet div10_role_value;\n\tlet div10_aria_label_value;\n\tlet div10_id_value;\n\tlet div11;\n\tlet each_blocks = [];\n\tlet each3_lookup = new Map_1();\n\tlet div11_class_value;\n\tlet div11_aria_label_value;\n\tlet button1;\n\tlet section_aria_label_value;\n\tlet mounted;\n\tlet dispose;\n\tlet each_value_4 = /*skinTones*/ ctx[9];\n\tconst get_key = ctx => /*skinTone*/ ctx[72];\n\n\tfor (let i = 0; i < each_value_4.length; i += 1) {\n\t\tlet child_ctx = get_each_context_4(ctx, each_value_4, i);\n\t\tlet key = get_key(child_ctx);\n\t\teach0_lookup.set(key, each_blocks_3[i] = create_each_block_4(key, child_ctx));\n\t}\n\n\tlet each_value_3 = /*groups*/ ctx[12];\n\tconst get_key_1 = ctx => /*group*/ ctx[69].id;\n\n\tfor (let i = 0; i < each_value_3.length; i += 1) {\n\t\tlet child_ctx = get_each_context_3(ctx, each_value_3, i);\n\t\tlet key = get_key_1(child_ctx);\n\t\teach1_lookup.set(key, each_blocks_2[i] = create_each_block_3(key, child_ctx));\n\t}\n\n\tlet each_value_1 = /*currentEmojisWithCategories*/ ctx[15];\n\tconst get_key_2 = ctx => /*emojiWithCategory*/ ctx[66].category;\n\n\tfor (let i = 0; i < each_value_1.length; i += 1) {\n\t\tlet child_ctx = get_each_context_1(ctx, each_value_1, i);\n\t\tlet key = get_key_2(child_ctx);\n\t\teach2_lookup.set(key, each_blocks_1[i] = create_each_block_1(key, child_ctx));\n\t}\n\n\tlet each_value = /*currentFavorites*/ ctx[10];\n\tconst get_key_3 = ctx => /*emoji*/ ctx[63].id;\n\n\tfor (let i = 0; i < each_value.length; i += 1) {\n\t\tlet child_ctx = get_each_context(ctx, each_value, i);\n\t\tlet key = get_key_3(child_ctx);\n\t\teach3_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));\n\t}\n\n\treturn {\n\t\tc() {\n\t\t\tsection = element(\"section\");\n\t\t\tdiv0 = element(\"div\");\n\t\t\tdiv4 = element(\"div\");\n\t\t\tdiv1 = element(\"div\");\n\t\t\tinput = element(\"input\");\n\t\t\tlabel = element(\"label\");\n\t\t\tt0 = text(t0_value);\n\t\t\tspan0 = element(\"span\");\n\t\t\tt1 = text(t1_value);\n\t\t\tdiv2 = element(\"div\");\n\t\t\tbutton0 = element(\"button\");\n\t\t\tt2 = text(/*skinToneButtonText*/ ctx[21]);\n\t\t\tspan1 = element(\"span\");\n\t\t\tt3 = text(t3_value);\n\t\t\tdiv3 = element(\"div\");\n\n\t\t\tfor (let i = 0; i < each_blocks_3.length; i += 1) {\n\t\t\t\teach_blocks_3[i].c();\n\t\t\t}\n\n\t\t\tdiv5 = element(\"div\");\n\n\t\t\tfor (let i = 0; i < each_blocks_2.length; i += 1) {\n\t\t\t\teach_blocks_2[i].c();\n\t\t\t}\n\n\t\t\tdiv7 = element(\"div\");\n\t\t\tdiv6 = element(\"div\");\n\t\t\tdiv8 = element(\"div\");\n\t\t\tt4 = text(/*message*/ ctx[18]);\n\t\t\tdiv10 = element(\"div\");\n\t\t\tdiv9 = element(\"div\");\n\n\t\t\tfor (let i = 0; i < each_blocks_1.length; i += 1) {\n\t\t\t\teach_blocks_1[i].c();\n\t\t\t}\n\n\t\t\tdiv11 = element(\"div\");\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].c();\n\t\t\t}\n\n\t\t\tbutton1 = element(\"button\");\n\t\t\tbutton1.textContent = \"😀\";\n\t\t\tattr(div0, \"class\", \"pad-top\");\n\t\t\tattr(input, \"id\", \"search\");\n\t\t\tattr(input, \"class\", \"search\");\n\t\t\tattr(input, \"type\", \"search\");\n\t\t\tattr(input, \"role\", \"combobox\");\n\t\t\tattr(input, \"enterkeyhint\", \"search\");\n\t\t\tattr(input, \"placeholder\", input_placeholder_value = /*i18n*/ ctx[0].searchLabel);\n\t\t\tattr(input, \"autocapitalize\", \"none\");\n\t\t\tattr(input, \"autocomplete\", \"off\");\n\t\t\tattr(input, \"spellcheck\", \"true\");\n\t\t\tattr(input, \"aria-expanded\", input_aria_expanded_value = !!(/*searchMode*/ ctx[4] && /*currentEmojis*/ ctx[1].length));\n\t\t\tattr(input, \"aria-controls\", \"search-results\");\n\t\t\tattr(input, \"aria-describedby\", \"search-description\");\n\t\t\tattr(input, \"aria-autocomplete\", \"list\");\n\n\t\t\tattr(input, \"aria-activedescendant\", input_aria_activedescendant_value = /*activeSearchItemId*/ ctx[26]\n\t\t\t? `emo-${/*activeSearchItemId*/ ctx[26]}`\n\t\t\t: '');\n\n\t\t\tattr(label, \"class\", \"sr-only\");\n\t\t\tattr(label, \"for\", \"search\");\n\t\t\tattr(span0, \"id\", \"search-description\");\n\t\t\tattr(span0, \"class\", \"sr-only\");\n\t\t\tattr(div1, \"class\", \"search-wrapper\");\n\t\t\tattr(button0, \"id\", \"skintone-button\");\n\t\t\tattr(button0, \"class\", button0_class_value = \"emoji \" + (/*skinTonePickerExpanded*/ ctx[6] ? 'hide-focus' : ''));\n\t\t\tattr(button0, \"aria-label\", /*skinToneButtonLabel*/ ctx[23]);\n\t\t\tattr(button0, \"title\", /*skinToneButtonLabel*/ ctx[23]);\n\t\t\tattr(button0, \"aria-describedby\", \"skintone-description\");\n\t\t\tattr(button0, \"aria-haspopup\", \"listbox\");\n\t\t\tattr(button0, \"aria-expanded\", /*skinTonePickerExpanded*/ ctx[6]);\n\t\t\tattr(button0, \"aria-controls\", \"skintone-list\");\n\n\t\t\tattr(div2, \"class\", div2_class_value = \"skintone-button-wrapper \" + (/*skinTonePickerExpandedAfterAnimation*/ ctx[19]\n\t\t\t? 'expanded'\n\t\t\t: ''));\n\n\t\t\tattr(span1, \"id\", \"skintone-description\");\n\t\t\tattr(span1, \"class\", \"sr-only\");\n\t\t\tattr(div3, \"id\", \"skintone-list\");\n\n\t\t\tattr(div3, \"class\", div3_class_value = \"skintone-list \" + (/*skinTonePickerExpanded*/ ctx[6]\n\t\t\t? ''\n\t\t\t: 'hidden no-animate'));\n\n\t\t\tset_style(div3, \"transform\", \"translateY(\" + (/*skinTonePickerExpanded*/ ctx[6]\n\t\t\t? 0\n\t\t\t: 'calc(-1 * var(--num-skintones) * var(--total-emoji-size))') + \")\");\n\n\t\t\tattr(div3, \"role\", \"listbox\");\n\t\t\tattr(div3, \"aria-label\", div3_aria_label_value = /*i18n*/ ctx[0].skinTonesLabel);\n\t\t\tattr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value = \"skintone-\" + /*activeSkinTone*/ ctx[20]);\n\t\t\tattr(div3, \"aria-hidden\", div3_aria_hidden_value = !/*skinTonePickerExpanded*/ ctx[6]);\n\t\t\tattr(div4, \"class\", \"search-row\");\n\t\t\tattr(div5, \"class\", \"nav\");\n\t\t\tattr(div5, \"role\", \"tablist\");\n\t\t\tset_style(div5, \"grid-template-columns\", \"repeat(\" + /*groups*/ ctx[12].length + \", 1fr)\");\n\t\t\tattr(div5, \"aria-label\", div5_aria_label_value = /*i18n*/ ctx[0].categoriesLabel);\n\t\t\tattr(div6, \"class\", \"indicator\");\n\t\t\tset_style(div6, \"transform\", \"translateX(\" + (/*isRtl*/ ctx[24] ? -1 : 1) * /*currentGroupIndex*/ ctx[11] * 100 + \"%)\");\n\t\t\tattr(div7, \"class\", \"indicator-wrapper\");\n\t\t\tattr(div8, \"class\", div8_class_value = \"message \" + (/*message*/ ctx[18] ? '' : 'gone'));\n\t\t\tattr(div8, \"role\", \"alert\");\n\t\t\tattr(div8, \"aria-live\", \"polite\");\n\n\t\t\tattr(div10, \"class\", div10_class_value = \"tabpanel \" + (!/*databaseLoaded*/ ctx[14] || /*message*/ ctx[18]\n\t\t\t? 'gone'\n\t\t\t: ''));\n\n\t\t\tattr(div10, \"role\", div10_role_value = /*searchMode*/ ctx[4] ? 'region' : 'tabpanel');\n\n\t\t\tattr(div10, \"aria-label\", div10_aria_label_value = /*searchMode*/ ctx[4]\n\t\t\t? /*i18n*/ ctx[0].searchResultsLabel\n\t\t\t: /*i18n*/ ctx[0].categories[/*currentGroup*/ ctx[13].name]);\n\n\t\t\tattr(div10, \"id\", div10_id_value = /*searchMode*/ ctx[4]\n\t\t\t? ''\n\t\t\t: `tab-${/*currentGroup*/ ctx[13].id}`);\n\n\t\t\tattr(div10, \"tabindex\", \"0\");\n\t\t\tattr(div11, \"class\", div11_class_value = \"favorites emoji-menu \" + (/*message*/ ctx[18] ? 'gone' : ''));\n\t\t\tattr(div11, \"role\", \"menu\");\n\t\t\tattr(div11, \"aria-label\", div11_aria_label_value = /*i18n*/ ctx[0].favoritesLabel);\n\t\t\tset_style(div11, \"padding-inline-end\", /*scrollbarWidth*/ ctx[25] + \"px\");\n\t\t\tattr(button1, \"aria-hidden\", \"true\");\n\t\t\tattr(button1, \"tabindex\", \"-1\");\n\t\t\tattr(button1, \"class\", \"abs-pos hidden emoji\");\n\t\t\tattr(section, \"class\", \"picker\");\n\t\t\tattr(section, \"aria-label\", section_aria_label_value = /*i18n*/ ctx[0].regionLabel);\n\t\t\tattr(section, \"style\", /*pickerStyle*/ ctx[22]);\n\t\t},\n\t\tm(target, anchor) {\n\t\t\tinsert(target, section, anchor);\n\t\t\tappend(section, div0);\n\t\t\tappend(section, div4);\n\t\t\tappend(div4, div1);\n\t\t\tappend(div1, input);\n\t\t\tset_input_value(input, /*rawSearchText*/ ctx[2]);\n\t\t\tappend(div1, label);\n\t\t\tappend(label, t0);\n\t\t\tappend(div1, span0);\n\t\t\tappend(span0, t1);\n\t\t\tappend(div4, div2);\n\t\t\tappend(div2, button0);\n\t\t\tappend(button0, t2);\n\t\t\tappend(div4, span1);\n\t\t\tappend(span1, t3);\n\t\t\tappend(div4, div3);\n\n\t\t\tfor (let i = 0; i < each_blocks_3.length; i += 1) {\n\t\t\t\teach_blocks_3[i].m(div3, null);\n\t\t\t}\n\n\t\t\t/*div3_binding*/ ctx[48](div3);\n\t\t\tappend(section, div5);\n\n\t\t\tfor (let i = 0; i < each_blocks_2.length; i += 1) {\n\t\t\t\teach_blocks_2[i].m(div5, null);\n\t\t\t}\n\n\t\t\tappend(section, div7);\n\t\t\tappend(div7, div6);\n\t\t\tappend(section, div8);\n\t\t\tappend(div8, t4);\n\t\t\tappend(section, div10);\n\t\t\tappend(div10, div9);\n\n\t\t\tfor (let i = 0; i < each_blocks_1.length; i += 1) {\n\t\t\t\teach_blocks_1[i].m(div9, null);\n\t\t\t}\n\n\t\t\t/*div10_binding*/ ctx[50](div10);\n\t\t\tappend(section, div11);\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].m(div11, null);\n\t\t\t}\n\n\t\t\tappend(section, button1);\n\t\t\t/*button1_binding*/ ctx[51](button1);\n\t\t\t/*section_binding*/ ctx[52](section);\n\n\t\t\tif (!mounted) {\n\t\t\t\tdispose = [\n\t\t\t\t\tlisten(input, \"input\", /*input_input_handler*/ ctx[47]),\n\t\t\t\t\tlisten(input, \"keydown\", /*onSearchKeydown*/ ctx[30]),\n\t\t\t\t\tlisten(button0, \"click\", /*onClickSkinToneButton*/ ctx[35]),\n\t\t\t\t\tlisten(div3, \"focusout\", /*onSkinToneOptionsFocusOut*/ ctx[38]),\n\t\t\t\t\tlisten(div3, \"click\", /*onSkinToneOptionsClick*/ ctx[34]),\n\t\t\t\t\tlisten(div3, \"keydown\", /*onSkinToneOptionsKeydown*/ ctx[36]),\n\t\t\t\t\tlisten(div3, \"keyup\", /*onSkinToneOptionsKeyup*/ ctx[37]),\n\t\t\t\t\tlisten(div5, \"keydown\", /*onNavKeydown*/ ctx[32]),\n\t\t\t\t\taction_destroyer(/*calculateEmojiGridStyle*/ ctx[29].call(null, div9)),\n\t\t\t\t\tlisten(div10, \"click\", /*onEmojiClick*/ ctx[33]),\n\t\t\t\t\tlisten(div11, \"click\", /*onEmojiClick*/ ctx[33])\n\t\t\t\t];\n\n\t\t\t\tmounted = true;\n\t\t\t}\n\t\t},\n\t\tp(ctx, dirty) {\n\t\t\tif (dirty[0] & /*i18n*/ 1 && input_placeholder_value !== (input_placeholder_value = /*i18n*/ ctx[0].searchLabel)) {\n\t\t\t\tattr(input, \"placeholder\", input_placeholder_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentEmojis*/ 18 && input_aria_expanded_value !== (input_aria_expanded_value = !!(/*searchMode*/ ctx[4] && /*currentEmojis*/ ctx[1].length))) {\n\t\t\t\tattr(input, \"aria-expanded\", input_aria_expanded_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*activeSearchItemId*/ 67108864 && input_aria_activedescendant_value !== (input_aria_activedescendant_value = /*activeSearchItemId*/ ctx[26]\n\t\t\t? `emo-${/*activeSearchItemId*/ ctx[26]}`\n\t\t\t: '')) {\n\t\t\t\tattr(input, \"aria-activedescendant\", input_aria_activedescendant_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*rawSearchText*/ 4) {\n\t\t\t\tset_input_value(input, /*rawSearchText*/ ctx[2]);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && t0_value !== (t0_value = /*i18n*/ ctx[0].searchLabel + \"\")) set_data(t0, t0_value);\n\t\t\tif (dirty[0] & /*i18n*/ 1 && t1_value !== (t1_value = /*i18n*/ ctx[0].searchDescription + \"\")) set_data(t1, t1_value);\n\t\t\tif (dirty[0] & /*skinToneButtonText*/ 2097152) set_data(t2, /*skinToneButtonText*/ ctx[21]);\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpanded*/ 64 && button0_class_value !== (button0_class_value = \"emoji \" + (/*skinTonePickerExpanded*/ ctx[6] ? 'hide-focus' : ''))) {\n\t\t\t\tattr(button0, \"class\", button0_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinToneButtonLabel*/ 8388608) {\n\t\t\t\tattr(button0, \"aria-label\", /*skinToneButtonLabel*/ ctx[23]);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinToneButtonLabel*/ 8388608) {\n\t\t\t\tattr(button0, \"title\", /*skinToneButtonLabel*/ ctx[23]);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpanded*/ 64) {\n\t\t\t\tattr(button0, \"aria-expanded\", /*skinTonePickerExpanded*/ ctx[6]);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpandedAfterAnimation*/ 524288 && div2_class_value !== (div2_class_value = \"skintone-button-wrapper \" + (/*skinTonePickerExpandedAfterAnimation*/ ctx[19]\n\t\t\t? 'expanded'\n\t\t\t: ''))) {\n\t\t\t\tattr(div2, \"class\", div2_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && t3_value !== (t3_value = /*i18n*/ ctx[0].skinToneDescription + \"\")) set_data(t3, t3_value);\n\n\t\t\tif (dirty[0] & /*skinTones, activeSkinTone, i18n*/ 1049089) {\n\t\t\t\teach_value_4 = /*skinTones*/ ctx[9];\n\t\t\t\teach_blocks_3 = update_keyed_each(each_blocks_3, dirty, get_key, 1, ctx, each_value_4, each0_lookup, div3, destroy_block, create_each_block_4, null, get_each_context_4);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpanded*/ 64 && div3_class_value !== (div3_class_value = \"skintone-list \" + (/*skinTonePickerExpanded*/ ctx[6]\n\t\t\t? ''\n\t\t\t: 'hidden no-animate'))) {\n\t\t\t\tattr(div3, \"class\", div3_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpanded*/ 64) {\n\t\t\t\tset_style(div3, \"transform\", \"translateY(\" + (/*skinTonePickerExpanded*/ ctx[6]\n\t\t\t\t? 0\n\t\t\t\t: 'calc(-1 * var(--num-skintones) * var(--total-emoji-size))') + \")\");\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && div3_aria_label_value !== (div3_aria_label_value = /*i18n*/ ctx[0].skinTonesLabel)) {\n\t\t\t\tattr(div3, \"aria-label\", div3_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*activeSkinTone*/ 1048576 && div3_aria_activedescendant_value !== (div3_aria_activedescendant_value = \"skintone-\" + /*activeSkinTone*/ ctx[20])) {\n\t\t\t\tattr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*skinTonePickerExpanded*/ 64 && div3_aria_hidden_value !== (div3_aria_hidden_value = !/*skinTonePickerExpanded*/ ctx[6])) {\n\t\t\t\tattr(div3, \"aria-hidden\", div3_aria_hidden_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*groups, i18n, searchMode, currentGroup*/ 12305 | dirty[1] & /*onNavClick*/ 1) {\n\t\t\t\teach_value_3 = /*groups*/ ctx[12];\n\t\t\t\teach_blocks_2 = update_keyed_each(each_blocks_2, dirty, get_key_1, 1, ctx, each_value_3, each1_lookup, div5, destroy_block, create_each_block_3, null, get_each_context_3);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*groups*/ 4096) {\n\t\t\t\tset_style(div5, \"grid-template-columns\", \"repeat(\" + /*groups*/ ctx[12].length + \", 1fr)\");\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && div5_aria_label_value !== (div5_aria_label_value = /*i18n*/ ctx[0].categoriesLabel)) {\n\t\t\t\tattr(div5, \"aria-label\", div5_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*isRtl, currentGroupIndex*/ 16779264) {\n\t\t\t\tset_style(div6, \"transform\", \"translateX(\" + (/*isRtl*/ ctx[24] ? -1 : 1) * /*currentGroupIndex*/ ctx[11] * 100 + \"%)\");\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*message*/ 262144) set_data(t4, /*message*/ ctx[18]);\n\n\t\t\tif (dirty[0] & /*message*/ 262144 && div8_class_value !== (div8_class_value = \"message \" + (/*message*/ ctx[18] ? '' : 'gone'))) {\n\t\t\t\tattr(div8, \"class\", div8_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentEmojisWithCategories, activeSearchItem, labelWithSkin, currentSkinTone, unicodeWithSkin, i18n, currentGroup*/ 402694449) {\n\t\t\t\teach_value_1 = /*currentEmojisWithCategories*/ ctx[15];\n\t\t\t\teach_blocks_1 = update_keyed_each(each_blocks_1, dirty, get_key_2, 1, ctx, each_value_1, each2_lookup, div9, destroy_block, create_each_block_1, null, get_each_context_1);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*databaseLoaded, message*/ 278528 && div10_class_value !== (div10_class_value = \"tabpanel \" + (!/*databaseLoaded*/ ctx[14] || /*message*/ ctx[18]\n\t\t\t? 'gone'\n\t\t\t: ''))) {\n\t\t\t\tattr(div10, \"class\", div10_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode*/ 16 && div10_role_value !== (div10_role_value = /*searchMode*/ ctx[4] ? 'region' : 'tabpanel')) {\n\t\t\t\tattr(div10, \"role\", div10_role_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, i18n, currentGroup*/ 8209 && div10_aria_label_value !== (div10_aria_label_value = /*searchMode*/ ctx[4]\n\t\t\t? /*i18n*/ ctx[0].searchResultsLabel\n\t\t\t: /*i18n*/ ctx[0].categories[/*currentGroup*/ ctx[13].name])) {\n\t\t\t\tattr(div10, \"aria-label\", div10_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*searchMode, currentGroup*/ 8208 && div10_id_value !== (div10_id_value = /*searchMode*/ ctx[4]\n\t\t\t? ''\n\t\t\t: `tab-${/*currentGroup*/ ctx[13].id}`)) {\n\t\t\t\tattr(div10, \"id\", div10_id_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*labelWithSkin, currentFavorites, currentSkinTone, unicodeWithSkin*/ 402654464) {\n\t\t\t\teach_value = /*currentFavorites*/ ctx[10];\n\t\t\t\teach_blocks = update_keyed_each(each_blocks, dirty, get_key_3, 1, ctx, each_value, each3_lookup, div11, destroy_block, create_each_block, null, get_each_context);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*message*/ 262144 && div11_class_value !== (div11_class_value = \"favorites emoji-menu \" + (/*message*/ ctx[18] ? 'gone' : ''))) {\n\t\t\t\tattr(div11, \"class\", div11_class_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && div11_aria_label_value !== (div11_aria_label_value = /*i18n*/ ctx[0].favoritesLabel)) {\n\t\t\t\tattr(div11, \"aria-label\", div11_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*scrollbarWidth*/ 33554432) {\n\t\t\t\tset_style(div11, \"padding-inline-end\", /*scrollbarWidth*/ ctx[25] + \"px\");\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*i18n*/ 1 && section_aria_label_value !== (section_aria_label_value = /*i18n*/ ctx[0].regionLabel)) {\n\t\t\t\tattr(section, \"aria-label\", section_aria_label_value);\n\t\t\t}\n\n\t\t\tif (dirty[0] & /*pickerStyle*/ 4194304) {\n\t\t\t\tattr(section, \"style\", /*pickerStyle*/ ctx[22]);\n\t\t\t}\n\t\t},\n\t\ti: noop,\n\t\to: noop,\n\t\td(detaching) {\n\t\t\tif (detaching) detach(section);\n\n\t\t\tfor (let i = 0; i < each_blocks_3.length; i += 1) {\n\t\t\t\teach_blocks_3[i].d();\n\t\t\t}\n\n\t\t\t/*div3_binding*/ ctx[48](null);\n\n\t\t\tfor (let i = 0; i < each_blocks_2.length; i += 1) {\n\t\t\t\teach_blocks_2[i].d();\n\t\t\t}\n\n\t\t\tfor (let i = 0; i < each_blocks_1.length; i += 1) {\n\t\t\t\teach_blocks_1[i].d();\n\t\t\t}\n\n\t\t\t/*div10_binding*/ ctx[50](null);\n\n\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].d();\n\t\t\t}\n\n\t\t\t/*button1_binding*/ ctx[51](null);\n\t\t\t/*section_binding*/ ctx[52](null);\n\t\t\tmounted = false;\n\t\t\trun_all(dispose);\n\t\t}\n\t};\n}\n\nfunction instance($$self, $$props, $$invalidate) {\n\tlet { skinToneEmoji } = $$props;\n\tlet { i18n } = $$props;\n\tlet { database } = $$props;\n\tlet { customEmoji } = $$props;\n\tlet { customCategorySorting } = $$props;\n\n\t// private\n\tlet initialLoad = true;\n\n\tlet currentEmojis = [];\n\tlet currentEmojisWithCategories = []; // eslint-disable-line no-unused-vars\n\tlet rawSearchText = '';\n\tlet searchText = '';\n\tlet rootElement;\n\tlet baselineEmoji;\n\tlet tabpanelElement;\n\tlet searchMode = false; // eslint-disable-line no-unused-vars\n\tlet activeSearchItem = -1;\n\tlet message; // eslint-disable-line no-unused-vars\n\tlet skinTonePickerExpanded = false;\n\tlet skinTonePickerExpandedAfterAnimation = false; // eslint-disable-line no-unused-vars\n\tlet skinToneDropdown;\n\tlet currentSkinTone = 0;\n\tlet activeSkinTone = 0;\n\tlet skinToneButtonText; // eslint-disable-line no-unused-vars\n\tlet pickerStyle; // eslint-disable-line no-unused-vars\n\tlet skinToneButtonLabel = ''; // eslint-disable-line no-unused-vars\n\tlet skinTones = [];\n\tlet currentFavorites = []; // eslint-disable-line no-unused-vars\n\tlet defaultFavoriteEmojis;\n\tlet numColumns = DEFAULT_NUM_COLUMNS;\n\tlet isRtl = false;\n\tlet scrollbarWidth = 0; // eslint-disable-line no-unused-vars\n\tlet currentGroupIndex = 0;\n\tlet groups$1 = groups;\n\tlet currentGroup;\n\tlet databaseLoaded = false; // eslint-disable-line no-unused-vars\n\tlet activeSearchItemId; // eslint-disable-line no-unused-vars\n\n\t//\n\t// Utils/helpers\n\t//\n\tconst focus = id => {\n\t\trootElement.getRootNode().getElementById(id).focus();\n\t};\n\n\t// fire a custom event that crosses the shadow boundary\n\tconst fireEvent = (name, detail) => {\n\t\trootElement.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));\n\t};\n\n\t// eslint-disable-next-line no-unused-vars\n\tconst unicodeWithSkin = (emoji, currentSkinTone) => currentSkinTone && emoji.skins && emoji.skins[currentSkinTone] || emoji.unicode;\n\n\t// eslint-disable-next-line no-unused-vars\n\tconst labelWithSkin = (emoji, currentSkinTone) => uniq([\n\t\temoji.name || unicodeWithSkin(emoji, currentSkinTone),\n\t\t...emoji.shortcodes || []\n\t]).join(', ');\n\n\t// Detect a skintone option button\n\tconst isSkinToneOption = element => (/^skintone-/).test(element.id);\n\n\t//\n\t// Determine the emoji support level (in requestIdleCallback)\n\t//\n\temojiSupportLevelPromise.then(level => {\n\t\t// Can't actually test emoji support in Jest/JSDom, emoji never render in color in Cairo\n\t\t/* istanbul ignore next */\n\t\tif (!level) {\n\t\t\t$$invalidate(18, message = i18n.emojiUnsupportedMessage);\n\t\t}\n\t});\n\n\t//\n\t// Calculate the width of the emoji grid. This serves two purposes:\n\t// 1) Re-calculate the --num-columns var because it may have changed\n\t// 2) Re-calculate the scrollbar width because it may have changed\n\t//   (i.e. because the number of items changed)\n\t// 3) Re-calculate whether we're in RTL mode or not.\n\t//\n\t// The benefit of doing this in one place is to align with rAF/ResizeObserver\n\t// and do all the calculations in one go. RTL vs LTR is not strictly width-related,\n\t// but since we're already reading the style here, and since it's already aligned with\n\t// the rAF loop, this is the most appropriate place to do it perf-wise.\n\t//\n\t// eslint-disable-next-line no-unused-vars\n\tfunction calculateEmojiGridStyle(node) {\n\t\treturn calculateWidth(node, width => {\n\t\t\t/* istanbul ignore next */\n\t\t\tif (true) {\n\t\t\t\t// jsdom throws errors for this kind of fancy stuff\n\t\t\t\t// read all the style/layout calculations we need to make\n\t\t\t\tconst style = getComputedStyle(rootElement);\n\n\t\t\t\tconst newNumColumns = parseInt(style.getPropertyValue('--num-columns'), 10);\n\t\t\t\tconst newIsRtl = style.getPropertyValue('direction') === 'rtl';\n\t\t\t\tconst parentWidth = node.parentElement.getBoundingClientRect().width;\n\t\t\t\tconst newScrollbarWidth = parentWidth - width;\n\n\t\t\t\t// write to Svelte variables\n\t\t\t\t$$invalidate(46, numColumns = newNumColumns);\n\n\t\t\t\t$$invalidate(25, scrollbarWidth = newScrollbarWidth); // eslint-disable-line no-unused-vars\n\t\t\t\t$$invalidate(24, isRtl = newIsRtl); // eslint-disable-line no-unused-vars\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction checkZwjSupportAndUpdate(zwjEmojisToCheck) {\n\t\tconst rootNode = rootElement.getRootNode();\n\t\tconst emojiToDomNode = emoji => rootNode.getElementById(`emo-${emoji.id}`);\n\t\tcheckZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode);\n\n\t\t// force update\n\t\t$$invalidate(1, currentEmojis = currentEmojis); // eslint-disable-line no-self-assign\n\t}\n\n\tfunction isZwjSupported(emoji) {\n\t\treturn !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode);\n\t}\n\n\tasync function filterEmojisByVersion(emojis) {\n\t\tconst emojiSupportLevel = await emojiSupportLevelPromise;\n\n\t\t// !version corresponds to custom emoji\n\t\treturn emojis.filter(({ version }) => !version || version <= emojiSupportLevel);\n\t}\n\n\tasync function summarizeEmojis(emojis) {\n\t\treturn summarizeEmojisForUI(emojis, await emojiSupportLevelPromise);\n\t}\n\n\tasync function getEmojisByGroup(group) {\n\n\t\tif (typeof group === 'undefined') {\n\t\t\treturn [];\n\t\t}\n\n\t\t// -1 is custom emoji\n\t\tconst emoji = group === -1\n\t\t? customEmoji\n\t\t: await database.getEmojiByGroup(group);\n\n\t\treturn summarizeEmojis(await filterEmojisByVersion(emoji));\n\t}\n\n\tasync function getEmojisBySearchQuery(query) {\n\t\treturn summarizeEmojis(await filterEmojisByVersion(await database.getEmojiBySearchQuery(query)));\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tfunction onSearchKeydown(event) {\n\t\tif (!searchMode || !currentEmojis.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst goToNextOrPrevious = previous => {\n\t\t\thalt(event);\n\t\t\t$$invalidate(5, activeSearchItem = incrementOrDecrement(previous, activeSearchItem, currentEmojis));\n\t\t};\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\treturn goToNextOrPrevious(false);\n\t\t\tcase 'ArrowUp':\n\t\t\t\treturn goToNextOrPrevious(true);\n\t\t\tcase 'Enter':\n\t\t\t\tif (activeSearchItem !== -1) {\n\t\t\t\t\thalt(event);\n\t\t\t\t\treturn clickEmoji(currentEmojis[activeSearchItem].id);\n\t\t\t\t} else if (currentEmojis.length) {\n\t\t\t\t\t$$invalidate(5, activeSearchItem = 0);\n\t\t\t\t}\n\t\t}\n\t}\n\n\t//\n\t// Handle user input on nav\n\t//\n\t// eslint-disable-next-line no-unused-vars\n\tfunction onNavClick(group) {\n\t\t$$invalidate(2, rawSearchText = '');\n\t\t$$invalidate(44, searchText = '');\n\t\t$$invalidate(5, activeSearchItem = -1);\n\t\t$$invalidate(11, currentGroupIndex = groups$1.findIndex(_ => _.id === group.id));\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tfunction onNavKeydown(event) {\n\t\tconst { target, key } = event;\n\n\t\tconst doFocus = el => {\n\t\t\tif (el) {\n\t\t\t\thalt(event);\n\t\t\t\tel.focus();\n\t\t\t}\n\t\t};\n\n\t\tswitch (key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\treturn doFocus(target.previousSibling);\n\t\t\tcase 'ArrowRight':\n\t\t\t\treturn doFocus(target.nextSibling);\n\t\t\tcase 'Home':\n\t\t\t\treturn doFocus(target.parentElement.firstChild);\n\t\t\tcase 'End':\n\t\t\t\treturn doFocus(target.parentElement.lastChild);\n\t\t}\n\t}\n\n\t//\n\t// Handle user input on an emoji\n\t//\n\tasync function clickEmoji(unicodeOrName) {\n\t\tconst emoji = await database.getEmojiByUnicodeOrName(unicodeOrName);\n\t\tconst emojiSummary = [...currentEmojis, ...currentFavorites].find(_ => _.id === unicodeOrName);\n\t\tconst skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, currentSkinTone);\n\t\tawait database.incrementFavoriteEmojiCount(unicodeOrName);\n\n\t\tfireEvent('emoji-click', {\n\t\t\temoji,\n\t\t\tskinTone: currentSkinTone,\n\t\t\t...skinTonedUnicode && { unicode: skinTonedUnicode },\n\t\t\t...emojiSummary.name && { name: emojiSummary.name }\n\t\t});\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tasync function onEmojiClick(event) {\n\t\tconst { target } = event;\n\n\t\tif (!target.classList.contains('emoji')) {\n\t\t\treturn;\n\t\t}\n\n\t\thalt(event);\n\t\tconst id = target.id.substring(4); // replace 'emo-' or 'fav-' prefix\n\n\t\t/* no await */\n\t\tclickEmoji(id);\n\t}\n\n\t//\n\t// Handle user input on the skintone picker\n\t//\n\t// eslint-disable-next-line no-unused-vars\n\tasync function onSkinToneOptionsClick(event) {\n\t\tconst { target } = event;\n\n\t\tif (!isSkinToneOption(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\thalt(event);\n\t\tconst skinTone = parseInt(target.id.slice(9), 10); // remove 'skintone-' prefix\n\t\t$$invalidate(8, currentSkinTone = skinTone);\n\t\t$$invalidate(6, skinTonePickerExpanded = false);\n\t\tfocus('skintone-button');\n\t\tfireEvent('skin-tone-change', { skinTone });\n\n\t\t/* no await */\n\t\tdatabase.setPreferredSkinTone(skinTone);\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tasync function onClickSkinToneButton(event) {\n\t\t$$invalidate(6, skinTonePickerExpanded = !skinTonePickerExpanded);\n\t\t$$invalidate(20, activeSkinTone = currentSkinTone);\n\n\t\tif (skinTonePickerExpanded) {\n\t\t\thalt(event);\n\t\t\trAF(() => focus(`skintone-${activeSkinTone}`));\n\t\t}\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tfunction onSkinToneOptionsKeydown(event) {\n\t\tif (!skinTonePickerExpanded) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst changeActiveSkinTone = async nextSkinTone => {\n\t\t\thalt(event);\n\t\t\t$$invalidate(20, activeSkinTone = nextSkinTone);\n\t\t\tawait tick();\n\t\t\tfocus(`skintone-${activeSkinTone}`);\n\t\t};\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowUp':\n\t\t\t\treturn changeActiveSkinTone(incrementOrDecrement(true, activeSkinTone, skinTones));\n\t\t\tcase 'ArrowDown':\n\t\t\t\treturn changeActiveSkinTone(incrementOrDecrement(false, activeSkinTone, skinTones));\n\t\t\tcase 'Home':\n\t\t\t\treturn changeActiveSkinTone(0);\n\t\t\tcase 'End':\n\t\t\t\treturn changeActiveSkinTone(skinTones.length - 1);\n\t\t\tcase 'Enter':\n\t\t\t\t// enter on keydown, space on keyup. this is just how browsers work for buttons\n\t\t\t\t// https://lists.w3.org/Archives/Public/w3c-wai-ig/2019JanMar/0086.html\n\t\t\t\treturn onSkinToneOptionsClick(event);\n\t\t\tcase 'Escape':\n\t\t\t\thalt(event);\n\t\t\t\t$$invalidate(6, skinTonePickerExpanded = false);\n\t\t\t\treturn focus('skintone-button');\n\t\t}\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tfunction onSkinToneOptionsKeyup(event) {\n\t\tif (!skinTonePickerExpanded) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (event.key) {\n\t\t\tcase ' ':\n\t\t\t\t// enter on keydown, space on keyup. this is just how browsers work for buttons\n\t\t\t\t// https://lists.w3.org/Archives/Public/w3c-wai-ig/2019JanMar/0086.html\n\t\t\t\treturn onSkinToneOptionsClick(event);\n\t\t}\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tasync function onSkinToneOptionsFocusOut(event) {\n\t\t// On blur outside of the skintone options, collapse the skintone picker.\n\t\t// Except if focus is just moving to another skintone option, e.g. pressing up/down to change focus\n\t\tconst { relatedTarget } = event;\n\n\t\tif (!relatedTarget || !isSkinToneOption(relatedTarget)) {\n\t\t\t$$invalidate(6, skinTonePickerExpanded = false);\n\t\t}\n\t}\n\n\tfunction input_input_handler() {\n\t\trawSearchText = this.value;\n\t\t$$invalidate(2, rawSearchText);\n\t}\n\n\tfunction div3_binding($$value) {\n\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\tskinToneDropdown = $$value;\n\t\t\t$$invalidate(7, skinToneDropdown);\n\t\t});\n\t}\n\n\tconst click_handler = group => onNavClick(group);\n\n\tfunction div10_binding($$value) {\n\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\ttabpanelElement = $$value;\n\t\t\t$$invalidate(3, tabpanelElement);\n\t\t});\n\t}\n\n\tfunction button1_binding($$value) {\n\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\tbaselineEmoji = $$value;\n\t\t\t$$invalidate(17, baselineEmoji);\n\t\t});\n\t}\n\n\tfunction section_binding($$value) {\n\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\trootElement = $$value;\n\t\t\t$$invalidate(16, rootElement);\n\t\t});\n\t}\n\n\t$$self.$$set = $$props => {\n\t\tif ('skinToneEmoji' in $$props) $$invalidate(40, skinToneEmoji = $$props.skinToneEmoji);\n\t\tif ('i18n' in $$props) $$invalidate(0, i18n = $$props.i18n);\n\t\tif ('database' in $$props) $$invalidate(39, database = $$props.database);\n\t\tif ('customEmoji' in $$props) $$invalidate(41, customEmoji = $$props.customEmoji);\n\t\tif ('customCategorySorting' in $$props) $$invalidate(42, customCategorySorting = $$props.customCategorySorting);\n\t};\n\n\t$$self.$$.update = () => {\n\t\tif ($$self.$$.dirty[1] & /*customEmoji, database*/ 1280) {\n\t\t\t/* eslint-enable no-unused-vars */\n\t\t\t//\n\t\t\t// Set or update the customEmoji\n\t\t\t//\n\t\t\t{\n\t\t\t\tif (customEmoji && database) {\n\t\t\t\t\t$$invalidate(39, database.customEmoji = customEmoji, database);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*i18n*/ 1 | $$self.$$.dirty[1] & /*database*/ 256) {\n\t\t\t//\n\t\t\t// Set or update the database object\n\t\t\t//\n\t\t\t{\n\t\t\t\t// show a Loading message if it takes a long time, or show an error if there's a network/IDB error\n\t\t\t\tasync function handleDatabaseLoading() {\n\t\t\t\t\tlet showingLoadingMessage = false;\n\n\t\t\t\t\tconst timeoutHandle = setTimeout(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tshowingLoadingMessage = true;\n\t\t\t\t\t\t\t$$invalidate(18, message = i18n.loadingMessage);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTIMEOUT_BEFORE_LOADING_MESSAGE\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait database.ready();\n\t\t\t\t\t\t$$invalidate(14, databaseLoaded = true); // eslint-disable-line no-unused-vars\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\t$$invalidate(18, message = i18n.networkErrorMessage);\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tclearTimeout(timeoutHandle);\n\n\t\t\t\t\t\tif (showingLoadingMessage) {\n\t\t\t\t\t\t\t// Seems safer than checking the i18n string, which may change\n\t\t\t\t\t\t\tshowingLoadingMessage = false;\n\n\t\t\t\t\t\t\t$$invalidate(18, message = ''); // eslint-disable-line no-unused-vars\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (database) {\n\t\t\t\t\t/* no await */\n\t\t\t\t\thandleDatabaseLoading();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*groups, currentGroupIndex*/ 6144 | $$self.$$.dirty[1] & /*customEmoji*/ 1024) {\n\t\t\t{\n\t\t\t\tif (customEmoji && customEmoji.length) {\n\t\t\t\t\t$$invalidate(12, groups$1 = [customGroup, ...groups]);\n\t\t\t\t} else if (groups$1 !== groups) {\n\t\t\t\t\tif (currentGroupIndex) {\n\t\t\t\t\t\t// If the current group is anything other than \"custom\" (which is first), decrement.\n\t\t\t\t\t\t// This fixes the odd case where you set customEmoji, then pick a category, then unset customEmoji\n\t\t\t\t\t\t$$invalidate(11, currentGroupIndex--, currentGroupIndex);\n\t\t\t\t\t}\n\n\t\t\t\t\t$$invalidate(12, groups$1 = groups);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*rawSearchText*/ 4) {\n\t\t\t/* eslint-enable no-unused-vars */\n\t\t\t//\n\t\t\t// Handle user input on the search input\n\t\t\t//\n\t\t\t{\n\t\t\t\trIC(() => {\n\t\t\t\t\t$$invalidate(44, searchText = (rawSearchText || '').trim()); // defer to avoid input delays, plus we can trim here\n\t\t\t\t\t$$invalidate(5, activeSearchItem = -1);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*groups, currentGroupIndex*/ 6144) {\n\t\t\t//\n\t\t\t// Update the current group based on the currentGroupIndex\n\t\t\t//\n\t\t\t$$invalidate(13, currentGroup = groups$1[currentGroupIndex]);\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*databaseLoaded, currentGroup*/ 24576 | $$self.$$.dirty[1] & /*searchText*/ 8192) {\n\t\t\t//\n\t\t\t// Set or update the currentEmojis. Check for invalid ZWJ renderings\n\t\t\t// (i.e. double emoji).\n\t\t\t//\n\t\t\t{\n\t\t\t\tasync function updateEmojis() {\n\n\t\t\t\t\tif (!databaseLoaded) {\n\t\t\t\t\t\t$$invalidate(1, currentEmojis = []);\n\t\t\t\t\t\t$$invalidate(4, searchMode = false);\n\t\t\t\t\t} else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n\t\t\t\t\t\tconst currentSearchText = searchText;\n\t\t\t\t\t\tconst newEmojis = await getEmojisBySearchQuery(currentSearchText);\n\n\t\t\t\t\t\tif (currentSearchText === searchText) {\n\t\t\t\t\t\t\t// if the situation changes asynchronously, do not update\n\t\t\t\t\t\t\t$$invalidate(1, currentEmojis = newEmojis);\n\n\t\t\t\t\t\t\t$$invalidate(4, searchMode = true);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (currentGroup) {\n\t\t\t\t\t\tconst currentGroupId = currentGroup.id;\n\t\t\t\t\t\tconst newEmojis = await getEmojisByGroup(currentGroupId);\n\n\t\t\t\t\t\tif (currentGroupId === currentGroup.id) {\n\t\t\t\t\t\t\t// if the situation changes asynchronously, do not update\n\t\t\t\t\t\t\t$$invalidate(1, currentEmojis = newEmojis);\n\n\t\t\t\t\t\t\t$$invalidate(4, searchMode = false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* no await */\n\t\t\t\tupdateEmojis();\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*groups, searchMode*/ 4112) {\n\t\t\t//\n\t\t\t// Global styles for the entire picker\n\t\t\t//\n\t\t\t/* eslint-disable no-unused-vars */\n\t\t\t$$invalidate(22, pickerStyle = `\n  --font-family: ${FONT_FAMILY};\n  --num-groups: ${groups$1.length}; \n  --indicator-opacity: ${searchMode ? 0 : 1}; \n  --num-skintones: ${NUM_SKIN_TONES};`);\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*databaseLoaded*/ 16384 | $$self.$$.dirty[1] & /*database*/ 256) {\n\t\t\t//\n\t\t\t// Set or update the preferred skin tone\n\t\t\t//\n\t\t\t{\n\t\t\t\tasync function updatePreferredSkinTone() {\n\t\t\t\t\tif (databaseLoaded) {\n\t\t\t\t\t\t$$invalidate(8, currentSkinTone = await database.getPreferredSkinTone());\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* no await */\n\t\t\t\tupdatePreferredSkinTone();\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[1] & /*skinToneEmoji*/ 512) {\n\t\t\t$$invalidate(9, skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(skinToneEmoji, i)));\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*skinTones, currentSkinTone*/ 768) {\n\t\t\t/* eslint-disable no-unused-vars */\n\t\t\t$$invalidate(21, skinToneButtonText = skinTones[currentSkinTone]);\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*i18n, currentSkinTone*/ 257) {\n\t\t\t$$invalidate(23, skinToneButtonLabel = i18n.skinToneLabel.replace('{skinTone}', i18n.skinTones[currentSkinTone]));\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*databaseLoaded*/ 16384 | $$self.$$.dirty[1] & /*database*/ 256) {\n\t\t\t/* eslint-enable no-unused-vars */\n\t\t\t//\n\t\t\t// Set or update the favorites emojis\n\t\t\t//\n\t\t\t{\n\t\t\t\tasync function updateDefaultFavoriteEmojis() {\n\t\t\t\t\t$$invalidate(45, defaultFavoriteEmojis = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map(unicode => database.getEmojiByUnicodeOrName(unicode)))).filter(Boolean)); // filter because in Jest tests we don't have all the emoji in the DB\n\t\t\t\t}\n\n\t\t\t\tif (databaseLoaded) {\n\t\t\t\t\t/* no await */\n\t\t\t\t\tupdateDefaultFavoriteEmojis();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*databaseLoaded*/ 16384 | $$self.$$.dirty[1] & /*database, numColumns, defaultFavoriteEmojis*/ 49408) {\n\t\t\t{\n\t\t\t\tasync function updateFavorites() {\n\t\t\t\t\tconst dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n\t\t\t\t\tconst favorites = await summarizeEmojis(uniqBy([...dbFavorites, ...defaultFavoriteEmojis], _ => _.unicode || _.name).slice(0, numColumns));\n\t\t\t\t\t$$invalidate(10, currentFavorites = favorites);\n\t\t\t\t}\n\n\t\t\t\tif (databaseLoaded && defaultFavoriteEmojis) {\n\t\t\t\t\t/* no await */\n\t\t\t\t\tupdateFavorites();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*currentEmojis, tabpanelElement*/ 10) {\n\t\t\t// Some emojis have their ligatures rendered as two or more consecutive emojis\n\t\t\t// We want to treat these the same as unsupported emojis, so we compare their\n\t\t\t// widths against the baseline widths and remove them as necessary\n\t\t\t{\n\t\t\t\tconst zwjEmojisToCheck = currentEmojis.filter(emoji => emoji.unicode).filter(emoji => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode)); // filter custom emoji\n\n\t\t\t\tif (zwjEmojisToCheck.length) {\n\t\t\t\t\t// render now, check their length later\n\t\t\t\t\trAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n\t\t\t\t} else {\n\t\t\t\t\t$$invalidate(1, currentEmojis = currentEmojis.filter(isZwjSupported));\n\n\t\t\t\t\trAF(() => {\n\t\t\t\t\t\t// Avoid Svelte doing an invalidation on the \"setter\" here.\n\t\t\t\t\t\t// At best the invalidation is useless, at worst it can cause infinite loops:\n\t\t\t\t\t\t// https://github.com/nolanlawson/emoji-picker-element/pull/180\n\t\t\t\t\t\t// https://github.com/sveltejs/svelte/issues/6521\n\t\t\t\t\t\t// Also note tabpanelElement can be null if the element is disconnected\n\t\t\t\t\t\t// immediately after connected, hence `|| {}`\n\t\t\t\t\t\t(tabpanelElement || {}).scrollTop = 0; // reset scroll top to 0 when emojis change\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*currentEmojis, currentFavorites*/ 1026 | $$self.$$.dirty[1] & /*initialLoad*/ 4096) {\n\t\t\t{\n\t\t\t\t// consider initialLoad to be complete when the first tabpanel and favorites are rendered\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tif (false) {}\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*searchMode, currentEmojis*/ 18 | $$self.$$.dirty[1] & /*customCategorySorting*/ 2048) {\n\t\t\t//\n\t\t\t// Derive currentEmojisWithCategories from currentEmojis. This is always done even if there\n\t\t\t// are no categories, because it's just easier to code the HTML this way.\n\t\t\t//\n\t\t\t{\n\t\t\t\tfunction calculateCurrentEmojisWithCategories() {\n\t\t\t\t\tif (searchMode) {\n\t\t\t\t\t\treturn [{ category: '', emojis: currentEmojis }];\n\t\t\t\t\t}\n\n\t\t\t\t\tconst categoriesToEmoji = new Map();\n\n\t\t\t\t\tfor (const emoji of currentEmojis) {\n\t\t\t\t\t\tconst category = emoji.category || '';\n\t\t\t\t\t\tlet emojis = categoriesToEmoji.get(category);\n\n\t\t\t\t\t\tif (!emojis) {\n\t\t\t\t\t\t\temojis = [];\n\t\t\t\t\t\t\tcategoriesToEmoji.set(category, emojis);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\temojis.push(emoji);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [...categoriesToEmoji.entries()].map(([category, emojis]) => ({ category, emojis })).sort((a, b) => customCategorySorting(a.category, b.category));\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\t\t$$invalidate(15, currentEmojisWithCategories = calculateCurrentEmojisWithCategories());\n\t\t\t}\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*activeSearchItem, currentEmojis*/ 34) {\n\t\t\t//\n\t\t\t// Handle active search item (i.e. pressing up or down while searching)\n\t\t\t//\n\t\t\t/* eslint-disable no-unused-vars */\n\t\t\t$$invalidate(26, activeSearchItemId = activeSearchItem !== -1 && currentEmojis[activeSearchItem].id);\n\t\t}\n\n\t\tif ($$self.$$.dirty[0] & /*skinTonePickerExpanded, skinToneDropdown*/ 192) {\n\t\t\t// To make the animation nicer, change the z-index of the skintone picker button\n\t\t\t// *after* the animation has played. This makes it appear that the picker box\n\t\t\t// is expanding \"below\" the button\n\t\t\t{\n\t\t\t\tif (skinTonePickerExpanded) {\n\t\t\t\t\tskinToneDropdown.addEventListener(\n\t\t\t\t\t\t'transitionend',\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t$$invalidate(19, skinTonePickerExpandedAfterAnimation = true); // eslint-disable-line no-unused-vars\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ once: true }\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t$$invalidate(19, skinTonePickerExpandedAfterAnimation = false); // eslint-disable-line no-unused-vars\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn [\n\t\ti18n,\n\t\tcurrentEmojis,\n\t\trawSearchText,\n\t\ttabpanelElement,\n\t\tsearchMode,\n\t\tactiveSearchItem,\n\t\tskinTonePickerExpanded,\n\t\tskinToneDropdown,\n\t\tcurrentSkinTone,\n\t\tskinTones,\n\t\tcurrentFavorites,\n\t\tcurrentGroupIndex,\n\t\tgroups$1,\n\t\tcurrentGroup,\n\t\tdatabaseLoaded,\n\t\tcurrentEmojisWithCategories,\n\t\trootElement,\n\t\tbaselineEmoji,\n\t\tmessage,\n\t\tskinTonePickerExpandedAfterAnimation,\n\t\tactiveSkinTone,\n\t\tskinToneButtonText,\n\t\tpickerStyle,\n\t\tskinToneButtonLabel,\n\t\tisRtl,\n\t\tscrollbarWidth,\n\t\tactiveSearchItemId,\n\t\tunicodeWithSkin,\n\t\tlabelWithSkin,\n\t\tcalculateEmojiGridStyle,\n\t\tonSearchKeydown,\n\t\tonNavClick,\n\t\tonNavKeydown,\n\t\tonEmojiClick,\n\t\tonSkinToneOptionsClick,\n\t\tonClickSkinToneButton,\n\t\tonSkinToneOptionsKeydown,\n\t\tonSkinToneOptionsKeyup,\n\t\tonSkinToneOptionsFocusOut,\n\t\tdatabase,\n\t\tskinToneEmoji,\n\t\tcustomEmoji,\n\t\tcustomCategorySorting,\n\t\tinitialLoad,\n\t\tsearchText,\n\t\tdefaultFavoriteEmojis,\n\t\tnumColumns,\n\t\tinput_input_handler,\n\t\tdiv3_binding,\n\t\tclick_handler,\n\t\tdiv10_binding,\n\t\tbutton1_binding,\n\t\tsection_binding\n\t];\n}\n\nclass Picker extends SvelteComponent {\n\tconstructor(options) {\n\t\tsuper();\n\n\t\tinit(\n\t\t\tthis,\n\t\t\toptions,\n\t\t\tinstance,\n\t\t\tcreate_fragment,\n\t\t\tsafe_not_equal,\n\t\t\t{\n\t\t\t\tskinToneEmoji: 40,\n\t\t\t\ti18n: 0,\n\t\t\t\tdatabase: 39,\n\t\t\t\tcustomEmoji: 41,\n\t\t\t\tcustomCategorySorting: 42\n\t\t\t},\n\t\t\tnull,\n\t\t\t[-1, -1, -1]\n\t\t);\n\t}\n}\n\nconst DEFAULT_DATA_SOURCE = 'https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json';\nconst DEFAULT_LOCALE = 'en';\n\nvar enI18n = {\n  categoriesLabel: 'Categories',\n  emojiUnsupportedMessage: 'Your browser does not support color emoji.',\n  favoritesLabel: 'Favorites',\n  loadingMessage: 'Loading…',\n  networkErrorMessage: 'Could not load emoji.',\n  regionLabel: 'Emoji picker',\n  searchDescription: 'When search results are available, press up or down to select and enter to choose.',\n  searchLabel: 'Search',\n  searchResultsLabel: 'Search results',\n  skinToneDescription: 'When expanded, press up or down to select and enter to choose.',\n  skinToneLabel: 'Choose a skin tone (currently {skinTone})',\n  skinTonesLabel: 'Skin tones',\n  skinTones: [\n    'Default',\n    'Light',\n    'Medium-Light',\n    'Medium',\n    'Medium-Dark',\n    'Dark'\n  ],\n  categories: {\n    custom: 'Custom',\n    'smileys-emotion': 'Smileys and emoticons',\n    'people-body': 'People and body',\n    'animals-nature': 'Animals and nature',\n    'food-drink': 'Food and drink',\n    'travel-places': 'Travel and places',\n    activities: 'Activities',\n    objects: 'Objects',\n    symbols: 'Symbols',\n    flags: 'Flags'\n  }\n};\n\nconst PROPS = [\n  'customEmoji',\n  'customCategorySorting',\n  'database',\n  'dataSource',\n  'i18n',\n  'locale',\n  'skinToneEmoji'\n];\n\nclass PickerElement extends HTMLElement {\n  constructor (props) {\n    super();\n    this.attachShadow({ mode: 'open' });\n    const style = document.createElement('style');\n    style.textContent = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n    this.shadowRoot.appendChild(style);\n    this._ctx = {\n      // Set defaults\n      locale: DEFAULT_LOCALE,\n      dataSource: DEFAULT_DATA_SOURCE,\n      skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n      customCategorySorting: DEFAULT_CATEGORY_SORTING,\n      customEmoji: null,\n      i18n: enI18n,\n      ...props\n    };\n    // Handle properties set before the element was upgraded\n    for (const prop of PROPS) {\n      if (prop !== 'database' && Object.prototype.hasOwnProperty.call(this, prop)) {\n        this._ctx[prop] = this[prop];\n        delete this[prop];\n      }\n    }\n    this._dbFlush(); // wait for a flush before creating the db, in case the user calls e.g. a setter or setAttribute\n  }\n\n  connectedCallback () {\n    this._cmp = new Picker({\n      target: this.shadowRoot,\n      props: this._ctx\n    });\n  }\n\n  disconnectedCallback () {\n    this._cmp.$destroy();\n    this._cmp = undefined;\n\n    const { database } = this._ctx;\n    if (database) {\n      database.close()\n        // only happens if the database failed to load in the first place, so we don't care)\n        .catch(err => console.error(err));\n    }\n  }\n\n  static get observedAttributes () {\n    return ['locale', 'data-source', 'skin-tone-emoji'] // complex objects aren't supported, also use kebab-case\n  }\n\n  attributeChangedCallback (attrName, oldValue, newValue) {\n    // convert from kebab-case to camelcase\n    // see https://github.com/sveltejs/svelte/issues/3852#issuecomment-665037015\n    this._set(\n      attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n      newValue\n    );\n  }\n\n  _set (prop, newValue) {\n    this._ctx[prop] = newValue;\n    if (this._cmp) {\n      this._cmp.$set({ [prop]: newValue });\n    }\n    if (['locale', 'dataSource'].includes(prop)) {\n      this._dbFlush();\n    }\n  }\n\n  _dbCreate () {\n    const { locale, dataSource, database } = this._ctx;\n    // only create a new database if we really need to\n    if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n      this._set('database', new _database_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]({ locale, dataSource }));\n    }\n  }\n\n  // Update the Database in one microtask if the locale/dataSource change. We do one microtask\n  // so we don't create two Databases if e.g. both the locale and the dataSource change\n  _dbFlush () {\n    Promise.resolve().then(() => (\n      this._dbCreate()\n    ));\n  }\n}\n\nconst definitions = {};\n\nfor (const prop of PROPS) {\n  definitions[prop] = {\n    get () {\n      if (prop === 'database') {\n        // in rare cases, the microtask may not be flushed yet, so we need to instantiate the DB\n        // now if the user is asking for it\n        this._dbCreate();\n      }\n      return this._ctx[prop]\n    },\n    set (val) {\n      if (prop === 'database') {\n        throw new Error('database is read-only')\n      }\n      this._set(prop, val);\n    }\n  };\n}\n\nObject.defineProperties(PickerElement.prototype, definitions);\n\n/* istanbul ignore else */\nif (!customElements.get('emoji-picker')) { // if already defined, do nothing (e.g. same script imported twice)\n  customElements.define('emoji-picker', PickerElement);\n}\n\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"8925\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar isCallable = __webpack_require__(\"1626\");\nvar store = __webpack_require__(\"c6cd\");\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ \"8aa5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(\"6547\").charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"8cba\":\n/***/ (function(module, exports) {\n\nfunction Version() {\n\n    /**\n     * URL for the LAME website.\n     */\n    var LAME_URL = \"http://www.mp3dev.org/\";\n\n    /**\n     * Major version number.\n     */\n    var LAME_MAJOR_VERSION = 3;\n    /**\n     * Minor version number.\n     */\n    var LAME_MINOR_VERSION = 98;\n    /**\n     * Patch level.\n     */\n    var LAME_PATCH_VERSION = 4;\n\n    /**\n     * Major version number.\n     */\n    var PSY_MAJOR_VERSION = 0;\n    /**\n     * Minor version number.\n     */\n    var PSY_MINOR_VERSION = 93;\n\n    /**\n     * A string which describes the version of LAME.\n     *\n     * @return string which describes the version of LAME\n     */\n    this.getLameVersion = function () {\n        // primary to write screen reports\n        return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n    }\n\n    /**\n     * The short version of the LAME version string.\n     *\n     * @return short version of the LAME version string\n     */\n    this.getLameShortVersion = function () {\n        // Adding date and time to version string makes it harder for output\n        // validation\n        return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n    }\n\n    /**\n     * The shortest version of the LAME version string.\n     *\n     * @return shortest version of the LAME version string\n     */\n    this.getLameVeryShortVersion = function () {\n        // Adding date and time to version string makes it harder for output\n        return (\"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\");\n    }\n\n    /**\n     * String which describes the version of GPSYCHO\n     *\n     * @return string which describes the version of GPSYCHO\n     */\n    this.getPsyVersion = function () {\n        return (PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION);\n    }\n\n    /**\n     * String which is a URL for the LAME website.\n     *\n     * @return string which is a URL for the LAME website\n     */\n    this.getLameUrl = function () {\n        return LAME_URL;\n    }\n\n    /**\n     * Quite useless for a java version, however we are compatible ;-)\n     *\n     * @return \"32bits\"\n     */\n    this.getLameOsBitness = function () {\n        return \"32bits\";\n    }\n\n}\n\nmodule.exports = Version;\n\n\n/***/ }),\n\n/***/ \"907a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar lengthOfArrayLike = __webpack_require__(\"07fa\");\nvar toIntegerOrInfinity = __webpack_require__(\"5926\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n\n\n/***/ }),\n\n/***/ \"90d8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(\"c65b\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar isPrototypeOf = __webpack_require__(\"3a9b\");\nvar regExpFlags = __webpack_require__(\"ad6d\");\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n  var flags = R.flags;\n  return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n    ? call(regExpFlags, R) : flags;\n};\n\n\n/***/ }),\n\n/***/ \"90e3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ }),\n\n/***/ \"9112\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ \"9263\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = __webpack_require__(\"c65b\");\nvar uncurryThis = __webpack_require__(\"e330\");\nvar toString = __webpack_require__(\"577e\");\nvar regexpFlags = __webpack_require__(\"ad6d\");\nvar stickyHelpers = __webpack_require__(\"9f7f\");\nvar shared = __webpack_require__(\"5692\");\nvar create = __webpack_require__(\"7c73\");\nvar getInternalState = __webpack_require__(\"69f3\").get;\nvar UNSUPPORTED_DOT_ALL = __webpack_require__(\"fce3\");\nvar UNSUPPORTED_NCG = __webpack_require__(\"107c\");\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  call(nativeExec, re1, 'a');\n  call(nativeExec, re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n  patchedExec = function exec(string) {\n    var re = this;\n    var state = getInternalState(re);\n    var str = toString(string);\n    var raw = state.raw;\n    var result, reCopy, lastIndex, match, i, object, group;\n\n    if (raw) {\n      raw.lastIndex = re.lastIndex;\n      result = call(patchedExec, raw, str);\n      re.lastIndex = raw.lastIndex;\n      return result;\n    }\n\n    var groups = state.groups;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = call(regexpFlags, re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = replace(flags, 'y', '');\n      if (indexOf(flags, 'g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = stringSlice(str, re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = stringSlice(match.input, charsAdded);\n        match[0] = stringSlice(match[0], charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n      call(nativeReplace, match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    if (match && groups) {\n      match.groups = object = create(null);\n      for (i = 0; i < groups.length; i++) {\n        group = groups[i];\n        object[group[0]] = match[group[1]];\n      }\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"947f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MPEGMode = __webpack_require__(\"67b2\");\n\nfunction LameGlobalFlags() {\n\n    this.class_id = 0;\n\n    /* input description */\n\n    /**\n     * number of samples. default=-1\n     */\n    this.num_samples = 0;\n    /**\n     * input number of channels. default=2\n     */\n    this.num_channels = 0;\n    /**\n     * input_samp_rate in Hz. default=44.1 kHz\n     */\n    this.in_samplerate = 0;\n    /**\n     * output_samp_rate. default: LAME picks best value at least not used for\n     * MP3 decoding: Remember 44.1 kHz MP3s and AC97\n     */\n    this.out_samplerate = 0;\n    /**\n     * scale input by this amount before encoding at least not used for MP3\n     * decoding\n     */\n    this.scale = 0.;\n    /**\n     * scale input of channel 0 (left) by this amount before encoding\n     */\n    this.scale_left = 0.;\n    /**\n     * scale input of channel 1 (right) by this amount before encoding\n     */\n    this.scale_right = 0.;\n\n    /* general control params */\n    /**\n     * collect data for a MP3 frame analyzer?\n     */\n    this.analysis = false;\n    /**\n     * add Xing VBR tag?\n     */\n    this.bWriteVbrTag = false;\n\n    /**\n     * use lame/mpglib to convert mp3 to wav\n     */\n    this.decode_only = false;\n    /**\n     * quality setting 0=best, 9=worst default=5\n     */\n    this.quality = 0;\n    /**\n     * see enum default = LAME picks best value\n     */\n    this.mode = MPEGMode.STEREO;\n    /**\n     * force M/S mode. requires mode=1\n     */\n    this.force_ms = false;\n    /**\n     * use free format? default=0\n     */\n    this.free_format = false;\n    /**\n     * find the RG value? default=0\n     */\n    this.findReplayGain = false;\n    /**\n     * decode on the fly? default=0\n     */\n    this.decode_on_the_fly = false;\n    /**\n     * 1 (default) writes ID3 tags, 0 not\n     */\n    this.write_id3tag_automatic = false;\n\n    /*\n     * set either brate>0 or compression_ratio>0, LAME will compute the value of\n     * the variable not set. Default is compression_ratio = 11.025\n     */\n    /**\n     * bitrate\n     */\n    this.brate = 0;\n    /**\n     * sizeof(wav file)/sizeof(mp3 file)\n     */\n    this.compression_ratio = 0.;\n\n    /* frame params */\n    /**\n     * mark as copyright. default=0\n     */\n    this.copyright = 0;\n    /**\n     * mark as original. default=1\n     */\n    this.original = 0;\n    /**\n     * the MP3 'private extension' bit. Meaningless\n     */\n    this.extension = 0;\n    /**\n     * Input PCM is emphased PCM (for instance from one of the rarely emphased\n     * CDs), it is STRONGLY not recommended to use this, because psycho does not\n     * take it into account, and last but not least many decoders don't care\n     * about these bits\n     */\n    this.emphasis = 0;\n    /**\n     * use 2 bytes per frame for a CRC checksum. default=0\n     */\n    this.error_protection = 0;\n    /**\n     * enforce ISO spec as much as possible\n     */\n    this.strict_ISO = false;\n\n    /**\n     * use bit reservoir?\n     */\n    this.disable_reservoir = false;\n\n    /* quantization/noise shaping */\n    this.quant_comp = 0;\n    this.quant_comp_short = 0;\n    this.experimentalY = false;\n    this.experimentalZ = 0;\n    this.exp_nspsytune = 0;\n\n    this.preset = 0;\n\n    /* VBR control */\n    this.VBR = null;\n    /**\n     * Range [0,...,1[\n     */\n    this.VBR_q_frac = 0.;\n    /**\n     * Range [0,...,9]\n     */\n    this.VBR_q = 0;\n    this.VBR_mean_bitrate_kbps = 0;\n    this.VBR_min_bitrate_kbps = 0;\n    this.VBR_max_bitrate_kbps = 0;\n    /**\n     * strictly enforce VBR_min_bitrate normaly, it will be violated for analog\n     * silence\n     */\n    this.VBR_hard_min = 0;\n\n    /* resampling and filtering */\n\n    /**\n     * freq in Hz. 0=lame choses. -1=no filter\n     */\n    this.lowpassfreq = 0;\n    /**\n     * freq in Hz. 0=lame choses. -1=no filter\n     */\n    this.highpassfreq = 0;\n    /**\n     * freq width of filter, in Hz (default=15%)\n     */\n    this.lowpasswidth = 0;\n    /**\n     * freq width of filter, in Hz (default=15%)\n     */\n    this.highpasswidth = 0;\n\n    /*\n     * psycho acoustics and other arguments which you should not change unless\n     * you know what you are doing\n     */\n\n    this.maskingadjust = 0.;\n    this.maskingadjust_short = 0.;\n    /**\n     * only use ATH\n     */\n    this.ATHonly = false;\n    /**\n     * only use ATH for short blocks\n     */\n    this.ATHshort = false;\n    /**\n     * disable ATH\n     */\n    this.noATH = false;\n    /**\n     * select ATH formula\n     */\n    this.ATHtype = 0;\n    /**\n     * change ATH formula 4 shape\n     */\n    this.ATHcurve = 0.;\n    /**\n     * lower ATH by this many db\n     */\n    this.ATHlower = 0.;\n    /**\n     * select ATH auto-adjust scheme\n     */\n    this.athaa_type = 0;\n    /**\n     * select ATH auto-adjust loudness calc\n     */\n    this.athaa_loudapprox = 0;\n    /**\n     * dB, tune active region of auto-level\n     */\n    this.athaa_sensitivity = 0.;\n    this.short_blocks = null;\n    /**\n     * use temporal masking effect\n     */\n    this.useTemporal = false;\n    this.interChRatio = 0.;\n    /**\n     * Naoki's adjustment of Mid/Side maskings\n     */\n    this.msfix = 0.;\n\n    /**\n     * 0 off, 1 on\n     */\n    this.tune = false;\n    /**\n     * used to pass values for debugging and stuff\n     */\n    this.tune_value_a = 0.;\n\n    /************************************************************************/\n    /* internal variables, do not set... */\n    /* provided because they may be of use to calling application */\n    /************************************************************************/\n\n    /**\n     * 0=MPEG-2/2.5 1=MPEG-1\n     */\n    this.version = 0;\n    this.encoder_delay = 0;\n    /**\n     * number of samples of padding appended to input\n     */\n    this.encoder_padding = 0;\n    this.framesize = 0;\n    /**\n     * number of frames encoded\n     */\n    this.frameNum = 0;\n    /**\n     * is this struct owned by calling program or lame?\n     */\n    this.lame_allocated_gfp = 0;\n    /**************************************************************************/\n    /* more internal variables are stored in this structure: */\n    /**************************************************************************/\n    this.internal_flags = null;\n}\n\nmodule.exports = LameGlobalFlags;\n\n\n/***/ }),\n\n/***/ \"94ca\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar isCallable = __webpack_require__(\"1626\");\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ \"9828\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\nvar L3Side = {};\n\n\n\t/**\n\t * max scalefactor band, max(SBMAX_l, SBMAX_s*3, (SBMAX_s-3)*3+8)\n\t */\nL3Side.SFBMAX = (Encoder.SBMAX_s * 3);\n\nmodule.exports = L3Side;\n\n\n/***/ }),\n\n/***/ \"986a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $findLast = __webpack_require__(\"a258\").findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ \"9bf2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(\"aed9\");\nvar anObject = __webpack_require__(\"825a\");\nvar toPropertyKey = __webpack_require__(\"a04b\");\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"9f7f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar global = __webpack_require__(\"da84\");\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n  var re = $RegExp('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n  return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = $RegExp('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\nmodule.exports = {\n  BROKEN_CARET: BROKEN_CARET,\n  MISSED_STICKY: MISSED_STICKY,\n  UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n\n\n/***/ }),\n\n/***/ \"a04b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar isSymbol = __webpack_require__(\"d9b5\");\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ }),\n\n/***/ \"a1b7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Encoder = __webpack_require__(\"4b5e\");\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction III_psy_xmin() {\n    this.l = new_float(Encoder.SBMAX_l);\n    this.s = new_float_n([Encoder.SBMAX_s, 3]);\n\n    var self = this;\n    this.assign = function (iii_psy_xmin) {\n        System.arraycopy(iii_psy_xmin.l, 0, self.l, 0, Encoder.SBMAX_l);\n        for (var i = 0; i < Encoder.SBMAX_s; i++) {\n            for (var j = 0; j < 3; j++) {\n                self.s[i][j] = iii_psy_xmin.s[i][j];\n            }\n        }\n    }\n}\n\nmodule.exports = III_psy_xmin;\n\n\n/***/ }),\n\n/***/ \"a1f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es-x/no-string-prototype-matchall -- safe */\nvar $ = __webpack_require__(\"23e7\");\nvar call = __webpack_require__(\"c65b\");\nvar uncurryThis = __webpack_require__(\"e330\");\nvar createIteratorConstructor = __webpack_require__(\"dcc3\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toString = __webpack_require__(\"577e\");\nvar anObject = __webpack_require__(\"825a\");\nvar isNullOrUndefined = __webpack_require__(\"7234\");\nvar classof = __webpack_require__(\"c6b6\");\nvar isRegExp = __webpack_require__(\"44e7\");\nvar getRegExpFlags = __webpack_require__(\"90d8\");\nvar getMethod = __webpack_require__(\"dc4a\");\nvar defineBuiltIn = __webpack_require__(\"cb2d\");\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar speciesConstructor = __webpack_require__(\"4840\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar nativeMatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n  nativeMatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n  setInternalState(this, {\n    type: REGEXP_STRING_ITERATOR,\n    regexp: regexp,\n    string: string,\n    global: $global,\n    unicode: fullUnicode,\n    done: false\n  });\n}, REGEXP_STRING, function next() {\n  var state = getInternalState(this);\n  if (state.done) return { value: undefined, done: true };\n  var R = state.regexp;\n  var S = state.string;\n  var match = regExpExec(R, S);\n  if (match === null) return { value: undefined, done: state.done = true };\n  if (state.global) {\n    if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n    return { value: match, done: false };\n  }\n  state.done = true;\n  return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n  var R = anObject(this);\n  var S = toString(string);\n  var C = speciesConstructor(R, RegExp);\n  var flags = toString(getRegExpFlags(R));\n  var matcher, $global, fullUnicode;\n  matcher = new C(C === RegExp ? R.source : R, flags);\n  $global = !!~stringIndexOf(flags, 'g');\n  fullUnicode = !!~stringIndexOf(flags, 'u');\n  matcher.lastIndex = toLength(R.lastIndex);\n  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n  matchAll: function matchAll(regexp) {\n    var O = requireObjectCoercible(this);\n    var flags, S, matcher, rx;\n    if (!isNullOrUndefined(regexp)) {\n      if (isRegExp(regexp)) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));\n        if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');\n      }\n      if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n      matcher = getMethod(regexp, MATCH_ALL);\n      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n      if (matcher) return call(matcher, regexp, O);\n    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n    S = toString(O);\n    rx = new RegExp(regexp, 'g');\n    return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n  }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);\n\n\n/***/ }),\n\n/***/ \"a258\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar bind = __webpack_require__(\"0366\");\nvar IndexedObject = __webpack_require__(\"44ad\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar lengthOfArrayLike = __webpack_require__(\"07fa\");\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_FIND_LAST_INDEX = TYPE == 1;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that);\n    var index = lengthOfArrayLike(self);\n    var value, result;\n    while (index-- > 0) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (result) switch (TYPE) {\n        case 0: return value; // findLast\n        case 1: return index; // findLastIndex\n      }\n    }\n    return IS_FIND_LAST_INDEX ? -1 : undefined;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.findLast` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLast: createMethod(0),\n  // `Array.prototype.findLastIndex` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLastIndex: createMethod(1)\n};\n\n\n/***/ }),\n\n/***/ \"a26a\":\n/***/ (function(module, exports) {\n\nfunction VBRQuantize() {\n    var qupvt;\n    var tak;\n\n    this.setModules = function (_qupvt, _tk) {\n        qupvt = _qupvt;\n        tak = _tk;\n    }\n    //TODO\n\n}\n\nmodule.exports = VBRQuantize;\n\n\n/***/ }),\n\n/***/ \"a640\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call -- required for testing\n    method.call(null, argument || function () { return 1; }, 1);\n  });\n};\n\n\n/***/ }),\n\n/***/ \"ab36\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n\n\n/***/ }),\n\n/***/ \"abf5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\n/**\n * ATH related stuff, if something new ATH related has to be added, please plug\n * it here into the ATH.\n */\nfunction ATH() {\n    /**\n     * Method for the auto adjustment.\n     */\n    this.useAdjust = 0;\n    /**\n     * factor for tuning the (sample power) point below which adaptive threshold\n     * of hearing adjustment occurs\n     */\n    this.aaSensitivityP = 0.;\n    /**\n     * Lowering based on peak volume, 1 = no lowering.\n     */\n    this.adjust = 0.;\n    /**\n     * Limit for dynamic ATH adjust.\n     */\n    this.adjustLimit = 0.;\n    /**\n     * Determined to lower x dB each second.\n     */\n    this.decay = 0.;\n    /**\n     * Lowest ATH value.\n     */\n    this.floor = 0.;\n    /**\n     * ATH for sfbs in long blocks.\n     */\n    this.l = new_float(Encoder.SBMAX_l);\n    /**\n     * ATH for sfbs in short blocks.\n     */\n    this.s = new_float(Encoder.SBMAX_s);\n    /**\n     * ATH for partitioned sfb21 in long blocks.\n     */\n    this.psfb21 = new_float(Encoder.PSFB21);\n    /**\n     * ATH for partitioned sfb12 in short blocks.\n     */\n    this.psfb12 = new_float(Encoder.PSFB12);\n    /**\n     * ATH for long block convolution bands.\n     */\n    this.cb_l = new_float(Encoder.CBANDS);\n    /**\n     * ATH for short block convolution bands.\n     */\n    this.cb_s = new_float(Encoder.CBANDS);\n    /**\n     * Equal loudness weights (based on ATH).\n     */\n    this.eql_w = new_float(Encoder.BLKSIZE / 2);\n}\n\nmodule.exports = ATH;\n\n\n/***/ }),\n\n/***/ \"ad6d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(\"825a\");\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.hasIndices) result += 'd';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.unicodeSets) result += 'v';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"ae93\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(\"d039\");\nvar isCallable = __webpack_require__(\"1626\");\nvar isObject = __webpack_require__(\"861d\");\nvar create = __webpack_require__(\"7c73\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar defineBuiltIn = __webpack_require__(\"cb2d\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ \"aeb0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n\n\n/***/ }),\n\n/***/ \"aed9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype != 42;\n});\n\n\n/***/ }),\n\n/***/ \"b42e\":\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ }),\n\n/***/ \"b622\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar shared = __webpack_require__(\"5692\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar uid = __webpack_require__(\"90e3\");\nvar NATIVE_SYMBOL = __webpack_require__(\"04f8\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(\"fdbf\");\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    var description = 'Symbol.' + name;\n    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else if (USE_SYMBOL_AS_UID && symbolFor) {\n      WellKnownSymbolsStore[name] = symbolFor(description);\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ \"b7fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = __webpack_require__(\"1652\");\n\nvar _text = __webpack_require__(\"7656\");\n\nvar TOKENS = _interopRequireWildcard(_text);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tlds = 'aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw'.split('|'); // macro, see gulpfile.js\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar NUMBERS = '0123456789'.split('');\nvar ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\nvar WHITESPACE = [' ', '\\f', '\\r', '\\t', '\\v', '\\xA0', '\\u1680', '\\u180E']; // excluding line breaks\n\nvar domainStates = []; // states that jump to DOMAIN on /[a-z0-9]/\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.CharacterState(tokenClass);\n};\n\n// Frequently used states\nvar S_START = makeState();\nvar S_NUM = makeState(_text.NUM);\nvar S_DOMAIN = makeState(_text.DOMAIN);\nvar S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\nvar S_WS = makeState(_text.WS);\n\n// States for special URL symbols\nS_START.on('@', makeState(_text.AT)).on('.', makeState(_text.DOT)).on('+', makeState(_text.PLUS)).on('#', makeState(_text.POUND)).on('?', makeState(_text.QUERY)).on('/', makeState(_text.SLASH)).on('_', makeState(_text.UNDERSCORE)).on(':', makeState(_text.COLON)).on('{', makeState(_text.OPENBRACE)).on('[', makeState(_text.OPENBRACKET)).on('<', makeState(_text.OPENANGLEBRACKET)).on('(', makeState(_text.OPENPAREN)).on('}', makeState(_text.CLOSEBRACE)).on(']', makeState(_text.CLOSEBRACKET)).on('>', makeState(_text.CLOSEANGLEBRACKET)).on(')', makeState(_text.CLOSEPAREN)).on('&', makeState(_text.AMPERSAND)).on([',', ';', '!', '\"', '\\''], makeState(_text.PUNCTUATION));\n\n// Whitespace jumps\n// Tokens of only non-newline whitespace are arbitrarily long\nS_START.on('\\n', makeState(_text.NL)).on(WHITESPACE, S_WS);\n\n// If any whitespace except newline, more whitespace!\nS_WS.on(WHITESPACE, S_WS);\n\n// Generates states for top-level domains\n// Note that this is most accurate when tlds are in alphabetical order\nfor (var i = 0; i < tlds.length; i++) {\n\tvar newStates = (0, _state.stateify)(tlds[i], S_START, _text.TLD, _text.DOMAIN);\n\tdomainStates.push.apply(domainStates, newStates);\n}\n\n// Collect the states generated by different protocls\nvar partialProtocolFileStates = (0, _state.stateify)('file', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolFtpStates = (0, _state.stateify)('ftp', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolHttpStates = (0, _state.stateify)('http', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolMailtoStates = (0, _state.stateify)('mailto', S_START, _text.DOMAIN, _text.DOMAIN);\n\n// Add the states to the array of DOMAINeric states\ndomainStates.push.apply(domainStates, partialProtocolFileStates);\ndomainStates.push.apply(domainStates, partialProtocolFtpStates);\ndomainStates.push.apply(domainStates, partialProtocolHttpStates);\ndomainStates.push.apply(domainStates, partialProtocolMailtoStates);\n\n// Protocol states\nvar S_PROTOCOL_FILE = partialProtocolFileStates.pop();\nvar S_PROTOCOL_FTP = partialProtocolFtpStates.pop();\nvar S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();\nvar S_MAILTO = partialProtocolMailtoStates.pop();\nvar S_PROTOCOL_SECURE = makeState(_text.DOMAIN);\nvar S_FULL_PROTOCOL = makeState(_text.PROTOCOL); // Full protocol ends with COLON\nvar S_FULL_MAILTO = makeState(_text.MAILTO); // Mailto ends with COLON\n\n// Secure protocols (end with 's')\nS_PROTOCOL_FTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\nS_PROTOCOL_HTTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\ndomainStates.push(S_PROTOCOL_SECURE);\n\n// Become protocol tokens after a COLON\nS_PROTOCOL_FILE.on(':', S_FULL_PROTOCOL);\nS_PROTOCOL_SECURE.on(':', S_FULL_PROTOCOL);\nS_MAILTO.on(':', S_FULL_MAILTO);\n\n// Localhost\nvar partialLocalhostStates = (0, _state.stateify)('localhost', S_START, _text.LOCALHOST, _text.DOMAIN);\ndomainStates.push.apply(domainStates, partialLocalhostStates);\n\n// Everything else\n// DOMAINs make more DOMAINs\n// Number and character transitions\nS_START.on(NUMBERS, S_NUM);\nS_NUM.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN\n\nS_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n\n// All the generated states should have a jump to DOMAIN\nfor (var _i = 0; _i < domainStates.length; _i++) {\n\tdomainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n}\n\nS_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN).on(ALPHANUM, S_DOMAIN);\n\n// Set default transition\nS_START.defaultTransition = makeState(_text.SYM);\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {String} str Input string to scan\n\t@return {Array} Array of TOKEN instances\n*/\nvar run = function run(str) {\n\n\t// The state machine only looks at lowercase strings.\n\t// This selective `toLowerCase` is used because lowercasing the entire\n\t// string causes the length and character position to vary in some in some\n\t// non-English strings. This happens only on V8-based runtimes.\n\tvar lowerStr = str.replace(/[A-Z]/g, function (c) {\n\t\treturn c.toLowerCase();\n\t});\n\tvar len = str.length;\n\tvar tokens = []; // return value\n\n\tvar cursor = 0;\n\n\t// Tokenize the string\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar nextState = null;\n\t\tvar tokenLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && (nextState = state.next(lowerStr[cursor]))) {\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\ttokenLength++;\n\t\t\tcursor++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\t\t\tcontinue;\n\t\t} // Should never happen\n\n\t\t// Roll back to the latest accepting state\n\t\tcursor -= sinceAccepts;\n\t\ttokenLength -= sinceAccepts;\n\n\t\t// Get the class for the new token\n\t\tvar TOKEN = latestAccepting.emit(); // Current token class\n\n\t\t// No more jumps, just make a new token\n\t\ttokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));\n\t}\n\n\treturn tokens;\n};\n\nvar start = S_START;\nexports.State = _state.CharacterState;\nexports.TOKENS = TOKENS;\nexports.run = run;\nexports.start = start;\n\n/***/ }),\n\n/***/ \"b980\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = !fails(function () {\n  var error = Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n\n\n/***/ }),\n\n/***/ \"bb22\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *      quantize_pvt source file\n *\n *      Copyright (c) 1999-2002 Takehiro Tominaga\n *      Copyright (c) 2000-2002 Robert Hegemann\n *      Copyright (c) 2001 Naoki Shibata\n *      Copyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: QuantizePVT.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */\nvar ScaleFac = __webpack_require__(\"ff81\");\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\nvar MeanBits = __webpack_require__(\"f052\");\nvar LameInternalFlags = __webpack_require__(\"bd8b\");\n\nQuantizePVT.Q_MAX = (256 + 1);\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 100000;\nQuantizePVT.IXMAX_VAL = 8206;\n\nfunction QuantizePVT() {\n\n    var tak = null;\n    var rv = null;\n    var psy = null;\n\n    this.setModules = function (_tk, _rv, _psy) {\n        tak = _tk;\n        rv = _rv;\n        psy = _psy;\n    };\n\n    function POW20(x) {\n        assert(0 <= (x + QuantizePVT.Q_MAX2) && x < QuantizePVT.Q_MAX);\n        return pow20[x + QuantizePVT.Q_MAX2];\n    }\n\n    this.IPOW20 = function (x) {\n        assert(0 <= x && x < QuantizePVT.Q_MAX);\n        return ipow20[x];\n    }\n\n    /**\n     * smallest such that 1.0+DBL_EPSILON != 1.0\n     */\n    var DBL_EPSILON = 2.2204460492503131e-016;\n\n    /**\n     * ix always <= 8191+15. see count_bits()\n     */\n    var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n\n    var PRECALC_SIZE = (IXMAX_VAL + 2);\n\n    var Q_MAX = QuantizePVT.Q_MAX;\n\n\n    /**\n     * <CODE>\n     * minimum possible number of\n     * -cod_info.global_gain + ((scalefac[] + (cod_info.preflag ? pretab[sfb] : 0))\n     * << (cod_info.scalefac_scale + 1)) + cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n     *\n     * for long block, 0+((15+3)<<2) = 18*4 = 72\n     * for short block, 0+(15<<2)+7*8 = 15*4+56 = 116\n     * </CODE>\n     */\n    var Q_MAX2 = QuantizePVT.Q_MAX2;\n\n    var LARGE_BITS = QuantizePVT.LARGE_BITS;\n\n\n    /**\n     * Assuming dynamic range=96dB, this value should be 92\n     */\n    var NSATHSCALE = 100;\n\n    /**\n     * The following table is used to implement the scalefactor partitioning for\n     * MPEG2 as described in section 2.4.3.2 of the IS. The indexing corresponds\n     * to the way the tables are presented in the IS:\n     *\n     * [table_number][row_in_table][column of nr_of_sfb]\n     */\n    this.nr_of_sfb_block = [\n        [[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]],\n        [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]],\n        [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]],\n        [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]],\n        [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]],\n        [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]];\n\n    /**\n     * Table B.6: layer3 preemphasis\n     */\n    var pretab = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,\n        2, 2, 3, 3, 3, 2, 0];\n    this.pretab = pretab;\n\n    /**\n     * Here are MPEG1 Table B.8 and MPEG2 Table B.1 -- Layer III scalefactor\n     * bands. <BR>\n     * Index into this using a method such as:<BR>\n     * idx = fr_ps.header.sampling_frequency + (fr_ps.header.version * 3)\n     */\n    this.sfBandIndex = [\n        // Table B.2.b: 22.05 kHz\n        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n                522, 576],\n            [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192]\n            , [0, 0, 0, 0, 0, 0, 0] //  sfb21 pseudo sub bands\n            , [0, 0, 0, 0, 0, 0, 0] //  sfb12 pseudo sub bands\n        ),\n        /* Table B.2.c: 24 kHz */ /* docs: 332. mpg123(broken): 330 */\n        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464,\n                540, 576],\n            [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* Table B.2.a: 16 kHz */\n        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n                522, 576],\n            [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* Table B.8.b: 44.1 kHz */\n        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418,\n                576],\n            [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* Table B.8.c: 48 kHz */\n        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384,\n                576],\n            [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* Table B.8.a: 32 kHz */\n        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550,\n                576],\n            [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* MPEG-2.5 11.025 kHz */\n        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n                522, 576],\n            [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n                402 / 3, 522 / 3, 576 / 3]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* MPEG-2.5 12 kHz */\n        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n                522, 576],\n            [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n                402 / 3, 522 / 3, 576 / 3]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        ),\n        /* MPEG-2.5 8 kHz */\n        new ScaleFac([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570,\n                572, 574, 576],\n            [0 / 3, 24 / 3, 48 / 3, 72 / 3, 108 / 3, 156 / 3, 216 / 3, 288 / 3, 372 / 3, 480 / 3, 486 / 3,\n                492 / 3, 498 / 3, 576 / 3]\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */\n            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */\n        )\n    ];\n\n    var pow20 = new_float(Q_MAX + Q_MAX2 + 1);\n    var ipow20 = new_float(Q_MAX);\n    var pow43 = new_float(PRECALC_SIZE);\n\n    var adj43 = new_float(PRECALC_SIZE);\n    this.adj43 = adj43;\n\n    /**\n     * <PRE>\n     * compute the ATH for each scalefactor band cd range: 0..96db\n     *\n     * Input: 3.3kHz signal 32767 amplitude (3.3kHz is where ATH is smallest =\n     * -5db) longblocks: sfb=12 en0/bw=-11db max_en0 = 1.3db shortblocks: sfb=5\n     * -9db 0db\n     *\n     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) longblocks: amp=1\n     * sfb=12 en0/bw=-103 db max_en0 = -92db amp=32767 sfb=12 -12 db -1.4db\n     *\n     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) shortblocks: amp=1\n     * sfb=5 en0/bw= -99 -86 amp=32767 sfb=5 -9 db 4db\n     *\n     *\n     * MAX energy of largest wave at 3.3kHz = 1db AVE energy of largest wave at\n     * 3.3kHz = -11db Let's take AVE: -11db = maximum signal in sfb=12. Dynamic\n     * range of CD: 96db. Therefor energy of smallest audible wave in sfb=12 =\n     * -11 - 96 = -107db = ATH at 3.3kHz.\n     *\n     * ATH formula for this wave: -5db. To adjust to LAME scaling, we need ATH =\n     * ATH_formula - 103 (db) ATH = ATH * 2.5e-10 (ener)\n     * </PRE>\n     */\n    function ATHmdct(gfp, f) {\n        var ath = psy.ATHformula(f, gfp);\n\n        ath -= NSATHSCALE;\n\n        /* modify the MDCT scaling for the ATH and convert to energy */\n        ath = Math.pow(10.0, ath / 10.0 + gfp.ATHlower);\n        return ath;\n    }\n\n    function compute_ath(gfp) {\n        var ATH_l = gfp.internal_flags.ATH.l;\n        var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n        var ATH_s = gfp.internal_flags.ATH.s;\n        var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n        var gfc = gfp.internal_flags;\n        var samp_freq = gfp.out_samplerate;\n\n        for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n            var start = gfc.scalefac_band.l[sfb];\n            var end = gfc.scalefac_band.l[sfb + 1];\n            ATH_l[sfb] = Float.MAX_VALUE;\n            for (var i = start; i < end; i++) {\n                var freq = i * samp_freq / (2 * 576);\n                var ATH_f = ATHmdct(gfp, freq);\n                /* freq in kHz */\n                ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n            }\n        }\n\n        for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n            var start = gfc.scalefac_band.psfb21[sfb];\n            var end = gfc.scalefac_band.psfb21[sfb + 1];\n            ATH_psfb21[sfb] = Float.MAX_VALUE;\n            for (var i = start; i < end; i++) {\n                var freq = i * samp_freq / (2 * 576);\n                var ATH_f = ATHmdct(gfp, freq);\n                /* freq in kHz */\n                ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n            }\n        }\n\n        for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n            var start = gfc.scalefac_band.s[sfb];\n            var end = gfc.scalefac_band.s[sfb + 1];\n            ATH_s[sfb] = Float.MAX_VALUE;\n            for (var i = start; i < end; i++) {\n                var freq = i * samp_freq / (2 * 192);\n                var ATH_f = ATHmdct(gfp, freq);\n                /* freq in kHz */\n                ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n            }\n            ATH_s[sfb] *= (gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb]);\n        }\n\n        for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n            var start = gfc.scalefac_band.psfb12[sfb];\n            var end = gfc.scalefac_band.psfb12[sfb + 1];\n            ATH_psfb12[sfb] = Float.MAX_VALUE;\n            for (var i = start; i < end; i++) {\n                var freq = i * samp_freq / (2 * 192);\n                var ATH_f = ATHmdct(gfp, freq);\n                /* freq in kHz */\n                ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n            }\n            /* not sure about the following */\n            ATH_psfb12[sfb] *= (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]);\n        }\n\n        /*\n         * no-ATH mode: reduce ATH to -200 dB\n         */\n        if (gfp.noATH) {\n            for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n                ATH_l[sfb] = 1E-20;\n            }\n            for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n                ATH_psfb21[sfb] = 1E-20;\n            }\n            for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n                ATH_s[sfb] = 1E-20;\n            }\n            for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n                ATH_psfb12[sfb] = 1E-20;\n            }\n        }\n\n        /*\n         * work in progress, don't rely on it too much\n         */\n        gfc.ATH.floor = 10. * Math.log10(ATHmdct(gfp, -1.));\n    }\n\n    /**\n     * initialization for iteration_loop\n     */\n    this.iteration_init = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var l3_side = gfc.l3_side;\n        var i;\n\n        if (gfc.iteration_init_init == 0) {\n            gfc.iteration_init_init = 1;\n\n            l3_side.main_data_begin = 0;\n            compute_ath(gfp);\n\n            pow43[0] = 0.0;\n            for (i = 1; i < PRECALC_SIZE; i++)\n                pow43[i] = Math.pow(i, 4.0 / 3.0);\n\n            for (i = 0; i < PRECALC_SIZE - 1; i++)\n                adj43[i] = ((i + 1) - Math.pow(\n                    0.5 * (pow43[i] + pow43[i + 1]), 0.75));\n            adj43[i] = 0.5;\n\n            for (i = 0; i < Q_MAX; i++)\n                ipow20[i] = Math.pow(2.0, (i - 210) * -0.1875);\n            for (i = 0; i <= Q_MAX + Q_MAX2; i++)\n                pow20[i] = Math.pow(2.0, (i - 210 - Q_MAX2) * 0.25);\n\n            tak.huffman_init(gfc);\n\n            {\n                var bass, alto, treble, sfb21;\n\n                i = (gfp.exp_nspsytune >> 2) & 63;\n                if (i >= 32)\n                    i -= 64;\n                bass = Math.pow(10, i / 4.0 / 10.0);\n\n                i = (gfp.exp_nspsytune >> 8) & 63;\n                if (i >= 32)\n                    i -= 64;\n                alto = Math.pow(10, i / 4.0 / 10.0);\n\n                i = (gfp.exp_nspsytune >> 14) & 63;\n                if (i >= 32)\n                    i -= 64;\n                treble = Math.pow(10, i / 4.0 / 10.0);\n\n                /*\n                 * to be compatible with Naoki's original code, the next 6 bits\n                 * define only the amount of changing treble for sfb21\n                 */\n                i = (gfp.exp_nspsytune >> 20) & 63;\n                if (i >= 32)\n                    i -= 64;\n                sfb21 = treble * Math.pow(10, i / 4.0 / 10.0);\n                for (i = 0; i < Encoder.SBMAX_l; i++) {\n                    var f;\n                    if (i <= 6)\n                        f = bass;\n                    else if (i <= 13)\n                        f = alto;\n                    else if (i <= 20)\n                        f = treble;\n                    else\n                        f = sfb21;\n\n                    gfc.nsPsy.longfact[i] = f;\n                }\n                for (i = 0; i < Encoder.SBMAX_s; i++) {\n                    var f;\n                    if (i <= 5)\n                        f = bass;\n                    else if (i <= 10)\n                        f = alto;\n                    else if (i <= 11)\n                        f = treble;\n                    else\n                        f = sfb21;\n\n                    gfc.nsPsy.shortfact[i] = f;\n                }\n            }\n        }\n    }\n\n    /**\n     * allocate bits among 2 channels based on PE<BR>\n     * mt 6/99<BR>\n     * bugfixes rh 8/01: often allocated more than the allowed 4095 bits\n     */\n    this.on_pe = function (gfp, pe,\n                           targ_bits, mean_bits, gr, cbr) {\n        var gfc = gfp.internal_flags;\n        var tbits = 0, bits;\n        var add_bits = new_int(2);\n        var ch;\n\n        /* allocate targ_bits for granule */\n        var mb = new MeanBits(tbits);\n        var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n        tbits = mb.bits;\n        /* maximum allowed bits for this granule */\n        var max_bits = tbits + extra_bits;\n        if (max_bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n            // hard limit per granule\n            max_bits = LameInternalFlags.MAX_BITS_PER_GRANULE;\n        }\n        for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n            /******************************************************************\n             * allocate bits for each channel\n             ******************************************************************/\n            targ_bits[ch] = Math.min(LameInternalFlags.MAX_BITS_PER_CHANNEL,\n                tbits / gfc.channels_out);\n\n            add_bits[ch] = 0 | (targ_bits[ch] * pe[gr][ch] / 700.0 - targ_bits[ch]);\n\n            /* at most increase bits by 1.5*average */\n            if (add_bits[ch] > mean_bits * 3 / 4)\n                add_bits[ch] = mean_bits * 3 / 4;\n            if (add_bits[ch] < 0)\n                add_bits[ch] = 0;\n\n            if (add_bits[ch] + targ_bits[ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n                add_bits[ch] = Math.max(0,\n                    LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[ch]);\n\n            bits += add_bits[ch];\n        }\n        if (bits > extra_bits) {\n            for (ch = 0; ch < gfc.channels_out; ++ch) {\n                add_bits[ch] = extra_bits * add_bits[ch] / bits;\n            }\n        }\n\n        for (ch = 0; ch < gfc.channels_out; ++ch) {\n            targ_bits[ch] += add_bits[ch];\n            extra_bits -= add_bits[ch];\n        }\n\n        for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n            bits += targ_bits[ch];\n        }\n        if (bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n            var sum = 0;\n            for (ch = 0; ch < gfc.channels_out; ++ch) {\n                targ_bits[ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n                targ_bits[ch] /= bits;\n                sum += targ_bits[ch];\n            }\n            assert(sum <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n        }\n\n        return max_bits;\n    }\n\n    this.reduce_side = function (targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n        assert(max_bits <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n        assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n\n        /*\n         * ms_ener_ratio = 0: allocate 66/33 mid/side fac=.33 ms_ener_ratio =.5:\n         * allocate 50/50 mid/side fac= 0\n         */\n        /* 75/25 split is fac=.5 */\n        var fac = .33 * (.5 - ms_ener_ratio) / .5;\n        if (fac < 0)\n            fac = 0;\n        if (fac > .5)\n            fac = .5;\n\n        /* number of bits to move from side channel to mid channel */\n        /* move_bits = fac*targ_bits[1]; */\n        var move_bits = 0 | (fac * .5 * (targ_bits[0] + targ_bits[1]));\n\n        if (move_bits > LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n            move_bits = LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0];\n        }\n        if (move_bits < 0)\n            move_bits = 0;\n\n        if (targ_bits[1] >= 125) {\n            /* dont reduce side channel below 125 bits */\n            if (targ_bits[1] - move_bits > 125) {\n\n                /* if mid channel already has 2x more than average, dont bother */\n                /* mean_bits = bits per granule (for both channels) */\n                if (targ_bits[0] < mean_bits)\n                    targ_bits[0] += move_bits;\n                targ_bits[1] -= move_bits;\n            } else {\n                targ_bits[0] += targ_bits[1] - 125;\n                targ_bits[1] = 125;\n            }\n        }\n\n        move_bits = targ_bits[0] + targ_bits[1];\n        if (move_bits > max_bits) {\n            targ_bits[0] = (max_bits * targ_bits[0]) / move_bits;\n            targ_bits[1] = (max_bits * targ_bits[1]) / move_bits;\n        }\n        assert(targ_bits[0] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n        assert(targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n        assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n    };\n\n    /**\n     *  Robert Hegemann 2001-04-27:\n     *  this adjusts the ATH, keeping the original noise floor\n     *  affects the higher frequencies more than the lower ones\n     */\n    this.athAdjust = function (a, x, athFloor) {\n        /*\n         * work in progress\n         */\n        var o = 90.30873362;\n        var p = 94.82444863;\n        var u = Util.FAST_LOG10_X(x, 10.0);\n        var v = a * a;\n        var w = 0.0;\n        u -= athFloor;\n        /* undo scaling */\n        if (v > 1E-20)\n            w = 1. + Util.FAST_LOG10_X(v, 10.0 / o);\n        if (w < 0)\n            w = 0.;\n        u *= w;\n        u += athFloor + o - p;\n        /* redo scaling */\n\n        return Math.pow(10., 0.1 * u);\n    };\n\n    /**\n     * Calculate the allowed distortion for each scalefactor band, as determined\n     * by the psychoacoustic model. xmin(sb) = ratio(sb) * en(sb) / bw(sb)\n     *\n     * returns number of sfb's with energy > ATH\n     */\n    this.calc_xmin = function (gfp, ratio, cod_info, pxmin) {\n        var pxminPos = 0;\n        var gfc = gfp.internal_flags;\n        var gsfb, j = 0, ath_over = 0;\n        var ATH = gfc.ATH;\n        var xr = cod_info.xr;\n        var enable_athaa_fix = (gfp.VBR == VbrMode.vbr_mtrh) ? 1 : 0;\n        var masking_lower = gfc.masking_lower;\n\n        if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n            /* was already done in PSY-Model */\n            masking_lower = 1.0;\n        }\n\n        for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n            var en0, xmin;\n            var rh1, rh2;\n            var width, l;\n\n            if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n                xmin = athAdjust(ATH.adjust, ATH.l[gsfb], ATH.floor);\n            else\n                xmin = ATH.adjust * ATH.l[gsfb];\n\n            width = cod_info.width[gsfb];\n            rh1 = xmin / width;\n            rh2 = DBL_EPSILON;\n            l = width >> 1;\n            en0 = 0.0;\n            do {\n                var xa, xb;\n                xa = xr[j] * xr[j];\n                en0 += xa;\n                rh2 += (xa < rh1) ? xa : rh1;\n                j++;\n                xb = xr[j] * xr[j];\n                en0 += xb;\n                rh2 += (xb < rh1) ? xb : rh1;\n                j++;\n            } while (--l > 0);\n            if (en0 > xmin)\n                ath_over++;\n\n            if (gsfb == Encoder.SBPSY_l) {\n                var x = xmin * gfc.nsPsy.longfact[gsfb];\n                if (rh2 < x) {\n                    rh2 = x;\n                }\n            }\n            if (enable_athaa_fix != 0) {\n                xmin = rh2;\n            }\n            if (!gfp.ATHonly) {\n                var e = ratio.en.l[gsfb];\n                if (e > 0.0) {\n                    var x;\n                    x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n                    if (enable_athaa_fix != 0)\n                        x *= gfc.nsPsy.longfact[gsfb];\n                    if (xmin < x)\n                        xmin = x;\n                }\n            }\n            if (enable_athaa_fix != 0)\n                pxmin[pxminPos++] = xmin;\n            else\n                pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n        }\n        /* end of long block loop */\n\n        /* use this function to determine the highest non-zero coeff */\n        var max_nonzero = 575;\n        if (cod_info.block_type != Encoder.SHORT_TYPE) {\n            // NORM, START or STOP type, but not SHORT\n            var k = 576;\n            while (k-- != 0 && BitStream.EQ(xr[k], 0)) {\n                max_nonzero = k;\n            }\n        }\n        cod_info.max_nonzero_coeff = max_nonzero;\n\n        for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n            var width, b;\n            var tmpATH;\n            if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n                tmpATH = athAdjust(ATH.adjust, ATH.s[sfb], ATH.floor);\n            else\n                tmpATH = ATH.adjust * ATH.s[sfb];\n\n            width = cod_info.width[gsfb];\n            for (b = 0; b < 3; b++) {\n                var en0 = 0.0, xmin;\n                var rh1, rh2;\n                var l = width >> 1;\n\n                rh1 = tmpATH / width;\n                rh2 = DBL_EPSILON;\n                do {\n                    var xa, xb;\n                    xa = xr[j] * xr[j];\n                    en0 += xa;\n                    rh2 += (xa < rh1) ? xa : rh1;\n                    j++;\n                    xb = xr[j] * xr[j];\n                    en0 += xb;\n                    rh2 += (xb < rh1) ? xb : rh1;\n                    j++;\n                } while (--l > 0);\n                if (en0 > tmpATH)\n                    ath_over++;\n                if (sfb == Encoder.SBPSY_s) {\n                    var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n                    if (rh2 < x) {\n                        rh2 = x;\n                    }\n                }\n                if (enable_athaa_fix != 0)\n                    xmin = rh2;\n                else\n                    xmin = tmpATH;\n\n                if (!gfp.ATHonly && !gfp.ATHshort) {\n                    var e = ratio.en.s[sfb][b];\n                    if (e > 0.0) {\n                        var x;\n                        x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n                        if (enable_athaa_fix != 0)\n                            x *= gfc.nsPsy.shortfact[sfb];\n                        if (xmin < x)\n                            xmin = x;\n                    }\n                }\n                if (enable_athaa_fix != 0)\n                    pxmin[pxminPos++] = xmin;\n                else\n                    pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n            }\n            /* b */\n            if (gfp.useTemporal) {\n                if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1])\n                    pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1])\n                        * gfc.decay;\n                if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2])\n                    pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2])\n                        * gfc.decay;\n            }\n        }\n        /* end of short block sfb loop */\n\n        return ath_over;\n    };\n\n    function StartLine(j) {\n        this.s = j;\n    }\n\n    this.calc_noise_core = function (cod_info, startline, l, step) {\n        var noise = 0;\n        var j = startline.s;\n        var ix = cod_info.l3_enc;\n\n        if (j > cod_info.count1) {\n            while ((l--) != 0) {\n                var temp;\n                temp = cod_info.xr[j];\n                j++;\n                noise += temp * temp;\n                temp = cod_info.xr[j];\n                j++;\n                noise += temp * temp;\n            }\n        } else if (j > cod_info.big_values) {\n            var ix01 = new_float(2);\n            ix01[0] = 0;\n            ix01[1] = step;\n            while ((l--) != 0) {\n                var temp;\n                temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n                j++;\n                noise += temp * temp;\n                temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n                j++;\n                noise += temp * temp;\n            }\n        } else {\n            while ((l--) != 0) {\n                var temp;\n                temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n                j++;\n                noise += temp * temp;\n                temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n                j++;\n                noise += temp * temp;\n            }\n        }\n\n        startline.s = j;\n        return noise;\n    }\n\n    /**\n     * <PRE>\n     * -oo dB  =>  -1.00\n     * - 6 dB  =>  -0.97\n     * - 3 dB  =>  -0.80\n     * - 2 dB  =>  -0.64\n     * - 1 dB  =>  -0.38\n     *   0 dB  =>   0.00\n     * + 1 dB  =>  +0.49\n     * + 2 dB  =>  +1.06\n     * + 3 dB  =>  +1.68\n     * + 6 dB  =>  +3.69\n     * +10 dB  =>  +6.45\n     * </PRE>\n     */\n    this.calc_noise = function (cod_info, l3_xmin, distort, res, prev_noise) {\n        var distortPos = 0;\n        var l3_xminPos = 0;\n        var sfb, l, over = 0;\n        var over_noise_db = 0;\n        /* 0 dB relative to masking */\n        var tot_noise_db = 0;\n        /* -200 dB relative to masking */\n        var max_noise = -20.0;\n        var j = 0;\n        var scalefac = cod_info.scalefac;\n        var scalefacPos = 0;\n\n        res.over_SSD = 0;\n\n        for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n            var s = cod_info.global_gain\n                - (((scalefac[scalefacPos++]) + (cod_info.preflag != 0 ? pretab[sfb]\n                    : 0)) << (cod_info.scalefac_scale + 1))\n                - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n            var noise = 0.0;\n\n            if (prev_noise != null && (prev_noise.step[sfb] == s)) {\n\n                /* use previously computed values */\n                noise = prev_noise.noise[sfb];\n                j += cod_info.width[sfb];\n                distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n                noise = prev_noise.noise_log[sfb];\n\n            } else {\n                var step = POW20(s);\n                l = cod_info.width[sfb] >> 1;\n\n                if ((j + cod_info.width[sfb]) > cod_info.max_nonzero_coeff) {\n                    var usefullsize;\n                    usefullsize = cod_info.max_nonzero_coeff - j + 1;\n\n                    if (usefullsize > 0)\n                        l = usefullsize >> 1;\n                    else\n                        l = 0;\n                }\n\n                var sl = new StartLine(j);\n                noise = this.calc_noise_core(cod_info, sl, l, step);\n                j = sl.s;\n\n                if (prev_noise != null) {\n                    /* save noise values */\n                    prev_noise.step[sfb] = s;\n                    prev_noise.noise[sfb] = noise;\n                }\n\n                noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n                /* multiplying here is adding in dB, but can overflow */\n                noise = Util.FAST_LOG10(Math.max(noise, 1E-20));\n\n                if (prev_noise != null) {\n                    /* save noise values */\n                    prev_noise.noise_log[sfb] = noise;\n                }\n            }\n\n            if (prev_noise != null) {\n                /* save noise values */\n                prev_noise.global_gain = cod_info.global_gain;\n            }\n\n            tot_noise_db += noise;\n\n            if (noise > 0.0) {\n                var tmp;\n\n                tmp = Math.max(0 | (noise * 10 + .5), 1);\n                res.over_SSD += tmp * tmp;\n\n                over++;\n                /* multiplying here is adding in dB -but can overflow */\n                /* over_noise *= noise; */\n                over_noise_db += noise;\n            }\n            max_noise = Math.max(max_noise, noise);\n\n        }\n\n        res.over_count = over;\n        res.tot_noise = tot_noise_db;\n        res.over_noise = over_noise_db;\n        res.max_noise = max_noise;\n\n        return over;\n    }\n\n    /**\n     * updates plotting data\n     *\n     * Mark Taylor 2000-??-??\n     *\n     * Robert Hegemann: moved noise/distortion calc into it\n     */\n    this.set_pinfo = function (gfp, cod_info, ratio, gr, ch) {\n        var gfc = gfp.internal_flags;\n        var sfb, sfb2;\n        var l;\n        var en0, en1;\n        var ifqstep = (cod_info.scalefac_scale == 0) ? .5 : 1.0;\n        var scalefac = cod_info.scalefac;\n\n        var l3_xmin = new_float(L3Side.SFBMAX);\n        var xfsf = new_float(L3Side.SFBMAX);\n        var noise = new CalcNoiseResult();\n\n        calc_xmin(gfp, ratio, cod_info, l3_xmin);\n        calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n\n        var j = 0;\n        sfb2 = cod_info.sfb_lmax;\n        if (cod_info.block_type != Encoder.SHORT_TYPE\n            && 0 == cod_info.mixed_block_flag)\n            sfb2 = 22;\n        for (sfb = 0; sfb < sfb2; sfb++) {\n            var start = gfc.scalefac_band.l[sfb];\n            var end = gfc.scalefac_band.l[sfb + 1];\n            var bw = end - start;\n            for (en0 = 0.0; j < end; j++)\n                en0 += cod_info.xr[j] * cod_info.xr[j];\n            en0 /= bw;\n            /* convert to MDCT units */\n            /* scaling so it shows up on FFT plot */\n            en1 = 1e15;\n            gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n            gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n\n            if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n                en0 = en0 / ratio.en.l[sfb];\n            else\n                en0 = 0.0;\n\n            gfc.pinfo.thr[gr][ch][sfb] = en1\n                * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n\n            /* there is no scalefactor bands >= SBPSY_l */\n            gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n            if (cod_info.preflag != 0 && sfb >= 11)\n                gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n\n            if (sfb < Encoder.SBPSY_l) {\n                /* scfsi should be decoded by caller side */\n                assert(scalefac[sfb] >= 0);\n                gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n            }\n        }\n        /* for sfb */\n\n        if (cod_info.block_type == Encoder.SHORT_TYPE) {\n            sfb2 = sfb;\n            for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n                var start = gfc.scalefac_band.s[sfb];\n                var end = gfc.scalefac_band.s[sfb + 1];\n                var bw = end - start;\n                for (var i = 0; i < 3; i++) {\n                    for (en0 = 0.0, l = start; l < end; l++) {\n                        en0 += cod_info.xr[j] * cod_info.xr[j];\n                        j++;\n                    }\n                    en0 = Math.max(en0 / bw, 1e-20);\n                    /* convert to MDCT units */\n                    /* scaling so it shows up on FFT plot */\n                    en1 = 1e15;\n\n                    gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n                    gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2]\n                        * xfsf[sfb2] / bw;\n                    if (ratio.en.s[sfb][i] > 0)\n                        en0 = en0 / ratio.en.s[sfb][i];\n                    else\n                        en0 = 0.0;\n                    if (gfp.ATHonly || gfp.ATHshort)\n                        en0 = 0;\n\n                    gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1\n                        * Math.max(en0 * ratio.thm.s[sfb][i],\n                            gfc.ATH.s[sfb]);\n\n                    /* there is no scalefactor bands >= SBPSY_s */\n                    gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2.0\n                        * cod_info.subblock_gain[i];\n                    if (sfb < Encoder.SBPSY_s) {\n                        gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep\n                            * scalefac[sfb2];\n                    }\n                    sfb2++;\n                }\n            }\n        }\n        /* block type short */\n        gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n        gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length\n            + cod_info.part2_length;\n        gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n\n        gfc.pinfo.over[gr][ch] = noise.over_count;\n        gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10.0;\n        gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10.0;\n        gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10.0;\n        gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n    }\n\n    /**\n     * updates plotting data for a whole frame\n     *\n     * Robert Hegemann 2000-10-21\n     */\n    function set_frame_pinfo(gfp, ratio) {\n        var gfc = gfp.internal_flags;\n\n        gfc.masking_lower = 1.0;\n\n        /*\n         * for every granule and channel patch l3_enc and set info\n         */\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            for (var ch = 0; ch < gfc.channels_out; ch++) {\n                var cod_info = gfc.l3_side.tt[gr][ch];\n                var scalefac_sav = new_int(L3Side.SFBMAX);\n                System.arraycopy(cod_info.scalefac, 0, scalefac_sav, 0,\n                    scalefac_sav.length);\n\n                /*\n                 * reconstruct the scalefactors in case SCFSI was used\n                 */\n                if (gr == 1) {\n                    var sfb;\n                    for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n                        if (cod_info.scalefac[sfb] < 0) /* scfsi */\n                            cod_info.scalefac[sfb] = gfc.l3_side.tt[0][ch].scalefac[sfb];\n                    }\n                }\n\n                set_pinfo(gfp, cod_info, ratio[gr][ch], gr, ch);\n                System.arraycopy(scalefac_sav, 0, cod_info.scalefac, 0,\n                    scalefac_sav.length);\n            }\n            /* for ch */\n        }\n        /* for gr */\n    }\n\n}\n\nmodule.exports = QuantizePVT;\n\n\n/***/ }),\n\n/***/ \"bd43\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageFile\", function() { return isImageFile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVideoFile\", function() { return isVideoFile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageVideoFile\", function() { return isImageVideoFile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAudioFile\", function() { return isAudioFile; });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"c9d9\");\n\n\nfunction checkMediaType(types, file) {\n  if (!file || !file.type) return;\n  return types.some(function (t) {\n    return file.type.toLowerCase().includes(t);\n  });\n}\n\nfunction isImageFile(file) {\n  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_0__[/* IMAGE_TYPES */ \"b\"], file);\n}\nfunction isVideoFile(file) {\n  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_0__[/* VIDEO_TYPES */ \"c\"], file);\n}\nfunction isImageVideoFile(file) {\n  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_0__[/* IMAGE_TYPES */ \"b\"], file) || checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_0__[/* VIDEO_TYPES */ \"c\"], file);\n}\nfunction isAudioFile(file) {\n  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_0__[/* AUDIO_TYPES */ \"a\"], file);\n}\n\n/***/ }),\n\n/***/ \"bd8b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar IIISideInfo = __webpack_require__(\"2695\");\nvar ScaleFac = __webpack_require__(\"ff81\");\nvar NsPsy = __webpack_require__(\"c0be\");\nvar VBRSeekInfo = __webpack_require__(\"2466\");\nvar III_psy_xmin = __webpack_require__(\"a1b7\");\nvar Encoder = __webpack_require__(\"4b5e\");\nvar L3Side = __webpack_require__(\"9828\");\n\n\nLameInternalFlags.MFSIZE = (3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY);\nLameInternalFlags.MAX_HEADER_BUF = 256;\nLameInternalFlags.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags.BPC = 320;\n\nfunction LameInternalFlags() {\n    var MAX_HEADER_LEN = 40;\n\n\n    /********************************************************************\n     * internal variables NOT set by calling program, and should not be *\n     * modified by the calling program *\n     ********************************************************************/\n\n    /**\n     * Some remarks to the Class_ID field: The Class ID is an Identifier for a\n     * pointer to this struct. It is very unlikely that a pointer to\n     * lame_global_flags has the same 32 bits in it's structure (large and other\n     * special properties, for instance prime).\n     *\n     * To test that the structure is right and initialized, use: if ( gfc .\n     * Class_ID == LAME_ID ) ... Other remark: If you set a flag to 0 for uninit\n     * data and 1 for init data, the right test should be \"if (flag == 1)\" and\n     * NOT \"if (flag)\". Unintended modification of this element will be\n     * otherwise misinterpreted as an init.\n     */\n    this.Class_ID = 0;\n\n    this.lame_encode_frame_init = 0;\n    this.iteration_init_init = 0;\n    this.fill_buffer_resample_init = 0;\n\n    //public float mfbuf[][] = new float[2][MFSIZE];\n    this.mfbuf = new_float_n([2, LameInternalFlags.MFSIZE]);\n\n    /**\n     * granules per frame\n     */\n    this.mode_gr = 0;\n    /**\n     * number of channels in the input data stream (PCM or decoded PCM)\n     */\n    this.channels_in = 0;\n    /**\n     * number of channels in the output data stream (not used for decoding)\n     */\n    this.channels_out = 0;\n    /**\n     * input_samp_rate/output_samp_rate\n     */\n        //public double resample_ratio;\n    this.resample_ratio = 0.;\n\n    this.mf_samples_to_encode = 0;\n    this.mf_size = 0;\n    /**\n     * min bitrate index\n     */\n    this.VBR_min_bitrate = 0;\n    /**\n     * max bitrate index\n     */\n    this.VBR_max_bitrate = 0;\n    this.bitrate_index = 0;\n    this.samplerate_index = 0;\n    this.mode_ext = 0;\n\n    /* lowpass and highpass filter control */\n    /**\n     * normalized frequency bounds of passband\n     */\n    this.lowpass1 = 0.;\n    this.lowpass2 = 0.;\n    /**\n     * normalized frequency bounds of passband\n     */\n    this.highpass1 = 0.;\n    this.highpass2 = 0.;\n\n    /**\n     * 0 = none 1 = ISO AAC model 2 = allow scalefac_select=1\n     */\n    this.noise_shaping = 0;\n\n    /**\n     * 0 = ISO model: amplify all distorted bands<BR>\n     * 1 = amplify within 50% of max (on db scale)<BR>\n     * 2 = amplify only most distorted band<BR>\n     * 3 = method 1 and refine with method 2<BR>\n     */\n    this.noise_shaping_amp = 0;\n    /**\n     * 0 = no substep<BR>\n     * 1 = use substep shaping at last step(VBR only)<BR>\n     * (not implemented yet)<BR>\n     * 2 = use substep inside loop<BR>\n     * 3 = use substep inside loop and last step<BR>\n     */\n    this.substep_shaping = 0;\n\n    /**\n     * 1 = gpsycho. 0 = none\n     */\n    this.psymodel = 0;\n    /**\n     * 0 = stop at over=0, all scalefacs amplified or<BR>\n     * a scalefac has reached max value<BR>\n     * 1 = stop when all scalefacs amplified or a scalefac has reached max value<BR>\n     * 2 = stop when all scalefacs amplified\n     */\n    this.noise_shaping_stop = 0;\n\n    /**\n     * 0 = no, 1 = yes\n     */\n    this.subblock_gain = 0;\n    /**\n     * 0 = no. 1=outside loop 2=inside loop(slow)\n     */\n    this.use_best_huffman = 0;\n\n    /**\n     * 0 = stop early after 0 distortion found. 1 = full search\n     */\n    this.full_outer_loop = 0;\n\n    //public IIISideInfo l3_side = new IIISideInfo();\n    this.l3_side = new IIISideInfo();\n    this.ms_ratio = new_float(2);\n\n    /* used for padding */\n    /**\n     * padding for the current frame?\n     */\n    this.padding = 0;\n    this.frac_SpF = 0;\n    this.slot_lag = 0;\n\n    /**\n     * optional ID3 tags\n     */\n        //public ID3TagSpec tag_spec;\n    this.tag_spec = null;\n    this.nMusicCRC = 0;\n\n    /* variables used by Quantize */\n    //public int OldValue[] = new int[2];\n    this.OldValue = new_int(2);\n    //public int CurrentStep[] = new int[2];\n    this.CurrentStep = new_int(2);\n\n    this.masking_lower = 0.;\n    //public int bv_scf[] = new int[576];\n    this.bv_scf = new_int(576);\n    //public int pseudohalf[] = new int[L3Side.SFBMAX];\n    this.pseudohalf = new_int(L3Side.SFBMAX);\n\n    /**\n     * will be set in lame_init_params\n     */\n    this.sfb21_extra = false;\n\n    /* BPC = maximum number of filter convolution windows to precompute */\n    //public float[][] inbuf_old = new float[2][];\n    this.inbuf_old = new Array(2);\n    //public float[][] blackfilt = new float[2 * BPC + 1][];\n    this.blackfilt = new Array(2 * LameInternalFlags.BPC + 1);\n    //public double itime[] = new double[2];\n    this.itime = new_double(2);\n    this.sideinfo_len = 0;\n\n    /* variables for newmdct.c */\n    //public float sb_sample[][][][] = new float[2][2][18][Encoder.SBLIMIT];\n    this.sb_sample = new_float_n([2, 2, 18, Encoder.SBLIMIT]);\n    this.amp_filter = new_float(32);\n\n    /* variables for BitStream */\n\n    /**\n     * <PRE>\n     * mpeg1: buffer=511 bytes  smallest frame: 96-38(sideinfo)=58\n     * max number of frames in reservoir:  8\n     * mpeg2: buffer=255 bytes.  smallest frame: 24-23bytes=1\n     * with VBR, if you are encoding all silence, it is possible to\n     * have 8kbs/24khz frames with 1byte of data each, which means we need\n     * to buffer up to 255 headers!\n     * </PRE>\n     */\n    /**\n     * also, max_header_buf has to be a power of two\n     */\n    /**\n     * max size of header is 38\n     */\n\n    function Header() {\n        this.write_timing = 0;\n        this.ptr = 0;\n        //public byte buf[] = new byte[MAX_HEADER_LEN];\n        this.buf = new_byte(MAX_HEADER_LEN);\n    }\n\n    this.header = new Array(LameInternalFlags.MAX_HEADER_BUF);\n\n    this.h_ptr = 0;\n    this.w_ptr = 0;\n    this.ancillary_flag = 0;\n\n    /* variables for Reservoir */\n    /**\n     * in bits\n     */\n    this.ResvSize = 0;\n    /**\n     * in bits\n     */\n    this.ResvMax = 0;\n\n    //public ScaleFac scalefac_band = new ScaleFac();\n    this.scalefac_band = new ScaleFac();\n\n    /* daa from PsyModel */\n    /* The static variables \"r\", \"phi_sav\", \"new\", \"old\" and \"oldest\" have */\n    /* to be remembered for the unpredictability measure. For \"r\" and */\n    /* \"phi_sav\", the first index from the left is the channel select and */\n    /* the second index is the \"age\" of the data. */\n    this.minval_l = new_float(Encoder.CBANDS);\n    this.minval_s = new_float(Encoder.CBANDS);\n    this.nb_1 = new_float_n([4, Encoder.CBANDS]);\n    this.nb_2 = new_float_n([4, Encoder.CBANDS]);\n    this.nb_s1 = new_float_n([4, Encoder.CBANDS]);\n    this.nb_s2 = new_float_n([4, Encoder.CBANDS]);\n    this.s3_ss = null;\n    this.s3_ll = null;\n    this.decay = 0.;\n\n    //public III_psy_xmin[] thm = new III_psy_xmin[4];\n    //public III_psy_xmin[] en = new III_psy_xmin[4];\n    this.thm = new Array(4);\n    this.en = new Array(4);\n\n    /**\n     * fft and energy calculation\n     */\n    this.tot_ener = new_float(4);\n\n    /* loudness calculation (for adaptive threshold of hearing) */\n    /**\n     * loudness^2 approx. per granule and channel\n     */\n    this.loudness_sq = new_float_n([2, 2]);\n    /**\n     * account for granule delay of L3psycho_anal\n     */\n    this.loudness_sq_save = new_float(2);\n\n    /**\n     * Scale Factor Bands\n     */\n    this.mld_l = new_float(Encoder.SBMAX_l);\n    this.mld_s = new_float(Encoder.SBMAX_s);\n    this.bm_l = new_int(Encoder.SBMAX_l);\n    this.bo_l = new_int(Encoder.SBMAX_l);\n    this.bm_s = new_int(Encoder.SBMAX_s);\n    this.bo_s = new_int(Encoder.SBMAX_s);\n    this.npart_l = 0;\n    this.npart_s = 0;\n\n    this.s3ind = new_int_n([Encoder.CBANDS, 2]);\n    this.s3ind_s = new_int_n([Encoder.CBANDS, 2]);\n\n    this.numlines_s = new_int(Encoder.CBANDS);\n    this.numlines_l = new_int(Encoder.CBANDS);\n    this.rnumlines_l = new_float(Encoder.CBANDS);\n    this.mld_cb_l = new_float(Encoder.CBANDS);\n    this.mld_cb_s = new_float(Encoder.CBANDS);\n    this.numlines_s_num1 = 0;\n    this.numlines_l_num1 = 0;\n\n    /* ratios */\n    this.pe = new_float(4);\n    this.ms_ratio_s_old = 0.;\n    this.ms_ratio_l_old = 0.;\n    this.ms_ener_ratio_old = 0.;\n\n    /**\n     * block type\n     */\n    this.blocktype_old = new_int(2);\n\n    /**\n     * variables used for --nspsytune\n     */\n    this.nsPsy = new NsPsy();\n\n    /**\n     * used for Xing VBR header\n     */\n    this.VBR_seek_table = new VBRSeekInfo();\n\n    /**\n     * all ATH related stuff\n     */\n        //public ATH ATH;\n    this.ATH = null;\n\n    this.PSY = null;\n\n    this.nogap_total = 0;\n    this.nogap_current = 0;\n\n    /* ReplayGain */\n    this.decode_on_the_fly = true;\n    this.findReplayGain = true;\n    this.findPeakSample = true;\n    this.PeakSample = 0.;\n    this.RadioGain = 0;\n    this.AudiophileGain = 0;\n    //public ReplayGain rgdata;\n    this.rgdata = null;\n\n    /**\n     * gain change required for preventing clipping\n     */\n    this.noclipGainChange = 0;\n    /**\n     * user-specified scale factor required for preventing clipping\n     */\n    this.noclipScale = 0.;\n\n    /* simple statistics */\n    this.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n    /**\n     * norm/start/short/stop/mixed(short)/sum\n     */\n    this.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n    //public PlottingData pinfo;\n    //public MPGLib.mpstr_tag hip;\n    this.pinfo = null;\n    this.hip = null;\n\n    this.in_buffer_nsamples = 0;\n    //public float[] in_buffer_0;\n    //public float[] in_buffer_1;\n    this.in_buffer_0 = null;\n    this.in_buffer_1 = null;\n\n    //public IIterationLoop iteration_loop;\n    this.iteration_loop = null;\n\n    for (var i = 0; i < this.en.length; i++) {\n        this.en[i] = new III_psy_xmin();\n    }\n    for (var i = 0; i < this.thm.length; i++) {\n        this.thm[i] = new III_psy_xmin();\n    }\n    for (var i = 0; i < this.header.length; i++) {\n        this.header[i] = new Header();\n    }\n\n}\n\nmodule.exports = LameInternalFlags;\n\n\n/***/ }),\n\n/***/ \"bea1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.URL = exports.TEXT = exports.NL = exports.EMAIL = exports.MAILTOEMAIL = exports.Base = undefined;\n\nvar _createTokenClass = __webpack_require__(\"46f3\");\n\nvar _class = __webpack_require__(\"254c\");\n\nvar _text = __webpack_require__(\"7656\");\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n// Is the given token a valid domain token?\n// Should nums be included here?\nfunction isDomainToken(token) {\n\treturn token instanceof _text.DOMAIN || token instanceof _text.TLD;\n}\n\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@abstract\n*/\nvar MultiToken = (0, _createTokenClass.createTokenClass)();\n\nMultiToken.prototype = {\n\t/**\n \tString representing the type for this token\n \t@property type\n \t@default 'TOKEN'\n */\n\ttype: 'token',\n\n\t/**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n\tisLink: false,\n\n\t/**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {String}\n */\n\ttoString: function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.v.length; i++) {\n\t\t\tresult.push(this.v[i].toString());\n\t\t}\n\t\treturn result.join('');\n\t},\n\n\n\t/**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\treturn this.toString();\n\t},\n\n\n\t/**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {String} [protocol] `'http'` by default\n \t@return {Object}\n */\n\ttoObject: function toObject() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue: this.toString(),\n\t\t\thref: this.toHref(protocol)\n\t\t};\n\t}\n};\n\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MAILTO\n\t@extends MultiToken\n*/\nvar MAILTOEMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true\n});\n\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class EMAIL\n\t@extends MultiToken\n*/\nvar EMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true,\n\ttoHref: function toHref() {\n\t\treturn 'mailto:' + this.toString();\n\t}\n});\n\n/**\n\tRepresents some plain text\n\t@class TEXT\n\t@extends MultiToken\n*/\nvar TEXT = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'text' });\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class NL\n\t@extends MultiToken\n*/\nvar NL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'nl' });\n\n/**\n\tRepresents a list of tokens making up a valid URL\n\t@class URL\n\t@extends MultiToken\n*/\nvar URL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'url',\n\tisLink: true,\n\n\t/**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {String} protocol\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\tvar hasProtocol = false;\n\t\tvar hasSlashSlash = false;\n\t\tvar tokens = this.v;\n\t\tvar result = [];\n\t\tvar i = 0;\n\n\t\t// Make the first part of the domain lowercase\n\t\t// Lowercase protocol\n\t\twhile (tokens[i] instanceof _text.PROTOCOL) {\n\t\t\thasProtocol = true;\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Skip slash-slash\n\t\twhile (tokens[i] instanceof _text.SLASH) {\n\t\t\thasSlashSlash = true;\n\t\t\tresult.push(tokens[i].toString());\n\t\t\ti++;\n\t\t}\n\n\t\t// Lowercase all other characters in the domain\n\t\twhile (isDomainToken(tokens[i])) {\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Leave all other characters as they were written\n\t\tfor (; i < tokens.length; i++) {\n\t\t\tresult.push(tokens[i].toString());\n\t\t}\n\n\t\tresult = result.join('');\n\n\t\tif (!(hasProtocol || hasSlashSlash)) {\n\t\t\tresult = protocol + '://' + result;\n\t\t}\n\n\t\treturn result;\n\t},\n\thasProtocol: function hasProtocol() {\n\t\treturn this.v[0] instanceof _text.PROTOCOL;\n\t}\n});\n\nexports.Base = MultiToken;\nexports.MAILTOEMAIL = MAILTOEMAIL;\nexports.EMAIL = EMAIL;\nexports.NL = NL;\nexports.TEXT = TEXT;\nexports.URL = URL;\n\n/***/ }),\n\n/***/ \"c04e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(\"c65b\");\nvar isObject = __webpack_require__(\"861d\");\nvar isSymbol = __webpack_require__(\"d9b5\");\nvar getMethod = __webpack_require__(\"dc4a\");\nvar ordinaryToPrimitive = __webpack_require__(\"485a\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n\n/***/ \"c0be\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\n//package mp3;\n\n/**\n * Variables used for --nspsytune\n *\n * @author Ken\n *\n */\nfunction NsPsy() {\n    this.last_en_subshort = new_float_n([4, 9]);\n    this.lastAttacks = new_int(4);\n    this.pefirbuf = new_float(19);\n    this.longfact = new_float(Encoder.SBMAX_l);\n    this.shortfact = new_float(Encoder.SBMAX_s);\n\n    /**\n     * short block tuning\n     */\n    this.attackthre = 0.;\n    this.attackthre_s = 0.;\n}\n\nmodule.exports = NsPsy;\n\n\n/***/ }),\n\n/***/ \"c28b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(e,n){ true?module.exports=n():undefined}(this,function(){var e=\"__v-click-outside\",n=\"undefined\"!=typeof window,t=\"undefined\"!=typeof navigator,r=n&&(\"ontouchstart\"in window||t&&navigator.msMaxTouchPoints>0)?[\"touchstart\"]:[\"click\"];function i(e){var n=e.event,t=e.handler;(0,e.middleware)(n)&&t(n)}function a(n,t){var a=function(e){var n=\"function\"==typeof e;if(!n&&\"object\"!=typeof e)throw new Error(\"v-click-outside: Binding value must be a function or an object\");return{handler:n?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||r,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:!!e.capture}}(t.value),d=a.handler,o=a.middleware,c=a.detectIframe,u=a.capture;if(a.isActive){if(n[e]=a.events.map(function(e){return{event:e,srcTarget:document.documentElement,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware,d=t.composedPath&&t.composedPath()||t.path;(d?d.indexOf(n)<0:!n.contains(t.target))&&i({event:t,handler:r,middleware:a})}({el:n,event:e,handler:d,middleware:o})},capture:u}}),c){var l={event:\"blur\",srcTarget:window,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware;setTimeout(function(){var e=document.activeElement;e&&\"IFRAME\"===e.tagName&&!n.contains(e)&&i({event:t,handler:r,middleware:a})},0)}({el:n,event:e,handler:d,middleware:o})},capture:u};n[e]=[].concat(n[e],[l])}n[e].forEach(function(t){var r=t.event,i=t.srcTarget,a=t.handler;return setTimeout(function(){n[e]&&i.addEventListener(r,a,u)},0)})}}function d(n){(n[e]||[]).forEach(function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)}),delete n[e]}var o=n?{bind:a,update:function(e,n){var t=n.value,r=n.oldValue;JSON.stringify(t)!==JSON.stringify(r)&&(d(e),a(e,{value:t}))},unbind:d}:{};return{install:function(e){e.directive(\"click-outside\",o)},directive:o}});\n//# sourceMappingURL=v-click-outside.umd.js.map\n\n\n/***/ }),\n\n/***/ \"c430\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"c65b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(\"40d5\");\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n\n\n/***/ }),\n\n/***/ \"c6b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"c6cd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar defineGlobalProperty = __webpack_require__(\"6374\");\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"c9d9\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return IMAGE_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return VIDEO_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AUDIO_TYPES; });\nvar IMAGE_TYPES = ['png', 'jpg', 'jpeg', 'webp', 'svg', 'gif'];\nvar VIDEO_TYPES = ['mp4', 'video/ogg', 'webm', 'quicktime'];\nvar AUDIO_TYPES = ['mp3', 'audio/ogg', 'wav', 'mpeg'];\n\n/***/ }),\n\n/***/ \"ca84\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(\"e330\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar indexOf = __webpack_require__(\"4d64\").indexOf;\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"cb2d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(\"1626\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar makeBuiltIn = __webpack_require__(\"13d2\");\nvar defineGlobalProperty = __webpack_require__(\"6374\");\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n\n\n/***/ }),\n\n/***/ \"cc12\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"cc2b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"cdce\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar isCallable = __webpack_require__(\"1626\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ }),\n\n/***/ \"d012\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"d039\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ \"d066\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar isCallable = __webpack_require__(\"1626\");\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ \"d1e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"d2bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThis = __webpack_require__(\"e330\");\nvar anObject = __webpack_require__(\"825a\");\nvar aPossiblePrototype = __webpack_require__(\"3bbe\");\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ \"d44e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(\"9bf2\").f;\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n  if (target && !STATIC) target = target.prototype;\n  if (target && !hasOwn(target, TO_STRING_TAG)) {\n    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n\n/***/ }),\n\n/***/ \"d58f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(\"59ed\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar IndexedObject = __webpack_require__(\"44ad\");\nvar lengthOfArrayLike = __webpack_require__(\"07fa\");\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aCallable(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(O);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw $TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"d9b5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar isCallable = __webpack_require__(\"1626\");\nvar isPrototypeOf = __webpack_require__(\"3a9b\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(\"fdbf\");\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ }),\n\n/***/ \"d9be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *\tMP3 huffman table selecting and bit counting\n *\n *\tCopyright (c) 1999-2005 Takehiro TOMINAGA\n *\tCopyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\t See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Takehiro.java,v 1.26 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\nvar Tables = __webpack_require__(\"5f84\");\nvar GrInfo = __webpack_require__(\"f3b5\");\nvar QuantizePVT = __webpack_require__(\"bb22\");\n\n\nfunction Takehiro() {\n\n    var qupvt = null;\n    this.qupvt = null;\n\n    this.setModules = function (_qupvt) {\n        this.qupvt = _qupvt;\n        qupvt = _qupvt;\n    }\n\n    function Bits(b) {\n        this.bits = 0 | b;\n    }\n\n    var subdv_table = [[0, 0], /* 0 bands */\n        [0, 0], /* 1 bands */\n        [0, 0], /* 2 bands */\n        [0, 0], /* 3 bands */\n        [0, 0], /* 4 bands */\n        [0, 1], /* 5 bands */\n        [1, 1], /* 6 bands */\n        [1, 1], /* 7 bands */\n        [1, 2], /* 8 bands */\n        [2, 2], /* 9 bands */\n        [2, 3], /* 10 bands */\n        [2, 3], /* 11 bands */\n        [3, 4], /* 12 bands */\n        [3, 4], /* 13 bands */\n        [3, 4], /* 14 bands */\n        [4, 5], /* 15 bands */\n        [4, 5], /* 16 bands */\n        [4, 6], /* 17 bands */\n        [5, 6], /* 18 bands */\n        [5, 6], /* 19 bands */\n        [5, 7], /* 20 bands */\n        [6, 7], /* 21 bands */\n        [6, 7], /* 22 bands */\n    ];\n\n    /**\n     * nonlinear quantization of xr More accurate formula than the ISO formula.\n     * Takes into account the fact that we are quantizing xr . ix, but we want\n     * ix^4/3 to be as close as possible to x^4/3. (taking the nearest int would\n     * mean ix is as close as possible to xr, which is different.)\n     *\n     * From Segher Boessenkool <segher@eastsite.nl> 11/1999\n     *\n     * 09/2000: ASM code removed in favor of IEEE754 hack by Takehiro Tominaga.\n     * If you need the ASM code, check CVS circa Aug 2000.\n     *\n     * 01/2004: Optimizations by Gabriel Bouvigne\n     */\n    function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n        var compareval0 = (1.0 - 0.4054) / istep;\n\n        assert(l > 0);\n        l = l >> 1;\n        while ((l--) != 0) {\n            ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;\n            ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;\n        }\n    }\n\n    /**\n     * XRPOW_FTOI is a macro to convert floats to ints.<BR>\n     * if XRPOW_FTOI(x) = nearest_int(x), then QUANTFAC(x)=adj43asm[x]<BR>\n     * ROUNDFAC= -0.0946<BR>\n     *\n     * if XRPOW_FTOI(x) = floor(x), then QUANTFAC(x)=asj43[x]<BR>\n     * ROUNDFAC=0.4054<BR>\n     *\n     * Note: using floor() or 0| is extremely slow. On machines where the\n     * TAKEHIRO_IEEE754_HACK code above does not work, it is worthwile to write\n     * some ASM for XRPOW_FTOI().\n     */\n    function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n        assert(l > 0);\n\n        l = l >> 1;\n        var remaining = l % 2;\n        l = l >> 1;\n        while (l-- != 0) {\n            var x0, x1, x2, x3;\n            var rx0, rx1, rx2, rx3;\n\n            x0 = xr[xrPos++] * istep;\n            x1 = xr[xrPos++] * istep;\n            rx0 = 0 | x0;\n            x2 = xr[xrPos++] * istep;\n            rx1 = 0 | x1;\n            x3 = xr[xrPos++] * istep;\n            rx2 = 0 | x2;\n            x0 += qupvt.adj43[rx0];\n            rx3 = 0 | x3;\n            x1 += qupvt.adj43[rx1];\n            ix[ixPos++] = 0 | x0;\n            x2 += qupvt.adj43[rx2];\n            ix[ixPos++] = 0 | x1;\n            x3 += qupvt.adj43[rx3];\n            ix[ixPos++] = 0 | x2;\n            ix[ixPos++] = 0 | x3;\n        }\n        if (remaining != 0) {\n            var x0, x1;\n            var rx0, rx1;\n\n            x0 = xr[xrPos++] * istep;\n            x1 = xr[xrPos++] * istep;\n            rx0 = 0 | x0;\n            rx1 = 0 | x1;\n            x0 += qupvt.adj43[rx0];\n            x1 += qupvt.adj43[rx1];\n            ix[ixPos++] = 0 | x0;\n            ix[ixPos++] = 0 | x1;\n        }\n    }\n\n    /**\n     * Quantization function This function will select which lines to quantize\n     * and call the proper quantization function\n     */\n    function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n        /* quantize on xr^(3/4) instead of xr */\n        var sfb;\n        var sfbmax;\n        var j = 0;\n        var prev_data_use;\n        var accumulate = 0;\n        var accumulate01 = 0;\n        var xpPos = 0;\n        var iData = pi;\n        var iDataPos = 0;\n        var acc_iData = iData;\n        var acc_iDataPos = 0;\n        var acc_xp = xp;\n        var acc_xpPos = 0;\n\n        /*\n         * Reusing previously computed data does not seems to work if global\n         * gain is changed. Finding why it behaves this way would allow to use a\n         * cache of previously computed values (let's 10 cached values per sfb)\n         * that would probably provide a noticeable speedup\n         */\n        prev_data_use = (prevNoise != null && (codInfo.global_gain == prevNoise.global_gain));\n\n        if (codInfo.block_type == Encoder.SHORT_TYPE)\n            sfbmax = 38;\n        else\n            sfbmax = 21;\n\n        for (sfb = 0; sfb <= sfbmax; sfb++) {\n            var step = -1;\n\n            if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n                step = codInfo.global_gain\n                    - ((codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb]\n                        : 0)) << (codInfo.scalefac_scale + 1))\n                    - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n            }\n            assert(codInfo.width[sfb] >= 0);\n            if (prev_data_use && (prevNoise.step[sfb] == step)) {\n                /*\n                 * do not recompute this part, but compute accumulated lines\n                 */\n                if (accumulate != 0) {\n                    quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n                        acc_iData, acc_iDataPos);\n                    accumulate = 0;\n                }\n                if (accumulate01 != 0) {\n                    quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n                        acc_xpPos, acc_iData, acc_iDataPos);\n                    accumulate01 = 0;\n                }\n            } else { /* should compute this part */\n                var l = codInfo.width[sfb];\n\n                if ((j + codInfo.width[sfb]) > codInfo.max_nonzero_coeff) {\n                    /* do not compute upper zero part */\n                    var usefullsize;\n                    usefullsize = codInfo.max_nonzero_coeff - j + 1;\n                    Arrays.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n                    l = usefullsize;\n\n                    if (l < 0) {\n                        l = 0;\n                    }\n\n                    /* no need to compute higher sfb values */\n                    sfb = sfbmax + 1;\n                }\n\n                /* accumulate lines to quantize */\n                if (0 == accumulate && 0 == accumulate01) {\n                    acc_iData = iData;\n                    acc_iDataPos = iDataPos;\n                    acc_xp = xp;\n                    acc_xpPos = xpPos;\n                }\n                if (prevNoise != null && prevNoise.sfb_count1 > 0\n                    && sfb >= prevNoise.sfb_count1\n                    && prevNoise.step[sfb] > 0\n                    && step >= prevNoise.step[sfb]) {\n\n                    if (accumulate != 0) {\n                        quantize_lines_xrpow(accumulate, istep, acc_xp,\n                            acc_xpPos, acc_iData, acc_iDataPos);\n                        accumulate = 0;\n                        acc_iData = iData;\n                        acc_iDataPos = iDataPos;\n                        acc_xp = xp;\n                        acc_xpPos = xpPos;\n                    }\n                    accumulate01 += l;\n                } else {\n                    if (accumulate01 != 0) {\n                        quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n                            acc_xpPos, acc_iData, acc_iDataPos);\n                        accumulate01 = 0;\n                        acc_iData = iData;\n                        acc_iDataPos = iDataPos;\n                        acc_xp = xp;\n                        acc_xpPos = xpPos;\n                    }\n                    accumulate += l;\n                }\n\n                if (l <= 0) {\n                    /*\n                     * rh: 20040215 may happen due to \"prev_data_use\"\n                     * optimization\n                     */\n                    if (accumulate01 != 0) {\n                        quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n                            acc_xpPos, acc_iData, acc_iDataPos);\n                        accumulate01 = 0;\n                    }\n                    if (accumulate != 0) {\n                        quantize_lines_xrpow(accumulate, istep, acc_xp,\n                            acc_xpPos, acc_iData, acc_iDataPos);\n                        accumulate = 0;\n                    }\n\n                    break;\n                    /* ends for-loop */\n                }\n            }\n            if (sfb <= sfbmax) {\n                iDataPos += codInfo.width[sfb];\n                xpPos += codInfo.width[sfb];\n                j += codInfo.width[sfb];\n            }\n        }\n        if (accumulate != 0) { /* last data part */\n            quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n                acc_iData, acc_iDataPos);\n            accumulate = 0;\n        }\n        if (accumulate01 != 0) { /* last data part */\n            quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos,\n                acc_iData, acc_iDataPos);\n            accumulate01 = 0;\n        }\n\n    }\n\n    /**\n     * ix_max\n     */\n    function ix_max(ix, ixPos, endPos) {\n        var max1 = 0, max2 = 0;\n\n        do {\n            var x1 = ix[ixPos++];\n            var x2 = ix[ixPos++];\n            if (max1 < x1)\n                max1 = x1;\n\n            if (max2 < x2)\n                max2 = x2;\n        } while (ixPos < endPos);\n        if (max1 < max2)\n            max1 = max2;\n        return max1;\n    }\n\n    function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n        /* ESC-table is used */\n        var linbits = Tables.ht[t1].xlen * 65536 + Tables.ht[t2].xlen;\n        var sum = 0, sum2;\n\n        do {\n            var x = ix[ixPos++];\n            var y = ix[ixPos++];\n\n            if (x != 0) {\n                if (x > 14) {\n                    x = 15;\n                    sum += linbits;\n                }\n                x *= 16;\n            }\n\n            if (y != 0) {\n                if (y > 14) {\n                    y = 15;\n                    sum += linbits;\n                }\n                x += y;\n            }\n\n            sum += Tables.largetbl[x];\n        } while (ixPos < end);\n\n        sum2 = sum & 0xffff;\n        sum >>= 16;\n\n        if (sum > sum2) {\n            sum = sum2;\n            t1 = t2;\n        }\n\n        s.bits += sum;\n        return t1;\n    }\n\n    function count_bit_noESC(ix, ixPos, end, s) {\n        /* No ESC-words */\n        var sum1 = 0;\n        var hlen1 = Tables.ht[1].hlen;\n\n        do {\n            var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n            ixPos += 2;\n            sum1 += hlen1[x];\n        } while (ixPos < end);\n\n        s.bits += sum1;\n        return 1;\n    }\n\n    function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n        /* No ESC-words */\n        var sum = 0, sum2;\n        var xlen = Tables.ht[t1].xlen;\n        var hlen;\n        if (t1 == 2)\n            hlen = Tables.table23;\n        else\n            hlen = Tables.table56;\n\n        do {\n            var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n            ixPos += 2;\n            sum += hlen[x];\n        } while (ixPos < end);\n\n        sum2 = sum & 0xffff;\n        sum >>= 16;\n\n        if (sum > sum2) {\n            sum = sum2;\n            t1++;\n        }\n\n        s.bits += sum;\n        return t1;\n    }\n\n    function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n        /* No ESC-words */\n        var sum1 = 0;\n        var sum2 = 0;\n        var sum3 = 0;\n        var xlen = Tables.ht[t1].xlen;\n        var hlen1 = Tables.ht[t1].hlen;\n        var hlen2 = Tables.ht[t1 + 1].hlen;\n        var hlen3 = Tables.ht[t1 + 2].hlen;\n\n        do {\n            var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n            ixPos += 2;\n            sum1 += hlen1[x];\n            sum2 += hlen2[x];\n            sum3 += hlen3[x];\n        } while (ixPos < end);\n        var t = t1;\n        if (sum1 > sum2) {\n            sum1 = sum2;\n            t++;\n        }\n        if (sum1 > sum3) {\n            sum1 = sum3;\n            t = t1 + 2;\n        }\n        s.bits += sum1;\n\n        return t;\n    }\n\n    /*************************************************************************/\n    /* choose table */\n    /*************************************************************************/\n\n    var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13,\n        13, 13, 13, 13, 13, 13];\n\n    /**\n     * Choose the Huffman table that will encode ix[begin..end] with the fewest\n     * bits.\n     *\n     * Note: This code contains knowledge about the sizes and characteristics of\n     * the Huffman tables as defined in the IS (Table B.7), and will not work\n     * with any arbitrary tables.\n     */\n    function choose_table(ix, ixPos, endPos, s) {\n        var max = ix_max(ix, ixPos, endPos);\n\n        switch (max) {\n            case 0:\n                return max;\n\n            case 1:\n                return count_bit_noESC(ix, ixPos, endPos, s);\n\n            case 2:\n            case 3:\n                return count_bit_noESC_from2(ix, ixPos, endPos,\n                    huf_tbl_noESC[max - 1], s);\n\n            case 4:\n            case 5:\n            case 6:\n            case 7:\n            case 8:\n            case 9:\n            case 10:\n            case 11:\n            case 12:\n            case 13:\n            case 14:\n            case 15:\n                return count_bit_noESC_from3(ix, ixPos, endPos,\n                    huf_tbl_noESC[max - 1], s);\n\n            default:\n                /* try tables with linbits */\n                if (max > QuantizePVT.IXMAX_VAL) {\n                    s.bits = QuantizePVT.LARGE_BITS;\n                    return -1;\n                }\n                max -= 15;\n                var choice2;\n                for (choice2 = 24; choice2 < 32; choice2++) {\n                    if (Tables.ht[choice2].linmax >= max) {\n                        break;\n                    }\n                }\n                var choice;\n                for (choice = choice2 - 8; choice < 24; choice++) {\n                    if (Tables.ht[choice].linmax >= max) {\n                        break;\n                    }\n                }\n                return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n        }\n    }\n\n    /**\n     * count_bit\n     */\n    this.noquant_count_bits = function (gfc, gi, prev_noise) {\n        var ix = gi.l3_enc;\n        var i = Math.min(576, ((gi.max_nonzero_coeff + 2) >> 1) << 1);\n\n        if (prev_noise != null)\n            prev_noise.sfb_count1 = 0;\n\n        /* Determine count1 region */\n        for (; i > 1; i -= 2)\n            if ((ix[i - 1] | ix[i - 2]) != 0)\n                break;\n        gi.count1 = i;\n\n        /* Determines the number of bits to encode the quadruples. */\n        var a1 = 0;\n        var a2 = 0;\n        for (; i > 3; i -= 4) {\n            var p;\n            /* hack to check if all values <= 1 */\n            //throw \"TODO: HACK         if ((((long) ix[i - 1] | (long) ix[i - 2] | (long) ix[i - 3] | (long) ix[i - 4]) & 0xffffffffL) > 1L        \"\n            //if (true) {\n            if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 0x7fffffff) > 1) {\n                break;\n            }\n            p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n            a1 += Tables.t32l[p];\n            a2 += Tables.t33l[p];\n        }\n        var bits = a1;\n        gi.count1table_select = 0;\n        if (a1 > a2) {\n            bits = a2;\n            gi.count1table_select = 1;\n        }\n\n        gi.count1bits = bits;\n        gi.big_values = i;\n        if (i == 0)\n            return bits;\n\n        if (gi.block_type == Encoder.SHORT_TYPE) {\n            a1 = 3 * gfc.scalefac_band.s[3];\n            if (a1 > gi.big_values)\n                a1 = gi.big_values;\n            a2 = gi.big_values;\n\n        } else if (gi.block_type == Encoder.NORM_TYPE) {\n            assert(i <= 576);\n            /* bv_scf has 576 entries (0..575) */\n            a1 = gi.region0_count = gfc.bv_scf[i - 2];\n            a2 = gi.region1_count = gfc.bv_scf[i - 1];\n\n            assert(a1 + a2 + 2 < Encoder.SBPSY_l);\n            a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n            a1 = gfc.scalefac_band.l[a1 + 1];\n            if (a2 < i) {\n                var bi = new Bits(bits);\n                gi.table_select[2] = choose_table(ix, a2, i, bi);\n                bits = bi.bits;\n            }\n        } else {\n            gi.region0_count = 7;\n            /* gi.region1_count = SBPSY_l - 7 - 1; */\n            gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n            a1 = gfc.scalefac_band.l[7 + 1];\n            a2 = i;\n            if (a1 > a2) {\n                a1 = a2;\n            }\n        }\n\n        /* have to allow for the case when bigvalues < region0 < region1 */\n        /* (and region0, region1 are ignored) */\n        a1 = Math.min(a1, i);\n        a2 = Math.min(a2, i);\n\n        assert(a1 >= 0);\n        assert(a2 >= 0);\n\n        /* Count the number of bits necessary to code the bigvalues region. */\n        if (0 < a1) {\n            var bi = new Bits(bits);\n            gi.table_select[0] = choose_table(ix, 0, a1, bi);\n            bits = bi.bits;\n        }\n        if (a1 < a2) {\n            var bi = new Bits(bits);\n            gi.table_select[1] = choose_table(ix, a1, a2, bi);\n            bits = bi.bits;\n        }\n        if (gfc.use_best_huffman == 2) {\n            gi.part2_3_length = bits;\n            best_huffman_divide(gfc, gi);\n            bits = gi.part2_3_length;\n        }\n\n        if (prev_noise != null) {\n            if (gi.block_type == Encoder.NORM_TYPE) {\n                var sfb = 0;\n                while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n                    sfb++;\n                }\n                prev_noise.sfb_count1 = sfb;\n            }\n        }\n\n        return bits;\n    }\n\n    this.count_bits = function (gfc, xr, gi, prev_noise) {\n        var ix = gi.l3_enc;\n\n        /* since quantize_xrpow uses table lookup, we need to check this first: */\n        var w = (QuantizePVT.IXMAX_VAL) / qupvt.IPOW20(gi.global_gain);\n\n        if (gi.xrpow_max > w)\n            return QuantizePVT.LARGE_BITS;\n\n        quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n\n        if ((gfc.substep_shaping & 2) != 0) {\n            var j = 0;\n            /* 0.634521682242439 = 0.5946*2**(.5*0.1875) */\n            var gain = gi.global_gain + gi.scalefac_scale;\n            var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n            for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n                var width = gi.width[sfb];\n                assert(width >= 0);\n                if (0 == gfc.pseudohalf[sfb]) {\n                    j += width;\n                } else {\n                    var k;\n                    for (k = j, j += width; k < j; ++k) {\n                        ix[k] = (xr[k] >= roundfac) ? ix[k] : 0;\n                    }\n                }\n            }\n        }\n        return this.noquant_count_bits(gfc, gi, prev_noise);\n    }\n\n    /**\n     * re-calculate the best scalefac_compress using scfsi the saved bits are\n     * kept in the bit reservoir.\n     */\n    function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n        var bigv = cod_info.big_values;\n\n        for (var r0 = 0; r0 <= 7 + 15; r0++) {\n            r01_bits[r0] = QuantizePVT.LARGE_BITS;\n        }\n\n        for (var r0 = 0; r0 < 16; r0++) {\n            var a1 = gfc.scalefac_band.l[r0 + 1];\n            if (a1 >= bigv)\n                break;\n            var r0bits = 0;\n            var bi = new Bits(r0bits);\n            var r0t = choose_table(ix, 0, a1, bi);\n            r0bits = bi.bits;\n\n            for (var r1 = 0; r1 < 8; r1++) {\n                var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n                if (a2 >= bigv)\n                    break;\n                var bits = r0bits;\n                bi = new Bits(bits);\n                var r1t = choose_table(ix, a1, a2, bi);\n                bits = bi.bits;\n                if (r01_bits[r0 + r1] > bits) {\n                    r01_bits[r0 + r1] = bits;\n                    r01_div[r0 + r1] = r0;\n                    r0_tbl[r0 + r1] = r0t;\n                    r1_tbl[r0 + r1] = r1t;\n                }\n            }\n        }\n    }\n\n    function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n        var bigv = cod_info2.big_values;\n\n        for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n            var a2 = gfc.scalefac_band.l[r2];\n            if (a2 >= bigv)\n                break;\n            var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n            if (gi.part2_3_length <= bits)\n                break;\n\n            var bi = new Bits(bits);\n            var r2t = choose_table(ix, a2, bigv, bi);\n            bits = bi.bits;\n            if (gi.part2_3_length <= bits)\n                continue;\n\n            gi.assign(cod_info2);\n            gi.part2_3_length = bits;\n            gi.region0_count = r01_div[r2 - 2];\n            gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n            gi.table_select[0] = r0_tbl[r2 - 2];\n            gi.table_select[1] = r1_tbl[r2 - 2];\n            gi.table_select[2] = r2t;\n        }\n    }\n\n    this.best_huffman_divide = function (gfc, gi) {\n        var cod_info2 = new GrInfo();\n        var ix = gi.l3_enc;\n        var r01_bits = new_int(7 + 15 + 1);\n        var r01_div = new_int(7 + 15 + 1);\n        var r0_tbl = new_int(7 + 15 + 1);\n        var r1_tbl = new_int(7 + 15 + 1);\n\n        /* SHORT BLOCK stuff fails for MPEG2 */\n        if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n            return;\n\n        cod_info2.assign(gi);\n        if (gi.block_type == Encoder.NORM_TYPE) {\n            recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n            recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n                r0_tbl, r1_tbl);\n        }\n        var i = cod_info2.big_values;\n        if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n            return;\n\n        i = gi.count1 + 2;\n        if (i > 576)\n            return;\n\n        /* Determines the number of bits to encode the quadruples. */\n        cod_info2.assign(gi);\n        cod_info2.count1 = i;\n        var a1 = 0;\n        var a2 = 0;\n\n        assert(i <= 576);\n\n        for (; i > cod_info2.big_values; i -= 4) {\n            var p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2\n                + ix[i - 1];\n            a1 += Tables.t32l[p];\n            a2 += Tables.t33l[p];\n        }\n        cod_info2.big_values = i;\n\n        cod_info2.count1table_select = 0;\n        if (a1 > a2) {\n            a1 = a2;\n            cod_info2.count1table_select = 1;\n        }\n\n        cod_info2.count1bits = a1;\n\n        if (cod_info2.block_type == Encoder.NORM_TYPE)\n            recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n                r0_tbl, r1_tbl);\n        else {\n            /* Count the number of bits necessary to code the bigvalues region. */\n            cod_info2.part2_3_length = a1;\n            a1 = gfc.scalefac_band.l[7 + 1];\n            if (a1 > i) {\n                a1 = i;\n            }\n            if (a1 > 0) {\n                var bi = new Bits(cod_info2.part2_3_length);\n                cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n                cod_info2.part2_3_length = bi.bits;\n            }\n            if (i > a1) {\n                var bi = new Bits(cod_info2.part2_3_length);\n                cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n                cod_info2.part2_3_length = bi.bits;\n            }\n            if (gi.part2_3_length > cod_info2.part2_3_length)\n                gi.assign(cod_info2);\n        }\n    }\n\n    var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n    var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n    var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n    var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n    Takehiro.slen1_tab = slen1_tab;\n    Takehiro.slen2_tab = slen2_tab;\n\n    function scfsi_calc(ch, l3_side) {\n        var sfb;\n        var gi = l3_side.tt[1][ch];\n        var g0 = l3_side.tt[0][ch];\n\n        for (var i = 0; i < Tables.scfsi_band.length - 1; i++) {\n            for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n                if (g0.scalefac[sfb] != gi.scalefac[sfb]\n                    && gi.scalefac[sfb] >= 0)\n                    break;\n            }\n            if (sfb == Tables.scfsi_band[i + 1]) {\n                for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n                    gi.scalefac[sfb] = -1;\n                }\n                l3_side.scfsi[ch][i] = 1;\n            }\n        }\n        var s1 = 0;\n        var c1 = 0;\n        for (sfb = 0; sfb < 11; sfb++) {\n            if (gi.scalefac[sfb] == -1)\n                continue;\n            c1++;\n            if (s1 < gi.scalefac[sfb])\n                s1 = gi.scalefac[sfb];\n        }\n        var s2 = 0;\n        var c2 = 0;\n        for (; sfb < Encoder.SBPSY_l; sfb++) {\n            if (gi.scalefac[sfb] == -1)\n                continue;\n            c2++;\n            if (s2 < gi.scalefac[sfb])\n                s2 = gi.scalefac[sfb];\n        }\n\n        for (var i = 0; i < 16; i++) {\n            if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n                var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n                if (gi.part2_length > c) {\n                    gi.part2_length = c;\n                    gi.scalefac_compress = i;\n                }\n            }\n        }\n    }\n\n    /**\n     * Find the optimal way to store the scalefactors. Only call this routine\n     * after final scalefactors have been chosen and the channel/granule will\n     * not be re-encoded.\n     */\n    this.best_scalefac_store = function (gfc, gr, ch, l3_side) {\n        /* use scalefac_scale if we can */\n        var gi = l3_side.tt[gr][ch];\n        var sfb, i, j, l;\n        var recalc = 0;\n\n        /*\n         * remove scalefacs from bands with ix=0. This idea comes from the AAC\n         * ISO docs. added mt 3/00\n         */\n        /* check if l3_enc=0 */\n        j = 0;\n        for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n            var width = gi.width[sfb];\n            assert(width >= 0);\n            j += width;\n            for (l = -width; l < 0; l++) {\n                if (gi.l3_enc[l + j] != 0)\n                    break;\n            }\n            if (l == 0)\n                gi.scalefac[sfb] = recalc = -2;\n            /* anything goes. */\n            /*\n             * only best_scalefac_store and calc_scfsi know--and only they\n             * should know--about the magic number -2.\n             */\n        }\n\n        if (0 == gi.scalefac_scale && 0 == gi.preflag) {\n            var s = 0;\n            for (sfb = 0; sfb < gi.sfbmax; sfb++)\n                if (gi.scalefac[sfb] > 0)\n                    s |= gi.scalefac[sfb];\n\n            if (0 == (s & 1) && s != 0) {\n                for (sfb = 0; sfb < gi.sfbmax; sfb++)\n                    if (gi.scalefac[sfb] > 0)\n                        gi.scalefac[sfb] >>= 1;\n\n                gi.scalefac_scale = recalc = 1;\n            }\n        }\n\n        if (0 == gi.preflag && gi.block_type != Encoder.SHORT_TYPE\n            && gfc.mode_gr == 2) {\n            for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n                if (gi.scalefac[sfb] < qupvt.pretab[sfb]\n                    && gi.scalefac[sfb] != -2)\n                    break;\n            if (sfb == Encoder.SBPSY_l) {\n                for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n                    if (gi.scalefac[sfb] > 0)\n                        gi.scalefac[sfb] -= qupvt.pretab[sfb];\n\n                gi.preflag = recalc = 1;\n            }\n        }\n\n        for (i = 0; i < 4; i++)\n            l3_side.scfsi[ch][i] = 0;\n\n        if (gfc.mode_gr == 2 && gr == 1\n            && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE\n            && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n            scfsi_calc(ch, l3_side);\n            recalc = 0;\n        }\n        for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n            if (gi.scalefac[sfb] == -2) {\n                gi.scalefac[sfb] = 0;\n                /* if anything goes, then 0 is a good choice */\n            }\n        }\n        if (recalc != 0) {\n            if (gfc.mode_gr == 2) {\n                this.scale_bitcount(gi);\n            } else {\n                this.scale_bitcount_lsf(gfc, gi);\n            }\n        }\n    }\n\n    function all_scalefactors_not_negative(scalefac, n) {\n        for (var i = 0; i < n; ++i) {\n            if (scalefac[i] < 0)\n                return false;\n        }\n        return true;\n    }\n\n    /**\n     * number of bits used to encode scalefacs.\n     *\n     * 18*slen1_tab[i] + 18*slen2_tab[i]\n     */\n    var scale_short = [0, 18, 36, 54, 54, 36, 54, 72,\n        54, 72, 90, 72, 90, 108, 108, 126];\n\n    /**\n     * number of bits used to encode scalefacs.\n     *\n     * 17*slen1_tab[i] + 18*slen2_tab[i]\n     */\n    var scale_mixed = [0, 18, 36, 54, 51, 35, 53, 71,\n        52, 70, 88, 69, 87, 105, 104, 122];\n\n    /**\n     * number of bits used to encode scalefacs.\n     *\n     * 11*slen1_tab[i] + 10*slen2_tab[i]\n     */\n    var scale_long = [0, 10, 20, 30, 33, 21, 31, 41, 32, 42,\n        52, 43, 53, 63, 64, 74];\n\n    /**\n     * Also calculates the number of bits necessary to code the scalefactors.\n     */\n    this.scale_bitcount = function (cod_info) {\n        var k, sfb, max_slen1 = 0, max_slen2 = 0;\n\n        /* maximum values */\n        var tab;\n        var scalefac = cod_info.scalefac;\n\n        assert(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n\n        if (cod_info.block_type == Encoder.SHORT_TYPE) {\n            tab = scale_short;\n            if (cod_info.mixed_block_flag != 0)\n                tab = scale_mixed;\n        } else { /* block_type == 1,2,or 3 */\n            tab = scale_long;\n            if (0 == cod_info.preflag) {\n                for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n                    if (scalefac[sfb] < qupvt.pretab[sfb])\n                        break;\n\n                if (sfb == Encoder.SBPSY_l) {\n                    cod_info.preflag = 1;\n                    for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n                        scalefac[sfb] -= qupvt.pretab[sfb];\n                }\n            }\n        }\n\n        for (sfb = 0; sfb < cod_info.sfbdivide; sfb++)\n            if (max_slen1 < scalefac[sfb])\n                max_slen1 = scalefac[sfb];\n\n        for (; sfb < cod_info.sfbmax; sfb++)\n            if (max_slen2 < scalefac[sfb])\n                max_slen2 = scalefac[sfb];\n\n        /*\n         * from Takehiro TOMINAGA <tominaga@isoternet.org> 10/99 loop over *all*\n         * posible values of scalefac_compress to find the one which uses the\n         * smallest number of bits. ISO would stop at first valid index\n         */\n        cod_info.part2_length = QuantizePVT.LARGE_BITS;\n        for (k = 0; k < 16; k++) {\n            if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k]\n                && cod_info.part2_length > tab[k]) {\n                cod_info.part2_length = tab[k];\n                cod_info.scalefac_compress = k;\n            }\n        }\n        return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n    }\n\n    /**\n     * table of largest scalefactor values for MPEG2\n     */\n    var max_range_sfac_tab = [[15, 15, 7, 7],\n        [15, 15, 7, 0], [7, 3, 0, 0], [15, 31, 31, 0],\n        [7, 7, 7, 0], [3, 3, 0, 0]];\n\n    /**\n     * Also counts the number of bits to encode the scalefacs but for MPEG 2\n     * Lower sampling frequencies (24, 22.05 and 16 kHz.)\n     *\n     * This is reverse-engineered from section 2.4.3.2 of the MPEG2 IS,\n     * \"Audio Decoding Layer III\"\n     */\n    this.scale_bitcount_lsf = function (gfc, cod_info) {\n        var table_number, row_in_table, partition, nr_sfb, window;\n        var over;\n        var i, sfb;\n        var max_sfac = new_int(4);\n//var partition_table;\n        var scalefac = cod_info.scalefac;\n\n        /*\n         * Set partition table. Note that should try to use table one, but do\n         * not yet...\n         */\n        if (cod_info.preflag != 0)\n            table_number = 2;\n        else\n            table_number = 0;\n\n        for (i = 0; i < 4; i++)\n            max_sfac[i] = 0;\n\n        if (cod_info.block_type == Encoder.SHORT_TYPE) {\n            row_in_table = 1;\n            var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n            for (sfb = 0, partition = 0; partition < 4; partition++) {\n                nr_sfb = partition_table[partition] / 3;\n                for (i = 0; i < nr_sfb; i++, sfb++)\n                    for (window = 0; window < 3; window++)\n                        if (scalefac[sfb * 3 + window] > max_sfac[partition])\n                            max_sfac[partition] = scalefac[sfb * 3 + window];\n            }\n        } else {\n            row_in_table = 0;\n            var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n            for (sfb = 0, partition = 0; partition < 4; partition++) {\n                nr_sfb = partition_table[partition];\n                for (i = 0; i < nr_sfb; i++, sfb++)\n                    if (scalefac[sfb] > max_sfac[partition])\n                        max_sfac[partition] = scalefac[sfb];\n            }\n        }\n\n        for (over = false, partition = 0; partition < 4; partition++) {\n            if (max_sfac[partition] > max_range_sfac_tab[table_number][partition])\n                over = true;\n        }\n        if (!over) {\n            var slen1, slen2, slen3, slen4;\n\n            cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n            for (partition = 0; partition < 4; partition++)\n                cod_info.slen[partition] = log2tab[max_sfac[partition]];\n\n            /* set scalefac_compress */\n            slen1 = cod_info.slen[0];\n            slen2 = cod_info.slen[1];\n            slen3 = cod_info.slen[2];\n            slen4 = cod_info.slen[3];\n\n            switch (table_number) {\n                case 0:\n                    cod_info.scalefac_compress = (((slen1 * 5) + slen2) << 4)\n                        + (slen3 << 2) + slen4;\n                    break;\n\n                case 1:\n                    cod_info.scalefac_compress = 400 + (((slen1 * 5) + slen2) << 2)\n                        + slen3;\n                    break;\n\n                case 2:\n                    cod_info.scalefac_compress = 500 + (slen1 * 3) + slen2;\n                    break;\n\n                default:\n                    System.err.printf(\"intensity stereo not implemented yet\\n\");\n                    break;\n            }\n        }\n        if (!over) {\n            assert(cod_info.sfb_partition_table != null);\n            cod_info.part2_length = 0;\n            for (partition = 0; partition < 4; partition++)\n                cod_info.part2_length += cod_info.slen[partition]\n                    * cod_info.sfb_partition_table[partition];\n        }\n        return over;\n    }\n\n    /*\n     * Since no bands have been over-amplified, we can set scalefac_compress and\n     * slen[] for the formatter\n     */\n    var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,\n        4, 4, 4, 4];\n\n    this.huffman_init = function (gfc) {\n        for (var i = 2; i <= 576; i += 2) {\n            var scfb_anz = 0, bv_index;\n            while (gfc.scalefac_band.l[++scfb_anz] < i)\n                ;\n\n            bv_index = subdv_table[scfb_anz][0]; // .region0_count\n            while (gfc.scalefac_band.l[bv_index + 1] > i)\n                bv_index--;\n\n            if (bv_index < 0) {\n                /*\n                 * this is an indication that everything is going to be encoded\n                 * as region0: bigvalues < region0 < region1 so lets set\n                 * region0, region1 to some value larger than bigvalues\n                 */\n                bv_index = subdv_table[scfb_anz][0]; // .region0_count\n            }\n\n            gfc.bv_scf[i - 2] = bv_index;\n\n            bv_index = subdv_table[scfb_anz][1]; // .region1_count\n            while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i)\n                bv_index--;\n\n            if (bv_index < 0) {\n                bv_index = subdv_table[scfb_anz][1]; // .region1_count\n            }\n\n            gfc.bv_scf[i - 1] = bv_index;\n        }\n    }\n}\n\nmodule.exports = Takehiro;\n\n\n/***/ }),\n\n/***/ \"d9e2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = __webpack_require__(\"23e7\");\nvar global = __webpack_require__(\"da84\");\nvar apply = __webpack_require__(\"2ba4\");\nvar wrapErrorConstructorWithCause = __webpack_require__(\"e5cb\");\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n\n\n/***/ }),\n\n/***/ \"da58\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Database; });\nfunction assertNonEmptyString (str) {\n  if (typeof str !== 'string' || !str) {\n    throw new Error('expected a non-empty string, got: ' + str)\n  }\n}\n\nfunction assertNumber (number) {\n  if (typeof number !== 'number') {\n    throw new Error('expected a number, got: ' + number)\n  }\n}\n\nconst DB_VERSION_CURRENT = 1;\nconst DB_VERSION_INITIAL = 1;\nconst STORE_EMOJI = 'emoji';\nconst STORE_KEYVALUE = 'keyvalue';\nconst STORE_FAVORITES = 'favorites';\nconst FIELD_TOKENS = 'tokens';\nconst INDEX_TOKENS = 'tokens';\nconst FIELD_UNICODE = 'unicode';\nconst INDEX_COUNT = 'count';\nconst FIELD_GROUP = 'group';\nconst FIELD_ORDER = 'order';\nconst INDEX_GROUP_AND_ORDER = 'group-order';\nconst KEY_ETAG = 'eTag';\nconst KEY_URL = 'url';\nconst KEY_PREFERRED_SKINTONE = 'skinTone';\nconst MODE_READONLY = 'readonly';\nconst MODE_READWRITE = 'readwrite';\nconst INDEX_SKIN_UNICODE = 'skinUnicodes';\nconst FIELD_SKIN_UNICODE = 'skinUnicodes';\n\nconst DEFAULT_DATA_SOURCE = 'https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json';\nconst DEFAULT_LOCALE = 'en';\n\n// like lodash's uniqBy but much smaller\nfunction uniqBy (arr, func) {\n  const set = new Set();\n  const res = [];\n  for (const item of arr) {\n    const key = func(item);\n    if (!set.has(key)) {\n      set.add(key);\n      res.push(item);\n    }\n  }\n  return res\n}\n\nfunction uniqEmoji (emojis) {\n  return uniqBy(emojis, _ => _.unicode)\n}\n\nfunction initialMigration (db) {\n  function createObjectStore (name, keyPath, indexes) {\n    const store = keyPath\n      ? db.createObjectStore(name, { keyPath })\n      : db.createObjectStore(name);\n    if (indexes) {\n      for (const [indexName, [keyPath, multiEntry]] of Object.entries(indexes)) {\n        store.createIndex(indexName, keyPath, { multiEntry });\n      }\n    }\n    return store\n  }\n\n  createObjectStore(STORE_KEYVALUE);\n  createObjectStore(STORE_EMOJI, /* keyPath */ FIELD_UNICODE, {\n    [INDEX_TOKENS]: [FIELD_TOKENS, /* multiEntry */ true],\n    [INDEX_GROUP_AND_ORDER]: [[FIELD_GROUP, FIELD_ORDER]],\n    [INDEX_SKIN_UNICODE]: [FIELD_SKIN_UNICODE, /* multiEntry */ true]\n  });\n  createObjectStore(STORE_FAVORITES, undefined, {\n    [INDEX_COUNT]: ['']\n  });\n}\n\nconst openReqs = {};\nconst databaseCache = {};\nconst onCloseListeners = {};\n\nfunction handleOpenOrDeleteReq (resolve, reject, req) {\n  // These things are almost impossible to test with fakeIndexedDB sadly\n  /* istanbul ignore next */\n  req.onerror = () => reject(req.error);\n  /* istanbul ignore next */\n  req.onblocked = () => reject(new Error('IDB blocked'));\n  req.onsuccess = () => resolve(req.result);\n}\n\nasync function createDatabase (dbName) {\n  const db = await new Promise((resolve, reject) => {\n    const req = indexedDB.open(dbName, DB_VERSION_CURRENT);\n    openReqs[dbName] = req;\n    req.onupgradeneeded = e => {\n      // Technically there is only one version, so we don't need this `if` check\n      // But if an old version of the JS is in another browser tab\n      // and it gets upgraded in the future and we have a new DB version, well...\n      // better safe than sorry.\n      /* istanbul ignore else */\n      if (e.oldVersion < DB_VERSION_INITIAL) {\n        initialMigration(req.result);\n      }\n    };\n    handleOpenOrDeleteReq(resolve, reject, req);\n  });\n  // Handle abnormal closes, e.g. \"delete database\" in chrome dev tools.\n  // No need for removeEventListener, because once the DB can no longer\n  // fire \"close\" events, it will auto-GC.\n  // Unfortunately cannot test in fakeIndexedDB: https://github.com/dumbmatter/fakeIndexedDB/issues/50\n  /* istanbul ignore next */\n  db.onclose = () => closeDatabase(dbName);\n  return db\n}\n\nfunction openDatabase (dbName) {\n  if (!databaseCache[dbName]) {\n    databaseCache[dbName] = createDatabase(dbName);\n  }\n  return databaseCache[dbName]\n}\n\nfunction dbPromise (db, storeName, readOnlyOrReadWrite, cb) {\n  return new Promise((resolve, reject) => {\n    // Use relaxed durability because neither the emoji data nor the favorites/preferred skin tone\n    // are really irreplaceable data. IndexedDB is just a cache in this case.\n    const txn = db.transaction(storeName, readOnlyOrReadWrite, { durability: 'relaxed' });\n    const store = typeof storeName === 'string'\n      ? txn.objectStore(storeName)\n      : storeName.map(name => txn.objectStore(name));\n    let res;\n    cb(store, txn, (result) => {\n      res = result;\n    });\n\n    txn.oncomplete = () => resolve(res);\n    /* istanbul ignore next */\n    txn.onerror = () => reject(txn.error);\n  })\n}\n\nfunction closeDatabase (dbName) {\n  // close any open requests\n  const req = openReqs[dbName];\n  const db = req && req.result;\n  if (db) {\n    db.close();\n    const listeners = onCloseListeners[dbName];\n    /* istanbul ignore else */\n    if (listeners) {\n      for (const listener of listeners) {\n        listener();\n      }\n    }\n  }\n  delete openReqs[dbName];\n  delete databaseCache[dbName];\n  delete onCloseListeners[dbName];\n}\n\nfunction deleteDatabase (dbName) {\n  return new Promise((resolve, reject) => {\n    // close any open requests\n    closeDatabase(dbName);\n    const req = indexedDB.deleteDatabase(dbName);\n    handleOpenOrDeleteReq(resolve, reject, req);\n  })\n}\n\n// The \"close\" event occurs during an abnormal shutdown, e.g. a user clearing their browser data.\n// However, it doesn't occur with the normal \"close\" event, so we handle that separately.\n// https://www.w3.org/TR/IndexedDB/#close-a-database-connection\nfunction addOnCloseListener (dbName, listener) {\n  let listeners = onCloseListeners[dbName];\n  if (!listeners) {\n    listeners = onCloseListeners[dbName] = [];\n  }\n  listeners.push(listener);\n}\n\n// list of emoticons that don't match a simple \\W+ regex\n// extracted using:\n// require('emoji-picker-element-data/en/emojibase/data.json').map(_ => _.emoticon).filter(Boolean).filter(_ => !/^\\W+$/.test(_))\nconst irregularEmoticons = new Set([\n  ':D', 'XD', \":'D\", 'O:)',\n  ':X', ':P', ';P', 'XP',\n  ':L', ':Z', ':j', '8D',\n  'XO', '8)', ':B', ':O',\n  ':S', \":'o\", 'Dx', 'X(',\n  'D:', ':C', '>0)', ':3',\n  '</3', '<3', '\\\\M/', ':E',\n  '8#'\n]);\n\nfunction extractTokens (str) {\n  return str\n    .split(/[\\s_]+/)\n    .map(word => {\n      if (!word.match(/\\w/) || irregularEmoticons.has(word)) {\n        // for pure emoticons like :) or :-), just leave them as-is\n        return word.toLowerCase()\n      }\n\n      return word\n        .replace(/[)(:,]/g, '')\n        .replace(/’/g, \"'\")\n        .toLowerCase()\n    }).filter(Boolean)\n}\n\nconst MIN_SEARCH_TEXT_LENGTH = 2;\n\n// This is an extra step in addition to extractTokens(). The difference here is that we expect\n// the input to have already been run through extractTokens(). This is useful for cases like\n// emoticons, where we don't want to do any tokenization (because it makes no sense to split up\n// \">:)\" by the colon) but we do want to lowercase it to have consistent search results, so that\n// the user can type ':P' or ':p' and still get the same result.\nfunction normalizeTokens (str) {\n  return str\n    .filter(Boolean)\n    .map(_ => _.toLowerCase())\n    .filter(_ => _.length >= MIN_SEARCH_TEXT_LENGTH)\n}\n\n// Transform emoji data for storage in IDB\nfunction transformEmojiData (emojiData) {\n  const res = emojiData.map(({ annotation, emoticon, group, order, shortcodes, skins, tags, emoji, version }) => {\n    const tokens = [...new Set(\n      normalizeTokens([\n        ...(shortcodes || []).map(extractTokens).flat(),\n        ...tags.map(extractTokens).flat(),\n        ...extractTokens(annotation),\n        emoticon\n      ])\n    )].sort();\n    const res = {\n      annotation,\n      group,\n      order,\n      tags,\n      tokens,\n      unicode: emoji,\n      version\n    };\n    if (emoticon) {\n      res.emoticon = emoticon;\n    }\n    if (shortcodes) {\n      res.shortcodes = shortcodes;\n    }\n    if (skins) {\n      res.skinTones = [];\n      res.skinUnicodes = [];\n      res.skinVersions = [];\n      for (const { tone, emoji, version } of skins) {\n        res.skinTones.push(tone);\n        res.skinUnicodes.push(emoji);\n        res.skinVersions.push(version);\n      }\n    }\n    return res\n  });\n  return res\n}\n\n// helper functions that help compress the code better\n\nfunction callStore (store, method, key, cb) {\n  store[method](key).onsuccess = e => (cb && cb(e.target.result));\n}\n\nfunction getIDB (store, key, cb) {\n  callStore(store, 'get', key, cb);\n}\n\nfunction getAllIDB (store, key, cb) {\n  callStore(store, 'getAll', key, cb);\n}\n\nfunction commit (txn) {\n  /* istanbul ignore else */\n  if (txn.commit) {\n    txn.commit();\n  }\n}\n\n// like lodash's minBy\nfunction minBy (array, func) {\n  let minItem = array[0];\n  for (let i = 1; i < array.length; i++) {\n    const item = array[i];\n    if (func(minItem) > func(item)) {\n      minItem = item;\n    }\n  }\n  return minItem\n}\n\n// return an array of results representing all items that are found in each one of the arrays\n\nfunction findCommonMembers (arrays, uniqByFunc) {\n  const shortestArray = minBy(arrays, _ => _.length);\n  const results = [];\n  for (const item of shortestArray) {\n    // if this item is included in every array in the intermediate results, add it to the final results\n    if (!arrays.some(array => array.findIndex(_ => uniqByFunc(_) === uniqByFunc(item)) === -1)) {\n      results.push(item);\n    }\n  }\n  return results\n}\n\nasync function isEmpty (db) {\n  return !(await get(db, STORE_KEYVALUE, KEY_URL))\n}\n\nasync function hasData (db, url, eTag) {\n  const [oldETag, oldUrl] = await Promise.all([KEY_ETAG, KEY_URL]\n    .map(key => get(db, STORE_KEYVALUE, key)));\n  return (oldETag === eTag && oldUrl === url)\n}\n\nasync function doFullDatabaseScanForSingleResult (db, predicate) {\n  // This batching algorithm is just a perf improvement over a basic\n  // cursor. The BATCH_SIZE is an estimate of what would give the best\n  // perf for doing a full DB scan (worst case).\n  //\n  // Mini-benchmark for determining the best batch size:\n  //\n  // PERF=1 yarn build:rollup && yarn test:adhoc\n  //\n  // (async () => {\n  //   performance.mark('start')\n  //   await $('emoji-picker').database.getEmojiByShortcode('doesnotexist')\n  //   performance.measure('total', 'start')\n  //   console.log(performance.getEntriesByName('total').slice(-1)[0].duration)\n  // })()\n  const BATCH_SIZE = 50; // Typically around 150ms for 6x slowdown in Chrome for above benchmark\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    let lastKey;\n\n    const processNextBatch = () => {\n      emojiStore.getAll(lastKey && IDBKeyRange.lowerBound(lastKey, true), BATCH_SIZE).onsuccess = e => {\n        const results = e.target.result;\n        for (const result of results) {\n          lastKey = result.unicode;\n          if (predicate(result)) {\n            return cb(result)\n          }\n        }\n        if (results.length < BATCH_SIZE) {\n          return cb()\n        }\n        processNextBatch();\n      };\n    };\n    processNextBatch();\n  })\n}\n\nasync function loadData (db, emojiData, url, eTag) {\n  try {\n    const transformedData = transformEmojiData(emojiData);\n    await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore], txn) => {\n      let oldETag;\n      let oldUrl;\n      let todo = 0;\n\n      function checkFetched () {\n        if (++todo === 2) { // 2 requests made\n          onFetched();\n        }\n      }\n\n      function onFetched () {\n        if (oldETag === eTag && oldUrl === url) {\n          // check again within the transaction to guard against concurrency, e.g. multiple browser tabs\n          return\n        }\n        // delete old data\n        emojiStore.clear();\n        // insert new data\n        for (const data of transformedData) {\n          emojiStore.put(data);\n        }\n        metaStore.put(eTag, KEY_ETAG);\n        metaStore.put(url, KEY_URL);\n        commit(txn);\n      }\n\n      getIDB(metaStore, KEY_ETAG, result => {\n        oldETag = result;\n        checkFetched();\n      });\n\n      getIDB(metaStore, KEY_URL, result => {\n        oldUrl = result;\n        checkFetched();\n      });\n    });\n  } finally {\n  }\n}\n\nasync function getEmojiByGroup (db, group) {\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    const range = IDBKeyRange.bound([group, 0], [group + 1, 0], false, true);\n    getAllIDB(emojiStore.index(INDEX_GROUP_AND_ORDER), range, cb);\n  })\n}\n\nasync function getEmojiBySearchQuery (db, query) {\n  const tokens = normalizeTokens(extractTokens(query));\n\n  if (!tokens.length) {\n    return []\n  }\n\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    // get all results that contain all tokens (i.e. an AND query)\n    const intermediateResults = [];\n\n    const checkDone = () => {\n      if (intermediateResults.length === tokens.length) {\n        onDone();\n      }\n    };\n\n    const onDone = () => {\n      const results = findCommonMembers(intermediateResults, _ => _.unicode);\n      cb(results.sort((a, b) => a.order < b.order ? -1 : 1));\n    };\n\n    for (let i = 0; i < tokens.length; i++) {\n      const token = tokens[i];\n      const range = i === tokens.length - 1\n        ? IDBKeyRange.bound(token, token + '\\uffff', false, true) // treat last token as a prefix search\n        : IDBKeyRange.only(token); // treat all other tokens as an exact match\n      getAllIDB(emojiStore.index(INDEX_TOKENS), range, result => {\n        intermediateResults.push(result);\n        checkDone();\n      });\n    }\n  })\n}\n\n// This could have been implemented as an IDB index on shortcodes, but it seemed wasteful to do that\n// when we can already query by tokens and this will give us what we're looking for 99.9% of the time\nasync function getEmojiByShortcode (db, shortcode) {\n  const emojis = await getEmojiBySearchQuery(db, shortcode);\n\n  // In very rare cases (e.g. the shortcode \"v\" as in \"v for victory\"), we cannot search because\n  // there are no usable tokens (too short in this case). In that case, we have to do an inefficient\n  // full-database scan, which I believe is an acceptable tradeoff for not having to have an extra\n  // index on shortcodes.\n\n  if (!emojis.length) {\n    const predicate = _ => ((_.shortcodes || []).includes(shortcode.toLowerCase()));\n    return (await doFullDatabaseScanForSingleResult(db, predicate)) || null\n  }\n\n  return emojis.filter(_ => {\n    const lowerShortcodes = (_.shortcodes || []).map(_ => _.toLowerCase());\n    return lowerShortcodes.includes(shortcode.toLowerCase())\n  })[0] || null\n}\n\nasync function getEmojiByUnicode (db, unicode) {\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => (\n    getIDB(emojiStore, unicode, result => {\n      if (result) {\n        return cb(result)\n      }\n      getIDB(emojiStore.index(INDEX_SKIN_UNICODE), unicode, result => cb(result || null));\n    })\n  ))\n}\n\nfunction get (db, storeName, key) {\n  return dbPromise(db, storeName, MODE_READONLY, (store, txn, cb) => (\n    getIDB(store, key, cb)\n  ))\n}\n\nfunction set (db, storeName, key, value) {\n  return dbPromise(db, storeName, MODE_READWRITE, (store, txn) => {\n    store.put(value, key);\n    commit(txn);\n  })\n}\n\nfunction incrementFavoriteEmojiCount (db, unicode) {\n  return dbPromise(db, STORE_FAVORITES, MODE_READWRITE, (store, txn) => (\n    getIDB(store, unicode, result => {\n      store.put((result || 0) + 1, unicode);\n      commit(txn);\n    })\n  ))\n}\n\nfunction getTopFavoriteEmoji (db, customEmojiIndex, limit) {\n  if (limit === 0) {\n    return []\n  }\n  return dbPromise(db, [STORE_FAVORITES, STORE_EMOJI], MODE_READONLY, ([favoritesStore, emojiStore], txn, cb) => {\n    const results = [];\n    favoritesStore.index(INDEX_COUNT).openCursor(undefined, 'prev').onsuccess = e => {\n      const cursor = e.target.result;\n      if (!cursor) { // no more results\n        return cb(results)\n      }\n\n      function addResult (result) {\n        results.push(result);\n        if (results.length === limit) {\n          return cb(results) // done, reached the limit\n        }\n        cursor.continue();\n      }\n\n      const unicodeOrName = cursor.primaryKey;\n      const custom = customEmojiIndex.byName(unicodeOrName);\n      if (custom) {\n        return addResult(custom)\n      }\n      // This could be done in parallel (i.e. make the cursor and the get()s parallelized),\n      // but my testing suggests it's not actually faster.\n      getIDB(emojiStore, unicodeOrName, emoji => {\n        if (emoji) {\n          return addResult(emoji)\n        }\n        // emoji not found somehow, ignore (may happen if custom emoji change)\n        cursor.continue();\n      });\n    };\n  })\n}\n\n// trie data structure for prefix searches\n// loosely based on https://github.com/nolanlawson/substring-trie\n\nconst CODA_MARKER = ''; // marks the end of the string\n\nfunction trie (arr, itemToTokens) {\n  const map = new Map();\n  for (const item of arr) {\n    const tokens = itemToTokens(item);\n    for (const token of tokens) {\n      let currentMap = map;\n      for (let i = 0; i < token.length; i++) {\n        const char = token.charAt(i);\n        let nextMap = currentMap.get(char);\n        if (!nextMap) {\n          nextMap = new Map();\n          currentMap.set(char, nextMap);\n        }\n        currentMap = nextMap;\n      }\n      let valuesAtCoda = currentMap.get(CODA_MARKER);\n      if (!valuesAtCoda) {\n        valuesAtCoda = [];\n        currentMap.set(CODA_MARKER, valuesAtCoda);\n      }\n      valuesAtCoda.push(item);\n    }\n  }\n\n  const search = (query, exact) => {\n    let currentMap = map;\n    for (let i = 0; i < query.length; i++) {\n      const char = query.charAt(i);\n      const nextMap = currentMap.get(char);\n      if (nextMap) {\n        currentMap = nextMap;\n      } else {\n        return []\n      }\n    }\n\n    if (exact) {\n      const results = currentMap.get(CODA_MARKER);\n      return results || []\n    }\n\n    const results = [];\n    // traverse\n    const queue = [currentMap];\n    while (queue.length) {\n      const currentMap = queue.shift();\n      const entriesSortedByKey = [...currentMap.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1);\n      for (const [key, value] of entriesSortedByKey) {\n        if (key === CODA_MARKER) { // CODA_MARKER always comes first; it's the empty string\n          results.push(...value);\n        } else {\n          queue.push(value);\n        }\n      }\n    }\n    return results\n  };\n\n  return search\n}\n\nconst requiredKeys$1 = [\n  'name',\n  'url'\n];\n\nfunction assertCustomEmojis (customEmojis) {\n  const isArray = customEmojis && Array.isArray(customEmojis);\n  const firstItemIsFaulty = isArray &&\n    customEmojis.length &&\n    (!customEmojis[0] || requiredKeys$1.some(key => !(key in customEmojis[0])));\n  if (!isArray || firstItemIsFaulty) {\n    throw new Error('Custom emojis are in the wrong format')\n  }\n}\n\nfunction customEmojiIndex (customEmojis) {\n  assertCustomEmojis(customEmojis);\n\n  const sortByName = (a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n\n  //\n  // all()\n  //\n  const all = customEmojis.sort(sortByName);\n\n  //\n  // search()\n  //\n  const emojiToTokens = emoji => (\n    [...new Set((emoji.shortcodes || []).map(shortcode => extractTokens(shortcode)).flat())]\n  );\n  const searchTrie = trie(customEmojis, emojiToTokens);\n  const searchByExactMatch = _ => searchTrie(_, true);\n  const searchByPrefix = _ => searchTrie(_, false);\n\n  // Search by query for custom emoji. Similar to how we do this in IDB, the last token\n  // is treated as a prefix search, but every other one is treated as an exact match.\n  // Then we AND the results together\n  const search = query => {\n    const tokens = extractTokens(query);\n    const intermediateResults = tokens.map((token, i) => (\n      (i < tokens.length - 1 ? searchByExactMatch : searchByPrefix)(token)\n    ));\n    return findCommonMembers(intermediateResults, _ => _.name).sort(sortByName)\n  };\n\n  //\n  // byShortcode, byName\n  //\n  const shortcodeToEmoji = new Map();\n  const nameToEmoji = new Map();\n  for (const customEmoji of customEmojis) {\n    nameToEmoji.set(customEmoji.name.toLowerCase(), customEmoji);\n    for (const shortcode of (customEmoji.shortcodes || [])) {\n      shortcodeToEmoji.set(shortcode.toLowerCase(), customEmoji);\n    }\n  }\n\n  const byShortcode = shortcode => shortcodeToEmoji.get(shortcode.toLowerCase());\n  const byName = name => nameToEmoji.get(name.toLowerCase());\n\n  return {\n    all,\n    search,\n    byShortcode,\n    byName\n  }\n}\n\n// remove some internal implementation details, i.e. the \"tokens\" array on the emoji object\n// essentially, convert the emoji from the version stored in IDB to the version used in-memory\nfunction cleanEmoji (emoji) {\n  if (!emoji) {\n    return emoji\n  }\n  delete emoji.tokens;\n  if (emoji.skinTones) {\n    const len = emoji.skinTones.length;\n    emoji.skins = Array(len);\n    for (let i = 0; i < len; i++) {\n      emoji.skins[i] = {\n        tone: emoji.skinTones[i],\n        unicode: emoji.skinUnicodes[i],\n        version: emoji.skinVersions[i]\n      };\n    }\n    delete emoji.skinTones;\n    delete emoji.skinUnicodes;\n    delete emoji.skinVersions;\n  }\n  return emoji\n}\n\nfunction warnETag (eTag) {\n  if (!eTag) {\n    console.warn('emoji-picker-element is more efficient if the dataSource server exposes an ETag header.');\n  }\n}\n\nconst requiredKeys = [\n  'annotation',\n  'emoji',\n  'group',\n  'order',\n  'tags',\n  'version'\n];\n\nfunction assertEmojiData (emojiData) {\n  if (!emojiData ||\n    !Array.isArray(emojiData) ||\n    !emojiData[0] ||\n    (typeof emojiData[0] !== 'object') ||\n    requiredKeys.some(key => (!(key in emojiData[0])))) {\n    throw new Error('Emoji data is in the wrong format')\n  }\n}\n\nfunction assertStatus (response, dataSource) {\n  if (Math.floor(response.status / 100) !== 2) {\n    throw new Error('Failed to fetch: ' + dataSource + ':  ' + response.status)\n  }\n}\n\nasync function getETag (dataSource) {\n  const response = await fetch(dataSource, { method: 'HEAD' });\n  assertStatus(response, dataSource);\n  const eTag = response.headers.get('etag');\n  warnETag(eTag);\n  return eTag\n}\n\nasync function getETagAndData (dataSource) {\n  const response = await fetch(dataSource);\n  assertStatus(response, dataSource);\n  const eTag = response.headers.get('etag');\n  warnETag(eTag);\n  const emojiData = await response.json();\n  assertEmojiData(emojiData);\n  return [eTag, emojiData]\n}\n\n// TODO: including these in blob-util.ts causes typedoc to generate docs for them,\n/**\n * Convert an `ArrayBuffer` to a binary string.\n *\n * Example:\n *\n * ```js\n * var myString = blobUtil.arrayBufferToBinaryString(arrayBuff)\n * ```\n *\n * @param buffer - array buffer\n * @returns binary string\n */\nfunction arrayBufferToBinaryString(buffer) {\n    var binary = '';\n    var bytes = new Uint8Array(buffer);\n    var length = bytes.byteLength;\n    var i = -1;\n    while (++i < length) {\n        binary += String.fromCharCode(bytes[i]);\n    }\n    return binary;\n}\n/**\n * Convert a binary string to an `ArrayBuffer`.\n *\n * ```js\n * var myBuffer = blobUtil.binaryStringToArrayBuffer(binaryString)\n * ```\n *\n * @param binary - binary string\n * @returns array buffer\n */\nfunction binaryStringToArrayBuffer(binary) {\n    var length = binary.length;\n    var buf = new ArrayBuffer(length);\n    var arr = new Uint8Array(buf);\n    var i = -1;\n    while (++i < length) {\n        arr[i] = binary.charCodeAt(i);\n    }\n    return buf;\n}\n\n// generate a checksum based on the stringified JSON\nasync function jsonChecksum (object) {\n  const inString = JSON.stringify(object);\n  const inBuffer = binaryStringToArrayBuffer(inString);\n  // this does not need to be cryptographically secure, SHA-1 is fine\n  const outBuffer = await crypto.subtle.digest('SHA-1', inBuffer);\n  const outBinString = arrayBufferToBinaryString(outBuffer);\n  const res = btoa(outBinString);\n  return res\n}\n\nasync function checkForUpdates (db, dataSource) {\n  // just do a simple HEAD request first to see if the eTags match\n  let emojiData;\n  let eTag = await getETag(dataSource);\n  if (!eTag) { // work around lack of ETag/Access-Control-Expose-Headers\n    const eTagAndData = await getETagAndData(dataSource);\n    eTag = eTagAndData[0];\n    emojiData = eTagAndData[1];\n    if (!eTag) {\n      eTag = await jsonChecksum(emojiData);\n    }\n  }\n  if (await hasData(db, dataSource, eTag)) ; else {\n    if (!emojiData) {\n      const eTagAndData = await getETagAndData(dataSource);\n      emojiData = eTagAndData[1];\n    }\n    await loadData(db, emojiData, dataSource, eTag);\n  }\n}\n\nasync function loadDataForFirstTime (db, dataSource) {\n  let [eTag, emojiData] = await getETagAndData(dataSource);\n  if (!eTag) {\n    // Handle lack of support for ETag or Access-Control-Expose-Headers\n    // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers#Browser_compatibility\n    eTag = await jsonChecksum(emojiData);\n  }\n\n  await loadData(db, emojiData, dataSource, eTag);\n}\n\nclass Database {\n  constructor ({ dataSource = DEFAULT_DATA_SOURCE, locale = DEFAULT_LOCALE, customEmoji = [] } = {}) {\n    this.dataSource = dataSource;\n    this.locale = locale;\n    this._dbName = `emoji-picker-element-${this.locale}`;\n    this._db = undefined;\n    this._lazyUpdate = undefined;\n    this._custom = customEmojiIndex(customEmoji);\n\n    this._clear = this._clear.bind(this);\n    this._ready = this._init();\n  }\n\n  async _init () {\n    const db = this._db = await openDatabase(this._dbName);\n\n    addOnCloseListener(this._dbName, this._clear);\n    const dataSource = this.dataSource;\n    const empty = await isEmpty(db);\n\n    if (empty) {\n      await loadDataForFirstTime(db, dataSource);\n    } else { // offline-first - do an update asynchronously\n      this._lazyUpdate = checkForUpdates(db, dataSource);\n    }\n  }\n\n  async ready () {\n    const checkReady = async () => {\n      if (!this._ready) {\n        this._ready = this._init();\n      }\n      return this._ready\n    };\n    await checkReady();\n    // There's a possibility of a race condition where the element gets added, removed, and then added again\n    // with a particular timing, which would set the _db to undefined.\n    // We *could* do a while loop here, but that seems excessive and could lead to an infinite loop.\n    if (!this._db) {\n      await checkReady();\n    }\n  }\n\n  async getEmojiByGroup (group) {\n    assertNumber(group);\n    await this.ready();\n    return uniqEmoji(await getEmojiByGroup(this._db, group)).map(cleanEmoji)\n  }\n\n  async getEmojiBySearchQuery (query) {\n    assertNonEmptyString(query);\n    await this.ready();\n    const customs = this._custom.search(query);\n    const natives = uniqEmoji(await getEmojiBySearchQuery(this._db, query)).map(cleanEmoji);\n    return [\n      ...customs,\n      ...natives\n    ]\n  }\n\n  async getEmojiByShortcode (shortcode) {\n    assertNonEmptyString(shortcode);\n    await this.ready();\n    const custom = this._custom.byShortcode(shortcode);\n    if (custom) {\n      return custom\n    }\n    return cleanEmoji(await getEmojiByShortcode(this._db, shortcode))\n  }\n\n  async getEmojiByUnicodeOrName (unicodeOrName) {\n    assertNonEmptyString(unicodeOrName);\n    await this.ready();\n    const custom = this._custom.byName(unicodeOrName);\n    if (custom) {\n      return custom\n    }\n    return cleanEmoji(await getEmojiByUnicode(this._db, unicodeOrName))\n  }\n\n  async getPreferredSkinTone () {\n    await this.ready();\n    return (await get(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE)) || 0\n  }\n\n  async setPreferredSkinTone (skinTone) {\n    assertNumber(skinTone);\n    await this.ready();\n    return set(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE, skinTone)\n  }\n\n  async incrementFavoriteEmojiCount (unicodeOrName) {\n    assertNonEmptyString(unicodeOrName);\n    await this.ready();\n    return incrementFavoriteEmojiCount(this._db, unicodeOrName)\n  }\n\n  async getTopFavoriteEmoji (limit) {\n    assertNumber(limit);\n    await this.ready();\n    return (await getTopFavoriteEmoji(this._db, this._custom, limit)).map(cleanEmoji)\n  }\n\n  set customEmoji (customEmojis) {\n    this._custom = customEmojiIndex(customEmojis);\n  }\n\n  get customEmoji () {\n    return this._custom.all\n  }\n\n  async _shutdown () {\n    await this.ready(); // reopen if we've already been closed/deleted\n    try {\n      await this._lazyUpdate; // allow any lazy updates to process before closing/deleting\n    } catch (err) { /* ignore network errors (offline-first) */ }\n  }\n\n  // clear references to IDB, e.g. during a close event\n  _clear () {\n    // We don't need to call removeEventListener or remove the manual \"close\" listeners.\n    // The memory leak tests prove this is unnecessary. It's because:\n    // 1) IDBDatabases that can no longer fire \"close\" automatically have listeners GCed\n    // 2) we clear the manual close listeners in databaseLifecycle.js.\n    this._db = this._ready = this._lazyUpdate = undefined;\n  }\n\n  async close () {\n    await this._shutdown();\n    await closeDatabase(this._dbName);\n  }\n\n  async delete () {\n    await this._shutdown();\n    await deleteDatabase(this._dbName);\n  }\n}\n\n\n\n\n/***/ }),\n\n/***/ \"da84\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es-x/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"db3f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nLame = __webpack_require__(\"dead\");\nPresets = __webpack_require__(\"3967\");\nGainAnalysis = __webpack_require__(\"2f21\");\nQuantizePVT = __webpack_require__(\"bb22\");\nQuantize = __webpack_require__(\"dbb1\");\nTakehiro = __webpack_require__(\"d9be\");\nReservoir = __webpack_require__(\"58b1\");\nMPEGMode = __webpack_require__(\"67b2\");\nBitStream = __webpack_require__(\"69b2\");\nvar Encoder = __webpack_require__(\"4b5e\");\nvar Version = __webpack_require__(\"8cba\");\nvar VBRTag = __webpack_require__(\"e107\");\n\nfunction GetAudio() {\n    var parse;\n    var mpg;\n\n    this.setModules = function (parse2, mpg2) {\n        parse = parse2;\n        mpg = mpg2;\n    }\n}\n\n\nfunction Parse() {\n    var ver;\n    var id3;\n    var pre;\n\n    this.setModules = function (ver2, id32, pre2) {\n        ver = ver2;\n        id3 = id32;\n        pre = pre2;\n    }\n}\n\nfunction MPGLib() {\n}\n\nfunction ID3Tag() {\n    var bits;\n    var ver;\n\n    this.setModules = function (_bits, _ver) {\n        bits = _bits;\n        ver = _ver;\n    }\n}\n\nfunction Mp3Encoder(channels, samplerate, kbps) {\n    if (arguments.length != 3) {\n        console.error('WARN: Mp3Encoder(channels, samplerate, kbps) not specified');\n        channels = 1;\n        samplerate = 44100;\n        kbps = 128;\n    }\n    var lame = new Lame();\n    var gaud = new GetAudio();\n    var ga = new GainAnalysis();\n    var bs = new BitStream();\n    var p = new Presets();\n    var qupvt = new QuantizePVT();\n    var qu = new Quantize();\n    var vbr = new VBRTag();\n    var ver = new Version();\n    var id3 = new ID3Tag();\n    var rv = new Reservoir();\n    var tak = new Takehiro();\n    var parse = new Parse();\n    var mpg = new MPGLib();\n\n    lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg);\n    bs.setModules(ga, mpg, ver, vbr);\n    id3.setModules(bs, ver);\n    p.setModules(lame);\n    qu.setModules(bs, rv, qupvt, tak);\n    qupvt.setModules(tak, rv, lame.enc.psy);\n    rv.setModules(bs);\n    tak.setModules(qupvt);\n    vbr.setModules(lame, bs, ver);\n    gaud.setModules(parse, mpg);\n    parse.setModules(ver, id3, p);\n\n    var gfp = lame.lame_init();\n\n    gfp.num_channels = channels;\n    gfp.in_samplerate = samplerate;\n    gfp.brate = kbps;\n    gfp.mode = MPEGMode.STEREO;\n    gfp.quality = 3;\n    gfp.bWriteVbrTag = false;\n    gfp.disable_reservoir = true;\n    gfp.write_id3tag_automatic = false;\n\n    var retcode = lame.lame_init_params(gfp);\n    assert(0 == retcode);\n    var maxSamples = 1152;\n    var mp3buf_size = 0 | (1.25 * maxSamples + 7200);\n    var mp3buf = new_byte(mp3buf_size);\n\n    this.encodeBuffer = function (left, right) {\n        if (channels == 1) {\n            right = left;\n        }\n        assert(left.length == right.length);\n        if (left.length > maxSamples) {\n            maxSamples = left.length;\n            mp3buf_size = 0 | (1.25 * maxSamples + 7200);\n            mp3buf = new_byte(mp3buf_size);\n        }\n\n        var _sz = lame.lame_encode_buffer(gfp, left, right, left.length, mp3buf, 0, mp3buf_size);\n        return new Int8Array(mp3buf.subarray(0, _sz));\n    };\n\n    this.flush = function () {\n        var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n        return new Int8Array(mp3buf.subarray(0, _sz));\n    };\n}\n\nfunction WavHeader() {\n    this.dataOffset = 0;\n    this.dataLen = 0;\n    this.channels = 0;\n    this.sampleRate = 0;\n}\n\nfunction fourccToInt(fourcc) {\n    return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\n\nWavHeader.RIFF = fourccToInt(\"RIFF\");\nWavHeader.WAVE = fourccToInt(\"WAVE\");\nWavHeader.fmt_ = fourccToInt(\"fmt \");\nWavHeader.data = fourccToInt(\"data\");\n\nWavHeader.readHeader = function (dataView) {\n    var w = new WavHeader();\n\n    var header = dataView.getUint32(0, false);\n    if (WavHeader.RIFF != header) {\n        return;\n    }\n    var fileLen = dataView.getUint32(4, true);\n    if (WavHeader.WAVE != dataView.getUint32(8, false)) {\n        return;\n    }\n    if (WavHeader.fmt_ != dataView.getUint32(12, false)) {\n        return;\n    }\n    var fmtLen = dataView.getUint32(16, true);\n    var pos = 16 + 4;\n    switch (fmtLen) {\n        case 16:\n        case 18:\n            w.channels = dataView.getUint16(pos + 2, true);\n            w.sampleRate = dataView.getUint32(pos + 4, true);\n            break;\n        default:\n            throw 'extended fmt chunk not implemented';\n    }\n    pos += fmtLen;\n    var data = WavHeader.data;\n    var len = 0;\n    while (data != header) {\n        header = dataView.getUint32(pos, false);\n        len = dataView.getUint32(pos + 4, true);\n        if (data == header) {\n            break;\n        }\n        pos += (len + 8);\n    }\n    w.dataLen = len;\n    w.dataOffset = pos + 8;\n    return w;\n};\n\nmodule.exports.Mp3Encoder = Mp3Encoder;\nmodule.exports.WavHeader = WavHeader;\n\n\n/***/ }),\n\n/***/ \"dbb1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * MP3 quantization\n *\n *      Copyright (c) 1999-2000 Mark Taylor\n *      Copyright (c) 1999-2003 Takehiro Tominaga\n *      Copyright (c) 2000-2007 Robert Hegemann\n *      Copyright (c) 2001-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Quantize.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar VBRQuantize = __webpack_require__(\"a26a\");\nvar CalcNoiseResult = __webpack_require__(\"7276\");\nvar CalcNoiseData = __webpack_require__(\"09e6\");\nvar Encoder = __webpack_require__(\"4b5e\");\nvar GrInfo = __webpack_require__(\"f3b5\");\nvar L3Side = __webpack_require__(\"9828\");\n\nfunction Quantize() {\n    var bs;\n    this.rv = null;\n    var rv;\n    this.qupvt = null;\n    var qupvt;\n\n    var vbr = new VBRQuantize();\n    var tk;\n\n    this.setModules = function (_bs, _rv, _qupvt, _tk) {\n        bs = _bs;\n        rv = _rv;\n        this.rv = _rv;\n        qupvt = _qupvt;\n        this.qupvt = _qupvt;\n        tk = _tk;\n        vbr.setModules(qupvt, tk);\n    }\n\n    /**\n     * convert from L/R <. Mid/Side\n     */\n    this.ms_convert = function (l3_side, gr) {\n        for (var i = 0; i < 576; ++i) {\n            var l = l3_side.tt[gr][0].xr[i];\n            var r = l3_side.tt[gr][1].xr[i];\n            l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n            l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n        }\n    };\n\n    /**\n     * mt 6/99\n     *\n     * initializes cod_info, scalefac and xrpow\n     *\n     * returns 0 if all energies in xr are zero, else 1\n     */\n    function init_xrpow_core(cod_info, xrpow, upper, sum) {\n        sum = 0;\n        for (var i = 0; i <= upper; ++i) {\n            var tmp = Math.abs(cod_info.xr[i]);\n            sum += tmp;\n            xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n\n            if (xrpow[i] > cod_info.xrpow_max)\n                cod_info.xrpow_max = xrpow[i];\n        }\n        return sum;\n    }\n\n    this.init_xrpow = function (gfc, cod_info, xrpow) {\n        var sum = 0;\n        var upper = 0 | cod_info.max_nonzero_coeff;\n\n        assert(xrpow != null);\n        cod_info.xrpow_max = 0;\n\n        /*\n         * check if there is some energy we have to quantize and calculate xrpow\n         * matching our fresh scalefactors\n         */\n        assert(0 <= upper && upper <= 575);\n\n        Arrays.fill(xrpow, upper, 576, 0);\n\n        sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n\n        /*\n         * return 1 if we have something to quantize, else 0\n         */\n        if (sum > 1E-20) {\n            var j = 0;\n            if ((gfc.substep_shaping & 2) != 0)\n                j = 1;\n\n            for (var i = 0; i < cod_info.psymax; i++)\n                gfc.pseudohalf[i] = j;\n\n            return true;\n        }\n\n        Arrays.fill(cod_info.l3_enc, 0, 576, 0);\n        return false;\n    }\n\n    /**\n     * Gabriel Bouvigne feb/apr 2003<BR>\n     * Analog silence detection in partitionned sfb21 or sfb12 for short blocks\n     *\n     * From top to bottom of sfb, changes to 0 coeffs which are below ath. It\n     * stops on the first coeff higher than ath.\n     */\n    function psfb21_analogsilence(gfc, cod_info) {\n        var ath = gfc.ATH;\n        var xr = cod_info.xr;\n\n        if (cod_info.block_type != Encoder.SHORT_TYPE) {\n            /* NORM, START or STOP type, but not SHORT blocks */\n            var stop = false;\n            for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n                var start = gfc.scalefac_band.psfb21[gsfb];\n                var end = gfc.scalefac_band.psfb21[gsfb + 1];\n                var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb],\n                    ath.floor);\n\n                if (gfc.nsPsy.longfact[21] > 1e-12)\n                    ath21 *= gfc.nsPsy.longfact[21];\n\n                for (var j = end - 1; j >= start; j--) {\n                    if (Math.abs(xr[j]) < ath21)\n                        xr[j] = 0;\n                    else {\n                        stop = true;\n                        break;\n                    }\n                }\n            }\n        } else {\n            /* note: short blocks coeffs are reordered */\n            for (var block = 0; block < 3; block++) {\n                var stop = false;\n                for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n                    var start = gfc.scalefac_band.s[12]\n                        * 3\n                        + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n                        * block\n                        + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n                    var end = start\n                        + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n                    var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb],\n                        ath.floor);\n\n                    if (gfc.nsPsy.shortfact[12] > 1e-12)\n                        ath12 *= gfc.nsPsy.shortfact[12];\n\n                    for (var j = end - 1; j >= start; j--) {\n                        if (Math.abs(xr[j]) < ath12)\n                            xr[j] = 0;\n                        else {\n                            stop = true;\n                            break;\n                        }\n                    }\n                }\n            }\n        }\n\n    }\n\n    this.init_outer_loop = function (gfc, cod_info) {\n        /*\n         * initialize fresh cod_info\n         */\n        cod_info.part2_3_length = 0;\n        cod_info.big_values = 0;\n        cod_info.count1 = 0;\n        cod_info.global_gain = 210;\n        cod_info.scalefac_compress = 0;\n        /* mixed_block_flag, block_type was set in psymodel.c */\n        cod_info.table_select[0] = 0;\n        cod_info.table_select[1] = 0;\n        cod_info.table_select[2] = 0;\n        cod_info.subblock_gain[0] = 0;\n        cod_info.subblock_gain[1] = 0;\n        cod_info.subblock_gain[2] = 0;\n        cod_info.subblock_gain[3] = 0;\n        /* this one is always 0 */\n        cod_info.region0_count = 0;\n        cod_info.region1_count = 0;\n        cod_info.preflag = 0;\n        cod_info.scalefac_scale = 0;\n        cod_info.count1table_select = 0;\n        cod_info.part2_length = 0;\n        cod_info.sfb_lmax = Encoder.SBPSY_l;\n        cod_info.sfb_smin = Encoder.SBPSY_s;\n        cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n        cod_info.psymax = cod_info.psy_lmax;\n        cod_info.sfbmax = cod_info.sfb_lmax;\n        cod_info.sfbdivide = 11;\n        for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n            cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1]\n                - gfc.scalefac_band.l[sfb];\n            /* which is always 0. */\n            cod_info.window[sfb] = 3;\n        }\n        if (cod_info.block_type == Encoder.SHORT_TYPE) {\n            var ixwork = new_float(576);\n\n            cod_info.sfb_smin = 0;\n            cod_info.sfb_lmax = 0;\n            if (cod_info.mixed_block_flag != 0) {\n                /*\n                 * MPEG-1: sfbs 0-7 long block, 3-12 short blocks MPEG-2(.5):\n                 * sfbs 0-5 long block, 3-12 short blocks\n                 */\n                cod_info.sfb_smin = 3;\n                cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n            }\n            cod_info.psymax = cod_info.sfb_lmax\n                + 3\n                * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n            cod_info.sfbmax = cod_info.sfb_lmax + 3\n                * (Encoder.SBPSY_s - cod_info.sfb_smin);\n            cod_info.sfbdivide = cod_info.sfbmax - 18;\n            cod_info.psy_lmax = cod_info.sfb_lmax;\n            /* re-order the short blocks, for more efficient encoding below */\n            /* By Takehiro TOMINAGA */\n            /*\n             * Within each scalefactor band, data is given for successive time\n             * windows, beginning with window 0 and ending with window 2. Within\n             * each window, the quantized values are then arranged in order of\n             * increasing frequency...\n             */\n            var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n            System.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n            for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n                var start = gfc.scalefac_band.s[sfb];\n                var end = gfc.scalefac_band.s[sfb + 1];\n                for (var window = 0; window < 3; window++) {\n                    for (var l = start; l < end; l++) {\n                        cod_info.xr[ix++] = ixwork[3 * l + window];\n                    }\n                }\n            }\n\n            var j = cod_info.sfb_lmax;\n            for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n                cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1]\n                    - gfc.scalefac_band.s[sfb];\n                cod_info.window[j] = 0;\n                cod_info.window[j + 1] = 1;\n                cod_info.window[j + 2] = 2;\n                j += 3;\n            }\n        }\n\n        cod_info.count1bits = 0;\n        cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n        cod_info.slen[0] = 0;\n        cod_info.slen[1] = 0;\n        cod_info.slen[2] = 0;\n        cod_info.slen[3] = 0;\n\n        cod_info.max_nonzero_coeff = 575;\n\n        /*\n         * fresh scalefactors are all zero\n         */\n        Arrays.fill(cod_info.scalefac, 0);\n\n        psfb21_analogsilence(gfc, cod_info);\n    };\n\n    function BinSearchDirection(ordinal) {\n        this.ordinal = ordinal;\n    }\n\n    BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n    BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n    BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n\n    /**\n     * author/date??\n     *\n     * binary step size search used by outer_loop to get a quantizer step size\n     * to start with\n     */\n    function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n        var nBits;\n        var CurrentStep = gfc.CurrentStep[ch];\n        var flagGoneOver = false;\n        var start = gfc.OldValue[ch];\n        var Direction = BinSearchDirection.BINSEARCH_NONE;\n        cod_info.global_gain = start;\n        desired_rate -= cod_info.part2_length;\n\n        assert(CurrentStep != 0);\n        for (; ;) {\n            var step;\n            nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n\n            if (CurrentStep == 1 || nBits == desired_rate)\n                break;\n            /* nothing to adjust anymore */\n\n            if (nBits > desired_rate) {\n                /* increase Quantize_StepSize */\n                if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n                    flagGoneOver = true;\n\n                if (flagGoneOver)\n                    CurrentStep /= 2;\n                Direction = BinSearchDirection.BINSEARCH_UP;\n                step = CurrentStep;\n            } else {\n                /* decrease Quantize_StepSize */\n                if (Direction == BinSearchDirection.BINSEARCH_UP)\n                    flagGoneOver = true;\n\n                if (flagGoneOver)\n                    CurrentStep /= 2;\n                Direction = BinSearchDirection.BINSEARCH_DOWN;\n                step = -CurrentStep;\n            }\n            cod_info.global_gain += step;\n            if (cod_info.global_gain < 0) {\n                cod_info.global_gain = 0;\n                flagGoneOver = true;\n            }\n            if (cod_info.global_gain > 255) {\n                cod_info.global_gain = 255;\n                flagGoneOver = true;\n            }\n        }\n\n        assert(cod_info.global_gain >= 0);\n        assert(cod_info.global_gain < 256);\n\n        while (nBits > desired_rate && cod_info.global_gain < 255) {\n            cod_info.global_gain++;\n            nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n        }\n        gfc.CurrentStep[ch] = (start - cod_info.global_gain >= 4) ? 4 : 2;\n        gfc.OldValue[ch] = cod_info.global_gain;\n        cod_info.part2_3_length = nBits;\n        return nBits;\n    }\n\n    this.trancate_smallspectrums = function (gfc, gi, l3_xmin, work) {\n        var distort = new_float(L3Side.SFBMAX);\n\n        if ((0 == (gfc.substep_shaping & 4) && gi.block_type == Encoder.SHORT_TYPE)\n            || (gfc.substep_shaping & 0x80) != 0)\n            return;\n        qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult(), null);\n        for (var j = 0; j < 576; j++) {\n            var xr = 0.0;\n            if (gi.l3_enc[j] != 0)\n                xr = Math.abs(gi.xr[j]);\n            work[j] = xr;\n        }\n\n        var j = 0;\n        var sfb = 8;\n        if (gi.block_type == Encoder.SHORT_TYPE)\n            sfb = 6;\n        do {\n            var allowedNoise, trancateThreshold;\n            var nsame, start;\n\n            var width = gi.width[sfb];\n            j += width;\n            if (distort[sfb] >= 1.0)\n                continue;\n\n            Arrays.sort(work, j - width, width);\n            if (BitStream.EQ(work[j - 1], 0.0))\n                continue;\n            /* all zero sfb */\n\n            allowedNoise = (1.0 - distort[sfb]) * l3_xmin[sfb];\n            trancateThreshold = 0.0;\n            start = 0;\n            do {\n                var noise;\n                for (nsame = 1; start + nsame < width; nsame++)\n                    if (BitStream.NEQ(work[start + j - width], work[start + j\n                        + nsame - width]))\n                        break;\n\n                noise = work[start + j - width] * work[start + j - width]\n                    * nsame;\n                if (allowedNoise < noise) {\n                    if (start != 0)\n                        trancateThreshold = work[start + j - width - 1];\n                    break;\n                }\n                allowedNoise -= noise;\n                start += nsame;\n            } while (start < width);\n            if (BitStream.EQ(trancateThreshold, 0.0))\n                continue;\n\n            do {\n                if (Math.abs(gi.xr[j - width]) <= trancateThreshold)\n                    gi.l3_enc[j - width] = 0;\n            } while (--width > 0);\n        } while (++sfb < gi.psymax);\n\n        gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n    };\n\n    /**\n     * author/date??\n     *\n     * Function: Returns zero if there is a scalefac which has not been\n     * amplified. Otherwise it returns one.\n     */\n    function loop_break(cod_info) {\n        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++)\n            if (cod_info.scalefac[sfb]\n                + cod_info.subblock_gain[cod_info.window[sfb]] == 0)\n                return false;\n\n        return true;\n    }\n\n    /* mt 5/99: Function: Improved calc_noise for a single channel */\n\n    function penalties(noise) {\n        return Util.FAST_LOG10((0.368 + 0.632 * noise * noise * noise));\n    }\n\n    /**\n     * author/date??\n     *\n     * several different codes to decide which quantization is better\n     */\n    function get_klemm_noise(distort, gi) {\n        var klemm_noise = 1E-37;\n        for (var sfb = 0; sfb < gi.psymax; sfb++)\n            klemm_noise += penalties(distort[sfb]);\n\n        return Math.max(1e-20, klemm_noise);\n    }\n\n    function quant_compare(quant_comp, best, calc, gi, distort) {\n        /**\n         * noise is given in decibels (dB) relative to masking thesholds.<BR>\n         *\n         * over_noise: ??? (the previous comment is fully wrong)<BR>\n         * tot_noise: ??? (the previous comment is fully wrong)<BR>\n         * max_noise: max quantization noise\n         */\n        var better;\n\n        switch (quant_comp) {\n            default:\n            case 9:\n            {\n                if (best.over_count > 0) {\n                    /* there are distorted sfb */\n                    better = calc.over_SSD <= best.over_SSD;\n                    if (calc.over_SSD == best.over_SSD)\n                        better = calc.bits < best.bits;\n                } else {\n                    /* no distorted sfb */\n                    better = ((calc.max_noise < 0) && ((calc.max_noise * 10 + calc.bits) <= (best.max_noise * 10 + best.bits)));\n                }\n                break;\n            }\n\n            case 0:\n                better = calc.over_count < best.over_count\n                    || (calc.over_count == best.over_count && calc.over_noise < best.over_noise)\n                    || (calc.over_count == best.over_count\n                    && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n                break;\n\n            case 8:\n                calc.max_noise = get_klemm_noise(distort, gi);\n            //$FALL-THROUGH$\n            case 1:\n                better = calc.max_noise < best.max_noise;\n                break;\n            case 2:\n                better = calc.tot_noise < best.tot_noise;\n                break;\n            case 3:\n                better = (calc.tot_noise < best.tot_noise)\n                    && (calc.max_noise < best.max_noise);\n                break;\n            case 4:\n                better = (calc.max_noise <= 0.0 && best.max_noise > 0.2)\n                    || (calc.max_noise <= 0.0 && best.max_noise < 0.0\n                    && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise)\n                    || (calc.max_noise <= 0.0 && best.max_noise > 0.0\n                    && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise\n                    + best.over_noise)\n                    || (calc.max_noise > 0.0 && best.max_noise > -0.05\n                    && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise\n                    + calc.over_noise < best.tot_noise\n                    + best.over_noise)\n                    || (calc.max_noise > 0.0 && best.max_noise > -0.1\n                    && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise\n                    + calc.over_noise + calc.over_noise < best.tot_noise\n                    + best.over_noise + best.over_noise);\n                break;\n            case 5:\n                better = calc.over_noise < best.over_noise\n                    || (BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n                break;\n            case 6:\n                better = calc.over_noise < best.over_noise\n                    || (BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || (BitStream\n                        .EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise)));\n                break;\n            case 7:\n                better = calc.over_count < best.over_count\n                    || calc.over_noise < best.over_noise;\n                break;\n        }\n\n        if (best.over_count == 0) {\n            /*\n             * If no distorted bands, only use this quantization if it is\n             * better, and if it uses less bits. Unfortunately, part2_3_length\n             * is sometimes a poor estimator of the final size at low bitrates.\n             */\n            better = better && calc.bits < best.bits;\n        }\n\n        return better;\n    }\n\n    /**\n     * author/date??\n     *\n     * <PRE>\n     *  Amplify the scalefactor bands that violate the masking threshold.\n     *  See ISO 11172-3 Section C.1.5.4.3.5\n     *\n     *  distort[] = noise/masking\n     *  distort[] > 1   ==> noise is not masked\n     *  distort[] < 1   ==> noise is masked\n     *  max_dist = maximum value of distort[]\n     *\n     *  Three algorithms:\n     *  noise_shaping_amp\n     *        0             Amplify all bands with distort[]>1.\n     *\n     *        1             Amplify all bands with distort[] >= max_dist^(.5);\n     *                     ( 50% in the db scale)\n     *\n     *        2             Amplify first band with distort[] >= max_dist;\n     *\n     *\n     *  For algorithms 0 and 1, if max_dist < 1, then amplify all bands\n     *  with distort[] >= .95*max_dist.  This is to make sure we always\n     *  amplify at least one band.\n     * </PRE>\n     */\n    function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n        var gfc = gfp.internal_flags;\n        var ifqstep34;\n\n        if (cod_info.scalefac_scale == 0) {\n            ifqstep34 = 1.29683955465100964055;\n            /* 2**(.75*.5) */\n        } else {\n            ifqstep34 = 1.68179283050742922612;\n            /* 2**(.75*1) */\n        }\n\n        /* compute maximum value of distort[] */\n        var trigger = 0;\n        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n            if (trigger < distort[sfb])\n                trigger = distort[sfb];\n        }\n\n        var noise_shaping_amp = gfc.noise_shaping_amp;\n        if (noise_shaping_amp == 3) {\n            if (bRefine)\n                noise_shaping_amp = 2;\n            else\n                noise_shaping_amp = 1;\n        }\n        switch (noise_shaping_amp) {\n            case 2:\n                /* amplify exactly 1 band */\n                break;\n\n            case 1:\n                /* amplify bands within 50% of max (on db scale) */\n                if (trigger > 1.0)\n                    trigger = Math.pow(trigger, .5);\n                else\n                    trigger *= .95;\n                break;\n\n            case 0:\n            default:\n                /* ISO algorithm. amplify all bands with distort>1 */\n                if (trigger > 1.0)\n                    trigger = 1.0;\n                else\n                    trigger *= .95;\n                break;\n        }\n\n        var j = 0;\n        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n            var width = cod_info.width[sfb];\n            var l;\n            j += width;\n            if (distort[sfb] < trigger)\n                continue;\n\n            if ((gfc.substep_shaping & 2) != 0) {\n                gfc.pseudohalf[sfb] = (0 == gfc.pseudohalf[sfb]) ? 1 : 0;\n                if (0 == gfc.pseudohalf[sfb] && gfc.noise_shaping_amp == 2)\n                    return;\n            }\n            cod_info.scalefac[sfb]++;\n            for (l = -width; l < 0; l++) {\n                xrpow[j + l] *= ifqstep34;\n                if (xrpow[j + l] > cod_info.xrpow_max)\n                    cod_info.xrpow_max = xrpow[j + l];\n            }\n\n            if (gfc.noise_shaping_amp == 2)\n                return;\n        }\n    }\n\n    /**\n     * Takehiro Tominaga 2000-xx-xx\n     *\n     * turns on scalefac scale and adjusts scalefactors\n     */\n    function inc_scalefac_scale(cod_info, xrpow) {\n        var ifqstep34 = 1.29683955465100964055;\n\n        var j = 0;\n        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n            var width = cod_info.width[sfb];\n            var s = cod_info.scalefac[sfb];\n            if (cod_info.preflag != 0)\n                s += qupvt.pretab[sfb];\n            j += width;\n            if ((s & 1) != 0) {\n                s++;\n                for (var l = -width; l < 0; l++) {\n                    xrpow[j + l] *= ifqstep34;\n                    if (xrpow[j + l] > cod_info.xrpow_max)\n                        cod_info.xrpow_max = xrpow[j + l];\n                }\n            }\n            cod_info.scalefac[sfb] = s >> 1;\n        }\n        cod_info.preflag = 0;\n        cod_info.scalefac_scale = 1;\n    }\n\n    /**\n     * Takehiro Tominaga 2000-xx-xx\n     *\n     * increases the subblock gain and adjusts scalefactors\n     */\n    function inc_subblock_gain(gfc, cod_info, xrpow) {\n        var sfb;\n        var scalefac = cod_info.scalefac;\n\n        /* subbloc_gain can't do anything in the long block region */\n        for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n            if (scalefac[sfb] >= 16)\n                return true;\n        }\n\n        for (var window = 0; window < 3; window++) {\n            var s1 = 0;\n            var s2 = 0;\n\n            for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbdivide; sfb += 3) {\n                if (s1 < scalefac[sfb])\n                    s1 = scalefac[sfb];\n            }\n            for (; sfb < cod_info.sfbmax; sfb += 3) {\n                if (s2 < scalefac[sfb])\n                    s2 = scalefac[sfb];\n            }\n\n            if (s1 < 16 && s2 < 8)\n                continue;\n\n            if (cod_info.subblock_gain[window] >= 7)\n                return true;\n\n            /*\n             * even though there is no scalefactor for sfb12 subblock gain\n             * affects upper frequencies too, that's why we have to go up to\n             * SBMAX_s\n             */\n            cod_info.subblock_gain[window]++;\n            var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n            for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbmax; sfb += 3) {\n                var amp;\n                var width = cod_info.width[sfb];\n                var s = scalefac[sfb];\n                assert(s >= 0);\n                s = s - (4 >> cod_info.scalefac_scale);\n                if (s >= 0) {\n                    scalefac[sfb] = s;\n                    j += width * 3;\n                    continue;\n                }\n\n                scalefac[sfb] = 0;\n                {\n                    var gain = 210 + (s << (cod_info.scalefac_scale + 1));\n                    amp = qupvt.IPOW20(gain);\n                }\n                j += width * (window + 1);\n                for (var l = -width; l < 0; l++) {\n                    xrpow[j + l] *= amp;\n                    if (xrpow[j + l] > cod_info.xrpow_max)\n                        cod_info.xrpow_max = xrpow[j + l];\n                }\n                j += width * (3 - window - 1);\n            }\n\n            {\n                var amp = qupvt.IPOW20(202);\n                j += cod_info.width[sfb] * (window + 1);\n                for (var l = -cod_info.width[sfb]; l < 0; l++) {\n                    xrpow[j + l] *= amp;\n                    if (xrpow[j + l] > cod_info.xrpow_max)\n                        cod_info.xrpow_max = xrpow[j + l];\n                }\n            }\n        }\n        return false;\n    }\n\n    /**\n     * <PRE>\n     *  Takehiro Tominaga /date??\n     *  Robert Hegemann 2000-09-06: made a function of it\n     *\n     *  amplifies scalefactor bands,\n     *   - if all are already amplified returns 0\n     *   - if some bands are amplified too much:\n     *      * try to increase scalefac_scale\n     *      * if already scalefac_scale was set\n     *          try on short blocks to increase subblock gain\n     * </PRE>\n     */\n    function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n        var gfc = gfp.internal_flags;\n\n        amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n\n        /*\n         * check to make sure we have not amplified too much loop_break returns\n         * 0 if there is an unamplified scalefac scale_bitcount returns 0 if no\n         * scalefactors are too large\n         */\n\n        var status = loop_break(cod_info);\n\n        if (status)\n            return false;\n        /* all bands amplified */\n\n        /*\n         * not all scalefactors have been amplified. so these scalefacs are\n         * possibly valid. encode them:\n         */\n        if (gfc.mode_gr == 2)\n            status = tk.scale_bitcount(cod_info);\n        else\n            status = tk.scale_bitcount_lsf(gfc, cod_info);\n\n        if (!status)\n            return true;\n        /* amplified some bands not exceeding limits */\n\n        /*\n         * some scalefactors are too large. lets try setting scalefac_scale=1\n         */\n        if (gfc.noise_shaping > 1) {\n            Arrays.fill(gfc.pseudohalf, 0);\n            if (0 == cod_info.scalefac_scale) {\n                inc_scalefac_scale(cod_info, xrpow);\n                status = false;\n            } else {\n                if (cod_info.block_type == Encoder.SHORT_TYPE\n                    && gfc.subblock_gain > 0) {\n                    status = (inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info));\n                }\n            }\n        }\n\n        if (!status) {\n            if (gfc.mode_gr == 2)\n                status = tk.scale_bitcount(cod_info);\n            else\n                status = tk.scale_bitcount_lsf(gfc, cod_info);\n        }\n        return !status;\n    }\n\n    /**\n     * <PRE>\n     *  Function: The outer iteration loop controls the masking conditions\n     *  of all scalefactorbands. It computes the best scalefac and\n     *  global gain. This module calls the inner iteration loop\n     *\n     *  mt 5/99 completely rewritten to allow for bit reservoir control,\n     *  mid/side channels with L/R or mid/side masking thresholds,\n     *  and chooses best quantization instead of last quantization when\n     *  no distortion free quantization can be found.\n     *\n     *  added VBR support mt 5/99\n     *\n     *  some code shuffle rh 9/00\n     * </PRE>\n     *\n     * @param l3_xmin\n     *            allowed distortion\n     * @param xrpow\n     *            coloured magnitudes of spectral\n     * @param targ_bits\n     *            maximum allowed bits\n     */\n    this.outer_loop = function (gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n        var gfc = gfp.internal_flags;\n        var cod_info_w = new GrInfo();\n        var save_xrpow = new_float(576);\n        var distort = new_float(L3Side.SFBMAX);\n        var best_noise_info = new CalcNoiseResult();\n        var better;\n        var prev_noise = new CalcNoiseData();\n        var best_part2_3_length = 9999999;\n        var bEndOfSearch = false;\n        var bRefine = false;\n        var best_ggain_pass1 = 0;\n\n        bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n\n        if (0 == gfc.noise_shaping)\n        /* fast mode, no noise shaping, we are ready */\n            return 100;\n        /* default noise_info.over_count */\n\n        /* compute the distortion in this quantization */\n        /* coefficients and thresholds both l/r (or both mid/side) */\n        qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info,\n            prev_noise);\n        best_noise_info.bits = cod_info.part2_3_length;\n\n        cod_info_w.assign(cod_info);\n        var age = 0;\n        System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n\n        while (!bEndOfSearch) {\n            /* BEGIN MAIN LOOP */\n            do {\n                var noise_info = new CalcNoiseResult();\n                var search_limit;\n                var maxggain = 255;\n\n                /*\n                 * When quantization with no distorted bands is found, allow up\n                 * to X new unsuccesful tries in serial. This gives us more\n                 * possibilities for different quant_compare modes. Much more\n                 * than 3 makes not a big difference, it is only slower.\n                 */\n\n                if ((gfc.substep_shaping & 2) != 0) {\n                    search_limit = 20;\n                } else {\n                    search_limit = 3;\n                }\n\n                /*\n                 * Check if the last scalefactor band is distorted. in VBR mode\n                 * we can't get rid of the distortion, so quit now and VBR mode\n                 * will try again with more bits. (makes a 10% speed increase,\n                 * the files I tested were binary identical, 2000/05/20 Robert\n                 * Hegemann) distort[] > 1 means noise > allowed noise\n                 */\n                if (gfc.sfb21_extra) {\n                    if (distort[cod_info_w.sfbmax] > 1.0)\n                        break;\n                    if (cod_info_w.block_type == Encoder.SHORT_TYPE\n                        && (distort[cod_info_w.sfbmax + 1] > 1.0 || distort[cod_info_w.sfbmax + 2] > 1.0))\n                        break;\n                }\n\n                /* try a new scalefactor conbination on cod_info_w */\n                if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n                    break;\n                if (cod_info_w.scalefac_scale != 0)\n                    maxggain = 254;\n\n                /*\n                 * inner_loop starts with the initial quantization step computed\n                 * above and slowly increases until the bits < huff_bits. Thus\n                 * it is important not to start with too large of an inital\n                 * quantization step. Too small is ok, but inner_loop will take\n                 * longer\n                 */\n                var huff_bits = targ_bits - cod_info_w.part2_length;\n                if (huff_bits <= 0)\n                    break;\n\n                /*\n                 * increase quantizer stepsize until needed bits are below\n                 * maximum\n                 */\n                while ((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow,\n                    cod_info_w, prev_noise)) > huff_bits\n                && cod_info_w.global_gain <= maxggain)\n                    cod_info_w.global_gain++;\n\n                if (cod_info_w.global_gain > maxggain)\n                    break;\n\n                if (best_noise_info.over_count == 0) {\n\n                    while ((cod_info_w.part2_3_length = tk.count_bits(gfc,\n                        xrpow, cod_info_w, prev_noise)) > best_part2_3_length\n                    && cod_info_w.global_gain <= maxggain)\n                        cod_info_w.global_gain++;\n\n                    if (cod_info_w.global_gain > maxggain)\n                        break;\n                }\n\n                /* compute the distortion in this quantization */\n                qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info,\n                    prev_noise);\n                noise_info.bits = cod_info_w.part2_3_length;\n\n                /*\n                 * check if this quantization is better than our saved\n                 * quantization\n                 */\n                if (cod_info.block_type != Encoder.SHORT_TYPE) {\n                    // NORM, START or STOP type\n                    better = gfp.quant_comp;\n                } else\n                    better = gfp.quant_comp_short;\n\n                better = quant_compare(better, best_noise_info, noise_info,\n                    cod_info_w, distort) ? 1 : 0;\n\n                /* save data so we can restore this quantization later */\n                if (better != 0) {\n                    best_part2_3_length = cod_info.part2_3_length;\n                    best_noise_info = noise_info;\n                    cod_info.assign(cod_info_w);\n                    age = 0;\n                    /* save data so we can restore this quantization later */\n                    /* store for later reuse */\n                    System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n                } else {\n                    /* early stop? */\n                    if (gfc.full_outer_loop == 0) {\n                        if (++age > search_limit\n                            && best_noise_info.over_count == 0)\n                            break;\n                        if ((gfc.noise_shaping_amp == 3) && bRefine && age > 30)\n                            break;\n                        if ((gfc.noise_shaping_amp == 3)\n                            && bRefine\n                            && (cod_info_w.global_gain - best_ggain_pass1) > 15)\n                            break;\n                    }\n                }\n            } while ((cod_info_w.global_gain + cod_info_w.scalefac_scale) < 255);\n\n            if (gfc.noise_shaping_amp == 3) {\n                if (!bRefine) {\n                    /* refine search */\n                    cod_info_w.assign(cod_info);\n                    System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n                    age = 0;\n                    best_ggain_pass1 = cod_info_w.global_gain;\n\n                    bRefine = true;\n                } else {\n                    /* search already refined, stop */\n                    bEndOfSearch = true;\n                }\n\n            } else {\n                bEndOfSearch = true;\n            }\n        }\n\n        assert((cod_info.global_gain + cod_info.scalefac_scale) <= 255);\n        /*\n         * finish up\n         */\n        if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n        /* restore for reuse on next try */\n            System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n        /*\n         * do the 'substep shaping'\n         */\n        else if ((gfc.substep_shaping & 1) != 0)\n            trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n\n        return best_noise_info.over_count;\n    }\n\n    /**\n     * Robert Hegemann 2000-09-06\n     *\n     * update reservoir status after FINAL quantization/bitrate\n     */\n    this.iteration_finish_one = function (gfc, gr, ch) {\n        var l3_side = gfc.l3_side;\n        var cod_info = l3_side.tt[gr][ch];\n\n        /*\n         * try some better scalefac storage\n         */\n        tk.best_scalefac_store(gfc, gr, ch, l3_side);\n\n        /*\n         * best huffman_divide may save some bits too\n         */\n        if (gfc.use_best_huffman == 1)\n            tk.best_huffman_divide(gfc, cod_info);\n\n        /*\n         * update reservoir status after FINAL quantization/bitrate\n         */\n        rv.ResvAdjust(gfc, cod_info);\n    };\n\n    /**\n     *\n     * 2000-09-04 Robert Hegemann\n     *\n     * @param l3_xmin\n     *            allowed distortion of the scalefactor\n     * @param xrpow\n     *            coloured magnitudes of spectral values\n     */\n    this.VBR_encode_granule = function (gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n        var gfc = gfp.internal_flags;\n        var bst_cod_info = new GrInfo();\n        var bst_xrpow = new_float(576);\n        var Max_bits = max_bits;\n        var real_bits = max_bits + 1;\n        var this_bits = (max_bits + min_bits) / 2;\n        var dbits, over, found = 0;\n        var sfb21_extra = gfc.sfb21_extra;\n\n        assert(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n        Arrays.fill(bst_cod_info.l3_enc, 0);\n\n        /*\n         * search within round about 40 bits of optimal\n         */\n        do {\n            assert(this_bits >= min_bits);\n            assert(this_bits <= max_bits);\n            assert(min_bits <= max_bits);\n\n            if (this_bits > Max_bits - 42)\n                gfc.sfb21_extra = false;\n            else\n                gfc.sfb21_extra = sfb21_extra;\n\n            over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n\n            /*\n             * is quantization as good as we are looking for ? in this case: is\n             * no scalefactor band distorted?\n             */\n            if (over <= 0) {\n                found = 1;\n                /*\n                 * now we know it can be done with \"real_bits\" and maybe we can\n                 * skip some iterations\n                 */\n                real_bits = cod_info.part2_3_length;\n\n                /*\n                 * store best quantization so far\n                 */\n                bst_cod_info.assign(cod_info);\n                System.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n\n                /*\n                 * try with fewer bits\n                 */\n                max_bits = real_bits - 32;\n                dbits = max_bits - min_bits;\n                this_bits = (max_bits + min_bits) / 2;\n            } else {\n                /*\n                 * try with more bits\n                 */\n                min_bits = this_bits + 32;\n                dbits = max_bits - min_bits;\n                this_bits = (max_bits + min_bits) / 2;\n\n                if (found != 0) {\n                    found = 2;\n                    /*\n                     * start again with best quantization so far\n                     */\n                    cod_info.assign(bst_cod_info);\n                    System.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n                }\n            }\n        } while (dbits > 12);\n\n        gfc.sfb21_extra = sfb21_extra;\n\n        /*\n         * found=0 => nothing found, use last one found=1 => we just found the\n         * best and left the loop found=2 => we restored a good one and have now\n         * l3_enc to restore too\n         */\n        if (found == 2) {\n            System.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n        }\n        assert(cod_info.part2_3_length <= Max_bits);\n    }\n\n    /**\n     * Robert Hegemann 2000-09-05\n     *\n     * calculates * how many bits are available for analog silent granules * how\n     * many bits to use for the lowest allowed bitrate * how many bits each\n     * bitrate would provide\n     */\n    this.get_framebits = function (gfp, frameBits) {\n        var gfc = gfp.internal_flags;\n\n        /*\n         * always use at least this many bits per granule per channel unless we\n         * detect analog silence, see below\n         */\n        gfc.bitrate_index = gfc.VBR_min_bitrate;\n        var bitsPerFrame = bs.getframebits(gfp);\n\n        /*\n         * bits for analog silence\n         */\n        gfc.bitrate_index = 1;\n        bitsPerFrame = bs.getframebits(gfp);\n\n        for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n            gfc.bitrate_index = i;\n            var mb = new MeanBits(bitsPerFrame);\n            frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n            bitsPerFrame = mb.bits;\n        }\n    };\n\n    /* RH: this one needs to be overhauled sometime */\n\n    /**\n     * <PRE>\n     *  2000-09-04 Robert Hegemann\n     *\n     *  * converts LR to MS coding when necessary\n     *  * calculates allowed/adjusted quantization noise amounts\n     *  * detects analog silent frames\n     *\n     *  some remarks:\n     *  - lower masking depending on Quality setting\n     *  - quality control together with adjusted ATH MDCT scaling\n     *    on lower quality setting allocate more noise from\n     *    ATH masking, and on higher quality setting allocate\n     *    less noise from ATH masking.\n     *  - experiments show that going more than 2dB over GPSYCHO's\n     *    limits ends up in very annoying artefacts\n     * </PRE>\n     */\n    this.VBR_old_prepare = function (gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits,\n                                     max_bits, bands) {\n        var gfc = gfp.internal_flags;\n\n        var masking_lower_db, adjust = 0.0;\n        var analog_silence = 1;\n        var bits = 0;\n\n        gfc.bitrate_index = gfc.VBR_max_bitrate;\n        var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n\n        get_framebits(gfp, frameBits);\n\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n            if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n                ms_convert(gfc.l3_side, gr);\n                qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n            }\n            for (var ch = 0; ch < gfc.channels_out; ++ch) {\n                var cod_info = gfc.l3_side.tt[gr][ch];\n\n                if (cod_info.block_type != Encoder.SHORT_TYPE) {\n                    // NORM, START or STOP type\n                    adjust = 1.28 / (1 + Math\n                            .exp(3.5 - pe[gr][ch] / 300.)) - 0.05;\n                    masking_lower_db = gfc.PSY.mask_adjust - adjust;\n                } else {\n                    adjust = 2.56 / (1 + Math\n                            .exp(3.5 - pe[gr][ch] / 300.)) - 0.14;\n                    masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n                }\n                gfc.masking_lower = Math.pow(10.0,\n                    masking_lower_db * 0.1);\n\n                init_outer_loop(gfc, cod_info);\n                bands[gr][ch] = qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n                    l3_xmin[gr][ch]);\n                if (bands[gr][ch] != 0)\n                    analog_silence = 0;\n\n                min_bits[gr][ch] = 126;\n\n                bits += max_bits[gr][ch];\n            }\n        }\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            for (var ch = 0; ch < gfc.channels_out; ch++) {\n                if (bits > frameBits[gfc.VBR_max_bitrate]) {\n                    max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n                    max_bits[gr][ch] /= bits;\n                }\n                if (min_bits[gr][ch] > max_bits[gr][ch])\n                    min_bits[gr][ch] = max_bits[gr][ch];\n\n            }\n            /* for ch */\n        }\n        /* for gr */\n\n        return analog_silence;\n    };\n\n    this.bitpressure_strategy = function (gfc, l3_xmin, min_bits, max_bits) {\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            for (var ch = 0; ch < gfc.channels_out; ch++) {\n                var gi = gfc.l3_side.tt[gr][ch];\n                var pxmin = l3_xmin[gr][ch];\n                var pxminPos = 0;\n                for (var sfb = 0; sfb < gi.psy_lmax; sfb++)\n                    pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n                        / Encoder.SBMAX_l / Encoder.SBMAX_l;\n\n                if (gi.block_type == Encoder.SHORT_TYPE) {\n                    for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n                            / Encoder.SBMAX_s / Encoder.SBMAX_s;\n                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n                            / Encoder.SBMAX_s / Encoder.SBMAX_s;\n                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n                            / Encoder.SBMAX_s / Encoder.SBMAX_s;\n                    }\n                }\n                max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch],\n                        0.9 * max_bits[gr][ch]);\n            }\n        }\n    };\n\n    this.VBR_new_prepare = function (gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n        var gfc = gfp.internal_flags;\n\n        var analog_silence = 1;\n        var avg = 0, bits = 0;\n        var maximum_framebits;\n\n        if (!gfp.free_format) {\n            gfc.bitrate_index = gfc.VBR_max_bitrate;\n\n            var mb = new MeanBits(avg);\n            rv.ResvFrameBegin(gfp, mb);\n            avg = mb.bits;\n\n            get_framebits(gfp, frameBits);\n            maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n        } else {\n            gfc.bitrate_index = 0;\n            var mb = new MeanBits(avg);\n            maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n            avg = mb.bits;\n            frameBits[0] = maximum_framebits;\n        }\n\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n            if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n                ms_convert(gfc.l3_side, gr);\n            }\n            for (var ch = 0; ch < gfc.channels_out; ++ch) {\n                var cod_info = gfc.l3_side.tt[gr][ch];\n\n                gfc.masking_lower = Math.pow(10.0,\n                    gfc.PSY.mask_adjust * 0.1);\n\n                init_outer_loop(gfc, cod_info);\n                if (0 != qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n                        l3_xmin[gr][ch]))\n                    analog_silence = 0;\n\n                bits += max_bits[gr][ch];\n            }\n        }\n        for (var gr = 0; gr < gfc.mode_gr; gr++) {\n            for (var ch = 0; ch < gfc.channels_out; ch++) {\n                if (bits > maximum_framebits) {\n                    max_bits[gr][ch] *= maximum_framebits;\n                    max_bits[gr][ch] /= bits;\n                }\n\n            }\n            /* for ch */\n        }\n        /* for gr */\n\n        return analog_silence;\n    };\n\n    /**\n     * calculates target bits for ABR encoding\n     *\n     * mt 2000/05/31\n     */\n    this.calc_target_bits = function (gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n        var gfc = gfp.internal_flags;\n        var l3_side = gfc.l3_side;\n        var res_factor;\n        var gr, ch, totbits, mean_bits = 0;\n\n        gfc.bitrate_index = gfc.VBR_max_bitrate;\n        var mb = new MeanBits(mean_bits);\n        max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n        mean_bits = mb.bits;\n\n        gfc.bitrate_index = 1;\n        mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n        analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n\n        mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1000;\n        if ((gfc.substep_shaping & 1) != 0)\n            mean_bits *= 1.09;\n        mean_bits /= gfp.out_samplerate;\n        mean_bits -= gfc.sideinfo_len * 8;\n        mean_bits /= (gfc.mode_gr * gfc.channels_out);\n\n        /**\n         * <PRE>\n         *           res_factor is the percentage of the target bitrate that should\n         *           be used on average.  the remaining bits are added to the\n         *           bitreservoir and used for difficult to encode frames.\n         *\n         *           Since we are tracking the average bitrate, we should adjust\n         *           res_factor \"on the fly\", increasing it if the average bitrate\n         *           is greater than the requested bitrate, and decreasing it\n         *           otherwise.  Reasonable ranges are from .9 to 1.0\n         *\n         *           Until we get the above suggestion working, we use the following\n         *           tuning:\n         *           compression ratio    res_factor\n         *           5.5  (256kbps)         1.0      no need for bitreservoir\n         *           11   (128kbps)         .93      7% held for reservoir\n         *\n         *           with linear interpolation for other values.\n         * </PRE>\n         */\n        res_factor = .93 + .07 * (11.0 - gfp.compression_ratio)\n            / (11.0 - 5.5);\n        if (res_factor < .90)\n            res_factor = .90;\n        if (res_factor > 1.00)\n            res_factor = 1.00;\n\n        for (gr = 0; gr < gfc.mode_gr; gr++) {\n            var sum = 0;\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n                if (pe[gr][ch] > 700) {\n                    var add_bits = (int)((pe[gr][ch] - 700) / 1.4);\n\n                    var cod_info = l3_side.tt[gr][ch];\n                    targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n                    /* short blocks use a little extra, no matter what the pe */\n                    if (cod_info.block_type == Encoder.SHORT_TYPE) {\n                        if (add_bits < mean_bits / 2)\n                            add_bits = mean_bits / 2;\n                    }\n                    /* at most increase bits by 1.5*average */\n                    if (add_bits > mean_bits * 3 / 2)\n                        add_bits = mean_bits * 3 / 2;\n                    else if (add_bits < 0)\n                        add_bits = 0;\n\n                    targ_bits[gr][ch] += add_bits;\n                }\n                if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n                    targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n                }\n                sum += targ_bits[gr][ch];\n            }\n            /* for ch */\n            if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n                for (ch = 0; ch < gfc.channels_out; ++ch) {\n                    targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n                    targ_bits[gr][ch] /= sum;\n                }\n            }\n        }\n        /* for gr */\n\n        if (gfc.mode_ext == Encoder.MPG_MD_MS_LR)\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                qupvt.reduce_side(targ_bits[gr], ms_ener_ratio[gr], mean_bits\n                    * gfc.channels_out,\n                    LameInternalFlags.MAX_BITS_PER_GRANULE);\n            }\n\n        /*\n         * sum target bits\n         */\n        totbits = 0;\n        for (gr = 0; gr < gfc.mode_gr; gr++) {\n            for (ch = 0; ch < gfc.channels_out; ch++) {\n                if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n                    targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n                totbits += targ_bits[gr][ch];\n            }\n        }\n\n        /*\n         * repartion target bits if needed\n         */\n        if (totbits > max_frame_bits[0]) {\n            for (gr = 0; gr < gfc.mode_gr; gr++) {\n                for (ch = 0; ch < gfc.channels_out; ch++) {\n                    targ_bits[gr][ch] *= max_frame_bits[0];\n                    targ_bits[gr][ch] /= totbits;\n                }\n            }\n        }\n    }\n\n}\n\nmodule.exports = Quantize;\n\n\n/***/ }),\n\n/***/ \"dc4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(\"59ed\");\nvar isNullOrUndefined = __webpack_require__(\"7234\");\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ }),\n\n/***/ \"dcc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(\"ae93\").IteratorPrototype;\nvar create = __webpack_require__(\"7c73\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar Iterators = __webpack_require__(\"3f8c\");\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ \"dead\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert = common.assert;\n\nvar PsyModel = __webpack_require__(\"2474\");\nvar LameGlobalFlags = __webpack_require__(\"947f\");\nvar LameInternalFlags = __webpack_require__(\"bd8b\");\nvar ATH = __webpack_require__(\"abf5\");\nvar ReplayGain = __webpack_require__(\"725d\");\nvar CBRNewIterationLoop = __webpack_require__(\"4a65\");\nvar BitStream = __webpack_require__(\"69b2\");\nvar Tables = __webpack_require__(\"5f84\");\nvar Encoder = __webpack_require__(\"4b5e\");\n\nfunction Lame() {\n    var self = this;\n    var LAME_MAXALBUMART = (128 * 1024);\n\n    Lame.V9 = 410;\n    Lame.V8 = 420;\n    Lame.V7 = 430;\n    Lame.V6 = 440;\n    Lame.V5 = 450;\n    Lame.V4 = 460;\n    Lame.V3 = 470;\n    Lame.V2 = 480;\n    Lame.V1 = 490;\n    Lame.V0 = 500;\n\n    /* still there for compatibility */\n\n    Lame.R3MIX = 1000;\n    Lame.STANDARD = 1001;\n    Lame.EXTREME = 1002;\n    Lame.INSANE = 1003;\n    Lame.STANDARD_FAST = 1004;\n    Lame.EXTREME_FAST = 1005;\n    Lame.MEDIUM = 1006;\n    Lame.MEDIUM_FAST = 1007;\n\n    /**\n     * maximum size of mp3buffer needed if you encode at most 1152 samples for\n     * each call to lame_encode_buffer. see lame_encode_buffer() below\n     * (LAME_MAXMP3BUFFER is now obsolete)\n     */\n    var LAME_MAXMP3BUFFER = (16384 + LAME_MAXALBUMART);\n    Lame.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n\n    var ga;\n    var bs;\n    var p;\n    var qupvt;\n    var qu;\n    var psy = new PsyModel();\n    var vbr;\n    var ver;\n    var id3;\n    var mpglib;\n    this.enc = new Encoder();\n\n    this.setModules = function (_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n        ga = _ga;\n        bs = _bs;\n        p = _p;\n        qupvt = _qupvt;\n        qu = _qu;\n        vbr = _vbr;\n        ver = _ver;\n        id3 = _id3;\n        mpglib = _mpglib;\n        this.enc.setModules(bs, psy, qupvt, vbr);\n    }\n\n    /**\n     * PSY Model related stuff\n     */\n    function PSY() {\n        /**\n         * The dbQ stuff.\n         */\n        this.mask_adjust = 0.;\n        /**\n         * The dbQ stuff.\n         */\n        this.mask_adjust_short = 0.;\n        /* at transition from one scalefactor band to next */\n        /**\n         * Band weight long scalefactor bands.\n         */\n        this.bo_l_weight = new_float(Encoder.SBMAX_l);\n        /**\n         * Band weight short scalefactor bands.\n         */\n        this.bo_s_weight = new_float(Encoder.SBMAX_s);\n    }\n\n    function LowPassHighPass() {\n        this.lowerlimit = 0.;\n    }\n\n    function BandPass(bitrate, lPass) {\n        this.lowpass = lPass;\n    }\n\n    var LAME_ID = 0xFFF88E3B;\n\n    function lame_init_old(gfp) {\n        var gfc;\n\n        gfp.class_id = LAME_ID;\n\n        gfc = gfp.internal_flags = new LameInternalFlags();\n\n        /* Global flags. set defaults here for non-zero values */\n        /* see lame.h for description */\n        /*\n         * set integer values to -1 to mean that LAME will compute the best\n         * value, UNLESS the calling program as set it (and the value is no\n         * longer -1)\n         */\n\n        gfp.mode = MPEGMode.NOT_SET;\n        gfp.original = 1;\n        gfp.in_samplerate = 44100;\n        gfp.num_channels = 2;\n        gfp.num_samples = -1;\n\n        gfp.bWriteVbrTag = true;\n        gfp.quality = -1;\n        gfp.short_blocks = null;\n        gfc.subblock_gain = -1;\n\n        gfp.lowpassfreq = 0;\n        gfp.highpassfreq = 0;\n        gfp.lowpasswidth = -1;\n        gfp.highpasswidth = -1;\n\n        gfp.VBR = VbrMode.vbr_off;\n        gfp.VBR_q = 4;\n        gfp.ATHcurve = -1;\n        gfp.VBR_mean_bitrate_kbps = 128;\n        gfp.VBR_min_bitrate_kbps = 0;\n        gfp.VBR_max_bitrate_kbps = 0;\n        gfp.VBR_hard_min = 0;\n        gfc.VBR_min_bitrate = 1;\n        /* not 0 ????? */\n        gfc.VBR_max_bitrate = 13;\n        /* not 14 ????? */\n\n        gfp.quant_comp = -1;\n        gfp.quant_comp_short = -1;\n\n        gfp.msfix = -1;\n\n        gfc.resample_ratio = 1;\n\n        gfc.OldValue[0] = 180;\n        gfc.OldValue[1] = 180;\n        gfc.CurrentStep[0] = 4;\n        gfc.CurrentStep[1] = 4;\n        gfc.masking_lower = 1;\n        gfc.nsPsy.attackthre = -1;\n        gfc.nsPsy.attackthre_s = -1;\n\n        gfp.scale = -1;\n\n        gfp.athaa_type = -1;\n        gfp.ATHtype = -1;\n        /* default = -1 = set in lame_init_params */\n        gfp.athaa_loudapprox = -1;\n        /* 1 = flat loudness approx. (total energy) */\n        /* 2 = equal loudness curve */\n        gfp.athaa_sensitivity = 0.0;\n        /* no offset */\n        gfp.useTemporal = null;\n        gfp.interChRatio = -1;\n\n        /*\n         * The reason for int mf_samples_to_encode = ENCDELAY + POSTDELAY;\n         * ENCDELAY = internal encoder delay. And then we have to add\n         * POSTDELAY=288 because of the 50% MDCT overlap. A 576 MDCT granule\n         * decodes to 1152 samples. To synthesize the 576 samples centered under\n         * this granule we need the previous granule for the first 288 samples\n         * (no problem), and the next granule for the next 288 samples (not\n         * possible if this is last granule). So we need to pad with 288 samples\n         * to make sure we can encode the 576 samples we are interested in.\n         */\n        gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n        gfp.encoder_padding = 0;\n        gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n        /*\n         * we pad input with this many 0's\n         */\n\n        gfp.findReplayGain = false;\n        gfp.decode_on_the_fly = false;\n\n        gfc.decode_on_the_fly = false;\n        gfc.findReplayGain = false;\n        gfc.findPeakSample = false;\n\n        gfc.RadioGain = 0;\n        gfc.AudiophileGain = 0;\n        gfc.noclipGainChange = 0;\n        gfc.noclipScale = -1.0;\n\n        gfp.preset = 0;\n\n        gfp.write_id3tag_automatic = true;\n        return 0;\n    }\n\n    this.lame_init = function () {\n        var gfp = new LameGlobalFlags();\n\n        var ret = lame_init_old(gfp);\n        if (ret != 0) {\n            return null;\n        }\n\n        gfp.lame_allocated_gfp = 1;\n        return gfp;\n    }\n\n    function filter_coef(x) {\n        if (x > 1.0)\n            return 0.0;\n        if (x <= 0.0)\n            return 1.0;\n\n        return Math.cos(Math.PI / 2 * x);\n    }\n\n    this.nearestBitrateFullIndex = function (bitrate) {\n        /* borrowed from DM abr presets */\n\n        var full_bitrate_table = [8, 16, 24, 32, 40, 48, 56, 64, 80,\n            96, 112, 128, 160, 192, 224, 256, 320];\n\n        var lower_range = 0, lower_range_kbps = 0, upper_range = 0, upper_range_kbps = 0;\n\n        /* We assume specified bitrate will be 320kbps */\n        upper_range_kbps = full_bitrate_table[16];\n        upper_range = 16;\n        lower_range_kbps = full_bitrate_table[16];\n        lower_range = 16;\n\n        /*\n         * Determine which significant bitrates the value specified falls\n         * between, if loop ends without breaking then we were correct above\n         * that the value was 320\n         */\n        for (var b = 0; b < 16; b++) {\n            if ((Math.max(bitrate, full_bitrate_table[b + 1])) != bitrate) {\n                upper_range_kbps = full_bitrate_table[b + 1];\n                upper_range = b + 1;\n                lower_range_kbps = full_bitrate_table[b];\n                lower_range = (b);\n                break;\n                /* We found upper range */\n            }\n        }\n\n        /* Determine which range the value specified is closer to */\n        if ((upper_range_kbps - bitrate) > (bitrate - lower_range_kbps)) {\n            return lower_range;\n        }\n        return upper_range;\n    }\n\n    function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n        /*\n         * Rules:\n         *\n         * - if possible, sfb21 should NOT be used\n         */\n        var suggested_samplefreq = 44100;\n\n        if (input_samplefreq >= 48000)\n            suggested_samplefreq = 48000;\n        else if (input_samplefreq >= 44100)\n            suggested_samplefreq = 44100;\n        else if (input_samplefreq >= 32000)\n            suggested_samplefreq = 32000;\n        else if (input_samplefreq >= 24000)\n            suggested_samplefreq = 24000;\n        else if (input_samplefreq >= 22050)\n            suggested_samplefreq = 22050;\n        else if (input_samplefreq >= 16000)\n            suggested_samplefreq = 16000;\n        else if (input_samplefreq >= 12000)\n            suggested_samplefreq = 12000;\n        else if (input_samplefreq >= 11025)\n            suggested_samplefreq = 11025;\n        else if (input_samplefreq >= 8000)\n            suggested_samplefreq = 8000;\n\n        if (lowpassfreq == -1)\n            return suggested_samplefreq;\n\n        if (lowpassfreq <= 15960)\n            suggested_samplefreq = 44100;\n        if (lowpassfreq <= 15250)\n            suggested_samplefreq = 32000;\n        if (lowpassfreq <= 11220)\n            suggested_samplefreq = 24000;\n        if (lowpassfreq <= 9970)\n            suggested_samplefreq = 22050;\n        if (lowpassfreq <= 7230)\n            suggested_samplefreq = 16000;\n        if (lowpassfreq <= 5420)\n            suggested_samplefreq = 12000;\n        if (lowpassfreq <= 4510)\n            suggested_samplefreq = 11025;\n        if (lowpassfreq <= 3970)\n            suggested_samplefreq = 8000;\n\n        if (input_samplefreq < suggested_samplefreq) {\n            /*\n             * choose a valid MPEG sample frequency above the input sample\n             * frequency to avoid SFB21/12 bitrate bloat rh 061115\n             */\n            if (input_samplefreq > 44100) {\n                return 48000;\n            }\n            if (input_samplefreq > 32000) {\n                return 44100;\n            }\n            if (input_samplefreq > 24000) {\n                return 32000;\n            }\n            if (input_samplefreq > 22050) {\n                return 24000;\n            }\n            if (input_samplefreq > 16000) {\n                return 22050;\n            }\n            if (input_samplefreq > 12000) {\n                return 16000;\n            }\n            if (input_samplefreq > 11025) {\n                return 12000;\n            }\n            if (input_samplefreq > 8000) {\n                return 11025;\n            }\n            return 8000;\n        }\n        return suggested_samplefreq;\n    }\n\n    /**\n     * convert samp freq in Hz to index\n     */\n    function SmpFrqIndex(sample_freq, gpf) {\n        switch (sample_freq) {\n            case 44100:\n                gpf.version = 1;\n                return 0;\n            case 48000:\n                gpf.version = 1;\n                return 1;\n            case 32000:\n                gpf.version = 1;\n                return 2;\n            case 22050:\n                gpf.version = 0;\n                return 0;\n            case 24000:\n                gpf.version = 0;\n                return 1;\n            case 16000:\n                gpf.version = 0;\n                return 2;\n            case 11025:\n                gpf.version = 0;\n                return 0;\n            case 12000:\n                gpf.version = 0;\n                return 1;\n            case 8000:\n                gpf.version = 0;\n                return 2;\n            default:\n                gpf.version = 0;\n                return -1;\n        }\n    }\n\n    /**\n     * @param bRate\n     *            legal rates from 8 to 320\n     */\n    function FindNearestBitrate(bRate, version, samplerate) {\n        /* MPEG-1 or MPEG-2 LSF */\n        if (samplerate < 16000)\n            version = 2;\n\n        var bitrate = Tables.bitrate_table[version][1];\n\n        for (var i = 2; i <= 14; i++) {\n            if (Tables.bitrate_table[version][i] > 0) {\n                if (Math.abs(Tables.bitrate_table[version][i] - bRate) < Math\n                        .abs(bitrate - bRate))\n                    bitrate = Tables.bitrate_table[version][i];\n            }\n        }\n        return bitrate;\n    }\n\n    /**\n     * @param bRate\n     *            legal rates from 32 to 448 kbps\n     * @param version\n     *            MPEG-1 or MPEG-2/2.5 LSF\n     */\n    function BitrateIndex(bRate, version, samplerate) {\n        /* convert bitrate in kbps to index */\n        if (samplerate < 16000)\n            version = 2;\n        for (var i = 0; i <= 14; i++) {\n            if (Tables.bitrate_table[version][i] > 0) {\n                if (Tables.bitrate_table[version][i] == bRate) {\n                    return i;\n                }\n            }\n        }\n        return -1;\n    }\n\n    function optimum_bandwidth(lh, bitrate) {\n        /**\n         * <PRE>\n         *  Input:\n         *      bitrate     total bitrate in kbps\n         *\n         *   Output:\n         *      lowerlimit: best lowpass frequency limit for input filter in Hz\n         *      upperlimit: best highpass frequency limit for input filter in Hz\n         * </PRE>\n         */\n        var freq_map = [new BandPass(8, 2000),\n            new BandPass(16, 3700), new BandPass(24, 3900),\n            new BandPass(32, 5500), new BandPass(40, 7000),\n            new BandPass(48, 7500), new BandPass(56, 10000),\n            new BandPass(64, 11000), new BandPass(80, 13500),\n            new BandPass(96, 15100), new BandPass(112, 15600),\n            new BandPass(128, 17000), new BandPass(160, 17500),\n            new BandPass(192, 18600), new BandPass(224, 19400),\n            new BandPass(256, 19700), new BandPass(320, 20500)];\n\n        var table_index = self.nearestBitrateFullIndex(bitrate);\n        lh.lowerlimit = freq_map[table_index].lowpass;\n    }\n\n    function lame_init_params_ppflt(gfp) {\n        var gfc = gfp.internal_flags;\n        /***************************************************************/\n        /* compute info needed for polyphase filter (filter type==0, default) */\n        /***************************************************************/\n\n        var lowpass_band = 32;\n        var highpass_band = -1;\n\n        if (gfc.lowpass1 > 0) {\n            var minband = 999;\n            for (var band = 0; band <= 31; band++) {\n                var freq = (band / 31.0);\n                /* this band and above will be zeroed: */\n                if (freq >= gfc.lowpass2) {\n                    lowpass_band = Math.min(lowpass_band, band);\n                }\n                if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n                    minband = Math.min(minband, band);\n                }\n            }\n\n            /*\n             * compute the *actual* transition band implemented by the polyphase\n             * filter\n             */\n            if (minband == 999) {\n                gfc.lowpass1 = (lowpass_band - .75) / 31.0;\n            } else {\n                gfc.lowpass1 = (minband - .75) / 31.0;\n            }\n            gfc.lowpass2 = lowpass_band / 31.0;\n        }\n\n        /*\n         * make sure highpass filter is within 90% of what the effective\n         * highpass frequency will be\n         */\n        if (gfc.highpass2 > 0) {\n            if (gfc.highpass2 < .9 * (.75 / 31.0)) {\n                gfc.highpass1 = 0;\n                gfc.highpass2 = 0;\n                System.err.println(\"Warning: highpass filter disabled.  \"\n                    + \"highpass frequency too small\\n\");\n            }\n        }\n\n        if (gfc.highpass2 > 0) {\n            var maxband = -1;\n            for (var band = 0; band <= 31; band++) {\n                var freq = band / 31.0;\n                /* this band and below will be zereod */\n                if (freq <= gfc.highpass1) {\n                    highpass_band = Math.max(highpass_band, band);\n                }\n                if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n                    maxband = Math.max(maxband, band);\n                }\n            }\n            /*\n             * compute the *actual* transition band implemented by the polyphase\n             * filter\n             */\n            gfc.highpass1 = highpass_band / 31.0;\n            if (maxband == -1) {\n                gfc.highpass2 = (highpass_band + .75) / 31.0;\n            } else {\n                gfc.highpass2 = (maxband + .75) / 31.0;\n            }\n        }\n\n        for (var band = 0; band < 32; band++) {\n            var fc1, fc2;\n            var freq = band / 31.0;\n            if (gfc.highpass2 > gfc.highpass1) {\n                fc1 = filter_coef((gfc.highpass2 - freq)\n                    / (gfc.highpass2 - gfc.highpass1 + 1e-20));\n            } else {\n                fc1 = 1.0;\n            }\n            if (gfc.lowpass2 > gfc.lowpass1) {\n                fc2 = filter_coef((freq - gfc.lowpass1)\n                    / (gfc.lowpass2 - gfc.lowpass1 + 1e-20));\n            } else {\n                fc2 = 1.0;\n            }\n            gfc.amp_filter[band] = (fc1 * fc2);\n        }\n    }\n\n    function lame_init_qval(gfp) {\n        var gfc = gfp.internal_flags;\n\n        switch (gfp.quality) {\n            default:\n            case 9: /* no psymodel, no noise shaping */\n                gfc.psymodel = 0;\n                gfc.noise_shaping = 0;\n                gfc.noise_shaping_amp = 0;\n                gfc.noise_shaping_stop = 0;\n                gfc.use_best_huffman = 0;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 8:\n                gfp.quality = 7;\n            //$FALL-THROUGH$\n            case 7:\n                /*\n                 * use psymodel (for short block and m/s switching), but no noise\n                 * shapping\n                 */\n                gfc.psymodel = 1;\n                gfc.noise_shaping = 0;\n                gfc.noise_shaping_amp = 0;\n                gfc.noise_shaping_stop = 0;\n                gfc.use_best_huffman = 0;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 6:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                gfc.noise_shaping_amp = 0;\n                gfc.noise_shaping_stop = 0;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 0;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 5:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                gfc.noise_shaping_amp = 0;\n                gfc.noise_shaping_stop = 0;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 0;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 4:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                gfc.noise_shaping_amp = 0;\n                gfc.noise_shaping_stop = 0;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 1;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 3:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                gfc.noise_shaping_amp = 1;\n                gfc.noise_shaping_stop = 1;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 1;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 2:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                if (gfc.substep_shaping == 0)\n                    gfc.substep_shaping = 2;\n                gfc.noise_shaping_amp = 1;\n                gfc.noise_shaping_stop = 1;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 1;\n                /* inner loop */\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 1:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                if (gfc.substep_shaping == 0)\n                    gfc.substep_shaping = 2;\n                gfc.noise_shaping_amp = 2;\n                gfc.noise_shaping_stop = 1;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 1;\n                gfc.full_outer_loop = 0;\n                break;\n\n            case 0:\n                gfc.psymodel = 1;\n                if (gfc.noise_shaping == 0)\n                    gfc.noise_shaping = 1;\n                if (gfc.substep_shaping == 0)\n                    gfc.substep_shaping = 2;\n                gfc.noise_shaping_amp = 2;\n                gfc.noise_shaping_stop = 1;\n                if (gfc.subblock_gain == -1)\n                    gfc.subblock_gain = 1;\n                gfc.use_best_huffman = 1;\n                /*\n                 * type 2 disabled because of it slowness, in favor of full outer\n                 * loop search\n                 */\n                gfc.full_outer_loop = 0;\n                /*\n                 * full outer loop search disabled because of audible distortions it\n                 * may generate rh 060629\n                 */\n                break;\n        }\n\n    }\n\n    function lame_init_bitstream(gfp) {\n        var gfc = gfp.internal_flags;\n        gfp.frameNum = 0;\n\n        if (gfp.write_id3tag_automatic) {\n            id3.id3tag_write_v2(gfp);\n        }\n        /* initialize histogram data optionally used by frontend */\n\n        gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n        gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n        gfc.PeakSample = 0.0;\n\n        /* Write initial VBR Header to bitstream and init VBR data */\n        if (gfp.bWriteVbrTag)\n            vbr.InitVbrTag(gfp);\n    }\n\n    /********************************************************************\n     * initialize internal params based on data in gf (globalflags struct filled\n     * in by calling program)\n     *\n     * OUTLINE:\n     *\n     * We first have some complex code to determine bitrate, output samplerate\n     * and mode. It is complicated by the fact that we allow the user to set\n     * some or all of these parameters, and need to determine best possible\n     * values for the rest of them:\n     *\n     * 1. set some CPU related flags 2. check if we are mono.mono, stereo.mono\n     * or stereo.stereo 3. compute bitrate and output samplerate: user may have\n     * set compression ratio user may have set a bitrate user may have set a\n     * output samplerate 4. set some options which depend on output samplerate\n     * 5. compute the actual compression ratio 6. set mode based on compression\n     * ratio\n     *\n     * The remaining code is much simpler - it just sets options based on the\n     * mode & compression ratio:\n     *\n     * set allow_diff_short based on mode select lowpass filter based on\n     * compression ratio & mode set the bitrate index, and min/max bitrates for\n     * VBR modes disable VBR tag if it is not appropriate initialize the\n     * bitstream initialize scalefac_band data set sideinfo_len (based on\n     * channels, CRC, out_samplerate) write an id3v2 tag into the bitstream\n     * write VBR tag into the bitstream set mpeg1/2 flag estimate the number of\n     * frames (based on a lot of data)\n     *\n     * now we set more flags: nspsytune: see code VBR modes see code CBR/ABR see\n     * code\n     *\n     * Finally, we set the algorithm flags based on the gfp.quality value\n     * lame_init_qval(gfp);\n     *\n     ********************************************************************/\n    this.lame_init_params = function (gfp) {\n        var gfc = gfp.internal_flags;\n\n        gfc.Class_ID = 0;\n        if (gfc.ATH == null)\n            gfc.ATH = new ATH();\n        if (gfc.PSY == null)\n            gfc.PSY = new PSY();\n        if (gfc.rgdata == null)\n            gfc.rgdata = new ReplayGain();\n\n        gfc.channels_in = gfp.num_channels;\n        if (gfc.channels_in == 1)\n            gfp.mode = MPEGMode.MONO;\n        gfc.channels_out = (gfp.mode == MPEGMode.MONO) ? 1 : 2;\n        gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n        if (gfp.mode == MPEGMode.MONO)\n            gfp.force_ms = false;\n        /*\n         * don't allow forced mid/side stereo for mono output\n         */\n\n        if (gfp.VBR == VbrMode.vbr_off && gfp.VBR_mean_bitrate_kbps != 128\n            && gfp.brate == 0)\n            gfp.brate = gfp.VBR_mean_bitrate_kbps;\n\n        if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_mtrh\n            || gfp.VBR == VbrMode.vbr_mt) {\n            /* these modes can handle free format condition */\n        } else {\n            gfp.free_format = false;\n            /* mode can't be mixed with free format */\n        }\n\n        if (gfp.VBR == VbrMode.vbr_off && gfp.brate == 0) {\n            /* no bitrate or compression ratio specified, use 11.025 */\n            if (BitStream.EQ(gfp.compression_ratio, 0))\n                gfp.compression_ratio = 11.025;\n            /*\n             * rate to compress a CD down to exactly 128000 bps\n             */\n        }\n\n        /* find bitrate if user specify a compression ratio */\n        if (gfp.VBR == VbrMode.vbr_off && gfp.compression_ratio > 0) {\n\n            if (gfp.out_samplerate == 0)\n                gfp.out_samplerate = map2MP3Frequency((int)(0.97 * gfp.in_samplerate));\n            /*\n             * round up with a margin of 3 %\n             */\n\n            /*\n             * choose a bitrate for the output samplerate which achieves\n             * specified compression ratio\n             */\n            gfp.brate = 0 | (gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.compression_ratio));\n\n            /* we need the version for the bitrate table look up */\n            gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n\n            if (!gfp.free_format) /*\n             * for non Free Format find the nearest allowed\n             * bitrate\n             */\n                gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n                    gfp.out_samplerate);\n        }\n\n        if (gfp.out_samplerate != 0) {\n            if (gfp.out_samplerate < 16000) {\n                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n                    8);\n                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n                    64);\n            } else if (gfp.out_samplerate < 32000) {\n                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n                    8);\n                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n                    160);\n            } else {\n                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n                    32);\n                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n                    320);\n            }\n        }\n\n        /****************************************************************/\n        /* if a filter has not been enabled, see if we should add one: */\n        /****************************************************************/\n        if (gfp.lowpassfreq == 0) {\n            var lowpass = 16000.;\n\n            switch (gfp.VBR) {\n                case VbrMode.vbr_off:\n                {\n                    var lh = new LowPassHighPass();\n                    optimum_bandwidth(lh, gfp.brate);\n                    lowpass = lh.lowerlimit;\n                    break;\n                }\n                case VbrMode.vbr_abr:\n                {\n                    var lh = new LowPassHighPass();\n                    optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n                    lowpass = lh.lowerlimit;\n                    break;\n                }\n                case VbrMode.vbr_rh:\n                {\n                    var x = [19500, 19000, 18600, 18000, 17500, 16000,\n                        15600, 14900, 12500, 10000, 3950];\n                    if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n                        var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n                        lowpass = linear_int(a, b, m);\n                    } else {\n                        lowpass = 19500;\n                    }\n                    break;\n                }\n                default:\n                {\n                    var x = [19500, 19000, 18500, 18000, 17500, 16500,\n                        15500, 14500, 12500, 9500, 3950];\n                    if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n                        var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n                        lowpass = linear_int(a, b, m);\n                    } else {\n                        lowpass = 19500;\n                    }\n                }\n            }\n            if (gfp.mode == MPEGMode.MONO\n                && (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr))\n                lowpass *= 1.5;\n\n            gfp.lowpassfreq = lowpass | 0;\n        }\n\n        if (gfp.out_samplerate == 0) {\n            if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n                gfp.lowpassfreq = gfp.in_samplerate / 2;\n            }\n            gfp.out_samplerate = optimum_samplefreq(gfp.lowpassfreq | 0,\n                gfp.in_samplerate);\n        }\n\n        gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n        gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n\n        if (gfp.VBR == VbrMode.vbr_off) {\n            gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n                / (1.e3 * gfp.brate);\n        }\n        if (gfp.VBR == VbrMode.vbr_abr) {\n            gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n                / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n        }\n\n        /*\n         * do not compute ReplayGain values and do not find the peak sample if\n         * we can't store them\n         */\n        if (!gfp.bWriteVbrTag) {\n            gfp.findReplayGain = false;\n            gfp.decode_on_the_fly = false;\n            gfc.findPeakSample = false;\n        }\n        gfc.findReplayGain = gfp.findReplayGain;\n        gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n\n        if (gfc.decode_on_the_fly)\n            gfc.findPeakSample = true;\n\n        if (gfc.findReplayGain) {\n            if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n                gfp.internal_flags = null;\n                return -6;\n            }\n        }\n\n        if (gfc.decode_on_the_fly && !gfp.decode_only) {\n            if (gfc.hip != null) {\n                mpglib.hip_decode_exit(gfc.hip);\n            }\n            gfc.hip = mpglib.hip_decode_init();\n        }\n\n        gfc.mode_gr = gfp.out_samplerate <= 24000 ? 1 : 2;\n        /*\n         * Number of granules per frame\n         */\n        gfp.framesize = 576 * gfc.mode_gr;\n        gfp.encoder_delay = Encoder.ENCDELAY;\n\n        gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n\n        /**\n         * <PRE>\n         *  sample freq       bitrate     compression ratio\n         *     [kHz]      [kbps/channel]   for 16 bit input\n         *     44.1            56               12.6\n         *     44.1            64               11.025\n         *     44.1            80                8.82\n         *     22.05           24               14.7\n         *     22.05           32               11.025\n         *     22.05           40                8.82\n         *     16              16               16.0\n         *     16              24               10.667\n         * </PRE>\n         */\n        /**\n         * <PRE>\n         *  For VBR, take a guess at the compression_ratio.\n         *  For example:\n         *\n         *    VBR_q    compression     like\n         *     -        4.4         320 kbps/44 kHz\n         *   0...1      5.5         256 kbps/44 kHz\n         *     2        7.3         192 kbps/44 kHz\n         *     4        8.8         160 kbps/44 kHz\n         *     6       11           128 kbps/44 kHz\n         *     9       14.7          96 kbps\n         *\n         *  for lower bitrates, downsample with --resample\n         * </PRE>\n         */\n        switch (gfp.VBR) {\n            case VbrMode.vbr_mt:\n            case VbrMode.vbr_rh:\n            case VbrMode.vbr_mtrh:\n            {\n                /* numbers are a bit strange, but they determine the lowpass value */\n                var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14,\n                    15, 16.5];\n                gfp.compression_ratio = cmp[gfp.VBR_q];\n            }\n                break;\n            case VbrMode.vbr_abr:\n                gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n                    / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n                break;\n            default:\n                gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n                    / (1.e3 * gfp.brate);\n                break;\n        }\n\n        /*\n         * mode = -1 (not set by user) or mode = MONO (because of only 1 input\n         * channel). If mode has not been set, then select J-STEREO\n         */\n        if (gfp.mode == MPEGMode.NOT_SET) {\n            gfp.mode = MPEGMode.JOINT_STEREO;\n        }\n\n        /* apply user driven high pass filter */\n        if (gfp.highpassfreq > 0) {\n            gfc.highpass1 = 2. * gfp.highpassfreq;\n\n            if (gfp.highpasswidth >= 0)\n                gfc.highpass2 = 2. * (gfp.highpassfreq + gfp.highpasswidth);\n            else\n            /* 0% above on default */\n                gfc.highpass2 = (1 + 0.00) * 2. * gfp.highpassfreq;\n\n            gfc.highpass1 /= gfp.out_samplerate;\n            gfc.highpass2 /= gfp.out_samplerate;\n        } else {\n            gfc.highpass1 = 0;\n            gfc.highpass2 = 0;\n        }\n        /* apply user driven low pass filter */\n        if (gfp.lowpassfreq > 0) {\n            gfc.lowpass2 = 2. * gfp.lowpassfreq;\n            if (gfp.lowpasswidth >= 0) {\n                gfc.lowpass1 = 2. * (gfp.lowpassfreq - gfp.lowpasswidth);\n                if (gfc.lowpass1 < 0) /* has to be >= 0 */\n                    gfc.lowpass1 = 0;\n            } else { /* 0% below on default */\n                gfc.lowpass1 = (1 - 0.00) * 2. * gfp.lowpassfreq;\n            }\n            gfc.lowpass1 /= gfp.out_samplerate;\n            gfc.lowpass2 /= gfp.out_samplerate;\n        } else {\n            gfc.lowpass1 = 0;\n            gfc.lowpass2 = 0;\n        }\n\n        /**********************************************************************/\n        /* compute info needed for polyphase filter (filter type==0, default) */\n        /**********************************************************************/\n        lame_init_params_ppflt(gfp);\n        /*******************************************************\n         * samplerate and bitrate index\n         *******************************************************/\n        gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n        if (gfc.samplerate_index < 0) {\n            gfp.internal_flags = null;\n            return -1;\n        }\n\n        if (gfp.VBR == VbrMode.vbr_off) {\n            if (gfp.free_format) {\n                gfc.bitrate_index = 0;\n            } else {\n                gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n                    gfp.out_samplerate);\n                gfc.bitrate_index = BitrateIndex(gfp.brate, gfp.version,\n                    gfp.out_samplerate);\n                if (gfc.bitrate_index <= 0) {\n                    gfp.internal_flags = null;\n                    return -1;\n                }\n            }\n        } else {\n            gfc.bitrate_index = 1;\n        }\n\n        /* for CBR, we will write an \"info\" tag. */\n\n        if (gfp.analysis)\n            gfp.bWriteVbrTag = false;\n\n        /* some file options not allowed if output is: not specified or stdout */\n        if (gfc.pinfo != null)\n            gfp.bWriteVbrTag = false;\n        /* disable Xing VBR tag */\n\n        bs.init_bit_stream_w(gfc);\n\n        var j = gfc.samplerate_index + (3 * gfp.version) + 6\n            * (gfp.out_samplerate < 16000 ? 1 : 0);\n        for (var i = 0; i < Encoder.SBMAX_l + 1; i++)\n            gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n\n        for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n            var size = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21])\n                / Encoder.PSFB21;\n            var start = gfc.scalefac_band.l[21] + i * size;\n            gfc.scalefac_band.psfb21[i] = start;\n        }\n        gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n\n        for (var i = 0; i < Encoder.SBMAX_s + 1; i++)\n            gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n\n        for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n            var size = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n                / Encoder.PSFB12;\n            var start = gfc.scalefac_band.s[12] + i * size;\n            gfc.scalefac_band.psfb12[i] = start;\n        }\n        gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n        /* determine the mean bitrate for main data */\n        if (gfp.version == 1) /* MPEG 1 */\n            gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 17 : 4 + 32;\n        else\n        /* MPEG 2 */\n            gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 9 : 4 + 17;\n\n        if (gfp.error_protection)\n            gfc.sideinfo_len += 2;\n\n        lame_init_bitstream(gfp);\n\n        gfc.Class_ID = LAME_ID;\n\n        {\n            var k;\n\n            for (k = 0; k < 19; k++)\n                gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n\n            if (gfp.ATHtype == -1)\n                gfp.ATHtype = 4;\n        }\n        assert(gfp.VBR_q <= 9);\n        assert(gfp.VBR_q >= 0);\n\n        switch (gfp.VBR) {\n\n            case VbrMode.vbr_mt:\n                gfp.VBR = VbrMode.vbr_mtrh;\n            //$FALL-THROUGH$\n            case VbrMode.vbr_mtrh:\n            {\n                if (gfp.useTemporal == null) {\n                    gfp.useTemporal = false;\n                    /* off by default for this VBR mode */\n                }\n\n                p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n                /**\n                 * <PRE>\n                 *   The newer VBR code supports only a limited\n                 *     subset of quality levels:\n                 *     9-5=5 are the same, uses x^3/4 quantization\n                 *   4-0=0 are the same  5 plus best huffman divide code\n                 * </PRE>\n                 */\n                if (gfp.quality < 0)\n                    gfp.quality = LAME_DEFAULT_QUALITY;\n                if (gfp.quality < 5)\n                    gfp.quality = 0;\n                if (gfp.quality > 5)\n                    gfp.quality = 5;\n\n                gfc.PSY.mask_adjust = gfp.maskingadjust;\n                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n                /*\n                 * sfb21 extra only with MPEG-1 at higher sampling rates\n                 */\n                if (gfp.experimentalY)\n                    gfc.sfb21_extra = false;\n                else\n                    gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n                gfc.iteration_loop = new VBRNewIterationLoop(qu);\n                break;\n\n            }\n            case VbrMode.vbr_rh:\n            {\n\n                p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n\n                gfc.PSY.mask_adjust = gfp.maskingadjust;\n                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n                /*\n                 * sfb21 extra only with MPEG-1 at higher sampling rates\n                 */\n                if (gfp.experimentalY)\n                    gfc.sfb21_extra = false;\n                else\n                    gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n                /*\n                 * VBR needs at least the output of GPSYCHO, so we have to garantee\n                 * that by setting a minimum quality level, actually level 6 does\n                 * it. down to level 6\n                 */\n                if (gfp.quality > 6)\n                    gfp.quality = 6;\n\n                if (gfp.quality < 0)\n                    gfp.quality = LAME_DEFAULT_QUALITY;\n\n                gfc.iteration_loop = new VBROldIterationLoop(qu);\n                break;\n            }\n\n            default: /* cbr/abr */\n            {\n                var vbrmode;\n\n                /*\n                 * no sfb21 extra with CBR code\n                 */\n                gfc.sfb21_extra = false;\n\n                if (gfp.quality < 0)\n                    gfp.quality = LAME_DEFAULT_QUALITY;\n\n                vbrmode = gfp.VBR;\n                if (vbrmode == VbrMode.vbr_off)\n                    gfp.VBR_mean_bitrate_kbps = gfp.brate;\n                /* second, set parameters depending on bitrate */\n                p.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n                gfp.VBR = vbrmode;\n\n                gfc.PSY.mask_adjust = gfp.maskingadjust;\n                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n                if (vbrmode == VbrMode.vbr_off) {\n                    gfc.iteration_loop = new CBRNewIterationLoop(qu);\n                } else {\n                    gfc.iteration_loop = new ABRIterationLoop(qu);\n                }\n                break;\n            }\n        }\n        assert(gfp.scale >= 0);\n        /* initialize default values common for all modes */\n\n        if (gfp.VBR != VbrMode.vbr_off) { /* choose a min/max bitrate for VBR */\n            /* if the user didn't specify VBR_max_bitrate: */\n            gfc.VBR_min_bitrate = 1;\n            /*\n             * default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1)\n             */\n            gfc.VBR_max_bitrate = 14;\n            /*\n             * default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1)\n             */\n            if (gfp.out_samplerate < 16000)\n                gfc.VBR_max_bitrate = 8;\n            /* default: allow 64 kbps (MPEG-2.5) */\n            if (gfp.VBR_min_bitrate_kbps != 0) {\n                gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n                    gfp.VBR_min_bitrate_kbps, gfp.version,\n                    gfp.out_samplerate);\n                gfc.VBR_min_bitrate = BitrateIndex(gfp.VBR_min_bitrate_kbps,\n                    gfp.version, gfp.out_samplerate);\n                if (gfc.VBR_min_bitrate < 0)\n                    return -1;\n            }\n            if (gfp.VBR_max_bitrate_kbps != 0) {\n                gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n                    gfp.VBR_max_bitrate_kbps, gfp.version,\n                    gfp.out_samplerate);\n                gfc.VBR_max_bitrate = BitrateIndex(gfp.VBR_max_bitrate_kbps,\n                    gfp.version, gfp.out_samplerate);\n                if (gfc.VBR_max_bitrate < 0)\n                    return -1;\n            }\n            gfp.VBR_min_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n            gfp.VBR_max_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n            gfp.VBR_mean_bitrate_kbps = Math.min(\n                Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n                gfp.VBR_mean_bitrate_kbps);\n            gfp.VBR_mean_bitrate_kbps = Math.max(\n                Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n                gfp.VBR_mean_bitrate_kbps);\n        }\n\n        /* just another daily changing developer switch */\n        if (gfp.tune) {\n            gfc.PSY.mask_adjust += gfp.tune_value_a;\n            gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n        }\n\n        /* initialize internal qval settings */\n        lame_init_qval(gfp);\n        assert(gfp.scale >= 0);\n        /*\n         * automatic ATH adjustment on\n         */\n        if (gfp.athaa_type < 0)\n            gfc.ATH.useAdjust = 3;\n        else\n            gfc.ATH.useAdjust = gfp.athaa_type;\n\n        /* initialize internal adaptive ATH settings -jd */\n        gfc.ATH.aaSensitivityP = Math.pow(10.0, gfp.athaa_sensitivity\n            / -10.0);\n\n        if (gfp.short_blocks == null) {\n            gfp.short_blocks = ShortBlock.short_block_allowed;\n        }\n\n        /*\n         * Note Jan/2003: Many hardware decoders cannot handle short blocks in\n         * regular stereo mode unless they are coupled (same type in both\n         * channels) it is a rare event (1 frame per min. or so) that LAME would\n         * use uncoupled short blocks, so lets turn them off until we decide how\n         * to handle this. No other encoders allow uncoupled short blocks, even\n         * though it is in the standard.\n         */\n        /*\n         * rh 20040217: coupling makes no sense for mono and dual-mono streams\n         */\n        if (gfp.short_blocks == ShortBlock.short_block_allowed\n            && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n            gfp.short_blocks = ShortBlock.short_block_coupled;\n        }\n\n        if (gfp.quant_comp < 0)\n            gfp.quant_comp = 1;\n        if (gfp.quant_comp_short < 0)\n            gfp.quant_comp_short = 0;\n\n        if (gfp.msfix < 0)\n            gfp.msfix = 0;\n\n        /* select psychoacoustic model */\n        gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n\n        if (gfp.internal_flags.nsPsy.attackthre < 0)\n            gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n        if (gfp.internal_flags.nsPsy.attackthre_s < 0)\n            gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n\n        assert(gfp.scale >= 0);\n\n        if (gfp.scale < 0)\n            gfp.scale = 1;\n\n        if (gfp.ATHtype < 0)\n            gfp.ATHtype = 4;\n\n        if (gfp.ATHcurve < 0)\n            gfp.ATHcurve = 4;\n\n        if (gfp.athaa_loudapprox < 0)\n            gfp.athaa_loudapprox = 2;\n\n        if (gfp.interChRatio < 0)\n            gfp.interChRatio = 0;\n\n        if (gfp.useTemporal == null)\n            gfp.useTemporal = true;\n        /* on by default */\n\n        /*\n         * padding method as described in\n         * \"MPEG-Layer3 / Bitstream Syntax and Decoding\" by Martin Sieler, Ralph\n         * Sperschneider\n         *\n         * note: there is no padding for the very first frame\n         *\n         * Robert Hegemann 2000-06-22\n         */\n        gfc.slot_lag = gfc.frac_SpF = 0;\n        if (gfp.VBR == VbrMode.vbr_off)\n            gfc.slot_lag = gfc.frac_SpF = (((gfp.version + 1) * 72000 * gfp.brate) % gfp.out_samplerate) | 0;\n\n        qupvt.iteration_init(gfp);\n        psy.psymodel_init(gfp);\n        assert(gfp.scale >= 0);\n        return 0;\n    }\n\n    function update_inbuffer_size(gfc, nsamples) {\n        if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n            gfc.in_buffer_0 = new_float(nsamples);\n            gfc.in_buffer_1 = new_float(nsamples);\n            gfc.in_buffer_nsamples = nsamples;\n        }\n    }\n\n    this.lame_encode_flush = function (gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n        var gfc = gfp.internal_flags;\n        var buffer = new_short_n([2, 1152]);\n        var imp3 = 0, mp3count, mp3buffer_size_remaining;\n\n        /*\n         * we always add POSTDELAY=288 padding to make sure granule with real\n         * data can be complety decoded (because of 50% overlap with next\n         * granule\n         */\n        var end_padding;\n        var frames_left;\n        var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n        var mf_needed = calcNeeded(gfp);\n\n        /* Was flush already called? */\n        if (gfc.mf_samples_to_encode < 1) {\n            return 0;\n        }\n        mp3count = 0;\n\n        if (gfp.in_samplerate != gfp.out_samplerate) {\n            /*\n             * delay due to resampling; needs to be fixed, if resampling code\n             * gets changed\n             */\n            samples_to_encode += 16. * gfp.out_samplerate / gfp.in_samplerate;\n        }\n        end_padding = gfp.framesize - (samples_to_encode % gfp.framesize);\n        if (end_padding < 576)\n            end_padding += gfp.framesize;\n        gfp.encoder_padding = end_padding;\n\n        frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n\n        /*\n         * send in a frame of 0 padding until all internal sample buffers are\n         * flushed\n         */\n        while (frames_left > 0 && imp3 >= 0) {\n            var bunch = mf_needed - gfc.mf_size;\n            var frame_num = gfp.frameNum;\n\n            bunch *= gfp.in_samplerate;\n            bunch /= gfp.out_samplerate;\n            if (bunch > 1152)\n                bunch = 1152;\n            if (bunch < 1)\n                bunch = 1;\n\n            mp3buffer_size_remaining = mp3buffer_size - mp3count;\n\n            /* if user specifed buffer size = 0, dont check size */\n            if (mp3buffer_size == 0)\n                mp3buffer_size_remaining = 0;\n\n            imp3 = this.lame_encode_buffer(gfp, buffer[0], buffer[1], bunch,\n                mp3buffer, mp3bufferPos, mp3buffer_size_remaining);\n\n            mp3bufferPos += imp3;\n            mp3count += imp3;\n            frames_left -= (frame_num != gfp.frameNum) ? 1 : 0;\n        }\n        /*\n         * Set gfc.mf_samples_to_encode to 0, so we may detect and break loops\n         * calling it more than once in a row.\n         */\n        gfc.mf_samples_to_encode = 0;\n\n        if (imp3 < 0) {\n            /* some type of fatal error */\n            return imp3;\n        }\n\n        mp3buffer_size_remaining = mp3buffer_size - mp3count;\n        /* if user specifed buffer size = 0, dont check size */\n        if (mp3buffer_size == 0)\n            mp3buffer_size_remaining = 0;\n\n        /* mp3 related stuff. bit buffer might still contain some mp3 data */\n        bs.flush_bitstream(gfp);\n        imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n            mp3buffer_size_remaining, 1);\n        if (imp3 < 0) {\n            /* some type of fatal error */\n            return imp3;\n        }\n        mp3bufferPos += imp3;\n        mp3count += imp3;\n        mp3buffer_size_remaining = mp3buffer_size - mp3count;\n        /* if user specifed buffer size = 0, dont check size */\n        if (mp3buffer_size == 0)\n            mp3buffer_size_remaining = 0;\n\n        if (gfp.write_id3tag_automatic) {\n            /* write a id3 tag to the bitstream */\n            id3.id3tag_write_v1(gfp);\n\n            imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n                mp3buffer_size_remaining, 0);\n\n            if (imp3 < 0) {\n                return imp3;\n            }\n            mp3count += imp3;\n        }\n        return mp3count;\n    };\n\n    this.lame_encode_buffer = function (gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n        var gfc = gfp.internal_flags;\n        var in_buffer = [null, null];\n\n        if (gfc.Class_ID != LAME_ID)\n            return -3;\n\n        if (nsamples == 0)\n            return 0;\n\n        update_inbuffer_size(gfc, nsamples);\n\n        in_buffer[0] = gfc.in_buffer_0;\n        in_buffer[1] = gfc.in_buffer_1;\n\n        /* make a copy of input buffer, changing type to sample_t */\n        for (var i = 0; i < nsamples; i++) {\n            in_buffer[0][i] = buffer_l[i];\n            if (gfc.channels_in > 1)\n                in_buffer[1][i] = buffer_r[i];\n        }\n\n        return lame_encode_buffer_sample(gfp, in_buffer[0], in_buffer[1],\n            nsamples, mp3buf, mp3bufPos, mp3buf_size);\n    }\n\n    function calcNeeded(gfp) {\n        var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n        /*\n         * amount needed for FFT\n         */\n        mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n        assert(LameInternalFlags.MFSIZE >= mf_needed);\n\n        return mf_needed;\n    }\n\n    function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n        var gfc = gfp.internal_flags;\n        var mp3size = 0, ret, i, ch, mf_needed;\n        var mp3out;\n        var mfbuf = [null, null];\n        var in_buffer = [null, null];\n\n        if (gfc.Class_ID != LAME_ID)\n            return -3;\n\n        if (nsamples == 0)\n            return 0;\n\n        /* copy out any tags that may have been written into bitstream */\n        mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n        if (mp3out < 0)\n            return mp3out;\n        /* not enough buffer space */\n        mp3bufPos += mp3out;\n        mp3size += mp3out;\n\n        in_buffer[0] = buffer_l;\n        in_buffer[1] = buffer_r;\n\n        /* Apply user defined re-scaling */\n\n        /* user selected scaling of the samples */\n        if (BitStream.NEQ(gfp.scale, 0) && BitStream.NEQ(gfp.scale, 1.0)) {\n            for (i = 0; i < nsamples; ++i) {\n                in_buffer[0][i] *= gfp.scale;\n                if (gfc.channels_out == 2)\n                    in_buffer[1][i] *= gfp.scale;\n            }\n        }\n\n        /* user selected scaling of the channel 0 (left) samples */\n        if (BitStream.NEQ(gfp.scale_left, 0)\n            && BitStream.NEQ(gfp.scale_left, 1.0)) {\n            for (i = 0; i < nsamples; ++i) {\n                in_buffer[0][i] *= gfp.scale_left;\n            }\n        }\n\n        /* user selected scaling of the channel 1 (right) samples */\n        if (BitStream.NEQ(gfp.scale_right, 0)\n            && BitStream.NEQ(gfp.scale_right, 1.0)) {\n            for (i = 0; i < nsamples; ++i) {\n                in_buffer[1][i] *= gfp.scale_right;\n            }\n        }\n\n        /* Downsample to Mono if 2 channels in and 1 channel out */\n        if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n            for (i = 0; i < nsamples; ++i) {\n                in_buffer[0][i] = 0.5 * ( in_buffer[0][i] + in_buffer[1][i]);\n                in_buffer[1][i] = 0.0;\n            }\n        }\n\n        mf_needed = calcNeeded(gfp);\n\n        mfbuf[0] = gfc.mfbuf[0];\n        mfbuf[1] = gfc.mfbuf[1];\n\n        var in_bufferPos = 0;\n        while (nsamples > 0) {\n            var in_buffer_ptr = [null, null];\n            var n_in = 0;\n            /* number of input samples processed with fill_buffer */\n            var n_out = 0;\n            /* number of samples output with fill_buffer */\n            /* n_in <> n_out if we are resampling */\n\n            in_buffer_ptr[0] = in_buffer[0];\n            in_buffer_ptr[1] = in_buffer[1];\n            /* copy in new samples into mfbuf, with resampling */\n            var inOut = new InOut();\n            fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples,\n                inOut);\n            n_in = inOut.n_in;\n            n_out = inOut.n_out;\n\n            /* compute ReplayGain of resampled input if requested */\n            if (gfc.findReplayGain && !gfc.decode_on_the_fly)\n                if (ga.AnalyzeSamples(gfc.rgdata, mfbuf[0], gfc.mf_size,\n                        mfbuf[1], gfc.mf_size, n_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n                    return -6;\n\n            /* update in_buffer counters */\n            nsamples -= n_in;\n            in_bufferPos += n_in;\n            if (gfc.channels_out == 2)\n                ;// in_bufferPos += n_in;\n\n            /* update mfbuf[] counters */\n            gfc.mf_size += n_out;\n            assert(gfc.mf_size <= LameInternalFlags.MFSIZE);\n\n            /*\n             * lame_encode_flush may have set gfc.mf_sample_to_encode to 0 so we\n             * have to reinitialize it here when that happened.\n             */\n            if (gfc.mf_samples_to_encode < 1) {\n                gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n            }\n            gfc.mf_samples_to_encode += n_out;\n\n            if (gfc.mf_size >= mf_needed) {\n                /* encode the frame. */\n                /* mp3buf = pointer to current location in buffer */\n                /* mp3buf_size = size of original mp3 output buffer */\n                /* = 0 if we should not worry about the */\n                /* buffer size because calling program is */\n                /* to lazy to compute it */\n                /* mp3size = size of data written to buffer so far */\n                /* mp3buf_size-mp3size = amount of space avalable */\n\n                var buf_size = mp3buf_size - mp3size;\n                if (mp3buf_size == 0)\n                    buf_size = 0;\n\n                ret = lame_encode_frame(gfp, mfbuf[0], mfbuf[1], mp3buf,\n                    mp3bufPos, buf_size);\n\n                if (ret < 0)\n                    return ret;\n                mp3bufPos += ret;\n                mp3size += ret;\n\n                /* shift out old samples */\n                gfc.mf_size -= gfp.framesize;\n                gfc.mf_samples_to_encode -= gfp.framesize;\n                for (ch = 0; ch < gfc.channels_out; ch++)\n                    for (i = 0; i < gfc.mf_size; i++)\n                        mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n            }\n        }\n        assert(nsamples == 0);\n\n        return mp3size;\n    }\n\n    function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n        var ret = self.enc.lame_encode_mp3_frame(gfp, inbuf_l, inbuf_r, mp3buf,\n            mp3bufPos, mp3buf_size);\n        gfp.frameNum++;\n        return ret;\n    }\n\n    function InOut() {\n        this.n_in = 0;\n        this.n_out = 0;\n    }\n\n\n    function NumUsed() {\n        this.num_used = 0;\n    }\n\n    /**\n     * Greatest common divisor.\n     * <p>\n     * Joint work of Euclid and M. Hendry\n     */\n    function gcd(i, j) {\n        return j != 0 ? gcd(j, i % j) : i;\n    }\n\n    /**\n     * Resampling via FIR filter, blackman window.\n     */\n    function blackman(x, fcn, l) {\n        /*\n         * This algorithm from: SIGNAL PROCESSING ALGORITHMS IN FORTRAN AND C\n         * S.D. Stearns and R.A. David, Prentice-Hall, 1992\n         */\n        var wcn = (Math.PI * fcn);\n\n        x /= l;\n        if (x < 0)\n            x = 0;\n        if (x > 1)\n            x = 1;\n        var x2 = x - .5;\n\n        var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n        if (Math.abs(x2) < 1e-9)\n            return (wcn / Math.PI);\n        else\n            return (bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2));\n    }\n\n    function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n        var gfc = gfp.internal_flags;\n        var i, j = 0, k;\n        /* number of convolution functions to pre-compute */\n        var bpc = gfp.out_samplerate\n            / gcd(gfp.out_samplerate, gfp.in_samplerate);\n        if (bpc > LameInternalFlags.BPC)\n            bpc = LameInternalFlags.BPC;\n\n        var intratio = (Math.abs(gfc.resample_ratio\n            - Math.floor(.5 + gfc.resample_ratio)) < .0001) ? 1 : 0;\n        var fcn = 1.00 / gfc.resample_ratio;\n        if (fcn > 1.00)\n            fcn = 1.00;\n        var filter_l = 31;\n        if (0 == filter_l % 2)\n            --filter_l;\n        /* must be odd */\n        filter_l += intratio;\n        /* unless resample_ratio=int, it must be even */\n\n        var BLACKSIZE = filter_l + 1;\n        /* size of data needed for FIR */\n\n        if (gfc.fill_buffer_resample_init == 0) {\n            gfc.inbuf_old[0] = new_float(BLACKSIZE);\n            gfc.inbuf_old[1] = new_float(BLACKSIZE);\n            for (i = 0; i <= 2 * bpc; ++i)\n                gfc.blackfilt[i] = new_float(BLACKSIZE);\n\n            gfc.itime[0] = 0;\n            gfc.itime[1] = 0;\n\n            /* precompute blackman filter coefficients */\n            for (j = 0; j <= 2 * bpc; j++) {\n                var sum = 0.;\n                var offset = (j - bpc) / (2. * bpc);\n                for (i = 0; i <= filter_l; i++)\n                    sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn,\n                        filter_l);\n                for (i = 0; i <= filter_l; i++)\n                    gfc.blackfilt[j][i] /= sum;\n            }\n            gfc.fill_buffer_resample_init = 1;\n        }\n\n        var inbuf_old = gfc.inbuf_old[ch];\n\n        /* time of j'th element in inbuf = itime + j/ifreq; */\n        /* time of k'th element in outbuf = j/ofreq */\n        for (k = 0; k < desired_len; k++) {\n            var time0;\n            var joff;\n\n            time0 = k * gfc.resample_ratio;\n            /* time of k'th output sample */\n            j = 0 | Math.floor(time0 - gfc.itime[ch]);\n\n            /* check if we need more input data */\n            if ((filter_l + j - filter_l / 2) >= len)\n                break;\n\n            /* blackman filter. by default, window centered at j+.5(filter_l%2) */\n            /* but we want a window centered at time0. */\n            var offset = (time0 - gfc.itime[ch] - (j + .5 * (filter_l % 2)));\n            assert(Math.abs(offset) <= .501);\n\n            /* find the closest precomputed window for this offset: */\n            joff = 0 | Math.floor((offset * 2 * bpc) + bpc + .5);\n            var xvalue = 0.;\n            for (i = 0; i <= filter_l; ++i) {\n                var j2 = i + j - filter_l / 2;\n                var y;\n                assert(j2 < len);\n                assert(j2 + BLACKSIZE >= 0);\n                y = (j2 < 0) ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos\n                + j2];\n                xvalue += y * gfc.blackfilt[joff][i];\n            }\n            outbuf[outbufPos + k] = xvalue;\n        }\n\n        /* k = number of samples added to outbuf */\n        /* last k sample used data from [j-filter_l/2,j+filter_l-filter_l/2] */\n\n        /* how many samples of input data were used: */\n        num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n\n        /*\n         * adjust our input time counter. Incriment by the number of samples\n         * used, then normalize so that next output sample is at time 0, next\n         * input buffer is at time itime[ch]\n         */\n        gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n\n        /* save the last BLACKSIZE samples into the inbuf_old buffer */\n        if (num_used.num_used >= BLACKSIZE) {\n            for (i = 0; i < BLACKSIZE; i++)\n                inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i\n                - BLACKSIZE];\n        } else {\n            /* shift in num_used.num_used samples into inbuf_old */\n            var n_shift = BLACKSIZE - num_used.num_used;\n            /*\n             * number of samples to\n             * shift\n             */\n\n            /*\n             * shift n_shift samples by num_used.num_used, to make room for the\n             * num_used new samples\n             */\n            for (i = 0; i < n_shift; ++i)\n                inbuf_old[i] = inbuf_old[i + num_used.num_used];\n\n            /* shift in the num_used.num_used samples */\n            for (j = 0; i < BLACKSIZE; ++i, ++j)\n                inbuf_old[i] = inbuf[in_bufferPos + j];\n\n            assert(j == num_used.num_used);\n        }\n        return k;\n        /* return the number samples created at the new samplerate */\n    }\n\n    function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n        var gfc = gfp.internal_flags;\n\n        /* copy in new samples into mfbuf, with resampling if necessary */\n        if ((gfc.resample_ratio < .9999) || (gfc.resample_ratio > 1.0001)) {\n            for (var ch = 0; ch < gfc.channels_out; ch++) {\n                var numUsed = new NumUsed();\n                io.n_out = fill_buffer_resample(gfp, mfbuf[ch], gfc.mf_size,\n                    gfp.framesize, in_buffer[ch], in_bufferPos, nsamples,\n                    numUsed, ch);\n                io.n_in = numUsed.num_used;\n            }\n        } else {\n            io.n_out = Math.min(gfp.framesize, nsamples);\n            io.n_in = io.n_out;\n            for (var i = 0; i < io.n_out; ++i) {\n                mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n                if (gfc.channels_out == 2)\n                    mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n            }\n        }\n    }\n\n}\n\nmodule.exports = Lame;\n\n\n/***/ }),\n\n/***/ \"df75\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"e107\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * A Vbr header may be present in the ancillary data field of the first frame of\n * an mp3 bitstream<BR>\n * The Vbr header (optionally) contains\n * <UL>\n * <LI>frames total number of audio frames in the bitstream\n * <LI>bytes total number of bytes in the bitstream\n * <LI>toc table of contents\n * </UL>\n *\n * toc (table of contents) gives seek points for random access.<BR>\n * The ith entry determines the seek point for i-percent duration.<BR>\n * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes<BR>\n * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes\n */\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\n\nfunction VBRTag() {\n\n    var lame;\n    var bs;\n    var v;\n\n    this.setModules = function (_lame, _bs, _v) {\n        lame = _lame;\n        bs = _bs;\n        v = _v;\n    };\n\n    var FRAMES_FLAG = 0x0001;\n    var BYTES_FLAG = 0x0002;\n    var TOC_FLAG = 0x0004;\n    var VBR_SCALE_FLAG = 0x0008;\n\n    var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n\n    /**\n     * (0xB40) the max freeformat 640 32kHz framesize.\n     */\n    var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n\n    /**\n     * <PRE>\n     *    4 bytes for Header Tag\n     *    4 bytes for Header Flags\n     *  100 bytes for entry (toc)\n     *    4 bytes for frame size\n     *    4 bytes for stream size\n     *    4 bytes for VBR scale. a VBR quality indicator: 0=best 100=worst\n     *   20 bytes for LAME tag.  for example, \"LAME3.12 (beta 6)\"\n     * ___________\n     *  140 bytes\n     * </PRE>\n     */\n    var VBRHEADERSIZE = (NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4);\n\n    var LAMEHEADERSIZE = (VBRHEADERSIZE + 9 + 1 + 1 + 8\n    + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2);\n\n    /**\n     * The size of the Xing header MPEG-1, bit rate in kbps.\n     */\n    var XING_BITRATE1 = 128;\n    /**\n     * The size of the Xing header MPEG-2, bit rate in kbps.\n     */\n    var XING_BITRATE2 = 64;\n    /**\n     * The size of the Xing header MPEG-2.5, bit rate in kbps.\n     */\n    var XING_BITRATE25 = 32;\n\n    /**\n     * ISO-8859-1 charset for byte to string operations.\n     */\n    var ISO_8859_1 = null; //Charset.forName(\"ISO-8859-1\");\n\n    /**\n     * VBR header magic string.\n     */\n    var VBRTag0 = \"Xing\";\n    /**\n     * VBR header magic string (VBR == VBRMode.vbr_off).\n     */\n    var VBRTag1 = \"Info\";\n\n    /**\n     * Lookup table for fast CRC-16 computation. Uses the polynomial\n     * x^16+x^15+x^2+1\n     */\n    var crc16Lookup = [0x0000, 0xC0C1, 0xC181, 0x0140,\n        0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741,\n        0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41,\n        0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40,\n        0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941,\n        0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40,\n        0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540,\n        0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341,\n        0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141,\n        0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740,\n        0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40,\n        0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41,\n        0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940,\n        0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41,\n        0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541,\n        0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340,\n        0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141,\n        0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740,\n        0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40,\n        0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41,\n        0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940,\n        0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41,\n        0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541,\n        0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340,\n        0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140,\n        0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741,\n        0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41,\n        0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40,\n        0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941,\n        0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40,\n        0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540,\n        0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,\n        0x4100, 0x81C1, 0x8081, 0x4040];\n\n    /***********************************************************************\n     * Robert Hegemann 2001-01-17\n     ***********************************************************************/\n\n    function addVbr(v, bitrate) {\n        v.nVbrNumFrames++;\n        v.sum += bitrate;\n        v.seen++;\n\n        if (v.seen < v.want) {\n            return;\n        }\n\n        if (v.pos < v.size) {\n            v.bag[v.pos] = v.sum;\n            v.pos++;\n            v.seen = 0;\n        }\n        if (v.pos == v.size) {\n            for (var i = 1; i < v.size; i += 2) {\n                v.bag[i / 2] = v.bag[i];\n            }\n            v.want *= 2;\n            v.pos /= 2;\n        }\n    }\n\n    function xingSeekTable(v, t) {\n        if (v.pos <= 0)\n            return;\n\n        for (var i = 1; i < NUMTOCENTRIES; ++i) {\n            var j = i / NUMTOCENTRIES, act, sum;\n            var indx = 0 | (Math.floor(j * v.pos));\n            if (indx > v.pos - 1)\n                indx = v.pos - 1;\n            act = v.bag[indx];\n            sum = v.sum;\n            var seek_point = 0 | (256. * act / sum);\n            if (seek_point > 255)\n                seek_point = 255;\n            t[i] = 0xff & seek_point;\n        }\n    }\n\n    /**\n     * Add VBR entry, used to fill the VBR TOC entries.\n     *\n     * @param gfp\n     *            global flags\n     */\n    this.addVbrFrame = function (gfp) {\n        var gfc = gfp.internal_flags;\n        var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n        assert(gfc.VBR_seek_table.bag != null);\n        addVbr(gfc.VBR_seek_table, kbps);\n    }\n\n    /**\n     * Read big endian integer (4-bytes) from header.\n     *\n     * @param buf\n     *            header containing the integer\n     * @param bufPos\n     *            offset into the header\n     * @return extracted integer\n     */\n    function extractInteger(buf, bufPos) {\n        var x = buf[bufPos + 0] & 0xff;\n        x <<= 8;\n        x |= buf[bufPos + 1] & 0xff;\n        x <<= 8;\n        x |= buf[bufPos + 2] & 0xff;\n        x <<= 8;\n        x |= buf[bufPos + 3] & 0xff;\n        return x;\n    }\n\n    /**\n     * Write big endian integer (4-bytes) in the header.\n     *\n     * @param buf\n     *            header to write the integer into\n     * @param bufPos\n     *            offset into the header\n     * @param value\n     *            integer value to write\n     */\n    function createInteger(buf, bufPos, value) {\n        buf[bufPos + 0] = 0xff & ((value >> 24) & 0xff);\n        buf[bufPos + 1] = 0xff & ((value >> 16) & 0xff);\n        buf[bufPos + 2] = 0xff & ((value >> 8) & 0xff);\n        buf[bufPos + 3] = 0xff & (value & 0xff);\n    }\n\n    /**\n     * Write big endian short (2-bytes) in the header.\n     *\n     * @param buf\n     *            header to write the integer into\n     * @param bufPos\n     *            offset into the header\n     * @param value\n     *            integer value to write\n     */\n    function createShort(buf, bufPos, value) {\n        buf[bufPos + 0] = 0xff & ((value >> 8) & 0xff);\n        buf[bufPos + 1] = 0xff & (value & 0xff);\n    }\n\n    /**\n     * Check for magic strings (Xing/Info).\n     *\n     * @param buf\n     *            header to check\n     * @param bufPos\n     *            header offset to check\n     * @return magic string found\n     */\n    function isVbrTag(buf, bufPos) {\n        return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1)\n                .equals(VBRTag0)\n            || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1)\n                .equals(VBRTag1);\n    }\n\n    function shiftInBitsValue(x, n, v) {\n        return 0xff & ((x << n) | (v & ~(-1 << n)));\n    }\n\n    /**\n     * Construct the MP3 header using the settings of the global flags.\n     *\n     * <img src=\"1000px-Mp3filestructure.svg.png\">\n     *\n     * @param gfp\n     *            global flags\n     * @param buffer\n     *            header\n     */\n    function setLameTagFrameHeader(gfp, buffer) {\n        var gfc = gfp.internal_flags;\n\n        // MP3 Sync Word\n        buffer[0] = shiftInBitsValue(buffer[0], 8, 0xff);\n\n        buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n        buffer[1] = shiftInBitsValue(buffer[1], 1,\n            (gfp.out_samplerate < 16000) ? 0 : 1);\n        // Version\n        buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n        // 01 == Layer 3\n        buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n        // Error protection\n        buffer[1] = shiftInBitsValue(buffer[1], 1, (!gfp.error_protection) ? 1\n            : 0);\n\n        // Bit rate\n        buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n        // Frequency\n        buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n        // Pad. Bit\n        buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n        // Priv. Bit\n        buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n\n        // Mode\n        buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n        // Mode extension (Used with Joint Stereo)\n        buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n        // Copy\n        buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n        // Original\n        buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n        // Emphasis\n        buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n\n        /* the default VBR header. 48 kbps layer III, no padding, no crc */\n        /* but sampling freq, mode and copyright/copy protection taken */\n        /* from first valid frame */\n        buffer[0] = 0xff;\n        var abyte = 0xff & (buffer[1] & 0xf1);\n        var bitrate;\n        if (1 == gfp.version) {\n            bitrate = XING_BITRATE1;\n        } else {\n            if (gfp.out_samplerate < 16000)\n                bitrate = XING_BITRATE25;\n            else\n                bitrate = XING_BITRATE2;\n        }\n\n        if (gfp.VBR == VbrMode.vbr_off)\n            bitrate = gfp.brate;\n\n        var bbyte;\n        if (gfp.free_format)\n            bbyte = 0x00;\n        else\n            bbyte = 0xff & (16 * lame.BitrateIndex(bitrate, gfp.version,\n                    gfp.out_samplerate));\n\n        /*\n         * Use as much of the info from the real frames in the Xing header:\n         * samplerate, channels, crc, etc...\n         */\n        if (gfp.version == 1) {\n            /* MPEG1 */\n            buffer[1] = 0xff & (abyte | 0x0a);\n            /* was 0x0b; */\n            abyte = 0xff & (buffer[2] & 0x0d);\n            /* AF keep also private bit */\n            buffer[2] = 0xff & (bbyte | abyte);\n            /* 64kbs MPEG1 frame */\n        } else {\n            /* MPEG2 */\n            buffer[1] = 0xff & (abyte | 0x02);\n            /* was 0x03; */\n            abyte = 0xff & (buffer[2] & 0x0d);\n            /* AF keep also private bit */\n            buffer[2] = 0xff & (bbyte | abyte);\n            /* 64kbs MPEG2 frame */\n        }\n    }\n\n    /**\n     * Get VBR tag information\n     *\n     * @param buf\n     *            header to analyze\n     * @param bufPos\n     *            offset into the header\n     * @return VBR tag data\n     */\n    this.getVbrTag = function (buf) {\n        var pTagData = new VBRTagData();\n        var bufPos = 0;\n\n        /* get Vbr header data */\n        pTagData.flags = 0;\n\n        /* get selected MPEG header data */\n        var hId = (buf[bufPos + 1] >> 3) & 1;\n        var hSrIndex = (buf[bufPos + 2] >> 2) & 3;\n        var hMode = (buf[bufPos + 3] >> 6) & 3;\n        var hBitrate = ((buf[bufPos + 2] >> 4) & 0xf);\n        hBitrate = Tables.bitrate_table[hId][hBitrate];\n\n        /* check for FFE syncword */\n        if ((buf[bufPos + 1] >> 4) == 0xE)\n            pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n        else\n            pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n\n        /* determine offset of header */\n        if (hId != 0) {\n            /* mpeg1 */\n            if (hMode != 3)\n                bufPos += (32 + 4);\n            else\n                bufPos += (17 + 4);\n        } else {\n            /* mpeg2 */\n            if (hMode != 3)\n                bufPos += (17 + 4);\n            else\n                bufPos += (9 + 4);\n        }\n\n        if (!isVbrTag(buf, bufPos))\n            return null;\n\n        bufPos += 4;\n\n        pTagData.hId = hId;\n\n        /* get flags */\n        var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n        bufPos += 4;\n\n        if ((head_flags & FRAMES_FLAG) != 0) {\n            pTagData.frames = extractInteger(buf, bufPos);\n            bufPos += 4;\n        }\n\n        if ((head_flags & BYTES_FLAG) != 0) {\n            pTagData.bytes = extractInteger(buf, bufPos);\n            bufPos += 4;\n        }\n\n        if ((head_flags & TOC_FLAG) != 0) {\n            if (pTagData.toc != null) {\n                for (var i = 0; i < NUMTOCENTRIES; i++)\n                    pTagData.toc[i] = buf[bufPos + i];\n            }\n            bufPos += NUMTOCENTRIES;\n        }\n\n        pTagData.vbrScale = -1;\n\n        if ((head_flags & VBR_SCALE_FLAG) != 0) {\n            pTagData.vbrScale = extractInteger(buf, bufPos);\n            bufPos += 4;\n        }\n\n        pTagData.headersize = ((hId + 1) * 72000 * hBitrate)\n            / pTagData.samprate;\n\n        bufPos += 21;\n        var encDelay = buf[bufPos + 0] << 4;\n        encDelay += buf[bufPos + 1] >> 4;\n        var encPadding = (buf[bufPos + 1] & 0x0F) << 8;\n        encPadding += buf[bufPos + 2] & 0xff;\n        /* check for reasonable values (this may be an old Xing header, */\n        /* not a INFO tag) */\n        if (encDelay < 0 || encDelay > 3000)\n            encDelay = -1;\n        if (encPadding < 0 || encPadding > 3000)\n            encPadding = -1;\n\n        pTagData.encDelay = encDelay;\n        pTagData.encPadding = encPadding;\n\n        /* success */\n        return pTagData;\n    }\n\n    /**\n     * Initializes the header\n     *\n     * @param gfp\n     *            global flags\n     */\n    this.InitVbrTag = function (gfp) {\n        var gfc = gfp.internal_flags;\n\n        /**\n         * <PRE>\n         * Xing VBR pretends to be a 48kbs layer III frame.  (at 44.1kHz).\n         * (at 48kHz they use 56kbs since 48kbs frame not big enough for\n         * table of contents)\n         * let's always embed Xing header inside a 64kbs layer III frame.\n         * this gives us enough room for a LAME version string too.\n         * size determined by sampling frequency (MPEG1)\n         * 32kHz:    216 bytes@48kbs    288bytes@ 64kbs\n         * 44.1kHz:  156 bytes          208bytes@64kbs     (+1 if padding = 1)\n         * 48kHz:    144 bytes          192\n         *\n         * MPEG 2 values are the same since the framesize and samplerate\n         * are each reduced by a factor of 2.\n         * </PRE>\n         */\n        var kbps_header;\n        if (1 == gfp.version) {\n            kbps_header = XING_BITRATE1;\n        } else {\n            if (gfp.out_samplerate < 16000)\n                kbps_header = XING_BITRATE25;\n            else\n                kbps_header = XING_BITRATE2;\n        }\n\n        if (gfp.VBR == VbrMode.vbr_off)\n            kbps_header = gfp.brate;\n\n        // make sure LAME Header fits into Frame\n        var totalFrameSize = ((gfp.version + 1) * 72000 * kbps_header)\n            / gfp.out_samplerate;\n        var headerSize = (gfc.sideinfo_len + LAMEHEADERSIZE);\n        gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n        if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n            /* disable tag, it wont fit */\n            gfp.bWriteVbrTag = false;\n            return;\n        }\n\n        gfc.VBR_seek_table.nVbrNumFrames = 0;\n        gfc.VBR_seek_table.nBytesWritten = 0;\n        gfc.VBR_seek_table.sum = 0;\n\n        gfc.VBR_seek_table.seen = 0;\n        gfc.VBR_seek_table.want = 1;\n        gfc.VBR_seek_table.pos = 0;\n\n        if (gfc.VBR_seek_table.bag == null) {\n            gfc.VBR_seek_table.bag = new int[400];\n            gfc.VBR_seek_table.size = 400;\n        }\n\n        // write dummy VBR tag of all 0's into bitstream\n        var buffer = new_byte(MAXFRAMESIZE);\n\n        setLameTagFrameHeader(gfp, buffer);\n        var n = gfc.VBR_seek_table.TotalFrameSize;\n        for (var i = 0; i < n; ++i) {\n            bs.add_dummy_byte(gfp, buffer[i] & 0xff, 1);\n        }\n    }\n\n    /**\n     * Fast CRC-16 computation (uses table crc16Lookup).\n     *\n     * @param value\n     * @param crc\n     * @return\n     */\n    function crcUpdateLookup(value, crc) {\n        var tmp = crc ^ value;\n        crc = (crc >> 8) ^ crc16Lookup[tmp & 0xff];\n        return crc;\n    }\n\n    this.updateMusicCRC = function (crc, buffer, bufferPos, size) {\n        for (var i = 0; i < size; ++i)\n            crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n    }\n\n    /**\n     * Write LAME info: mini version + info on various switches used (Jonathan\n     * Dee 2001/08/31).\n     *\n     * @param gfp\n     *            global flags\n     * @param musicLength\n     *            music length\n     * @param streamBuffer\n     *            pointer to output buffer\n     * @param streamBufferPos\n     *            offset into the output buffer\n     * @param crc\n     *            computation of CRC-16 of Lame Tag so far (starting at frame\n     *            sync)\n     * @return number of bytes written to the stream\n     */\n    function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n        var gfc = gfp.internal_flags;\n        var bytesWritten = 0;\n\n        /* encoder delay */\n        var encDelay = gfp.encoder_delay;\n        /* encoder padding */\n        var encPadding = gfp.encoder_padding;\n\n        /* recall: gfp.VBR_q is for example set by the switch -V */\n        /* gfp.quality by -q, -h, -f, etc */\n        var quality = (100 - 10 * gfp.VBR_q - gfp.quality);\n\n        var version = v.getLameVeryShortVersion();\n        var vbr;\n        var revision = 0x00;\n        var revMethod;\n        // numbering different in vbr_mode vs. Lame tag\n        var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n        var lowpass = 0 | (((gfp.lowpassfreq / 100.0) + .5) > 255 ? 255\n                : (gfp.lowpassfreq / 100.0) + .5);\n        var peakSignalAmplitude = 0;\n        var radioReplayGain = 0;\n        var audiophileReplayGain = 0;\n        var noiseShaping = gfp.internal_flags.noise_shaping;\n        var stereoMode = 0;\n        var nonOptimal = 0;\n        var sourceFreq = 0;\n        var misc = 0;\n        var musicCRC = 0;\n\n        // psy model type: Gpsycho or NsPsytune\n        var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n        var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n        var noGapMore = false;\n        var noGapPrevious = false;\n        var noGapCount = gfp.internal_flags.nogap_total;\n        var noGapCurr = gfp.internal_flags.nogap_current;\n\n        // 4 bits\n        var athType = gfp.ATHtype;\n        var flags = 0;\n\n        // vbr modes\n        var abrBitrate;\n        switch (gfp.VBR) {\n            case vbr_abr:\n                abrBitrate = gfp.VBR_mean_bitrate_kbps;\n                break;\n            case vbr_off:\n                abrBitrate = gfp.brate;\n                break;\n            default:\n                abrBitrate = gfp.VBR_min_bitrate_kbps;\n        }\n\n        // revision and vbr method\n        if (gfp.VBR.ordinal() < vbrTypeTranslator.length)\n            vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n        else\n            vbr = 0x00; // unknown\n\n        revMethod = 0x10 * revision + vbr;\n\n        // ReplayGain\n        if (gfc.findReplayGain) {\n            if (gfc.RadioGain > 0x1FE)\n                gfc.RadioGain = 0x1FE;\n            if (gfc.RadioGain < -0x1FE)\n                gfc.RadioGain = -0x1FE;\n\n            // set name code\n            radioReplayGain = 0x2000;\n            // set originator code to `determined automatically'\n            radioReplayGain |= 0xC00;\n\n            if (gfc.RadioGain >= 0) {\n                // set gain adjustment\n                radioReplayGain |= gfc.RadioGain;\n            } else {\n                // set the sign bit\n                radioReplayGain |= 0x200;\n                // set gain adjustment\n                radioReplayGain |= -gfc.RadioGain;\n            }\n        }\n\n        // peak sample\n        if (gfc.findPeakSample)\n            peakSignalAmplitude = Math\n                .abs(0 | ((( gfc.PeakSample) / 32767.0) * Math.pow(2, 23) + .5));\n\n        // nogap\n        if (noGapCount != -1) {\n            if (noGapCurr > 0)\n                noGapPrevious = true;\n\n            if (noGapCurr < noGapCount - 1)\n                noGapMore = true;\n        }\n\n        // flags\n        flags = athType + ((expNPsyTune ? 1 : 0) << 4)\n            + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6)\n            + ((noGapPrevious ? 1 : 0) << 7);\n\n        if (quality < 0)\n            quality = 0;\n\n        // stereo mode field (Intensity stereo is not implemented)\n        switch (gfp.mode) {\n            case MONO:\n                stereoMode = 0;\n                break;\n            case STEREO:\n                stereoMode = 1;\n                break;\n            case DUAL_CHANNEL:\n                stereoMode = 2;\n                break;\n            case JOINT_STEREO:\n                if (gfp.force_ms)\n                    stereoMode = 4;\n                else\n                    stereoMode = 3;\n                break;\n            case NOT_SET:\n            //$FALL-THROUGH$\n            default:\n                stereoMode = 7;\n                break;\n        }\n\n        if (gfp.in_samplerate <= 32000)\n            sourceFreq = 0x00;\n        else if (gfp.in_samplerate == 48000)\n            sourceFreq = 0x02;\n        else if (gfp.in_samplerate > 48000)\n            sourceFreq = 0x03;\n        else {\n            // default is 44100Hz\n            sourceFreq = 0x01;\n        }\n\n        // Check if the user overrided the default LAME behavior with some\n        // nasty options\n        if (gfp.short_blocks == ShortBlock.short_block_forced\n            || gfp.short_blocks == ShortBlock.short_block_dispensed\n            || ((gfp.lowpassfreq == -1) && (gfp.highpassfreq == -1)) || /* \"-k\" */\n            (gfp.scale_left < gfp.scale_right)\n            || (gfp.scale_left > gfp.scale_right)\n            || (gfp.disable_reservoir && gfp.brate < 320) || gfp.noATH\n            || gfp.ATHonly || (athType == 0) || gfp.in_samplerate <= 32000)\n            nonOptimal = 1;\n\n        misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5)\n            + (sourceFreq << 6);\n\n        musicCRC = gfc.nMusicCRC;\n\n        // Write all this information into the stream\n\n        createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n        bytesWritten += 4;\n\n        for (var j = 0; j < 9; j++) {\n            streamBuffer[streamBufferPos + bytesWritten + j] = 0xff & version .charAt(j);\n        }\n        bytesWritten += 9;\n\n        streamBuffer[streamBufferPos + bytesWritten] = 0xff & revMethod;\n        bytesWritten++;\n\n        streamBuffer[streamBufferPos + bytesWritten] = 0xff & lowpass;\n        bytesWritten++;\n\n        createInteger(streamBuffer, streamBufferPos + bytesWritten,\n            peakSignalAmplitude);\n        bytesWritten += 4;\n\n        createShort(streamBuffer, streamBufferPos + bytesWritten,\n            radioReplayGain);\n        bytesWritten += 2;\n\n        createShort(streamBuffer, streamBufferPos + bytesWritten,\n            audiophileReplayGain);\n        bytesWritten += 2;\n\n        streamBuffer[streamBufferPos + bytesWritten] = 0xff & flags;\n        bytesWritten++;\n\n        if (abrBitrate >= 255)\n            streamBuffer[streamBufferPos + bytesWritten] = 0xFF;\n        else\n            streamBuffer[streamBufferPos + bytesWritten] = 0xff & abrBitrate;\n        bytesWritten++;\n\n        streamBuffer[streamBufferPos + bytesWritten] = 0xff & (encDelay >> 4);\n        streamBuffer[streamBufferPos + bytesWritten + 1] = 0xff & ((encDelay << 4) + (encPadding >> 8));\n        streamBuffer[streamBufferPos + bytesWritten + 2] = 0xff & encPadding;\n\n        bytesWritten += 3;\n\n        streamBuffer[streamBufferPos + bytesWritten] = 0xff & misc;\n        bytesWritten++;\n\n        // unused in rev0\n        streamBuffer[streamBufferPos + bytesWritten++] = 0;\n\n        createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n        bytesWritten += 2;\n\n        createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n        bytesWritten += 4;\n\n        createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n        bytesWritten += 2;\n\n        // Calculate tag CRC.... must be done here, since it includes previous\n        // information\n\n        for (var i = 0; i < bytesWritten; i++)\n            crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n\n        createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n        bytesWritten += 2;\n\n        return bytesWritten;\n    }\n\n    function skipId3v2(fpStream) {\n        // seek to the beginning of the stream\n        fpStream.seek(0);\n        // read 10 bytes in case there's an ID3 version 2 header here\n        var id3v2Header = new_byte(10);\n        fpStream.readFully(id3v2Header);\n        /* does the stream begin with the ID3 version 2 file identifier? */\n        var id3v2TagSize;\n        if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n            /*\n             * the tag size (minus the 10-byte header) is encoded into four\n             * bytes where the most significant bit is clear in each byte\n             */\n            id3v2TagSize = (((id3v2Header[6] & 0x7f) << 21)\n                | ((id3v2Header[7] & 0x7f) << 14)\n                | ((id3v2Header[8] & 0x7f) << 7) | (id3v2Header[9] & 0x7f))\n                + id3v2Header.length;\n        } else {\n            /* no ID3 version 2 tag in this stream */\n            id3v2TagSize = 0;\n        }\n        return id3v2TagSize;\n    }\n\n    this.getLameTagFrame = function (gfp, buffer) {\n        var gfc = gfp.internal_flags;\n\n        if (!gfp.bWriteVbrTag) {\n            return 0;\n        }\n        if (gfc.Class_ID != Lame.LAME_ID) {\n            return 0;\n        }\n        if (gfc.VBR_seek_table.pos <= 0) {\n            return 0;\n        }\n        if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n            return gfc.VBR_seek_table.TotalFrameSize;\n        }\n\n        Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n\n        // 4 bytes frame header\n        setLameTagFrameHeader(gfp, buffer);\n\n        // Create TOC entries\n        var toc = new_byte(NUMTOCENTRIES);\n\n        if (gfp.free_format) {\n            for (var i = 1; i < NUMTOCENTRIES; ++i)\n                toc[i] = 0xff & (255 * i / 100);\n        } else {\n            xingSeekTable(gfc.VBR_seek_table, toc);\n        }\n\n        // Start writing the tag after the zero frame\n        var streamIndex = gfc.sideinfo_len;\n        /**\n         * Note: Xing header specifies that Xing data goes in the ancillary data\n         * with NO ERROR PROTECTION. If error protecton in enabled, the Xing\n         * data still starts at the same offset, and now it is in sideinfo data\n         * block, and thus will not decode correctly by non-Xing tag aware\n         * players\n         */\n        if (gfp.error_protection)\n            streamIndex -= 2;\n\n        // Put Vbr tag\n        if (gfp.VBR == VbrMode.vbr_off) {\n            buffer[streamIndex++] = 0xff & VBRTag1.charAt(0);\n            buffer[streamIndex++] = 0xff & VBRTag1.charAt(1);\n            buffer[streamIndex++] = 0xff & VBRTag1.charAt(2);\n            buffer[streamIndex++] = 0xff & VBRTag1.charAt(3);\n\n        } else {\n            buffer[streamIndex++] = 0xff & VBRTag0.charAt(0);\n            buffer[streamIndex++] = 0xff & VBRTag0.charAt(1);\n            buffer[streamIndex++] = 0xff & VBRTag0.charAt(2);\n            buffer[streamIndex++] = 0xff & VBRTag0.charAt(3);\n        }\n\n        // Put header flags\n        createInteger(buffer, streamIndex, FRAMES_FLAG + BYTES_FLAG + TOC_FLAG\n            + VBR_SCALE_FLAG);\n        streamIndex += 4;\n\n        // Put Total Number of frames\n        createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n        streamIndex += 4;\n\n        // Put total audio stream size, including Xing/LAME Header\n        var streamSize = (gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize);\n        createInteger(buffer, streamIndex, 0 | streamSize);\n        streamIndex += 4;\n\n        /* Put TOC */\n        System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n        streamIndex += toc.length;\n\n        if (gfp.error_protection) {\n            // (jo) error_protection: add crc16 information to header\n            bs.CRC_writeheader(gfc, buffer);\n        }\n\n        // work out CRC so far: initially crc = 0\n        var crc = 0x00;\n        for (var i = 0; i < streamIndex; i++)\n            crc = crcUpdateLookup(buffer[i], crc);\n        // Put LAME VBR info\n        streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n\n        return gfc.VBR_seek_table.TotalFrameSize;\n    }\n\n    /**\n     * Write final VBR tag to the file.\n     *\n     * @param gfp\n     *            global flags\n     * @param stream\n     *            stream to add the VBR tag to\n     * @return 0 (OK), -1 else\n     * @throws IOException\n     *             I/O error\n     */\n    this.putVbrTag = function (gfp, stream) {\n        var gfc = gfp.internal_flags;\n\n        if (gfc.VBR_seek_table.pos <= 0)\n            return -1;\n\n        // Seek to end of file\n        stream.seek(stream.length());\n\n        // Get file size, abort if file has zero length.\n        if (stream.length() == 0)\n            return -1;\n\n        // The VBR tag may NOT be located at the beginning of the stream. If an\n        // ID3 version 2 tag was added, then it must be skipped to write the VBR\n        // tag data.\n        var id3v2TagSize = skipId3v2(stream);\n\n        // Seek to the beginning of the stream\n        stream.seek(id3v2TagSize);\n\n        var buffer = new_byte(MAXFRAMESIZE);\n        var bytes = getLameTagFrame(gfp, buffer);\n        if (bytes > buffer.length) {\n            return -1;\n        }\n\n        if (bytes < 1) {\n            return 0;\n        }\n\n        // Put it all to disk again\n        stream.write(buffer, 0, bytes);\n        // success\n        return 0;\n    }\n\n}\n\nmodule.exports = VBRTag;\n\n\n/***/ }),\n\n/***/ \"e163\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar isCallable = __webpack_require__(\"1626\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(\"e177\");\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ \"e177\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ \"e330\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(\"40d5\");\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n  return fn && uncurryThis(fn);\n} : function (fn) {\n  return fn && function () {\n    return call.apply(fn, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ \"e391\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toString = __webpack_require__(\"577e\");\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n/***/ }),\n\n/***/ \"e5cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar isPrototypeOf = __webpack_require__(\"3a9b\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar proxyAccessor = __webpack_require__(\"aeb0\");\nvar inheritIfRequired = __webpack_require__(\"7156\");\nvar normalizeStringArgument = __webpack_require__(\"e391\");\nvar installErrorCause = __webpack_require__(\"ab36\");\nvar clearErrorStack = __webpack_require__(\"0d26\");\nvar ERROR_STACK_INSTALLABLE = __webpack_require__(\"b980\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n\n\n/***/ }),\n\n/***/ \"e893\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar ownKeys = __webpack_require__(\"56ef\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(\"06cf\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n\n\n/***/ }),\n\n/***/ \"ebb5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(\"4b11\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar global = __webpack_require__(\"da84\");\nvar isCallable = __webpack_require__(\"1626\");\nvar isObject = __webpack_require__(\"861d\");\nvar hasOwn = __webpack_require__(\"1a2d\");\nvar classof = __webpack_require__(\"f5df\");\nvar tryToString = __webpack_require__(\"0d51\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar defineBuiltIn = __webpack_require__(\"cb2d\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\nvar isPrototypeOf = __webpack_require__(\"3a9b\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar uid = __webpack_require__(\"90e3\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n\n/***/ \"f052\":\n/***/ (function(module, exports) {\n\nfunction MeanBits(meanBits) {\n    this.bits = meanBits;\n}\n\nmodule.exports = MeanBits;\n\n\n/***/ }),\n\n/***/ \"f26d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n//package mp3;\n\nvar III_psy_xmin = __webpack_require__(\"a1b7\");\n\nfunction III_psy_ratio() {\n\tthis.thm = new III_psy_xmin();\n\tthis.en = new III_psy_xmin();\n}\n\nmodule.exports = III_psy_ratio;\n\n\n/***/ }),\n\n/***/ \"f3b5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n//package mp3;\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar L3Side = __webpack_require__(\"9828\");\n\nfunction GrInfo() {\n    //float xr[] = new float[576];\n    this.xr = new_float(576);\n    //int l3_enc[] = new int[576];\n    this.l3_enc = new_int(576);\n    //int scalefac[] = new int[L3Side.SFBMAX];\n    this.scalefac = new_int(L3Side.SFBMAX);\n    this.xrpow_max = 0.;\n\n    this.part2_3_length = 0;\n    this.big_values = 0;\n    this.count1 = 0;\n    this.global_gain = 0;\n    this.scalefac_compress = 0;\n    this.block_type = 0;\n    this.mixed_block_flag = 0;\n    this.table_select = new_int(3);\n    this.subblock_gain = new_int(3 + 1);\n    this.region0_count = 0;\n    this.region1_count = 0;\n    this.preflag = 0;\n    this.scalefac_scale = 0;\n    this.count1table_select = 0;\n\n    this.part2_length = 0;\n    this.sfb_lmax = 0;\n    this.sfb_smin = 0;\n    this.psy_lmax = 0;\n    this.sfbmax = 0;\n    this.psymax = 0;\n    this.sfbdivide = 0;\n    this.width = new_int(L3Side.SFBMAX);\n    this.window = new_int(L3Side.SFBMAX);\n    this.count1bits = 0;\n    /**\n     * added for LSF\n     */\n    this.sfb_partition_table = null;\n    this.slen = new_int(4);\n\n    this.max_nonzero_coeff = 0;\n\n    var self = this;\n    function clone_int(array) {\n        return new Int32Array(array);\n    }\n    function clone_float(array) {\n        return new Float32Array(array);\n    }\n    this.assign = function (other) {\n        self.xr = clone_float(other.xr); //.slice(0); //clone();\n        self.l3_enc = clone_int(other.l3_enc); //.slice(0); //clone();\n        self.scalefac = clone_int(other.scalefac);//.slice(0); //clone();\n        self.xrpow_max = other.xrpow_max;\n\n        self.part2_3_length = other.part2_3_length;\n        self.big_values = other.big_values;\n        self.count1 = other.count1;\n        self.global_gain = other.global_gain;\n        self.scalefac_compress = other.scalefac_compress;\n        self.block_type = other.block_type;\n        self.mixed_block_flag = other.mixed_block_flag;\n        self.table_select = clone_int(other.table_select);//.slice(0); //clone();\n        self.subblock_gain = clone_int(other.subblock_gain); //.slice(0); //.clone();\n        self.region0_count = other.region0_count;\n        self.region1_count = other.region1_count;\n        self.preflag = other.preflag;\n        self.scalefac_scale = other.scalefac_scale;\n        self.count1table_select = other.count1table_select;\n\n        self.part2_length = other.part2_length;\n        self.sfb_lmax = other.sfb_lmax;\n        self.sfb_smin = other.sfb_smin;\n        self.psy_lmax = other.psy_lmax;\n        self.sfbmax = other.sfbmax;\n        self.psymax = other.psymax;\n        self.sfbdivide = other.sfbdivide;\n        self.width = clone_int(other.width); //.slice(0); //.clone();\n        self.window = clone_int(other.window); //.slice(0); //.clone();\n        self.count1bits = other.count1bits;\n\n        self.sfb_partition_table = other.sfb_partition_table.slice(0); //.clone();\n        self.slen = clone_int(other.slen); //.slice(0); //.clone();\n        self.max_nonzero_coeff = other.max_nonzero_coeff;\n    }\n}\n\nmodule.exports = GrInfo;\n\n\n/***/ }),\n\n/***/ \"f3e2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n *      MP3 window subband -> subband filtering -> mdct routine\n *\n *      Copyright (c) 1999-2000 Takehiro Tominaga\n *\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Library General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n/*\n *         Special Thanks to Patrick De Smet for your advices.\n */\n\n/* $Id: NewMDCT.java,v 1.11 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\n\nfunction NewMDCT() {\n\n\tvar enwindow = [\n\t\t\t-4.77e-07 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.03951e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.53674e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t2.841473e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t3.5758972e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t3.401756e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.83715e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.9182e-05 * 0.740951125354959 / 2.384e-06, /* 15 */\n\t\t\t1.2398e-05 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.91212e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t2.283096e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.6994476e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t-1.8756866e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t-2.630711e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t-2.47478e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t-1.4782e-05 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.063471690191471e-01, 1.960342806591213e-01,\n\n\t\t\t-4.77e-07 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.05858e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.30786e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t2.521515e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t3.5694122e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t3.643036e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.91821e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.6321e-05 * 0.773010453362737 / 2.384e-06, /* 14 */\n\t\t\t1.1444e-05 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.65462e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t2.110004e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.6112804e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t-1.9634247e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t-2.803326e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t-2.77042e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t-1.6689e-05 * 0.773010453362737 / 2.384e-06,\n\t\t\t8.206787908286602e-01, 3.901806440322567e-01,\n\n\t\t\t-4.77e-07 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.07288e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.02653e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t2.174854e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t3.5586357e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t3.858566e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.95159e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.3460e-05 * 0.803207531480645 / 2.384e-06, /* 13 */\n\t\t\t1.0014e-05 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.40190e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.937389e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.5233517e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t-2.0506859e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t-2.974033e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t-3.07560e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t-1.8120e-05 * 0.803207531480645 / 2.384e-06,\n\t\t\t7.416505462720353e-01, 5.805693545089249e-01,\n\n\t\t\t-4.77e-07 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.08242e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t8.68797e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.800537e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t3.5435200e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t4.049301e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t9.94205e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t9.0599e-05 * 0.831469612302545 / 2.384e-06, /* 12 */\n\t\t\t9.060e-06 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.16348e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.766682e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.4358521e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t-2.1372318e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t-3.14188e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t-3.39031e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t-1.9550e-05 * 0.831469612302545 / 2.384e-06,\n\t\t\t6.681786379192989e-01, 7.653668647301797e-01,\n\n\t\t\t-4.77e-07 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.08719e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t8.29220e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.399517e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t3.5242081e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t4.215240e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t9.89437e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t8.7261e-05 * 0.857728610000272 / 2.384e-06, /* 11 */\n\t\t\t8.106e-06 * 0.857728610000272 / 2.384e-06,\n\t\t\t9.3937e-05 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.597881e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.3489246e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t-2.2228718e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t-3.306866e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t-3.71456e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t-2.1458e-05 * 0.857728610000272 / 2.384e-06,\n\t\t\t5.993769336819237e-01, 9.427934736519954e-01,\n\n\t\t\t-4.77e-07 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.08719e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t7.8392e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t9.71317e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t3.5007000e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t4.357815e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t9.80854e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t8.3923e-05 * 0.881921264348355 / 2.384e-06, /* 10 */\n\t\t\t7.629e-06 * 0.881921264348355 / 2.384e-06,\n\t\t\t7.2956e-05 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.432419e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.2627602e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t-2.3074150e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t-3.467083e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t-4.04358e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t-2.3365e-05 * 0.881921264348355 / 2.384e-06,\n\t\t\t5.345111359507916e-01, 1.111140466039205e+00,\n\n\t\t\t-9.54e-07 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.08242e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t7.31945e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t5.15938e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t3.4730434e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t4.477024e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t9.68933e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t8.0585e-05 * 0.903989293123443 / 2.384e-06, /* 9 */\n\t\t\t6.676e-06 * 0.903989293123443 / 2.384e-06,\n\t\t\t5.2929e-05 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.269817e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.1775017e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t-2.3907185e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t-3.622532e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t-4.38213e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t-2.5272e-05 * 0.903989293123443 / 2.384e-06,\n\t\t\t4.729647758913199e-01, 1.268786568327291e+00,\n\n\t\t\t-9.54e-07 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.06812e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t6.74248e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.3379e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.4412861e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t4.573822e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t9.54151e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t7.6771e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t6.199e-06 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.4332e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.111031e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.0933399e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-2.4725437e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-3.771782e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-4.72546e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-2.7657e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t4.1421356237309504879e-01, /* tan(PI/8) */\n\t\t\t1.414213562373095e+00,\n\n\t\t\t-9.54e-07 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.05381e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t6.10352e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t-4.75883e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t3.4055710e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t4.649162e-03 * 0.941544065183021 / 2.384e-06,\n\t\t\t9.35555e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t7.3433e-05 * 0.941544065183021 / 2.384e-06, /* 7 */\n\t\t\t5.245e-06 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.7166e-05 * 0.941544065183021 / 2.384e-06,\n\t\t\t9.56535e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.0103703e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t-2.5527000e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t-3.914356e-03 * 0.941544065183021 / 2.384e-06,\n\t\t\t-5.07355e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t-3.0041e-05 * 0.941544065183021 / 2.384e-06,\n\t\t\t3.578057213145241e-01, 1.546020906725474e+00,\n\n\t\t\t-9.54e-07 * 0.956940335732209 / 2.384e-06,\n\t\t\t1.02520e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t5.39303e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t-1.011848e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t3.3659935e-02 * 0.956940335732209 / 2.384e-06,\n\t\t\t4.703045e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.15051e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t7.0095e-05 * 0.956940335732209 / 2.384e-06, /* 6 */\n\t\t\t4.768e-06 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.54e-07 * 0.956940335732209 / 2.384e-06,\n\t\t\t8.06808e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.287834e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t-2.6310921e-02 * 0.956940335732209 / 2.384e-06,\n\t\t\t-4.048824e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t-5.42164e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t-3.2425e-05 * 0.956940335732209 / 2.384e-06,\n\t\t\t3.033466836073424e-01, 1.662939224605090e+00,\n\n\t\t\t-1.431e-06 * 0.970031253194544 / 2.384e-06,\n\t\t\t9.9182e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t4.62532e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t-1.573563e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t3.3225536e-02 * 0.970031253194544 / 2.384e-06,\n\t\t\t4.737377e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t8.91685e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t6.6280e-05 * 0.970031253194544 / 2.384e-06, /* 5 */\n\t\t\t4.292e-06 * 0.970031253194544 / 2.384e-06,\n\t\t\t-1.3828e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t6.61850e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t8.487225e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t-2.7073860e-02 * 0.970031253194544 / 2.384e-06,\n\t\t\t-4.174709e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t-5.76973e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t-3.4809e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t2.504869601913055e-01, 1.763842528696710e+00,\n\n\t\t\t-1.431e-06 * 0.98078528040323 / 2.384e-06,\n\t\t\t9.5367e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t3.78609e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.161503e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t3.2754898e-02 * 0.98078528040323 / 2.384e-06,\n\t\t\t4.752159e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t8.66413e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t6.2943e-05 * 0.98078528040323 / 2.384e-06, /* 4 */\n\t\t\t3.815e-06 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.718e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t5.22137e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t7.703304e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.7815342e-02 * 0.98078528040323 / 2.384e-06,\n\t\t\t-4.290581e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t-6.11782e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t-3.7670e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t1.989123673796580e-01, 1.847759065022573e+00,\n\n\t\t\t-1.907e-06 * 0.989176509964781 / 2.384e-06,\n\t\t\t9.0122e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t2.88486e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t-2.774239e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t3.2248020e-02 * 0.989176509964781 / 2.384e-06,\n\t\t\t4.748821e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t8.38757e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t5.9605e-05 * 0.989176509964781 / 2.384e-06, /* 3 */\n\t\t\t3.338e-06 * 0.989176509964781 / 2.384e-06,\n\t\t\t-3.9577e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t3.88145e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t6.937027e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t-2.8532982e-02 * 0.989176509964781 / 2.384e-06,\n\t\t\t-4.395962e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t-6.46591e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t-4.0531e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t1.483359875383474e-01, 1.913880671464418e+00,\n\n\t\t\t-1.907e-06 * 0.995184726672197 / 2.384e-06,\n\t\t\t8.4400e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t1.91689e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t-3.411293e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t3.1706810e-02 * 0.995184726672197 / 2.384e-06,\n\t\t\t4.728317e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t8.09669e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t5.579e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t3.338e-06 * 0.995184726672197 / 2.384e-06,\n\t\t\t-5.0545e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t2.59876e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t6.189346e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t-2.9224873e-02 * 0.995184726672197 / 2.384e-06,\n\t\t\t-4.489899e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t-6.80923e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t-4.3392e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t9.849140335716425e-02, 1.961570560806461e+00,\n\n\t\t\t-2.384e-06 * 0.998795456205172 / 2.384e-06,\n\t\t\t7.7724e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t8.8215e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.072189e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t3.1132698e-02 * 0.998795456205172 / 2.384e-06,\n\t\t\t4.691124e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t7.79152e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t5.2929e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t2.861e-06 * 0.998795456205172 / 2.384e-06,\n\t\t\t-6.0558e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t1.37329e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t5.462170e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t-2.9890060e-02 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.570484e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t-7.14302e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.6253e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t4.912684976946725e-02, 1.990369453344394e+00,\n\n\t\t\t3.5780907e-02 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.7876148e-02 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t3.134727e-03 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t2.457142e-03 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t9.71317e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t2.18868e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.01566e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.3828e-05 * Util.SQRT2 * 0.5 / 2.384e-06,\n\n\t\t\t3.0526638e-02 / 2.384e-06, 4.638195e-03 / 2.384e-06,\n\t\t\t7.47204e-04 / 2.384e-06, 4.9591e-05 / 2.384e-06,\n\t\t\t4.756451e-03 / 2.384e-06, 2.1458e-05 / 2.384e-06,\n\t\t\t-6.9618e-05 / 2.384e-06, /* 2.384e-06/2.384e-06 */\n\t];\n\n\tvar NS = 12;\n\tvar NL = 36;\n\n\tvar win = [\n\t    [\n\t     2.382191739347913e-13,\n\t     6.423305872147834e-13,\n\t     9.400849094049688e-13,\n\t     1.122435026096556e-12,\n\t     1.183840321267481e-12,\n\t     1.122435026096556e-12,\n\t     9.400849094049690e-13,\n\t     6.423305872147839e-13,\n\t     2.382191739347918e-13,\n\n\t     5.456116108943412e-12,\n\t     4.878985199565852e-12,\n\t     4.240448995017367e-12,\n\t     3.559909094758252e-12,\n\t     2.858043359288075e-12,\n\t     2.156177623817898e-12,\n\t     1.475637723558783e-12,\n\t     8.371015190102974e-13,\n\t     2.599706096327376e-13,\n\n\t     -5.456116108943412e-12,\n\t     -4.878985199565852e-12,\n\t     -4.240448995017367e-12,\n\t     -3.559909094758252e-12,\n\t     -2.858043359288076e-12,\n\t     -2.156177623817898e-12,\n\t     -1.475637723558783e-12,\n\t     -8.371015190102975e-13,\n\t     -2.599706096327376e-13,\n\n\t     -2.382191739347923e-13,\n\t     -6.423305872147843e-13,\n\t     -9.400849094049696e-13,\n\t     -1.122435026096556e-12,\n\t     -1.183840321267481e-12,\n\t     -1.122435026096556e-12,\n\t     -9.400849094049694e-13,\n\t     -6.423305872147840e-13,\n\t     -2.382191739347918e-13,\n\t     ],\n\t    [\n\t     2.382191739347913e-13,\n\t     6.423305872147834e-13,\n\t     9.400849094049688e-13,\n\t     1.122435026096556e-12,\n\t     1.183840321267481e-12,\n\t     1.122435026096556e-12,\n\t     9.400849094049688e-13,\n\t     6.423305872147841e-13,\n\t     2.382191739347918e-13,\n\n\t     5.456116108943413e-12,\n\t     4.878985199565852e-12,\n\t     4.240448995017367e-12,\n\t     3.559909094758253e-12,\n\t     2.858043359288075e-12,\n\t     2.156177623817898e-12,\n\t     1.475637723558782e-12,\n\t     8.371015190102975e-13,\n\t     2.599706096327376e-13,\n\n\t     -5.461314069809755e-12,\n\t     -4.921085770524055e-12,\n\t     -4.343405037091838e-12,\n\t     -3.732668368707687e-12,\n\t     -3.093523840190885e-12,\n\t     -2.430835727329465e-12,\n\t     -1.734679010007751e-12,\n\t     -9.748253656609281e-13,\n\t     -2.797435120168326e-13,\n\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     -2.283748241799531e-13,\n\t     -4.037858874020686e-13,\n\t     -2.146547464825323e-13,\n\t     ],\n\t    [\n\t     1.316524975873958e-01, /* win[SHORT_TYPE] */\n\t     4.142135623730950e-01,\n\t     7.673269879789602e-01,\n\n\t     1.091308501069271e+00, /* tantab_l */\n\t     1.303225372841206e+00,\n\t     1.569685577117490e+00,\n\t     1.920982126971166e+00,\n\t     2.414213562373094e+00,\n\t     3.171594802363212e+00,\n\t     4.510708503662055e+00,\n\t     7.595754112725146e+00,\n\t     2.290376554843115e+01,\n\n\t     0.98480775301220802032, /* cx */\n\t     0.64278760968653936292,\n\t     0.34202014332566882393,\n\t     0.93969262078590842791,\n\t     -0.17364817766693030343,\n\t     -0.76604444311897790243,\n\t     0.86602540378443870761,\n\t     0.500000000000000e+00,\n\n\t     -5.144957554275265e-01, /* ca */\n\t     -4.717319685649723e-01,\n\t     -3.133774542039019e-01,\n\t     -1.819131996109812e-01,\n\t     -9.457419252642064e-02,\n\t     -4.096558288530405e-02,\n\t     -1.419856857247115e-02,\n\t     -3.699974673760037e-03,\n\n\t     8.574929257125442e-01, /* cs */\n\t     8.817419973177052e-01,\n\t     9.496286491027329e-01,\n\t     9.833145924917901e-01,\n\t     9.955178160675857e-01,\n\t     9.991605581781475e-01,\n\t     9.998991952444470e-01,\n\t     9.999931550702802e-01,\n\t     ],\n\t    [\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     0.000000000000000e+00,\n\t     2.283748241799531e-13,\n\t     4.037858874020686e-13,\n\t     2.146547464825323e-13,\n\n\t     5.461314069809755e-12,\n\t     4.921085770524055e-12,\n\t     4.343405037091838e-12,\n\t     3.732668368707687e-12,\n\t     3.093523840190885e-12,\n\t     2.430835727329466e-12,\n\t     1.734679010007751e-12,\n\t     9.748253656609281e-13,\n\t     2.797435120168326e-13,\n\n\t     -5.456116108943413e-12,\n\t     -4.878985199565852e-12,\n\t     -4.240448995017367e-12,\n\t     -3.559909094758253e-12,\n\t     -2.858043359288075e-12,\n\t     -2.156177623817898e-12,\n\t     -1.475637723558782e-12,\n\t     -8.371015190102975e-13,\n\t     -2.599706096327376e-13,\n\n\t     -2.382191739347913e-13,\n\t     -6.423305872147834e-13,\n\t     -9.400849094049688e-13,\n\t     -1.122435026096556e-12,\n\t     -1.183840321267481e-12,\n\t     -1.122435026096556e-12,\n\t     -9.400849094049688e-13,\n\t     -6.423305872147841e-13,\n\t     -2.382191739347918e-13,\n\t     ]\n\t];\n\n\tvar tantab_l = win[Encoder.SHORT_TYPE];\n\tvar cx = win[Encoder.SHORT_TYPE];\n\tvar ca = win[Encoder.SHORT_TYPE];\n\tvar cs = win[Encoder.SHORT_TYPE];\n\n\t/**\n\t * new IDCT routine written by Takehiro TOMINAGA\n\t *\n\t * PURPOSE: Overlapping window on PCM samples<BR>\n\t *\n\t * SEMANTICS:<BR>\n\t * 32 16-bit pcm samples are scaled to fractional 2's complement and\n\t * concatenated to the end of the window buffer #x#. The updated window\n\t * buffer #x# is then windowed by the analysis window #c# to produce the\n\t * windowed sample #z#\n\t */\n\tvar order = [\n\t    0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29,\n\t    2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31\n\t];\n\n\t/**\n\t * returns sum_j=0^31 a[j]*cos(PI*j*(k+1/2)/32), 0<=k<32\n\t */\n\tfunction window_subband(x1, x1Pos, a) {\n\t\tvar wp = 10;\n\n\t\tvar x2 = x1Pos + 238 - 14 - 286;\n\n\t\tfor (var i = -15; i < 0; i++) {\n\t\t\tvar w, s, t;\n\n\t\t\tw = enwindow[wp + -10];\n\t\t\ts = x1[x2 + -224] * w;\n\t\t\tt = x1[x1Pos + 224] * w;\n\t\t\tw = enwindow[wp + -9];\n\t\t\ts += x1[x2 + -160] * w;\n\t\t\tt += x1[x1Pos + 160] * w;\n\t\t\tw = enwindow[wp + -8];\n\t\t\ts += x1[x2 + -96] * w;\n\t\t\tt += x1[x1Pos + 96] * w;\n\t\t\tw = enwindow[wp + -7];\n\t\t\ts += x1[x2 + -32] * w;\n\t\t\tt += x1[x1Pos + 32] * w;\n\t\t\tw = enwindow[wp + -6];\n\t\t\ts += x1[x2 + 32] * w;\n\t\t\tt += x1[x1Pos + -32] * w;\n\t\t\tw = enwindow[wp + -5];\n\t\t\ts += x1[x2 + 96] * w;\n\t\t\tt += x1[x1Pos + -96] * w;\n\t\t\tw = enwindow[wp + -4];\n\t\t\ts += x1[x2 + 160] * w;\n\t\t\tt += x1[x1Pos + -160] * w;\n\t\t\tw = enwindow[wp + -3];\n\t\t\ts += x1[x2 + 224] * w;\n\t\t\tt += x1[x1Pos + -224] * w;\n\n\t\t\tw = enwindow[wp + -2];\n\t\t\ts += x1[x1Pos + -256] * w;\n\t\t\tt -= x1[x2 + 256] * w;\n\t\t\tw = enwindow[wp + -1];\n\t\t\ts += x1[x1Pos + -192] * w;\n\t\t\tt -= x1[x2 + 192] * w;\n\t\t\tw = enwindow[wp + 0];\n\t\t\ts += x1[x1Pos + -128] * w;\n\t\t\tt -= x1[x2 + 128] * w;\n\t\t\tw = enwindow[wp + 1];\n\t\t\ts += x1[x1Pos + -64] * w;\n\t\t\tt -= x1[x2 + 64] * w;\n\t\t\tw = enwindow[wp + 2];\n\t\t\ts += x1[x1Pos + 0] * w;\n\t\t\tt -= x1[x2 + 0] * w;\n\t\t\tw = enwindow[wp + 3];\n\t\t\ts += x1[x1Pos + 64] * w;\n\t\t\tt -= x1[x2 + -64] * w;\n\t\t\tw = enwindow[wp + 4];\n\t\t\ts += x1[x1Pos + 128] * w;\n\t\t\tt -= x1[x2 + -128] * w;\n\t\t\tw = enwindow[wp + 5];\n\t\t\ts += x1[x1Pos + 192] * w;\n\t\t\tt -= x1[x2 + -192] * w;\n\n\t\t\t/*\n\t\t\t * this multiplyer could be removed, but it needs more 256 FLOAT\n\t\t\t * data. thinking about the data cache performance, I think we\n\t\t\t * should not use such a huge table. tt 2000/Oct/25\n\t\t\t */\n\t\t\ts *= enwindow[wp + 6];\n\t\t\tw = t - s;\n\t\t\ta[30 + i * 2] = t + s;\n\t\t\ta[31 + i * 2] = enwindow[wp + 7] * w;\n\t\t\twp += 18;\n\t\t\tx1Pos--;\n\t\t\tx2++;\n\t\t}\n\t\t{\n\t\t\tvar s, t, u, v;\n\t\t\tt = x1[x1Pos + -16] * enwindow[wp + -10];\n\t\t\ts = x1[x1Pos + -32] * enwindow[wp + -2];\n\t\t\tt += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n\t\t\ts += x1[x1Pos + -96] * enwindow[wp + -1];\n\t\t\tt += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n\t\t\ts += x1[x1Pos + -160] * enwindow[wp + 0];\n\t\t\tt += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n\t\t\ts += x1[x1Pos + -224] * enwindow[wp + 1];\n\t\t\tt += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n\t\t\ts -= x1[x1Pos + 32] * enwindow[wp + 2];\n\t\t\tt += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n\t\t\ts -= x1[x1Pos + 96] * enwindow[wp + 3];\n\t\t\tt += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n\t\t\ts -= x1[x1Pos + 160] * enwindow[wp + 4];\n\t\t\tt += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n\t\t\ts -= x1[x1Pos + 224];\n\n\t\t\tu = s - t;\n\t\t\tv = s + t;\n\n\t\t\tt = a[14];\n\t\t\ts = a[15] - t;\n\n\t\t\ta[31] = v + t; /* A0 */\n\t\t\ta[30] = u + s; /* A1 */\n\t\t\ta[15] = u - s; /* A2 */\n\t\t\ta[14] = v - t; /* A3 */\n\t\t}\n\t\t{\n\t\t\tvar xr;\n\t\t\txr = a[28] - a[0];\n\t\t\ta[0] += a[28];\n\t\t\ta[28] = xr * enwindow[wp + -2 * 18 + 7];\n\t\t\txr = a[29] - a[1];\n\t\t\ta[1] += a[29];\n\t\t\ta[29] = xr * enwindow[wp + -2 * 18 + 7];\n\n\t\t\txr = a[26] - a[2];\n\t\t\ta[2] += a[26];\n\t\t\ta[26] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[27] - a[3];\n\t\t\ta[3] += a[27];\n\t\t\ta[27] = xr * enwindow[wp + -4 * 18 + 7];\n\n\t\t\txr = a[24] - a[4];\n\t\t\ta[4] += a[24];\n\t\t\ta[24] = xr * enwindow[wp + -6 * 18 + 7];\n\t\t\txr = a[25] - a[5];\n\t\t\ta[5] += a[25];\n\t\t\ta[25] = xr * enwindow[wp + -6 * 18 + 7];\n\n\t\t\txr = a[22] - a[6];\n\t\t\ta[6] += a[22];\n\t\t\ta[22] = xr * Util.SQRT2;\n\t\t\txr = a[23] - a[7];\n\t\t\ta[7] += a[23];\n\t\t\ta[23] = xr * Util.SQRT2 - a[7];\n\t\t\ta[7] -= a[6];\n\t\t\ta[22] -= a[7];\n\t\t\ta[23] -= a[22];\n\n\t\t\txr = a[6];\n\t\t\ta[6] = a[31] - xr;\n\t\t\ta[31] = a[31] + xr;\n\t\t\txr = a[7];\n\t\t\ta[7] = a[30] - xr;\n\t\t\ta[30] = a[30] + xr;\n\t\t\txr = a[22];\n\t\t\ta[22] = a[15] - xr;\n\t\t\ta[15] = a[15] + xr;\n\t\t\txr = a[23];\n\t\t\ta[23] = a[14] - xr;\n\t\t\ta[14] = a[14] + xr;\n\n\t\t\txr = a[20] - a[8];\n\t\t\ta[8] += a[20];\n\t\t\ta[20] = xr * enwindow[wp + -10 * 18 + 7];\n\t\t\txr = a[21] - a[9];\n\t\t\ta[9] += a[21];\n\t\t\ta[21] = xr * enwindow[wp + -10 * 18 + 7];\n\n\t\t\txr = a[18] - a[10];\n\t\t\ta[10] += a[18];\n\t\t\ta[18] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = a[19] - a[11];\n\t\t\ta[11] += a[19];\n\t\t\ta[19] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[16] - a[12];\n\t\t\ta[12] += a[16];\n\t\t\ta[16] = xr * enwindow[wp + -14 * 18 + 7];\n\t\t\txr = a[17] - a[13];\n\t\t\ta[13] += a[17];\n\t\t\ta[17] = xr * enwindow[wp + -14 * 18 + 7];\n\n\t\t\txr = -a[20] + a[24];\n\t\t\ta[20] += a[24];\n\t\t\ta[24] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = -a[21] + a[25];\n\t\t\ta[21] += a[25];\n\t\t\ta[25] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[4] - a[8];\n\t\t\ta[4] += a[8];\n\t\t\ta[8] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = a[5] - a[9];\n\t\t\ta[5] += a[9];\n\t\t\ta[9] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[0] - a[12];\n\t\t\ta[0] += a[12];\n\t\t\ta[12] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[1] - a[13];\n\t\t\ta[1] += a[13];\n\t\t\ta[13] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[16] - a[28];\n\t\t\ta[16] += a[28];\n\t\t\ta[28] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = -a[17] + a[29];\n\t\t\ta[17] += a[29];\n\t\t\ta[29] = xr * enwindow[wp + -4 * 18 + 7];\n\n\t\t\txr = Util.SQRT2 * (a[2] - a[10]);\n\t\t\ta[2] += a[10];\n\t\t\ta[10] = xr;\n\t\t\txr = Util.SQRT2 * (a[3] - a[11]);\n\t\t\ta[3] += a[11];\n\t\t\ta[11] = xr;\n\t\t\txr = Util.SQRT2 * (-a[18] + a[26]);\n\t\t\ta[18] += a[26];\n\t\t\ta[26] = xr - a[18];\n\t\t\txr = Util.SQRT2 * (-a[19] + a[27]);\n\t\t\ta[19] += a[27];\n\t\t\ta[27] = xr - a[19];\n\n\t\t\txr = a[2];\n\t\t\ta[19] -= a[3];\n\t\t\ta[3] -= xr;\n\t\t\ta[2] = a[31] - xr;\n\t\t\ta[31] += xr;\n\t\t\txr = a[3];\n\t\t\ta[11] -= a[19];\n\t\t\ta[18] -= xr;\n\t\t\ta[3] = a[30] - xr;\n\t\t\ta[30] += xr;\n\t\t\txr = a[18];\n\t\t\ta[27] -= a[11];\n\t\t\ta[19] -= xr;\n\t\t\ta[18] = a[15] - xr;\n\t\t\ta[15] += xr;\n\n\t\t\txr = a[19];\n\t\t\ta[10] -= xr;\n\t\t\ta[19] = a[14] - xr;\n\t\t\ta[14] += xr;\n\t\t\txr = a[10];\n\t\t\ta[11] -= xr;\n\t\t\ta[10] = a[23] - xr;\n\t\t\ta[23] += xr;\n\t\t\txr = a[11];\n\t\t\ta[26] -= xr;\n\t\t\ta[11] = a[22] - xr;\n\t\t\ta[22] += xr;\n\t\t\txr = a[26];\n\t\t\ta[27] -= xr;\n\t\t\ta[26] = a[7] - xr;\n\t\t\ta[7] += xr;\n\n\t\t\txr = a[27];\n\t\t\ta[27] = a[6] - xr;\n\t\t\ta[6] += xr;\n\n\t\t\txr = Util.SQRT2 * (a[0] - a[4]);\n\t\t\ta[0] += a[4];\n\t\t\ta[4] = xr;\n\t\t\txr = Util.SQRT2 * (a[1] - a[5]);\n\t\t\ta[1] += a[5];\n\t\t\ta[5] = xr;\n\t\t\txr = Util.SQRT2 * (a[16] - a[20]);\n\t\t\ta[16] += a[20];\n\t\t\ta[20] = xr;\n\t\t\txr = Util.SQRT2 * (a[17] - a[21]);\n\t\t\ta[17] += a[21];\n\t\t\ta[21] = xr;\n\n\t\t\txr = -Util.SQRT2 * (a[8] - a[12]);\n\t\t\ta[8] += a[12];\n\t\t\ta[12] = xr - a[8];\n\t\t\txr = -Util.SQRT2 * (a[9] - a[13]);\n\t\t\ta[9] += a[13];\n\t\t\ta[13] = xr - a[9];\n\t\t\txr = -Util.SQRT2 * (a[25] - a[29]);\n\t\t\ta[25] += a[29];\n\t\t\ta[29] = xr - a[25];\n\t\t\txr = -Util.SQRT2 * (a[24] + a[28]);\n\t\t\ta[24] -= a[28];\n\t\t\ta[28] = xr - a[24];\n\n\t\t\txr = a[24] - a[16];\n\t\t\ta[24] = xr;\n\t\t\txr = a[20] - xr;\n\t\t\ta[20] = xr;\n\t\t\txr = a[28] - xr;\n\t\t\ta[28] = xr;\n\n\t\t\txr = a[25] - a[17];\n\t\t\ta[25] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[17] - a[1];\n\t\t\ta[17] = xr;\n\t\t\txr = a[9] - xr;\n\t\t\ta[9] = xr;\n\t\t\txr = a[25] - xr;\n\t\t\ta[25] = xr;\n\t\t\txr = a[5] - xr;\n\t\t\ta[5] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[13] - xr;\n\t\t\ta[13] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[1] - a[0];\n\t\t\ta[1] = xr;\n\t\t\txr = a[16] - xr;\n\t\t\ta[16] = xr;\n\t\t\txr = a[17] - xr;\n\t\t\ta[17] = xr;\n\t\t\txr = a[8] - xr;\n\t\t\ta[8] = xr;\n\t\t\txr = a[9] - xr;\n\t\t\ta[9] = xr;\n\t\t\txr = a[24] - xr;\n\t\t\ta[24] = xr;\n\t\t\txr = a[25] - xr;\n\t\t\ta[25] = xr;\n\t\t\txr = a[4] - xr;\n\t\t\ta[4] = xr;\n\t\t\txr = a[5] - xr;\n\t\t\ta[5] = xr;\n\t\t\txr = a[20] - xr;\n\t\t\ta[20] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[12] - xr;\n\t\t\ta[12] = xr;\n\t\t\txr = a[13] - xr;\n\t\t\ta[13] = xr;\n\t\t\txr = a[28] - xr;\n\t\t\ta[28] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[0];\n\t\t\ta[0] += a[31];\n\t\t\ta[31] -= xr;\n\t\t\txr = a[1];\n\t\t\ta[1] += a[30];\n\t\t\ta[30] -= xr;\n\t\t\txr = a[16];\n\t\t\ta[16] += a[15];\n\t\t\ta[15] -= xr;\n\t\t\txr = a[17];\n\t\t\ta[17] += a[14];\n\t\t\ta[14] -= xr;\n\t\t\txr = a[8];\n\t\t\ta[8] += a[23];\n\t\t\ta[23] -= xr;\n\t\t\txr = a[9];\n\t\t\ta[9] += a[22];\n\t\t\ta[22] -= xr;\n\t\t\txr = a[24];\n\t\t\ta[24] += a[7];\n\t\t\ta[7] -= xr;\n\t\t\txr = a[25];\n\t\t\ta[25] += a[6];\n\t\t\ta[6] -= xr;\n\t\t\txr = a[4];\n\t\t\ta[4] += a[27];\n\t\t\ta[27] -= xr;\n\t\t\txr = a[5];\n\t\t\ta[5] += a[26];\n\t\t\ta[26] -= xr;\n\t\t\txr = a[20];\n\t\t\ta[20] += a[11];\n\t\t\ta[11] -= xr;\n\t\t\txr = a[21];\n\t\t\ta[21] += a[10];\n\t\t\ta[10] -= xr;\n\t\t\txr = a[12];\n\t\t\ta[12] += a[19];\n\t\t\ta[19] -= xr;\n\t\t\txr = a[13];\n\t\t\ta[13] += a[18];\n\t\t\ta[18] -= xr;\n\t\t\txr = a[28];\n\t\t\ta[28] += a[3];\n\t\t\ta[3] -= xr;\n\t\t\txr = a[29];\n\t\t\ta[29] += a[2];\n\t\t\ta[2] -= xr;\n\t\t}\n\t}\n\n\t/**\n\t * Function: Calculation of the MDCT In the case of long blocks (type 0,1,3)\n\t * there are 36 coefficents in the time domain and 18 in the frequency\n\t * domain.<BR>\n\t * In the case of short blocks (type 2) there are 3 transformations with\n\t * short length. This leads to 12 coefficents in the time and 6 in the\n\t * frequency domain. In this case the results are stored side by side in the\n\t * vector out[].\n\t *\n\t * New layer3\n\t */\n\tfunction mdct_short(inout, inoutPos) {\n\t\tfor (var l = 0; l < 3; l++) {\n\t\t\tvar tc0, tc1, tc2, ts0, ts1, ts2;\n\n\t\t\tts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0]\n\t\t\t\t\t- inout[inoutPos + 5 * 3];\n\t\t\ttc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2]\n\t\t\t\t\t- inout[inoutPos + 3 * 3];\n\t\t\ttc1 = ts0 + tc0;\n\t\t\ttc2 = ts0 - tc0;\n\n\t\t\tts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0]\n\t\t\t\t\t+ inout[inoutPos + 2 * 3];\n\t\t\ttc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2]\n\t\t\t\t\t+ inout[inoutPos + 0 * 3];\n\t\t\tts1 = ts0 + tc0;\n\t\t\tts2 = -ts0 + tc0;\n\n\t\t\ttc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2.069978111953089e-11;\n\t\t\t/*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */\n\t\t\tts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2.069978111953089e-11;\n\t\t\t/*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 0] = tc1 * 1.907525191737280e-11 + tc0;\n\t\t\t/*\n\t\t\t * tritab_s[ 2 ]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 5] = -ts1 * 1.907525191737280e-11 + ts0;\n\t\t\t/*\n\t\t\t * tritab_s[0 ]\n\t\t\t */\n\t\t\ttc2 = tc2 * 0.86602540378443870761 * 1.907525191737281e-11;\n\t\t\t/*\n\t\t\t * tritab_s[ 2]\n\t\t\t */\n\t\t\tts1 = ts1 * 0.5 * 1.907525191737281e-11 + ts0;\n\t\t\tinout[inoutPos + 3 * 1] = tc2 - ts1;\n\t\t\tinout[inoutPos + 3 * 2] = tc2 + ts1;\n\n\t\t\ttc1 = tc1 * 0.5 * 1.907525191737281e-11 - tc0;\n\t\t\tts2 = ts2 * 0.86602540378443870761 * 1.907525191737281e-11;\n\t\t\t/*\n\t\t\t * tritab_s[ 0]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 3] = tc1 + ts2;\n\t\t\tinout[inoutPos + 3 * 4] = tc1 - ts2;\n\n\t\t\tinoutPos++;\n\t\t}\n\t}\n\n\tfunction mdct_long(out, outPos, _in) {\n\t\tvar ct, st;\n\t\t{\n\t\t\tvar tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n\t\t\t/* 1,2, 5,6, 9,10, 13,14, 17 */\n\t\t\ttc1 = _in[17] - _in[9];\n\t\t\ttc3 = _in[15] - _in[11];\n\t\t\ttc4 = _in[14] - _in[12];\n\t\t\tts5 = _in[0] + _in[8];\n\t\t\tts6 = _in[1] + _in[7];\n\t\t\tts7 = _in[2] + _in[6];\n\t\t\tts8 = _in[3] + _in[5];\n\n\t\t\tout[outPos + 17] = (ts5 + ts7 - ts8) - (ts6 - _in[4]);\n\t\t\tst = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n\t\t\tct = (tc1 - tc3 - tc4) * cx[12 + 6];\n\t\t\tout[outPos + 5] = ct + st;\n\t\t\tout[outPos + 6] = ct - st;\n\n\t\t\ttc2 = (_in[16] - _in[10]) * cx[12 + 6];\n\t\t\tts6 = ts6 * cx[12 + 7] + _in[4];\n\t\t\tct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n\t\t\tst = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n\t\t\tout[outPos + 1] = ct + st;\n\t\t\tout[outPos + 2] = ct - st;\n\n\t\t\tct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n\t\t\tst = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n\t\t\tout[outPos + 9] = ct + st;\n\t\t\tout[outPos + 10] = ct - st;\n\n\t\t\tct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n\t\t\tst = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n\t\t\tout[outPos + 13] = ct + st;\n\t\t\tout[outPos + 14] = ct - st;\n\t\t}\n\t\t{\n\t\t\tvar ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n\n\t\t\tts1 = _in[8] - _in[0];\n\t\t\tts3 = _in[6] - _in[2];\n\t\t\tts4 = _in[5] - _in[3];\n\t\t\ttc5 = _in[17] + _in[9];\n\t\t\ttc6 = _in[16] + _in[10];\n\t\t\ttc7 = _in[15] + _in[11];\n\t\t\ttc8 = _in[14] + _in[12];\n\n\t\t\tout[outPos + 0] = (tc5 + tc7 + tc8) + (tc6 + _in[13]);\n\t\t\tct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n\t\t\tst = (ts1 - ts3 + ts4) * cx[12 + 6];\n\t\t\tout[outPos + 11] = ct + st;\n\t\t\tout[outPos + 12] = ct - st;\n\n\t\t\tts2 = (_in[7] - _in[1]) * cx[12 + 6];\n\t\t\ttc6 = _in[13] - tc6 * cx[12 + 7];\n\t\t\tct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n\t\t\tst = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n\t\t\tout[outPos + 3] = ct + st;\n\t\t\tout[outPos + 4] = ct - st;\n\n\t\t\tct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n\t\t\tst = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n\t\t\tout[outPos + 7] = ct + st;\n\t\t\tout[outPos + 8] = ct - st;\n\n\t\t\tct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n\t\t\tst = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n\t\t\tout[outPos + 15] = ct + st;\n\t\t\tout[outPos + 16] = ct - st;\n\t\t}\n\t}\n\n\tthis.mdct_sub48 = function(gfc, w0, w1) {\n\t\tvar wk = w0;\n\t\tvar wkPos = 286;\n\t\t/* thinking cache performance, ch->gr loop is better than gr->ch loop */\n\t\tfor (var ch = 0; ch < gfc.channels_out; ch++) {\n\t\t\tfor (var gr = 0; gr < gfc.mode_gr; gr++) {\n\t\t\t\tvar band;\n\t\t\t\tvar gi = (gfc.l3_side.tt[gr][ch]);\n\t\t\t\tvar mdct_enc = gi.xr;\n\t\t\t\tvar mdct_encPos = 0;\n\t\t\t\tvar samp = gfc.sb_sample[ch][1 - gr];\n\t\t\t\tvar sampPos = 0;\n\n\t\t\t\tfor (var k = 0; k < 18 / 2; k++) {\n\t\t\t\t\twindow_subband(wk, wkPos, samp[sampPos]);\n\t\t\t\t\twindow_subband(wk, wkPos + 32, samp[sampPos + 1]);\n\t\t\t\t\tsampPos += 2;\n\t\t\t\t\twkPos += 64;\n\t\t\t\t\t/*\n\t\t\t\t\t * Compensate for inversion in the analysis filter\n\t\t\t\t\t */\n\t\t\t\t\tfor (band = 1; band < 32; band += 2) {\n\t\t\t\t\t\tsamp[sampPos - 1][band] *= -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Perform imdct of 18 previous subband samples + 18 current\n\t\t\t\t * subband samples\n\t\t\t\t */\n\t\t\t\tfor (band = 0; band < 32; band++, mdct_encPos += 18) {\n\t\t\t\t\tvar type = gi.block_type;\n\t\t\t\t\tvar band0 = gfc.sb_sample[ch][gr];\n\t\t\t\t\tvar band1 = gfc.sb_sample[ch][1 - gr];\n\t\t\t\t\tif (gi.mixed_block_flag != 0 && band < 2)\n\t\t\t\t\t\ttype = 0;\n\t\t\t\t\tif (gfc.amp_filter[band] < 1e-12) {\n\t\t\t\t\t\tArrays.fill(mdct_enc, mdct_encPos + 0,\n\t\t\t\t\t\t\t\tmdct_encPos + 18, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (gfc.amp_filter[band] < 1.0) {\n\t\t\t\t\t\t\tfor (var k = 0; k < 18; k++)\n\t\t\t\t\t\t\t\tband1[k][order[band]] *= gfc.amp_filter[band];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type == Encoder.SHORT_TYPE) {\n\t\t\t\t\t\t\tfor (var k = -NS / 4; k < 0; k++) {\n\t\t\t\t\t\t\t\tvar w = win[Encoder.SHORT_TYPE][k + 3];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band0[8 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band0[15 + k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band0[14 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band1[3 + k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band1[2 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band1[9 + k][order[band]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmdct_short(mdct_enc, mdct_encPos);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar work = new_float(18);\n\t\t\t\t\t\t\tfor (var k = -NL / 4; k < 0; k++) {\n\t\t\t\t\t\t\t\tvar a, b;\n\t\t\t\t\t\t\t\ta = win[type][k + 27]\n\t\t\t\t\t\t\t\t\t\t* band1[k + 9][order[band]]\n\t\t\t\t\t\t\t\t\t\t+ win[type][k + 36]\n\t\t\t\t\t\t\t\t\t\t* band1[8 - k][order[band]];\n\t\t\t\t\t\t\t\tb = win[type][k + 9]\n\t\t\t\t\t\t\t\t\t\t* band0[k + 9][order[band]]\n\t\t\t\t\t\t\t\t\t\t- win[type][k + 18]\n\t\t\t\t\t\t\t\t\t\t* band0[8 - k][order[band]];\n\t\t\t\t\t\t\t\twork[k + 9] = a - b * tantab_l[3 + k + 9];\n\t\t\t\t\t\t\t\twork[k + 18] = a * tantab_l[3 + k + 9] + b;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tmdct_long(mdct_enc, mdct_encPos, work);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t/*\n\t\t\t\t\t * Perform aliasing reduction butterfly\n\t\t\t\t\t */\n\t\t\t\t\tif (type != Encoder.SHORT_TYPE && band != 0) {\n\t\t\t\t\t\tfor (var k = 7; k >= 0; --k) {\n\t\t\t\t\t\t\tvar bu, bd;\n\t\t\t\t\t\t\tbu = mdct_enc[mdct_encPos + k] * ca[20 + k]\n\t\t\t\t\t\t\t\t\t+ mdct_enc[mdct_encPos + -1 - k]\n\t\t\t\t\t\t\t\t\t* cs[28 + k];\n\t\t\t\t\t\t\tbd = mdct_enc[mdct_encPos + k] * cs[28 + k]\n\t\t\t\t\t\t\t\t\t- mdct_enc[mdct_encPos + -1 - k]\n\t\t\t\t\t\t\t\t\t* ca[20 + k];\n\n\t\t\t\t\t\t\tmdct_enc[mdct_encPos + -1 - k] = bu;\n\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k] = bd;\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\twk = w1;\n\t\t\twkPos = 286;\n\t\t\tif (gfc.mode_gr == 1) {\n\t\t\t\tfor (var i = 0; i < 18; i++) {\n\t\t\t\t\tSystem.arraycopy(gfc.sb_sample[ch][1][i], 0,\n\t\t\t\t\t\t\tgfc.sb_sample[ch][0][i], 0, 32);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nmodule.exports = NewMDCT;\n\n\n/***/ }),\n\n/***/ \"f5df\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(\"00ee\");\nvar isCallable = __webpack_require__(\"1626\");\nvar classofRaw = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ \"f772\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5692\");\nvar uid = __webpack_require__(\"90e3\");\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"f8cd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(\"5926\");\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"fa9e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\n__webpack_require__(\"986a\");\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  var currentScript = window.document.currentScript\n  if (false) { var getCurrentScript; }\n\n  var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n  if (src) {\n    __webpack_require__.p = src[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/ChatWindow.vue?vue&type=template&id=32846052&\nvar render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-card-window\",\n    style: [{\n      height: _vm.height\n    }, _vm.cssVars]\n  }, [_c('div', {\n    staticClass: \"vac-chat-container\"\n  }, [!_vm.singleRoom ? _c('rooms-list', {\n    attrs: {\n      \"current-user-id\": _vm.currentUserId,\n      \"rooms\": _vm.orderedRooms,\n      \"loading-rooms\": _vm.loadingRooms,\n      \"rooms-loaded\": _vm.roomsLoaded,\n      \"room\": _vm.room,\n      \"room-actions\": _vm.roomActions,\n      \"text-messages\": _vm.t,\n      \"show-search\": _vm.showSearch,\n      \"show-add-room\": _vm.showAddRoom,\n      \"show-rooms-list\": _vm.showRoomsList,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions,\n      \"is-mobile\": _vm.isMobile,\n      \"scroll-distance\": _vm.scrollDistance\n    },\n    on: {\n      \"fetch-room\": _vm.fetchRoom,\n      \"fetch-more-rooms\": _vm.fetchMoreRooms,\n      \"loading-more-rooms\": function loadingMoreRooms($event) {\n        _vm.loadingMoreRooms = $event;\n      },\n      \"add-room\": _vm.addRoom,\n      \"room-action-handler\": _vm.roomActionHandler\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }) : _vm._e(), _c('room', {\n    attrs: {\n      \"current-user-id\": _vm.currentUserId,\n      \"rooms\": _vm.rooms,\n      \"room-id\": _vm.room.roomId || '',\n      \"load-first-room\": _vm.loadFirstRoom,\n      \"messages\": _vm.messages,\n      \"room-message\": _vm.roomMessage,\n      \"messages-loaded\": _vm.messagesLoaded,\n      \"menu-actions\": _vm.menuActions,\n      \"message-actions\": _vm.messageActions,\n      \"message-selection-actions\": _vm.messageSelectionActions,\n      \"auto-scroll\": _vm.autoScroll,\n      \"show-send-icon\": _vm.showSendIcon,\n      \"show-files\": _vm.showFiles,\n      \"show-audio\": _vm.showAudio,\n      \"audio-bit-rate\": _vm.audioBitRate,\n      \"audio-sample-rate\": _vm.audioSampleRate,\n      \"show-emojis\": _vm.showEmojis,\n      \"show-reaction-emojis\": _vm.showReactionEmojis,\n      \"show-new-messages-divider\": _vm.showNewMessagesDivider,\n      \"show-footer\": _vm.showFooter,\n      \"text-messages\": _vm.t,\n      \"single-room\": _vm.singleRoom,\n      \"show-rooms-list\": _vm.showRoomsList,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions,\n      \"is-mobile\": _vm.isMobile,\n      \"loading-rooms\": _vm.loadingRooms,\n      \"room-info-enabled\": _vm.roomInfoEnabled,\n      \"textarea-action-enabled\": _vm.textareaActionEnabled,\n      \"textarea-auto-focus\": _vm.textareaAutoFocus,\n      \"user-tags-enabled\": _vm.userTagsEnabled,\n      \"emojis-suggestion-enabled\": _vm.emojisSuggestionEnabled,\n      \"scroll-distance\": _vm.scrollDistance,\n      \"accepted-files\": _vm.acceptedFiles,\n      \"templates-text\": _vm.templatesText,\n      \"username-options\": _vm.usernameOptions\n    },\n    on: {\n      \"toggle-rooms-list\": _vm.toggleRoomsList,\n      \"room-info\": _vm.roomInfo,\n      \"fetch-messages\": _vm.fetchMessages,\n      \"send-message\": _vm.sendMessage,\n      \"edit-message\": _vm.editMessage,\n      \"delete-message\": _vm.deleteMessage,\n      \"open-file\": _vm.openFile,\n      \"open-user-tag\": _vm.openUserTag,\n      \"open-failed-message\": _vm.openFailedMessage,\n      \"menu-action-handler\": _vm.menuActionHandler,\n      \"message-action-handler\": _vm.messageActionHandler,\n      \"message-selection-action-handler\": _vm.messageSelectionActionHandler,\n      \"send-message-reaction\": _vm.sendMessageReaction,\n      \"typing-message\": _vm.typingMessage,\n      \"textarea-action-handler\": _vm.textareaActionHandler\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 1), _c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-preview\",\n      \"appear\": \"\"\n    }\n  }, [_vm.showMediaPreview ? _c('media-preview', {\n    attrs: {\n      \"file\": _vm.previewFile\n    },\n    on: {\n      \"close-media-preview\": function closeMediaPreview($event) {\n        _vm.showMediaPreview = false;\n      }\n    }\n  }) : _vm._e()], 1)], 1);\n};\n\nvar staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/ChatWindow.vue?vue&type=template&id=32846052&\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\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// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n\n  return target;\n}\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomsList.vue?vue&type=template&id=e9cbf0d4&\nvar RoomsListvue_type_template_id_e9cbf0d4_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    directives: [{\n      name: \"show\",\n      rawName: \"v-show\",\n      value: _vm.showRoomsList,\n      expression: \"showRoomsList\"\n    }],\n    staticClass: \"vac-rooms-container\",\n    \"class\": {\n      'vac-rooms-container-full': _vm.isMobile,\n      'vac-app-border-r': !_vm.isMobile\n    }\n  }, [_vm._t(\"rooms-header\"), _vm._t(\"rooms-list-search\", function () {\n    return [_c('rooms-search', {\n      attrs: {\n        \"rooms\": _vm.rooms,\n        \"loading-rooms\": _vm.loadingRooms,\n        \"text-messages\": _vm.textMessages,\n        \"show-search\": _vm.showSearch,\n        \"show-add-room\": _vm.showAddRoom\n      },\n      on: {\n        \"search-room\": _vm.searchRoom,\n        \"add-room\": function addRoom($event) {\n          return _vm.$emit('add-room');\n        }\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })];\n  }), _c('loader', {\n    attrs: {\n      \"show\": _vm.loadingRooms\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), !_vm.loadingRooms && !_vm.rooms.length ? _c('div', {\n    staticClass: \"vac-rooms-empty\"\n  }, [_vm._t(\"rooms-empty\", function () {\n    return [_vm._v(\" \" + _vm._s(_vm.textMessages.ROOMS_EMPTY) + \" \")];\n  })], 2) : _vm._e(), !_vm.loadingRooms ? _c('div', {\n    staticClass: \"vac-room-list\",\n    attrs: {\n      \"id\": \"rooms-list\"\n    }\n  }, [_vm._l(_vm.filteredRooms, function (fRoom) {\n    return _c('div', {\n      key: fRoom.roomId,\n      staticClass: \"vac-room-item\",\n      \"class\": {\n        'vac-room-selected': _vm.selectedRoomId === fRoom.roomId\n      },\n      attrs: {\n        \"id\": fRoom.roomId\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.openRoom(fRoom);\n        }\n      }\n    }, [_c('room-content', {\n      attrs: {\n        \"current-user-id\": _vm.currentUserId,\n        \"room\": fRoom,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions,\n        \"text-messages\": _vm.textMessages,\n        \"room-actions\": _vm.roomActions\n      },\n      on: {\n        \"room-action-handler\": function roomActionHandler($event) {\n          return _vm.$emit('room-action-handler', $event);\n        }\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })], 1);\n  }), _c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-message\"\n    }\n  }, [_vm.rooms.length && !_vm.loadingRooms ? _c('div', {\n    attrs: {\n      \"id\": \"infinite-loader-rooms\"\n    }\n  }, [_c('loader', {\n    attrs: {\n      \"show\": _vm.showLoader,\n      \"infinite\": true\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 1) : _vm._e()])], 2) : _vm._e()], 2);\n};\n\nvar RoomsListvue_type_template_id_e9cbf0d4_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsList.vue?vue&type=template&id=e9cbf0d4&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Loader/Loader.vue?vue&type=template&id=2c0ab9be&\nvar Loadervue_type_template_id_2c0ab9be_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-spinner\",\n      \"appear\": \"\"\n    }\n  }, [_vm.show ? _c('div', {\n    staticClass: \"vac-loader-wrapper\",\n    \"class\": {\n      'vac-container-center': !_vm.infinite,\n      'vac-container-top': _vm.infinite\n    }\n  }, [_vm._t(\"spinner-icon\", function () {\n    return [_c('div', {\n      attrs: {\n        \"id\": \"vac-circle\"\n      }\n    })];\n  }, null, {\n    show: _vm.show,\n    infinite: _vm.infinite\n  })], 2) : _vm._e()]);\n};\n\nvar Loadervue_type_template_id_2c0ab9be_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/components/Loader/Loader.vue?vue&type=template&id=2c0ab9be&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Loader/Loader.vue?vue&type=script&lang=js&\n/* harmony default export */ var Loadervue_type_script_lang_js_ = ({\n  name: 'Loader',\n  props: {\n    show: {\n      type: Boolean,\n      \"default\": false\n    },\n    infinite: {\n      type: Boolean,\n      \"default\": false\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/components/Loader/Loader.vue?vue&type=script&lang=js&\n /* harmony default export */ var Loader_Loadervue_type_script_lang_js_ = (Loadervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n\n// CONCATENATED MODULE: ./src/components/Loader/Loader.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n  Loader_Loadervue_type_script_lang_js_,\n  Loadervue_type_template_id_2c0ab9be_render,\n  Loadervue_type_template_id_2c0ab9be_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var Loader = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomsSearch/RoomsSearch.vue?vue&type=template&id=1fc42a9b&\nvar RoomsSearchvue_type_template_id_1fc42a9b_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    \"class\": {\n      'vac-box-search': _vm.showSearchBar,\n      'vac-box-empty': !_vm.showSearchBar\n    }\n  }, [_vm.showSearch ? [!_vm.loadingRooms && _vm.rooms.length ? _c('div', {\n    staticClass: \"vac-icon-search\"\n  }, [_vm._t(\"search-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"search\"\n      }\n    })];\n  })], 2) : _vm._e(), !_vm.loadingRooms && _vm.rooms.length ? _c('input', {\n    staticClass: \"vac-input\",\n    attrs: {\n      \"type\": \"search\",\n      \"placeholder\": _vm.textMessages.SEARCH,\n      \"autocomplete\": \"off\"\n    },\n    on: {\n      \"input\": function input($event) {\n        return _vm.$emit('search-room', $event);\n      }\n    }\n  }) : _vm._e()] : _vm._e(), _vm.showAddRoom ? _c('div', {\n    staticClass: \"vac-svg-button vac-add-icon\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.$emit('add-room');\n      }\n    }\n  }, [_vm._t(\"add-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"add\"\n      }\n    })];\n  })], 2) : _vm._e()], 2);\n};\n\nvar RoomsSearchvue_type_template_id_1fc42a9b_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsSearch/RoomsSearch.vue?vue&type=template&id=1fc42a9b&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SvgIcon/SvgIcon.vue?vue&type=template&id=e01c0bf4&\nvar SvgIconvue_type_template_id_e01c0bf4_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('svg', {\n    attrs: {\n      \"xmlns\": \"http://www.w3.org/2000/svg\",\n      \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n      \"version\": \"1.1\",\n      \"width\": \"24\",\n      \"height\": \"24\",\n      \"viewBox\": \"0 0 \".concat(_vm.size, \" \").concat(_vm.size)\n    }\n  }, [_c('path', {\n    attrs: {\n      \"id\": _vm.svgId,\n      \"d\": _vm.svgItem[_vm.name].path\n    }\n  }), _vm.svgItem[_vm.name].path2 ? _c('path', {\n    attrs: {\n      \"id\": _vm.svgId,\n      \"d\": _vm.svgItem[_vm.name].path2\n    }\n  }) : _vm._e()]);\n};\n\nvar SvgIconvue_type_template_id_e01c0bf4_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/components/SvgIcon/SvgIcon.vue?vue&type=template&id=e01c0bf4&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SvgIcon/SvgIcon.vue?vue&type=script&lang=js&\n/* harmony default export */ var SvgIconvue_type_script_lang_js_ = ({\n  name: 'SvgIcon',\n  props: {\n    name: {\n      type: String,\n      \"default\": null\n    },\n    param: {\n      type: String,\n      \"default\": null\n    }\n  },\n  data: function data() {\n    return {\n      svgItem: {\n        search: {\n          path: 'M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'\n        },\n        add: {\n          path: 'M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z'\n        },\n        toggle: {\n          path: 'M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z'\n        },\n        menu: {\n          path: 'M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z'\n        },\n        close: {\n          path: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z'\n        },\n        file: {\n          path: 'M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z'\n        },\n        paperclip: {\n          path: 'M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z'\n        },\n        'close-outline': {\n          path: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z'\n        },\n        send: {\n          path: 'M2,21L23,12L2,3V10L17,12L2,14V21Z'\n        },\n        emoji: {\n          path: 'M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z'\n        },\n        document: {\n          path: 'M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z'\n        },\n        pencil: {\n          path: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z'\n        },\n        checkmark: {\n          path: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z'\n        },\n        'double-checkmark': {\n          path: 'M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z'\n        },\n        eye: {\n          path: 'M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z'\n        },\n        dropdown: {\n          path: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z'\n        },\n        deleted: {\n          path: 'M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z'\n        },\n        microphone: {\n          size: 'large',\n          path: 'M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z'\n        },\n        'audio-play': {\n          size: 'medium',\n          path: 'M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684   c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84   c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z'\n        },\n        'audio-pause': {\n          size: 'medium',\n          path: 'M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z',\n          path2: 'M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z'\n        }\n      }\n    };\n  },\n  computed: {\n    svgId: function svgId() {\n      var param = this.param ? '-' + this.param : '';\n      return \"vac-icon-\".concat(this.name).concat(param);\n    },\n    size: function size() {\n      var item = this.svgItem[this.name];\n      if (item.size === 'large') return 512;else if (item.size === 'medium') return 48;else return 24;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/components/SvgIcon/SvgIcon.vue?vue&type=script&lang=js&\n /* harmony default export */ var SvgIcon_SvgIconvue_type_script_lang_js_ = (SvgIconvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/SvgIcon/SvgIcon.vue\n\n\n\n\n\n/* normalize component */\n\nvar SvgIcon_component = normalizeComponent(\n  SvgIcon_SvgIconvue_type_script_lang_js_,\n  SvgIconvue_type_template_id_e01c0bf4_render,\n  SvgIconvue_type_template_id_e01c0bf4_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var SvgIcon = (SvgIcon_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomsSearch/RoomsSearch.vue?vue&type=script&lang=js&\n\n/* harmony default export */ var RoomsSearchvue_type_script_lang_js_ = ({\n  name: 'RoomsSearch',\n  components: {\n    SvgIcon: SvgIcon\n  },\n  props: {\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    showSearch: {\n      type: Boolean,\n      required: true\n    },\n    showAddRoom: {\n      type: Boolean,\n      required: true\n    },\n    rooms: {\n      type: Array,\n      required: true\n    },\n    loadingRooms: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['search-room', 'add-room'],\n  computed: {\n    showSearchBar: function showSearchBar() {\n      return this.showSearch || this.showAddRoom;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsSearch/RoomsSearch.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomsSearch_RoomsSearchvue_type_script_lang_js_ = (RoomsSearchvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsSearch/RoomsSearch.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomsSearch_component = normalizeComponent(\n  RoomsSearch_RoomsSearchvue_type_script_lang_js_,\n  RoomsSearchvue_type_template_id_1fc42a9b_render,\n  RoomsSearchvue_type_template_id_1fc42a9b_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomsSearch = (RoomsSearch_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomContent/RoomContent.vue?vue&type=template&id=6888cbad&\nvar RoomContentvue_type_template_id_6888cbad_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-room-container\"\n  }, [_vm._t(\"room-list-item\", function () {\n    return [_vm._t(\"room-list-avatar\", function () {\n      return [_vm.room.avatar ? _c('div', {\n        staticClass: \"vac-avatar\",\n        style: {\n          'background-image': \"url('\".concat(_vm.room.avatar, \"')\")\n        }\n      }) : _vm._e()];\n    }, null, {\n      room: _vm.room\n    }), _c('div', {\n      staticClass: \"vac-name-container vac-text-ellipsis\"\n    }, [_c('div', {\n      staticClass: \"vac-title-container\"\n    }, [_vm.userStatus ? _c('div', {\n      staticClass: \"vac-state-circle\",\n      \"class\": {\n        'vac-state-online': _vm.userStatus === 'online'\n      }\n    }) : _vm._e(), _c('div', {\n      staticClass: \"vac-room-name vac-text-ellipsis\"\n    }, [_vm._v(\" \" + _vm._s(_vm.room.roomName) + \" \")]), _vm.room.lastMessage ? _c('div', {\n      staticClass: \"vac-text-date\"\n    }, [_vm._v(\" \" + _vm._s(_vm.room.lastMessage.timestamp) + \" \")]) : _vm._e()]), _c('div', {\n      staticClass: \"vac-text-last\",\n      \"class\": {\n        'vac-message-new': _vm.room.lastMessage && _vm.room.lastMessage[\"new\"] && !_vm.typingUsers\n      }\n    }, [_vm.isMessageCheckmarkVisible ? _c('span', [_vm._t(\"checkmark-icon\", function () {\n      return [_c('svg-icon', {\n        staticClass: \"vac-icon-check\",\n        attrs: {\n          \"name\": _vm.room.lastMessage.distributed ? 'double-checkmark' : 'checkmark',\n          \"param\": _vm.room.lastMessage.seen ? 'seen' : ''\n        }\n      })];\n    }, null, {\n      message: _vm.room.lastMessage\n    })], 2) : _vm._e(), _vm.room.lastMessage && !_vm.room.lastMessage.deleted && _vm.isAudio ? _c('div', {\n      staticClass: \"vac-text-ellipsis\"\n    }, [_vm._t(\"microphone-icon\", function () {\n      return [_c('svg-icon', {\n        staticClass: \"vac-icon-microphone\",\n        attrs: {\n          \"name\": \"microphone\"\n        }\n      })];\n    }), _vm._v(\" \" + _vm._s(_vm.formattedDuration) + \" \")], 2) : _vm.room.lastMessage ? _c('format-message', {\n      attrs: {\n        \"content\": _vm.getLastMessage,\n        \"deleted\": !!_vm.room.lastMessage.deleted && !_vm.typingUsers,\n        \"users\": _vm.room.users,\n        \"linkify\": false,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions,\n        \"single-line\": true\n      },\n      scopedSlots: _vm._u([{\n        key: \"deleted-icon\",\n        fn: function fn(data) {\n          return [_vm._t(\"deleted-icon\", null, null, data)];\n        }\n      }], null, true)\n    }) : _vm._e(), !_vm.room.lastMessage && _vm.typingUsers ? _c('div', {\n      staticClass: \"vac-text-ellipsis\"\n    }, [_vm._v(\" \" + _vm._s(_vm.typingUsers) + \" \")]) : _vm._e(), _c('div', {\n      staticClass: \"vac-room-options-container\"\n    }, [_vm.room.unreadCount ? _c('div', {\n      staticClass: \"vac-badge-counter vac-room-badge\"\n    }, [_vm._v(\" \" + _vm._s(_vm.room.unreadCount) + \" \")]) : _vm._e(), _vm._t(\"room-list-options\", function () {\n      return [_vm.roomActions.length ? _c('div', {\n        staticClass: \"vac-svg-button vac-list-room-options\",\n        on: {\n          \"click\": function click($event) {\n            $event.stopPropagation();\n            _vm.roomMenuOpened = _vm.room.roomId;\n          }\n        }\n      }, [_vm._t(\"room-list-options-icon\", function () {\n        return [_c('svg-icon', {\n          attrs: {\n            \"name\": \"dropdown\",\n            \"param\": \"room\"\n          }\n        })];\n      })], 2) : _vm._e(), _vm.roomActions.length ? _c('transition', {\n        attrs: {\n          \"name\": \"vac-slide-left\"\n        }\n      }, [_vm.roomMenuOpened === _vm.room.roomId ? _c('div', {\n        directives: [{\n          name: \"click-outside\",\n          rawName: \"v-click-outside\",\n          value: _vm.closeRoomMenu,\n          expression: \"closeRoomMenu\"\n        }],\n        staticClass: \"vac-menu-options\"\n      }, [_c('div', {\n        staticClass: \"vac-menu-list\"\n      }, _vm._l(_vm.roomActions, function (action) {\n        return _c('div', {\n          key: action.name\n        }, [_c('div', {\n          staticClass: \"vac-menu-item\",\n          on: {\n            \"click\": function click($event) {\n              $event.stopPropagation();\n              return _vm.roomActionHandler(action);\n            }\n          }\n        }, [_vm._v(\" \" + _vm._s(action.title) + \" \")])]);\n      }), 0)]) : _vm._e()]) : _vm._e()];\n    }, null, {\n      room: _vm.room\n    })], 2)], 1)])];\n  }, null, {\n    room: _vm.room\n  })], 2);\n};\n\nvar RoomContentvue_type_template_id_6888cbad_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomContent/RoomContent.vue?vue&type=template&id=6888cbad&\n\n// EXTERNAL MODULE: ./node_modules/v-click-outside/dist/v-click-outside.umd.js\nvar v_click_outside_umd = __webpack_require__(\"c28b\");\nvar v_click_outside_umd_default = /*#__PURE__*/__webpack_require__.n(v_click_outside_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FormatMessage/FormatMessage.vue?vue&type=template&id=3a015d3f&\nvar FormatMessagevue_type_template_id_3a015d3f_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-format-message-wrapper\",\n    \"class\": {\n      'vac-text-ellipsis': _vm.singleLine\n    }\n  }, [!_vm.textFormatting.disabled ? _c('div', {\n    \"class\": {\n      'vac-text-ellipsis': _vm.singleLine\n    }\n  }, _vm._l(_vm.linkifiedMessage, function (message, i) {\n    return _c('div', {\n      key: i,\n      staticClass: \"vac-format-container\"\n    }, [_c(message.url ? 'a' : 'span', {\n      tag: \"component\",\n      \"class\": {\n        'vac-text-ellipsis': _vm.singleLine,\n        'vac-text-bold': message.bold,\n        'vac-text-italic': _vm.deleted || message.italic,\n        'vac-text-strike': message.strike,\n        'vac-text-underline': message.underline,\n        'vac-text-inline-code': !_vm.singleLine && message.inline,\n        'vac-text-multiline-code': !_vm.singleLine && message.multiline,\n        'vac-text-tag': !_vm.singleLine && !_vm.reply && message.tag\n      },\n      attrs: {\n        \"href\": message.href,\n        \"target\": message.href ? _vm.linkOptions.target : null,\n        \"rel\": message.href ? _vm.linkOptions.rel : null\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.openTag(message);\n        }\n      }\n    }, [_vm._t(\"deleted-icon\", function () {\n      return [_vm.deleted ? _c('svg-icon', {\n        staticClass: \"vac-icon-deleted\",\n        attrs: {\n          \"name\": \"deleted\"\n        }\n      }) : _vm._e()];\n    }, null, {\n      deleted: _vm.deleted\n    }), message.url && message.image ? [_c('div', {\n      staticClass: \"vac-image-link-container\"\n    }, [_c('div', {\n      staticClass: \"vac-image-link\",\n      style: {\n        'background-image': \"url('\".concat(message.value, \"')\"),\n        height: message.height\n      }\n    })]), _c('div', {\n      staticClass: \"vac-image-link-message\"\n    }, [_c('span', [_vm._v(_vm._s(message.value))])])] : [_c('span', {\n      domProps: {\n        \"innerHTML\": _vm._s(message.value)\n      }\n    }, [_vm._v(\" \" + _vm._s(message.value) + \" \")])]], 2)], 1);\n  }), 0) : _c('div', {\n    domProps: {\n      \"innerHTML\": _vm._s(_vm.formattedContent)\n    }\n  })]);\n};\n\nvar FormatMessagevue_type_template_id_3a015d3f_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/components/FormatMessage/FormatMessage.vue?vue&type=template&id=3a015d3f&\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\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++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\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// EXTERNAL MODULE: ./node_modules/core-js/modules/es.error.cause.js\nvar es_error_cause = __webpack_require__(\"d9e2\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\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// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match-all.js\nvar es_string_match_all = __webpack_require__(\"a1f0\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace-all.js\nvar es_string_replace_all = __webpack_require__(\"5b81\");\n\n// CONCATENATED MODULE: ./src/utils/format-string.js\n\n\n\nvar linkify = __webpack_require__(\"74fe\"); // require('linkifyjs/plugins/hashtag')(linkify)\n\n\n/* harmony default export */ var format_string = (function (text, doLinkify, textFormatting) {\n  var _pseudoMarkdown;\n\n  var typeMarkdown = {\n    bold: textFormatting.bold,\n    italic: textFormatting.italic,\n    strike: textFormatting.strike,\n    underline: textFormatting.underline,\n    multilineCode: textFormatting.multilineCode,\n    inlineCode: textFormatting.inlineCode\n  };\n  var pseudoMarkdown = (_pseudoMarkdown = {}, _defineProperty(_pseudoMarkdown, typeMarkdown.bold, {\n    end: '\\\\' + typeMarkdown.bold,\n    allowed_chars: '.',\n    type: 'bold'\n  }), _defineProperty(_pseudoMarkdown, typeMarkdown.italic, {\n    end: typeMarkdown.italic,\n    allowed_chars: '.',\n    type: 'italic'\n  }), _defineProperty(_pseudoMarkdown, typeMarkdown.strike, {\n    end: typeMarkdown.strike,\n    allowed_chars: '.',\n    type: 'strike'\n  }), _defineProperty(_pseudoMarkdown, typeMarkdown.underline, {\n    end: typeMarkdown.underline,\n    allowed_chars: '.',\n    type: 'underline'\n  }), _defineProperty(_pseudoMarkdown, typeMarkdown.multilineCode, {\n    end: typeMarkdown.multilineCode,\n    allowed_chars: '(.|\\n)',\n    type: 'multiline-code'\n  }), _defineProperty(_pseudoMarkdown, typeMarkdown.inlineCode, {\n    end: typeMarkdown.inlineCode,\n    allowed_chars: '.',\n    type: 'inline-code'\n  }), _defineProperty(_pseudoMarkdown, '<usertag>', {\n    allowed_chars: '.',\n    end: '</usertag>',\n    type: 'tag'\n  }), _pseudoMarkdown);\n  var json = compileToJSON(text, pseudoMarkdown);\n  var html = compileToHTML(json, pseudoMarkdown);\n  var result = [].concat.apply([], html);\n  if (doLinkify) linkifyResult(result);\n  return result;\n});\n\nfunction compileToJSON(str, pseudoMarkdown) {\n  var result = [];\n  var minIndexOf = -1;\n  var minIndexOfKey = null;\n  var links = linkify.find(str);\n  var minIndexFromLink = false;\n\n  if (links.length > 0) {\n    minIndexOf = str.indexOf(links[0].value);\n    minIndexFromLink = true;\n  }\n\n  Object.keys(pseudoMarkdown).forEach(function (startingValue) {\n    var io = str.indexOf(startingValue);\n\n    if (io >= 0 && (minIndexOf < 0 || io < minIndexOf)) {\n      minIndexOf = io;\n      minIndexOfKey = startingValue;\n      minIndexFromLink = false;\n    }\n  });\n\n  if (minIndexFromLink && minIndexOfKey !== -1) {\n    var strLeft = str.substr(0, minIndexOf);\n    var strLink = str.substr(minIndexOf, links[0].value.length);\n    var strRight = str.substr(minIndexOf + links[0].value.length);\n    result.push(strLeft);\n    result.push(strLink);\n    result = result.concat(compileToJSON(strRight, pseudoMarkdown));\n    return result;\n  }\n\n  if (minIndexOfKey) {\n    var _strLeft = str.substr(0, minIndexOf);\n\n    var _char = minIndexOfKey;\n\n    var _strRight = str.substr(minIndexOf + _char.length);\n\n    if (str.replace(/\\s/g, '').length === _char.length * 2) {\n      return [str];\n    }\n\n    var match = _strRight.match(new RegExp('^(' + (pseudoMarkdown[_char].allowed_chars || '.') + '*' + (pseudoMarkdown[_char].end ? '?' : '') + ')' + (pseudoMarkdown[_char].end ? '(' + pseudoMarkdown[_char].end + ')' : ''), 'm'));\n\n    if (!match || !match[1]) {\n      _strLeft = _strLeft + _char;\n      result.push(_strLeft);\n    } else {\n      if (_strLeft) {\n        result.push(_strLeft);\n      }\n\n      var object = {\n        start: _char,\n        content: compileToJSON(match[1], pseudoMarkdown),\n        end: match[2],\n        type: pseudoMarkdown[_char].type\n      };\n      result.push(object);\n      _strRight = _strRight.substr(match[0].length);\n    }\n\n    result = result.concat(compileToJSON(_strRight, pseudoMarkdown));\n    return result;\n  } else {\n    if (str) {\n      return [str];\n    } else {\n      return [];\n    }\n  }\n}\n\nfunction compileToHTML(json, pseudoMarkdown) {\n  var result = [];\n  json.forEach(function (item) {\n    if (typeof item === 'string') {\n      result.push({\n        types: [],\n        value: item\n      });\n    } else {\n      if (pseudoMarkdown[item.start]) {\n        result.push(parseContent(item));\n      }\n    }\n  });\n  return result;\n}\n\nfunction parseContent(item) {\n  var result = [];\n  iterateContent(item, result, []);\n  return result;\n}\n\nfunction iterateContent(item, result, types) {\n  item.content.forEach(function (it) {\n    if (typeof it === 'string') {\n      result.push({\n        types: removeDuplicates(types.concat([item.type])),\n        value: it\n      });\n    } else {\n      iterateContent(it, result, removeDuplicates([it.type].concat([item.type]).concat(types)));\n    }\n  });\n}\n\nfunction removeDuplicates(items) {\n  return _toConsumableArray(new Set(items));\n}\n\nfunction linkifyResult(array) {\n  var result = [];\n  array.forEach(function (arr) {\n    var links = linkify.find(arr.value);\n\n    if (links.length) {\n      var spaces = arr.value.replace(links[0].value, '');\n      result.push({\n        types: arr.types,\n        value: spaces\n      });\n      arr.types = ['url'].concat(arr.types);\n      arr.href = links[0].href;\n      arr.value = links[0].value;\n    }\n\n    result.push(arr);\n  });\n  return result;\n}\n// EXTERNAL MODULE: ./src/utils/constants.js\nvar constants = __webpack_require__(\"c9d9\");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FormatMessage/FormatMessage.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n/* harmony default export */ var FormatMessagevue_type_script_lang_js_ = ({\n  name: 'FormatMessage',\n  components: {\n    SvgIcon: SvgIcon\n  },\n  props: {\n    content: {\n      type: [String, Number],\n      required: true\n    },\n    deleted: {\n      type: Boolean,\n      \"default\": false\n    },\n    users: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    linkify: {\n      type: Boolean,\n      \"default\": true\n    },\n    singleLine: {\n      type: Boolean,\n      \"default\": false\n    },\n    reply: {\n      type: Boolean,\n      \"default\": false\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    }\n  },\n  emits: ['open-user-tag'],\n  computed: {\n    linkifiedMessage: function linkifiedMessage() {\n      var _this = this;\n\n      var message = format_string(this.formatTags(this.content), this.linkify && !this.linkOptions.disabled, this.textFormatting);\n      message.forEach(function (m) {\n        m.url = _this.checkType(m, 'url');\n        m.bold = _this.checkType(m, 'bold');\n        m.italic = _this.checkType(m, 'italic');\n        m.strike = _this.checkType(m, 'strike');\n        m.underline = _this.checkType(m, 'underline');\n        m.inline = _this.checkType(m, 'inline-code');\n        m.multiline = _this.checkType(m, 'multiline-code');\n        m.tag = _this.checkType(m, 'tag');\n        m.image = _this.checkImageType(m);\n        m.value = _this.replaceEmojiByElement(m.value);\n      });\n      return message;\n    },\n    formattedContent: function formattedContent() {\n      return this.formatTags(this.content);\n    }\n  },\n  methods: {\n    checkType: function checkType(message, type) {\n      return message.types.indexOf(type) !== -1;\n    },\n    checkImageType: function checkImageType(message) {\n      var index = message.value.lastIndexOf('.');\n      var slashIndex = message.value.lastIndexOf('/');\n      if (slashIndex > index) index = -1;\n      var type = message.value.substring(index + 1, message.value.length);\n      var isMedia = index > 0 && constants[\"b\" /* IMAGE_TYPES */].some(function (t) {\n        return type.toLowerCase().includes(t);\n      });\n      if (isMedia) this.setImageSize(message);\n      return isMedia;\n    },\n    setImageSize: function setImageSize(message) {\n      var image = new Image();\n      image.src = message.value;\n      image.addEventListener('load', onLoad);\n\n      function onLoad(img) {\n        var ratio = img.path[0].width / 150;\n        message.height = Math.round(img.path[0].height / ratio) + 'px';\n        image.removeEventListener('load', onLoad);\n      }\n    },\n    formatTags: function formatTags(content) {\n      var _this2 = this;\n\n      var firstTag = '<usertag>';\n      var secondTag = '</usertag>';\n\n      var usertags = _toConsumableArray(content.matchAll(new RegExp(firstTag, 'gi'))).map(function (a) {\n        return a.index;\n      });\n\n      var initialContent = content;\n      usertags.forEach(function (index) {\n        var userId = initialContent.substring(index + firstTag.length, initialContent.indexOf(secondTag, index));\n\n        var user = _this2.users.find(function (user) {\n          return user._id === userId;\n        });\n\n        content = content.replaceAll(userId, \"@\".concat((user === null || user === void 0 ? void 0 : user.username) || 'unknown'));\n      });\n      return content;\n    },\n    openTag: function openTag(message) {\n      if (!this.singleLine && this.checkType(message, 'tag')) {\n        var user = this.users.find(function (u) {\n          return message.value.indexOf(u.username) !== -1;\n        });\n        this.$emit('open-user-tag', user);\n      }\n    },\n    replaceEmojiByElement: function replaceEmojiByElement(value) {\n      var emojiSize;\n\n      if (this.singleLine) {\n        emojiSize = 16;\n      } else {\n        var onlyEmojis = this.containsOnlyEmojis();\n        emojiSize = onlyEmojis ? 28 : 20;\n      }\n\n      return value.replaceAll(/(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFF]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])/g, function (v) {\n        return \"<span style=\\\"font-size: \".concat(emojiSize, \"px\\\">\").concat(v, \"</span>\");\n      });\n    },\n    containsOnlyEmojis: function containsOnlyEmojis() {\n      var onlyEmojis = this.content.replace(new RegExp(\"[\\0-\\u1EEFf]\", 'g'), '');\n      var visibleChars = this.content.replace(new RegExp('[\\n\\rs]+|( )+', 'g'), '');\n      return onlyEmojis.length === visibleChars.length;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/components/FormatMessage/FormatMessage.vue?vue&type=script&lang=js&\n /* harmony default export */ var FormatMessage_FormatMessagevue_type_script_lang_js_ = (FormatMessagevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/FormatMessage/FormatMessage.vue\n\n\n\n\n\n/* normalize component */\n\nvar FormatMessage_component = normalizeComponent(\n  FormatMessage_FormatMessagevue_type_script_lang_js_,\n  FormatMessagevue_type_template_id_3a015d3f_render,\n  FormatMessagevue_type_template_id_3a015d3f_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var FormatMessage = (FormatMessage_component.exports);\n// CONCATENATED MODULE: ./src/utils/typing-text.js\n/* harmony default export */ var typing_text = (function (room, currentUserId, textMessages) {\n  if (room.typingUsers && room.typingUsers.length) {\n    var typingUsers = room.users.filter(function (user) {\n      if (user._id === currentUserId) return;\n      if (room.typingUsers.indexOf(user._id) === -1) return;\n      if (user.status && user.status.state === 'offline') return;\n      return true;\n    });\n    if (!typingUsers.length) return;\n\n    if (room.users.length === 2) {\n      return textMessages.IS_TYPING;\n    } else {\n      return typingUsers.map(function (user) {\n        return user.username;\n      }).join(', ') + ' ' + textMessages.IS_TYPING;\n    }\n  }\n});\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomContent/RoomContent.vue?vue&type=script&lang=js&\n\n\n\n\n\nvar _require = __webpack_require__(\"bd43\"),\n    isAudioFile = _require.isAudioFile;\n\n/* harmony default export */ var RoomContentvue_type_script_lang_js_ = ({\n  name: 'RoomsContent',\n  components: {\n    SvgIcon: SvgIcon,\n    FormatMessage: FormatMessage\n  },\n  directives: {\n    clickOutside: v_click_outside_umd_default.a.directive\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    room: {\n      type: Object,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    roomActions: {\n      type: Array,\n      required: true\n    }\n  },\n  emits: ['room-action-handler'],\n  data: function data() {\n    return {\n      roomMenuOpened: null\n    };\n  },\n  computed: {\n    getLastMessage: function getLastMessage() {\n      var _this = this;\n\n      var isTyping = this.typingUsers;\n      if (isTyping) return isTyping;\n      var content = this.room.lastMessage.deleted ? this.textMessages.MESSAGE_DELETED : this.room.lastMessage.content;\n\n      if (this.room.users.length <= 2) {\n        return content;\n      }\n\n      var user = this.room.users.find(function (user) {\n        return user._id === _this.room.lastMessage.senderId;\n      });\n\n      if (this.room.lastMessage.username) {\n        return \"\".concat(this.room.lastMessage.username, \" - \").concat(content);\n      } else if (!user || user._id === this.currentUserId) {\n        return content;\n      }\n\n      return \"\".concat(user.username, \" - \").concat(content);\n    },\n    userStatus: function userStatus() {\n      var _this2 = this;\n\n      if (!this.room.users || this.room.users.length !== 2) return;\n      var user = this.room.users.find(function (u) {\n        return u._id !== _this2.currentUserId;\n      });\n      if (user && user.status) return user.status.state;\n      return null;\n    },\n    typingUsers: function typingUsers() {\n      return typing_text(this.room, this.currentUserId, this.textMessages);\n    },\n    isMessageCheckmarkVisible: function isMessageCheckmarkVisible() {\n      return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);\n    },\n    formattedDuration: function formattedDuration() {\n      var _this$room$lastMessag, _this$room$lastMessag2;\n\n      var file = (_this$room$lastMessag = this.room.lastMessage) === null || _this$room$lastMessag === void 0 ? void 0 : (_this$room$lastMessag2 = _this$room$lastMessag.files) === null || _this$room$lastMessag2 === void 0 ? void 0 : _this$room$lastMessag2[0];\n\n      if (file) {\n        if (!file.duration) {\n          return \"\".concat(file.name, \".\").concat(file.extension);\n        }\n\n        var s = Math.floor(file.duration);\n        return (s - (s %= 60)) / 60 + (s > 9 ? ':' : ':0') + s;\n      }\n\n      return '';\n    },\n    isAudio: function isAudio() {\n      return this.room.lastMessage.files ? isAudioFile(this.room.lastMessage.files[0]) : false;\n    }\n  },\n  methods: {\n    roomActionHandler: function roomActionHandler(action) {\n      this.closeRoomMenu();\n      this.$emit('room-action-handler', {\n        action: action,\n        roomId: this.room.roomId\n      });\n    },\n    closeRoomMenu: function closeRoomMenu() {\n      this.roomMenuOpened = null;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomContent/RoomContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomContent_RoomContentvue_type_script_lang_js_ = (RoomContentvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomContent/RoomContent.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomContent_component = normalizeComponent(\n  RoomContent_RoomContentvue_type_script_lang_js_,\n  RoomContentvue_type_template_id_6888cbad_render,\n  RoomContentvue_type_template_id_6888cbad_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomContent = (RoomContent_component.exports);\n// CONCATENATED MODULE: ./src/utils/filter-items.js\n/* harmony default export */ var filter_items = (function (items, prop, val) {\n  var startsWith = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  if (!val || val === '') return items;\n  return items.filter(function (v) {\n    if (startsWith) return formatString(v[prop]).startsWith(formatString(val));\n    return formatString(v[prop]).includes(formatString(val));\n  });\n});\n\nfunction formatString(string) {\n  return string.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/RoomsList/RoomsList.vue?vue&type=script&lang=js&\n\n\n\n\n/* harmony default export */ var RoomsListvue_type_script_lang_js_ = ({\n  name: 'RoomsList',\n  components: {\n    Loader: Loader,\n    RoomsSearch: RoomsSearch,\n    RoomContent: RoomContent\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    showRoomsList: {\n      type: Boolean,\n      required: true\n    },\n    showSearch: {\n      type: Boolean,\n      required: true\n    },\n    showAddRoom: {\n      type: Boolean,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    isMobile: {\n      type: Boolean,\n      required: true\n    },\n    rooms: {\n      type: Array,\n      required: true\n    },\n    loadingRooms: {\n      type: Boolean,\n      required: true\n    },\n    roomsLoaded: {\n      type: Boolean,\n      required: true\n    },\n    room: {\n      type: Object,\n      required: true\n    },\n    roomActions: {\n      type: Array,\n      required: true\n    },\n    scrollDistance: {\n      type: Number,\n      required: true\n    }\n  },\n  emits: ['add-room', 'room-action-handler', 'loading-more-rooms', 'fetch-room', 'fetch-more-rooms'],\n  data: function data() {\n    return {\n      filteredRooms: this.rooms || [],\n      observer: null,\n      showLoader: true,\n      loadingMoreRooms: false,\n      selectedRoomId: ''\n    };\n  },\n  watch: {\n    rooms: {\n      deep: true,\n      handler: function handler(newVal, oldVal) {\n        this.filteredRooms = newVal;\n\n        if (newVal.length !== oldVal.length || this.roomsLoaded) {\n          this.loadingMoreRooms = false;\n        }\n      }\n    },\n    loadingRooms: function loadingRooms(val) {\n      var _this = this;\n\n      if (!val) {\n        setTimeout(function () {\n          return _this.initIntersectionObserver();\n        });\n      }\n    },\n    loadingMoreRooms: function loadingMoreRooms(val) {\n      this.$emit('loading-more-rooms', val);\n    },\n    roomsLoaded: {\n      immediate: true,\n      handler: function handler(val) {\n        if (val) {\n          this.loadingMoreRooms = false;\n\n          if (!this.loadingRooms) {\n            this.showLoader = false;\n          }\n        }\n      }\n    },\n    room: {\n      immediate: true,\n      handler: function handler(val) {\n        if (val && !this.isMobile) this.selectedRoomId = val.roomId;\n      }\n    }\n  },\n  methods: {\n    initIntersectionObserver: function initIntersectionObserver() {\n      var _this2 = this;\n\n      if (this.observer) {\n        this.showLoader = true;\n        this.observer.disconnect();\n      }\n\n      var loader = document.getElementById('infinite-loader-rooms');\n\n      if (loader) {\n        var options = {\n          root: document.getElementById('rooms-list'),\n          rootMargin: \"\".concat(this.scrollDistance, \"px\"),\n          threshold: 0\n        };\n        this.observer = new IntersectionObserver(function (entries) {\n          if (entries[0].isIntersecting) {\n            _this2.loadMoreRooms();\n          }\n        }, options);\n        this.observer.observe(loader);\n      }\n    },\n    searchRoom: function searchRoom(ev) {\n      this.filteredRooms = filter_items(this.rooms, 'roomName', ev.target.value);\n    },\n    openRoom: function openRoom(room) {\n      if (room.roomId === this.room.roomId && !this.isMobile) return;\n      if (!this.isMobile) this.selectedRoomId = room.roomId;\n      this.$emit('fetch-room', {\n        room: room\n      });\n    },\n    loadMoreRooms: function loadMoreRooms() {\n      if (this.loadingMoreRooms) return;\n\n      if (this.roomsLoaded) {\n        this.loadingMoreRooms = false;\n        this.showLoader = false;\n        return;\n      }\n\n      this.$emit('fetch-more-rooms');\n      this.loadingMoreRooms = true;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsList.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomsList_RoomsListvue_type_script_lang_js_ = (RoomsListvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/RoomsList/RoomsList.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomsList_component = normalizeComponent(\n  RoomsList_RoomsListvue_type_script_lang_js_,\n  RoomsListvue_type_template_id_e9cbf0d4_render,\n  RoomsListvue_type_template_id_e9cbf0d4_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomsList = (RoomsList_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/Room.vue?vue&type=template&id=54e5f3bb&\nvar Roomvue_type_template_id_54e5f3bb_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    directives: [{\n      name: \"show\",\n      rawName: \"v-show\",\n      value: _vm.isMobile && !_vm.showRoomsList || !_vm.isMobile || _vm.singleRoom,\n      expression: \"(isMobile && !showRoomsList) || !isMobile || singleRoom\"\n    }],\n    staticClass: \"vac-col-messages\",\n    on: {\n      \"touchstart\": _vm.touchStart\n    }\n  }, [_vm.showNoRoom ? _vm._t(\"no-room-selected\", function () {\n    return [_c('div', {\n      staticClass: \"vac-container-center vac-room-empty\"\n    }, [_c('div', [_vm._v(_vm._s(_vm.textMessages.ROOM_EMPTY))])])];\n  }) : _c('room-header', {\n    attrs: {\n      \"current-user-id\": _vm.currentUserId,\n      \"text-messages\": _vm.textMessages,\n      \"single-room\": _vm.singleRoom,\n      \"show-rooms-list\": _vm.showRoomsList,\n      \"is-mobile\": _vm.isMobile,\n      \"room-info-enabled\": _vm.roomInfoEnabled,\n      \"menu-actions\": _vm.menuActions,\n      \"room\": _vm.room,\n      \"message-selection-enabled\": _vm.messageSelectionEnabled,\n      \"message-selection-actions\": _vm.messageSelectionActions,\n      \"selected-messages-total\": _vm.selectedMessages.length\n    },\n    on: {\n      \"toggle-rooms-list\": function toggleRoomsList($event) {\n        return _vm.$emit('toggle-rooms-list');\n      },\n      \"room-info\": function roomInfo($event) {\n        return _vm.$emit('room-info');\n      },\n      \"menu-action-handler\": function menuActionHandler($event) {\n        return _vm.$emit('menu-action-handler', $event);\n      },\n      \"message-selection-action-handler\": _vm.messageSelectionActionHandler,\n      \"cancel-message-selection\": function cancelMessageSelection($event) {\n        _vm.messageSelectionEnabled = false;\n      }\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('div', {\n    ref: \"scrollContainer\",\n    staticClass: \"vac-container-scroll\",\n    attrs: {\n      \"id\": \"messages-list\"\n    },\n    on: {\n      \"scroll\": _vm.onContainerScroll\n    }\n  }, [_c('loader', {\n    attrs: {\n      \"show\": _vm.loadingMessages\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('div', {\n    staticClass: \"vac-messages-container\"\n  }, [_c('div', {\n    \"class\": {\n      'vac-messages-hidden': _vm.loadingMessages\n    }\n  }, [_c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-message\"\n    }\n  }, [_c('div', [_vm.showNoMessages ? _c('div', {\n    staticClass: \"vac-text-started\"\n  }, [_vm._t(\"messages-empty\", function () {\n    return [_vm._v(\" \" + _vm._s(_vm.textMessages.MESSAGES_EMPTY) + \" \")];\n  })], 2) : _vm._e(), _vm.showMessagesStarted ? _c('div', {\n    staticClass: \"vac-text-started\"\n  }, [_vm._v(\" \" + _vm._s(_vm.textMessages.CONVERSATION_STARTED) + \" \" + _vm._s(_vm.messages[0].date) + \" \")]) : _vm._e()])]), _vm.messages.length && !_vm.messagesLoaded ? _c('div', {\n    attrs: {\n      \"id\": \"infinite-loader-messages\"\n    }\n  }, [_c('loader', {\n    attrs: {\n      \"show\": true,\n      \"infinite\": true\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 1) : _vm._e(), _c('transition-group', {\n    key: _vm.roomId,\n    attrs: {\n      \"name\": \"vac-fade-message\",\n      \"tag\": \"span\"\n    }\n  }, _vm._l(_vm.messages, function (m, i) {\n    return _c('div', {\n      key: m.indexId || m._id\n    }, [_c('room-message', {\n      attrs: {\n        \"current-user-id\": _vm.currentUserId,\n        \"message\": m,\n        \"index\": i,\n        \"messages\": _vm.messages,\n        \"edited-message-id\": _vm.editedMessageId,\n        \"message-actions\": _vm.messageActions,\n        \"room-users\": _vm.room.users,\n        \"text-messages\": _vm.textMessages,\n        \"new-messages\": _vm.newMessages,\n        \"show-reaction-emojis\": _vm.showReactionEmojis,\n        \"show-new-messages-divider\": _vm.showNewMessagesDivider,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions,\n        \"username-options\": _vm.usernameOptions,\n        \"message-selection-enabled\": _vm.messageSelectionEnabled,\n        \"selected-messages\": _vm.selectedMessages\n      },\n      on: {\n        \"message-added\": _vm.onMessageAdded,\n        \"message-action-handler\": _vm.messageActionHandler,\n        \"open-file\": _vm.openFile,\n        \"open-user-tag\": _vm.openUserTag,\n        \"open-failed-message\": function openFailedMessage($event) {\n          return _vm.$emit('open-failed-message', $event);\n        },\n        \"send-message-reaction\": _vm.sendMessageReaction,\n        \"select-message\": _vm.selectMessage,\n        \"unselect-message\": _vm.unselectMessage\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })], 1);\n  }), 0)], 1)])], 1), !_vm.loadingMessages ? _c('div', [_c('transition', {\n    attrs: {\n      \"name\": \"vac-bounce\"\n    }\n  }, [_vm.scrollIcon ? _c('div', {\n    staticClass: \"vac-icon-scroll\",\n    on: {\n      \"click\": _vm.scrollToBottom\n    }\n  }, [_c('transition', {\n    attrs: {\n      \"name\": \"vac-bounce\"\n    }\n  }, [_vm.scrollMessagesCount ? _c('div', {\n    staticClass: \"vac-badge-counter vac-messages-count\"\n  }, [_vm._v(\" \" + _vm._s(_vm.scrollMessagesCount) + \" \")]) : _vm._e()]), _vm._t(\"scroll-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"dropdown\",\n        \"param\": \"scroll\"\n      }\n    })];\n  })], 2) : _vm._e()])], 1) : _vm._e(), _c('room-footer', {\n    attrs: {\n      \"room\": _vm.room,\n      \"room-id\": _vm.roomId,\n      \"room-message\": _vm.roomMessage,\n      \"text-messages\": _vm.textMessages,\n      \"show-send-icon\": _vm.showSendIcon,\n      \"show-files\": _vm.showFiles,\n      \"show-audio\": _vm.showAudio,\n      \"show-emojis\": _vm.showEmojis,\n      \"show-footer\": _vm.showFooter,\n      \"accepted-files\": _vm.acceptedFiles,\n      \"textarea-action-enabled\": _vm.textareaActionEnabled,\n      \"textarea-auto-focus\": _vm.textareaAutoFocus,\n      \"user-tags-enabled\": _vm.userTagsEnabled,\n      \"emojis-suggestion-enabled\": _vm.emojisSuggestionEnabled,\n      \"templates-text\": _vm.templatesText,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions,\n      \"audio-bit-rate\": _vm.audioBitRate,\n      \"audio-sample-rate\": _vm.audioSampleRate,\n      \"init-reply-message\": _vm.initReplyMessage,\n      \"init-edit-message\": _vm.initEditMessage\n    },\n    on: {\n      \"update-edited-message-id\": function updateEditedMessageId($event) {\n        _vm.editedMessageId = $event;\n      },\n      \"edit-message\": function editMessage($event) {\n        return _vm.$emit('edit-message', $event);\n      },\n      \"send-message\": function sendMessage($event) {\n        return _vm.$emit('send-message', $event);\n      },\n      \"typing-message\": function typingMessage($event) {\n        return _vm.$emit('typing-message', $event);\n      },\n      \"textarea-action-handler\": function textareaActionHandler($event) {\n        return _vm.$emit('textarea-action-handler', $event);\n      }\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 2);\n};\n\nvar Roomvue_type_template_id_54e5f3bb_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/Room.vue?vue&type=template&id=54e5f3bb&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomHeader/RoomHeader.vue?vue&type=template&id=938fbc28&\nvar RoomHeadervue_type_template_id_938fbc28_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-room-header vac-app-border-b\"\n  }, [_vm._t(\"room-header\", function () {\n    return [_c('div', {\n      staticClass: \"vac-room-wrapper\"\n    }, [_c('transition', {\n      attrs: {\n        \"name\": \"vac-slide-up\"\n      }\n    }, [_vm.messageSelectionEnabled ? _c('div', {\n      staticClass: \"vac-room-selection\"\n    }, [_vm._l(_vm.messageSelectionActions, function (action) {\n      return _c('div', {\n        key: action.name,\n        attrs: {\n          \"id\": action.name\n        }\n      }, [_c('div', {\n        staticClass: \"vac-selection-button\",\n        on: {\n          \"click\": function click($event) {\n            return _vm.messageSelectionActionHandler(action);\n          }\n        }\n      }, [_vm._v(\" \" + _vm._s(action.title) + \" \"), _c('span', {\n        staticClass: \"vac-selection-button-count\"\n      }, [_vm._v(\" \" + _vm._s(_vm.selectedMessagesTotal) + \" \")])])]);\n    }), _c('div', {\n      staticClass: \"vac-selection-cancel vac-item-clickable\",\n      on: {\n        \"click\": function click($event) {\n          return _vm.$emit('cancel-message-selection');\n        }\n      }\n    }, [_vm._v(\" \" + _vm._s(_vm.textMessages.CANCEL_SELECT_MESSAGE) + \" \")])], 2) : _vm._e()]), !_vm.messageSelectionEnabled && _vm.messageSelectionAnimationEnded ? [!_vm.singleRoom ? _c('div', {\n      staticClass: \"vac-svg-button vac-toggle-button\",\n      \"class\": {\n        'vac-rotate-icon-init': !_vm.isMobile,\n        'vac-rotate-icon': !_vm.showRoomsList && !_vm.isMobile\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.$emit('toggle-rooms-list');\n        }\n      }\n    }, [_vm._t(\"toggle-icon\", function () {\n      return [_c('svg-icon', {\n        attrs: {\n          \"name\": \"toggle\"\n        }\n      })];\n    })], 2) : _vm._e(), _c('div', {\n      staticClass: \"vac-info-wrapper\",\n      \"class\": {\n        'vac-item-clickable': _vm.roomInfoEnabled\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.$emit('room-info');\n        }\n      }\n    }, [_vm._t(\"room-header-avatar\", function () {\n      return [_vm.room.avatar ? _c('div', {\n        staticClass: \"vac-avatar\",\n        style: {\n          'background-image': \"url('\".concat(_vm.room.avatar, \"')\")\n        }\n      }) : _vm._e()];\n    }, null, {\n      room: _vm.room\n    }), _vm._t(\"room-header-info\", function () {\n      return [_c('div', {\n        staticClass: \"vac-text-ellipsis\"\n      }, [_c('div', {\n        staticClass: \"vac-room-name vac-text-ellipsis\"\n      }, [_vm._v(\" \" + _vm._s(_vm.room.roomName) + \" \")]), _vm.typingUsers ? _c('div', {\n        staticClass: \"vac-room-info vac-text-ellipsis\"\n      }, [_vm._v(\" \" + _vm._s(_vm.typingUsers) + \" \")]) : _c('div', {\n        staticClass: \"vac-room-info vac-text-ellipsis\"\n      }, [_vm._v(\" \" + _vm._s(_vm.userStatus) + \" \")])])];\n    }, null, {\n      room: _vm.room,\n      typingUsers: _vm.typingUsers,\n      userStatus: _vm.userStatus\n    })], 2), _vm.room.roomId ? _vm._t(\"room-options\", function () {\n      return [_vm.menuActions.length ? _c('div', {\n        staticClass: \"vac-svg-button vac-room-options\",\n        on: {\n          \"click\": function click($event) {\n            _vm.menuOpened = !_vm.menuOpened;\n          }\n        }\n      }, [_vm._t(\"menu-icon\", function () {\n        return [_c('svg-icon', {\n          attrs: {\n            \"name\": \"menu\"\n          }\n        })];\n      })], 2) : _vm._e(), _vm.menuActions.length ? _c('transition', {\n        attrs: {\n          \"name\": \"vac-slide-left\"\n        }\n      }, [_vm.menuOpened ? _c('div', {\n        directives: [{\n          name: \"click-outside\",\n          rawName: \"v-click-outside\",\n          value: _vm.closeMenu,\n          expression: \"closeMenu\"\n        }],\n        staticClass: \"vac-menu-options\"\n      }, [_c('div', {\n        staticClass: \"vac-menu-list\"\n      }, _vm._l(_vm.menuActions, function (action) {\n        return _c('div', {\n          key: action.name\n        }, [_c('div', {\n          staticClass: \"vac-menu-item\",\n          on: {\n            \"click\": function click($event) {\n              return _vm.menuActionHandler(action);\n            }\n          }\n        }, [_vm._v(\" \" + _vm._s(action.title) + \" \")])]);\n      }), 0)]) : _vm._e()]) : _vm._e()];\n    }) : _vm._e()] : _vm._e()], 2)];\n  }, null, {\n    room: _vm.room,\n    typingUsers: _vm.typingUsers,\n    userStatus: _vm.userStatus\n  })], 2);\n};\n\nvar RoomHeadervue_type_template_id_938fbc28_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomHeader/RoomHeader.vue?vue&type=template&id=938fbc28&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomHeader/RoomHeader.vue?vue&type=script&lang=js&\n\n\n\n/* harmony default export */ var RoomHeadervue_type_script_lang_js_ = ({\n  name: 'RoomHeader',\n  components: {\n    SvgIcon: SvgIcon\n  },\n  directives: {\n    clickOutside: v_click_outside_umd_default.a.directive\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    singleRoom: {\n      type: Boolean,\n      required: true\n    },\n    showRoomsList: {\n      type: Boolean,\n      required: true\n    },\n    isMobile: {\n      type: Boolean,\n      required: true\n    },\n    roomInfoEnabled: {\n      type: Boolean,\n      required: true\n    },\n    menuActions: {\n      type: Array,\n      required: true\n    },\n    room: {\n      type: Object,\n      required: true\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    messageSelectionActions: {\n      type: Array,\n      required: true\n    },\n    selectedMessagesTotal: {\n      type: Number,\n      required: true\n    }\n  },\n  emits: ['toggle-rooms-list', 'room-info', 'menu-action-handler', 'cancel-message-selection', 'message-selection-action-handler'],\n  data: function data() {\n    return {\n      menuOpened: false,\n      messageSelectionAnimationEnded: true\n    };\n  },\n  computed: {\n    typingUsers: function typingUsers() {\n      return typing_text(this.room, this.currentUserId, this.textMessages);\n    },\n    userStatus: function userStatus() {\n      var _this = this;\n\n      if (!this.room.users || this.room.users.length !== 2) return;\n      var user = this.room.users.find(function (u) {\n        return u._id !== _this.currentUserId;\n      });\n      if (!user.status) return;\n      var text = '';\n\n      if (user.status.state === 'online') {\n        text = this.textMessages.IS_ONLINE;\n      } else if (user.status.lastChanged) {\n        text = this.textMessages.LAST_SEEN + user.status.lastChanged;\n      }\n\n      return text;\n    }\n  },\n  watch: {\n    messageSelectionEnabled: function messageSelectionEnabled(val) {\n      var _this2 = this;\n\n      if (val) {\n        this.messageSelectionAnimationEnded = false;\n      } else {\n        setTimeout(function () {\n          _this2.messageSelectionAnimationEnded = true;\n        }, 300);\n      }\n    }\n  },\n  methods: {\n    menuActionHandler: function menuActionHandler(action) {\n      this.closeMenu();\n      this.$emit('menu-action-handler', action);\n    },\n    closeMenu: function closeMenu() {\n      this.menuOpened = false;\n    },\n    messageSelectionActionHandler: function messageSelectionActionHandler(action) {\n      this.$emit('message-selection-action-handler', action);\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomHeader/RoomHeader.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomHeader_RoomHeadervue_type_script_lang_js_ = (RoomHeadervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomHeader/RoomHeader.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomHeader_component = normalizeComponent(\n  RoomHeader_RoomHeadervue_type_script_lang_js_,\n  RoomHeadervue_type_template_id_938fbc28_render,\n  RoomHeadervue_type_template_id_938fbc28_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomHeader = (RoomHeader_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFooter.vue?vue&type=template&id=4393ef9a&\nvar RoomFootervue_type_template_id_4393ef9a_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    directives: [{\n      name: \"show\",\n      rawName: \"v-show\",\n      value: Object.keys(_vm.room).length && _vm.showFooter,\n      expression: \"Object.keys(room).length && showFooter\"\n    }],\n    staticClass: \"vac-room-footer\",\n    \"class\": {\n      'vac-app-box-shadow': _vm.shadowFooter\n    },\n    attrs: {\n      \"id\": \"room-footer\"\n    }\n  }, [_c('room-emojis', {\n    attrs: {\n      \"filtered-emojis\": _vm.filteredEmojis,\n      \"select-item\": _vm.selectEmojiItem,\n      \"active-up-or-down\": _vm.activeUpOrDownEmojis\n    },\n    on: {\n      \"select-emoji\": function selectEmoji($event) {\n        return _vm.selectEmoji($event);\n      },\n      \"activate-item\": function activateItem($event) {\n        _vm.activeUpOrDownEmojis = 0;\n      }\n    }\n  }), _c('room-users-tag', {\n    attrs: {\n      \"filtered-users-tag\": _vm.filteredUsersTag,\n      \"select-item\": _vm.selectUsersTagItem,\n      \"active-up-or-down\": _vm.activeUpOrDownUsersTag\n    },\n    on: {\n      \"select-user-tag\": function selectUserTag($event) {\n        return _vm.selectUserTag($event);\n      },\n      \"activate-item\": function activateItem($event) {\n        _vm.activeUpOrDownUsersTag = 0;\n      }\n    }\n  }), _c('room-templates-text', {\n    attrs: {\n      \"filtered-templates-text\": _vm.filteredTemplatesText,\n      \"select-item\": _vm.selectTemplatesTextItem,\n      \"active-up-or-down\": _vm.activeUpOrDownTemplatesText\n    },\n    on: {\n      \"select-template-text\": function selectTemplateText($event) {\n        return _vm.selectTemplateText($event);\n      },\n      \"activate-item\": function activateItem($event) {\n        _vm.activeUpOrDownTemplatesText = 0;\n      }\n    }\n  }), _c('room-message-reply', {\n    attrs: {\n      \"room\": _vm.room,\n      \"message-reply\": _vm.messageReply,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions\n    },\n    on: {\n      \"reset-message\": _vm.resetMessage\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('room-files', {\n    attrs: {\n      \"files\": _vm.files\n    },\n    on: {\n      \"remove-file\": _vm.removeFile,\n      \"reset-message\": _vm.resetMessage\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('div', {\n    staticClass: \"vac-box-footer\",\n    \"class\": {\n      'vac-box-footer-border': !_vm.files.length\n    }\n  }, [_vm.showAudio && !_vm.files.length ? _c('div', {\n    staticClass: \"vac-icon-textarea-left\"\n  }, [_vm.isRecording ? [_c('div', {\n    staticClass: \"vac-svg-button vac-icon-audio-stop\",\n    on: {\n      \"click\": _vm.stopRecorder\n    }\n  }, [_vm._t(\"audio-stop-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close-outline\"\n      }\n    })];\n  })], 2), _c('div', {\n    staticClass: \"vac-dot-audio-record\"\n  }), _c('div', {\n    staticClass: \"vac-dot-audio-record-time\"\n  }, [_vm._v(\" \" + _vm._s(_vm.recordedTime) + \" \")]), _c('div', {\n    staticClass: \"vac-svg-button vac-icon-audio-confirm\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.toggleRecorder(false);\n      }\n    }\n  }, [_vm._t(\"audio-stop-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"checkmark\"\n      }\n    })];\n  })], 2)] : _c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.toggleRecorder(true);\n      }\n    }\n  }, [_vm._t(\"microphone-icon\", function () {\n    return [_c('svg-icon', {\n      staticClass: \"vac-icon-microphone\",\n      attrs: {\n        \"name\": \"microphone\"\n      }\n    })];\n  })], 2)], 2) : _vm._e(), _c('textarea', {\n    ref: \"roomTextarea\",\n    staticClass: \"vac-textarea\",\n    \"class\": {\n      'vac-textarea-outline': _vm.editedMessage._id\n    },\n    style: {\n      'min-height': \"20px\",\n      'padding-left': \"12px\"\n    },\n    attrs: {\n      \"id\": \"roomTextarea\",\n      \"placeholder\": _vm.textMessages.TYPE_MESSAGE\n    },\n    on: {\n      \"input\": _vm.onChangeInput,\n      \"keydown\": [function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n        return _vm.escapeTextarea.apply(null, arguments);\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n        if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n        $event.preventDefault();\n        return _vm.selectItem.apply(null, arguments);\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) return null;\n        if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n        $event.preventDefault();\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) return null;\n        return _vm.selectItem.apply(null, arguments);\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"up\", 38, $event.key, [\"Up\", \"ArrowUp\"])) return null;\n        if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n        $event.preventDefault();\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"up\", 38, $event.key, [\"Up\", \"ArrowUp\"])) return null;\n        return _vm.updateActiveUpOrDown(-1);\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"down\", 40, $event.key, [\"Down\", \"ArrowDown\"])) return null;\n        if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n        $event.preventDefault();\n      }, function ($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"down\", 40, $event.key, [\"Down\", \"ArrowDown\"])) return null;\n        return _vm.updateActiveUpOrDown(1);\n      }],\n      \"paste\": _vm.onPasteImage\n    }\n  }), _c('div', {\n    staticClass: \"vac-icon-textarea\"\n  }, [_vm.editedMessage._id ? _c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": _vm.resetMessage\n    }\n  }, [_vm._t(\"edit-close-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close-outline\"\n      }\n    })];\n  })], 2) : _vm._e(), _vm.showEmojis ? _c('div', {\n    directives: [{\n      name: \"click-outside\",\n      rawName: \"v-click-outside\",\n      value: function value() {\n        return _vm.emojiOpened = false;\n      },\n      expression: \"() => (emojiOpened = false)\"\n    }]\n  }, [_vm._t(\"emoji-picker\", function () {\n    return [_c('emoji-picker-container', {\n      attrs: {\n        \"emoji-opened\": _vm.emojiOpened,\n        \"position-top\": true\n      },\n      on: {\n        \"add-emoji\": _vm.addEmoji,\n        \"open-emoji\": function openEmoji($event) {\n          _vm.emojiOpened = $event;\n        }\n      },\n      scopedSlots: _vm._u([{\n        key: \"emoji-picker-icon\",\n        fn: function fn() {\n          return [_vm._t(\"emoji-picker-icon\")];\n        },\n        proxy: true\n      }], null, true)\n    })];\n  }, {\n    \"addEmoji\": _vm.addEmoji\n  }, {\n    emojiOpened: _vm.emojiOpened\n  })], 2) : _vm._e(), _vm.showFiles ? _c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": _vm.launchFilePicker\n    }\n  }, [_vm._t(\"paperclip-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"paperclip\"\n      }\n    })];\n  })], 2) : _vm._e(), _vm.textareaActionEnabled ? _c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": _vm.textareaActionHandler\n    }\n  }, [_vm._t(\"custom-action-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"deleted\"\n      }\n    })];\n  })], 2) : _vm._e(), _vm.showFiles ? _c('input', {\n    ref: \"file\",\n    staticStyle: {\n      \"display\": \"none\"\n    },\n    attrs: {\n      \"type\": \"file\",\n      \"multiple\": \"\",\n      \"accept\": _vm.acceptedFiles\n    },\n    on: {\n      \"change\": function change($event) {\n        return _vm.onFileChange($event.target.files);\n      }\n    }\n  }) : _vm._e(), _vm.showSendIcon ? _c('div', {\n    staticClass: \"vac-svg-button\",\n    \"class\": {\n      'vac-send-disabled': _vm.isMessageEmpty\n    },\n    on: {\n      \"click\": _vm.sendMessage\n    }\n  }, [_vm._t(\"send-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"send\",\n        \"param\": _vm.isMessageEmpty || _vm.isFileLoading ? 'disabled' : ''\n      }\n    })];\n  })], 2) : _vm._e()])])], 1);\n};\n\nvar RoomFootervue_type_template_id_4393ef9a_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFooter.vue?vue&type=template&id=4393ef9a&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(\"53ca\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\n\n\nfunction _regeneratorRuntime() {\n  \"use strict\";\n  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n  _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  };\n\n  var exports = {},\n      Op = Object.prototype,\n      hasOwn = Op.hasOwnProperty,\n      $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n      iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n      asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n      toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n        generator = Object.create(protoGenerator.prototype),\n        context = new Context(tryLocsList || []);\n    return generator._invoke = function (innerFn, self, context) {\n      var state = \"suspendedStart\";\n      return function (method, arg) {\n        if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n        if (\"completed\" === state) {\n          if (\"throw\" === method) throw arg;\n          return doneResult();\n        }\n\n        for (context.method = method, context.arg = arg;;) {\n          var delegate = context.delegate;\n\n          if (delegate) {\n            var delegateResult = maybeInvokeDelegate(delegate, context);\n\n            if (delegateResult) {\n              if (delegateResult === ContinueSentinel) continue;\n              return delegateResult;\n            }\n          }\n\n          if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n            if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n            context.dispatchException(context.arg);\n          } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n          state = \"executing\";\n          var record = tryCatch(innerFn, self, context);\n\n          if (\"normal\" === record.type) {\n            if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n            return {\n              value: record.arg,\n              done: context.done\n            };\n          }\n\n          \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n        }\n      };\n    }(innerFn, self, context), generator;\n  }\n\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n\n  function Generator() {}\n\n  function GeneratorFunction() {}\n\n  function GeneratorFunctionPrototype() {}\n\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n      NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n            value = result.value;\n        return value && \"object\" == Object(esm_typeof[\"a\" /* default */])(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n\n      reject(record.arg);\n    }\n\n    var previousPromise;\n\n    this._invoke = function (method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function (resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n    };\n  }\n\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n\n    if (undefined === method) {\n      if (context.delegate = null, \"throw\" === context.method) {\n        if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n        context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n            next = function next() {\n          for (; ++i < iterable.length;) {\n            if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n          }\n\n          return next.value = undefined, next.done = !0, next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    return {\n      next: doneResult\n    };\n  }\n\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (object) {\n    var keys = [];\n\n    for (var key in object) {\n      keys.push(key);\n    }\n\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n        \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n      }\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n            record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n              hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n\n          return thrown;\n        }\n      }\n\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n// EXTERNAL MODULE: ./node_modules/emoji-picker-element/picker.js\nvar picker = __webpack_require__(\"874e\");\n\n// EXTERNAL MODULE: ./node_modules/emoji-picker-element/database.js\nvar database = __webpack_require__(\"da58\");\n\n// CONCATENATED MODULE: ./node_modules/emoji-picker-element/index.js\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmojiPickerContainer/EmojiPickerContainer.vue?vue&type=template&id=44125154&\nvar EmojiPickerContainervue_type_template_id_44125154_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-emoji-wrapper\"\n  }, [_c('div', {\n    staticClass: \"vac-svg-button\",\n    \"class\": {\n      'vac-emoji-reaction': _vm.emojiReaction\n    },\n    on: {\n      \"click\": _vm.openEmoji\n    }\n  }, [_vm._t(\"emoji-picker-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"emoji\",\n        \"param\": _vm.emojiReaction ? 'reaction' : ''\n      }\n    })];\n  })], 2), _vm.emojiOpened ? [_c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\",\n      \"appear\": \"\"\n    }\n  }, [_c('div', {\n    staticClass: \"vac-emoji-picker\",\n    \"class\": {\n      'vac-picker-reaction': _vm.emojiReaction\n    },\n    style: {\n      height: \"\".concat(_vm.emojiPickerHeight, \"px\"),\n      top: _vm.positionTop ? _vm.emojiPickerHeight : \"\".concat(_vm.emojiPickerTop, \"px\"),\n      right: _vm.emojiPickerRight,\n      display: _vm.emojiPickerTop || !_vm.emojiReaction ? 'initial' : 'none'\n    }\n  }, [_vm.emojiOpened ? _c('emoji-picker', {\n    ref: \"emojiPicker\"\n  }) : _vm._e()], 1)])] : _vm._e()], 2);\n};\n\nvar EmojiPickerContainervue_type_template_id_44125154_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/components/EmojiPickerContainer/EmojiPickerContainer.vue?vue&type=template&id=44125154&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmojiPickerContainer/EmojiPickerContainer.vue?vue&type=script&lang=js&\n\n/* harmony default export */ var EmojiPickerContainervue_type_script_lang_js_ = ({\n  name: 'EmojiPickerContainer',\n  components: {\n    SvgIcon: SvgIcon\n  },\n  props: {\n    emojiOpened: {\n      type: Boolean,\n      \"default\": false\n    },\n    emojiReaction: {\n      type: Boolean,\n      \"default\": false\n    },\n    positionTop: {\n      type: Boolean,\n      \"default\": false\n    },\n    positionRight: {\n      type: Boolean,\n      \"default\": false\n    }\n  },\n  emits: ['add-emoji', 'open-emoji'],\n  data: function data() {\n    return {\n      emojiPickerHeight: 320,\n      emojiPickerTop: 0,\n      emojiPickerRight: ''\n    };\n  },\n  watch: {\n    emojiOpened: function emojiOpened(val) {\n      var _this = this;\n\n      if (val) {\n        setTimeout(function () {\n          _this.addCustomStyling();\n\n          _this.$refs.emojiPicker.shadowRoot.addEventListener('emoji-click', function (_ref) {\n            var detail = _ref.detail;\n\n            _this.$emit('add-emoji', {\n              unicode: detail.unicode\n            });\n          });\n        }, 0);\n      }\n    }\n  },\n  methods: {\n    addCustomStyling: function addCustomStyling() {\n      var picker = \".picker {\\n\\t\\t\\t\\tborder: none;\\n\\t\\t\\t}\";\n      var nav = \".nav {\\n\\t\\t\\t\\toverflow-x: auto;\\n\\t\\t\\t}\";\n      var searchBox = \".search-wrapper {\\n\\t\\t\\t\\tpadding-right: 2px;\\n\\t\\t\\t\\tpadding-left: 2px;\\n\\t\\t\\t}\";\n      var search = \"input.search {\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tfont-size: 14px;\\n\\t\\t\\t\\tborder-radius: 10rem;\\n\\t\\t\\t\\tborder: var(--chat-border-style);\\n\\t\\t\\t\\tpadding: 5px 10px;\\n\\t\\t\\t\\toutline: none;\\n\\t\\t\\t\\tbackground: var(--chat-bg-color-input);\\n\\t\\t\\t\\tcolor: var(--chat-color);\\n\\t\\t\\t}\";\n      var style = document.createElement('style');\n      style.textContent = picker + nav + searchBox + search;\n      this.$refs.emojiPicker.shadowRoot.appendChild(style);\n    },\n    openEmoji: function openEmoji(ev) {\n      this.$emit('open-emoji', !this.emojiOpened);\n      this.setEmojiPickerPosition(ev.clientY, ev.view.innerWidth, ev.view.innerHeight);\n    },\n    setEmojiPickerPosition: function setEmojiPickerPosition(clientY, innerWidth, innerHeight) {\n      var mobileSize = innerWidth < 500 || innerHeight < 700;\n      var roomFooterRef = document.getElementById('room-footer');\n\n      if (!roomFooterRef) {\n        if (mobileSize) this.emojiPickerRight = '-50px';\n        return;\n      }\n\n      if (mobileSize) {\n        this.emojiPickerRight = innerWidth / 2 - (this.positionTop ? 200 : 150) + 'px';\n        this.emojiPickerTop = 100;\n        this.emojiPickerHeight = innerHeight - 200;\n      } else {\n        var roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n        var pickerTopPosition = roomFooterTop - clientY > this.emojiPickerHeight - 50;\n        if (pickerTopPosition) this.emojiPickerTop = clientY + 10;else this.emojiPickerTop = clientY - this.emojiPickerHeight - 10;\n        this.emojiPickerRight = this.positionTop ? '0px' : this.positionRight ? '60px' : '';\n      }\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/components/EmojiPickerContainer/EmojiPickerContainer.vue?vue&type=script&lang=js&\n /* harmony default export */ var EmojiPickerContainer_EmojiPickerContainervue_type_script_lang_js_ = (EmojiPickerContainervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/EmojiPickerContainer/EmojiPickerContainer.vue\n\n\n\n\n\n/* normalize component */\n\nvar EmojiPickerContainer_component = normalizeComponent(\n  EmojiPickerContainer_EmojiPickerContainervue_type_script_lang_js_,\n  EmojiPickerContainervue_type_template_id_44125154_render,\n  EmojiPickerContainervue_type_template_id_44125154_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var EmojiPickerContainer = (EmojiPickerContainer_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue?vue&type=template&id=60413016&\nvar RoomFilesvue_type_template_id_60413016_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\"\n    }\n  }, [_vm.files.length ? _c('div', {\n    staticClass: \"vac-room-files-container\",\n    style: {\n      bottom: \"\".concat(_vm.footerHeight, \"px\")\n    }\n  }, [_c('div', {\n    staticClass: \"vac-files-box\"\n  }, _vm._l(_vm.files, function (file, i) {\n    return _c('div', {\n      key: i\n    }, [_c('room-file', {\n      attrs: {\n        \"file\": file,\n        \"index\": i\n      },\n      on: {\n        \"remove-file\": function removeFile($event) {\n          return _vm.$emit('remove-file', $event);\n        }\n      }\n    })], 1);\n  }), 0), _c('div', {\n    staticClass: \"vac-icon-close\"\n  }, [_c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.$emit('reset-message');\n      }\n    }\n  }, [_vm._t(\"reply-close-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close-outline\"\n      }\n    })];\n  })], 2)])]) : _vm._e()]);\n};\n\nvar RoomFilesvue_type_template_id_60413016_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue?vue&type=template&id=60413016&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFiles/RoomFile/RoomFile.vue?vue&type=template&id=c0a62836&\nvar RoomFilevue_type_template_id_c0a62836_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-room-file-container\"\n  }, [_c('loader', {\n    attrs: {\n      \"show\": _vm.file.loading\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('div', {\n    staticClass: \"vac-svg-button vac-icon-remove\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.$emit('remove-file', _vm.index);\n      }\n    }\n  }, [_vm._t(\"image-close-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close\",\n        \"param\": \"image\"\n      }\n    })];\n  })], 2), _vm.isImage ? _c('div', {\n    staticClass: \"vac-message-image\",\n    \"class\": {\n      'vac-blur-loading': _vm.file.loading\n    },\n    style: {\n      'background-image': \"url('\".concat(_vm.file.localUrl || _vm.file.url, \"')\")\n    }\n  }) : _vm.isVideo ? _c('video', {\n    \"class\": {\n      'vac-blur-loading': _vm.file.loading\n    },\n    attrs: {\n      \"controls\": \"\"\n    }\n  }, [_c('source', {\n    attrs: {\n      \"src\": _vm.file.localUrl || _vm.file.url\n    }\n  })]) : _c('div', {\n    staticClass: \"vac-file-container\",\n    \"class\": {\n      'vac-blur-loading': _vm.file.loading\n    }\n  }, [_c('div', [_vm._t(\"file-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"file\"\n      }\n    })];\n  })], 2), _c('div', {\n    staticClass: \"vac-text-ellipsis\"\n  }, [_vm._v(\" \" + _vm._s(_vm.file.name) + \" \")]), _vm.file.extension ? _c('div', {\n    staticClass: \"vac-text-ellipsis vac-text-extension\"\n  }, [_vm._v(\" \" + _vm._s(_vm.file.extension) + \" \")]) : _vm._e()])], 1);\n};\n\nvar RoomFilevue_type_template_id_c0a62836_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFile/RoomFile.vue?vue&type=template&id=c0a62836&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFiles/RoomFile/RoomFile.vue?vue&type=script&lang=js&\n\n\n\nvar RoomFilevue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    isImageFile = RoomFilevue_type_script_lang_js_require.isImageFile,\n    isVideoFile = RoomFilevue_type_script_lang_js_require.isVideoFile;\n\n/* harmony default export */ var RoomFilevue_type_script_lang_js_ = ({\n  name: 'RoomFiles',\n  components: {\n    Loader: Loader,\n    SvgIcon: SvgIcon\n  },\n  props: {\n    file: {\n      type: Object,\n      required: true\n    },\n    index: {\n      type: Number,\n      required: true\n    }\n  },\n  emits: ['remove-file'],\n  computed: {\n    isImage: function isImage() {\n      return isImageFile(this.file);\n    },\n    isVideo: function isVideo() {\n      return isVideoFile(this.file);\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFile/RoomFile.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomFile_RoomFilevue_type_script_lang_js_ = (RoomFilevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFile/RoomFile.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomFile_component = normalizeComponent(\n  RoomFile_RoomFilevue_type_script_lang_js_,\n  RoomFilevue_type_template_id_c0a62836_render,\n  RoomFilevue_type_template_id_c0a62836_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomFile = (RoomFile_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ var RoomFilesvue_type_script_lang_js_ = ({\n  name: 'RoomFiles',\n  components: {\n    SvgIcon: SvgIcon,\n    RoomFile: RoomFile\n  },\n  props: {\n    files: {\n      type: Array,\n      required: true\n    }\n  },\n  emits: ['remove-file', 'reset-message'],\n  computed: {\n    footerHeight: function footerHeight() {\n      return document.getElementById('room-footer').clientHeight;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomFiles_RoomFilesvue_type_script_lang_js_ = (RoomFilesvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomFiles_component = normalizeComponent(\n  RoomFiles_RoomFilesvue_type_script_lang_js_,\n  RoomFilesvue_type_template_id_60413016_render,\n  RoomFilesvue_type_template_id_60413016_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomFiles = (RoomFiles_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue?vue&type=template&id=86b41b08&\nvar RoomMessageReplyvue_type_template_id_86b41b08_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\"\n    }\n  }, [_vm.messageReply ? _c('div', {\n    staticClass: \"vac-reply-container\",\n    style: {\n      bottom: \"\".concat(_vm.footerHeight, \"px\")\n    }\n  }, [_c('div', {\n    staticClass: \"vac-reply-box\"\n  }, [_c('div', {\n    staticClass: \"vac-reply-info\"\n  }, [_c('div', {\n    staticClass: \"vac-reply-username\"\n  }, [_vm._v(\" \" + _vm._s(_vm.messageReply.username) + \" \")]), _c('div', {\n    staticClass: \"vac-reply-content\"\n  }, [_c('format-message', {\n    attrs: {\n      \"content\": _vm.messageReply.content,\n      \"users\": _vm.room.users,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions,\n      \"reply\": true\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 1)]), _vm.isImage ? _c('img', {\n    staticClass: \"vac-image-reply\",\n    attrs: {\n      \"src\": _vm.firstFile.url\n    }\n  }) : _vm.isVideo ? _c('video', {\n    staticClass: \"vac-image-reply\",\n    attrs: {\n      \"controls\": \"\"\n    }\n  }, [_c('source', {\n    attrs: {\n      \"src\": _vm.firstFile.url\n    }\n  })]) : _vm.isAudio ? _c('audio-player', {\n    staticClass: \"vac-audio-reply\",\n    attrs: {\n      \"src\": _vm.firstFile.url\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }) : _vm.isOtherFile ? _c('div', {\n    staticClass: \"vac-image-reply vac-file-container\"\n  }, [_c('div', [_vm._t(\"file-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"file\"\n      }\n    })];\n  })], 2), _c('div', {\n    staticClass: \"vac-text-ellipsis\"\n  }, [_vm._v(\" \" + _vm._s(_vm.firstFile.name) + \" \")]), _vm.firstFile.extension ? _c('div', {\n    staticClass: \"vac-text-ellipsis vac-text-extension\"\n  }, [_vm._v(\" \" + _vm._s(_vm.firstFile.extension) + \" \")]) : _vm._e()]) : _vm._e()], 1), _c('div', {\n    staticClass: \"vac-icon-reply\"\n  }, [_c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.$emit('reset-message');\n      }\n    }\n  }, [_vm._t(\"reply-close-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close-outline\"\n      }\n    })];\n  })], 2)])]) : _vm._e()]);\n};\n\nvar RoomMessageReplyvue_type_template_id_86b41b08_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue?vue&type=template&id=86b41b08&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue?vue&type=template&id=d8b85268&\nvar AudioPlayervue_type_template_id_d8b85268_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', [_c('div', {\n    staticClass: \"vac-audio-player\"\n  }, [_c('div', {\n    staticClass: \"vac-svg-button\",\n    on: {\n      \"click\": _vm.playback\n    }\n  }, [_vm.isPlaying ? _vm._t(\"audio-pause-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"audio-pause\"\n      }\n    })];\n  }) : _vm._t(\"audio-play-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"audio-play\"\n      }\n    })];\n  })], 2), _c('audio-control', {\n    attrs: {\n      \"percentage\": _vm.progress,\n      \"message-selection-enabled\": _vm.messageSelectionEnabled\n    },\n    on: {\n      \"change-linehead\": _vm.onUpdateProgress,\n      \"hover-audio-progress\": function hoverAudioProgress($event) {\n        return _vm.$emit('hover-audio-progress', $event);\n      }\n    }\n  }), _c('audio', {\n    attrs: {\n      \"id\": _vm.playerUniqId,\n      \"src\": _vm.audioSource\n    }\n  })], 1)]);\n};\n\nvar AudioPlayervue_type_template_id_d8b85268_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue?vue&type=template&id=d8b85268&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/AudioPlayer/AudioControl/AudioControl.vue?vue&type=template&id=1721db79&\nvar AudioControlvue_type_template_id_1721db79_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    ref: \"progress\",\n    staticClass: \"vac-player-bar\",\n    on: {\n      \"mousedown\": _vm.onMouseDown,\n      \"mouseover\": function mouseover($event) {\n        return _vm.$emit('hover-audio-progress', true);\n      },\n      \"mouseout\": function mouseout($event) {\n        return _vm.$emit('hover-audio-progress', false);\n      }\n    }\n  }, [_c('div', {\n    staticClass: \"vac-player-progress\"\n  }, [_c('div', {\n    staticClass: \"vac-line-container\"\n  }, [_c('div', {\n    staticClass: \"vac-line-progress\",\n    style: {\n      width: \"\".concat(_vm.percentage, \"%\")\n    }\n  }), _c('div', {\n    staticClass: \"vac-line-dot\",\n    \"class\": {\n      'vac-line-dot__active': _vm.isMouseDown\n    },\n    style: {\n      left: \"\".concat(_vm.percentage, \"%\")\n    }\n  })])])]);\n};\n\nvar AudioControlvue_type_template_id_1721db79_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioControl/AudioControl.vue?vue&type=template&id=1721db79&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/AudioPlayer/AudioControl/AudioControl.vue?vue&type=script&lang=js&\n/* harmony default export */ var AudioControlvue_type_script_lang_js_ = ({\n  props: {\n    percentage: {\n      type: Number,\n      \"default\": 0\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['hover-audio-progress', 'change-linehead'],\n  data: function data() {\n    return {\n      isMouseDown: false\n    };\n  },\n  methods: {\n    onMouseDown: function onMouseDown(ev) {\n      if (this.messageSelectionEnabled) return;\n      this.isMouseDown = true;\n      var seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit('change-linehead', seekPos);\n      document.addEventListener('mousemove', this.onMouseMove);\n      document.addEventListener('mouseup', this.onMouseUp);\n    },\n    onMouseUp: function onMouseUp(ev) {\n      if (this.messageSelectionEnabled) return;\n      this.isMouseDown = false;\n      document.removeEventListener('mouseup', this.onMouseUp);\n      document.removeEventListener('mousemove', this.onMouseMove);\n      var seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit('change-linehead', seekPos);\n    },\n    onMouseMove: function onMouseMove(ev) {\n      if (this.messageSelectionEnabled) return;\n      var seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit('change-linehead', seekPos);\n    },\n    calculateLineHeadPosition: function calculateLineHeadPosition(ev, element) {\n      var progressWidth = element.getBoundingClientRect().width;\n      var leftPosition = element.getBoundingClientRect().left;\n      var pos = (ev.clientX - leftPosition) / progressWidth;\n      pos = pos < 0 ? 0 : pos;\n      pos = pos > 1 ? 1 : pos;\n      return pos;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioControl/AudioControl.vue?vue&type=script&lang=js&\n /* harmony default export */ var AudioControl_AudioControlvue_type_script_lang_js_ = (AudioControlvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioControl/AudioControl.vue\n\n\n\n\n\n/* normalize component */\n\nvar AudioControl_component = normalizeComponent(\n  AudioControl_AudioControlvue_type_script_lang_js_,\n  AudioControlvue_type_template_id_1721db79_render,\n  AudioControlvue_type_template_id_1721db79_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var AudioControl = (AudioControl_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ var AudioPlayervue_type_script_lang_js_ = ({\n  name: 'AudioPlayer',\n  components: {\n    SvgIcon: SvgIcon,\n    AudioControl: AudioControl\n  },\n  props: {\n    messageId: {\n      type: [String, Number],\n      \"default\": null\n    },\n    src: {\n      type: String,\n      \"default\": null\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['hover-audio-progress', 'update-progress-time'],\n  data: function data() {\n    return {\n      isPlaying: false,\n      duration: this.convertTimeMMSS(0),\n      playedTime: this.convertTimeMMSS(0),\n      progress: 0\n    };\n  },\n  computed: {\n    playerUniqId: function playerUniqId() {\n      return \"audio-player\".concat(this.messageId);\n    },\n    audioSource: function audioSource() {\n      if (this.src) return this.src;\n      this.resetProgress();\n      return null;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.player = document.getElementById(this.playerUniqId);\n    this.player.addEventListener('ended', function () {\n      _this.isPlaying = false;\n    });\n    this.player.addEventListener('loadeddata', function () {\n      _this.resetProgress();\n\n      _this.duration = _this.convertTimeMMSS(_this.player.duration);\n\n      _this.updateProgressTime();\n    });\n    this.player.addEventListener('timeupdate', this.onTimeUpdate);\n  },\n  methods: {\n    convertTimeMMSS: function convertTimeMMSS(seconds) {\n      return new Date(seconds * 1000).toISOString().substr(14, 5);\n    },\n    playback: function playback() {\n      var _this2 = this;\n\n      if (this.messageSelectionEnabled || !this.audioSource) return;\n      if (this.isPlaying) this.player.pause();else setTimeout(function () {\n        return _this2.player.play();\n      });\n      this.isPlaying = !this.isPlaying;\n    },\n    resetProgress: function resetProgress() {\n      if (this.isPlaying) this.player.pause();\n      this.duration = this.convertTimeMMSS(0);\n      this.playedTime = this.convertTimeMMSS(0);\n      this.progress = 0;\n      this.isPlaying = false;\n      this.updateProgressTime();\n    },\n    onTimeUpdate: function onTimeUpdate() {\n      this.playedTime = this.convertTimeMMSS(this.player.currentTime);\n      this.progress = this.player.currentTime / this.player.duration * 100;\n      this.updateProgressTime();\n    },\n    onUpdateProgress: function onUpdateProgress(pos) {\n      if (pos) this.player.currentTime = pos * this.player.duration;\n    },\n    updateProgressTime: function updateProgressTime() {\n      this.$emit('update-progress-time', this.progress > 1 ? this.playedTime : this.duration);\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue?vue&type=script&lang=js&\n /* harmony default export */ var AudioPlayer_AudioPlayervue_type_script_lang_js_ = (AudioPlayervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue\n\n\n\n\n\n/* normalize component */\n\nvar AudioPlayer_component = normalizeComponent(\n  AudioPlayer_AudioPlayervue_type_script_lang_js_,\n  AudioPlayervue_type_template_id_d8b85268_render,\n  AudioPlayervue_type_template_id_d8b85268_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var AudioPlayer = (AudioPlayer_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue?vue&type=script&lang=js&\n\n\n\n\nvar RoomMessageReplyvue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    RoomMessageReplyvue_type_script_lang_js_isAudioFile = RoomMessageReplyvue_type_script_lang_js_require.isAudioFile,\n    RoomMessageReplyvue_type_script_lang_js_isImageFile = RoomMessageReplyvue_type_script_lang_js_require.isImageFile,\n    RoomMessageReplyvue_type_script_lang_js_isVideoFile = RoomMessageReplyvue_type_script_lang_js_require.isVideoFile;\n\n/* harmony default export */ var RoomMessageReplyvue_type_script_lang_js_ = ({\n  name: 'RoomMessageReply',\n  components: {\n    SvgIcon: SvgIcon,\n    FormatMessage: FormatMessage,\n    AudioPlayer: AudioPlayer\n  },\n  props: {\n    room: {\n      type: Object,\n      required: true\n    },\n    messageReply: {\n      type: Object,\n      \"default\": null\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    }\n  },\n  emits: ['reset-message'],\n  computed: {\n    footerHeight: function footerHeight() {\n      return document.getElementById('room-footer').clientHeight;\n    },\n    firstFile: function firstFile() {\n      var _this$messageReply, _this$messageReply$fi;\n\n      return (_this$messageReply = this.messageReply) !== null && _this$messageReply !== void 0 && (_this$messageReply$fi = _this$messageReply.files) !== null && _this$messageReply$fi !== void 0 && _this$messageReply$fi.length ? this.messageReply.files[0] : {};\n    },\n    isImage: function isImage() {\n      return RoomMessageReplyvue_type_script_lang_js_isImageFile(this.firstFile);\n    },\n    isVideo: function isVideo() {\n      return RoomMessageReplyvue_type_script_lang_js_isVideoFile(this.firstFile);\n    },\n    isAudio: function isAudio() {\n      return RoomMessageReplyvue_type_script_lang_js_isAudioFile(this.firstFile);\n    },\n    isOtherFile: function isOtherFile() {\n      var _this$messageReply2, _this$messageReply2$f;\n\n      return ((_this$messageReply2 = this.messageReply) === null || _this$messageReply2 === void 0 ? void 0 : (_this$messageReply2$f = _this$messageReply2.files) === null || _this$messageReply2$f === void 0 ? void 0 : _this$messageReply2$f.length) && !this.isAudio && !this.isVideo && !this.isImage;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomMessageReply_RoomMessageReplyvue_type_script_lang_js_ = (RoomMessageReplyvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomMessageReply_component = normalizeComponent(\n  RoomMessageReply_RoomMessageReplyvue_type_script_lang_js_,\n  RoomMessageReplyvue_type_template_id_86b41b08_render,\n  RoomMessageReplyvue_type_template_id_86b41b08_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomMessageReply = (RoomMessageReply_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue?vue&type=template&id=082c6732&\nvar RoomUsersTagvue_type_template_id_082c6732_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\"\n    }\n  }, [_vm.filteredUsersTag.length ? _c('div', {\n    staticClass: \"vac-tags-container\",\n    style: {\n      bottom: \"\".concat(_vm.footerHeight, \"px\")\n    }\n  }, _vm._l(_vm.filteredUsersTag, function (user, index) {\n    return _c('div', {\n      key: user._id,\n      staticClass: \"vac-tags-box\",\n      \"class\": {\n        'vac-tags-box-active': index === _vm.activeItem\n      },\n      on: {\n        \"mouseover\": function mouseover($event) {\n          _vm.activeItem = index;\n        },\n        \"click\": function click($event) {\n          return _vm.$emit('select-user-tag', user);\n        }\n      }\n    }, [_c('div', {\n      staticClass: \"vac-tags-info\"\n    }, [user.avatar ? _c('div', {\n      staticClass: \"vac-avatar vac-tags-avatar\",\n      style: {\n        'background-image': \"url('\".concat(user.avatar, \"')\")\n      }\n    }) : _vm._e(), _c('div', {\n      staticClass: \"vac-tags-username\"\n    }, [_vm._v(\" \" + _vm._s(user.username) + \" \")])])]);\n  }), 0) : _vm._e()]);\n};\n\nvar RoomUsersTagvue_type_template_id_082c6732_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue?vue&type=template&id=082c6732&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue?vue&type=script&lang=js&\n/* harmony default export */ var RoomUsersTagvue_type_script_lang_js_ = ({\n  name: 'RoomUsersTag',\n  props: {\n    filteredUsersTag: {\n      type: Array,\n      required: true\n    },\n    selectItem: {\n      type: Boolean,\n      \"default\": null\n    },\n    activeUpOrDown: {\n      type: Number,\n      \"default\": null\n    }\n  },\n  emits: ['select-user-tag', 'activate-item'],\n  data: function data() {\n    return {\n      activeItem: null\n    };\n  },\n  computed: {\n    footerHeight: function footerHeight() {\n      return document.getElementById('room-footer').clientHeight;\n    }\n  },\n  watch: {\n    filteredUsersTag: function filteredUsersTag(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem: function selectItem(val) {\n      if (val) {\n        this.$emit('select-user-tag', this.filteredUsersTag[this.activeItem]);\n      }\n    },\n    activeUpOrDown: function activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredUsersTag.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n\n      this.$emit('activate-item');\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomUsersTag_RoomUsersTagvue_type_script_lang_js_ = (RoomUsersTagvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomUsersTag_component = normalizeComponent(\n  RoomUsersTag_RoomUsersTagvue_type_script_lang_js_,\n  RoomUsersTagvue_type_template_id_082c6732_render,\n  RoomUsersTagvue_type_template_id_082c6732_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomUsersTag = (RoomUsersTag_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue?vue&type=template&id=b6026542&\nvar RoomEmojisvue_type_template_id_b6026542_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\"\n    }\n  }, [_vm.filteredEmojis.length ? _c('div', {\n    staticClass: \"vac-emojis-container\",\n    style: {\n      bottom: \"\".concat(_vm.footerHeight, \"px\")\n    }\n  }, _vm._l(_vm.filteredEmojis, function (emoji, index) {\n    return _c('div', {\n      key: emoji,\n      staticClass: \"vac-emoji-element\",\n      \"class\": {\n        'vac-emoji-element-active': index === _vm.activeItem\n      },\n      on: {\n        \"mouseover\": function mouseover($event) {\n          _vm.activeItem = index;\n        },\n        \"click\": function click($event) {\n          return _vm.$emit('select-emoji', emoji);\n        }\n      }\n    }, [_vm._v(\" \" + _vm._s(emoji) + \" \")]);\n  }), 0) : _vm._e()]);\n};\n\nvar RoomEmojisvue_type_template_id_b6026542_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue?vue&type=template&id=b6026542&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue?vue&type=script&lang=js&\n/* harmony default export */ var RoomEmojisvue_type_script_lang_js_ = ({\n  name: 'RoomEmojis',\n  props: {\n    filteredEmojis: {\n      type: Array,\n      required: true\n    },\n    selectItem: {\n      type: Boolean,\n      \"default\": null\n    },\n    activeUpOrDown: {\n      type: Number,\n      \"default\": null\n    }\n  },\n  emits: ['select-emoji', 'activate-item'],\n  data: function data() {\n    return {\n      activeItem: null\n    };\n  },\n  computed: {\n    footerHeight: function footerHeight() {\n      return document.getElementById('room-footer').clientHeight;\n    }\n  },\n  watch: {\n    filteredEmojis: function filteredEmojis(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem: function selectItem(val) {\n      if (val) {\n        this.$emit('select-emoji', this.filteredEmojis[this.activeItem]);\n      }\n    },\n    activeUpOrDown: function activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredEmojis.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n\n      this.$emit('activate-item');\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomEmojis_RoomEmojisvue_type_script_lang_js_ = (RoomEmojisvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomEmojis_component = normalizeComponent(\n  RoomEmojis_RoomEmojisvue_type_script_lang_js_,\n  RoomEmojisvue_type_template_id_b6026542_render,\n  RoomEmojisvue_type_template_id_b6026542_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomEmojis = (RoomEmojis_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue?vue&type=template&id=113f1c86&\nvar RoomTemplatesTextvue_type_template_id_113f1c86_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-slide-up\"\n    }\n  }, [_vm.filteredTemplatesText.length ? _c('div', {\n    staticClass: \"vac-template-container vac-app-box-shadow\",\n    style: {\n      bottom: \"\".concat(_vm.footerHeight, \"px\")\n    }\n  }, _vm._l(_vm.filteredTemplatesText, function (template, index) {\n    return _c('div', {\n      key: index,\n      staticClass: \"vac-template-box\",\n      \"class\": {\n        'vac-template-active': index === _vm.activeItem\n      },\n      on: {\n        \"mouseover\": function mouseover($event) {\n          _vm.activeItem = index;\n        },\n        \"click\": function click($event) {\n          return _vm.$emit('select-template-text', template);\n        }\n      }\n    }, [_c('div', {\n      staticClass: \"vac-template-info\"\n    }, [_c('div', {\n      staticClass: \"vac-template-tag\"\n    }, [_vm._v(\" /\" + _vm._s(template.tag) + \" \")]), _c('div', {\n      staticClass: \"vac-template-text\"\n    }, [_vm._v(\" \" + _vm._s(template.text) + \" \")])])]);\n  }), 0) : _vm._e()]);\n};\n\nvar RoomTemplatesTextvue_type_template_id_113f1c86_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue?vue&type=template&id=113f1c86&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue?vue&type=script&lang=js&\n/* harmony default export */ var RoomTemplatesTextvue_type_script_lang_js_ = ({\n  name: 'RoomTemplatesText',\n  props: {\n    filteredTemplatesText: {\n      type: Array,\n      required: true\n    },\n    selectItem: {\n      type: Boolean,\n      \"default\": null\n    },\n    activeUpOrDown: {\n      type: Number,\n      \"default\": null\n    }\n  },\n  emits: ['select-template-text', 'activate-item'],\n  data: function data() {\n    return {\n      activeItem: null\n    };\n  },\n  computed: {\n    footerHeight: function footerHeight() {\n      return document.getElementById('room-footer').clientHeight;\n    }\n  },\n  watch: {\n    filteredTemplatesText: function filteredTemplatesText(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem: function selectItem(val) {\n      if (val) {\n        this.$emit('select-template-text', this.filteredTemplatesText[this.activeItem]);\n      }\n    },\n    activeUpOrDown: function activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredTemplatesText.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n\n      this.$emit('activate-item');\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomTemplatesText_RoomTemplatesTextvue_type_script_lang_js_ = (RoomTemplatesTextvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomTemplatesText_component = normalizeComponent(\n  RoomTemplatesText_RoomTemplatesTextvue_type_script_lang_js_,\n  RoomTemplatesTextvue_type_template_id_113f1c86_render,\n  RoomTemplatesTextvue_type_template_id_113f1c86_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomTemplatesText = (RoomTemplatesText_component.exports);\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\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  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.at.js\nvar es_typed_array_at = __webpack_require__(\"907a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js\nvar es_typed_array_set = __webpack_require__(\"3c5d\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.typed-array.find-last.js\nvar esnext_typed_array_find_last = __webpack_require__(\"fa9e\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.typed-array.find-last-index.js\nvar esnext_typed_array_find_last_index = __webpack_require__(\"77d9\");\n\n// CONCATENATED MODULE: ./src/utils/mp3-encoder.js\n\n\n\n\n\n\n\n// Credits to https://github.com/grishkovelli/vue-audio-recorder\nvar lamejs;\n\ntry {\n  lamejs = __webpack_require__(\"db3f\");\n} catch (_) {\n  lamejs = {\n    missing: true\n  };\n}\n\nvar _lamejs = lamejs,\n    Mp3Encoder = _lamejs.Mp3Encoder;\n\nvar mp3_encoder_default = /*#__PURE__*/function () {\n  function _default(config) {\n    _classCallCheck(this, _default);\n\n    if (lamejs.missing) {\n      throw new Error('You must add lamejs in your dependencies to use the audio recorder. Please run \"npm install lamejs --save\"');\n    }\n\n    this.bitRate = config.bitRate;\n    this.sampleRate = config.sampleRate;\n    this.dataBuffer = [];\n    this.encoder = new Mp3Encoder(1, this.sampleRate, this.bitRate);\n  }\n\n  _createClass(_default, [{\n    key: \"encode\",\n    value: function encode(arrayBuffer) {\n      var maxSamples = 1152;\n\n      var samples = this._convertBuffer(arrayBuffer);\n\n      var remaining = samples.length;\n\n      for (var i = 0; remaining >= 0; i += maxSamples) {\n        var left = samples.subarray(i, i + maxSamples);\n        var buffer = this.encoder.encodeBuffer(left);\n        this.dataBuffer.push(new Int8Array(buffer));\n        remaining -= maxSamples;\n      }\n    }\n  }, {\n    key: \"finish\",\n    value: function finish() {\n      this.dataBuffer.push(this.encoder.flush());\n      var blob = new Blob(this.dataBuffer, {\n        type: 'audio/mp3'\n      });\n      this.dataBuffer = [];\n      return {\n        id: Date.now(),\n        blob: blob,\n        url: URL.createObjectURL(blob)\n      };\n    }\n  }, {\n    key: \"_floatTo16BitPCM\",\n    value: function _floatTo16BitPCM(input, output) {\n      for (var i = 0; i < input.length; i++) {\n        var s = Math.max(-1, Math.min(1, input[i]));\n        output[i] = s < 0 ? s * 0x8000 : s * 0x7fff;\n      }\n    }\n  }, {\n    key: \"_convertBuffer\",\n    value: function _convertBuffer(arrayBuffer) {\n      var data = new Float32Array(arrayBuffer);\n      var out = new Int16Array(arrayBuffer.length);\n\n      this._floatTo16BitPCM(data, out);\n\n      return out;\n    }\n  }]);\n\n  return _default;\n}();\n\n\n// CONCATENATED MODULE: ./src/utils/recorder.js\n\n\n// Credits to https://github.com/grishkovelli/vue-audio-recorder\n\n\nvar recorder_default = /*#__PURE__*/function () {\n  function _default() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, _default);\n\n    this.beforeRecording = options.beforeRecording;\n    this.pauseRecording = options.pauseRecording;\n    this.afterRecording = options.afterRecording;\n    this.micFailed = options.micFailed;\n    this.encoderOptions = {\n      bitRate: options.bitRate,\n      sampleRate: options.sampleRate\n    };\n    this.bufferSize = 4096;\n    this.records = [];\n    this.isPause = false;\n    this.isRecording = false;\n    this.duration = 0;\n    this.volume = 0;\n    this._duration = 0;\n  }\n\n  _createClass(_default, [{\n    key: \"start\",\n    value: function start() {\n      var constraints = {\n        video: false,\n        audio: {\n          channelCount: 1,\n          echoCancellation: false\n        }\n      };\n      this.beforeRecording && this.beforeRecording('start recording');\n      navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this))[\"catch\"](this._micError.bind(this));\n      this.isPause = false;\n      this.isRecording = true;\n\n      if (!this.lameEncoder) {\n        this.lameEncoder = new mp3_encoder_default(this.encoderOptions);\n      }\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      this.stream.getTracks().forEach(function (track) {\n        return track.stop();\n      });\n      this.input.disconnect();\n      this.processor.disconnect();\n      this.context.close();\n      var record = null;\n      record = this.lameEncoder.finish();\n      record.duration = this.duration;\n      this.records.push(record);\n      this._duration = 0;\n      this.duration = 0;\n      this.isPause = false;\n      this.isRecording = false;\n      this.afterRecording && this.afterRecording(record);\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.stream.getTracks().forEach(function (track) {\n        return track.stop();\n      });\n      this.input.disconnect();\n      this.processor.disconnect();\n      this._duration = this.duration;\n      this.isPause = true;\n      this.pauseRecording && this.pauseRecording('pause recording');\n    }\n  }, {\n    key: \"_micCaptured\",\n    value: function _micCaptured(stream) {\n      var _this = this;\n\n      this.context = new (window.AudioContext || window.webkitAudioContext)();\n      this.duration = this._duration;\n      this.input = this.context.createMediaStreamSource(stream);\n      this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);\n      this.stream = stream;\n\n      this.processor.onaudioprocess = function (ev) {\n        var sample = ev.inputBuffer.getChannelData(0);\n        var sum = 0.0;\n\n        if (_this.lameEncoder) {\n          _this.lameEncoder.encode(sample);\n        }\n\n        for (var i = 0; i < sample.length; ++i) {\n          sum += sample[i] * sample[i];\n        }\n\n        _this.duration = parseFloat(_this._duration) + parseFloat(_this.context.currentTime.toFixed(2));\n        _this.volume = Math.sqrt(sum / sample.length).toFixed(2);\n      };\n\n      this.input.connect(this.processor);\n      this.processor.connect(this.context.destination);\n    }\n  }, {\n    key: \"_micError\",\n    value: function _micError(error) {\n      this.micFailed && this.micFailed(error);\n    }\n  }]);\n\n  return _default;\n}();\n\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomFooter/RoomFooter.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar RoomFootervue_type_script_lang_js_require = __webpack_require__(\"1a98\"),\n    detectMobile = RoomFootervue_type_script_lang_js_require.detectMobile;\n\n/* harmony default export */ var RoomFootervue_type_script_lang_js_ = ({\n  name: 'RoomFooter',\n  components: {\n    SvgIcon: SvgIcon,\n    EmojiPickerContainer: EmojiPickerContainer,\n    RoomFiles: RoomFiles,\n    RoomMessageReply: RoomMessageReply,\n    RoomUsersTag: RoomUsersTag,\n    RoomEmojis: RoomEmojis,\n    RoomTemplatesText: RoomTemplatesText\n  },\n  directives: {\n    clickOutside: v_click_outside_umd_default.a.directive\n  },\n  props: {\n    room: {\n      type: Object,\n      required: true\n    },\n    roomId: {\n      type: [String, Number],\n      required: true\n    },\n    roomMessage: {\n      type: String,\n      \"default\": null\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    showSendIcon: {\n      type: Boolean,\n      required: true\n    },\n    showFiles: {\n      type: Boolean,\n      required: true\n    },\n    showAudio: {\n      type: Boolean,\n      required: true\n    },\n    showEmojis: {\n      type: Boolean,\n      required: true\n    },\n    showFooter: {\n      type: Boolean,\n      required: true\n    },\n    acceptedFiles: {\n      type: String,\n      required: true\n    },\n    textareaActionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    textareaAutoFocus: {\n      type: Boolean,\n      required: true\n    },\n    userTagsEnabled: {\n      type: Boolean,\n      required: true\n    },\n    emojisSuggestionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    templatesText: {\n      type: Array,\n      \"default\": null\n    },\n    audioBitRate: {\n      type: Number,\n      required: true\n    },\n    audioSampleRate: {\n      type: Number,\n      required: true\n    },\n    initReplyMessage: {\n      type: Object,\n      \"default\": null\n    },\n    initEditMessage: {\n      type: Object,\n      \"default\": null\n    }\n  },\n  emits: ['edit-message', 'send-message', 'update-edited-message-id', 'textarea-action-handler', 'typing-message'],\n  data: function data() {\n    return {\n      message: '',\n      editedMessage: {},\n      messageReply: null,\n      cursorRangePosition: null,\n      files: [],\n      fileDialog: false,\n      selectUsersTagItem: null,\n      selectEmojiItem: null,\n      selectTemplatesTextItem: null,\n      format: 'mp3',\n      activeUpOrDownEmojis: null,\n      activeUpOrDownUsersTag: null,\n      activeUpOrDownTemplatesText: null,\n      emojisDB: new database[\"a\" /* default */](),\n      emojiOpened: false,\n      keepKeyboardOpen: false,\n      filteredEmojis: [],\n      filteredUsersTag: [],\n      selectedUsersTag: [],\n      filteredTemplatesText: [],\n      recorder: this.initRecorder(),\n      isRecording: false\n    };\n  },\n  computed: {\n    isMessageEmpty: function isMessageEmpty() {\n      return !this.files.length && !this.message.trim();\n    },\n    isFileLoading: function isFileLoading() {\n      return this.files.some(function (e) {\n        return e.loading;\n      });\n    },\n    recordedTime: function recordedTime() {\n      return new Date(this.recorder.duration * 1000).toISOString().substr(14, 5);\n    },\n    shadowFooter: function shadowFooter() {\n      return !!this.filteredEmojis.length || !!this.filteredUsersTag.length || !!this.filteredTemplatesText.length || !!this.files.length || !!this.messageReply;\n    }\n  },\n  watch: {\n    roomId: function roomId() {\n      var _this = this;\n\n      this.resetMessage(true, true);\n\n      if (this.roomMessage) {\n        this.message = this.roomMessage;\n        setTimeout(function () {\n          return _this.onChangeInput();\n        });\n      }\n    },\n    message: function message(val) {\n      this.getTextareaRef().value = val;\n    },\n    roomMessage: {\n      immediate: true,\n      handler: function handler(val) {\n        if (val) this.message = this.roomMessage;\n      }\n    },\n    editedMessage: function editedMessage(val) {\n      this.$emit('update-edited-message-id', val._id);\n    },\n    initReplyMessage: function initReplyMessage(val) {\n      this.replyMessage(val);\n    },\n    initEditMessage: function initEditMessage(val) {\n      this.editMessage(val);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    var isMobile = detectMobile();\n    var isComposed = true;\n    this.getTextareaRef().addEventListener('keyup', function (e) {\n      if (e.key === 'Enter' && !e.shiftKey && !_this2.fileDialog) {\n        if (isMobile) {\n          _this2.message = _this2.message + '\\n';\n          setTimeout(function () {\n            return _this2.onChangeInput();\n          });\n        } else if (isComposed && !_this2.filteredEmojis.length && !_this2.filteredUsersTag.length && !_this2.filteredTemplatesText.length) {\n          _this2.sendMessage();\n        }\n      }\n\n      isComposed = !e.isComposing;\n      setTimeout(function () {\n        _this2.updateFooterLists();\n      }, 60);\n    });\n    this.getTextareaRef().addEventListener('click', function () {\n      if (isMobile) _this2.keepKeyboardOpen = true;\n\n      _this2.updateFooterLists();\n    });\n    this.getTextareaRef().addEventListener('blur', function () {\n      setTimeout(function () {\n        _this2.resetFooterList();\n      }, 100);\n      if (isMobile) setTimeout(function () {\n        return _this2.keepKeyboardOpen = false;\n      });\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.stopRecorder();\n  },\n  methods: {\n    getTextareaRef: function getTextareaRef() {\n      return this.$refs.roomTextarea;\n    },\n    focusTextarea: function focusTextarea(disableMobileFocus) {\n      var _this3 = this;\n\n      if (detectMobile() && disableMobileFocus) return;\n      if (!this.getTextareaRef()) return;\n      this.getTextareaRef().focus();\n\n      if (this.cursorRangePosition) {\n        setTimeout(function () {\n          _this3.getTextareaRef().setSelectionRange(_this3.cursorRangePosition, _this3.cursorRangePosition);\n\n          _this3.cursorRangePosition = null;\n        });\n      }\n    },\n    onChangeInput: function onChangeInput() {\n      var _this$getTextareaRef, _this$getTextareaRef2;\n\n      if ((_this$getTextareaRef = this.getTextareaRef()) !== null && _this$getTextareaRef !== void 0 && _this$getTextareaRef.value || ((_this$getTextareaRef2 = this.getTextareaRef()) === null || _this$getTextareaRef2 === void 0 ? void 0 : _this$getTextareaRef2.value) === '') {\n        var _this$getTextareaRef3;\n\n        this.message = (_this$getTextareaRef3 = this.getTextareaRef()) === null || _this$getTextareaRef3 === void 0 ? void 0 : _this$getTextareaRef3.value;\n      }\n\n      this.keepKeyboardOpen = true;\n      this.resizeTextarea();\n      this.$emit('typing-message', this.message);\n    },\n    resizeTextarea: function resizeTextarea() {\n      var el = this.getTextareaRef();\n      if (!el) return;\n      var padding = window.getComputedStyle(el, null).getPropertyValue('padding-top').replace('px', '');\n      el.style.height = 0;\n      el.style.height = el.scrollHeight - padding * 2 + 'px';\n    },\n    escapeTextarea: function escapeTextarea() {\n      if (this.filteredEmojis.length) this.filteredEmojis = [];else if (this.filteredUsersTag.length) this.filteredUsersTag = [];else if (this.filteredTemplatesText.length) {\n        this.filteredTemplatesText = [];\n      } else this.resetMessage();\n    },\n    onPasteImage: function onPasteImage(pasteEvent) {\n      var _pasteEvent$clipboard,\n          _this4 = this;\n\n      var items = (_pasteEvent$clipboard = pasteEvent.clipboardData) === null || _pasteEvent$clipboard === void 0 ? void 0 : _pasteEvent$clipboard.items;\n\n      if (items) {\n        Array.from(items).forEach(function (item) {\n          if (item.type.includes('image')) {\n            var blob = item.getAsFile();\n\n            _this4.onFileChange([blob]);\n          }\n        });\n      }\n    },\n    updateActiveUpOrDown: function updateActiveUpOrDown(direction) {\n      if (this.filteredEmojis.length) {\n        this.activeUpOrDownEmojis = direction;\n      } else if (this.filteredUsersTag.length) {\n        this.activeUpOrDownUsersTag = direction;\n      } else if (this.filteredTemplatesText.length) {\n        this.activeUpOrDownTemplatesText = direction;\n      }\n    },\n    selectItem: function selectItem() {\n      if (this.filteredEmojis.length) {\n        this.selectEmojiItem = true;\n      } else if (this.filteredUsersTag.length) {\n        this.selectUsersTagItem = true;\n      } else if (this.filteredTemplatesText.length) {\n        this.selectTemplatesTextItem = true;\n      }\n    },\n    selectEmoji: function selectEmoji(emoji) {\n      this.selectEmojiItem = false;\n      if (!emoji) return;\n\n      var _this$getCharPosition = this.getCharPosition(':'),\n          position = _this$getCharPosition.position,\n          endPosition = _this$getCharPosition.endPosition;\n\n      this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);\n      this.cursorRangePosition = position;\n      this.focusTextarea();\n    },\n    selectTemplateText: function selectTemplateText(template) {\n      this.selectTemplatesTextItem = false;\n      if (!template) return;\n\n      var _this$getCharPosition2 = this.getCharPosition('/'),\n          position = _this$getCharPosition2.position,\n          endPosition = _this$getCharPosition2.endPosition;\n\n      var space = this.message.substr(endPosition, endPosition).length ? '' : ' ';\n      this.message = this.message.substr(0, position - 1) + template.text + space + this.message.substr(endPosition, this.message.length - 1);\n      this.cursorRangePosition = position + template.text.length + space.length + 1;\n      this.focusTextarea();\n    },\n    addEmoji: function addEmoji(emoji) {\n      this.message += emoji.unicode;\n      this.focusTextarea(true);\n    },\n    launchFilePicker: function launchFilePicker() {\n      this.$refs.file.value = '';\n      this.$refs.file.click();\n    },\n    onFileChange: function onFileChange(files) {\n      var _this5 = this;\n\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n        return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _this5.fileDialog = true;\n\n                _this5.focusTextarea();\n\n                Array.from(files).forEach( /*#__PURE__*/function () {\n                  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {\n                    var fileURL, typeIndex, blobFile, loadedFile;\n                    return _regeneratorRuntime().wrap(function _callee$(_context) {\n                      while (1) {\n                        switch (_context.prev = _context.next) {\n                          case 0:\n                            fileURL = URL.createObjectURL(file);\n                            typeIndex = file.name.lastIndexOf('.');\n\n                            _this5.files.push({\n                              loading: true,\n                              name: file.name.substring(0, typeIndex),\n                              size: file.size,\n                              type: file.type,\n                              extension: file.name.substring(typeIndex + 1),\n                              localUrl: fileURL\n                            });\n\n                            _context.next = 5;\n                            return fetch(fileURL).then(function (res) {\n                              return res.blob();\n                            });\n\n                          case 5:\n                            blobFile = _context.sent;\n                            loadedFile = _this5.files.find(function (file) {\n                              return file.localUrl === fileURL;\n                            });\n\n                            if (loadedFile) {\n                              loadedFile.blob = blobFile;\n                              loadedFile.loading = false;\n                              delete loadedFile.loading;\n                            }\n\n                          case 8:\n                          case \"end\":\n                            return _context.stop();\n                        }\n                      }\n                    }, _callee);\n                  }));\n\n                  return function (_x) {\n                    return _ref.apply(this, arguments);\n                  };\n                }());\n                setTimeout(function () {\n                  return _this5.fileDialog = false;\n                }, 500);\n\n              case 4:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2);\n      }))();\n    },\n    removeFile: function removeFile(index) {\n      this.files.splice(index, 1);\n      this.focusTextarea();\n    },\n    toggleRecorder: function toggleRecorder(recording) {\n      var _this6 = this;\n\n      this.isRecording = recording;\n\n      if (!this.recorder.isRecording) {\n        setTimeout(function () {\n          return _this6.recorder.start();\n        }, 200);\n      } else {\n        try {\n          this.recorder.stop();\n          var record = this.recorder.records[0];\n          this.files.push({\n            blob: record.blob,\n            name: \"audio.\".concat(this.format),\n            size: record.blob.size,\n            duration: record.duration,\n            type: record.blob.type,\n            audio: true,\n            localUrl: URL.createObjectURL(record.blob)\n          });\n          this.recorder = this.initRecorder();\n          this.sendMessage();\n        } catch (_unused) {\n          setTimeout(function () {\n            return _this6.stopRecorder();\n          }, 100);\n        }\n      }\n    },\n    stopRecorder: function stopRecorder() {\n      var _this7 = this;\n\n      if (this.recorder.isRecording) {\n        try {\n          this.recorder.stop();\n          this.recorder = this.initRecorder();\n        } catch (_unused2) {\n          setTimeout(function () {\n            return _this7.stopRecorder();\n          }, 100);\n        }\n      }\n    },\n    textareaActionHandler: function textareaActionHandler() {\n      this.$emit('textarea-action-handler', this.message);\n    },\n    sendMessage: function sendMessage() {\n      var message = this.message.trim();\n      if (!this.files.length && !message) return;\n      if (this.isFileLoading) return;\n      this.selectedUsersTag.forEach(function (user) {\n        message = message.replace(\"@\".concat(user.username), \"<usertag>\".concat(user._id, \"</usertag>\"));\n      });\n      var files = this.files.length ? this.files : null;\n\n      if (this.editedMessage._id) {\n        var _this$editedMessage$f;\n\n        if (this.editedMessage.content !== message || (_this$editedMessage$f = this.editedMessage.files) !== null && _this$editedMessage$f !== void 0 && _this$editedMessage$f.length || this.files.length) {\n          this.$emit('edit-message', {\n            messageId: this.editedMessage._id,\n            newContent: message,\n            files: files,\n            replyMessage: this.messageReply,\n            usersTag: this.selectedUsersTag\n          });\n        }\n      } else {\n        this.$emit('send-message', {\n          content: message,\n          files: files,\n          replyMessage: this.messageReply,\n          usersTag: this.selectedUsersTag\n        });\n      }\n\n      this.resetMessage(true);\n    },\n    // eslint-disable-next-line vue/no-unused-properties\n    editMessage: function editMessage(message) {\n      var _this8 = this;\n\n      this.resetMessage();\n      this.editedMessage = _objectSpread2({}, message);\n      var messageContent = message.content;\n      var initialContent = messageContent;\n      var firstTag = '<usertag>';\n      var secondTag = '</usertag>';\n\n      var usertags = _toConsumableArray(messageContent.matchAll(new RegExp(firstTag, 'gi'))).map(function (a) {\n        return a.index;\n      });\n\n      usertags.forEach(function (index) {\n        var userId = initialContent.substring(index + firstTag.length, initialContent.indexOf(secondTag, index));\n\n        var user = _this8.room.users.find(function (user) {\n          return user._id === userId;\n        });\n\n        messageContent = messageContent.replace(\"\".concat(firstTag).concat(userId).concat(secondTag), \"@\".concat((user === null || user === void 0 ? void 0 : user.username) || 'unknown'));\n\n        _this8.selectUserTag(user, true);\n      });\n      this.message = messageContent;\n\n      if (message.files) {\n        this.files = _toConsumableArray(message.files);\n      }\n\n      setTimeout(function () {\n        return _this8.resizeTextarea();\n      });\n    },\n    // eslint-disable-next-line vue/no-unused-properties\n    replyMessage: function replyMessage(message) {\n      this.editedMessage = {};\n      this.messageReply = message;\n      this.focusTextarea();\n    },\n    updateFooterLists: function updateFooterLists() {\n      this.updateFooterList('@');\n      this.updateFooterList(':');\n      this.updateFooterList('/');\n    },\n    updateFooterList: function updateFooterList(tagChar) {\n      if (!this.getTextareaRef()) return;\n\n      if (tagChar === ':' && !this.emojisSuggestionEnabled) {\n        return;\n      }\n\n      if (tagChar === '@' && (!this.userTagsEnabled || !this.room.users)) {\n        return;\n      }\n\n      if (tagChar === '/' && !this.templatesText) {\n        return;\n      }\n\n      var textareaCursorPosition = this.getTextareaRef().selectionStart;\n      var position = textareaCursorPosition;\n\n      while (position > 0 && this.message.charAt(position - 1) !== tagChar && ( // eslint-disable-next-line no-unmodified-loop-condition\n      this.message.charAt(position - 1) !== ' ' || tagChar !== ':')) {\n        position--;\n      }\n\n      var beforeTag = this.message.charAt(position - 2);\n      var notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);\n\n      if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === ' ' || notLetterNumber)) {\n        var query = this.message.substring(position, textareaCursorPosition);\n\n        if (tagChar === ':') {\n          this.updateEmojis(query);\n        } else if (tagChar === '@') {\n          this.updateShowUsersTag(query);\n        } else if (tagChar === '/') {\n          this.updateShowTemplatesText(query);\n        }\n      } else {\n        this.resetFooterList(tagChar);\n      }\n    },\n    updateShowUsersTag: function updateShowUsersTag(query) {\n      var _this9 = this;\n\n      this.filteredUsersTag = filter_items(this.room.users, 'username', query, true).filter(function (user) {\n        return user._id !== _this9.currentUserId;\n      });\n    },\n    selectUserTag: function selectUserTag(user) {\n      var editMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      this.selectUsersTagItem = false;\n      if (!user) return;\n\n      var _this$getCharPosition3 = this.getCharPosition('@'),\n          position = _this$getCharPosition3.position,\n          endPosition = _this$getCharPosition3.endPosition;\n\n      var space = this.message.substr(endPosition, endPosition).length ? '' : ' ';\n      this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);\n      this.selectedUsersTag = [].concat(_toConsumableArray(this.selectedUsersTag), [_objectSpread2({}, user)]);\n\n      if (!editMode) {\n        this.cursorRangePosition = position + user.username.length + space.length + 1;\n      }\n\n      this.focusTextarea();\n    },\n    updateShowTemplatesText: function updateShowTemplatesText(query) {\n      this.filteredTemplatesText = filter_items(this.templatesText, 'tag', query, true);\n    },\n    getCharPosition: function getCharPosition(tagChar) {\n      var cursorPosition = this.getTextareaRef().selectionStart;\n      var position = cursorPosition;\n\n      while (position > 0 && this.message.charAt(position - 1) !== tagChar) {\n        position--;\n      }\n\n      var endPosition = this.getTextareaRef().selectionEnd;\n      return {\n        position: position,\n        endPosition: endPosition\n      };\n    },\n    updateEmojis: function updateEmojis(query) {\n      var _this10 = this;\n\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n        var emojis;\n        return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                if (query) {\n                  _context3.next = 2;\n                  break;\n                }\n\n                return _context3.abrupt(\"return\");\n\n              case 2:\n                _context3.next = 4;\n                return _this10.emojisDB.getEmojiBySearchQuery(query);\n\n              case 4:\n                emojis = _context3.sent;\n                _this10.filteredEmojis = emojis.map(function (emoji) {\n                  return emoji.unicode;\n                });\n\n              case 6:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3);\n      }))();\n    },\n    resetFooterList: function resetFooterList() {\n      var tagChar = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n      if (tagChar === ':') {\n        this.filteredEmojis = [];\n      } else if (tagChar === '@') {\n        this.filteredUsersTag = [];\n      } else if (tagChar === '/') {\n        this.filteredTemplatesText = [];\n      } else {\n        this.filteredEmojis = [];\n        this.filteredUsersTag = [];\n        this.filteredTemplatesText = [];\n      }\n    },\n    resetMessage: function resetMessage() {\n      var _this11 = this;\n\n      var disableMobileFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var initRoom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (!initRoom) {\n        this.$emit('typing-message', null);\n      }\n\n      this.selectedUsersTag = [];\n      this.resetFooterList();\n      this.resetTextareaSize();\n      this.message = '';\n      this.editedMessage = {};\n      this.messageReply = null;\n      this.files = [];\n      this.emojiOpened = false;\n      this.preventKeyboardFromClosing();\n\n      if (this.textareaAutoFocus || !initRoom) {\n        setTimeout(function () {\n          return _this11.focusTextarea(disableMobileFocus);\n        });\n      }\n    },\n    resetTextareaSize: function resetTextareaSize() {\n      if (this.getTextareaRef()) {\n        this.getTextareaRef().style.height = '20px';\n      }\n    },\n    preventKeyboardFromClosing: function preventKeyboardFromClosing() {\n      if (this.keepKeyboardOpen) this.getTextareaRef().focus();\n    },\n    initRecorder: function initRecorder() {\n      this.isRecording = false;\n      return new recorder_default({\n        bitRate: this.audioBitRate,\n        sampleRate: this.audioSampleRate,\n        beforeRecording: null,\n        afterRecording: null,\n        pauseRecording: null,\n        micFailed: this.micFailed\n      });\n    },\n    micFailed: function micFailed() {\n      this.isRecording = false;\n      this.recorder = this.initRecorder();\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFooter.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomFooter_RoomFootervue_type_script_lang_js_ = (RoomFootervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomFooter/RoomFooter.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomFooter_component = normalizeComponent(\n  RoomFooter_RoomFootervue_type_script_lang_js_,\n  RoomFootervue_type_template_id_4393ef9a_render,\n  RoomFootervue_type_template_id_4393ef9a_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomFooter = (RoomFooter_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/RoomMessage.vue?vue&type=template&id=8e1a79a8&\nvar RoomMessagevue_type_template_id_8e1a79a8_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    ref: \"message\",\n    staticClass: \"vac-message-wrapper\",\n    attrs: {\n      \"id\": _vm.message._id\n    }\n  }, [_vm.showDate ? _c('div', {\n    staticClass: \"vac-card-info vac-card-date\"\n  }, [_vm._v(\" \" + _vm._s(_vm.message.date) + \" \")]) : _vm._e(), _vm.newMessage._id === _vm.message._id ? _c('div', {\n    staticClass: \"vac-line-new\"\n  }, [_vm._v(\" \" + _vm._s(_vm.textMessages.NEW_MESSAGES) + \" \")]) : _vm._e(), _vm.message.system ? _c('div', {\n    staticClass: \"vac-card-info vac-card-system\"\n  }, [_vm._t(\"system-message\", function () {\n    return [_c('format-message', {\n      attrs: {\n        \"content\": _vm.message.content,\n        \"users\": _vm.roomUsers,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions\n      },\n      on: {\n        \"open-user-tag\": _vm.openUserTag\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })];\n  }, null, {\n    message: _vm.message\n  })], 2) : _c('div', {\n    staticClass: \"vac-message-box\",\n    \"class\": {\n      'vac-offset-current': _vm.message.senderId === _vm.currentUserId\n    },\n    on: {\n      \"click\": _vm.selectMessage\n    }\n  }, [_vm._t(\"message\", function () {\n    return [_vm.message.avatar && _vm.message.senderId !== _vm.currentUserId ? _c('div', {\n      staticClass: \"vac-avatar\",\n      style: {\n        'background-image': \"url('\".concat(_vm.message.avatar, \"')\")\n      }\n    }) : _vm._e(), _vm.hasSenderUserAvatar && !_vm.message.avatar ? _c('div', {\n      staticClass: \"vac-avatar-offset\"\n    }) : _vm._e(), _c('div', {\n      staticClass: \"vac-message-container\",\n      \"class\": {\n        'vac-message-container-offset': _vm.messageOffset\n      }\n    }, [_c('div', {\n      staticClass: \"vac-message-card\",\n      \"class\": {\n        'vac-message-highlight': _vm.isMessageHover,\n        'vac-message-current': _vm.message.senderId === _vm.currentUserId,\n        'vac-message-deleted': _vm.message.deleted,\n        'vac-item-clickable': _vm.messageSelectionEnabled,\n        'vac-message-selected': _vm.isMessageSelected\n      },\n      on: {\n        \"mouseover\": _vm.onHoverMessage,\n        \"mouseleave\": _vm.onLeaveMessage\n      }\n    }, [_vm.showUsername ? _c('div', {\n      staticClass: \"vac-text-username\",\n      \"class\": {\n        'vac-username-reply': !_vm.message.deleted && _vm.message.replyMessage\n      }\n    }, [_c('span', [_vm._v(_vm._s(_vm.message.username))])]) : _vm._e(), !_vm.message.deleted && _vm.message.replyMessage ? _c('message-reply', {\n      attrs: {\n        \"message\": _vm.message,\n        \"room-users\": _vm.roomUsers,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    }) : _vm._e(), _vm.message.deleted ? _c('div', [_vm._t(\"deleted-icon\", function () {\n      return [_c('svg-icon', {\n        staticClass: \"vac-icon-deleted\",\n        attrs: {\n          \"name\": \"deleted\"\n        }\n      })];\n    }), _c('span', [_vm._v(_vm._s(_vm.textMessages.MESSAGE_DELETED))])], 2) : !_vm.message.files || !_vm.message.files.length ? _c('format-message', {\n      attrs: {\n        \"content\": _vm.message.content,\n        \"users\": _vm.roomUsers,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions\n      },\n      on: {\n        \"open-user-tag\": _vm.openUserTag\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    }) : !_vm.isAudio || _vm.message.files.length > 1 ? _c('message-files', {\n      attrs: {\n        \"current-user-id\": _vm.currentUserId,\n        \"message\": _vm.message,\n        \"room-users\": _vm.roomUsers,\n        \"text-formatting\": _vm.textFormatting,\n        \"link-options\": _vm.linkOptions,\n        \"message-selection-enabled\": _vm.messageSelectionEnabled\n      },\n      on: {\n        \"open-file\": _vm.openFile,\n        \"open-user-tag\": _vm.openUserTag\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    }) : [_c('audio-player', {\n      attrs: {\n        \"message-id\": _vm.message._id,\n        \"src\": _vm.message.files[0].url,\n        \"message-selection-enabled\": _vm.messageSelectionEnabled\n      },\n      on: {\n        \"update-progress-time\": function updateProgressTime($event) {\n          _vm.progressTime = $event;\n        },\n        \"hover-audio-progress\": function hoverAudioProgress($event) {\n          _vm.hoverAudioProgress = $event;\n        }\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    }), !_vm.message.deleted ? _c('div', {\n      staticClass: \"vac-progress-time\"\n    }, [_vm._v(\" \" + _vm._s(_vm.progressTime) + \" \")]) : _vm._e()], _c('div', {\n      staticClass: \"vac-text-timestamp\"\n    }, [_vm.message.edited && !_vm.message.deleted ? _c('div', {\n      staticClass: \"vac-icon-edited\"\n    }, [_vm._t(\"pencil-icon\", function () {\n      return [_c('svg-icon', {\n        attrs: {\n          \"name\": \"pencil\"\n        }\n      })];\n    })], 2) : _vm._e(), _c('span', [_vm._v(_vm._s(_vm.message.timestamp))]), _vm.isCheckmarkVisible ? _c('span', [_vm._t(\"checkmark-icon\", function () {\n      return [_c('svg-icon', {\n        staticClass: \"vac-icon-check\",\n        attrs: {\n          \"name\": _vm.message.distributed ? 'double-checkmark' : 'checkmark',\n          \"param\": _vm.message.seen ? 'seen' : ''\n        }\n      })];\n    }, null, {\n      message: _vm.message\n    })], 2) : _vm._e()]), _c('message-actions', {\n      attrs: {\n        \"current-user-id\": _vm.currentUserId,\n        \"message\": _vm.message,\n        \"message-actions\": _vm.messageActions,\n        \"show-reaction-emojis\": _vm.showReactionEmojis,\n        \"message-hover\": _vm.messageHover,\n        \"hover-message-id\": _vm.hoverMessageId,\n        \"hover-audio-progress\": _vm.hoverAudioProgress\n      },\n      on: {\n        \"update-message-hover\": function updateMessageHover($event) {\n          _vm.messageHover = $event;\n        },\n        \"update-options-opened\": function updateOptionsOpened($event) {\n          _vm.optionsOpened = $event;\n        },\n        \"update-emoji-opened\": function updateEmojiOpened($event) {\n          _vm.emojiOpened = $event;\n        },\n        \"message-action-handler\": _vm.messageActionHandler,\n        \"send-message-reaction\": _vm.sendMessageReaction\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })], 2), _c('message-reactions', {\n      attrs: {\n        \"current-user-id\": _vm.currentUserId,\n        \"message\": _vm.message\n      },\n      on: {\n        \"send-message-reaction\": _vm.sendMessageReaction\n      }\n    })], 1), _vm._t(\"message-failure\", function () {\n      return [_vm.message.failure && _vm.message.senderId === _vm.currentUserId ? _c('div', {\n        staticClass: \"vac-failure-container vac-svg-button\",\n        \"class\": {\n          'vac-failure-container-avatar': _vm.message.avatar && _vm.message.senderId === _vm.currentUserId\n        },\n        on: {\n          \"click\": function click($event) {\n            return _vm.$emit('open-failed-message', {\n              message: _vm.message\n            });\n          }\n        }\n      }, [_c('div', {\n        staticClass: \"vac-failure-text\"\n      }, [_vm._v(\" ! \")])]) : _vm._e()];\n    }, null, {\n      message: _vm.message\n    }), _vm.message.avatar && _vm.message.senderId === _vm.currentUserId ? _c('div', {\n      staticClass: \"vac-avatar vac-avatar-current\",\n      style: {\n        'background-image': \"url('\".concat(_vm.message.avatar, \"')\")\n      }\n    }) : _vm._e(), _vm.hasCurrentUserAvatar && !_vm.message.avatar ? _c('div', {\n      staticClass: \"vac-avatar-current-offset\"\n    }) : _vm._e()];\n  }, null, {\n    message: _vm.message\n  })], 2)]);\n};\n\nvar RoomMessagevue_type_template_id_8e1a79a8_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/RoomMessage.vue?vue&type=template&id=8e1a79a8&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js\nvar es_array_reduce = __webpack_require__(\"13d5\");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageReply/MessageReply.vue?vue&type=template&id=514045b4&\nvar MessageReplyvue_type_template_id_514045b4_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-reply-message\"\n  }, [_c('div', {\n    staticClass: \"vac-reply-username\"\n  }, [_vm._v(\" \" + _vm._s(_vm.replyUsername) + \" \")]), _vm.isImage ? _c('div', {\n    staticClass: \"vac-image-reply-container\"\n  }, [_c('div', {\n    staticClass: \"vac-message-image vac-message-image-reply\",\n    style: {\n      'background-image': \"url('\".concat(_vm.firstFile.url, \"')\")\n    }\n  })]) : _vm.isVideo ? _c('div', {\n    staticClass: \"vac-video-reply-container\"\n  }, [_c('video', {\n    attrs: {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"controls\": \"\"\n    }\n  }, [_c('source', {\n    attrs: {\n      \"src\": _vm.firstFile.url\n    }\n  })])]) : _vm.isAudio ? _c('audio-player', {\n    attrs: {\n      \"src\": _vm.firstFile.url\n    },\n    on: {\n      \"update-progress-time\": function updateProgressTime($event) {\n        _vm.progressTime = $event;\n      },\n      \"hover-audio-progress\": function hoverAudioProgress($event) {\n        _vm.hoverAudioProgress = $event;\n      }\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }) : _vm.isOtherFile ? _c('div', {\n    staticClass: \"vac-file-container\"\n  }, [_c('div', [_vm._t(\"file-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"file\"\n      }\n    })];\n  })], 2), _c('div', {\n    staticClass: \"vac-text-ellipsis\"\n  }, [_vm._v(\" \" + _vm._s(_vm.firstFile.name) + \" \")]), _vm.firstFile.extension ? _c('div', {\n    staticClass: \"vac-text-ellipsis vac-text-extension\"\n  }, [_vm._v(\" \" + _vm._s(_vm.firstFile.extension) + \" \")]) : _vm._e()]) : _vm._e(), _c('div', {\n    staticClass: \"vac-reply-content\"\n  }, [_c('format-message', {\n    attrs: {\n      \"content\": _vm.message.replyMessage.content,\n      \"users\": _vm.roomUsers,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions,\n      \"reply\": true\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 1)], 1);\n};\n\nvar MessageReplyvue_type_template_id_514045b4_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReply/MessageReply.vue?vue&type=template&id=514045b4&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageReply/MessageReply.vue?vue&type=script&lang=js&\n\n\n\n\nvar MessageReplyvue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    MessageReplyvue_type_script_lang_js_isAudioFile = MessageReplyvue_type_script_lang_js_require.isAudioFile,\n    MessageReplyvue_type_script_lang_js_isImageFile = MessageReplyvue_type_script_lang_js_require.isImageFile,\n    MessageReplyvue_type_script_lang_js_isVideoFile = MessageReplyvue_type_script_lang_js_require.isVideoFile;\n\n/* harmony default export */ var MessageReplyvue_type_script_lang_js_ = ({\n  name: 'MessageReply',\n  components: {\n    AudioPlayer: AudioPlayer,\n    SvgIcon: SvgIcon,\n    FormatMessage: FormatMessage\n  },\n  props: {\n    message: {\n      type: Object,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    roomUsers: {\n      type: Array,\n      required: true\n    }\n  },\n  computed: {\n    replyUsername: function replyUsername() {\n      var senderId = this.message.replyMessage.senderId;\n      var replyUser = this.roomUsers.find(function (user) {\n        return user._id === senderId;\n      });\n      return replyUser ? replyUser.username : '';\n    },\n    firstFile: function firstFile() {\n      var _this$message$replyMe, _this$message$replyMe2;\n\n      return (_this$message$replyMe = this.message.replyMessage) !== null && _this$message$replyMe !== void 0 && (_this$message$replyMe2 = _this$message$replyMe.files) !== null && _this$message$replyMe2 !== void 0 && _this$message$replyMe2.length ? this.message.replyMessage.files[0] : {};\n    },\n    isAudio: function isAudio() {\n      return MessageReplyvue_type_script_lang_js_isAudioFile(this.firstFile);\n    },\n    isImage: function isImage() {\n      return MessageReplyvue_type_script_lang_js_isImageFile(this.firstFile);\n    },\n    isVideo: function isVideo() {\n      return MessageReplyvue_type_script_lang_js_isVideoFile(this.firstFile);\n    },\n    isOtherFile: function isOtherFile() {\n      var _this$message$replyMe3;\n\n      return ((_this$message$replyMe3 = this.message.replyMessage.files) === null || _this$message$replyMe3 === void 0 ? void 0 : _this$message$replyMe3.length) && !this.isAudio && !this.isVideo && !this.isImage;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReply/MessageReply.vue?vue&type=script&lang=js&\n /* harmony default export */ var MessageReply_MessageReplyvue_type_script_lang_js_ = (MessageReplyvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReply/MessageReply.vue\n\n\n\n\n\n/* normalize component */\n\nvar MessageReply_component = normalizeComponent(\n  MessageReply_MessageReplyvue_type_script_lang_js_,\n  MessageReplyvue_type_template_id_514045b4_render,\n  MessageReplyvue_type_template_id_514045b4_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MessageReply = (MessageReply_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageFiles/MessageFiles.vue?vue&type=template&id=ebb72a26&\nvar MessageFilesvue_type_template_id_ebb72a26_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-message-files-container\"\n  }, [_vm._l(_vm.imageVideoFiles, function (file, idx) {\n    return _c('div', {\n      key: idx + 'iv'\n    }, [_c('message-file', {\n      attrs: {\n        \"file\": file,\n        \"current-user-id\": _vm.currentUserId,\n        \"message\": _vm.message,\n        \"index\": idx,\n        \"message-selection-enabled\": _vm.messageSelectionEnabled\n      },\n      on: {\n        \"open-file\": function openFile($event) {\n          return _vm.$emit('open-file', $event);\n        }\n      },\n      scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n        return {\n          key: name,\n          fn: function fn(data) {\n            return [_vm._t(name, null, null, data)];\n          }\n        };\n      })], null, true)\n    })], 1);\n  }), _vm._l(_vm.otherFiles, function (file, idx) {\n    return _c('div', {\n      key: idx + 'a',\n      staticClass: \"vac-file-wrapper\"\n    }, [file.progress >= 0 ? _c('progress-bar', {\n      style: {\n        top: '44px'\n      },\n      attrs: {\n        \"progress\": file.progress\n      }\n    }) : _vm._e(), _c('div', {\n      staticClass: \"vac-file-container\",\n      \"class\": {\n        'vac-file-container-progress': file.progress >= 0\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.openFile($event, file, 'download');\n        }\n      }\n    }, [_c('div', {\n      staticClass: \"vac-svg-button\"\n    }, [_vm._t(\"document-icon\", function () {\n      return [_c('svg-icon', {\n        attrs: {\n          \"name\": \"document\"\n        }\n      })];\n    })], 2), _c('div', {\n      staticClass: \"vac-text-ellipsis\"\n    }, [_vm._v(\" \" + _vm._s(file.name) + \" \")]), file.extension ? _c('div', {\n      staticClass: \"vac-text-ellipsis vac-text-extension\"\n    }, [_vm._v(\" \" + _vm._s(file.extension) + \" \")]) : _vm._e()])], 1);\n  }), _c('format-message', {\n    attrs: {\n      \"content\": _vm.message.content,\n      \"users\": _vm.roomUsers,\n      \"text-formatting\": _vm.textFormatting,\n      \"link-options\": _vm.linkOptions\n    },\n    on: {\n      \"open-user-tag\": function openUserTag($event) {\n        return _vm.$emit('open-user-tag', $event);\n      }\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (i, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  })], 2);\n};\n\nvar MessageFilesvue_type_template_id_ebb72a26_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFiles.vue?vue&type=template&id=ebb72a26&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ProgressBar/ProgressBar.vue?vue&type=template&id=561521ed&\nvar ProgressBarvue_type_template_id_561521ed_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-spinner\",\n      \"appear\": \"\"\n    }\n  }, [_c('div', {\n    ref: \"progress\",\n    staticClass: \"vac-progress-wrapper\"\n  }, [_c('svg', {\n    attrs: {\n      \"height\": _vm.radius * 2,\n      \"width\": _vm.radius * 2\n    }\n  }, [_c('circle', {\n    style: {\n      strokeDashoffset: _vm.strokeDashoffset,\n      strokeLinecap: 'round'\n    },\n    attrs: {\n      \"stroke\": \"rgba(255, 255, 255, 0.7)\",\n      \"stroke-dasharray\": _vm.circumference + ' ' + _vm.circumference,\n      \"stroke-width\": _vm.stroke,\n      \"fill\": \"transparent\",\n      \"r\": _vm.normalizedRadius,\n      \"cx\": _vm.radius,\n      \"cy\": _vm.radius\n    }\n  })]), _c('div', {\n    staticClass: \"vac-progress-content\",\n    style: {\n      height: _vm.radius * 2 - 19 + 'px',\n      width: _vm.radius * 2 - 19 + 'px'\n    }\n  }, [_c('div', {\n    staticClass: \"vac-progress-text\"\n  }, [_vm._v(\" \" + _vm._s(_vm.progress)), _c('span', {\n    staticClass: \"vac-progress-pourcent\"\n  }, [_vm._v(\"%\")])])])])]);\n};\n\nvar ProgressBarvue_type_template_id_561521ed_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/components/ProgressBar/ProgressBar.vue?vue&type=template&id=561521ed&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ProgressBar/ProgressBar.vue?vue&type=script&lang=js&\n/* harmony default export */ var ProgressBarvue_type_script_lang_js_ = ({\n  name: 'ProgressBar',\n  props: {\n    progress: {\n      type: Number,\n      \"default\": 0\n    }\n  },\n  data: function data() {\n    var radius = 35;\n    var stroke = 4;\n    var normalizedRadius = radius - stroke * 2;\n    var circumference = normalizedRadius * 2 * Math.PI;\n    return {\n      radius: radius,\n      stroke: stroke,\n      normalizedRadius: normalizedRadius,\n      circumference: circumference\n    };\n  },\n  computed: {\n    strokeDashoffset: function strokeDashoffset() {\n      return this.circumference - this.progress / 100 * this.circumference;\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/components/ProgressBar/ProgressBar.vue?vue&type=script&lang=js&\n /* harmony default export */ var ProgressBar_ProgressBarvue_type_script_lang_js_ = (ProgressBarvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/ProgressBar/ProgressBar.vue\n\n\n\n\n\n/* normalize component */\n\nvar ProgressBar_component = normalizeComponent(\n  ProgressBar_ProgressBarvue_type_script_lang_js_,\n  ProgressBarvue_type_template_id_561521ed_render,\n  ProgressBarvue_type_template_id_561521ed_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var ProgressBar = (ProgressBar_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageFiles/MessageFile/MessageFile.vue?vue&type=template&id=442d693d&\nvar MessageFilevue_type_template_id_442d693d_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-message-file-container\"\n  }, [_vm.isImage ? _c('div', {\n    ref: 'imageRef' + _vm.index,\n    staticClass: \"vac-message-image-container\",\n    on: {\n      \"mouseover\": function mouseover($event) {\n        _vm.imageHover = true;\n      },\n      \"mouseleave\": function mouseleave($event) {\n        _vm.imageHover = false;\n      },\n      \"click\": function click($event) {\n        return _vm.openFile($event, 'preview');\n      }\n    }\n  }, [_vm.file.progress >= 0 ? _c('progress-bar', {\n    style: {\n      top: \"\".concat(_vm.imageResponsive.loaderTop, \"px\")\n    },\n    attrs: {\n      \"progress\": _vm.file.progress\n    }\n  }) : _c('loader', {\n    style: {\n      top: \"\".concat(_vm.imageResponsive.loaderTop, \"px\")\n    },\n    attrs: {\n      \"show\": _vm.isImageLoading\n    },\n    scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (idx, name) {\n      return {\n        key: name,\n        fn: function fn(data) {\n          return [_vm._t(name, null, null, data)];\n        }\n      };\n    })], null, true)\n  }), _c('div', {\n    staticClass: \"vac-message-image\",\n    \"class\": {\n      'vac-blur-loading': _vm.isImageLoading && _vm.message.senderId === _vm.currentUserId\n    },\n    style: {\n      'background-image': \"url('\".concat(_vm.isImageLoading ? _vm.file.preview || _vm.file.url : _vm.file.url, \"')\"),\n      'max-height': \"\".concat(_vm.imageResponsive.maxHeight, \"px\")\n    }\n  }, [_c('transition', {\n    attrs: {\n      \"name\": \"vac-fade-image\"\n    }\n  }, [!_vm.messageSelectionEnabled && _vm.imageHover && !_vm.isImageLoading ? _c('div', {\n    staticClass: \"vac-image-buttons\"\n  }, [_c('div', {\n    staticClass: \"vac-svg-button vac-button-view\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.openFile($event, 'preview');\n      }\n    }\n  }, [_vm._t(\"eye-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"eye\"\n      }\n    })];\n  })], 2), _c('div', {\n    staticClass: \"vac-svg-button vac-button-download\",\n    on: {\n      \"click\": function click($event) {\n        return _vm.openFile($event, 'download');\n      }\n    }\n  }, [_vm._t(\"document-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"document\"\n      }\n    })];\n  })], 2)]) : _vm._e()])], 1)], 1) : _vm.isVideo ? _c('div', {\n    staticClass: \"vac-video-container\",\n    on: {\n      \"click\": function click($event) {\n        $event.preventDefault();\n        return _vm.openFile('preview');\n      }\n    }\n  }, [_vm.file.progress >= 0 ? _c('progress-bar', {\n    attrs: {\n      \"progress\": _vm.file.progress\n    }\n  }) : _vm._e(), _c('video', {\n    attrs: {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"controls\": \"\"\n    }\n  }, [_c('source', {\n    attrs: {\n      \"src\": _vm.file.url\n    }\n  })])], 1) : _vm._e()]);\n};\n\nvar MessageFilevue_type_template_id_442d693d_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFile/MessageFile.vue?vue&type=template&id=442d693d&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageFiles/MessageFile/MessageFile.vue?vue&type=script&lang=js&\n\n\n\n\nvar MessageFilevue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    MessageFilevue_type_script_lang_js_isImageFile = MessageFilevue_type_script_lang_js_require.isImageFile,\n    MessageFilevue_type_script_lang_js_isVideoFile = MessageFilevue_type_script_lang_js_require.isVideoFile;\n\n/* harmony default export */ var MessageFilevue_type_script_lang_js_ = ({\n  name: 'MessageFile',\n  components: {\n    SvgIcon: SvgIcon,\n    Loader: Loader,\n    ProgressBar: ProgressBar\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    message: {\n      type: Object,\n      required: true\n    },\n    file: {\n      type: Object,\n      required: true\n    },\n    index: {\n      type: Number,\n      required: true\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['open-file'],\n  data: function data() {\n    return {\n      imageResponsive: '',\n      imageLoading: false,\n      imageHover: false\n    };\n  },\n  computed: {\n    isImageLoading: function isImageLoading() {\n      return this.file.url.indexOf('blob:http') !== -1 || this.imageLoading;\n    },\n    isImage: function isImage() {\n      return MessageFilevue_type_script_lang_js_isImageFile(this.file);\n    },\n    isVideo: function isVideo() {\n      return MessageFilevue_type_script_lang_js_isVideoFile(this.file);\n    }\n  },\n  watch: {\n    file: {\n      immediate: true,\n      handler: function handler() {\n        this.checkImgLoad();\n      }\n    }\n  },\n  mounted: function mounted() {\n    var ref = this.$refs['imageRef' + this.index];\n\n    if (ref) {\n      this.imageResponsive = {\n        maxHeight: ref.clientWidth - 18,\n        loaderTop: ref.clientHeight / 2 - 9\n      };\n    }\n  },\n  methods: {\n    checkImgLoad: function checkImgLoad() {\n      var _this = this;\n\n      if (!MessageFilevue_type_script_lang_js_isImageFile(this.file)) return;\n      this.imageLoading = true;\n      var image = new Image();\n      image.src = this.file.url;\n      image.addEventListener('load', function () {\n        return _this.imageLoading = false;\n      });\n    },\n    openFile: function openFile(event, action) {\n      if (!this.messageSelectionEnabled) {\n        event.stopPropagation();\n        this.$emit('open-file', {\n          file: this.file,\n          action: action\n        });\n      }\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFile/MessageFile.vue?vue&type=script&lang=js&\n /* harmony default export */ var MessageFile_MessageFilevue_type_script_lang_js_ = (MessageFilevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFile/MessageFile.vue\n\n\n\n\n\n/* normalize component */\n\nvar MessageFile_component = normalizeComponent(\n  MessageFile_MessageFilevue_type_script_lang_js_,\n  MessageFilevue_type_template_id_442d693d_render,\n  MessageFilevue_type_template_id_442d693d_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MessageFile = (MessageFile_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageFiles/MessageFiles.vue?vue&type=script&lang=js&\n\n\n\n\n\nvar MessageFilesvue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    isImageVideoFile = MessageFilesvue_type_script_lang_js_require.isImageVideoFile;\n\n/* harmony default export */ var MessageFilesvue_type_script_lang_js_ = ({\n  name: 'MessageFiles',\n  components: {\n    SvgIcon: SvgIcon,\n    FormatMessage: FormatMessage,\n    ProgressBar: ProgressBar,\n    MessageFile: MessageFile\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    message: {\n      type: Object,\n      required: true\n    },\n    roomUsers: {\n      type: Array,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['open-file', 'open-user-tag'],\n  computed: {\n    imageVideoFiles: function imageVideoFiles() {\n      return this.message.files.filter(function (file) {\n        return isImageVideoFile(file);\n      });\n    },\n    otherFiles: function otherFiles() {\n      return this.message.files.filter(function (file) {\n        return !isImageVideoFile(file);\n      });\n    }\n  },\n  methods: {\n    openFile: function openFile(event, file, action) {\n      if (!this.messageSelectionEnabled) {\n        event.stopPropagation();\n        this.$emit('open-file', {\n          file: file,\n          action: action\n        });\n      }\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFiles.vue?vue&type=script&lang=js&\n /* harmony default export */ var MessageFiles_MessageFilesvue_type_script_lang_js_ = (MessageFilesvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageFiles/MessageFiles.vue\n\n\n\n\n\n/* normalize component */\n\nvar MessageFiles_component = normalizeComponent(\n  MessageFiles_MessageFilesvue_type_script_lang_js_,\n  MessageFilesvue_type_template_id_ebb72a26_render,\n  MessageFilesvue_type_template_id_ebb72a26_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MessageFiles = (MessageFiles_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageActions/MessageActions.vue?vue&type=template&id=27f1a961&\nvar MessageActionsvue_type_template_id_27f1a961_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    staticClass: \"vac-message-actions-wrapper\"\n  }, [_c('div', {\n    staticClass: \"vac-options-container\",\n    style: {\n      display: _vm.hoverAudioProgress ? 'none' : 'initial',\n      width: _vm.filteredMessageActions.length && _vm.showReactionEmojis ? '70px' : '45px'\n    }\n  }, [_c('transition-group', {\n    attrs: {\n      \"name\": \"vac-slide-left\",\n      \"tag\": \"span\"\n    }\n  }, [_vm.isMessageActions || _vm.isMessageReactions ? _c('div', {\n    key: \"1\",\n    staticClass: \"vac-blur-container\",\n    \"class\": {\n      'vac-options-me': _vm.message.senderId === _vm.currentUserId\n    }\n  }) : _vm._e(), _vm.isMessageActions ? _c('div', {\n    key: \"2\",\n    ref: \"actionIcon\",\n    staticClass: \"vac-svg-button vac-message-options\",\n    on: {\n      \"click\": _vm.openOptions\n    }\n  }, [_vm._t(\"dropdown-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"dropdown\",\n        \"param\": \"message\"\n      }\n    })];\n  })], 2) : _vm._e(), _vm.isMessageReactions ? _c('div', {\n    directives: [{\n      name: \"click-outside\",\n      rawName: \"v-click-outside\",\n      value: _vm.closeEmoji,\n      expression: \"closeEmoji\"\n    }],\n    key: \"3\"\n  }, [_vm._t(\"emoji-picker\", function () {\n    return [_c('emoji-picker-container', {\n      staticClass: \"vac-message-emojis\",\n      style: {\n        right: _vm.isMessageActions ? '30px' : '5px'\n      },\n      attrs: {\n        \"emoji-opened\": _vm.emojiOpened,\n        \"emoji-reaction\": true,\n        \"position-right\": _vm.message.senderId === _vm.currentUserId\n      },\n      on: {\n        \"add-emoji\": _vm.sendMessageReaction,\n        \"open-emoji\": _vm.openEmoji\n      },\n      scopedSlots: _vm._u([{\n        key: \"emoji-picker-icon\",\n        fn: function fn() {\n          return [_vm._t(\"emoji-picker-reaction-icon\")];\n        },\n        proxy: true\n      }], null, true)\n    })];\n  }, {\n    \"addEmoji\": _vm.sendMessageReaction\n  }, {\n    emojiOpened: _vm.emojiOpened\n  })], 2) : _vm._e()])], 1), _vm.filteredMessageActions.length ? _c('transition', {\n    attrs: {\n      \"name\": _vm.message.senderId === _vm.currentUserId ? 'vac-slide-left' : 'vac-slide-right'\n    }\n  }, [_vm.optionsOpened ? _c('div', {\n    directives: [{\n      name: \"click-outside\",\n      rawName: \"v-click-outside\",\n      value: _vm.closeOptions,\n      expression: \"closeOptions\"\n    }],\n    ref: \"menuOptions\",\n    staticClass: \"vac-menu-options\",\n    \"class\": {\n      'vac-menu-left': _vm.message.senderId !== _vm.currentUserId\n    },\n    style: {\n      top: \"\".concat(_vm.menuOptionsTop, \"px\")\n    }\n  }, [_c('div', {\n    staticClass: \"vac-menu-list\"\n  }, _vm._l(_vm.filteredMessageActions, function (action) {\n    return _c('div', {\n      key: action.name\n    }, [_c('div', {\n      staticClass: \"vac-menu-item\",\n      on: {\n        \"click\": function click($event) {\n          return _vm.messageActionHandler(action);\n        }\n      }\n    }, [_vm._v(\" \" + _vm._s(action.title) + \" \")])]);\n  }), 0)]) : _vm._e()]) : _vm._e()], 1);\n};\n\nvar MessageActionsvue_type_template_id_27f1a961_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageActions/MessageActions.vue?vue&type=template&id=27f1a961&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageActions/MessageActions.vue?vue&type=script&lang=js&\n\n\n\n/* harmony default export */ var MessageActionsvue_type_script_lang_js_ = ({\n  name: 'MessageActions',\n  components: {\n    SvgIcon: SvgIcon,\n    EmojiPickerContainer: EmojiPickerContainer\n  },\n  directives: {\n    clickOutside: v_click_outside_umd_default.a.directive\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    message: {\n      type: Object,\n      required: true\n    },\n    messageActions: {\n      type: Array,\n      required: true\n    },\n    showReactionEmojis: {\n      type: Boolean,\n      required: true\n    },\n    messageHover: {\n      type: Boolean,\n      required: true\n    },\n    hoverMessageId: {\n      type: [String, Number],\n      \"default\": null\n    },\n    hoverAudioProgress: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: ['update-emoji-opened', 'update-options-opened', 'update-message-hover', 'message-action-handler', 'send-message-reaction'],\n  data: function data() {\n    return {\n      menuOptionsTop: 0,\n      optionsOpened: false,\n      optionsClosing: false,\n      emojiOpened: false\n    };\n  },\n  computed: {\n    isMessageActions: function isMessageActions() {\n      return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;\n    },\n    isMessageReactions: function isMessageReactions() {\n      return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;\n    },\n    filteredMessageActions: function filteredMessageActions() {\n      return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter(function (message) {\n        return !message.onlyMe;\n      });\n    }\n  },\n  watch: {\n    emojiOpened: function emojiOpened(val) {\n      this.$emit('update-emoji-opened', val);\n      if (val) this.optionsOpened = false;\n    },\n    optionsOpened: function optionsOpened(val) {\n      this.$emit('update-options-opened', val);\n    }\n  },\n  methods: {\n    openOptions: function openOptions() {\n      var _this = this;\n\n      if (this.optionsClosing) return;\n      this.optionsOpened = !this.optionsOpened;\n      if (!this.optionsOpened) return;\n      setTimeout(function () {\n        var roomFooterRef = document.getElementById('room-footer');\n\n        if (!roomFooterRef || !_this.$refs.menuOptions || !_this.$refs.actionIcon) {\n          return;\n        }\n\n        var menuOptionsTop = _this.$refs.menuOptions.getBoundingClientRect().height;\n\n        var actionIconTop = _this.$refs.actionIcon.getBoundingClientRect().top;\n\n        var roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n        var optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;\n        if (optionsTopPosition) _this.menuOptionsTop = 30;else _this.menuOptionsTop = -menuOptionsTop;\n      });\n    },\n    closeOptions: function closeOptions() {\n      var _this2 = this;\n\n      this.optionsOpened = false;\n      this.optionsClosing = true;\n      this.updateMessageHover();\n      setTimeout(function () {\n        return _this2.optionsClosing = false;\n      }, 100);\n    },\n    openEmoji: function openEmoji() {\n      this.emojiOpened = !this.emojiOpened;\n    },\n    closeEmoji: function closeEmoji() {\n      this.emojiOpened = false;\n      this.updateMessageHover();\n    },\n    updateMessageHover: function updateMessageHover() {\n      if (this.hoverMessageId !== this.message._id) {\n        this.$emit('update-message-hover', false);\n      }\n    },\n    messageActionHandler: function messageActionHandler(action) {\n      this.closeOptions();\n      this.$emit('message-action-handler', action);\n    },\n    sendMessageReaction: function sendMessageReaction(emoji, reaction) {\n      this.$emit('send-message-reaction', {\n        emoji: emoji,\n        reaction: reaction\n      });\n      this.closeEmoji();\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageActions/MessageActions.vue?vue&type=script&lang=js&\n /* harmony default export */ var MessageActions_MessageActionsvue_type_script_lang_js_ = (MessageActionsvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageActions/MessageActions.vue\n\n\n\n\n\n/* normalize component */\n\nvar MessageActions_component = normalizeComponent(\n  MessageActions_MessageActionsvue_type_script_lang_js_,\n  MessageActionsvue_type_template_id_27f1a961_render,\n  MessageActionsvue_type_template_id_27f1a961_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MessageActions = (MessageActions_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageReactions/MessageReactions.vue?vue&type=template&id=3fc44a38&\nvar MessageReactionsvue_type_template_id_3fc44a38_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return !_vm.message.deleted ? _c('transition-group', {\n    attrs: {\n      \"name\": \"vac-slide-left\",\n      \"tag\": \"span\"\n    }\n  }, _vm._l(_vm.message.reactions, function (reaction, key) {\n    return _c('button', {\n      directives: [{\n        name: \"show\",\n        rawName: \"v-show\",\n        value: reaction.length,\n        expression: \"reaction.length\"\n      }],\n      key: key + 0,\n      staticClass: \"vac-button-reaction\",\n      \"class\": {\n        'vac-reaction-me': reaction.indexOf(_vm.currentUserId) !== -1\n      },\n      style: {\n        \"float\": _vm.message.senderId === _vm.currentUserId ? 'right' : 'left'\n      },\n      on: {\n        \"click\": function click($event) {\n          return _vm.sendMessageReaction({\n            unicode: key\n          }, reaction);\n        }\n      }\n    }, [_vm._v(\" \" + _vm._s(key)), _c('span', [_vm._v(_vm._s(reaction.length))])]);\n  }), 0) : _vm._e();\n};\n\nvar MessageReactionsvue_type_template_id_3fc44a38_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReactions/MessageReactions.vue?vue&type=template&id=3fc44a38&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/MessageReactions/MessageReactions.vue?vue&type=script&lang=js&\n/* harmony default export */ var MessageReactionsvue_type_script_lang_js_ = ({\n  name: 'MessageReactions',\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    message: {\n      type: Object,\n      required: true\n    }\n  },\n  emits: ['send-message-reaction'],\n  methods: {\n    sendMessageReaction: function sendMessageReaction(emoji, reaction) {\n      this.$emit('send-message-reaction', {\n        emoji: emoji,\n        reaction: reaction\n      });\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReactions/MessageReactions.vue?vue&type=script&lang=js&\n /* harmony default export */ var MessageReactions_MessageReactionsvue_type_script_lang_js_ = (MessageReactionsvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/MessageReactions/MessageReactions.vue\n\n\n\n\n\n/* normalize component */\n\nvar MessageReactions_component = normalizeComponent(\n  MessageReactions_MessageReactionsvue_type_script_lang_js_,\n  MessageReactionsvue_type_template_id_3fc44a38_render,\n  MessageReactionsvue_type_template_id_3fc44a38_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MessageReactions = (MessageReactions_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/RoomMessage/RoomMessage.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n\n\n\nvar RoomMessagevue_type_script_lang_js_require = __webpack_require__(\"4c1d\"),\n    messagesValidation = RoomMessagevue_type_script_lang_js_require.messagesValidation;\n\nvar _require2 = __webpack_require__(\"bd43\"),\n    RoomMessagevue_type_script_lang_js_isAudioFile = _require2.isAudioFile;\n\n/* harmony default export */ var RoomMessagevue_type_script_lang_js_ = ({\n  name: 'RoomMessage',\n  components: {\n    SvgIcon: SvgIcon,\n    FormatMessage: FormatMessage,\n    AudioPlayer: AudioPlayer,\n    MessageReply: MessageReply,\n    MessageFiles: MessageFiles,\n    MessageActions: MessageActions,\n    MessageReactions: MessageReactions\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    index: {\n      type: Number,\n      required: true\n    },\n    message: {\n      type: Object,\n      required: true\n    },\n    messages: {\n      type: Array,\n      required: true\n    },\n    editedMessageId: {\n      type: [String, Number],\n      \"default\": null\n    },\n    roomUsers: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    messageActions: {\n      type: Array,\n      required: true\n    },\n    newMessages: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    showReactionEmojis: {\n      type: Boolean,\n      required: true\n    },\n    showNewMessagesDivider: {\n      type: Boolean,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    usernameOptions: {\n      type: Object,\n      required: true\n    },\n    messageSelectionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    selectedMessages: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    }\n  },\n  emits: ['message-added', 'open-file', 'open-user-tag', 'open-failed-message', 'message-action-handler', 'send-message-reaction', 'select-message', 'unselect-message'],\n  data: function data() {\n    return {\n      hoverMessageId: null,\n      messageHover: false,\n      optionsOpened: false,\n      emojiOpened: false,\n      newMessage: {},\n      progressTime: '- : -',\n      hoverAudioProgress: false\n    };\n  },\n  computed: {\n    showUsername: function showUsername() {\n      if (!this.usernameOptions.currentUser && this.message.senderId === this.currentUserId) {\n        return false;\n      } else {\n        return this.roomUsers.length >= this.usernameOptions.minUsers;\n      }\n    },\n    showDate: function showDate() {\n      return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;\n    },\n    messageOffset: function messageOffset() {\n      return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;\n    },\n    isMessageHover: function isMessageHover() {\n      return this.editedMessageId === this.message._id || this.hoverMessageId === this.message._id;\n    },\n    isAudio: function isAudio() {\n      var _this$message$files;\n\n      return (_this$message$files = this.message.files) === null || _this$message$files === void 0 ? void 0 : _this$message$files.some(function (file) {\n        return RoomMessagevue_type_script_lang_js_isAudioFile(file);\n      });\n    },\n    isCheckmarkVisible: function isCheckmarkVisible() {\n      return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);\n    },\n    hasCurrentUserAvatar: function hasCurrentUserAvatar() {\n      var _this = this;\n\n      return this.messages.some(function (message) {\n        return message.senderId === _this.currentUserId && message.avatar;\n      });\n    },\n    hasSenderUserAvatar: function hasSenderUserAvatar() {\n      var _this2 = this;\n\n      return this.messages.some(function (message) {\n        return message.senderId !== _this2.currentUserId && message.avatar;\n      });\n    },\n    isMessageSelected: function isMessageSelected() {\n      var _this3 = this;\n\n      return this.messageSelectionEnabled && !!this.selectedMessages.find(function (message) {\n        return message._id === _this3.message._id;\n      });\n    }\n  },\n  watch: {\n    newMessages: {\n      immediate: true,\n      deep: true,\n      handler: function handler(val) {\n        if (!val.length || !this.showNewMessagesDivider) {\n          this.newMessage = {};\n          return;\n        }\n\n        this.newMessage = val.reduce(function (res, obj) {\n          return obj.index < res.index ? obj : res;\n        });\n      }\n    },\n    messageSelectionEnabled: function messageSelectionEnabled() {\n      this.resetMessageHover();\n    }\n  },\n  mounted: function mounted() {\n    messagesValidation(this.message);\n    this.$emit('message-added', {\n      message: this.message,\n      index: this.index,\n      ref: this.$refs.message\n    });\n  },\n  methods: {\n    onHoverMessage: function onHoverMessage() {\n      if (!this.messageSelectionEnabled) {\n        this.messageHover = true;\n        if (this.canEditMessage()) this.hoverMessageId = this.message._id;\n      }\n    },\n    canEditMessage: function canEditMessage() {\n      return !this.message.deleted;\n    },\n    onLeaveMessage: function onLeaveMessage() {\n      if (!this.messageSelectionEnabled) {\n        if (!this.optionsOpened && !this.emojiOpened) this.messageHover = false;\n        this.hoverMessageId = null;\n      }\n    },\n    resetMessageHover: function resetMessageHover() {\n      this.messageHover = false;\n      this.hoverMessageId = null;\n    },\n    openFile: function openFile(file) {\n      this.$emit('open-file', {\n        message: this.message,\n        file: file\n      });\n    },\n    openUserTag: function openUserTag(user) {\n      this.$emit('open-user-tag', {\n        user: user\n      });\n    },\n    messageActionHandler: function messageActionHandler(action) {\n      var _this4 = this;\n\n      this.resetMessageHover();\n      setTimeout(function () {\n        _this4.$emit('message-action-handler', {\n          action: action,\n          message: _this4.message\n        });\n      }, 300);\n    },\n    sendMessageReaction: function sendMessageReaction(_ref) {\n      var emoji = _ref.emoji,\n          reaction = _ref.reaction;\n      this.$emit('send-message-reaction', {\n        messageId: this.message._id,\n        reaction: emoji,\n        remove: reaction && reaction.indexOf(this.currentUserId) !== -1\n      });\n      this.messageHover = false;\n    },\n    selectMessage: function selectMessage() {\n      if (this.messageSelectionEnabled) {\n        if (this.isMessageSelected) {\n          this.$emit('unselect-message', this.message._id);\n        } else {\n          this.$emit('select-message', this.message);\n        }\n      }\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/RoomMessage.vue?vue&type=script&lang=js&\n /* harmony default export */ var RoomMessage_RoomMessagevue_type_script_lang_js_ = (RoomMessagevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/RoomMessage/RoomMessage.vue\n\n\n\n\n\n/* normalize component */\n\nvar RoomMessage_component = normalizeComponent(\n  RoomMessage_RoomMessagevue_type_script_lang_js_,\n  RoomMessagevue_type_template_id_8e1a79a8_render,\n  RoomMessagevue_type_template_id_8e1a79a8_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var RoomMessage = (RoomMessage_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/Room/Room.vue?vue&type=script&lang=js&\n\n\n\n\n\n/* harmony default export */ var Roomvue_type_script_lang_js_ = ({\n  name: 'Room',\n  components: {\n    Loader: Loader,\n    SvgIcon: SvgIcon,\n    RoomHeader: RoomHeader,\n    RoomFooter: RoomFooter,\n    RoomMessage: RoomMessage\n  },\n  props: {\n    currentUserId: {\n      type: [String, Number],\n      required: true\n    },\n    textMessages: {\n      type: Object,\n      required: true\n    },\n    singleRoom: {\n      type: Boolean,\n      required: true\n    },\n    showRoomsList: {\n      type: Boolean,\n      required: true\n    },\n    isMobile: {\n      type: Boolean,\n      required: true\n    },\n    rooms: {\n      type: Array,\n      required: true\n    },\n    roomId: {\n      type: [String, Number],\n      required: true\n    },\n    loadFirstRoom: {\n      type: Boolean,\n      required: true\n    },\n    messages: {\n      type: Array,\n      required: true\n    },\n    roomMessage: {\n      type: String,\n      \"default\": null\n    },\n    messagesLoaded: {\n      type: Boolean,\n      required: true\n    },\n    menuActions: {\n      type: Array,\n      required: true\n    },\n    messageActions: {\n      type: Array,\n      required: true\n    },\n    messageSelectionActions: {\n      type: Array,\n      required: true\n    },\n    autoScroll: {\n      type: Object,\n      required: true\n    },\n    showSendIcon: {\n      type: Boolean,\n      required: true\n    },\n    showFiles: {\n      type: Boolean,\n      required: true\n    },\n    showAudio: {\n      type: Boolean,\n      required: true\n    },\n    audioBitRate: {\n      type: Number,\n      required: true\n    },\n    audioSampleRate: {\n      type: Number,\n      required: true\n    },\n    showEmojis: {\n      type: Boolean,\n      required: true\n    },\n    showReactionEmojis: {\n      type: Boolean,\n      required: true\n    },\n    showNewMessagesDivider: {\n      type: Boolean,\n      required: true\n    },\n    showFooter: {\n      type: Boolean,\n      required: true\n    },\n    acceptedFiles: {\n      type: String,\n      required: true\n    },\n    textFormatting: {\n      type: Object,\n      required: true\n    },\n    linkOptions: {\n      type: Object,\n      required: true\n    },\n    loadingRooms: {\n      type: Boolean,\n      required: true\n    },\n    roomInfoEnabled: {\n      type: Boolean,\n      required: true\n    },\n    textareaActionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    textareaAutoFocus: {\n      type: Boolean,\n      required: true\n    },\n    userTagsEnabled: {\n      type: Boolean,\n      required: true\n    },\n    emojisSuggestionEnabled: {\n      type: Boolean,\n      required: true\n    },\n    scrollDistance: {\n      type: Number,\n      required: true\n    },\n    templatesText: {\n      type: Array,\n      \"default\": null\n    },\n    usernameOptions: {\n      type: Object,\n      required: true\n    }\n  },\n  emits: ['toggle-rooms-list', 'room-info', 'menu-action-handler', 'message-selection-action-handler', 'edit-message', 'send-message', 'delete-message', 'message-action-handler', 'fetch-messages', 'send-message-reaction', 'typing-message', 'open-file', 'open-user-tag', 'open-failed-message', 'textarea-action-handler'],\n  data: function data() {\n    return {\n      editedMessageId: null,\n      initReplyMessage: null,\n      initEditMessage: null,\n      infiniteState: null,\n      loadingMessages: false,\n      observer: null,\n      showLoader: true,\n      loadingMoreMessages: false,\n      scrollIcon: false,\n      scrollMessagesCount: 0,\n      newMessages: [],\n      messageSelectionEnabled: false,\n      selectedMessages: []\n    };\n  },\n  computed: {\n    room: function room() {\n      var _this = this;\n\n      return this.rooms.find(function (room) {\n        return room.roomId === _this.roomId;\n      }) || {};\n    },\n    showNoMessages: function showNoMessages() {\n      return this.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;\n    },\n    showNoRoom: function showNoRoom() {\n      var noRoomSelected = !this.rooms.length && !this.loadingRooms || !this.roomId && !this.loadFirstRoom;\n\n      if (noRoomSelected) {\n        this.loadingMessages = false;\n        /* eslint-disable-line vue/no-side-effects-in-computed-properties */\n      }\n\n      return noRoomSelected;\n    },\n    showMessagesStarted: function showMessagesStarted() {\n      return this.messages.length && this.messagesLoaded;\n    }\n  },\n  watch: {\n    loadingMessages: function loadingMessages(val) {\n      var _this2 = this;\n\n      if (val) {\n        this.infiniteState = null;\n      } else {\n        if (this.infiniteState) this.infiniteState.loaded();\n        setTimeout(function () {\n          return _this2.initIntersectionObserver();\n        });\n      }\n    },\n    roomId: function roomId() {\n      this.onRoomChanged();\n    },\n    messages: {\n      deep: true,\n      handler: function handler(newVal, oldVal) {\n        var _this3 = this;\n\n        newVal.forEach(function (message, i) {\n          if (_this3.showNewMessagesDivider && !message.seen && message.senderId !== _this3.currentUserId) {\n            _this3.newMessages.push({\n              _id: message._id,\n              index: i\n            });\n          }\n        });\n\n        if ((oldVal === null || oldVal === void 0 ? void 0 : oldVal.length) === (newVal === null || newVal === void 0 ? void 0 : newVal.length) - 1) {\n          this.newMessages = [];\n        }\n\n        if (this.infiniteState) {\n          this.infiniteState.loaded();\n        }\n\n        setTimeout(function () {\n          return _this3.loadingMoreMessages = false;\n        });\n      }\n    },\n    messagesLoaded: function messagesLoaded(val) {\n      if (val) this.loadingMessages = false;\n      if (this.infiniteState) this.infiniteState.complete();\n    }\n  },\n  mounted: function mounted() {\n    this.newMessages = [];\n  },\n  methods: {\n    initIntersectionObserver: function initIntersectionObserver() {\n      var _this4 = this;\n\n      if (this.observer) {\n        this.showLoader = true;\n        this.observer.disconnect();\n      }\n\n      var loader = document.getElementById('infinite-loader-messages');\n\n      if (loader) {\n        var options = {\n          root: document.getElementById('messages-list'),\n          rootMargin: \"\".concat(this.scrollDistance, \"px\"),\n          threshold: 0\n        };\n        this.observer = new IntersectionObserver(function (entries) {\n          if (entries[0].isIntersecting) {\n            _this4.loadMoreMessages();\n          }\n        }, options);\n        this.observer.observe(loader);\n      }\n    },\n    preventTopScroll: function preventTopScroll() {\n      var _this5 = this;\n\n      var container = this.$refs.scrollContainer;\n      var prevScrollHeight = container.scrollHeight;\n      var observer = new ResizeObserver(function (_) {\n        if (container.scrollHeight !== prevScrollHeight) {\n          if (_this5.$refs.scrollContainer) {\n            _this5.$refs.scrollContainer.scrollTo({\n              top: container.scrollHeight - prevScrollHeight\n            });\n\n            observer.disconnect();\n          }\n        }\n      });\n\n      for (var i = 0; i < container.children.length; i++) {\n        observer.observe(container.children[i]);\n      }\n    },\n    touchStart: function touchStart(touchEvent) {\n      var _this6 = this;\n\n      if (this.singleRoom) return;\n\n      if (touchEvent.changedTouches.length === 1) {\n        var posXStart = touchEvent.changedTouches[0].clientX;\n        var posYStart = touchEvent.changedTouches[0].clientY;\n        addEventListener('touchend', function (touchEvent) {\n          return _this6.touchEnd(touchEvent, posXStart, posYStart);\n        }, {\n          once: true\n        });\n      }\n    },\n    touchEnd: function touchEnd(touchEvent, posXStart, posYStart) {\n      if (touchEvent.changedTouches.length === 1) {\n        var posXEnd = touchEvent.changedTouches[0].clientX;\n        var posYEnd = touchEvent.changedTouches[0].clientY;\n        var swippedRight = posXEnd - posXStart > 100;\n        var swippedVertically = Math.abs(posYEnd - posYStart) > 50;\n\n        if (swippedRight && !swippedVertically) {\n          this.$emit('toggle-rooms-list');\n        }\n      }\n    },\n    onRoomChanged: function onRoomChanged() {\n      var _this7 = this;\n\n      this.loadingMessages = true;\n      this.scrollIcon = false;\n      this.scrollMessagesCount = 0;\n      this.resetMessageSelection();\n\n      if (!this.messages.length && this.messagesLoaded) {\n        this.loadingMessages = false;\n      }\n\n      var unwatch = this.$watch(function () {\n        return _this7.messages;\n      }, function (val) {\n        if (!val || !val.length) return;\n        var element = _this7.$refs.scrollContainer;\n        if (!element) return;\n        unwatch();\n        setTimeout(function () {\n          element.scrollTo({\n            top: element.scrollHeight\n          });\n          _this7.loadingMessages = false;\n        });\n      });\n    },\n    resetMessageSelection: function resetMessageSelection() {\n      this.messageSelectionEnabled = false;\n      this.selectedMessages = [];\n    },\n    selectMessage: function selectMessage(message) {\n      this.selectedMessages.push(message);\n    },\n    unselectMessage: function unselectMessage(messageId) {\n      this.selectedMessages = this.selectedMessages.filter(function (message) {\n        return message._id !== messageId;\n      });\n    },\n    onMessageAdded: function onMessageAdded(_ref) {\n      var _this8 = this;\n\n      var message = _ref.message,\n          index = _ref.index,\n          ref = _ref.ref;\n      if (index !== this.messages.length - 1) return;\n      var autoScrollOffset = ref.offsetHeight + 60;\n      setTimeout(function () {\n        var scrolledUp = _this8.getBottomScroll(_this8.$refs.scrollContainer) > autoScrollOffset;\n\n        if (message.senderId === _this8.currentUserId) {\n          if (scrolledUp) {\n            if (_this8.autoScroll.send.newAfterScrollUp) {\n              _this8.scrollToBottom();\n            }\n          } else {\n            if (_this8.autoScroll.send[\"new\"]) {\n              _this8.scrollToBottom();\n            }\n          }\n        } else {\n          if (scrolledUp) {\n            if (_this8.autoScroll.receive.newAfterScrollUp) {\n              _this8.scrollToBottom();\n            } else {\n              _this8.scrollIcon = true;\n              _this8.scrollMessagesCount++;\n            }\n          } else {\n            if (_this8.autoScroll.receive[\"new\"]) {\n              _this8.scrollToBottom();\n            } else {\n              _this8.scrollIcon = true;\n              _this8.scrollMessagesCount++;\n            }\n          }\n        }\n      });\n    },\n    onContainerScroll: function onContainerScroll(e) {\n      if (!e.target) return;\n      var bottomScroll = this.getBottomScroll(e.target);\n      if (bottomScroll < 60) this.scrollMessagesCount = 0;\n      this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;\n    },\n    loadMoreMessages: function loadMoreMessages() {\n      var _this9 = this;\n\n      if (this.loadingMessages) return;\n      setTimeout(function () {\n        if (_this9.loadingMoreMessages) return;\n\n        if (_this9.messagesLoaded || !_this9.roomId) {\n          _this9.loadingMoreMessages = false;\n          _this9.showLoader = false;\n          return;\n        }\n\n        _this9.preventTopScroll();\n\n        _this9.$emit('fetch-messages');\n\n        _this9.loadingMoreMessages = true;\n      }, // prevent scroll bouncing speed\n      500);\n    },\n    messageActionHandler: function messageActionHandler(_ref2) {\n      var action = _ref2.action,\n          message = _ref2.message;\n\n      switch (action.name) {\n        case 'replyMessage':\n          this.initReplyMessage = message;\n          return;\n\n        case 'editMessage':\n          this.initEditMessage = message;\n          return;\n\n        case 'deleteMessage':\n          return this.$emit('delete-message', message);\n\n        case 'selectMessages':\n          this.selectedMessages = [message];\n          this.messageSelectionEnabled = true;\n          return;\n\n        default:\n          return this.$emit('message-action-handler', {\n            action: action,\n            message: message\n          });\n      }\n    },\n    messageSelectionActionHandler: function messageSelectionActionHandler(action) {\n      this.$emit('message-selection-action-handler', {\n        action: action,\n        messages: this.selectedMessages\n      });\n      this.resetMessageSelection();\n    },\n    sendMessageReaction: function sendMessageReaction(messageReaction) {\n      this.$emit('send-message-reaction', messageReaction);\n    },\n    getBottomScroll: function getBottomScroll(element) {\n      var scrollHeight = element.scrollHeight,\n          clientHeight = element.clientHeight,\n          scrollTop = element.scrollTop;\n      return scrollHeight - clientHeight - scrollTop;\n    },\n    scrollToBottom: function scrollToBottom() {\n      var _this10 = this;\n\n      setTimeout(function () {\n        var element = _this10.$refs.scrollContainer;\n        element.classList.add('vac-scroll-smooth');\n        element.scrollTo({\n          top: element.scrollHeight,\n          behavior: 'smooth'\n        });\n        setTimeout(function () {\n          return element.classList.remove('vac-scroll-smooth');\n        });\n      }, 50);\n    },\n    openFile: function openFile(_ref3) {\n      var message = _ref3.message,\n          file = _ref3.file;\n      this.$emit('open-file', {\n        message: message,\n        file: file\n      });\n    },\n    openUserTag: function openUserTag(user) {\n      this.$emit('open-user-tag', user);\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/Room/Room.vue?vue&type=script&lang=js&\n /* harmony default export */ var Room_Roomvue_type_script_lang_js_ = (Roomvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/Room/Room.vue\n\n\n\n\n\n/* normalize component */\n\nvar Room_component = normalizeComponent(\n  Room_Roomvue_type_script_lang_js_,\n  Roomvue_type_template_id_54e5f3bb_render,\n  Roomvue_type_template_id_54e5f3bb_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var Room = (Room_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"b77daf8a-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/MediaPreview/MediaPreview.vue?vue&type=template&id=2d3ea15a&\nvar MediaPreviewvue_type_template_id_2d3ea15a_render = function render() {\n  var _vm = this,\n      _c = _vm._self._c;\n\n  return _c('div', {\n    ref: \"modal\",\n    staticClass: \"vac-media-preview\",\n    attrs: {\n      \"tabindex\": \"0\"\n    },\n    on: {\n      \"click\": function click($event) {\n        $event.stopPropagation();\n        return _vm.closeModal.apply(null, arguments);\n      },\n      \"keydown\": function keydown($event) {\n        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n        return _vm.closeModal.apply(null, arguments);\n      }\n    }\n  }, [_c('transition', {\n    attrs: {\n      \"name\": \"vac-bounce-preview\",\n      \"appear\": \"\"\n    }\n  }, [_vm.isImage ? _c('div', {\n    staticClass: \"vac-media-preview-container\"\n  }, [_c('div', {\n    staticClass: \"vac-image-preview\",\n    style: {\n      'background-image': \"url('\".concat(_vm.file.url, \"')\")\n    }\n  })]) : _vm.isVideo ? _c('div', {\n    staticClass: \"vac-media-preview-container\"\n  }, [_c('video', {\n    attrs: {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"controls\": \"\",\n      \"autoplay\": \"\"\n    }\n  }, [_c('source', {\n    attrs: {\n      \"src\": _vm.file.url\n    }\n  })])]) : _vm._e()]), _c('div', {\n    staticClass: \"vac-svg-button\"\n  }, [_vm._t(\"preview-close-icon\", function () {\n    return [_c('svg-icon', {\n      attrs: {\n        \"name\": \"close-outline\",\n        \"param\": \"preview\"\n      }\n    })];\n  })], 2)], 1);\n};\n\nvar MediaPreviewvue_type_template_id_2d3ea15a_staticRenderFns = [];\n\n// CONCATENATED MODULE: ./src/lib/MediaPreview/MediaPreview.vue?vue&type=template&id=2d3ea15a&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/MediaPreview/MediaPreview.vue?vue&type=script&lang=js&\n\n\nvar MediaPreviewvue_type_script_lang_js_require = __webpack_require__(\"bd43\"),\n    MediaPreviewvue_type_script_lang_js_isImageFile = MediaPreviewvue_type_script_lang_js_require.isImageFile,\n    MediaPreviewvue_type_script_lang_js_isVideoFile = MediaPreviewvue_type_script_lang_js_require.isVideoFile;\n\n/* harmony default export */ var MediaPreviewvue_type_script_lang_js_ = ({\n  name: 'MediaPreview',\n  components: {\n    SvgIcon: SvgIcon\n  },\n  props: {\n    file: {\n      type: Object,\n      required: true\n    }\n  },\n  emits: ['close-media-preview'],\n  computed: {\n    isImage: function isImage() {\n      return MediaPreviewvue_type_script_lang_js_isImageFile(this.file);\n    },\n    isVideo: function isVideo() {\n      return MediaPreviewvue_type_script_lang_js_isVideoFile(this.file);\n    }\n  },\n  mounted: function mounted() {\n    this.$refs.modal.focus();\n  },\n  methods: {\n    closeModal: function closeModal() {\n      this.$emit('close-media-preview');\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/MediaPreview/MediaPreview.vue?vue&type=script&lang=js&\n /* harmony default export */ var MediaPreview_MediaPreviewvue_type_script_lang_js_ = (MediaPreviewvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/lib/MediaPreview/MediaPreview.vue\n\n\n\n\n\n/* normalize component */\n\nvar MediaPreview_component = normalizeComponent(\n  MediaPreview_MediaPreviewvue_type_script_lang_js_,\n  MediaPreviewvue_type_template_id_2d3ea15a_render,\n  MediaPreviewvue_type_template_id_2d3ea15a_staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var MediaPreview = (MediaPreview_component.exports);\n// CONCATENATED MODULE: ./src/locales/index.js\n/* harmony default export */ var locales = ({\n  ROOMS_EMPTY: 'No rooms',\n  ROOM_EMPTY: 'No room selected',\n  NEW_MESSAGES: 'New Messages',\n  MESSAGE_DELETED: 'This message was deleted',\n  MESSAGES_EMPTY: 'No messages',\n  CONVERSATION_STARTED: 'Conversation started on:',\n  TYPE_MESSAGE: 'Type message',\n  SEARCH: 'Search',\n  IS_ONLINE: 'is online',\n  LAST_SEEN: 'last seen ',\n  IS_TYPING: 'is writing...',\n  CANCEL_SELECT_MESSAGE: 'Cancel'\n});\n// CONCATENATED MODULE: ./src/themes/index.js\nvar defaultThemeStyles = {\n  light: {\n    general: {\n      color: '#0a0a0a',\n      colorButtonClear: '#1976d2',\n      colorButton: '#fff',\n      backgroundColorButton: '#1976d2',\n      backgroundInput: '#fff',\n      colorPlaceholder: '#9ca6af',\n      colorCaret: '#1976d2',\n      colorSpinner: '#333',\n      borderStyle: '1px solid #e1e4e8',\n      backgroundScrollIcon: '#fff'\n    },\n    container: {\n      border: 'none',\n      borderRadius: '4px',\n      boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)'\n    },\n    header: {\n      background: '#fff',\n      colorRoomName: '#0a0a0a',\n      colorRoomInfo: '#9ca6af'\n    },\n    footer: {\n      background: '#f8f9fa',\n      borderStyleInput: '1px solid #e1e4e8',\n      borderInputSelected: '#1976d2',\n      backgroundReply: '#e5e5e6',\n      backgroundTagActive: '#e5e5e6',\n      backgroundTag: '#f8f9fa'\n    },\n    content: {\n      background: '#f8f9fa'\n    },\n    sidemenu: {\n      background: '#fff',\n      backgroundHover: '#f6f6f6',\n      backgroundActive: '#e5effa',\n      colorActive: '#1976d2',\n      borderColorSearch: '#e1e5e8'\n    },\n    dropdown: {\n      background: '#fff',\n      backgroundHover: '#f6f6f6'\n    },\n    message: {\n      background: '#fff',\n      backgroundMe: '#ccf2cf',\n      color: '#0a0a0a',\n      colorStarted: '#9ca6af',\n      backgroundDeleted: '#dadfe2',\n      backgroundSelected: '#c2dcf2',\n      colorDeleted: '#757e85',\n      colorUsername: '#9ca6af',\n      colorTimestamp: '#828c94',\n      backgroundDate: '#e5effa',\n      colorDate: '#505a62',\n      backgroundSystem: '#e5effa',\n      colorSystem: '#505a62',\n      backgroundMedia: 'rgba(0, 0, 0, 0.15)',\n      backgroundReply: 'rgba(0, 0, 0, 0.08)',\n      colorReplyUsername: '#0a0a0a',\n      colorReply: '#6e6e6e',\n      colorTag: '#0d579c',\n      backgroundImage: '#ddd',\n      colorNewMessages: '#1976d2',\n      backgroundScrollCounter: '#0696c7',\n      colorScrollCounter: '#fff',\n      backgroundReaction: '#eee',\n      borderStyleReaction: '1px solid #eee',\n      backgroundReactionHover: '#fff',\n      borderStyleReactionHover: '1px solid #ddd',\n      colorReactionCounter: '#0a0a0a',\n      backgroundReactionMe: '#cfecf5',\n      borderStyleReactionMe: '1px solid #3b98b8',\n      backgroundReactionHoverMe: '#cfecf5',\n      borderStyleReactionHoverMe: '1px solid #3b98b8',\n      colorReactionCounterMe: '#0b59b3',\n      backgroundAudioRecord: '#eb4034',\n      backgroundAudioLine: 'rgba(0, 0, 0, 0.15)',\n      backgroundAudioProgress: '#455247',\n      backgroundAudioProgressSelector: '#455247',\n      colorFileExtension: '#757e85'\n    },\n    markdown: {\n      background: 'rgba(239, 239, 239, 0.7)',\n      border: 'rgba(212, 212, 212, 0.9)',\n      color: '#e01e5a',\n      colorMulti: '#0a0a0a'\n    },\n    room: {\n      colorUsername: '#0a0a0a',\n      colorMessage: '#67717a',\n      colorTimestamp: '#a2aeb8',\n      colorStateOnline: '#4caf50',\n      colorStateOffline: '#9ca6af',\n      backgroundCounterBadge: '#0696c7',\n      colorCounterBadge: '#fff'\n    },\n    emoji: {\n      background: '#fff'\n    },\n    icons: {\n      search: '#9ca6af',\n      add: '#1976d2',\n      toggle: '#0a0a0a',\n      menu: '#0a0a0a',\n      close: '#9ca6af',\n      closeImage: '#fff',\n      file: '#1976d2',\n      paperclip: '#1976d2',\n      closeOutline: '#000',\n      closePreview: '#fff',\n      send: '#1976d2',\n      sendDisabled: '#9ca6af',\n      emoji: '#1976d2',\n      emojiReaction: 'rgba(0, 0, 0, 0.3)',\n      document: '#1976d2',\n      pencil: '#9e9e9e',\n      checkmark: '#9e9e9e',\n      checkmarkSeen: '#0696c7',\n      eye: '#fff',\n      dropdownMessage: '#fff',\n      dropdownMessageBackground: 'rgba(0, 0, 0, 0.25)',\n      dropdownRoom: '#9e9e9e',\n      dropdownScroll: '#0a0a0a',\n      microphone: '#1976d2',\n      audioPlay: '#455247',\n      audioPause: '#455247',\n      audioCancel: '#eb4034',\n      audioConfirm: '#1ba65b'\n    }\n  },\n  dark: {\n    general: {\n      color: '#fff',\n      colorButtonClear: '#fff',\n      colorButton: '#fff',\n      backgroundColorButton: '#1976d2',\n      backgroundInput: '#202223',\n      colorPlaceholder: '#596269',\n      colorCaret: '#fff',\n      colorSpinner: '#fff',\n      borderStyle: 'none',\n      backgroundScrollIcon: '#fff'\n    },\n    container: {\n      border: 'none',\n      borderRadius: '4px',\n      boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)'\n    },\n    header: {\n      background: '#181a1b',\n      colorRoomName: '#fff',\n      colorRoomInfo: '#9ca6af'\n    },\n    footer: {\n      background: '#131415',\n      borderStyleInput: 'none',\n      borderInputSelected: '#1976d2',\n      backgroundReply: '#1b1c1c',\n      backgroundTagActive: '#1b1c1c',\n      backgroundTag: '#131415'\n    },\n    content: {\n      background: '#131415'\n    },\n    sidemenu: {\n      background: '#181a1b',\n      backgroundHover: '#202224',\n      backgroundActive: '#151617',\n      colorActive: '#fff',\n      borderColorSearch: '#181a1b'\n    },\n    dropdown: {\n      background: '#2a2c33',\n      backgroundHover: '#26282e'\n    },\n    message: {\n      background: '#22242a',\n      backgroundMe: '#1f7e80',\n      color: '#fff',\n      colorStarted: '#9ca6af',\n      backgroundDeleted: '#1b1c21',\n      backgroundSelected: '#c2dcf2',\n      colorDeleted: '#a2a5a8',\n      colorUsername: '#b3bac9',\n      colorTimestamp: '#ebedf2',\n      backgroundDate: 'rgba(0, 0, 0, 0.3)',\n      colorDate: '#bec5cc',\n      backgroundSystem: 'rgba(0, 0, 0, 0.3)',\n      colorSystem: '#bec5cc',\n      backgroundMedia: 'rgba(0, 0, 0, 0.18)',\n      backgroundReply: 'rgba(0, 0, 0, 0.18)',\n      colorReplyUsername: '#fff',\n      colorReply: '#d6d6d6',\n      colorTag: '#f0c60a',\n      backgroundImage: '#ddd',\n      colorNewMessages: '#fff',\n      backgroundScrollCounter: '#1976d2',\n      colorScrollCounter: '#fff',\n      backgroundReaction: 'none',\n      borderStyleReaction: 'none',\n      backgroundReactionHover: '#202223',\n      borderStyleReactionHover: 'none',\n      colorReactionCounter: '#fff',\n      backgroundReactionMe: '#4e9ad1',\n      borderStyleReactionMe: 'none',\n      backgroundReactionHoverMe: '#4e9ad1',\n      borderStyleReactionHoverMe: 'none',\n      colorReactionCounterMe: '#fff',\n      backgroundAudioRecord: '#eb4034',\n      backgroundAudioLine: 'rgba(255, 255, 255, 0.15)',\n      backgroundAudioProgress: '#b7d4d3',\n      backgroundAudioProgressSelector: '#b7d4d3',\n      colorFileExtension: '#a2a5a8'\n    },\n    markdown: {\n      background: 'rgba(239, 239, 239, 0.7)',\n      border: 'rgba(212, 212, 212, 0.9)',\n      color: '#e01e5a',\n      colorMulti: '#0a0a0a'\n    },\n    room: {\n      colorUsername: '#fff',\n      colorMessage: '#6c7278',\n      colorTimestamp: '#6c7278',\n      colorStateOnline: '#4caf50',\n      colorStateOffline: '#596269',\n      backgroundCounterBadge: '#1976d2',\n      colorCounterBadge: '#fff'\n    },\n    emoji: {\n      background: '#343740'\n    },\n    icons: {\n      search: '#596269',\n      add: '#fff',\n      toggle: '#fff',\n      menu: '#fff',\n      close: '#9ca6af',\n      closeImage: '#fff',\n      file: '#1976d2',\n      paperclip: '#fff',\n      closeOutline: '#fff',\n      closePreview: '#fff',\n      send: '#fff',\n      sendDisabled: '#646a70',\n      emoji: '#fff',\n      emojiReaction: '#fff',\n      document: '#1976d2',\n      pencil: '#ebedf2',\n      checkmark: '#ebedf2',\n      checkmarkSeen: '#f0d90a',\n      eye: '#fff',\n      dropdownMessage: '#fff',\n      dropdownMessageBackground: 'rgba(0, 0, 0, 0.25)',\n      dropdownRoom: '#fff',\n      dropdownScroll: '#0a0a0a',\n      microphone: '#fff',\n      audioPlay: '#b7d4d3',\n      audioPause: '#b7d4d3',\n      audioCancel: '#eb4034',\n      audioConfirm: '#1ba65b'\n    }\n  }\n};\nvar cssThemeVars = function cssThemeVars(_ref) {\n  var general = _ref.general,\n      container = _ref.container,\n      header = _ref.header,\n      footer = _ref.footer,\n      sidemenu = _ref.sidemenu,\n      content = _ref.content,\n      dropdown = _ref.dropdown,\n      message = _ref.message,\n      markdown = _ref.markdown,\n      room = _ref.room,\n      emoji = _ref.emoji,\n      icons = _ref.icons;\n  return {\n    // general\n    '--chat-color': general.color,\n    '--chat-color-button-clear': general.colorButtonClear,\n    '--chat-color-button': general.colorButton,\n    '--chat-bg-color-button': general.backgroundColorButton,\n    '--chat-bg-color-input': general.backgroundInput,\n    '--chat-color-spinner': general.colorSpinner,\n    '--chat-color-placeholder': general.colorPlaceholder,\n    '--chat-color-caret': general.colorCaret,\n    '--chat-border-style': general.borderStyle,\n    '--chat-bg-scroll-icon': general.backgroundScrollIcon,\n    // container\n    '--chat-container-border': container.border,\n    '--chat-container-border-radius': container.borderRadius,\n    '--chat-container-box-shadow': container.boxShadow,\n    // header\n    '--chat-header-bg-color': header.background,\n    '--chat-header-color-name': header.colorRoomName,\n    '--chat-header-color-info': header.colorRoomInfo,\n    // footer\n    '--chat-footer-bg-color': footer.background,\n    '--chat-border-style-input': footer.borderStyleInput,\n    '--chat-border-color-input-selected': footer.borderInputSelected,\n    '--chat-footer-bg-color-reply': footer.backgroundReply,\n    '--chat-footer-bg-color-tag-active': footer.backgroundTagActive,\n    '--chat-footer-bg-color-tag': footer.backgroundTag,\n    // content\n    '--chat-content-bg-color': content.background,\n    // sidemenu\n    '--chat-sidemenu-bg-color': sidemenu.background,\n    '--chat-sidemenu-bg-color-hover': sidemenu.backgroundHover,\n    '--chat-sidemenu-bg-color-active': sidemenu.backgroundActive,\n    '--chat-sidemenu-color-active': sidemenu.colorActive,\n    '--chat-sidemenu-border-color-search': sidemenu.borderColorSearch,\n    // dropdown\n    '--chat-dropdown-bg-color': dropdown.background,\n    '--chat-dropdown-bg-color-hover': dropdown.backgroundHover,\n    // message\n    '--chat-message-bg-color': message.background,\n    '--chat-message-bg-color-me': message.backgroundMe,\n    '--chat-message-color-started': message.colorStarted,\n    '--chat-message-bg-color-deleted': message.backgroundDeleted,\n    '--chat-message-bg-color-selected': message.backgroundSelected,\n    '--chat-message-color-deleted': message.colorDeleted,\n    '--chat-message-color-username': message.colorUsername,\n    '--chat-message-color-timestamp': message.colorTimestamp,\n    '--chat-message-bg-color-date': message.backgroundDate,\n    '--chat-message-color-date': message.colorDate,\n    '--chat-message-bg-color-system': message.backgroundSystem,\n    '--chat-message-color-system': message.colorSystem,\n    '--chat-message-color': message.color,\n    '--chat-message-bg-color-media': message.backgroundMedia,\n    '--chat-message-bg-color-reply': message.backgroundReply,\n    '--chat-message-color-reply-username': message.colorReplyUsername,\n    '--chat-message-color-reply-content': message.colorReply,\n    '--chat-message-color-tag': message.colorTag,\n    '--chat-message-bg-color-image': message.backgroundImage,\n    '--chat-message-color-new-messages': message.colorNewMessages,\n    '--chat-message-bg-color-scroll-counter': message.backgroundScrollCounter,\n    '--chat-message-color-scroll-counter': message.colorScrollCounter,\n    '--chat-message-bg-color-reaction': message.backgroundReaction,\n    '--chat-message-border-style-reaction': message.borderStyleReaction,\n    '--chat-message-bg-color-reaction-hover': message.backgroundReactionHover,\n    '--chat-message-border-style-reaction-hover': message.borderStyleReactionHover,\n    '--chat-message-color-reaction-counter': message.colorReactionCounter,\n    '--chat-message-bg-color-reaction-me': message.backgroundReactionMe,\n    '--chat-message-border-style-reaction-me': message.borderStyleReactionMe,\n    '--chat-message-bg-color-reaction-hover-me': message.backgroundReactionHoverMe,\n    '--chat-message-border-style-reaction-hover-me': message.borderStyleReactionHoverMe,\n    '--chat-message-color-reaction-counter-me': message.colorReactionCounterMe,\n    '--chat-message-bg-color-audio-record': message.backgroundAudioRecord,\n    '--chat-message-bg-color-audio-line': message.backgroundAudioLine,\n    '--chat-message-bg-color-audio-progress': message.backgroundAudioProgress,\n    '--chat-message-bg-color-audio-progress-selector': message.backgroundAudioProgressSelector,\n    '--chat-message-color-file-extension': message.colorFileExtension,\n    // markdown\n    '--chat-markdown-bg': markdown.background,\n    '--chat-markdown-border': markdown.border,\n    '--chat-markdown-color': markdown.color,\n    '--chat-markdown-color-multi': markdown.colorMulti,\n    // room\n    '--chat-room-color-username': room.colorUsername,\n    '--chat-room-color-message': room.colorMessage,\n    '--chat-room-color-timestamp': room.colorTimestamp,\n    '--chat-room-color-online': room.colorStateOnline,\n    '--chat-room-color-offline': room.colorStateOffline,\n    '--chat-room-bg-color-badge': room.backgroundCounterBadge,\n    '--chat-room-color-badge': room.colorCounterBadge,\n    // emoji\n    '--chat-emoji-bg-color': emoji.background,\n    // icons\n    '--chat-icon-color-search': icons.search,\n    '--chat-icon-color-add': icons.add,\n    '--chat-icon-color-toggle': icons.toggle,\n    '--chat-icon-color-menu': icons.menu,\n    '--chat-icon-color-close': icons.close,\n    '--chat-icon-color-close-image': icons.closeImage,\n    '--chat-icon-color-file': icons.file,\n    '--chat-icon-color-paperclip': icons.paperclip,\n    '--chat-icon-color-close-outline': icons.closeOutline,\n    '--chat-icon-color-close-preview': icons.closePreview,\n    '--chat-icon-color-send': icons.send,\n    '--chat-icon-color-send-disabled': icons.sendDisabled,\n    '--chat-icon-color-emoji': icons.emoji,\n    '--chat-icon-color-emoji-reaction': icons.emojiReaction,\n    '--chat-icon-color-document': icons.document,\n    '--chat-icon-color-pencil': icons.pencil,\n    '--chat-icon-color-checkmark': icons.checkmark,\n    '--chat-icon-color-checkmark-seen': icons.checkmarkSeen,\n    '--chat-icon-color-eye': icons.eye,\n    '--chat-icon-color-dropdown-message': icons.dropdownMessage,\n    '--chat-icon-bg-dropdown-message': icons.dropdownMessageBackground,\n    '--chat-icon-color-dropdown-room': icons.dropdownRoom,\n    '--chat-icon-color-dropdown-scroll': icons.dropdownScroll,\n    '--chat-icon-color-microphone': icons.microphone,\n    '--chat-icon-color-audio-play': icons.audioPlay,\n    '--chat-icon-color-audio-pause': icons.audioPause,\n    '--chat-icon-color-audio-cancel': icons.audioCancel,\n    '--chat-icon-color-audio-confirm': icons.audioConfirm\n  };\n};\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/ChatWindow.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n\nvar ChatWindowvue_type_script_lang_js_require = __webpack_require__(\"4c1d\"),\n    roomsValidation = ChatWindowvue_type_script_lang_js_require.roomsValidation,\n    partcipantsValidation = ChatWindowvue_type_script_lang_js_require.partcipantsValidation;\n\n/* harmony default export */ var ChatWindowvue_type_script_lang_js_ = ({\n  name: 'ChatContainer',\n  components: {\n    RoomsList: RoomsList,\n    Room: Room,\n    MediaPreview: MediaPreview\n  },\n  props: {\n    height: {\n      type: String,\n      \"default\": '600px'\n    },\n    theme: {\n      type: String,\n      \"default\": 'light'\n    },\n    styles: {\n      type: Object,\n      \"default\": function _default() {\n        return {};\n      }\n    },\n    responsiveBreakpoint: {\n      type: Number,\n      \"default\": 900\n    },\n    singleRoom: {\n      type: Boolean,\n      \"default\": false\n    },\n    roomsListOpened: {\n      type: Boolean,\n      \"default\": true\n    },\n    textMessages: {\n      type: Object,\n      \"default\": null\n    },\n    currentUserId: {\n      type: [String, Number],\n      \"default\": ''\n    },\n    rooms: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    roomsOrder: {\n      type: String,\n      \"default\": 'desc'\n    },\n    loadingRooms: {\n      type: Boolean,\n      \"default\": false\n    },\n    roomsLoaded: {\n      type: Boolean,\n      \"default\": false\n    },\n    roomId: {\n      type: [String, Number],\n      \"default\": null\n    },\n    loadFirstRoom: {\n      type: Boolean,\n      \"default\": true\n    },\n    messages: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    messagesLoaded: {\n      type: Boolean,\n      \"default\": false\n    },\n    roomActions: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    menuActions: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    messageActions: {\n      type: Array,\n      \"default\": function _default() {\n        return [{\n          name: 'replyMessage',\n          title: 'Reply'\n        }, {\n          name: 'editMessage',\n          title: 'Edit Message',\n          onlyMe: true\n        }, {\n          name: 'deleteMessage',\n          title: 'Delete Message',\n          onlyMe: true\n        }, {\n          name: 'selectMessages',\n          title: 'Select'\n        }];\n      }\n    },\n    messageSelectionActions: {\n      type: Array,\n      \"default\": function _default() {\n        return [];\n      }\n    },\n    autoScroll: {\n      type: Object,\n      \"default\": function _default() {\n        return {\n          send: {\n            \"new\": true,\n            newAfterScrollUp: true\n          },\n          receive: {\n            \"new\": true,\n            newAfterScrollUp: false\n          }\n        };\n      }\n    },\n    showSearch: {\n      type: Boolean,\n      \"default\": true\n    },\n    showAddRoom: {\n      type: Boolean,\n      \"default\": true\n    },\n    showSendIcon: {\n      type: Boolean,\n      \"default\": true\n    },\n    showFiles: {\n      type: Boolean,\n      \"default\": true\n    },\n    showAudio: {\n      type: Boolean,\n      \"default\": true\n    },\n    audioBitRate: {\n      type: Number,\n      \"default\": 128\n    },\n    audioSampleRate: {\n      type: Number,\n      \"default\": 44100\n    },\n    showEmojis: {\n      type: Boolean,\n      \"default\": true\n    },\n    showReactionEmojis: {\n      type: Boolean,\n      \"default\": true\n    },\n    showNewMessagesDivider: {\n      type: Boolean,\n      \"default\": true\n    },\n    showFooter: {\n      type: Boolean,\n      \"default\": true\n    },\n    textFormatting: {\n      type: Object,\n      \"default\": function _default() {\n        return {\n          disabled: false,\n          italic: '_',\n          bold: '*',\n          strike: '~',\n          underline: '°',\n          multilineCode: '```',\n          inlineCode: '`'\n        };\n      }\n    },\n    linkOptions: {\n      type: Object,\n      \"default\": function _default() {\n        return {\n          disabled: false,\n          target: '_blank',\n          rel: null\n        };\n      }\n    },\n    roomInfoEnabled: {\n      type: Boolean,\n      \"default\": false\n    },\n    textareaActionEnabled: {\n      type: Boolean,\n      \"default\": false\n    },\n    textareaAutoFocus: {\n      type: Boolean,\n      \"default\": true\n    },\n    userTagsEnabled: {\n      type: Boolean,\n      \"default\": true\n    },\n    emojisSuggestionEnabled: {\n      type: Boolean,\n      \"default\": true\n    },\n    roomMessage: {\n      type: String,\n      \"default\": ''\n    },\n    scrollDistance: {\n      type: Number,\n      \"default\": 60\n    },\n    acceptedFiles: {\n      type: String,\n      \"default\": '*'\n    },\n    templatesText: {\n      type: Array,\n      \"default\": null\n    },\n    mediaPreviewEnabled: {\n      type: Boolean,\n      \"default\": true\n    },\n    usernameOptions: {\n      type: Object,\n      \"default\": function _default() {\n        return {\n          minUsers: 3,\n          currentUser: false\n        };\n      }\n    }\n  },\n  emits: ['toggle-rooms-list', 'room-info', 'fetch-messages', 'send-message', 'edit-message', 'delete-message', 'open-file', 'open-user-tag', 'open-failed-message', 'menu-action-handler', 'message-action-handler', 'send-message-reaction', 'typing-message', 'textarea-action-handler', 'fetch-more-rooms', 'add-room', 'room-action-handler', 'message-selection-action-handler'],\n  data: function data() {\n    return {\n      room: {},\n      loadingMoreRooms: false,\n      showRoomsList: true,\n      isMobile: false,\n      showMediaPreview: false,\n      previewFile: {}\n    };\n  },\n  computed: {\n    t: function t() {\n      return _objectSpread2(_objectSpread2({}, locales), this.textMessages);\n    },\n    cssVars: function cssVars() {\n      var _this = this;\n\n      var defaultStyles = defaultThemeStyles[this.theme];\n      var customStyles = {};\n      Object.keys(defaultStyles).map(function (key) {\n        customStyles[key] = _objectSpread2(_objectSpread2({}, defaultStyles[key]), _this.styles[key] || {});\n      });\n      return cssThemeVars(customStyles);\n    },\n    orderedRooms: function orderedRooms() {\n      var _this2 = this;\n\n      return this.rooms.slice().sort(function (a, b) {\n        var aVal = a.index || 0;\n        var bVal = b.index || 0;\n\n        if (_this2.roomsOrder === 'asc') {\n          return aVal < bVal ? -1 : bVal < aVal ? 1 : 0;\n        }\n\n        return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;\n      });\n    }\n  },\n  watch: {\n    rooms: {\n      immediate: true,\n      deep: true,\n      handler: function handler(newVal, oldVal) {\n        var _this3 = this;\n\n        if (!newVal[0] || !newVal.find(function (room) {\n          return room.roomId === _this3.room.roomId;\n        })) {\n          this.showRoomsList = true;\n        }\n\n        if (!this.loadingMoreRooms && this.loadFirstRoom && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {\n          if (this.roomId) {\n            var room = newVal.find(function (r) {\n              return r.roomId === _this3.roomId;\n            }) || {};\n            this.fetchRoom({\n              room: room\n            });\n          } else if (!this.isMobile || this.singleRoom) {\n            this.fetchRoom({\n              room: this.orderedRooms[0]\n            });\n          } else {\n            this.showRoomsList = true;\n          }\n        }\n      }\n    },\n    loadingRooms: function loadingRooms(val) {\n      if (val) this.room = {};\n    },\n    roomId: {\n      immediate: true,\n      handler: function handler(newVal, oldVal) {\n        if (newVal && !this.loadingRooms && this.rooms.length) {\n          var room = this.rooms.find(function (r) {\n            return r.roomId === newVal;\n          });\n          this.fetchRoom({\n            room: room\n          });\n        } else if (oldVal && !newVal) {\n          this.room = {};\n        }\n      }\n    },\n    room: function room(val) {\n      if (!val || Object.entries(val).length === 0) return;\n      roomsValidation(val);\n      val.users.forEach(function (user) {\n        partcipantsValidation(user);\n      });\n    },\n    roomsListOpened: function roomsListOpened(val) {\n      this.showRoomsList = val;\n    }\n  },\n  created: function created() {\n    var _this4 = this;\n\n    this.updateResponsive();\n    window.addEventListener('resize', function (ev) {\n      if (ev.isTrusted) _this4.updateResponsive();\n    });\n  },\n  methods: {\n    updateResponsive: function updateResponsive() {\n      this.isMobile = window.innerWidth < this.responsiveBreakpoint;\n    },\n    toggleRoomsList: function toggleRoomsList() {\n      this.showRoomsList = !this.showRoomsList;\n      if (this.isMobile) this.room = {};\n      this.$emit('toggle-rooms-list', {\n        opened: this.showRoomsList\n      });\n    },\n    fetchRoom: function fetchRoom(_ref) {\n      var room = _ref.room;\n      this.room = room;\n      this.fetchMessages({\n        reset: true\n      });\n      if (this.isMobile) this.showRoomsList = false;\n    },\n    fetchMoreRooms: function fetchMoreRooms() {\n      this.$emit('fetch-more-rooms');\n    },\n    roomInfo: function roomInfo() {\n      this.$emit('room-info', this.room);\n    },\n    addRoom: function addRoom() {\n      this.$emit('add-room');\n    },\n    fetchMessages: function fetchMessages(options) {\n      this.$emit('fetch-messages', {\n        room: this.room,\n        options: options\n      });\n    },\n    sendMessage: function sendMessage(message) {\n      this.$emit('send-message', _objectSpread2(_objectSpread2({}, message), {}, {\n        roomId: this.room.roomId\n      }));\n    },\n    editMessage: function editMessage(message) {\n      this.$emit('edit-message', _objectSpread2(_objectSpread2({}, message), {}, {\n        roomId: this.room.roomId\n      }));\n    },\n    deleteMessage: function deleteMessage(message) {\n      this.$emit('delete-message', {\n        message: message,\n        roomId: this.room.roomId\n      });\n    },\n    openFile: function openFile(_ref2) {\n      var message = _ref2.message,\n          file = _ref2.file;\n\n      if (this.mediaPreviewEnabled && file.action === 'preview') {\n        this.previewFile = file.file;\n        this.showMediaPreview = true;\n      } else {\n        this.$emit('open-file', {\n          message: message,\n          file: file\n        });\n      }\n    },\n    openUserTag: function openUserTag(_ref3) {\n      var user = _ref3.user;\n      this.$emit('open-user-tag', {\n        user: user\n      });\n    },\n    openFailedMessage: function openFailedMessage(_ref4) {\n      var message = _ref4.message;\n      this.$emit('open-failed-message', {\n        message: message,\n        roomId: this.room.roomId\n      });\n    },\n    menuActionHandler: function menuActionHandler(ev) {\n      this.$emit('menu-action-handler', {\n        action: ev,\n        roomId: this.room.roomId\n      });\n    },\n    roomActionHandler: function roomActionHandler(_ref5) {\n      var action = _ref5.action,\n          roomId = _ref5.roomId;\n      this.$emit('room-action-handler', {\n        action: action,\n        roomId: roomId\n      });\n    },\n    messageActionHandler: function messageActionHandler(ev) {\n      this.$emit('message-action-handler', _objectSpread2(_objectSpread2({}, ev), {}, {\n        roomId: this.room.roomId\n      }));\n    },\n    messageSelectionActionHandler: function messageSelectionActionHandler(ev) {\n      this.$emit('message-selection-action-handler', _objectSpread2(_objectSpread2({}, ev), {}, {\n        roomId: this.room.roomId\n      }));\n    },\n    sendMessageReaction: function sendMessageReaction(messageReaction) {\n      this.$emit('send-message-reaction', _objectSpread2(_objectSpread2({}, messageReaction), {}, {\n        roomId: this.room.roomId\n      }));\n    },\n    typingMessage: function typingMessage(message) {\n      this.$emit('typing-message', {\n        message: message,\n        roomId: this.room.roomId\n      });\n    },\n    textareaActionHandler: function textareaActionHandler(message) {\n      this.$emit('textarea-action-handler', {\n        message: message,\n        roomId: this.room.roomId\n      });\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/lib/ChatWindow.vue?vue&type=script&lang=js&\n /* harmony default export */ var lib_ChatWindowvue_type_script_lang_js_ = (ChatWindowvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/lib/ChatWindow.vue?vue&type=style&index=0&id=32846052&prod&lang=scss&\nvar ChatWindowvue_type_style_index_0_id_32846052_prod_lang_scss_ = __webpack_require__(\"42ca\");\n\n// CONCATENATED MODULE: ./src/lib/ChatWindow.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar ChatWindow_component = normalizeComponent(\n  lib_ChatWindowvue_type_script_lang_js_,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var ChatWindow = (ChatWindow_component.exports);\n// CONCATENATED MODULE: ./src/lib/index.js\n\nObject.defineProperty(ChatWindow, 'install', {\n  configurable: false,\n  enumerable: false,\n  value: function value(Vue) {\n    Vue.component('ChatWindow', ChatWindow);\n  }\n});\n/* harmony default export */ var lib = (ChatWindow);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (lib);\n\n\n\n/***/ }),\n\n/***/ \"fc6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(\"44ad\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ \"fce3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar global = __webpack_require__(\"da84\");\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('.', 's');\n  return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n\n\n/***/ }),\n\n/***/ \"fdbf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(\"04f8\");\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ \"ff81\":\n/***/ (function(module, exports, __webpack_require__) {\n\n//package mp3;\n\n/**\n * Layer III side information.\n *\n * @author Ken\n *\n */\n\nvar common = __webpack_require__(\"0206\");\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = __webpack_require__(\"4b5e\");\n\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n\n    this.l = new_int(1 + Encoder.SBMAX_l);\n    this.s = new_int(1 + Encoder.SBMAX_s);\n    this.psfb21 = new_int(1 + Encoder.PSFB21);\n    this.psfb12 = new_int(1 + Encoder.PSFB12);\n    var l = this.l;\n    var s = this.s;\n\n    if (arguments.length == 4) {\n        //public ScaleFac(final int[] arrL, final int[] arrS, final int[] arr21,\n        //    final int[] arr12) {\n        this.arrL = arguments[0];\n        this.arrS = arguments[1];\n        this.arr21 = arguments[2];\n        this.arr12 = arguments[3];\n\n        System.arraycopy(this.arrL, 0, l, 0, Math.min(this.arrL.length, this.l.length));\n        System.arraycopy(this.arrS, 0, s, 0, Math.min(this.arrS.length, this.s.length));\n        System.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length));\n        System.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length));\n    }\n}\n\nmodule.exports = ScaleFac;\n\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=vue-advanced-chat.common.js.map","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=d06c11f4&scoped=true&lang=css&\"","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator);\n    throw error;\n  }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.es/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.es/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = [it];\n      var index = 1;\n      var $replacer;\n      while (arguments.length > index) args.push(arguments[index++]);\n      $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return $stringify.apply(null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationMessage.vue?vue&type=style&index=0&id=3f1187ff&scoped=true&lang=css&\"","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  // eslint-disable-next-line es/no-array-from -- required for testing\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && typeof NativePromise == 'function') {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromise.prototype['finally'] !== method) {\n    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n  }\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request.onreadystatechange = function handleLoad() {\n      if (!request || request.readyState !== 4) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = promise.then;\n    notify = function () {\n      then.call(promise, flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_OUT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push.call(target, value); // filterOut\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterOut` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterOut: createMethod(7)\n};\n","module.exports = require('./lib/axios');","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n","module.exports = false;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n  if (toString.call(val) !== '[object Object]') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = {};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\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\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = parts.length - 1; i >= 0; i--) {\n    var last = parts[i];\n    if (last === '.') {\n      parts.splice(i, 1);\n    } else if (last === '..') {\n      parts.splice(i, 1);\n      up++;\n    } else if (up) {\n      parts.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (allowAboveRoot) {\n    for (; up--; up) {\n      parts.unshift('..');\n    }\n  }\n\n  return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (typeof path !== 'string') {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n    return !!p;\n  }), !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n  var isAbsolute = exports.isAbsolute(path),\n      trailingSlash = substr(path, -1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(filter(path.split('/'), function(p) {\n    return !!p;\n  }), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n  var paths = Array.prototype.slice.call(arguments, 0);\n  return exports.normalize(filter(paths, function(p, index) {\n    if (typeof p !== 'string') {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    return p;\n  }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n  from = exports.resolve(from).substr(1);\n  to = exports.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end - start + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n  if (typeof path !== 'string') path = path + '';\n  if (path.length === 0) return '.';\n  var code = path.charCodeAt(0);\n  var hasRoot = code === 47 /*/*/;\n  var end = -1;\n  var matchedSlash = true;\n  for (var i = path.length - 1; i >= 1; --i) {\n    code = path.charCodeAt(i);\n    if (code === 47 /*/*/) {\n        if (!matchedSlash) {\n          end = i;\n          break;\n        }\n      } else {\n      // We saw the first non-path separator\n      matchedSlash = false;\n    }\n  }\n\n  if (end === -1) return hasRoot ? '/' : '.';\n  if (hasRoot && end === 1) {\n    // return '//';\n    // Backwards-compat fix:\n    return '/';\n  }\n  return path.slice(0, end);\n};\n\nfunction basename(path) {\n  if (typeof path !== 'string') path = path + '';\n\n  var start = 0;\n  var end = -1;\n  var matchedSlash = true;\n  var i;\n\n  for (i = path.length - 1; i >= 0; --i) {\n    if (path.charCodeAt(i) === 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 (!matchedSlash) {\n          start = i + 1;\n          break;\n        }\n      } else if (end === -1) {\n      // We saw the first non-path separator, mark this as the end of our\n      // path component\n      matchedSlash = false;\n      end = i + 1;\n    }\n  }\n\n  if (end === -1) return '';\n  return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n  var f = basename(path);\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\nexports.extname = function (path) {\n  if (typeof path !== 'string') path = path + '';\n  var startDot = -1;\n  var startPart = 0;\n  var end = -1;\n  var matchedSlash = true;\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  for (var i = path.length - 1; i >= 0; --i) {\n    var code = path.charCodeAt(i);\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 (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n    if (end === -1) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension\n      matchedSlash = false;\n      end = i + 1;\n    }\n    if (code === 46 /*.*/) {\n        // If this is our first dot, mark it as the start of our extension\n        if (startDot === -1)\n          startDot = i;\n        else if (preDotState !== 1)\n          preDotState = 1;\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 (startDot === -1 || end === -1 ||\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    return '';\n  }\n  return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n    if (xs.filter) return xs.filter(f);\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        if (f(xs[i], i, xs)) res.push(xs[i]);\n    }\n    return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n    ? function (str, start, len) { return str.substr(start, len) }\n    : function (str, start, len) {\n        if (start < 0) start = str.length + start;\n        return str.substr(start, len);\n    }\n;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n  // We can't detect it synchronously, so just check versions\n  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n  if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  PromiseConstructorPrototype = PromiseConstructor.prototype;\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          nativeThen.call(that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n\n      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n      redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.es/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.es/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.es/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.es/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"app.js","mappings":"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O,EAAI5O,EACb,CACA,SAASqT,EAAQrT,GACf,OAAc,KAAVA,GACF7zD,EAAQ6lB,MAAM,sBACPylD,EAAgBzX,IAEX,OAAVA,GAAkBoB,GAAmBpB,IACvC7zD,EAAQs5D,KAAK,cACN4F,EAAGrL,IAERsB,GAActB,GACToL,GAAaj/D,EAASknE,EAAS,aAA/BjI,CAA6CpL,IAEtD7zD,EAAQ6lB,MAAM,kBACP9pC,EAAK83E,GACd,CACA,SAASyX,EAAgBzX,GACvB,OAAc,KAAVA,GACF7zD,EAAQu/D,QAAQ1L,GACTyX,IAETtrE,EAAQs5D,KAAK,sBACN4N,EAAQrT,GACjB,CACA,SAAS93E,EAAK83E,GACZ,OAAc,OAAVA,GAA4B,KAAVA,GAAgBqB,GAA0BrB,IAC9D7zD,EAAQs5D,KAAK,kBACN4N,EAAQrT,KAEjB7zD,EAAQu/D,QAAQ1L,GACT93E,EACT,CACF,CACA,MAAMwvF,GAAiB,CACrB,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAEIC,GAAe,CAAC,MAAO,SAAU,QAAS,YAC1C/T,GAAW,CACfxzE,KAAM,WACNw7E,SAAUgM,GACVC,UAAWC,GACXnK,UAAU,GAENoK,GAAkB,CACtBnM,SAAUoM,GACVlH,SAAS,GAELmH,GAA2B,CAC/BrM,SAAUsM,GACVpH,SAAS,GAEX,SAASgH,GAAkBz5D,GACzB,IAAIpkB,EAAQokB,EAAO1vB,OACnB,MAAOsL,IACL,GAAyB,UAArBokB,EAAOpkB,GAAO,IAA4C,aAA1BokB,EAAOpkB,GAAO,GAAG2F,KACnD,MAQJ,OALI3F,EAAQ,GAAmC,eAA9BokB,EAAOpkB,EAAQ,GAAG,G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yD,WAAYjD,GACZkD,UAAWpD,GACXqD,YAAajD,GACbkD,QAASxD,GACTyD,UAAWhD,GACXX,aACA4D,YAAahD,GACbiD,OAAQf,IAENgB,GAAW/kI,GAAOgkI,OAClBgB,GAAShlI,GAAOokI,KAChBa,GAAWjlI,GAAOqkI,OAClBa,GAAcllI,GAAOykI,UACzB,SAASU,KACP,IAAIC,EAAW,EACb,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBACA,mBACA,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBACA,kBACA,WAAcJ,GAAOnC,MAAQ,GAAM,QACnC,WAAcmC,GAAOnC,MAAQ,GAAM,QACnC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,SAAWmC,GAAOnC,MAAQ,GAAM,QAChC,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBAEEwC,EAAK,GACLC,EAAK,GACLC,EAAM,CACR,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEH,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACD,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEH,CACE,kBACA,iBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IACC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACD,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAEF,CACE,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAGDC,EAAWD,EAAIE,GAAQC,YACvBC,EAAKJ,EAAIE,GAAQC,YACjBE,EAAKL,EAAIE,GAAQC,YACjBG,EAAKN,EAAIE,GAAQC,YACjBtuB,EAAQ,CACV,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEF,SAAS0uB,EAAeC,EAAIC,EAAOh+H,GAGjC,IAFA,IA6DYu+C,EAAG3iD,EA2BTqiI,EAxFFC,EAAK,GACLC,EAAKH,EAAQ,IAAM,GAAK,IACnBziI,GAAK,GAAIA,EAAI,EAAGA,IAAK,CAC5B,IAAI6iE,EAAGjuD,EAAG6vB,EACVo+B,EAAIg/D,EAASc,GAAM,IACnB/tH,EAAI4tH,EAAGI,GAAM,KAAO//D,EACpBp+B,EAAI+9F,EAAGC,EAAQ,KAAO5/D,EACtBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,GAAM,KAAO//D,EACrBp+B,GAAK+9F,EAAGC,EAAQ,KAAO5/D,EACvBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,GAAM,IAAM//D,EACpBp+B,GAAK+9F,EAAGC,EAAQ,IAAM5/D,EACtBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,GAAM,IAAM//D,EACpBp+B,GAAK+9F,EAAGC,EAAQ,IAAM5/D,EACtBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,EAAK,IAAM//D,EACnBp+B,GAAK+9F,EAAGC,GAAS,IAAM5/D,EACvBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,EAAK,IAAM//D,EACnBp+B,GAAK+9F,EAAGC,GAAS,IAAM5/D,EACvBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,EAAK,KAAO//D,EACpBp+B,GAAK+9F,EAAGC,GAAS,KAAO5/D,EACxBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGI,EAAK,KAAO//D,EACpBp+B,GAAK+9F,EAAGC,GAAS,KAAO5/D,EACxBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGC,GAAS,KAAO5/D,EACxBp+B,GAAK+9F,EAAGI,EAAK,KAAO//D,EACpBA,EAAIg/D,EAASc,GAAM,GACnB/tH,GAAK4tH,EAAGC,GAAS,KAAO5/D,EACxBp+B,GAAK+9F,EAAGI,EAAK,KAAO//D,EACpBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,GAAS,KAAO5/D,EACxBp+B,GAAK+9F,EAAGI,EAAK,KAAO//D,EACpBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,GAAS,IAAM5/D,EACvBp+B,GAAK+9F,EAAGI,EAAK,IAAM//D,EACnBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,EAAQ,GAAK5/D,EACrBp+B,GAAK+9F,EAAGI,EAAK,GAAK//D,EAClBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,EAAQ,IAAM5/D,EACtBp+B,GAAK+9F,EAAGI,GAAM,IAAM//D,EACpBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,EAAQ,KAAO5/D,EACvBp+B,GAAK+9F,EAAGI,GAAM,KAAO//D,EACrBA,EAAIg/D,EAASc,EAAK,GAClB/tH,GAAK4tH,EAAGC,EAAQ,KAAO5/D,EACvBp+B,GAAK+9F,EAAGI,GAAM,KAAO//D,EACrBjuD,GAAKitH,EAASc,EAAK,GACnB9/D,EAAIp+B,EAAI7vB,EACRnQ,EAAE,GAAS,EAAJzE,GAASykC,EAAI7vB,EACpBnQ,EAAE,GAAS,EAAJzE,GAAS6hI,EAASc,EAAK,GAAK9/D,EACnC8/D,GAAM,GACNF,IACAG,GACF,CAGEn+F,EAAI+9F,EAAGC,GAAS,IAAMZ,EAASc,GAAM,IACrC/tH,EAAI4tH,EAAGC,GAAS,IAAMZ,EAASc,GAAM,GACrCl+F,IAAM+9F,EAAGC,GAAS,IAAMD,EAAGC,EAAQ,KAAOZ,EAASc,GAAM,GACzD/tH,GAAK4tH,EAAGC,GAAS,IAAMZ,EAASc,GAAM,GACtCl+F,IAAM+9F,EAAGC,GAAS,IAAMD,EAAGC,EAAQ,KAAOZ,EAASc,GAAM,GACzD/tH,GAAK4tH,EAAGC,GAAS,KAAOZ,EAASc,EAAK,GACtCl+F,IAAM+9F,EAAGC,GAAS,KAAOD,EAAGC,EAAQ,KAAOZ,EAASc,GAAM,GAC1D/tH,GAAK4tH,EAAGC,GAAS,KAAOZ,EAASc,EAAK,GACtCl+F,IAAM+9F,EAAGC,GAAS,KAAOD,EAAGC,EAAQ,MAAQZ,EAASc,GAAM,GAC3D/tH,GAAK4tH,EAAGC,EAAQ,IAAMZ,EAASc,EAAK,GACpCl+F,IAAM+9F,EAAGC,GAAS,KAAOD,EAAGC,EAAQ,MAAQZ,EAASc,GAAM,GAC3D/tH,GAAK4tH,EAAGC,EAAQ,IAAMZ,EAASc,EAAK,GACpCl+F,IAAM+9F,EAAGC,GAAS,KAAOD,EAAGC,EAAQ,MAAQZ,EAASc,GAAM,GAC3D/tH,GAAK4tH,EAAGC,EAAQ,KAAOZ,EAASc,EAAK,GACrCl+F,IAAM+9F,EAAGC,GAAS,KAAOD,EAAGC,EAAQ,MAAQZ,EAASc,GAAM,GAC3D/tH,GAAK4tH,EAAGC,EAAQ,KAChBz/E,EAAIpuC,EAAI6vB,EACRpkC,EAAIuU,EAAI6vB,EACRA,EAAIhgC,EAAE,IACNmQ,EAAInQ,EAAE,IAAMggC,EACZhgC,EAAE,IAAMpE,EAAIokC,EACZhgC,EAAE,IAAMu+C,EAAIpuC,EACZnQ,EAAE,IAAMu+C,EAAIpuC,EACZnQ,EAAE,IAAMpE,EAAIokC,EAIZi+F,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKjB,GAAOnC,MACpBoD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKjB,GAAOnC,MAAQ76H,EAAE,GAC9BA,EAAE,IAAMA,EAAE,GACVA,EAAE,KAAOA,EAAE,GACXA,EAAE,KAAOA,EAAE,IACXi+H,EAAKj+H,EAAE,GACPA,EAAE,GAAKA,EAAE,IAAMi+H,EACfj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBA,EAAKj+H,EAAE,GACPA,EAAE,GAAKA,EAAE,IAAMi+H,EACfj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBA,EAAKj+H,EAAE,IACPA,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBA,EAAKj+H,EAAE,IACPA,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBA,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,GAAMj+H,EAAE,IAAMA,EAAE,IAChBA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,GAAMj+H,EAAE,IAAMA,EAAE,IAChBA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,IAAW,GACtCD,EAAKj+H,EAAE,GAAKA,EAAE,GACdA,EAAE,IAAMA,EAAE,GACVA,EAAE,GAAKi+H,EAAKb,EAASc,GAAK,IAAW,GACrCD,EAAKj+H,EAAE,GAAKA,EAAE,GACdA,EAAE,IAAMA,EAAE,GACVA,EAAE,GAAKi+H,EAAKb,EAASc,GAAK,IAAW,GACrCD,EAAKj+H,EAAE,GAAKA,EAAE,IACdA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,GAAKA,EAAE,IACdA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,GAAMj+H,EAAE,IAAMA,EAAE,IAChBA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKb,EAASc,GAAK,GAAU,GACrCD,EAAKjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,KAC9BA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EACRA,EAAKjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,KAC9BA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EACRA,EAAKjB,GAAOnC,QAAU76H,EAAE,IAAMA,EAAE,KAChCA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKj+H,EAAE,IACfi+H,EAAKjB,GAAOnC,QAAU76H,EAAE,IAAMA,EAAE,KAChCA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKj+H,EAAE,IACfi+H,EAAKj+H,EAAE,GACPA,EAAE,KAAOA,EAAE,GACXA,EAAE,IAAMi+H,EACRj+H,EAAE,GAAKA,EAAE,IAAMi+H,EACfj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,GACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTj+H,EAAE,GAAKA,EAAE,IAAMi+H,EACfj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOi+H,EACTj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOi+H,EACTj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOi+H,EACTj+H,EAAE,IAAMA,EAAE,IAAMi+H,EAChBj+H,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOi+H,EACTj+H,EAAE,IAAMA,EAAE,GAAKi+H,EACfj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IACPA,EAAE,IAAMA,EAAE,GAAKi+H,EACfj+H,EAAE,IAAMi+H,EACRA,EAAKjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,IAC9BA,EAAE,IAAMA,EAAE,GACVA,EAAE,GAAKi+H,EACPA,EAAKjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,IAC9BA,EAAE,IAAMA,EAAE,GACVA,EAAE,GAAKi+H,EACPA,EAAKjB,GAAOnC,OAAS76H,EAAE,IAAMA,EAAE,KAC/BA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EACRA,EAAKjB,GAAOnC,OAAS76H,EAAE,IAAMA,EAAE,KAC/BA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EACRA,GAAMjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,KAC/BA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKj+H,EAAE,GACfi+H,GAAMjB,GAAOnC,OAAS76H,EAAE,GAAKA,EAAE,KAC/BA,EAAE,IAAMA,EAAE,IACVA,EAAE,IAAMi+H,EAAKj+H,EAAE,GACfi+H,GAAMjB,GAAOnC,OAAS76H,EAAE,IAAMA,EAAE,KAChCA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKj+H,EAAE,IACfi+H,GAAMjB,GAAOnC,OAAS76H,EAAE,IAAMA,EAAE,KAChCA,EAAE,KAAOA,EAAE,IACXA,EAAE,IAAMi+H,EAAKj+H,EAAE,IACfi+H,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMA,EAAE,IACfA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMA,EAAE,GACfA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GAAKA,EAAE,GACdA,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,GAAKi+H,EACZj+H,EAAE,GAAKi+H,EACPA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IAAMi+H,EACbj+H,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,GACXA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,GACXA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOi+H,EACTA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,GACXA,EAAE,IAAMi+H,EACRA,EAAKj+H,EAAE,IACPA,EAAE,KAAOA,EAAE,GACXA,EAAE,IAAMi+H,CAEZ,CACA,SAASG,EAAWC,EAAOC,GACzB,IAAK,IAAIz+H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI0+H,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAC7BF,EAAML,EAAMC,EAAW,GAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,IAC9EC,EAAMF,EAAMC,EAAW,GAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,GAC9EE,EAAME,EAAMH,EACZE,EAAMC,EAAMH,EACZG,EAAML,EAAMC,EAAW,IAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,GAC9EC,EAAMF,EAAMC,EAAW,GAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,GAC9EK,EAAMD,EAAMH,EACZK,GAAOF,EAAMH,EACbA,EAAyF,sBAAlFF,EAAMC,EAAW,GAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,KAC/EI,EAAyF,sBAAlFL,EAAMC,EAAW,IAASf,EAAIE,GAAQC,YAAY,GAAKW,EAAMC,EAAW,IAC/ED,EAAMC,EAAW,GAAe,oBAANE,EAA4BD,EACtDF,EAAMC,EAAW,IAAgB,qBAANK,EAA4BD,EACvDD,EAAY,kBAANA,EAA2B,qBACjCE,EAAY,GAANA,EAAY,qBAAuBD,EACzCL,EAAMC,EAAW,GAASG,EAAME,EAChCN,EAAMC,EAAW,GAASG,EAAME,EAChCH,EAAY,GAANA,EAAY,qBAAuBD,EACzCK,EAAY,kBAANA,EAA2B,qBACjCP,EAAMC,EAAW,GAASE,EAAMI,EAChCP,EAAMC,EAAW,IAASE,EAAMI,EAChCN,GACF,CACF,CACA,SAASO,EAAUvE,EAAKwE,EAAQC,GAC9B,IAAIC,EAAIC,EAEFT,EAAKC,EAAKS,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EA6BnCZ,EAAKC,EAAKY,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EA5BvCrB,EAAMO,EAAI,IAAMA,EAAI,GACpBG,EAAMH,EAAI,IAAMA,EAAI,IACpBI,EAAMJ,EAAI,IAAMA,EAAI,IACpBK,EAAML,EAAI,GAAKA,EAAI,GACnBM,EAAMN,EAAI,GAAKA,EAAI,GACnBO,EAAMP,EAAI,GAAKA,EAAI,GACnBQ,EAAMR,EAAI,GAAKA,EAAI,GACnBzE,EAAIwE,EAAS,IAAMM,EAAME,EAAMC,GAAOF,EAAMN,EAAI,IAChDE,GAAMG,EAAME,EAAMC,GAAO5B,EAAG,KAAW0B,EAAMN,EAAI,IACjDC,GAAMR,EAAMU,EAAMC,GAAOxB,EAAG,IAC5BrD,EAAIwE,EAAS,GAAKE,EAAKC,EACvB3E,EAAIwE,EAAS,GAAKE,EAAKC,EACvBR,GAAOM,EAAI,IAAMA,EAAI,KAAOpB,EAAG,IAC/B0B,EAAMA,EAAM1B,EAAG,IAAUoB,EAAI,GAC7BC,EAAKR,EAAMb,EAAG,IAAUc,EAAMS,EAAMvB,EAAG,IAAUwB,EAAMxB,EAAG,IAC1DsB,GAAMG,EAAMzB,EAAG,IAAU0B,EAAMC,EAAM3B,EAAG,IAAU4B,EAAM5B,EAAG,IAC3DrD,EAAIwE,EAAS,GAAKE,EAAKC,EACvB3E,EAAIwE,EAAS,GAAKE,EAAKC,EACvBD,EAAKR,EAAMb,EAAG,IAAUc,EAAMS,EAAMvB,EAAG,IAAUwB,EAAMxB,EAAG,IAC1DsB,GAAMG,EAAMzB,EAAG,IAAU0B,EAAMC,EAAM3B,EAAG,IAAU4B,EAAM5B,EAAG,IAC3DrD,EAAIwE,EAAS,GAAKE,EAAKC,EACvB3E,EAAIwE,EAAS,IAAME,EAAKC,EACxBD,EAAKR,EAAMb,EAAG,IAAUc,EAAMS,EAAMvB,EAAG,IAAUwB,EAAMxB,EAAG,IAC1DsB,EAAKG,EAAMzB,EAAG,IAAU0B,EAAMC,EAAM3B,EAAG,IAAU4B,EAAM5B,EAAG,IAC1DrD,EAAIwE,EAAS,IAAME,EAAKC,EACxB3E,EAAIwE,EAAS,IAAME,EAAKC,EAIxBN,EAAMI,EAAI,GAAKA,EAAI,GACnBS,EAAMT,EAAI,GAAKA,EAAI,GACnBU,EAAMV,EAAI,GAAKA,EAAI,GACnBW,EAAMX,EAAI,IAAMA,EAAI,GACpBY,EAAMZ,EAAI,IAAMA,EAAI,IACpBa,EAAMb,EAAI,IAAMA,EAAI,IACpBc,EAAMd,EAAI,IAAMA,EAAI,IACpBzE,EAAIwE,EAAS,GAAKY,EAAME,EAAMC,GAAOF,EAAMZ,EAAI,KAC/CC,GAAMU,EAAME,EAAMC,GAAOlC,EAAG,KAAWgC,EAAMZ,EAAI,KACjDE,GAAMN,EAAMa,EAAMC,GAAO9B,EAAG,IAC5BrD,EAAIwE,EAAS,IAAME,EAAKC,EACxB3E,EAAIwE,EAAS,IAAME,EAAKC,EACxBL,GAAOG,EAAI,GAAKA,EAAI,IAAMpB,EAAG,IAC7BgC,EAAMZ,EAAI,IAAMY,EAAMhC,EAAG,IACzBqB,EAAKU,EAAM/B,EAAG,IAAUgC,EAAMC,EAAMjC,EAAG,IAAUkC,EAAMlC,EAAG,IAC1DsB,EAAKN,EAAMhB,EAAG,IAAUiB,EAAMY,EAAM7B,EAAG,IAAU8B,EAAM9B,EAAG,IAC1DrD,EAAIwE,EAAS,GAAKE,EAAKC,EACvB3E,EAAIwE,EAAS,GAAKE,EAAKC,EACvBD,GAAMU,EAAM/B,EAAG,IAAUgC,EAAMC,EAAMjC,EAAG,IAAUkC,EAAMlC,EAAG,IAC3DsB,EAAKN,EAAMhB,EAAG,IAAUiB,EAAMY,EAAM7B,EAAG,IAAU8B,EAAM9B,EAAG,IAC1DrD,EAAIwE,EAAS,GAAKE,EAAKC,EACvB3E,EAAIwE,EAAS,GAAKE,EAAKC,EACvBD,GAAMU,EAAM/B,EAAG,IAAUgC,EAAMC,EAAMjC,EAAG,IAAUkC,EAAMlC,EAAG,IAC3DsB,EAAKN,EAAMhB,EAAG,IAAUiB,EAAMY,EAAM7B,EAAG,IAAU8B,EAAM9B,EAAG,IAC1DrD,EAAIwE,EAAS,IAAME,EAAKC,EACxB3E,EAAIwE,EAAS,IAAME,EAAKC,CAE5B,CACA5pI,KAAKyqI,WAAa,SAASC,EAAKC,EAAIC,GAGlC,IAFA,IAAIC,EAAKF,EACLG,EAAQ,IACHC,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAAM,CAC5C,IAAK,IAAIE,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAAM,CAOvC,IANA,IAAIE,EACAC,EAAKV,EAAIW,QAAQC,GAAGL,GAAIF,GACxBQ,EAAWH,EAAGxC,GACd4C,EAAc,EACdC,EAAOf,EAAIgB,UAAUX,GAAI,EAAIE,GAC7BU,EAAU,EACL3pF,EAAI,EAAGA,EAAI,EAAQA,IAK1B,IAJAymF,EAAeoC,EAAIC,EAAOW,EAAKE,IAC/BlD,EAAeoC,EAAIC,EAAQ,GAAIW,EAAKE,EAAU,IAC9CA,GAAW,EACXb,GAAS,GACJK,EAAO,EAAGA,EAAO,GAAIA,GAAQ,EAChCM,EAAKE,EAAU,GAAGR,KAAU,EAGhC,IAAKA,EAAO,EAAGA,EAAO,GAAIA,IAAQK,GAAe,GAAI,CACnD,IAAIj5H,EAAO64H,EAAGQ,WACVC,EAAQnB,EAAIgB,UAAUX,GAAIE,GAC1Ba,EAAQpB,EAAIgB,UAAUX,GAAI,EAAIE,GAGlC,GAF2B,GAAvBG,EAAGW,kBAAyBZ,EAAO,IACrC54H,EAAO,GACLm4H,EAAIsB,WAAWb,GAAQ,MACzBvD,GAAS7nG,KAAKwrG,EAAUC,EAAc,EAAGA,EAAc,GAAI,OACtD,CACL,GAAId,EAAIsB,WAAWb,GAAQ,EACzB,IAASnpF,EAAI,EAAGA,EAAI,GAAIA,IACtB8pF,EAAM9pF,GAAG+3D,EAAMoxB,KAAUT,EAAIsB,WAAWb,GAG5C,GAAI54H,GAAQ61H,GAAQC,WAAY,CAC9B,IAASrmF,GAAKgmF,EAAK,EAAGhmF,EAAI,EAAGA,IAAK,CAChC,IAAI+mB,EAAIm/D,EAAIE,GAAQC,YAAYrmF,EAAI,GACpCupF,EAASC,EAAkB,EAAJxpF,EAAQ,GAAK6pF,EAAM,EAAI7pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI8iE,EAAM,EAAI7pF,GAAG+3D,EAAMoxB,IACvFI,EAASC,EAAkB,EAAJxpF,EAAQ,IAAM6pF,EAAM,GAAK7pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI8iE,EAAM,GAAK7pF,GAAG+3D,EAAMoxB,IAC1FI,EAASC,EAAkB,EAAJxpF,EAAQ,IAAM6pF,EAAM,GAAK7pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI8iE,EAAM,GAAK7pF,GAAG+3D,EAAMoxB,IAC1FI,EAASC,EAAkB,EAAJxpF,EAAQ,IAAM8pF,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI+iE,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IACxFI,EAASC,EAAkB,EAAJxpF,EAAQ,IAAM8pF,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI+iE,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IACxFI,EAASC,EAAkB,EAAJxpF,EAAQ,IAAM8pF,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IAASpiE,EAAI+iE,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,GAC1F,CACApC,EAAWwC,EAAUC,EACvB,KAAO,CACL,IAAIS,EAAOpE,GAAY,IACvB,IAAS7lF,GAAKimF,EAAK,EAAGjmF,EAAI,EAAGA,IAAK,CAChC,IAAIr3C,EAAGC,EACPD,EAAIu9H,EAAI31H,GAAMyvC,EAAI,IAAM8pF,EAAM9pF,EAAI,GAAG+3D,EAAMoxB,IAASjD,EAAI31H,GAAMyvC,EAAI,IAAM8pF,EAAM,EAAI9pF,GAAG+3D,EAAMoxB,IAC3FvgI,EAAIs9H,EAAI31H,GAAMyvC,EAAI,GAAK6pF,EAAM7pF,EAAI,GAAG+3D,EAAMoxB,IAASjD,EAAI31H,GAAMyvC,EAAI,IAAM6pF,EAAM,EAAI7pF,GAAG+3D,EAAMoxB,IAC1Fc,EAAKjqF,EAAI,GAAKr3C,EAAIC,EAAIu9H,EAAS,EAAInmF,EAAI,GACvCiqF,EAAKjqF,EAAI,IAAMr3C,EAAIw9H,EAAS,EAAInmF,EAAI,GAAKp3C,CAC3C,CACA4+H,EAAU+B,EAAUC,EAAaS,EACnC,CACF,CACA,GAAI15H,GAAQ61H,GAAQC,YAAsB,GAAR8C,EAChC,IAASnpF,EAAI,EAAGA,GAAK,IAAKA,EAAG,CAC3B,IAAIiH,EAAIijF,EACRjjF,EAAKsiF,EAASC,EAAcxpF,GAAKumF,EAAG,GAAKvmF,GAAKupF,EAASC,GAAe,EAAIxpF,GAAKwmF,EAAG,GAAKxmF,GACvFkqF,EAAKX,EAASC,EAAcxpF,GAAKwmF,EAAG,GAAKxmF,GAAKupF,EAASC,GAAe,EAAIxpF,GAAKumF,EAAG,GAAKvmF,GACvFupF,EAASC,GAAe,EAAIxpF,GAAKiH,EACjCsiF,EAASC,EAAcxpF,GAAKkqF,CAC9B,CAEJ,CACF,CAGA,GAFArB,EAAKD,EACLE,EAAQ,IACW,GAAfJ,EAAIQ,QACN,IAAK,IAAIhlI,EAAI,EAAGA,EAAI,GAAIA,IACtBwhI,GAASyE,UACPzB,EAAIgB,UAAUX,GAAI,GAAG7kI,GACrB,EACAwkI,EAAIgB,UAAUX,GAAI,GAAG7kI,GACrB,EACA,GAIR,CACF,CACF,CACA,IAAIkmI,GAAWzpI,GAAOgkI,OAClB0F,GAAc1pI,GAAOykI,UACrBkF,GAAgB3pI,GAAO0kI,YAC3B,SAASkF,KACPvsI,KAAKwK,EAAI6hI,GAAYjE,GAAQoE,SAC7BxsI,KAAK8a,EAAIwxH,GAAc,CAAClE,GAAQqE,QAAS,IACzC,IAAIjiE,EAAQxqE,KACZA,KAAKsZ,OAAS,SAASozH,GACrBN,GAASD,UAAUO,EAAaliI,EAAG,EAAGggE,EAAMhgE,EAAG,EAAG49H,GAAQoE,SAC1D,IAAK,IAAItmI,EAAI,EAAGA,EAAIkiI,GAAQqE,QAASvmI,IACnC,IAAK,IAAIonC,EAAI,EAAGA,EAAI,EAAGA,IACrBk9B,EAAM1vD,EAAE5U,GAAGonC,GAAKo/F,EAAa5xH,EAAE5U,GAAGonC,EAGxC,CACF,CACA,SAASq/F,KACP3sI,KAAK4sI,IAAM,IAAIL,GACfvsI,KAAK6sI,GAAK,IAAIN,EAChB,CACA,SAASO,GAASvH,GAChB,IAAIwH,EAAWxH,EACfvlI,KAAKulI,QAAU,WACb,OAAOwH,CACT,CACF,CACAD,GAASE,OAAS,IAAIF,GAAS,GAC/BA,GAASG,aAAe,IAAIH,GAAS,GACrCA,GAASI,aAAe,IAAIJ,GAAS,GACrCA,GAASK,KAAO,IAAIL,GAAS,GAC7BA,GAASM,QAAU,IAAIN,GAAS,GAChC,IAAIO,GAAW1qI,GAAOgkI,OAClB2G,GAAY3qI,GAAOikI,QACnBK,GAActkI,GAAOskI,YACrBsG,GAAc5qI,GAAOykI,UACrBoG,GAAgB7qI,GAAO0kI,YACvBoG,GAAY9qI,GAAO2kI,QACnBoG,GAAW/qI,GAAO8kI,OAqCtB,SAASW,KACP,IAAIuF,EAAYvF,GAAQuF,UACpBC,EAAexF,GAAQwF,aACvBvrC,EAAK,KACTriG,KAAK6tI,IAAM,KACX,IAAIA,EAAM,KACNC,EAAM,KACNC,EAAQ,KACZ/tI,KAAKguI,WAAa,SAASC,EAAKC,EAAMC,EAAQC,GAC5C/rC,EAAK4rC,EACLjuI,KAAK6tI,IAAMK,EACXL,EAAMK,EACNJ,EAAMM,EACNL,EAAQI,CACV,EACA,IAAIE,EAAU,IAAIvG,GAClB,SAASwG,EAAW5D,GAClB,IAAI6D,EAASC,EACb,GAAyB,GAArB9D,EAAI+D,IAAIC,UAkBZ,GAdAF,EAAU9D,EAAIiE,YAAY,GAAG,GAC7BJ,EAAU7D,EAAIiE,YAAY,GAAG,GACL,GAApBjE,EAAIM,cACNwD,GAAW9D,EAAIiE,YAAY,GAAG,GAC9BJ,GAAW7D,EAAIiE,YAAY,GAAG,KAE9BH,GAAWA,EACXD,GAAWA,GAEM,GAAf7D,EAAIQ,UACNsD,EAAUx9H,KAAKuF,IAAIi4H,EAASD,IAE9BC,GAAW,GACXA,GAAW9D,EAAI+D,IAAIG,eACfJ,EAAU,OACR9D,EAAI+D,IAAInnD,QAAU,EACpBojD,EAAI+D,IAAInnD,OAAS,EAEbojD,EAAI+D,IAAInnD,OAASojD,EAAI+D,IAAII,cAC3BnE,EAAI+D,IAAInnD,OAASojD,EAAI+D,IAAII,aAG7BnE,EAAI+D,IAAII,YAAc,MACjB,CACL,IAAIC,EAAc,MAAQN,EAAU,OAChC9D,EAAI+D,IAAInnD,QAAUwnD,GACpBpE,EAAI+D,IAAInnD,QAAwB,KAAdwnD,EAAsB,KACpCpE,EAAI+D,IAAInnD,OAASwnD,IACnBpE,EAAI+D,IAAInnD,OAASwnD,IAGfpE,EAAI+D,IAAII,aAAeC,EACzBpE,EAAI+D,IAAInnD,OAASwnD,EAEbpE,EAAI+D,IAAInnD,OAASojD,EAAI+D,IAAII,cAC3BnE,EAAI+D,IAAInnD,OAASojD,EAAI+D,IAAII,aAI/BnE,EAAI+D,IAAII,YAAcC,CACxB,MA3CEpE,EAAI+D,IAAInnD,OAAS,CA4CrB,CACA,SAASynD,EAAYrE,GACnB,IAAIO,EAAIF,EASR,IARA2C,GAAShD,EAAIsE,eAAiB,GAAKtE,EAAIsE,cAAgB,IACvDtB,GAAShD,EAAIuE,UAAY,GAAKvE,EAAIuE,SAAW,GAC7CvE,EAAIwE,wBAAwBxE,EAAIsE,eAAe,KAC/CtE,EAAIwE,wBAAwB,IAAI,KACR,GAApBxE,EAAIM,eACNN,EAAIwE,wBAAwBxE,EAAIsE,eAAetE,EAAIuE,YACnDvE,EAAIwE,wBAAwB,IAAIxE,EAAIuE,aAEjChE,EAAK,EAAGA,EAAKP,EAAIQ,UAAWD,EAC/B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,eAAgBD,EAAI,CACxC,IAAIoE,EAAyC,EAApCzE,EAAIW,QAAQC,GAAGL,GAAIF,GAAIa,WACe,GAA3ClB,EAAIW,QAAQC,GAAGL,GAAIF,GAAIgB,mBACzBoD,EAAK,GACPzE,EAAI0E,uBAAuB1E,EAAIsE,eAAeG,KAC9CzE,EAAI0E,uBAAuB1E,EAAIsE,eAAe,KAC9CtE,EAAI0E,uBAAuB,IAAID,KAC/BzE,EAAI0E,uBAAuB,IAAI,IACjC,CAEJ,CACA,SAASC,EAAuBC,EAAKC,GACnC,IACIxE,EAAIE,EADJP,EAAM4E,EAAIE,eAEd,GAAkC,GAA9B9E,EAAI2E,uBAA6B,CACnC,IAAInpI,EAAGonC,EACHmiG,EAAalC,GAAY,MACzBmC,EAAanC,GAAY,MAE7B,IADA7C,EAAI2E,uBAAyB,EACxBnpI,EAAI,EAAGonC,EAAI,EAAGpnC,EAAI,IAAM,KAAO,EAAIwkI,EAAIQ,WAAYhlI,EAClDA,EAAI,IAAMwkI,EAAIQ,SAChBuE,EAAWvpI,GAAK,EACQ,GAApBwkI,EAAIM,eACN0E,EAAWxpI,GAAK,KAElBupI,EAAWvpI,GAAKqpI,EAAM,GAAGjiG,GACD,GAApBo9F,EAAIM,eACN0E,EAAWxpI,GAAKqpI,EAAM,GAAGjiG,MACzBA,GAGN,IAAK29F,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCL,EAAIW,QAAQC,GAAGL,GAAIF,GAAIa,WAAaxD,GAAQC,WAGhDgG,EAAQ5D,WAAWC,EAAK+E,EAAYC,GACpChC,GAAShD,EAAIiF,SAAWvH,GAAQwH,QAAUN,EAAIO,UAAYzH,GAAQuF,WAClED,GAAShD,EAAIiF,SAAW,IAAML,EAAIO,UAAY,GAChD,CACF,CACA7vI,KAAK8vI,sBAAwB,SAASR,EAAKS,EAASC,EAASC,EAAQC,EAAWC,GAC9E,IAAIC,EACAC,EAAapJ,GAAY,CAAC,EAAG,IACjCoJ,EAAW,GAAG,GAAK,IAAI1D,GACvB0D,EAAW,GAAG,GAAK,IAAI1D,GACvB0D,EAAW,GAAG,GAAK,IAAI1D,GACvB0D,EAAW,GAAG,GAAK,IAAI1D,GACvB,IAKI2D,EALAC,EAAatJ,GAAY,CAAC,EAAG,IACjCsJ,EAAW,GAAG,GAAK,IAAI5D,GACvB4D,EAAW,GAAG,GAAK,IAAI5D,GACvB4D,EAAW,GAAG,GAAK,IAAI5D,GACvB4D,EAAW,GAAG,GAAK,IAAI5D,GAEvB,IAYI6D,EACAzF,EAAIE,EAbJsE,EAAQ,CAAC,KAAM,MACf7E,EAAM4E,EAAIE,eACViB,EAAWjD,GAAc,CAAC,EAAG,IAC7BkD,EAAgB,CAAC,GAAK,IACtBC,EAAK,CACP,CAAC,EAAG,GACJ,CAAC,EAAG,IAEFC,EAAQ,CACV,CAAC,EAAG,GACJ,CAAC,EAAG,IAcN,GAVArB,EAAM,GAAKQ,EACXR,EAAM,GAAKS,EACuB,GAA9BtF,EAAI2E,wBACNA,EAAuBC,EAAKC,GAE9B7E,EAAImG,QAAU,GACTnG,EAAIoG,UAAYpG,EAAIqG,UAAY,IACnCrG,EAAIoG,UAAYxB,EAAI0B,eACpBtG,EAAImG,QAAU,GAEI,GAAhBnG,EAAIuG,SAAe,CACrB,IAAI10H,EACA20H,EAAO,CAAC,KAAM,MACdC,EAAU,EACVC,EAAY3D,GAAU,GAC1B,IAAKxC,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAAM,CACnC,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCmG,EAAKnG,GAAMwE,EAAMxE,GACjBoG,EAAU,IAAW,IAALlG,EAAW7C,GAAQuF,UA6BrC,GA1BEpxH,EADE+yH,EAAI+B,KAAO/D,GAAU9G,UAAY8I,EAAI+B,KAAO/D,GAAUjH,OAClDwH,EAAIyD,kBACRhC,EACA4B,EACAC,EACAlG,EACAoF,EACAE,EACAI,EAAG1F,GACH2F,EAAM3F,GACNwF,EAASxF,GACTmG,GAGIvD,EAAI0D,iBACRjC,EACA4B,EACAC,EACAlG,EACAoF,EACAE,EACAI,EAAG1F,GACH2F,EAAM3F,GACNwF,EAASxF,GACTmG,GAGO,GAAP70H,EACF,OAAQ,EAOV,IANI+yH,EAAIt5H,MAAQ82H,GAASG,eACvByD,EAAczF,GAAMwF,EAASxF,GAAI,GAAKwF,EAASxF,GAAI,GAC/CyF,EAAczF,GAAM,IACtByF,EAAczF,GAAMwF,EAASxF,GAAI,GAAKyF,EAAczF,KAGnDF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAAM,CACxC,IAAIyG,EAAW9G,EAAIW,QAAQC,GAAGL,GAAIF,GAClCyG,EAAS5F,WAAawF,EAAUrG,GAChCyG,EAASzF,iBAAmB,CAC9B,CACF,CACF,MACE,IAAKd,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCL,EAAIW,QAAQC,GAAGL,GAAIF,GAAIa,WAAaxD,GAAQqJ,UAC5C/G,EAAIW,QAAQC,GAAGL,GAAIF,GAAIgB,iBAAmB,EAC1C6E,EAAM3F,GAAIF,GAAM4F,EAAG1F,GAAIF,GAAM,IAOnC,GAHAuD,EAAW5D,GACX2D,EAAQ5D,WAAWC,EAAK6E,EAAM,GAAIA,EAAM,IACxC7E,EAAIuE,SAAW7G,GAAQsJ,aACnBpC,EAAIqC,SACNjH,EAAIuE,SAAW7G,GAAQwF,kBAClB,GAAI0B,EAAIt5H,MAAQ82H,GAASG,aAAc,CAC5C,IAAI2E,EAAY,EACZC,EAAY,EAChB,IAAK5G,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClC6G,GAAahB,EAAM3F,GAAIF,GACvB8G,GAAalB,EAAG1F,GAAIF,GAGxB,GAAI6G,GAAa,EAAIC,EAAW,CAC9B,IAAIC,EAAMpH,EAAIW,QAAQC,GAAG,GACrByG,EAAMrH,EAAIW,QAAQC,GAAGZ,EAAIQ,QAAU,GACnC4G,EAAI,GAAGlG,YAAckG,EAAI,GAAGlG,YAAcmG,EAAI,GAAGnG,YAAcmG,EAAI,GAAGnG,aACxElB,EAAIuE,SAAW7G,GAAQwF,aAE3B,CACF,CAQA,GAPIlD,EAAIuE,UAAYrB,GAClB0C,EAAUC,EACVC,EAASI,IAETN,EAAUD,EACVG,EAASG,GAEPrB,EAAI0C,UAAyB,MAAbtH,EAAIuH,MACtB,IAAKhH,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCL,EAAIuH,MAAMC,SAASjH,GAAMP,EAAIwH,SAASjH,GACtCP,EAAIuH,MAAMvB,cAAczF,GAAMyF,EAAczF,GAC5CP,EAAIuH,MAAMb,UAAUnG,GAAIF,GAAML,EAAIW,QAAQC,GAAGL,GAAIF,GAAIa,WACrDlB,EAAIuH,MAAMtB,GAAG1F,GAAIF,GAAMyF,EAAOvF,GAAIF,GAClCsC,GAASlB,UACPzB,EAAIW,QAAQC,GAAGL,GAAIF,GAAInC,GACvB,EACA8B,EAAIuH,MAAMrJ,GAAGqC,GAAIF,GACjB,EACA,KAEEL,EAAIuE,UAAYrB,IAClBlD,EAAIuH,MAAME,IAAIlH,GAAIF,GAAML,EAAIuH,MAAME,IAAIlH,GAAIF,EAAK,GAC/CsC,GAASlB,UACPzB,EAAIuH,MAAMG,OAAOnH,GAAIF,EAAK,GAC1B,EACAL,EAAIuH,MAAMG,OAAOnH,GAAIF,GACrB,EACAL,EAAIuH,MAAMG,OAAOnH,GAAIF,GAAIzpI,SAMnC,GAAIguI,EAAI+B,KAAO/D,GAAUlH,SAAWkJ,EAAI+B,KAAO/D,GAAU/G,QAAS,CAChE,IAAIrgI,EACAyH,EACJ,IAAKzH,EAAI,EAAGA,EAAI,GAAIA,IAClBwkI,EAAI2H,MAAMC,SAASpsI,GAAKwkI,EAAI2H,MAAMC,SAASpsI,EAAI,GAEjD,IADAyH,EAAI,EACCs9H,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCp9H,GAAK6iI,EAAOvF,GAAIF,GAIpB,IAFAL,EAAI2H,MAAMC,SAAS,IAAM3kI,EACzBA,EAAI+8H,EAAI2H,MAAMC,SAAS,GAClBpsI,EAAI,EAAGA,EAAI,EAAGA,IACjByH,IAAM+8H,EAAI2H,MAAMC,SAASpsI,GAAKwkI,EAAI2H,MAAMC,SAAS,GAAKpsI,IAAMkiI,GAAQmK,QAAQrsI,GAG9E,IADAyH,EAAI,KAAU+8H,EAAIQ,QAAUR,EAAIM,aAAer9H,EAC1Cs9H,EAAK,EAAGA,EAAKP,EAAIQ,QAASD,IAC7B,IAAKF,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAClCyF,EAAOvF,GAAIF,IAAOp9H,CAGxB,CAMA,GALA+8H,EAAI8H,eAAeA,eAAelD,EAAKkB,EAAQE,EAAeJ,GAC9DjuC,EAAGowC,iBAAiBnD,GACpBc,EAAW/tC,EAAGqwC,YAAYhI,EAAKuF,EAAQC,EAAWC,EAAa,GAC3Db,EAAIqD,cACN7E,EAAI8E,YAAYtD,GACdA,EAAI0C,UAAyB,MAAbtH,EAAIuH,MAAe,CACrC,IAAKlH,EAAK,EAAGA,EAAKL,EAAIM,aAAcD,IAAM,CACxC,IAAIz9F,EACJ,IAAKA,EAAI,EAAGA,EAAIqgG,EAAWrgG,IACzBo9F,EAAIuH,MAAMY,QAAQ9H,GAAIz9F,GAAKo9F,EAAIuH,MAAMY,QAAQ9H,GAAIz9F,EAAIgiG,EAAIO,WAE3D,IAAKviG,EAAIqgG,EAAWrgG,EAAI,KAAMA,IAC5Bo9F,EAAIuH,MAAMY,QAAQ9H,GAAIz9F,GAAKiiG,EAAMxE,GAAIz9F,EAAIqgG,EAE7C,CACAI,EAAM+E,gBAAgBxD,EAAKgB,EAC7B,CAEA,OADAvB,EAAYrE,GACL0F,CACT,CACF,CA3VAhI,GAAQ2K,SAAW,IACnB3K,GAAQ4K,UAAY,KACpB5K,GAAQ6K,UAAY,GACpB7K,GAAQuF,UAAY,IAAMvF,GAAQ6K,UAClC7K,GAAQ8K,SAAW,IACnB9K,GAAQ+K,QAAU,GAClB/K,GAAQgL,OAAS,GACjBhL,GAAQiL,QAAU,GAClBjL,GAAQkL,QAAU,GAClBlL,GAAQoE,QAAU,GAClBpE,GAAQqE,QAAU,GAClBrE,GAAQmL,OAAS,EACjBnL,GAAQoL,OAAS,EACjBpL,GAAQwH,QAAU,KAClBxH,GAAQqL,SAAWrL,GAAQwH,QAAU,EAAI,EACzCxH,GAAQsL,UAAY,IACpBtL,GAAQuL,WAAavL,GAAQsL,UAAY,EAAI,EAC7CtL,GAAQqJ,UAAY,EACpBrJ,GAAQwL,WAAa,EACrBxL,GAAQC,WAAa,EACrBD,GAAQyL,UAAY,EACpBzL,GAAQsJ,aAAe,EACvBtJ,GAAQ0L,YAAc,EACtB1L,GAAQwF,aAAe,EACvBxF,GAAQ2L,YAAc,EACtB3L,GAAQmK,QAAU,EAChB,UACA,SACa,GAAZ,UACD,QACA,YACA,SAAY,EACZ,OACA,QACA,QAAW,GA0Tb,IAAIyB,GAASrxI,GAAOokI,KAChBkN,GAActxI,GAAOykI,UACzB,SAAS8M,KACP,IAAIC,EAAUF,GAAY7L,GAAQwH,SAC9BwE,EAAWH,GAAY7L,GAAQsL,UAAY,GAC3CW,EAAS,CACX,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,kBACA,qBAEF,SAASC,EAAIC,EAAIC,EAAOngI,GACtB,IACIogI,EACAC,EACAtJ,EAHAuJ,EAAM,EAIVtgI,IAAM,EACN,IAAIvS,EAAK0yI,EAAQngI,EACjBogI,EAAK,EACL,EAAG,CACD,IAAIhqF,EAAIb,EACJ1jD,EAAG0uI,EAAIC,EAAIC,EAAIC,EACnBA,EAAKN,GAAM,EACXG,EAAKH,EACLI,EAAKJ,GAAM,EACXK,EAAKD,EAAKD,EACVH,EAAKI,GAAM,EACXH,EAAKF,EACLpJ,EAAKsJ,EAAKK,EACV,EAAG,CAEDC,EAAKT,EAAGG,EAAK,GAAKH,EAAGG,EAAKE,GAC1BK,EAAKV,EAAGG,EAAK,GAAKH,EAAGG,EAAKE,GAC1BM,EAAKX,EAAGG,EAAKG,GAAMN,EAAGG,EAAKI,GAC3BK,EAAKZ,EAAGG,EAAKG,GAAMN,EAAGG,EAAKI,GAC3BP,EAAGG,EAAKG,GAAMI,EAAKE,EACnBZ,EAAGG,EAAK,GAAKO,EAAKE,EAClBZ,EAAGG,EAAKI,GAAME,EAAKE,EACnBX,EAAGG,EAAKE,GAAMI,EAAKE,EACnBF,EAAKT,EAAGnJ,EAAK,GAAKmJ,EAAGnJ,EAAKwJ,GAC1BK,EAAKV,EAAGnJ,EAAK,GAAKmJ,EAAGnJ,EAAKwJ,GAC1BM,EAAKlB,GAAOxO,MAAQ+O,EAAGnJ,EAAK0J,GAC5BK,EAAKnB,GAAOxO,MAAQ+O,EAAGnJ,EAAKyJ,GAC5BN,EAAGnJ,EAAKyJ,GAAMI,EAAKE,EACnBZ,EAAGnJ,EAAK,GAAK6J,EAAKE,EAClBZ,EAAGnJ,EAAK0J,GAAME,EAAKE,EACnBX,EAAGnJ,EAAKwJ,GAAMI,EAAKE,EACnB9J,GAAMqJ,EACNC,GAAMD,CACR,OAASC,EAAK5yI,GAGd,IAFA8nD,EAAKyqF,EAAOM,EAAM,GAClBlqF,EAAK4pF,EAAOM,EAAM,GACbzuI,EAAI,EAAGA,EAAI6uI,EAAI7uI,IAAK,CACvB,IAAI4jD,EAAIY,EACRZ,EAAK,EAAI,EAAIW,EAAKA,EAClBC,EAAK,EAAID,EAAKb,EACd8qF,EAAKF,EAAQtuI,EACbklI,EAAKoJ,EAAQI,EAAK1uI,EAClB,EAAG,CACD,IAAIyE,EAAGC,EAAGwqI,EAAIH,EAAID,EAAIK,EAAIF,EAAIG,EAAIJ,EAAIK,EACtC3qI,EAAI8/C,EAAK6pF,EAAGG,EAAKE,GAAM9qF,EAAKyqF,EAAGnJ,EAAKwJ,GACpCjqI,EAAIm/C,EAAKyqF,EAAGG,EAAKE,GAAMlqF,EAAK6pF,EAAGnJ,EAAKwJ,GACpCI,EAAKT,EAAGG,EAAK,GAAK/pI,EAClBsqI,EAAKV,EAAGG,EAAK,GAAK/pI,EAClB0qI,EAAKd,EAAGnJ,EAAK,GAAKxgI,EAClBwqI,EAAKb,EAAGnJ,EAAK,GAAKxgI,EAClBA,EAAI8/C,EAAK6pF,EAAGG,EAAKI,GAAMhrF,EAAKyqF,EAAGnJ,EAAK0J,GACpCnqI,EAAIm/C,EAAKyqF,EAAGG,EAAKI,GAAMpqF,EAAK6pF,EAAGnJ,EAAK0J,GACpCI,EAAKX,EAAGG,EAAKG,GAAMlqI,EACnBwqI,EAAKZ,EAAGG,EAAKG,GAAMlqI,EACnB4qI,EAAKhB,EAAGnJ,EAAKyJ,GAAMjqI,EACnB0qI,EAAKf,EAAGnJ,EAAKyJ,GAAMjqI,EACnBA,EAAI6/C,EAAK0qF,EAAKvrF,EAAK2rF,EACnB5qI,EAAIi/C,EAAKurF,EAAK1qF,EAAK8qF,EACnBhB,EAAGG,EAAKG,GAAMI,EAAKtqI,EACnB4pI,EAAGG,EAAK,GAAKO,EAAKtqI,EAClB4pI,EAAGnJ,EAAK0J,GAAMO,EAAKzqI,EACnB2pI,EAAGnJ,EAAKwJ,GAAMS,EAAKzqI,EACnBA,EAAIg/C,EAAK0rF,EAAK7qF,EAAKyqF,EACnBvqI,EAAI8/C,EAAK6qF,EAAK1rF,EAAKsrF,EACnBX,EAAGnJ,EAAKyJ,GAAMO,EAAKzqI,EACnB4pI,EAAGnJ,EAAK,GAAKgK,EAAKzqI,EAClB4pI,EAAGG,EAAKI,GAAME,EAAKpqI,EACnB2pI,EAAGG,EAAKE,GAAMI,EAAKpqI,EACnBwgI,GAAMqJ,EACNC,GAAMD,CACR,OAASC,EAAK5yI,GACdgoD,EAAKF,EACLA,EAAKE,EAAKuqF,EAAOM,EAAM,GAAKlqF,EAAK4pF,EAAOM,EAAM,GAC9ClqF,EAAKX,EAAKuqF,EAAOM,EAAM,GAAKlqF,EAAK4pF,EAAOM,EAAM,EAChD,CACAA,GAAO,CACT,OAASF,EAAKpgI,EAChB,CACA,IAAImhI,EAAS,CACX,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,KAEFx1I,KAAKy1I,UAAY,SAAS/K,EAAKgL,EAAQC,EAAKpwI,EAAQqwI,GAClD,IAAK,IAAIhrI,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIwJ,EAAIg0H,GAAQsL,UAAY,EACxB1xF,EAAI,MAAQ,KAAWp3C,EAAI,GAC3B0iC,EAAI86F,GAAQsL,UAAY,EAAI,EAChC,EAAG,CACD,IAAIuB,EAAID,EAAIG,EAAID,EAAInsE,EAChB7iE,EAAqB,IAAjBsvI,EAAOloG,GAAK,GACpB2nG,EAAKb,EAASluI,GA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SAC7BxsI,KAAK8a,EAAI23I,GAAYrqB,GAAQqE,SAC7BzsI,KAAKwtJ,OAASiF,GAAYrqB,GAAQmL,QAClCvzI,KAAKytJ,OAASgF,GAAYrqB,GAAQoL,QAClCxzI,KAAK+5I,KAAO0Y,GAAYrqB,GAAQgL,QAChCpzI,KAAK85I,KAAO2Y,GAAYrqB,GAAQgL,QAChCpzI,KAAK83I,MAAQ2a,GAAYrqB,GAAQwH,QAAU,EAC7C,CACA,IAAI8iB,GAAW/vJ,GAAOgkI,OAClBgsB,GAAWhwJ,GAAOqkI,OActB,SAAS4rB,KACP,IAAIC,EAAW,MACXC,EAAiB,IACjBC,EAA4BH,GAAeG,0BAC3CC,EAA8BJ,GAAeI,4BAC7CC,EAAS,CACX,CACE,eACC,kBACA,gBACD,kBACC,iBACA,mBACA,eACD,mBACC,iBACA,kBACD,gBACA,iBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,gBACA,iBAEF,CACE,gBACC,kBACA,gBACD,kBACC,iBACA,kBACA,gBACD,iBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,gBACD,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,gBACD,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACC,iBAEH,CACE,iBACC,kBACA,gBACD,iBACC,iBACA,eACD,iBACC,gBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,iBACC,cACD,gBACA,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,eACD,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,iBACC,gBACA,iBACA,gBACA,gBACD,gBACA,gBACA,iBACC,iBACA,eACD,iBACC,gBAEH,CACE,gBACC,iBACA,gBACD,iBACC,iBACA,eACA,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACA,gBACA,gBACA,iBACC,gBACD,iBACC,gBACD,gBACA,iBAEF,CACE,iBACC,kBACA,gBACD,gBACA,gBACC,gBACD,gBACA,iBACC,gBACD,gBACA,gBACC,iBACA,gBACD,eACA,iBACC,gBACD,gBACA,iBACC,eACD,iBACC,iBAEH,CACE,iBACC,iBACA,iBACA,iBACA,iBACA,gBACD,gBACA,eACA,gBACA,gBACA,iBACC,iBACA,iBACA,gBACD,iBACC,gBACD,gBACA,iBACC,gBACD,iBACC,iBAEH,CACE,iBACC,gBACA,iBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,gBACA,iBACC,iBACA,iBACA,iBACA,iBACA,aACD,gBACA,eACA,gBACC,kBAGDC,EAAW,CACb,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,eACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,iBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,kBAGJ,SAASC,EAAW39I,EAAO49I,EAAUC,EAAQC,EAAWC,EAAUC,GAChE,MAAqB,GAAdD,IACLF,EAAOC,GAAa,MAAQ99I,EAAM49I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKh+I,EAAM49I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKh+I,EAAM49I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKh+I,EAAM49I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKh+I,EAAM49I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKh+I,EAAM49I,EAAW,GAAKI,EAAO,IAAMH,EAAOC,EAAY,GAAKE,EAAO,IAAMh+I,EAAM49I,EAAW,GAAKI,EAAO,IAAMH,EAAOC,EAAY,GAAKE,EAAO,IAAMh+I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,GACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,IAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GAEFA,IAAe,CAAC,EAAG,EAAG,EAAG,GACzBA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAC9DA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7DA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,OAAkB,CAChB,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,GAASh3D,GAAK,CACZ,IAAI22D,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASC,KAAMD,GAASE,KAC9C,IAAIP,GAAY,EAAG,EAAGK,GAASG,KAAMH,GAASI,KAC9C,IAAIT,GAAY,EAAG,EAAGK,GAASK,KAAML,GAASM,KAC9C,IAAIX,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASO,KAAMP,GAASQ,KAC9C,IAAIb,GAAY,EAAG,EAAGK,GAASS,KAAMT,GAASU,KAC9C,IAAIf,GAAY,EAAG,EAAGK,GAASW,KAAMX,GAASY,KAC9C,IAAIjB,GAAY,EAAG,EAAGK,GAASa,KAAMb,GAASc,KAC9C,IAAInB,GAAY,EAAG,EAAGK,GAASe,KAAMf,GAASgB,KAC9C,IAAIrB,GAAY,EAAG,EAAGK,GAASiB,MAAOjB,GAASkB,MAC/C,IAAIvB,GAAY,EAAG,EAAGK,GAASmB,MAAOnB,GAASoB,MAC/C,IAAIzB,GAAY,EAAG,EAAGK,GAASqB,MAAOrB,GAASsB,MAC/C,IAAI3B,GAAY,GAAI,EAAGK,GAASuB,MAAOvB,GAASwB,MAChD,IAAI7B,GAAY,EAAG,EAAG,KAAMK,GAASyB,QACrC,IAAI9B,GAAY,GAAI,EAAGK,GAAS0B,MAAO1B,GAAS2B,MAChD,IAAIhC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,IAAKK,GAAS4B,MAAO5B,GAAS6B,MACjD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,EAAG,EAAGK,GAASgC,MAAOhC,GAASiC,MAC/C,IAAItC,GAAY,EAAG,EAAGK,GAASkC,MAAOlC,GAASmC,OAEjDnC,GAASoC,SAAW,CAClB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFpC,GAASqC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFrC,GAASsC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFtC,GAASuC,cAAgB,CACvB,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KACC,GAEH,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,KACC,GAEH,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAE9DvC,GAASwC,iBAAmB,CAC1B,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,KAAM,IAEtBxC,GAASyC,WAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IACrC,IAAIC,GAAYr5J,GAAOikI,QACnBC,GAAQlkI,GAAOkkI,MACfo1B,GAASt5J,GAAOokI,KAChBm1B,GAAcv5J,GAAOykI,UACrB+0B,GAAYx5J,GAAO2kI,QACnB80B,GAAWz5J,GAAO8kI,OAKtB,SAAS40B,KACP,IAAIC,EAAM,KACNnE,EAAK,KACLtqB,EAAM,KAMV,SAAS0uB,EAAMnoJ,GACb,OAAOooJ,EAAMpoJ,EAAIioJ,GAAYI,OAC/B,CAPAz8J,KAAKguI,WAAa,SAAS0uB,EAAKC,EAAKzuB,GACnCouB,EAAMI,EACNvE,EAAKwE,EACL9uB,EAAMK,CACR,EAIAluI,KAAK48J,OAAS,SAASxoJ,GACrB,OAAOyoJ,EAAOzoJ,EAChB,EACA,IAAI0oJ,EAAc,qBACdC,EAAYV,GAAYU,UACxBC,EAAeD,EAAY,EAC3BE,EAAQZ,GAAYY,MACpBR,EAASJ,GAAYI,OACr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G,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAGvB,IAAIqP,EAAQN,GAAYe,EAAQR,EAAS,GACrCI,EAASX,GAAYe,GACrBK,EAAQpB,GAAYc,GACpBO,EAAQrB,GAAYc,GAExB,SAASQ,EAAQluB,EAAK3hI,GACpB,IAAIqtI,EAAMnN,EAAIoZ,WAAWt5I,EAAG2hI,GAG5B,OAFA0L,GAAOkiB,EACPliB,EAAMhqI,KAAKqoI,IAAI,GAAI2B,EAAM,GAAK1L,EAAIyR,UAC3B/F,CACT,CACA,SAASyiB,EAAYnuB,GAOnB,IANA,IAAIouB,EAAQpuB,EAAIE,eAAef,IAA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AMka,EAAIC,EAAMtB,EAAOC,EAAOsB,EAASC,GACnHv4K,KAAK4oJ,WAAal3H,EAClB1xB,KAAKs3K,aAAeZ,EACpB12K,KAAKg4K,UAAYb,EACjBn3K,KAAKw4K,QAAUpB,EACfp3K,KAAKw3K,OAASb,EACd32K,KAAKy3K,KAAOb,EACZ52K,KAAKy4K,OAASva,EACdl+J,KAAK2pH,MAAQyuD,EACbp4K,KAAK03K,YAAcW,EACnBr4K,KAAK43K,UAAYb,EACjB/2K,KAAK63K,UAAYb,EACjBh3K,KAAK+3K,QAAUO,EACft4K,KAAK04K,QAAUH,CACjB,CACA,IAAII,EACJ34K,KAAKguI,WAAa,SAAS4qC,GACzBD,EAAOC,CACT,EACA,IAAIC,EAAqB,CACvB,IAAIrC,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,EACA,KACC,IACA,IACD,IACA,KACC,EACD,EACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,IACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,KACD,KACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,KACC,KACD,GACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,MACC,KACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACC,GACD,IACC,GACD,KACA,EACA,EACA,IAGAsC,EAAqB,CACvB,IAAItC,EACF,EACA,EACA,EACA,EACA,IACA,IACC,GACA,EACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,KAAM,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,MACnE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,KACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAK,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,MACpE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,KACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACC,KACD,GACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,EACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,IACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,GACA,EACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,IAGJ,SAASuC,EAAiBzpC,EAAK3kI,EAAGwH,GAChC,IAAI6mK,EAAa1pC,EAAI+B,KAAOilC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sL,QAAS,GAAK,IACpCtL,EAAIsL,MAAQ5tE,EAAK4tE,OACJ,GAAXzoI,IACFm9H,EAAI2Z,MAAQt+I,EACZ2kI,EAAI0Z,WAAa50I,EAErB,CACA,IAAI+kK,EAAiB,CACnB,IAAIjB,EACF,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,MACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,EACA,IACA,EACA,KACC,EACD,EACA,IACA,EACA,GAEF,IAAIA,EACF,I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,GAAOmkI,WACpBE,GAASrkI,GAAOqkI,OAChB64C,GAAal9K,GAAOukI,SACpB44C,GAAWn9K,GAAO8kI,OAGtB,SAASs4C,KACP,IAAIpH,EACAt2E,EACA97F,EACJvG,KAAKguI,WAAa,SAAS4qC,EAAO3qC,EAAK97F,GACrCwmI,EAAOC,EACPv2E,EAAK4rC,EACL1nI,EAAI4rC,CACN,EACA,IAAI6tI,EAAc,EACdC,EAAa,EACbC,EAAW,EACXC,EAAiB,EACjBC,EAAgBL,GAAOK,cACvBC,EAAeN,GAAOM,aACtBC,EAAgBF,EAAgB,EAAI,EAAI,EAAI,EAAI,EAChDG,EAAiBD,EAAgB,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EACjFE,EAAgB,IAChBC,EAAgB,GAChBC,EAAiB,GACjBC,EAAa,KACbC,EAAU,OACVC,EAAU,OACVC,EAAc,CAChB,EACA,MACA,MACA,IACA,MACA,IACA,IACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,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,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,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,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,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,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,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,MACA,OAEF,SAASC,EAAOC,EAAIxR,GAIlB,GAHAwR,EAAG7yB,gBACH6yB,EAAGp9B,KAAO4rB,EACVwR,EAAGpyJ,SACCoyJ,EAAGpyJ,KAAOoyJ,EAAG/yB,QAGb+yB,EAAGniD,IAAMmiD,EAAG/iK,OACd+iK,EAAG9yB,IAAI8yB,EAAGniD,KAAOmiD,EAAGp9B,IACpBo9B,EAAGniD,MACHmiD,EAAGpyJ,KAAO,GAERoyJ,EAAGniD,KAAOmiD,EAAG/iK,MAAM,CACrB,IAAK,IAAI/X,EAAI,EAAGA,EAAI86K,EAAG/iK,KAAM/X,GAAK,EAChC86K,EAAG9yB,IAAIhoJ,EAAI,GAAK86K,EAAG9yB,IAAIhoJ,GAEzB86K,EAAG/yB,MAAQ,EACX+yB,EAAGniD,KAAO,CACZ,CACF,CACA,SAASoiD,EAAcD,EAAIr2I,GACzB,KAAIq2I,EAAGniD,KAAO,GAEd,IAAK,IAAI34H,EAAI,EAAGA,EAAIk6K,IAAiBl6K,EAAG,CACtC,IACIg7K,EACAt9B,EAFAt2G,EAAIpnC,EAAIk6K,EAGRe,EAAO,EAAInwK,KAAKkD,MAAMo5B,EAAI0zI,EAAGniD,KAC7BsiD,EAAOH,EAAGniD,IAAM,IAClBsiD,EAAOH,EAAGniD,IAAM,GAClBqiD,EAAMF,EAAG9yB,IAAIizB,GACbv9B,EAAMo9B,EAAGp9B,IACT,IAAIw9B,EAAa,EAAI,IAAMF,EAAMt9B,EAC7Bw9B,EAAa,MACfA,EAAa,KACfz2I,EAAEzkC,GAAK,IAAMk7K,CACf,CACF,CAOA,SAASC,EAAepkG,EAAK24D,GAC3B,IAAIxhI,EAAsB,IAAlB6oE,EAAI24D,EAAS,GAOrB,OANAxhI,IAAM,EACNA,GAAuB,IAAlB6oE,EAAI24D,EAAS,GAClBxhI,IAAM,EACNA,GAAuB,IAAlB6oE,EAAI24D,EAAS,GAClBxhI,IAAM,EACNA,GAAuB,IAAlB6oE,EAAI24D,EAAS,GACXxhI,CACT,CACA,SAASktK,EAAcrkG,EAAK24D,EAAQj1I,GAClCs8E,EAAI24D,EAAS,GAA0B,IAAdj1I,GAAS,GAClCs8E,EAAI24D,EAAS,GAA0B,IAAdj1I,GAAS,GAClCs8E,EAAI24D,EAAS,GAAyB,IAAbj1I,GAAS,EAClCs8E,EAAI24D,EAAS,GAAoB,IAARj1I,CAC3B,CACA,SAAS4gL,EAAYtkG,EAAK24D,EAAQj1I,GAChCs8E,EAAI24D,EAAS,GAAyB,IAAbj1I,GAAS,EAClCs8E,EAAI24D,EAAS,GAAoB,IAARj1I,CAC3B,CACA,SAAS6gL,EAASvkG,EAAK24D,GACrB,OAAO,IAAI1pI,OAAO+wE,EAAK24D,EAAQgrC,EAAQt/K,SAAUq/K,GAAYc,OAAOb,IAAY,IAAI10K,OAAO+wE,EAAK24D,EAAQirC,EAAQv/K,SAAUq/K,GAAYc,OAAOZ,EAC/I,CACA,SAASa,EAAiBttK,EAAGC,EAAG2sK,GAC9B,OAAO,KAAO5sK,GAAKC,EAAI2sK,KAAQ,GAAK3sK,GACtC,CACA,SAASstK,EAAsBryC,EAAK/pI,GAClC,IAAImlI,EAAM4E,EAAIE,eACdjqI,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG,KAC3CA,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG,GAC3CA,EAAO,GAAKm8K,EACVn8K,EAAO,GACP,EACA+pI,EAAI0B,eAAiB,KAAO,EAAI,GAElCzrI,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAIzgI,SAC/CtJ,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG,GAC3CA,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAI+pI,EAAImZ,iBAAuB,EAAJ,GACnEljJ,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAGmlI,EAAIsE,eAC/CzpI,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAGmlI,EAAI+kB,kBAC/ClqJ,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG,GAC3CA,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAI78D,WAC/CltE,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAIt5H,KAAKuvH,WACpDhgI,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAGmlI,EAAIuE,UAC/C1pI,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAIr5H,WAC/C1Q,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAIkZ,UAC/CjjJ,EAAO,GAAKm8K,EAAiBn8K,EAAO,GAAI,EAAG+pI,EAAIj5D,UAC/C9wE,EAAO,GAAK,IACZ,IACIiqK,EAWAoS,EAZAC,EAA2B,IAAZt8K,EAAO,GAGxBiqK,EADiB,GAAflgC,EAAIzgI,QACI2xK,EAENlxC,EAAI0B,eAAiB,KACb0vC,EAEAD,EAEVnxC,EAAI+B,KAAOzK,GAAQR,UACrBopC,EAAUlgC,EAAIgZ,OAGds5B,EADEtyC,EAAI4Y,YACE,EAEA,IAAM,GAAKywB,EAAKhI,aAAanB,EAASlgC,EAAIzgI,QAASygI,EAAI0B,gBAE9C,GAAf1B,EAAIzgI,SACNtJ,EAAO,GAAK,KAAe,GAARs8K,GACnBA,EAA2B,GAAZt8K,EAAO,GACtBA,EAAO,GAAK,KAAOq8K,EAAQC,KAE3Bt8K,EAAO,GAAK,KAAe,EAARs8K,GACnBA,EAA2B,GAAZt8K,EAAO,GACtBA,EAAO,GAAK,KAAOq8K,EAAQC,GAE/B,CAuGA,SAASC,EAAgBnhL,EAAO4pK,GAC9B,IAAI/tJ,EAAM+tJ,EAAM5pK,EAEhB,OADA4pK,EAAMA,GAAO,EAAIuW,EAAkB,IAANtkK,GACtB+tJ,CACT,CAMA,SAASwX,EAAWzyC,EAAK0yC,EAAaC,EAAcC,EAAiB3X,GACnE,IAMIz8B,EAEAq0C,EAoBAC,EA5BA13C,EAAM4E,EAAIE,eACV6yC,EAAe,EACfC,EAAWhzC,EAAI8a,cACfm4B,EAAajzC,EAAI+a,gBACjBpC,EAAU,IAAM,GAAK3Y,EAAI2Z,MAAQ3Z,EAAI2Y,QACrC/tC,EAAW3zG,EAAEk5K,0BAEb+C,EAAW,EAEXC,EAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACvC/S,EAAU,GAAKpgC,EAAIga,YAAc,IAAM,GAAM,IAAM,IAAMha,EAAIga,YAAc,IAAM,IACjFo5B,EAAsB,EACtBC,EAAkB,EAClBC,EAAuB,EACvBC,EAAevzC,EAAIE,eAAesgB,cAClCgzB,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAO,EACPC,EAAW,EACXC,EAAyC,IAAN,EAApB7zC,EAAI6X,eACnBi8B,EAAuC,IAAN,EAApB9zC,EAAI6X,eACjBk8B,GAAY,EACZC,GAAgB,EAChBC,EAAaj0C,EAAIE,eAAekiB,YAChC8xB,EAAYl0C,EAAIE,eAAemiB,cAC/B8xB,EAAUn0C,EAAI+X,QACd7sB,EAAQ,EAEZ,OAAQ8U,EAAI+B,KACV,KAAK9K,QACH67C,EAAa9yC,EAAI4Z,sBACjB,MACF,KAAK9iB,QACHg8C,EAAa9yC,EAAIgZ,MACjB,MACF,QACE85B,EAAa9yC,EAAI6Z,qBAmCrB,OAhCErb,EADEwB,EAAI+B,IAAI9L,UAAYk9C,EAAkBnhL,OAClCmhL,EAAkBnzC,EAAI+B,IAAI9L,WAE1B,EACR48C,EAAY,GAAKK,EAAW10C,EACxBpD,EAAIyd,iBACFzd,EAAIonB,UAAY,MAClBpnB,EAAIonB,UAAY,KACdpnB,EAAIonB,WAAa,MACnBpnB,EAAIonB,WAAa,KACnB6wB,EAAkB,KAClBA,GAAmB,KACfj4C,EAAIonB,WAAa,EACnB6wB,GAAmBj4C,EAAIonB,WAEvB6wB,GAAmB,IACnBA,IAAoBj4C,EAAIonB,YAGxBpnB,EAAIknB,iBACN8wB,EAAsB1xK,KAAKy1G,IACzB,EAAIikB,EAAImnB,WAAa,MAAQ7gJ,KAAKqoI,IAAI,EAAG,IAAM,MAGhC,GAAfkqC,IACEC,EAAY,IACdF,GAAgB,GACdE,EAAYD,EAAa,IAC3BF,GAAY,IAEhB7oD,EAAQipD,IAAYN,EAAc,EAAI,IAAM,KAAOC,EAAY,EAAI,IAAM,KAAOC,EAAY,EAAI,IAAM,KAAOC,EAAgB,EAAI,IAAM,GACnIr7B,EAAU,IACZA,EAAU,GACJ3Y,EAAIt5H,MACV,KAAKm3H,KACH21C,EAAa,EACb,MACF,KAAK91C,OACH81C,EAAa,EACb,MACF,KAAK51C,aACH41C,EAAa,EACb,MACF,KAAK71C,aAED61C,EADExzC,EAAIqC,SACO,EAEA,EACf,MACF,KAAKvE,QACL,QACE01C,EAAa,EACb,MAGFE,EADE1zC,EAAIuY,eAAiB,KACV,EACe,MAArBvY,EAAIuY,cACE,EACNvY,EAAIuY,cAAgB,KACd,EAEA,GAEXvY,EAAI8N,cAAgBtW,GAAWd,oBAAsBsJ,EAAI8N,cAAgBtW,GAAWf,wBAA6C,GAApBuJ,EAAIga,cAA0C,GAArBha,EAAIia,cAAsBja,EAAIwY,WAAaxY,EAAIyY,aAAezY,EAAIwY,WAAaxY,EAAIyY,aAAezY,EAAIqZ,mBAAqBrZ,EAAIgZ,MAAQ,KAAOhZ,EAAIwa,OAASxa,EAAIsa,SAAsB,GAAX65B,GAAgBn0C,EAAIuY,eAAiB,QACvVk7B,EAAa,GAEfE,EAAOJ,GAAgBC,GAAc,IAAMC,GAAc,IAAMC,GAAc,GAC7EE,EAAWx4C,EAAI2lB,UACfixB,EAAcW,EAAcC,EAAkBG,EAAcp6B,GAC5Do6B,GAAgB,EAChB,IAAK,IAAI/0I,EAAI,EAAGA,EAAI,EAAGA,IACrB20I,EAAaC,EAAkBG,EAAe/0I,GAAK,IAAM4sE,EAASnxG,OAAOukC,GAE3E+0I,GAAgB,EAChBJ,EAAaC,EAAkBG,GAAgB,IAAMF,EACrDE,IACAJ,EAAaC,EAAkBG,GAAgB,IAAM3S,EACrD2S,IACAf,EACEW,EACAC,EAAkBG,EAClBK,GAEFL,GAAgB,EAChBd,EAAYU,EAAcC,EAAkBG,EAAcM,GAC1DN,GAAgB,EAChBd,EACEU,EACAC,EAAkBG,EAClBO,GAEFP,GAAgB,EAChBJ,EAAaC,EAAkBG,GAAgB,IAAM7nD,EACrD6nD,IAEEJ,EAAaC,EAAkBG,GAD7BD,GAAc,IAC+B,IAEA,IAAMA,EACvDC,IACAJ,EAAaC,EAAkBG,GAAgB,IAAMC,GAAY,EACjEL,EAAaC,EAAkBG,EAAe,GAAK,KAAOC,GAAY,IAAMC,GAAc,GAC1FN,EAAaC,EAAkBG,EAAe,GAAK,IAAME,EACzDF,GAAgB,EAChBJ,EAAaC,EAAkBG,GAAgB,IAAMY,EACrDZ,IACAJ,EAAaC,EAAkBG,KAAkB,EACjDd,EAAYU,EAAcC,EAAkBG,EAAc/yC,EAAIyZ,QAC9Ds5B,GAAgB,EAChBf,EAAcW,EAAcC,EAAkBG,EAAcL,GAC5DK,GAAgB,EAChBd,EAAYU,EAAcC,EAAkBG,EAAca,GAC1Db,GAAgB,EAChB,IAAK,IAAIn8K,EAAI,EAAGA,EAAIm8K,EAAcn8K,IAChCqkK,EAAMuX,EAAgBG,EAAaC,EAAkBh8K,GAAIqkK,GAI3D,OAFAgX,EAAYU,EAAcC,EAAkBG,EAAc9X,GAC1D8X,GAAgB,EACTA,CACT,CACA,SAASqB,EAAUC,GACjBA,EAASC,KAAK,GACd,IAEIC,EAFAC,EAAcjE,GAAW,IAQ7B,OAPA8D,EAASI,UAAUD,GAKjBD,EAHG,IAAI33K,OAAO43K,EAAa,cAAczqK,WAAW,OAGrC,IAFmB,IAAjByqK,EAAY,KAAa,IAAuB,IAAjBA,EAAY,KAAa,IAAuB,IAAjBA,EAAY,KAAa,EAAqB,IAAjBA,EAAY,IAAYA,EAAYxiL,OAI3IuiL,CACT,CA5WA7jL,KAAK4yI,YAAc,SAAStD,GAC1B,IAAI5E,EAAM4E,EAAIE,eACV2oC,EAAO6L,OAAOnoB,cAAcvsB,EAAIzgI,SAAS67H,EAAIsE,eACjD8wC,GAAmC,MAA1Bp1C,EAAI+mB,eAAevD,KAC5B6yB,EAAOr2C,EAAI+mB,eAAgB0mB,EAC7B,EA6EAn4K,KAAKikL,UAAY,SAAShnG,GACxB,IAAIinG,EAAW,IAAIC,WACfvuC,EAAS,EACbsuC,EAAS1pD,MAAQ,EACjB,IAAI4pD,EAAMnnG,EAAI24D,EAAS,IAAM,EAAI,EAC7ByuC,EAAWpnG,EAAI24D,EAAS,IAAM,EAAI,EAClC0uC,EAAQrnG,EAAI24D,EAAS,IAAM,EAAI,EAC/B2uC,EAAWtnG,EAAI24D,EAAS,IAAM,EAAI,GAiBtC,GAhBA2uC,EAAWP,OAAOnoB,cAAcuoB,GAAKG,GACjCtnG,EAAI24D,EAAS,IAAM,GAAK,GAC1BsuC,EAASM,SAAWR,OAAOloB,iBAAiB,GAAGuoB,GAE/CH,EAASM,SAAWR,OAAOloB,iBAAiBsoB,GAAKC,GAG/CzuC,GAFO,GAAPwuC,EACW,GAATE,EACQ,GAEA,GAEC,GAATA,EACQ,GAEA,IAET9C,EAASvkG,EAAK24D,GACjB,OAAO,KACTA,GAAU,EACVsuC,EAASE,IAAMA,EACf,IAAIK,EAAaP,EAAS1pD,MAAQ6mD,EAAepkG,EAAK24D,GAUtD,GATAA,GAAU,EACwB,IAA7B6uC,EAAazE,KAChBkE,EAASQ,OAASrD,EAAepkG,EAAK24D,GACtCA,GAAU,GAEqB,IAA5B6uC,EAAaxE,KAChBiE,EAAStjE,MAAQygE,EAAepkG,EAAK24D,GACrCA,GAAU,GAEmB,IAA1B6uC,EAAavE,GAAgB,CAChC,GAAoB,MAAhBgE,EAASS,IACX,IAAK,IAAIz+K,EAAI,EAAGA,EAAIk6K,EAAel6K,IACjCg+K,EAASS,IAAIz+K,GAAK+2E,EAAI24D,EAAS1vI,GAGnC0vI,GAAUwqC,CACZ,CACA8D,EAASU,UAAY,EACgB,IAAhCH,EAAatE,KAChB+D,EAASU,SAAWvD,EAAepkG,EAAK24D,GACxCA,GAAU,GAEZsuC,EAASW,WAAyB,MAAXT,EAAM,GAAYG,EAAWL,EAASM,SAC7D5uC,GAAU,GACV,IAAI0sC,EAAWrlG,EAAI24D,EAAS,IAAM,EAClC0sC,GAAYrlG,EAAI24D,EAAS,IAAM,EAC/B,IAAI2sC,GAAgC,GAAlBtlG,EAAI24D,EAAS,KAAY,EAQ3C,OAPA2sC,GAAgC,IAAlBtlG,EAAI24D,EAAS,IACvB0sC,EAAW,GAAKA,EAAW,OAC7BA,GAAY,IACVC,EAAa,GAAKA,EAAa,OACjCA,GAAc,GAChB2B,EAAS5B,SAAWA,EACpB4B,EAAS3B,WAAaA,EACf2B,CACT,EACAlkL,KAAK2xK,WAAa,SAASriC,GACzB,IACIw1C,EADAp6C,EAAM4E,EAAIE,eAGZs1C,EADiB,GAAfx1C,EAAIzgI,QACQ2xK,EAEVlxC,EAAI0B,eAAiB,KACT0vC,EAEAD,EAEdnxC,EAAI+B,KAAOzK,GAAQR,UACrB0+C,EAAcx1C,EAAIgZ,OACpB,IAAIy8B,EAAqC,MAAnBz1C,EAAIzgI,QAAU,GAAYi2K,EAAcx1C,EAAI0B,eAC9Dg0C,EAAat6C,EAAIqmB,aAAewvB,EAEpC,GADA71C,EAAI+mB,eAAepD,eAAiB02B,EAChCA,EAAiBC,GAAcD,EAAiB1E,EAClD/wC,EAAIqD,cAAe,MADrB,CAIAjI,EAAI+mB,eAAetD,cAAgB,EACnCzjB,EAAI+mB,eAAerD,cAAgB,EACnC1jB,EAAI+mB,eAAe7N,IAAM,EACzBlZ,EAAI+mB,eAAe7iI,KAAO,EAC1B87G,EAAI+mB,eAAexD,KAAO,EAC1BvjB,EAAI+mB,eAAe5yB,IAAM,EACK,MAA1B6L,EAAI+mB,eAAevD,MACrBxjB,EAAI+mB,eAAevD,IAAM,IAAIpM,IAAI,KACjCpX,EAAI+mB,eAAexzI,KAAO,KAE5B,IAAI1Y,EAASs6K,GAAWQ,GACxBsB,EAAsBryC,EAAK/pI,GAE3B,IADA,IAAI8O,EAAIq2H,EAAI+mB,eAAepD,eAClBnoJ,EAAI,EAAGA,EAAImO,IAAKnO,EACvBm8F,EAAGyqE,eAAex9B,EAAiB,IAAZ/pI,EAAOW,GAAU,EAf1C,CAiBF,EAMAlG,KAAKktK,eAAiB,SAAS3C,EAAKhlK,EAAQwnK,EAAW5uF,GACrD,IAAK,IAAIj4E,EAAI,EAAGA,EAAIi4E,IAASj4E,EAC3BqkK,EAAI,GAAKuX,EAAgBv8K,EAAOwnK,EAAY7mK,GAAIqkK,EAAI,GAExD,EA4KAvqK,KAAKilL,gBAAkB,SAAS31C,EAAK/pI,GACnC,IAAImlI,EAAM4E,EAAIE,eACd,IAAKF,EAAIqD,aACP,OAAO,EAET,GAAIjI,EAAIqkB,UAAYm2B,KAAKnV,QACvB,OAAO,EAET,GAAIrlC,EAAI+mB,eAAe5yB,KAAO,EAC5B,OAAO,EAET,GAAIt5H,EAAOjE,OAASopI,EAAI+mB,eAAepD,eACrC,OAAO3jB,EAAI+mB,eAAepD,eAE5BrnB,GAAOjnG,KAAKx6B,EAAQ,EAAGmlI,EAAI+mB,eAAepD,eAAgB,GAC1DszB,EAAsBryC,EAAK/pI,GAC3B,IAAIo/K,EAAM9E,GAAWO,GACrB,GAAI9wC,EAAI4Y,YACN,IAAK,IAAIhiJ,EAAI,EAAGA,EAAIk6K,IAAiBl6K,EACnCy+K,EAAIz+K,GAAK,IAAM,IAAMA,EAAI,SAE3B+6K,EAAcv2C,EAAI+mB,eAAgBkzB,GAEpC,IAAIQ,EAAcz6C,EAAIqmB,aAClBzhB,EAAImZ,mBACN08B,GAAe,GACb71C,EAAI+B,KAAOzK,GAAQR,SACrB7gI,EAAO4/K,KAAiB,IAAMtE,EAAQ93K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMtE,EAAQ93K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMtE,EAAQ93K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMtE,EAAQ93K,OAAO,KAE7CxD,EAAO4/K,KAAiB,IAAMvE,EAAQ73K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMvE,EAAQ73K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMvE,EAAQ73K,OAAO,GAC7CxD,EAAO4/K,KAAiB,IAAMvE,EAAQ73K,OAAO,IAE/Cu4K,EACE/7K,EACA4/K,EACAnF,EAAcC,EAAaC,EAAWC,GAExCgF,GAAe,EACf7D,EAAc/7K,EAAQ4/K,EAAaz6C,EAAI+mB,eAAetD,eACtDg3B,GAAe,EACf,IAAIC,EAAa16C,EAAI+mB,eAAerD,cAAgB1jB,EAAI+mB,eAAepD,eACvEizB,EAAc/7K,EAAQ4/K,EAAa,EAAIC,GACvCD,GAAe,EACfx+C,GAAOwF,UAAUw4C,EAAK,EAAGp/K,EAAQ4/K,EAAaR,EAAIrjL,QAClD6jL,GAAeR,EAAIrjL,OACfguI,EAAImZ,kBACNpmD,EAAGqoE,gBAAgBhgC,EAAKnlI,GAE1B,IAAIglK,EAAM,EACV,IAASrkK,EAAI,EAAGA,EAAIi/K,EAAaj/K,IAC/BqkK,EAAMuX,EAAgBv8K,EAAOW,GAAIqkK,GAEnC,OADA4a,GAAepD,EAAWzyC,EAAK81C,EAAY7/K,EAAQ4/K,EAAa5a,GACzD7/B,EAAI+mB,eAAepD,cAC5B,EACAruJ,KAAKqlL,UAAY,SAAS/1C,EAAKnuD,GAC7B,IAAIupD,EAAM4E,EAAIE,eACd,GAAI9E,EAAI+mB,eAAe5yB,KAAO,EAC5B,OAAQ,EAEV,GADA19C,EAAOyiG,KAAKziG,EAAO7/E,UACI,GAAnB6/E,EAAO7/E,SACT,OAAQ,EACV,IAAIuiL,EAAeH,EAAUviG,GAC7BA,EAAOyiG,KAAKC,GACZ,IAAIt+K,EAASs6K,GAAWQ,GACpBz/D,EAAQqkE,gBAAgB31C,EAAK/pI,GACjC,OAAIq7G,EAAQr7G,EAAOjE,QACT,GAENs/G,EAAQ,GAGZz/B,EAAOt6E,MAAMtB,EAAQ,EAAGq7G,GAFf,EAIX,CACF,CA7vBAm/D,GAAOK,cAAgB,IACvBL,GAAOM,aAAe,KA6vBtB,IAAIn5C,GAAWvkI,GAAOukI,SAClBO,GAAS9kI,GAAO8kI,OACpB,SAAS69C,KACPtlL,KAAKguI,WAAa,SAASu3C,EAAQC,GACnC,CACF,CACA,SAASC,KACPzlL,KAAKguI,WAAa,SAAS03C,EAAMC,EAAMC,GACvC,CACF,CACA,SAASC,KACT,CACA,SAASC,KACP9lL,KAAKguI,WAAa,SAAS+3C,EAAOpc,GAClC,CACF,CACA,SAASqc,GAAaC,EAAUvV,EAAYyH,GAClB,GAApBp3K,UAAUO,SACZ2rB,QAAQ5qB,MAAM,8DACd4jL,EAAW,EACXvV,EAAa,MACbyH,EAAO,KAET,IAAIQ,EAAO,IAAInL,GACX0Y,EAAO,IAAIZ,GACXhc,EAAK,IAAI1W,GACTvwD,EAAK,IAAIw9D,GACT/zF,EAAK,IAAIyqG,GACTxoC,EAAQ,IAAIsuB,GACZ6S,EAAK,IAAI4K,GACThsC,EAAM,IAAIiyC,GACVvW,EAAM,IAAIyV,GACV9P,EAAM,IAAI2W,GACV3tB,EAAK,IAAIqmB,GACTliB,EAAM,IAAIsG,GACV2iB,EAAS,IAAIE,GACblc,EAAM,IAAIsc,GACdlN,EAAK3qC,WAAWs7B,EAAIjnE,EAAIv2B,EAAIiiE,EAAOmhC,EAAIphC,EAAK07B,EAAK2F,EAAK5F,GACtDlnE,EAAG2rC,WAAWs7B,EAAIC,EAAKC,EAAK17B,GAC5BqhC,EAAInhC,WAAW3rC,EAAImnE,GACnB19F,EAAGkiE,WAAW2qC,GACdzJ,EAAGlhC,WAAW3rC,EAAI81D,EAAIpqB,EAAOuuB,GAC7BvuB,EAAMC,WAAWsuB,EAAKnE,EAAIwgB,EAAKhJ,IAAI9hC,KACnCsqB,EAAGnqB,WAAW3rC,GACdi6D,EAAItuB,WAAWD,GACfD,EAAIE,WAAW2qC,EAAMt2E,EAAImnE,GACzB0c,EAAKl4C,WAAWu3C,EAAQhc,GACxBgc,EAAOv3C,WAAWw7B,EAAK2F,EAAKrjG,GAC5B,IAAIwjE,EAAMqpC,EAAKtE,YACf/kC,EAAIsY,aAAeq+B,EACnB32C,EAAIuY,cAAgB6oB,EACpBphC,EAAIgZ,MAAQ6vB,EACZ7oC,EAAIt5H,KAAO82H,GAASE,OACpBsC,EAAI2Y,QAAU,EACd3Y,EAAIqD,cAAe,EACnBrD,EAAIqZ,mBAAoB,EACxBrZ,EAAI+Y,wBAAyB,EAC7BswB,EAAKhE,iBAAiBrlC,GACtB,IAAI62C,EAAa,KACbh2C,EAAc,EAAI,KAAOg2C,EAAa,KACtCl2C,EAAS/I,GAASiJ,GACtBnwI,KAAKomL,aAAe,SAAStlH,EAAMwD,GACjB,GAAZ2hH,IACF3hH,EAAQxD,GAEV2mE,GAAO3mE,EAAKx/D,QAAUgjE,EAAMhjE,QACxBw/D,EAAKx/D,OAAS6kL,IAChBA,EAAarlH,EAAKx/D,OAClB6uI,EAAc,EAAI,KAAOg2C,EAAa,KACtCl2C,EAAS/I,GAASiJ,IAEpB,IAAIk2C,EAAM1N,EAAKvC,mBACb9mC,EACAxuE,EACAwD,EACAxD,EAAKx/D,OACL2uI,EACA,EACAE,GAEF,OAAO,IAAIxM,UAAUsM,EAAOq2C,SAAS,EAAGD,GAC1C,EACArmL,KAAK2+B,MAAQ,WACX,IAAI0nJ,EAAM1N,EAAKlD,kBAAkBnmC,EAAKW,EAAQ,EAAGE,GACjD,OAAO,IAAIxM,UAAUsM,EAAOq2C,SAAS,EAAGD,GAC1C,CACF,CACA,SAASE,GAAYC,GACnB,OAAOA,EAAOz7K,WAAW,IAAM,GAAKy7K,EAAOz7K,WAAW,IAAM,GAAKy7K,EAAOz7K,WAAW,IAAM,EAAIy7K,EAAOz7K,WAAW,EACjH,CACAw7K,GAAY,QACZA,GAAY,QACZA,GAAY,QACZA,GAAY,QACZ,MAAME,GACJ,WAAA78K,CAAYpP,GACVwF,KAAK0mL,QAAUlsL,EAAOksL,QACtB1mL,KAAK2mL,WAAansL,EAAOmsL,WACzB3mL,KAAK4mL,WAAa,GAClB5mL,KAAK6mL,QAAU,IAAIb,GAAa,EAAGhmL,KAAK2mL,WAAY3mL,KAAK0mL,QAC3D,CACA,MAAAtgL,CAAO0gL,GACL,MAAMX,EAAa,KACbY,EAAU/mL,KAAKgnL,eAAeF,GACpC,IAAIzjB,EAAY0jB,EAAQzlL,OACxB,IAAK,IAAI4E,EAAI,EAAGm9J,GAAa,EAAGn9J,GAAKigL,EAAY,CAC/C,MAAMrlH,EAAOimH,EAAQT,SAASpgL,EAAGA,EAAIigL,GAC/B5gL,EAASvF,KAAK6mL,QAAQT,aAAatlH,GACzC9gE,KAAK4mL,WAAWvlL,KAAK,IAAIsiI,UAAUp+H,IACnC89J,GAAa8iB,CACf,CACF,CACA,MAAAc,GACEjnL,KAAK4mL,WAAWvlL,KAAKrB,KAAK6mL,QAAQloJ,SAClC,MAAMuoJ,EAAO,IAAIC,KAAKnnL,KAAK4mL,WAAY,CAAEr0K,KAAM,cAE/C,OADAvS,KAAK4mL,WAAa,GACX,CACL/kL,GAAIuF,KAAKQ,MACTs/K,OACAtrL,IAAKwrL,IAAIC,gBAAgBH,GAE7B,CACA,gBAAAI,CAAiB9xK,EAAO69I,GACtB,IAAK,IAAIntJ,EAAI,EAAGA,EAAIsP,EAAMlU,OAAQ4E,IAAK,CACrC,MAAM4U,EAAI9J,KAAKuF,KAAK,EAAGvF,KAAKwF,IAAI,EAAGhB,EAAMtP,KACzCmtJ,EAAOntJ,GAAK4U,EAAI,EAAQ,MAAJA,EAAgB,MAAJA,CAClC,CACF,CACA,cAAAksK,CAAeF,GACb,MAAMjsL,EAAO,IAAIopI,aAAa6iD,GACxB7hD,EAAM,IAAIpB,WAAWijD,EAAYxlL,QAEvC,OADAtB,KAAKsnL,iBAAiBzsL,EAAMoqI,GACrBA,CACT,EAEF,MAAMsiD,GACJ,WAAA39K,CAAYuE,EAAU,CAAC,GACrBnO,KAAKwnL,gBAAkBr5K,EAAQq5K,gBAC/BxnL,KAAKynL,eAAiBt5K,EAAQs5K,eAC9BznL,KAAK0nL,eAAiBv5K,EAAQu5K,eAC9B1nL,KAAK2nL,UAAYx5K,EAAQw5K,UACzB3nL,KAAK4nL,eAAiB,CACpBlB,QAASv4K,EAAQu4K,QACjBC,WAAYx4K,EAAQw4K,YAEtB3mL,KAAK6nL,WAAa,KAClB7nL,KAAK8nL,QAAU,GACf9nL,KAAK+nL,SAAU,EACf/nL,KAAKgoL,aAAc,EACnBhoL,KAAK60D,SAAW,EAChB70D,KAAKioL,OAAS,EACdjoL,KAAKkoL,UAAY,CACnB,CACA,KAAAr6J,GACE,MAAMs6J,EAAc,CAClBC,OAAO,EACPC,MAAO,CACLC,aAAc,EACdC,kBAAkB,IAGtBvoL,KAAKwnL,iBAAmBxnL,KAAKwnL,gBAAgB,mBAC7Cv/K,UAAUugL,aAAaC,aAAaN,GAAa5pL,KAAKyB,KAAK0oL,aAAa/pL,KAAKqB,OAAO8Z,MAAM9Z,KAAK2oL,UAAUhqL,KAAKqB,OAC9GA,KAAK+nL,SAAU,EACf/nL,KAAKgoL,aAAc,EACdhoL,KAAK4oL,cACR5oL,KAAK4oL,YAAc,IAAInC,GAAWzmL,KAAK4nL,gBAE3C,CACA,IAAAroK,GACEvf,KAAKmhF,OAAO0nG,YAAYnrL,SAASorL,GAAWA,EAAOvpK,SACnDvf,KAAKwV,MAAM0kD,aACXl6D,KAAK+oL,UAAU7uH,aACfl6D,KAAKf,QAAQgmD,QACb,IAAI+jI,EAAS,KACbA,EAAShpL,KAAK4oL,YAAY3B,SAC1B+B,EAAOn0H,SAAW70D,KAAK60D,SACvB70D,KAAK8nL,QAAQzmL,KAAK2nL,GAClBhpL,KAAKkoL,UAAY,EACjBloL,KAAK60D,SAAW,EAChB70D,KAAK+nL,SAAU,EACf/nL,KAAKgoL,aAAc,EACnBhoL,KAAK0nL,gBAAkB1nL,KAAK0nL,eAAesB,EAC7C,CACA,KAAA9oD,GACElgI,KAAKmhF,OAAO0nG,YAAYnrL,SAASorL,GAAWA,EAAOvpK,SACnDvf,KAAKwV,MAAM0kD,aACXl6D,KAAK+oL,UAAU7uH,aACfl6D,KAAKkoL,UAAYloL,KAAK60D,SACtB70D,KAAK+nL,SAAU,EACf/nL,KAAKynL,gBAAkBznL,KAAKynL,eAAe,kBAC7C,CACA,YAAAiB,CAAavnG,GACXnhF,KAAKf,QAAU,IAAK+J,OAAOigL,cAAgBjgL,OAAOkgL,oBAClDlpL,KAAK60D,SAAW70D,KAAKkoL,UACrBloL,KAAKwV,MAAQxV,KAAKf,QAAQkqL,wBAAwBhoG,GAClDnhF,KAAK+oL,UAAY/oL,KAAKf,QAAQmqL,sBAAsBppL,KAAK6nL,WAAY,EAAG,GACxE7nL,KAAKmhF,OAASA,EACdnhF,KAAK+oL,UAAUM,eAAkBz2E,IAC/B,MAAM02E,EAAS12E,EAAG22E,YAAYC,eAAe,GAC7C,IAAI5lC,EAAM,EACN5jJ,KAAK4oL,aACP5oL,KAAK4oL,YAAYxiL,OAAOkjL,GAE1B,IAAK,IAAIpjL,EAAI,EAAGA,EAAIojL,EAAOhoL,SAAU4E,EACnC09I,GAAO0lC,EAAOpjL,GAAKojL,EAAOpjL,GAE5BlG,KAAK60D,SAAWv5C,WAAWtb,KAAKkoL,WAAa5sK,WAAWtb,KAAKf,QAAQmhI,YAAYqpD,QAAQ,IACzFzpL,KAAKioL,OAASj3K,KAAKgzI,KAAKJ,EAAM0lC,EAAOhoL,QAAQmoL,QAAQ,EAAE,EAEzDzpL,KAAKwV,MAAMk0K,QAAQ1pL,KAAK+oL,WACxB/oL,KAAK+oL,UAAUW,QAAQ1pL,KAAKf,QAAQw+E,YACtC,CACA,SAAAkrG,CAAUtmL,GACRrC,KAAK2nL,WAAa3nL,KAAK2nL,UAAUtlL,EACnC,EAEF,IAAIsnL,GAAa3gL,OAAO4gL,OACpBC,GAAS7gL,OAAOf,UAChB6hL,GAAaD,GAAOE,OACpBC,GAAgC,qBAAfhhL,OAAOihL,IACxBC,GAAWL,GAAO3hL,UAAU3L,QAAQ,QAAU,EAC9C4tL,GAAcN,GAAO3hL,UAAUV,MAAM,SACzC,SAAS4iL,KACP,QAAID,IAEsB,OAAfR,IAA6C,qBAAfA,IAA6C,gBAAfG,KAA4C,IAAZE,KAAkC,IAAbE,EAK9H,CACA,SAASG,KACP,IAAIniL,EAAYoiL,KACZC,EAAgBriL,EAAUuB,OAAO,EAAG,GACxC,MAAO,sVAAsV5B,KAC3VK,IACG,8+CAA8+CL,KACj/C0iL,EAEJ,CACA,SAASD,KACP,IAAIpiL,EAAYD,UAAUC,WAAaD,UAAU8hL,QAAU/gL,OAAOwhL,OAAS,KAC3E,IAAKtiL,EACH,MAAM,IAAI5F,MAAM,8CAClB,OAAO4F,CACT,CACA,MAAMuiL,GAAc,CAClB1nL,KAAM,aACNw0C,WAAY,CACV05B,WACA6rD,wBACAmB,aACA8D,oBACAW,gBACAM,cACAS,sBAEF/iG,WAAY,CACVquE,aAAcV,IAEhB1iG,MAAO,CACL4iG,KAAM,CAAEh8F,KAAMjO,OAAQ0qE,UAAU,GAChChI,OAAQ,CAAEz0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GAC5C07G,YAAa,CAAEn4K,KAAMrG,OAAQ6wB,QAAS,MACtCytE,eAAgB,CAAEj4F,KAAMjO,OAAQ0qE,UAAU,GAC1Cu8B,YAAa,CAAEh5F,KAAMjO,OAAQ0qE,UAAU,GACvCmC,aAAc,CAAE5+D,KAAMjO,OAAQ0qE,UAAU,GACxC27G,aAAc,CAAEp4K,KAAMsvB,QAASmtC,UAAU,GACzC47G,UAAW,CAAEr4K,KAAMsvB,QAASmtC,UAAU,GACtC67G,UAAW,CAAEt4K,KAAMsvB,QAASmtC,UAAU,GACtC87G,WAAY,CAAEv4K,KAAMsvB,QAASmtC,UAAU,GACvC+7G,WAAY,CAAEx4K,KAAMsvB,QAASmtC,UAAU,GACvCg8G,cAAe,CAAEz4K,KAAMrG,OAAQ8iE,UAAU,GACzCi8G,cAAe,CAAE14K,KAAMsvB,QAAS9E,SAAS,GACzCmuJ,aAAc,CAAE34K,KAAMrG,OAAQ8iE,UAAU,GACxCm8G,sBAAuB,CAAE54K,KAAMsvB,QAASmtC,UAAU,GAClDo8G,kBAAmB,CAAE74K,KAAMsvB,QAASmtC,UAAU,GAC9Cq8G,gBAAiB,CAAE94K,KAAMsvB,QAASmtC,UAAU,GAC5Cs8G,wBAAyB,CAAE/4K,KAAMsvB,QAASmtC,UAAU,GACpDu8G,cAAe,CAAEh5K,KAAMtM,MAAO82B,QAAS,MACvCyuJ,aAAc,CAAEj5K,KAAMkJ,OAAQuzD,UAAU,GACxCy8G,gBAAiB,CAAEl5K,KAAMkJ,OAAQuzD,UAAU,GAC3C08G,iBAAkB,CAAEn5K,KAAMjO,OAAQy4B,QAAS,MAC3C4uJ,gBAAiB,CAAEp5K,KAAMjO,OAAQy4B,QAAS,MAC1C6uJ,aAAc,CAAEr5K,KAAMtM,MAAO82B,QAAS,MACtC0+F,gBAAiB,CAAElpH,KAAMrG,OAAQ6wB,aAAS,IAE5CjK,MAAO,CACL,eACA,eACA,2BACA,0BACA,kBAEF,IAAAj4B,GACE,MAAO,CACLkF,QAAS,GACT8rL,cAAe,CAAC,EAChB/qD,aAAc,KACdgrD,oBAAqB,KACrBn8E,MAAO,GACPo8E,YAAY,EACZC,mBAAoB,KACpBC,gBAAiB,KACjBC,wBAAyB,KACzBC,OAAQ,MACRC,qBAAsB,KACtBC,uBAAwB,KACxBC,4BAA6B,KAC7BC,SAAU,IAAI5qE,GAAS,CAAEtB,WAAYrgH,KAAKy7H,kBAC1CJ,aAAa,EACbmxD,kBAAkB,EAClB5pD,eAAgB,GAChBX,iBAAkB,GAClBwqD,iBAAkB,GAClBvpD,sBAAuB,GACvBwpD,SAAU1sL,KAAK2sL,eACf3E,aAAa,EAEjB,EACAnnK,SAAU,CACR,cAAA+rK,GACE,OAAQ5sL,KAAK2vG,MAAMruG,SAAWtB,KAAKD,QAAQyJ,MAC7C,EACA,aAAAqjL,GACE,OAAO7sL,KAAK2vG,MAAM95E,MAAM73B,GAAMA,EAAEswD,SAClC,EACA,YAAAw+H,GACE,OAAO,IAAI1lL,KAA8B,IAAzBpH,KAAK0sL,SAAS73H,UAAgBpuD,cAAcgD,OAAO,GAAI,EACzE,EACA,YAAAsjL,GACE,QAAS/sL,KAAK4iI,eAAethI,UAAYtB,KAAKiiI,iBAAiB3gI,UAAYtB,KAAKkjI,sBAAsB5hI,UAAYtB,KAAK2vG,MAAMruG,UAAYtB,KAAK8gI,YAChJ,GAEFhiG,MAAO,CACL,MAAAkoC,GACEhnE,KAAKgtL,cAAa,GAAM,GACpBhtL,KAAK0qL,cACP1qL,KAAKD,QAAUC,KAAK0qL,YACpB36J,YAAW,IAAM/vB,KAAKitL,kBAE1B,EACA,OAAAltL,CAAQpC,GACNqC,KAAKktL,iBAAiBvsL,MAAQhD,CAChC,EACA+sL,YAAa,CACX3rJ,WAAW,EACX,OAAAxM,CAAQ50B,GACFA,IACFqC,KAAKD,QAAUC,KAAK0qL,YACxB,GAEF,aAAAmB,CAAcluL,GACZqC,KAAKozC,MAAM,2BAA4Bz1C,EAAIm2B,IAC7C,EACA,gBAAA43J,CAAiB/tL,GACXA,GACFqC,KAAKmtL,aAAaxvL,EAEtB,EACA,eAAAguL,CAAgBhuL,GACVA,GACFqC,KAAKotL,YAAYzvL,EAErB,EACA,YAAAiuL,CAAajuL,GACPA,GACFqC,KAAKqtL,aAAa1vL,EAEtB,GAEF,OAAAkgC,GACE,MAAM8zE,EAAW04E,KACjB,IAAIiD,GAAa,EACjBttL,KAAKktL,iBAAiBhvL,iBAAiB,SAAUF,IACjC,UAAVA,EAAEJ,KAAoBI,EAAEgmE,UAAahkE,KAAK+rL,aACxCp6E,GACF3xG,KAAKD,QAAUC,KAAKD,QAAU,KAC9BgwB,YAAW,IAAM/vB,KAAKitL,oBACbK,GAAettL,KAAK4iI,eAAethI,QAAWtB,KAAKiiI,iBAAiB3gI,QAAWtB,KAAKkjI,sBAAsB5hI,QACnHtB,KAAK+nE,eAGTulH,GAActvL,EAAEuvL,YAChBx9J,YAAW,KACT/vB,KAAKwtL,mBAAmB,GACvB,GAAG,IAERxtL,KAAKktL,iBAAiBhvL,iBAAiB,SAAS,KAC1CyzG,IACF3xG,KAAKwsL,kBAAmB,GAC1BxsL,KAAKwtL,mBAAmB,IAE1BxtL,KAAKktL,iBAAiBhvL,iBAAiB,QAAQ,KAC7C6xB,YAAW,KACT/vB,KAAKytL,iBAAiB,GACrB,KACC97E,GACF5hF,YAAW,IAAM/vB,KAAKwsL,kBAAmB,GAAM,GAErD,EACA,aAAAx1I,GACEh3C,KAAK0tL,cACP,EACAp3I,QAAS,CACP,cAAA42I,GACE,OAAOltL,KAAKizC,MAAM06I,YACpB,EACA,aAAAC,CAAcC,GACRxD,MAAkBwD,GAEjB7tL,KAAKktL,mBAEVltL,KAAKktL,iBAAiBr3D,QAClB71H,KAAK8rL,qBACP/7J,YAAW,KACT,MAAM6wD,EAASwpG,KAAiB,EAAI,EACpCpqL,KAAKktL,iBAAiBY,kBACpB9tL,KAAK8rL,oBAAsBlrG,EAC3B5gF,KAAK8rL,oBAAsBlrG,GAE7B5gF,KAAK8rL,oBAAsB,IAAI,IAGrC,EACA,aAAAmB,GACE,IAAIzuK,EAAI+Q,EAAIgF,IACyB,OAA/B/V,EAAKxe,KAAKktL,uBAA4B,EAAS1uK,EAAG7d,QAAyE,MAA9B,OAA/B4uB,EAAKvvB,KAAKktL,uBAA4B,EAAS39J,EAAG5uB,UACpHX,KAAKD,QAA0C,OAA/Bw0B,EAAKv0B,KAAKktL,uBAA4B,EAAS34J,EAAG5zB,OAEpEX,KAAKwsL,kBAAmB,EACxBxsL,KAAK+tL,iBACL/tL,KAAKozC,MAAM,iBAAkBpzC,KAAKD,QACpC,EACA,cAAAguL,GACE,MAAMthL,EAAKzM,KAAKktL,iBAChB,IAAKzgL,EACH,OACF,MAAMokI,EAAU7nI,OAAO8uD,iBAAiBrrD,EAAI,MAAM+pH,iBAAiB,eAAe/0H,QAAQ,KAAM,IAChGgL,EAAGoQ,MAAMk0D,OAAS,EAClBtkE,EAAGoQ,MAAMk0D,OAAStkE,EAAGuhL,aAAyB,EAAVn9C,EAAc,IACpD,EACA,cAAAo9C,GACMjuL,KAAK4iI,eAAethI,OACtBtB,KAAK4iI,eAAiB,GACf5iI,KAAKiiI,iBAAiB3gI,OAC7BtB,KAAKiiI,iBAAmB,GACjBjiI,KAAKkjI,sBAAsB5hI,OAClCtB,KAAKkjI,sBAAwB,GAE7BljI,KAAKgtL,cACT,EACA,YAAAkB,CAAaC,GACX,IAAI3vK,EACJ,MAAM2zD,EAA2C,OAAlC3zD,EAAK2vK,EAAWC,oBAAyB,EAAS5vK,EAAG2zD,MAChEA,GACFlsE,MAAMknC,KAAKglC,GAAOz0E,SAASua,IACzB,GAAIA,EAAK1F,KAAK1F,SAAS,SAAU,CAC/B,MAAMq6K,EAAOjvK,EAAKo2K,YAClBruL,KAAKqtL,aAAa,CAACnG,GACrB,IAGN,EACA,oBAAAoH,CAAqB7+J,EAAO8+J,GACtBvuL,KAAK4iI,eAAethI,QACtBtB,KAAKosL,qBAAuBmC,EAC5B9+J,EAAMm0C,kBACG5jE,KAAKiiI,iBAAiB3gI,QAC/BtB,KAAKqsL,uBAAyBkC,EAC9B9+J,EAAMm0C,kBACG5jE,KAAKkjI,sBAAsB5hI,SACpCtB,KAAKssL,4BAA8BiC,EACnC9+J,EAAMm0C,iBAEV,EACA,UAAAs+D,GACMliI,KAAK4iI,eAAethI,OACtBtB,KAAKisL,iBAAkB,EACdjsL,KAAKiiI,iBAAiB3gI,OAC/BtB,KAAKgsL,oBAAqB,EACjBhsL,KAAKkjI,sBAAsB5hI,SACpCtB,KAAKksL,yBAA0B,EAEnC,EACA,WAAAsC,CAAYv+G,GAEV,GADAjwE,KAAKisL,iBAAkB,GAClBh8G,EACH,OACF,MAAM,SAAEw+G,EAAQ,YAAE34F,GAAgB91F,KAAK0uL,gBAAgB,KACvD1uL,KAAKD,QAAUC,KAAKD,QAAQ0J,OAAO,EAAGglL,EAAW,GAAKx+G,EAAQjwE,KAAKD,QAAQ0J,OAAOqsF,EAAa91F,KAAKD,QAAQuB,OAAS,GACrHtB,KAAK8rL,oBAAsB2C,EAC3BzuL,KAAK4tL,eACP,EACA,kBAAAe,CAAmB5yI,GAEjB,GADA/7C,KAAKksL,yBAA0B,GAC1BnwI,EACH,OACF,MAAM,SAAE0yI,EAAQ,YAAE34F,GAAgB91F,KAAK0uL,gBAAgB,KACjD5pH,EAAQ9kE,KAAKD,QAAQ0J,OAAOqsF,EAAaA,GAAax0F,OAAS,GAAK,IAC1EtB,KAAKD,QAAUC,KAAKD,QAAQ0J,OAAO,EAAGglL,EAAW,GAAK1yI,EAAS1P,KAAOy4B,EAAQ9kE,KAAKD,QAAQ0J,OAAOqsF,EAAa91F,KAAKD,QAAQuB,OAAS,GACrItB,KAAK8rL,oBAAsB2C,EAAW1yI,EAAS1P,KAAK/qC,OAASwjE,EAAMxjE,OAAS,EAC5EtB,KAAK4tL,eACP,EACA,QAAAgB,CAAS3+G,GACPjwE,KAAKD,SAAWkwE,EAAMgnC,QACtBj3G,KAAK4tL,eAAc,EACrB,EACA,gBAAAiB,GACE7uL,KAAKizC,MAAM88B,KAAKpvE,MAAQ,GACxBX,KAAKizC,MAAM88B,KAAK++G,OAClB,EACA,kBAAMzB,CAAa19E,GACjB3vG,KAAK+rL,YAAa,EAClB/rL,KAAK4tL,gBACL3nL,MAAMknC,KAAKwiE,GAAOjyG,SAAQw6G,MAAOnoC,IAC/B,MAAMg/G,EAAU3H,IAAIC,gBAAgBt3G,GAC9Bi/G,EAAYj/G,EAAKhtE,KAAK4oG,YAAY,KACxC3rG,KAAK2vG,MAAMtuG,KAAK,CACditD,SAAS,EACTvrD,KAAMgtE,EAAKhtE,KAAK8oG,UAAU,EAAGmjF,GAC7B/wK,KAAM8xD,EAAK9xD,KACX1L,KAAMw9D,EAAKx9D,KACXkgE,UAAW1C,EAAKhtE,KAAK8oG,UAAUmjF,EAAY,GAC3CzxD,SAAUwxD,IAEZ,MAAME,QAAiB1uE,MAAMwuE,GAASxwL,MAAMyd,GAAQA,EAAIkrK,SACxD,IAAIgI,EAAalvL,KAAK2vG,MAAMtF,MAAM8kF,GAAUA,EAAM5xD,WAAawxD,IAC3DG,IACFA,EAAWhI,KAAO+H,EAClBC,EAAW5gI,SAAU,SACd4gI,EAAW5gI,QACpB,IAEFv+B,YAAW,IAAM/vB,KAAK+rL,YAAa,GAAO,IAC5C,EACA,UAAAqD,CAAWxiL,GACT5M,KAAK2vG,MAAMp2F,OAAO3M,EAAO,GACzB5M,KAAK4tL,eACP,EACA,cAAAyB,CAAeC,GAEb,GADAtvL,KAAKgoL,YAAcsH,EACdtvL,KAAK0sL,SAAS1E,YAGjB,IACEhoL,KAAK0sL,SAASntK,OACd,MAAMypK,EAAShpL,KAAK0sL,SAAS5E,QAAQ,GACrC9nL,KAAK2vG,MAAMtuG,KAAK,CACd6lL,KAAM8B,EAAO9B,KACbnkL,KAAM,SAAS/C,KAAKmsL,SACpBluK,KAAM+qK,EAAO9B,KAAKjpK,KAClB42C,SAAUm0H,EAAOn0H,SACjBtiD,KAAMy2K,EAAO9B,KAAK30K,KAClB81K,OAAO,EACP9qD,SAAU6pD,IAAIC,gBAAgB2B,EAAO9B,QAEvClnL,KAAK0sL,SAAW1sL,KAAK2sL,eACrB3sL,KAAK+nE,aACP,CAAE,MACAh4C,YAAW,IAAM/vB,KAAK0tL,gBAAgB,IACxC,MAlBA39J,YAAW,IAAM/vB,KAAK0sL,SAAS7+J,SAAS,IAoB5C,EACA,YAAA6/J,GACE,GAAI1tL,KAAK0sL,SAAS1E,YAChB,IACEhoL,KAAK0sL,SAASntK,OACdvf,KAAK0sL,SAAW1sL,KAAK2sL,cACvB,CAAE,MACA58J,YAAW,IAAM/vB,KAAK0tL,gBAAgB,IACxC,CAEJ,EACA,qBAAA6B,GACEvvL,KAAKozC,MAAM,0BAA2BpzC,KAAKD,QAC7C,EACA,WAAAgoE,GACE,IAAIvpD,EACJ,IAAIze,EAAUC,KAAKD,QAAQyJ,OAC3B,IAAKxJ,KAAK2vG,MAAMruG,SAAWvB,EACzB,OACF,GAAIC,KAAK6sL,cACP,OACF7sL,KAAKysL,iBAAiB/uL,SAAS0sG,IAC7BrqG,EAAUA,EAAQ0B,QAChB,IAAI2oG,EAAKhvG,WACT,YAAYgvG,EAAKt2E,gBAClB,IAEH,MAAM67E,EAAQ3vG,KAAK2vG,MAAMruG,OAAStB,KAAK2vG,MAAQ,KAC3C3vG,KAAK6rL,cAAc/3J,KACjB9zB,KAAK6rL,cAAc/gL,UAAY/K,IAA+C,OAAlCye,EAAKxe,KAAK6rL,cAAcl8E,YAAiB,EAASnxF,EAAGld,SAAWtB,KAAK2vG,MAAMruG,SACzHtB,KAAKozC,MAAM,eAAgB,CACzB67B,UAAWjvE,KAAK6rL,cAAc/3J,IAC9B07J,WAAYzvL,EACZ4vG,QACAw9E,aAAcntL,KAAK8gI,aACnB2uD,SAAUzvL,KAAKysL,mBAInBzsL,KAAKozC,MAAM,eAAgB,CACzBtoC,QAAS/K,EACT4vG,QACAw9E,aAAcntL,KAAK8gI,aACnB2uD,SAAUzvL,KAAKysL,mBAGnBzsL,KAAKgtL,cAAa,EACpB,EACA,WAAAI,CAAYrtL,GACVC,KAAKgtL,eACLhtL,KAAK6rL,cAAgB,IAAK9rL,GAC1B,IAAI2vL,EAAiB3vL,EAAQ+K,QAC7B,MAAM6kL,EAAiBD,EACjBE,EAAW,YACXC,EAAY,aACZC,EAAW,IACZJ,EAAeK,SAAS,IAAItoL,OAAOmoL,EAAU,QAChDrxK,KAAK5T,GAAMA,EAAEiC,QACfkjL,EAASpyL,SAASkP,IAChB,MAAMu9F,EAASwlF,EAAe9jF,UAC5Bj/F,EAAQgjL,EAAStuL,OACjBquL,EAAepzL,QAAQszL,EAAWjjL,IAE9Bw9F,EAAOpqG,KAAKuuG,KAAKtE,MAAMI,MAAMC,GAAUA,EAAMx2E,MAAQq2E,IAC3DulF,EAAiBA,EAAejuL,QAC9B,GAAGmuL,IAAWzlF,IAAS0lF,IACvB,KAAa,MAARzlF,OAAe,EAASA,EAAKhvG,WAAa,aAEjD4E,KAAKgwL,cAAc5lF,GAAM,EAAK,IAEhCpqG,KAAKD,QAAU2vL,EACX3vL,EAAQ4vG,QACV3vG,KAAK2vG,MAAQ,IAAI5vG,EAAQ4vG,QAE3B5/E,YAAW,IAAM/vB,KAAK+tL,kBACxB,EACA,YAAAZ,CAAaptL,GACXC,KAAK6rL,cAAgB,CAAC,EACtB7rL,KAAK8gI,aAAe/gI,EACpBC,KAAK4tL,eACP,EACA,iBAAAJ,GACExtL,KAAKiwL,iBAAiB,KACtBjwL,KAAKiwL,iBAAiB,KACtBjwL,KAAKiwL,iBAAiB,IACxB,EACA,gBAAAA,CAAiBC,GACf,IAAKlwL,KAAKktL,iBACR,OACF,GAAgB,MAAZgD,IAAoBlwL,KAAKsrL,wBAC3B,OAEF,GAAgB,MAAZ4E,KAAqBlwL,KAAKqrL,kBAAoBrrL,KAAKuuG,KAAKtE,OAC1D,OAEF,GAAgB,MAAZimF,IAAoBlwL,KAAKurL,cAC3B,OAEF,MAAM4E,EAAyBnwL,KAAKktL,iBAAiBkD,eACrD,IAAI3B,EAAW0B,EACf,MAAO1B,EAAW,GAAKzuL,KAAKD,QAAQgJ,OAAO0lL,EAAW,KAAOyB,IAAkD,MAAtClwL,KAAKD,QAAQgJ,OAAO0lL,EAAW,IAA0B,MAAZyB,GACpHzB,IAEF,MAAM4B,EAAYrwL,KAAKD,QAAQgJ,OAAO0lL,EAAW,GAC3C6B,GAAmBD,EAAU7oL,MAAM,kBACzC,GAAIxH,KAAKD,QAAQgJ,OAAO0lL,EAAW,KAAOyB,GAAaG,GAA2B,MAAdA,IAAqBC,EAUvFtwL,KAAKytL,gBAAgByC,OAVoF,CACzG,MAAMlzE,EAAQh9G,KAAKD,QAAQ8rG,UAAU4iF,EAAU0B,GAC/B,MAAZD,EACFlwL,KAAKo5H,aAAapc,GACG,MAAZkzE,EACTlwL,KAAKuwL,mBAAmBvzE,GACH,MAAZkzE,GACTlwL,KAAKwwL,wBAAwBxzE,EAEjC,CAGF,EACA,kBAAAuzE,CAAmBvzE,GACjBh9G,KAAKiiI,iBAAmB1wB,GACtBvxG,KAAKuuG,KAAKtE,MACV,WACA+S,GACA,GACAx4G,QAAQ4lG,GAASA,EAAKt2E,MAAQ9zB,KAAK6mE,eACvC,EACA,aAAAmpH,CAAc5lF,EAAMqmF,GAAW,GAE7B,GADAzwL,KAAKgsL,oBAAqB,GACrB5hF,EACH,OACF,MAAM,SAAEqkF,EAAQ,YAAE34F,GAAgB91F,KAAK0uL,gBAAgB,KACjD5pH,EAAQ9kE,KAAKD,QAAQ0J,OAAOqsF,EAAaA,GAAax0F,OAAS,GAAK,IAC1EtB,KAAKD,QAAUC,KAAKD,QAAQ0J,OAAO,EAAGglL,GAAYrkF,EAAKhvG,SAAW0pE,EAAQ9kE,KAAKD,QAAQ0J,OAAOqsF,EAAa91F,KAAKD,QAAQuB,OAAS,GACjItB,KAAKysL,iBAAmB,IAAIzsL,KAAKysL,iBAAkB,IAAKriF,IACnDqmF,IACHzwL,KAAK8rL,oBAAsB2C,EAAWrkF,EAAKhvG,SAASkG,OAASwjE,EAAMxjE,OAAS,GAE9EtB,KAAK4tL,eACP,EACA,uBAAA4C,CAAwBxzE,GACtBh9G,KAAKkjI,sBAAwB3xB,GAC3BvxG,KAAKurL,cACL,MACAvuE,GACA,EAEJ,EACA,eAAA0xE,CAAgBwB,GACd,MAAMQ,EAAiB1wL,KAAKktL,iBAAiBkD,eAC7C,IAAI3B,EAAWiC,EACf,MAAOjC,EAAW,GAAKzuL,KAAKD,QAAQgJ,OAAO0lL,EAAW,KAAOyB,EAC3DzB,IAEF,MAAM34F,EAAc91F,KAAKktL,iBAAiByD,aAC1C,MAAO,CAAElC,WAAU34F,cACrB,EACA,kBAAMsjC,CAAapc,GACjB,IAAKA,EACH,OACF,MAAMhG,QAAeh3G,KAAKusL,SAASxvE,sBAAsBC,GACzDh9G,KAAK4iI,eAAiB5rB,EAAOz4F,KAAK0xD,GAAUA,EAAMgnC,SACpD,EACA,eAAAw2E,CAAgByC,EAAU,MACR,MAAZA,EACFlwL,KAAK4iI,eAAiB,GACD,MAAZstD,EACTlwL,KAAKiiI,iBAAmB,IACH,MAAZiuD,IAGTlwL,KAAK4iI,eAAiB,GACtB5iI,KAAKiiI,iBAAmB,IAHxBjiI,KAAKkjI,sBAAwB,GAMjC,EACA,YAAA8pD,CAAaa,GAAqB,EAAO+C,GAAW,GAC7CA,GACH5wL,KAAKozC,MAAM,iBAAkB,MAE/BpzC,KAAKysL,iBAAmB,GACxBzsL,KAAKytL,kBACLztL,KAAK6wL,oBACL7wL,KAAKD,QAAU,GACfC,KAAK6rL,cAAgB,CAAC,EACtB7rL,KAAK8gI,aAAe,KACpB9gI,KAAK2vG,MAAQ,GACb3vG,KAAKq7H,aAAc,EACnBr7H,KAAK8wL,8BACD9wL,KAAKorL,mBAAsBwF,GAC7B7gK,YAAW,IAAM/vB,KAAK4tL,cAAcC,IAExC,EACA,iBAAAgD,GACM7wL,KAAKktL,mBACPltL,KAAKktL,iBAAiBrwK,MAAMk0D,OAAS,OAEzC,EACA,0BAAA+/G,GACM9wL,KAAKwsL,kBACPxsL,KAAKktL,iBAAiBr3D,OAC1B,EACA,YAAA82D,GAEE,OADA3sL,KAAKgoL,aAAc,EACZ,IAAIT,GAAS,CAClBb,QAASjrK,OAAOzb,KAAKwrL,cACrB7E,WAAYlrK,OAAOzb,KAAKyrL,iBACxBjE,gBAAiB,KACjBE,eAAgB,KAChBD,eAAgB,KAChBE,UAAW3nL,KAAK2nL,WAEpB,EACA,SAAAA,GACE3nL,KAAKgoL,aAAc,EACnBhoL,KAAK0sL,SAAW1sL,KAAK2sL,cACvB,IAGEoE,GAAe,CACnBnzL,IAAK,EACL+e,MAAO,0BAEHq0K,GAA+B,GAAgB,MAAO,CAAEr0K,MAAO,wBAA0B,MAAO,GAChGs0K,GAAe,CAAEt0K,MAAO,6BACxBu0K,GAAe,CAAC,eAChBC,GAAe,CAAEx0K,MAAO,qBACxBy0K,GAAe,CAAExzL,IAAK,GACtByzL,GAAe,CAAC,WAAY,SAAU,WAC5C,SAASC,GAAcvwI,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAMsgJ,EAAyB,GAAiB,eAC1CC,EAA4B,GAAiB,kBAC7CC,EAAiC,GAAiB,uBAClDC,EAAgC,GAAiB,sBACjDC,EAAwB,GAAiB,cACzChgH,EAAsB,GAAiB,YACvCigH,EAAoC,GAAiB,0BACrD7gF,EAA2B,GAAiB,iBAClD,OAAO,IAAgB,KAAa,GAAmB,MAAO,CAC5DlvG,GAAI,cACJ8a,MAAO,GAAe,CAAC,kBAAmB,CACxC,qBAAsBs0B,EAAS87I,iBAEhC,CACD,GAAYwE,EAAwB,CAClC,kBAAmBz+I,EAAM8vF,eACzB,cAAe9vF,EAAMm5I,gBACrB,oBAAqBn5I,EAAMs5I,qBAC3ByF,cAAeprH,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASu9I,YAAYjgJ,IAC1EujJ,eAAgBrrH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMs5I,qBAAuB,IAClF,KAAM,EAAG,CAAC,kBAAmB,cAAe,sBAC/C,GAAYoF,EAA2B,CACrC,qBAAsB1+I,EAAMmvF,iBAC5B,cAAenvF,EAAMk5I,mBACrB,oBAAqBl5I,EAAMu5I,uBAC3B0F,gBAAiBtrH,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAAS++I,cAAczhJ,IAC9EujJ,eAAgBrrH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMu5I,uBAAyB,IACpF,KAAM,EAAG,CAAC,qBAAsB,cAAe,sBAClD,GAAYoF,EAAgC,CAC1C,0BAA2B3+I,EAAMowF,sBACjC,cAAepwF,EAAMo5I,wBACrB,oBAAqBp5I,EAAMw5I,4BAC3B0F,qBAAsBvrH,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAAS09I,mBAAmBpgJ,IACxFujJ,eAAgBrrH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMw5I,4BAA8B,IACzF,KAAM,EAAG,CAAC,0BAA2B,cAAe,sBACvD,GAAYoF,EAA+B,CACzCnjF,KAAMx7D,EAAOw7D,KACb,gBAAiBz7D,EAAMguF,aACvB,kBAAmB/tF,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvB0mF,eAAgBhhJ,EAAS+7I,cACxB,GAAY,CAAEvyK,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,OAAQ,gBAAiB,kBAAmB,eAAgB,mBACvE,GAAY82L,EAAuB,CACjChiF,MAAO78D,EAAM68D,MACbquB,aAAc/sF,EAASm+I,WACvB6C,eAAgBhhJ,EAAS+7I,cACxB,GAAY,CAAEvyK,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,QAAS,eAAgB,mBACpC,GAAgB,MAAO,CACrB8hB,MAAO,GAAe,CAAC,iBAAkB,CAAE,yBAA0Bm2B,EAAM68D,MAAMruG,WAChF,CACDyxC,EAAO83I,YAAc/3I,EAAM68D,MAAMruG,QAAU,KAAa,GAAmB,MAAOyvL,GAAc,CAC9Fj+I,EAAMk1I,aAAe,KAAa,GAAmB,GAAU,CAAEpqL,IAAK,GAAK,CACzE,GAAgB,MAAO,CACrB+e,MAAO,qCACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAASy8I,cAAgBz8I,EAASy8I,gBAAgB1nL,KACjG,CACD,GAAW+6C,EAAKtQ,OAAQ,kBAAmB,CAAC,GAAG,IAAM,CACnD,GAAYkhC,EAAqB,CAAE5uE,KAAM,uBAG7CiuL,GACA,GAAgB,MAAOC,GAAc,GAAgBhgJ,EAAS67I,cAAe,GAC7E,GAAgB,MAAO,CACrBnwK,MAAO,wCACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASo+I,gBAAe,KACtE,CACD,GAAWtuI,EAAKtQ,OAAQ,mBAAoB,CAAC,GAAG,IAAM,CACpD,GAAYkhC,EAAqB,CAAE5uE,KAAM,oBAG5C,MAAQ,KAAa,GAAmB,MAAO,CAChDnF,IAAK,EACL+e,MAAO,iBACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASo+I,gBAAe,KACtE,CACD,GAAWtuI,EAAKtQ,OAAQ,kBAAmB,CAAC,GAAG,IAAM,CACnD,GAAYkhC,EAAqB,CAC/B5uE,KAAM,aACN4Z,MAAO,iCAIT,GAAmB,IAAI,GAC7B,GAAgB,WAAY,CAC1B9a,GAAI,eACJkoB,IAAK,eACLyS,YAAauW,EAAOo+B,aAAa1J,aACjC9qD,MAAO,GAAe,CAAC,eAAgB,CACrC,uBAAwBm2B,EAAM+4I,cAAc/3J,OAE9CjX,MAAO,CACL,aAAc,OACd,eAAgB,QAElBg1D,QAASpL,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAASg8I,eAAiBh8I,EAASg8I,iBAAiBjnL,IACpGksL,UAAW,CACTzrH,EAAO,MAAQA,EAAO,IAAM,IAAS,IAAIzgE,IAASirC,EAASg9I,gBAAkBh9I,EAASg9I,kBAAkBjoL,IAAO,CAAC,SAChHygE,EAAO,MAAQA,EAAO,IAAM,GAAS,IAAc,IAAIzgE,IAASirC,EAASixF,YAAcjxF,EAASixF,cAAcl8H,IAAO,CAAC,QAAS,YAAa,CAAC,WAC7IygE,EAAO,MAAQA,EAAO,IAAM,GAAS,IAAc,QAChD,CAAC,QAAS,YAAa,CAAC,SAC3BA,EAAO,MAAQA,EAAO,IAAM,IAAS,IAAIzgE,IAASirC,EAASixF,YAAcjxF,EAASixF,cAAcl8H,IAAO,CAAC,SACxGygE,EAAO,MAAQA,EAAO,IAAM,IAAUl4B,GAAW0C,EAASq9I,qBAAqB//I,GAAS,IAAI,CAAC,QAC7Fk4B,EAAO,MAAQA,EAAO,IAAM,IAAUl4B,GAAW0C,EAASq9I,qBAAqB//I,EAAQ,IAAI,CAAC,WAE9F4jJ,QAAS1rH,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAASi9I,cAAgBj9I,EAASi9I,gBAAgBloL,KACnG,KAAM,GAAIkrL,IACb,GAAgB,MAAOC,GAAc,CACnCr+I,EAAM+4I,cAAc/3J,KAAO,KAAa,GAAmB,MAAO,CAChEl2B,IAAK,EACL+e,MAAO,iBACPgoC,QAAS8hB,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAAS+7I,cAAgB/7I,EAAS+7I,gBAAgBhnL,KACnG,CACD,GAAW+6C,EAAKtQ,OAAQ,kBAAmB,CAAC,GAAG,IAAM,CACnD,GAAYkhC,EAAqB,CAAE5uE,KAAM,wBAEvC,GAAmB,IAAI,GAC7BgwC,EAAO+3I,WAAa,IAAgB,KAAa,GAAmB,MAAOsG,GAAc,CACvF,GAAWrwI,EAAKtQ,OAAQ,eAAgB,GAAW,CAAE4qF,YAAavoF,EAAMuoF,aAAe,CAAEuzD,SAAU39I,EAAS29I,YAAa,IAAM,CAC7H,GAAYgD,EAAmC,CAC7C,eAAgB9+I,EAAMuoF,YACtB,gBAAgB,EAChB,oBAAqBtoF,EAAO0oF,gBAC5B22D,WAAYnhJ,EAAS29I,SACrByD,YAAa5rH,EAAO,MAAQA,EAAO,IAAOl4B,GAAWuE,EAAMuoF,YAAc9sF,IACxE,CACD,oBAAqB,IAAQ,IAAM,CACjC,GAAWwS,EAAKtQ,OAAQ,wBAE1Bh2B,EAAG,GACF,EAAG,CAAC,eAAgB,oBAAqB,qBAE3C,CACH,CAACs2F,EAA0B,IAAMj+D,EAAMuoF,aAAc,KAClD,GAAmB,IAAI,GAC5BtoF,EAAO63I,WAAa,KAAa,GAAmB,MAAO,CACzDhtL,IAAK,EACL+e,MAAO,iBACPgoC,QAAS8hB,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAAS49I,kBAAoB59I,EAAS49I,oBAAoB7oL,KAC3G,CACD,GAAW+6C,EAAKtQ,OAAQ,iBAAkB,CAAC,GAAG,IAAM,CAClD,GAAYkhC,EAAqB,CAAE5uE,KAAM,oBAEvC,GAAmB,IAAI,GAC7BgwC,EAAOo4I,uBAAyB,KAAa,GAAmB,MAAO,CACrEvtL,IAAK,EACL+e,MAAO,iBACPgoC,QAAS8hB,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAASs+I,uBAAyBt+I,EAASs+I,yBAAyBvpL,KACrH,CACD,GAAW+6C,EAAKtQ,OAAQ,qBAAsB,CAAC,GAAG,IAAM,CACtD,GAAYkhC,EAAqB,CAAE5uE,KAAM,kBAEvC,GAAmB,IAAI,GAC7BgwC,EAAO63I,WAAa,KAAa,GAAmB,QAAS,CAC3DhtL,IAAK,EACLmsB,IAAK,OACLxX,KAAM,OACNuhD,WAAU/gB,EAAOk4I,eAAuB,KACxCqH,OAAQv/I,EAAOi4I,cACfv9E,QAAS16D,EAAOm4I,aAChBruK,MAAO,CAAE,QAAW,QACpB01K,SAAU9rH,EAAO,MAAQA,EAAO,IAAOl4B,GAAW0C,EAASo8I,aAAa9+I,EAAO1qC,OAAO8rG,SACrF,KAAM,GAAI0hF,KAAiB,GAAmB,IAAI,GACrDt+I,EAAO43I,cAAgB,KAAa,GAAmB,MAAO,CAC5D/sL,IAAK,EACL+e,MAAO,GAAe,CAAC,iBAAkB,CAAE,oBAAqBs0B,EAAS27I,kBACzEjoI,QAAS8hB,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAAS82B,aAAe92B,EAAS82B,eAAe/hE,KACjG,CACD,GAAW+6C,EAAKtQ,OAAQ,YAAa,CAAC,GAAG,IAAM,CAC7C,GAAYkhC,EAAqB,CAC/B5uE,KAAM,OACN4sE,MAAO1+B,EAAS27I,gBAAkB37I,EAAS47I,cAAgB,WAAa,IACvE,KAAM,EAAG,CAAC,cAEd,IAAM,GAAmB,IAAI,MAEjC,IACF,IAAK,CACN,CAAC,GAAOvoL,OAAOC,KAAKwuC,EAAOw7D,MAAMjtG,QAAUyxC,EAAOg4I,aAEtD,CACA,IAAIyH,GAA6B3jH,GAAY47G,GAAa,CAAC,CAAC,SAAU6G,MACtE,MAAMmB,GAAc,CAClB1vL,KAAM,eACNw0C,WAAY,CAAEqpF,eAAa3vD,WAAS27B,kBACpCjhG,MAAO,CACL5L,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,GACnCw7B,eAAgB,CAAEj4F,KAAMjO,OAAQ0qE,UAAU,GAC1Cu8B,YAAa,CAAEh5F,KAAMjO,OAAQ0qE,UAAU,GACvC0jH,UAAW,CAAEngL,KAAMtM,MAAO+oE,UAAU,IAEtCnuD,SAAU,CACR,aAAA8xK,GACE,MAAM,SAAEtjF,GAAarvG,KAAKD,QAAQotL,aAC5ByF,EAAY5yL,KAAK0yL,UAAUroF,MAAMD,GAASA,EAAKt2E,MAAQu7E,IAC7D,OAAOujF,EAAYA,EAAUx3L,SAAW,EAC1C,EACA,SAAA2lI,GACE,IAAIviH,EAAI+Q,EACR,OAA+E,OAAtEA,EAAyC,OAAnC/Q,EAAKxe,KAAKD,QAAQotL,mBAAwB,EAAS3uK,EAAGmxF,YAAiB,EAASpgF,EAAGjuB,QAAUtB,KAAKD,QAAQotL,aAAax9E,MAAM,GAAK,CAAC,CACpJ,EACA,OAAAC,GACE,OAAOf,GAAY7uG,KAAK+gI,UAC1B,EACA,OAAA/D,GACE,OAAOtuB,GAAY1uG,KAAK+gI,UAC1B,EACA,OAAA9D,GACE,OAAOtuB,GAAY3uG,KAAK+gI,UAC1B,EACA,WAAAC,GACE,IAAIxiH,EACJ,OAAkD,OAAzCA,EAAKxe,KAAKD,QAAQotL,aAAax9E,YAAiB,EAASnxF,EAAGld,UAAYtB,KAAK4vG,UAAY5vG,KAAKi9H,UAAYj9H,KAAKg9H,OAC1H,IAGE61D,GAAe,CAAEl2K,MAAO,qBACxBm2K,GAAe,CAAEn2K,MAAO,sBACxBo2K,GAAe,CACnBn1L,IAAK,EACL+e,MAAO,6BAEHq2K,GAAe,CACnBp1L,IAAK,EACL+e,MAAO,6BAEHs2K,GAAe,CAAEz1D,SAAU,IAC3B01D,GAAe,CAAC,OAChBC,GAAe,CACnBv1L,IAAK,EACL+e,MAAO,sBAEHy2K,GAAe,CAAEz2K,MAAO,qBACxB02K,GAAe,CACnBz1L,IAAK,EACL+e,MAAO,wCAEH22K,GAAgB,CAAE32K,MAAO,qBAC/B,SAAS42K,GAAcxyI,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM6wF,EAA0B,GAAiB,gBAC3CnwD,EAAsB,GAAiB,YACvCm/B,EAA4B,GAAiB,kBACnD,OAAO,KAAa,GAAmB,MAAO+hF,GAAc,CAC1D,GAAgB,MAAOC,GAAc,GAAgB7hJ,EAAS0hJ,eAAgB,GAC9E1hJ,EAAS+rF,SAAW,KAAa,GAAmB,MAAO+1D,GAAc,CACvE,GAAgB,MAAO,CACrBp2K,MAAO,4CACPE,MAAO,GAAe,CACpB,mBAAoB,QAAQo0B,EAAS8vF,UAAUnlI,WAEhD,KAAM,MACLq1C,EAASgsF,SAAW,KAAa,GAAmB,MAAO+1D,GAAc,CAC7E,GAAgB,QAASC,GAAc,CACrC,GAAgB,SAAU,CACxB5mF,IAAKp7D,EAAS8vF,UAAUnlI,KACvB,KAAM,EAAGs3L,SAEVjiJ,EAAS2+D,SAAW,KAAa,GAAYkyB,EAAyB,CAC1ElkI,IAAK,EACLyuG,IAAKp7D,EAAS8vF,UAAUnlI,IACxB,6BAA6B,EAC7B43L,qBAAsB/sH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK0yI,aAAellJ,GAChFoyF,qBAAsBl6D,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK2yI,mBAAqBnlJ,IACrF,GAAY,CAAE9zB,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,SAAWo2C,EAAS+vF,aAAe,KAAa,GAAmB,MAAOmyD,GAAc,CACjG,GAAgB,MAAO,KAAM,CAC3B,GAAWpyI,EAAKtQ,OAAQ,YAAa,CAAC,GAAG,IAAM,CAC7C,GAAYkhC,EAAqB,CAAE5uE,KAAM,cAG7C,GAAgB,MAAOqwL,GAAc,GAAgBniJ,EAAS8vF,UAAUh+H,MAAO,GAC/EkuC,EAAS8vF,UAAUtuD,WAAa,KAAa,GAAmB,MAAO4gH,GAAc,GAAgBpiJ,EAAS8vF,UAAUtuD,WAAY,IAAM,GAAmB,IAAI,MAC7J,GAAmB,IAAI,GAC7B,GAAgB,MAAO6gH,GAAe,CACpC,GAAYxiF,EAA2B,CACrC,aAAc/9D,EAAOhzC,QAAQotL,aAAar5J,IAC1ChpB,QAASioC,EAAOhzC,QAAQotL,aAAariL,QACrCm/F,MAAOl3D,EAAO2/I,UACd,kBAAmB3/I,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvBD,OAAO,GACN,KAAM,EAAG,CAAC,aAAc,UAAW,QAAS,kBAAmB,oBAGxE,CACA,IAAIqoF,GAA+B9kH,GAAY4jH,GAAa,CAAC,CAAC,SAAUc,MACxE,MAAMK,GAAc,CAClB7wL,KAAM,cACN4I,MAAO,CACL6yH,SAAU,CAAEjsH,KAAMkJ,OAAQshB,QAAS,IAErC,IAAAliC,GACE,MAAMg5L,EAAS,GACTC,EAAS,EACTC,EAAmBF,EAAkB,EAATC,EAC5BE,EAAmC,EAAnBD,EAAuB/iL,KAAKilI,GAClD,MAAO,CACL49C,SACAC,SACAC,mBACAC,gBAEJ,EACAnzK,SAAU,CACR,gBAAAozK,GACE,OAAOj0L,KAAKg0L,cAAgBh0L,KAAKw+H,SAAW,IAAMx+H,KAAKg0L,aACzD,IAGEE,GAAe,CACnBnqK,IAAK,WACLpN,MAAO,wBAEHw3K,GAAe,CAAC,SAAU,SAC1BC,GAAe,CAAC,mBAAoB,eAAgB,IAAK,KAAM,MAC/DC,GAAe,CAAE13K,MAAO,qBACxB23K,GAA+B,GAAgB,OAAQ,CAAE33K,MAAO,yBAA2B,KAAM,GACvG,SAAS43K,GAAcxzI,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,OAAO,KAAa,GAAY,GAAY,CAC1CluC,KAAM,mBACN6+B,OAAQ,IACP,CACD7E,QAAS,IAAQ,IAAM,CACrB,GAAgB,MAAOm3J,GAAc,EAClC,KAAa,GAAmB,MAAO,CACtCnjH,OAAuB,EAAfj+B,EAAM+gJ,OACd/iH,MAAsB,EAAfh+B,EAAM+gJ,QACZ,CACD,GAAgB,SAAU,CACxBC,OAAQ,2BACR,mBAAoBhhJ,EAAMkhJ,cAAgB,IAAMlhJ,EAAMkhJ,cACtDn3K,MAAO,GAAe,CACpBo3K,iBAAkBhjJ,EAASgjJ,iBAC3BO,cAAe,UAEjB,eAAgB1hJ,EAAMghJ,OACtB/zJ,KAAM,cACNjW,EAAGgpB,EAAMihJ,iBACTzrD,GAAIx1F,EAAM+gJ,OACVY,GAAI3hJ,EAAM+gJ,QACT,KAAM,GAAIO,KACZ,EAAGD,KACN,GAAgB,MAAO,CACrBx3K,MAAO,uBACPE,MAAO,GAAe,CACpBk0D,OAAuB,EAAfj+B,EAAM+gJ,OAAa,GAAK,KAChC/iH,MAAsB,EAAfh+B,EAAM+gJ,OAAa,GAAK,QAEhC,CACD,GAAgB,MAAOQ,GAAc,CACnC,GAAgB,GAAgBthJ,EAAOyrF,UAAW,GAClD81D,MAED,IACF,QAEL75K,EAAG,GAEP,CACA,IAAIi6K,GAA8B7lH,GAAY+kH,GAAa,CAAC,CAAC,SAAUW,MACvE,MAAMI,GAAc,CAClB5xL,KAAM,cACNw0C,WAAY,CAAE05B,WAASxB,UAAQilH,gBAC/B/oL,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDjvE,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,GACnCe,KAAM,CAAEx9D,KAAMjO,OAAQ0qE,UAAU,GAChCpiE,MAAO,CAAE2F,KAAMkJ,OAAQuzD,UAAU,GACjC+kC,wBAAyB,CAAExhG,KAAMsvB,QAASmtC,UAAU,IAEtDl8C,MAAO,CAAC,aACR,IAAAj4B,GACE,MAAO,CACL+5L,gBAAiB,GACjBC,cAAc,EACdC,YAAY,EAEhB,EACAj0K,SAAU,CACR,cAAAk0K,GACE,OAA+C,IAAxC/0L,KAAK+vE,KAAKn0E,IAAIW,QAAQ,cAAuByD,KAAK60L,YAC3D,EACA,OAAA73D,GACE,OAAOtuB,GAAY1uG,KAAK+vE,KAC1B,EACA,OAAAktD,GACE,OAAOtuB,GAAY3uG,KAAK+vE,KAC1B,GAEFjxC,MAAO,CACLixC,KAAM,CACJhxC,WAAW,EACX,OAAAxM,GACEvyB,KAAKg1L,cACP,IAGJ,OAAAn3J,GACE,MAAM9T,EAAM/pB,KAAKizC,MAAM,WAAajzC,KAAK4M,OACrCmd,IACF/pB,KAAK40L,gBAAkB,CACrBK,UAAWlrK,EAAImrK,YAAc,GAC7BC,UAAWprK,EAAIqrK,aAAe,EAAI,GAGxC,EACA9+I,QAAS,CACP,YAAA0+I,GACE,IAAKtmF,GAAY1uG,KAAK+vE,MACpB,OACF/vE,KAAK60L,cAAe,EACpB,MAAMl+G,EAAQ,IAAIq1B,MAClBr1B,EAAM01B,IAAMrsG,KAAK+vE,KAAKn0E,IACtB+6E,EAAMz4E,iBAAiB,QAAQ,IAAM8B,KAAK60L,cAAe,GAC3D,EACA,QAAAQ,CAAS5lK,EAAOqgF,GACT9vG,KAAK+zG,0BACRtkF,EAAMi0C,kBACN1jE,KAAKozC,MAAM,YAAa,CAAE28B,KAAM/vE,KAAK+vE,KAAM+/B,WAE/C,IAGEwlF,GAAe,CAAE34K,MAAO,8BACxB44K,GAAe,CACnB33L,IAAK,EACL+e,MAAO,qBAEH64K,GAAe,CAAEh4D,SAAU,IAC3Bi4D,GAAe,CAAC,OACtB,SAASC,GAAc30I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM0kJ,EAA0B,GAAiB,gBAC3CviF,EAAoB,GAAiB,UACrCzhC,EAAsB,GAAiB,YAC7C,OAAO,KAAa,GAAmB,MAAO2jH,GAAc,CAC1DrkJ,EAAS+rF,SAAW,KAAa,GAAmB,MAAO,CACzDp/H,IAAK,EACLmsB,IAAK,WAAagpB,EAAOnmC,MACzB+P,MAAO,8BACPwiH,YAAa14D,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMgiJ,YAAa,GACtEc,aAAcnvH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMgiJ,YAAa,GACvEnwI,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASokJ,SAAS9mJ,EAAQ,aACxE,CACDwE,EAAOg9B,KAAKyuD,UAAY,GAAK,KAAa,GAAYm3D,EAAyB,CAC7E/3L,IAAK,EACL4gI,SAAUzrF,EAAOg9B,KAAKyuD,SACtB3hH,MAAO,GAAe,CAAEmkD,IAAK,GAAGluB,EAAM8hJ,gBAAgBO,iBACrD,KAAM,EAAG,CAAC,WAAY,YAAc,KAAa,GAAY/hF,EAAmB,CACjFx1G,IAAK,EACL0oE,KAAMr1B,EAAS8jJ,eACfxiL,KAAM,eACN,aAAcwgC,EAAOhzC,QAAQ+zB,IAC7BjX,MAAO,GAAe,CAAEmkD,IAAK,GAAGluB,EAAM8hJ,gBAAgBO,iBACrD,GAAY,CAAE16K,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,OAAQ,aAAc,WACjC,GAAgB,MAAO,CACrB8hB,MAAO,GAAe,CAAC,oBAAqB,CAC1C,mBAAoBs0B,EAAS8jJ,gBAAkBhiJ,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,iBAEpFhqD,MAAO,GAAe,CACpB,mBAAoB,QAAQo0B,EAAS8jJ,gBAAiBhiJ,EAAOg9B,KAAK8lH,SAA6B9iJ,EAAOg9B,KAAKn0E,QAC3G,aAAc,GAAGk3C,EAAM8hJ,gBAAgBK,iBAExC,CACD,GAAY,GAAY,CAAElyL,KAAM,kBAAoB,CAClDg6B,QAAS,IAAQ,IAAM,CACpBgW,EAAOghE,0BAA2BjhE,EAAMgiJ,YAAe7jJ,EAAS8jJ,eAiB3D,GAAmB,IAAI,IAjBsD,KAAa,GAAmB,MAAOQ,GAAc,CACtI,GAAgB,MAAO,CACrB54K,MAAO,iCACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASokJ,SAAS9mJ,EAAQ,aACxE,CACD,GAAWwS,EAAKtQ,OAAQ,YAAcsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CAClE,GAAY69C,EAAqB,CAAE5uE,KAAM,aAG7C,GAAgB,MAAO,CACrB4Z,MAAO,qCACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAW0C,EAASokJ,SAAS9mJ,EAAQ,cACxE,CACD,GAAWwS,EAAKtQ,OAAQ,iBAAmBsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACvE,GAAY69C,EAAqB,CAAE5uE,KAAM,wBAKjD0X,EAAG,KAEJ,IACF,MAAQw2B,EAASgsF,SAAW,KAAa,GAAmB,MAAO,CACpEr/H,IAAK,EACL+e,MAAO,sBACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAel4B,GAAW0C,EAASokJ,SAAS9mJ,EAAQ,YAAY,CAAC,cACnG,CACDwE,EAAOg9B,KAAKyuD,UAAY,GAAK,KAAa,GAAYm3D,EAAyB,CAC7E/3L,IAAK,EACL4gI,SAAUzrF,EAAOg9B,KAAKyuD,UACrB,KAAM,EAAG,CAAC,cAAgB,GAAmB,IAAI,GACpD,GAAgB,QAASg3D,GAAc,CACrC,GAAgB,SAAU,CACxBnpF,IAAKt5D,EAAOg9B,KAAKn0E,KAChB,KAAM,EAAG65L,SAEV,GAAmB,IAAI,IAEjC,CACA,IAAIK,GAA8BjnH,GAAY8lH,GAAa,CAAC,CAAC,SAAUe,MACvE,MAAMK,GAAc,CAClBhzL,KAAM,eACNw0C,WAAY,CAAE05B,WAAS27B,iBAAe8nF,eAAaoB,gBACnDnqL,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDjvE,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,GACnC0jH,UAAW,CAAEngL,KAAMtM,MAAO+oE,UAAU,GACpCw7B,eAAgB,CAAEj4F,KAAMjO,OAAQ0qE,UAAU,GAC1Cu8B,YAAa,CAAEh5F,KAAMjO,OAAQ0qE,UAAU,GACvC+kC,wBAAyB,CAAExhG,KAAMsvB,QAASmtC,UAAU,IAEtDl8C,MAAO,CAAC,YAAa,iBACrBjS,SAAU,CACR,eAAAm1K,GACE,OAAOh2L,KAAKD,QAAQ4vG,MAAMnrG,QAAQurE,GAAS6+B,GAAiB7+B,IAC9D,EACA,UAAAkmH,GACE,OAAOj2L,KAAKD,QAAQ4vG,MAAMnrG,QAAQurE,IAAU6+B,GAAiB7+B,IAC/D,GAEFz5B,QAAS,CACP,QAAA++I,CAAS5lK,EAAOsgD,EAAM+/B,GACf9vG,KAAK+zG,0BACRtkF,EAAMi0C,kBACN1jE,KAAKozC,MAAM,YAAa,CAAE28B,OAAM+/B,WAEpC,IAGEomF,GAAe,CAAEv5K,MAAO,+BACxBw5K,GAAe,CAAC,WAChBC,GAAe,CAAEz5K,MAAO,kBACxB05K,GAAe,CAAE15K,MAAO,qBACxB25K,GAAe,CACnB14L,IAAK,EACL+e,MAAO,wCAET,SAAS45K,GAAcx1I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAMulJ,EAA0B,GAAiB,gBAC3Cb,EAA0B,GAAiB,gBAC3ChkH,EAAsB,GAAiB,YACvCm/B,EAA4B,GAAiB,kBACnD,OAAO,KAAa,GAAmB,MAAOolF,GAAc,EACzD,IAAU,GAAO,GAAmB,GAAU,KAAM,GAAWjlJ,EAAS+kJ,iBAAiB,CAACjmH,EAAM7pE,KACxF,KAAa,GAAmB,MAAO,CAC5CtI,IAAKsI,EAAI,MACR,CACD,GAAYswL,EAAyB,CACnCzmH,OACA,kBAAmBh9B,EAAO8zB,cAC1B9mE,QAASgzC,EAAOhzC,QAChB6M,MAAO1G,EACP,4BAA6B6sC,EAAOghE,wBACpC0iF,WAAYhwH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,YAAa7E,KACzE,GAAY,CAAE9zB,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,OAAQ,kBAAmB,UAAW,QAAS,mCAE1D,OACH,IAAU,GAAO,GAAmB,GAAU,KAAM,GAAWo2C,EAASglJ,YAAY,CAAClmH,EAAM7pE,KACnF,KAAa,GAAmB,MAAO,CAC5CtI,IAAKsI,EAAI,IACTyW,MAAO,oBACN,CACDozD,EAAKyuD,UAAY,GAAK,KAAa,GAAYm3D,EAAyB,CACtE/3L,IAAK,EACL4gI,SAAUzuD,EAAKyuD,SACf3hH,MAAO,CAAEmkD,IAAK,SACb,KAAM,EAAG,CAAC,cAAgB,GAAmB,IAAI,GACpD,GAAgB,MAAO,CACrBrkD,MAAO,GAAe,CAAC,qBAAsB,CAAE,8BAA+BozD,EAAKyuD,UAAY,KAC/F75E,QAAUpW,GAAW0C,EAASokJ,SAAS9mJ,EAAQwhC,EAAM,aACpD,CACD,GAAgB,MAAOqmH,GAAc,CACnC,GAAWr1I,EAAKtQ,OAAQ,gBAAiB,CAAC,GAAG,IAAM,CACjD,GAAYkhC,EAAqB,CAAE5uE,KAAM,kBAG7C,GAAgB,MAAOszL,GAAc,GAAgBtmH,EAAKhtE,MAAO,GACjEgtE,EAAK0C,WAAa,KAAa,GAAmB,MAAO6jH,GAAc,GAAgBvmH,EAAK0C,WAAY,IAAM,GAAmB,IAAI,IACpI,GAAI0jH,SAEP,MACJ,GAAYrlF,EAA2B,CACrC,aAAc/9D,EAAOhzC,QAAQ+zB,IAC7BhpB,QAASioC,EAAOhzC,QAAQ+K,QACxBm/F,MAAOl3D,EAAO2/I,UACd,kBAAmB3/I,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvBmrF,cAAejwH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,gBAAiB7E,KAChF,KAAM,EAAG,CAAC,aAAc,UAAW,QAAS,kBAAmB,kBAEtE,CACA,IAAIooJ,GAA+B9nH,GAAYknH,GAAa,CAAC,CAAC,SAAUQ,MACxE,MAAMK,GAAc,CAClB7zL,KAAM,iBACNw0C,WAAY,CAAE05B,WAAS6rD,yBACvBp8F,WAAY,CACVquE,aAAcV,IAEhB1iG,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDjvE,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,GACnC6nH,eAAgB,CAAEtkL,KAAMtM,MAAO+oE,UAAU,GACzC8nH,mBAAoB,CAAEvkL,KAAMsvB,QAASmtC,UAAU,GAC/C+nH,aAAc,CAAExkL,KAAMsvB,QAASmtC,UAAU,GACzCgoH,eAAgB,CAAEzkL,KAAM,CAACrG,OAAQuP,QAASshB,QAAS,MACnD22J,mBAAoB,CAAEnhL,KAAMsvB,QAASmtC,UAAU,GAC/CysD,gBAAiB,CAAElpH,KAAMrG,OAAQ6wB,aAAS,IAE5CjK,MAAO,CACL,sBACA,wBACA,uBACA,yBACA,yBAEF,IAAAj4B,GACE,MAAO,CACLo8L,eAAgB,EAChBC,eAAe,EACfC,gBAAgB,EAChB97D,aAAa,EAEjB,EACAx6G,SAAU,CACR,gBAAAu2K,GACE,OAAOp3L,KAAKq3L,uBAAuB/1L,QAAUtB,KAAK+2L,eAAiB/2L,KAAKD,QAAQuwE,UAAYtwE,KAAKD,QAAQu3L,iBAAmBt3L,KAAK0zL,kBACnI,EACA,kBAAA6D,GACE,OAAOv3L,KAAK82L,oBAAsB92L,KAAK+2L,eAAiB/2L,KAAKD,QAAQuwE,UAAYtwE,KAAKD,QAAQy3L,mBAAqBx3L,KAAK0zL,kBAC1H,EACA,sBAAA2D,GACE,OAAOr3L,KAAKD,QAAQsvG,WAAarvG,KAAK6mE,cAAgB7mE,KAAK62L,eAAiB72L,KAAK62L,eAAeryL,QAAQzE,IAAaA,EAAQ03L,QAC/H,GAEF34J,MAAO,CACL,WAAAu8F,CAAY19H,GACVqC,KAAKozC,MAAM,sBAAuBz1C,GAC9BA,IACFqC,KAAKk3L,eAAgB,EACzB,EACA,aAAAA,CAAcv5L,GACZqC,KAAKozC,MAAM,wBAAyBz1C,EACtC,GAEF24C,QAAS,CACP,WAAAohJ,GACM13L,KAAKm3L,iBAETn3L,KAAKk3L,eAAiBl3L,KAAKk3L,cACtBl3L,KAAKk3L,eAEVnnK,YAAW,KACT,MAAMysG,EAAgBvB,GAAqBj7H,KAAK6yC,IAAK,gBACrD,IAAK2pF,IAAkBx8H,KAAKizC,MAAM0kJ,cAAgB33L,KAAKizC,MAAM2kJ,WAC3D,OAEF,MAAMX,EAAiBj3L,KAAKizC,MAAM0kJ,YAAYl3H,wBAAwBsQ,OAChE8mH,EAAgB73L,KAAKizC,MAAM2kJ,WAAWn3H,wBAAwBO,IAC9Dy7D,EAAgBD,EAAc/7D,wBAAwBO,IACtD82H,EAAqBr7D,EAAgBo7D,EAAgBZ,EAAiB,GAE1Ej3L,KAAKi3L,eADHa,EACoB,IAECb,CAAc,IAE3C,EACA,YAAAc,GACE/3L,KAAKk3L,eAAgB,EACrBl3L,KAAKm3L,gBAAiB,EACtBn3L,KAAKg4L,qBACLjoK,YAAW,IAAM/vB,KAAKm3L,gBAAiB,GAAO,IAChD,EACA,SAAAj7D,GACEl8H,KAAKq7H,aAAer7H,KAAKq7H,WAC3B,EACA,UAAA48D,GACEj4L,KAAKq7H,aAAc,EACnBr7H,KAAKg4L,oBACP,EACA,kBAAAA,GACMh4L,KAAKg3L,iBAAmBh3L,KAAKD,QAAQ+zB,KACvC9zB,KAAKozC,MAAM,wBAAwB,EAEvC,EACA,oBAAA8kJ,CAAqBpoF,GACnB9vG,KAAK+3L,eACL/3L,KAAKozC,MAAM,yBAA0B08D,EACvC,EACA,mBAAAqoF,CAAoBloH,EAAOmoH,GACzBp4L,KAAKozC,MAAM,wBAAyB,CAAE68B,QAAOmoH,aAC7Cp4L,KAAKi4L,YACP,IAGEI,GAAe,CAAE17K,MAAO,+BACxB27K,GAAe,CAAE16L,IAAK,KACtB26L,GAAe,CAAE57K,MAAO,iBACxB67K,GAAe,CAAC,WACtB,SAASC,GAAc13I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM0gC,EAAsB,GAAiB,YACvCigH,EAAoC,GAAiB,0BACrD7gF,EAA2B,GAAiB,iBAClD,OAAO,KAAa,GAAmB,MAAOsnF,GAAc,CAC1D,GAAgB,MAAO,CACrB17K,MAAO,wBACPE,MAAO,GAAe,CACpBq8C,QAASnmB,EAAO2gJ,mBAAqB,OAAS,UAC9C5iH,MAAO7/B,EAASomJ,uBAAuB/1L,QAAUyxC,EAAO+jJ,mBAAqB,OAAS,UAEvF,CACD,GAAY,GAAiB,CAC3B/zL,KAAM,iBACNmpC,IAAK,QACJ,CACDnP,QAAS,IAAQ,IAAM,CACrBkU,EAASmmJ,kBAAoBnmJ,EAASsmJ,oBAAsB,KAAa,GAAmB,MAAO,CACjG35L,IAAK,IACL+e,MAAO,GAAe,CAAC,qBAAsB,CAC3C,iBAAkBo2B,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,kBAEtD,KAAM,IAAM,GAAmB,IAAI,GACtC51B,EAASmmJ,kBAAoB,KAAa,GAAmB,MAAO,CAClErtK,IAAK,aACLnsB,IAAK,IACL+e,MAAO,qCACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAASymJ,aAAezmJ,EAASymJ,eAAe1xL,KAC/F,CACD,GAAW+6C,EAAKtQ,OAAQ,iBAAmBsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACvE,GAAY69C,EAAqB,CAC/B5uE,KAAM,WACN4sE,MAAO,gBAGV,MAAQ,GAAmB,IAAI,GAClC1+B,EAASsmJ,mBAAqB,IAAgB,KAAa,GAAmB,MAAOe,GAAc,CACjG,GAAWv3I,EAAKtQ,OAAQ,eAAgB,GAAW,CAAE4qF,YAAavoF,EAAMuoF,aAAe,CAAEuzD,SAAU39I,EAASknJ,uBAAwB,IAAM,CACxI,GAAYvG,EAAmC,CAC7Cj1K,MAAO,qBACPE,MAAO,GAAe,CAAEynD,MAAOrzB,EAASmmJ,iBAAmB,OAAS,QACpE,eAAgBtkJ,EAAMuoF,YACtB,kBAAkB,EAClB,iBAAkBtoF,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cACrD,aAAc9zB,EAAOhzC,QAAQ+zB,IAC7B,oBAAqBif,EAAO0oF,gBAC5B22D,WAAYnhJ,EAASknJ,oBACrB9F,YAAaphJ,EAASirF,WACrB,GAAY,CAAEzhH,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,QAAS,eAAgB,iBAAkB,aAAc,oBAAqB,aAAc,sBAEtG,CACH,CAACk2G,EAA0B9/D,EAASgnJ,cACjC,GAAmB,IAAI,MAE9Bx9K,EAAG,KAEJ,GACHw2B,EAASomJ,uBAAuB/1L,QAAU,KAAa,GAAY,GAAY,CAC7E1D,IAAK,EACLmF,KAAMgwC,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cAAgB,iBAAmB,mBAC3E,CACD9pC,QAAS,IAAQ,IAAM,CACrB+V,EAAMokJ,cAAgB,IAAgB,KAAa,GAAmB,MAAO,CAC3Et5L,IAAK,EACLmsB,IAAK,cACLpN,MAAO,GAAe,CAAC,mBAAoB,CACzC,gBAAiBo2B,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,iBAEtDhqD,MAAO,GAAe,CAAEmkD,IAAK,GAAGluB,EAAMmkJ,sBACrC,CACD,GAAgB,MAAOsB,GAAc,EAClC,IAAU,GAAO,GAAmB,GAAU,KAAM,GAAWtnJ,EAASomJ,wBAAyBvnF,IACzF,KAAa,GAAmB,MAAO,CAC5ClyG,IAAKkyG,EAAO/sG,MACX,CACD,GAAgB,MAAO,CACrB4Z,MAAO,gBACPgoC,QAAUpW,GAAW0C,EAASinJ,qBAAqBpoF,IAClD,GAAgBA,EAAO5oC,OAAQ,EAAGsxH,SAErC,SAEL,IAAK,CACN,CAACznF,EAA0B9/D,EAAS8mJ,gBACjC,GAAmB,IAAI,MAE9Bt9K,EAAG,GACF,EAAG,CAAC,UAAY,GAAmB,IAAI,IAE9C,CACA,IAAIi+K,GAAiC7pH,GAAY+nH,GAAa,CAAC,CAAC,SAAU6B,MAC1E,MAAME,GAAc,CAClB51L,KAAM,mBACN4I,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDjvE,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,IAErCl8C,MAAO,CAAC,yBACRwjB,QAAS,CACP,mBAAA6hJ,CAAoBloH,EAAOmoH,GACzBp4L,KAAKozC,MAAM,wBAAyB,CAAE68B,QAAOmoH,YAC/C,IAGEQ,GAAe,CAAC,WACtB,SAASC,GAAc93I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,OAAQ8B,EAAOhzC,QAAQuwE,QAyBjB,GAAmB,IAAI,IAzBK,KAAa,GAAY,GAAiB,CAC1E1yE,IAAK,EACLmF,KAAM,iBACNmpC,IAAK,QACJ,CACDnP,QAAS,IAAQ,IAAM,EACpB,IAAU,GAAO,GAAmB,GAAU,KAAM,GAAWgW,EAAOhzC,QAAQ+4L,WAAW,CAACV,EAAUx6L,IAC5F,IAAgB,KAAa,GAAmB,SAAU,CAC/DA,IAAKA,EAAM,EACX+e,MAAO,GAAe,CAAC,sBAAuB,CAC5C,mBAA+D,IAA5Cy7K,EAAS77L,QAAQw2C,EAAO8zB,kBAE7ChqD,MAAO,GAAe,CACpBglI,MAAO9uG,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cAAgB,QAAU,SAEtEliB,QAAUpW,GAAW0C,EAASknJ,oBAAoB,CAAElhF,QAASr5G,GAAOw6L,IACnE,CACD,GAAgB,GAAgBx6L,GAAM,GACtC,GAAgB,OAAQ,KAAM,GAAgBw6L,EAAS92L,QAAS,IAC/D,GAAIs3L,KAAgB,CACrB,CAAC,GAAOR,EAAS92L,YAEjB,SAENmZ,EAAG,IAEP,CACA,IAAIs+K,GAAmClqH,GAAY8pH,GAAa,CAAC,CAAC,SAAUE,MAC5E,SAASG,GAAgBzuL,GACvB,MAAM0uL,EAAgB,CACpB,CAAEr7L,IAAK,SAAU2U,KAAM,CAAC,SAAU,WAClC,CAAE3U,IAAK,WAAY2U,KAAM,CAAC,WAC1B,CAAE3U,IAAK,QAAS2U,KAAM,CAAC,WAEnB2mL,EAAW,CAACC,EAAMxtL,IACfA,EAAM24B,OAAOpgC,IAClB,IAAIk1L,GAAY,EAMhB,OALqB,UAAjBl1L,EAAKqO,KAAK,IAAkBtM,MAAMlC,QAAQo1L,EAAKj1L,EAAKtG,OAE7CsG,EAAKqO,KAAK83F,MAAM1/D,GAAMA,WAAawuJ,EAAKj1L,EAAKtG,UADtDw7L,GAAY,GAIPA,GAAaC,GAAiBF,EAAMj1L,EAAKtG,IAAI,IAGxD,IAAKs7L,EAAS3uL,EAAK0uL,GACjB,MAAM,IAAI32L,MACR,6GAGN,CACA,SAASg3L,GAAsB/uL,GAC7B,MAAMgvL,EAAuB,CAC3B,CAAE37L,IAAK,MAAO2U,KAAM,CAAC,SAAU,WAC/B,CAAE3U,IAAK,WAAY2U,KAAM,CAAC,YAEtB2mL,EAAW,CAACC,EAAMxtL,IACfA,EAAM24B,OAAOpgC,IAClB,MAAMk1L,EAAYl1L,EAAKqO,KAAK83F,MAAM1/D,GAAMA,WAAawuJ,EAAKj1L,EAAKtG,OAC/D,OAAOw7L,GAAaC,GAAiBF,EAAMj1L,EAAKtG,IAAI,IAGxD,IAAKs7L,EAAS3uL,EAAKgvL,GACjB,MAAM,IAAIj3L,MACR,mGAGN,CACA,SAASk3L,GAAmBjvL,GAC1B,MAAMkvL,EAAmB,CACvB,CAAE77L,IAAK,MAAO2U,KAAM,CAAC,SAAU,WAC/B,CAAE3U,IAAK,WAAY2U,KAAM,CAAC,SAAU,YAEhC2mL,EAAW,CAACC,EAAMxtL,IACfA,EAAM24B,OAAOpgC,IAClB,MAAMk1L,EAAYl1L,EAAKqO,KAAK83F,MAAM1/D,GAAMA,WAAawuJ,EAAKj1L,EAAKtG,OAC/D,OAAOw7L,GAAaC,GAAiBF,EAAMj1L,EAAKtG,IAAI,IAGxD,IAAKs7L,EAAS3uL,EAAKkvL,GACjB,MAAM,IAAIn3L,MACR,uGAGN,CACA,SAAS+2L,GAAiB9uL,EAAK3M,GAC7B,OAAO0G,OAAOnF,UAAUsL,eAAezF,KAAKuF,EAAK3M,IAAqB,OAAb2M,EAAI3M,SAA8B,IAAb2M,EAAI3M,EACpF,CACA,MAAM87L,GAAc,CAClB32L,KAAM,cACNw0C,WAAY,CACV05B,WACA27B,iBACAg0B,eACA+yD,gBACAgD,gBACA+B,kBACAK,qBAEFptL,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDmC,aAAc,CAAE5+D,KAAMjO,OAAQ0qE,UAAU,GACxCpiE,MAAO,CAAE2F,KAAMkJ,OAAQuzD,UAAU,GACjCjvE,QAAS,CAAEwS,KAAMjO,OAAQ0qE,UAAU,GACnC/H,SAAU,CAAE10D,KAAMtM,MAAO+oE,UAAU,GACnC2qH,gBAAiB,CAAEpnL,KAAM,CAACrG,OAAQuP,QAASshB,QAAS,MACpD21J,UAAW,CAAEngL,KAAMtM,MAAO82B,QAAS,IAAM,IACzC85J,eAAgB,CAAEtkL,KAAMtM,MAAO+oE,UAAU,GACzC4qH,YAAa,CAAErnL,KAAMtM,MAAO82B,QAAS,IAAM,IAC3C+5J,mBAAoB,CAAEvkL,KAAMsvB,QAASmtC,UAAU,GAC/C6qH,uBAAwB,CAAEtnL,KAAMsvB,QAASmtC,UAAU,GACnDw7B,eAAgB,CAAEj4F,KAAMjO,OAAQ0qE,UAAU,GAC1Cu8B,YAAa,CAAEh5F,KAAMjO,OAAQ0qE,UAAU,GACvC8qH,gBAAiB,CAAEvnL,KAAMjO,OAAQ0qE,UAAU,GAC3C+kC,wBAAyB,CAAExhG,KAAMsvB,QAASmtC,UAAU,GACpD+qH,iBAAkB,CAAExnL,KAAMtM,MAAO82B,QAAS,IAAM,IAChD0+F,gBAAiB,CAAElpH,KAAMrG,OAAQ6wB,aAAS,IAE5CjK,MAAO,CACL,gBACA,YACA,gBACA,sBACA,yBACA,wBACA,iBACA,oBAEF,IAAAj4B,GACE,MAAO,CACLm8L,eAAgB,KAChBD,cAAc,EACdG,eAAe,EACf77D,aAAa,EACb2+D,WAAY,CAAC,EACbvG,aAAc,QACdC,oBAAoB,EAExB,EACA7yK,SAAU,CACR,YAAAo5K,GACE,SAAKj6L,KAAK85L,gBAAgBI,aAAel6L,KAAKD,QAAQsvG,WAAarvG,KAAK6mE,gBAG/D7mE,KAAK0yL,UAAUpxL,QAAUtB,KAAK85L,gBAAgBK,QAEzD,EACA,QAAAC,GACE,OAAOp6L,KAAK4M,MAAQ,GAAK5M,KAAKD,QAAQs6L,OAASr6L,KAAKinE,SAASjnE,KAAK4M,MAAQ,GAAGytL,IAC/E,EACA,aAAAC,GACE,OAAOt6L,KAAK4M,MAAQ,GAAK5M,KAAKD,QAAQsvG,WAAarvG,KAAKinE,SAASjnE,KAAK4M,MAAQ,GAAGyiG,QACnF,EACA,cAAAkrF,GACE,OAAOv6L,KAAK25L,kBAAoB35L,KAAKD,QAAQ+zB,KAAO9zB,KAAKg3L,iBAAmBh3L,KAAKD,QAAQ+zB,GAC3F,EACA,OAAA87E,GACE,IAAIpxF,EACJ,OAAoC,OAA5BA,EAAKxe,KAAKD,QAAQ4vG,YAAiB,EAASnxF,EAAGqX,MAAMk6C,GAAS8+B,GAAY9+B,IACpF,EACA,kBAAAyqH,GACE,OAAOx6L,KAAKD,QAAQsvG,WAAarvG,KAAK6mE,gBAAkB7mE,KAAKD,QAAQuwE,UAAYtwE,KAAKD,QAAQyvG,OAASxvG,KAAKD,QAAQ0vG,aAAezvG,KAAKD,QAAQ6uB,KAClJ,EACA,oBAAA6rK,GACE,OAAOz6L,KAAKinE,SAASpxC,MAClB91B,GAAYA,EAAQsvG,WAAarvG,KAAK6mE,eAAiB9mE,EAAQixG,QAEpE,EACA,mBAAA0pF,GACE,OAAO16L,KAAKinE,SAASpxC,MAClB91B,GAAYA,EAAQsvG,WAAarvG,KAAK6mE,eAAiB9mE,EAAQixG,QAEpE,EACA,iBAAA2pF,GACE,OAAO36L,KAAK+zG,2BAA6B/zG,KAAK+5L,iBAAiB1vF,MAC5DtqG,GAAYA,EAAQ+zB,MAAQ9zB,KAAKD,QAAQ+zB,KAE9C,GAEFgL,MAAO,CACL86J,YAAa,CACX76J,WAAW,EACXC,MAAM,EACN,OAAAzM,CAAQ50B,GACDA,EAAI2D,QAAWtB,KAAK65L,uBAIzB75L,KAAKg6L,WAAar8L,EAAIwgB,QACpB,CAACnC,EAAKzR,IAAQA,EAAIqC,MAAQoP,EAAIpP,MAAQrC,EAAMyR,IAJ5Chc,KAAKg6L,WAAa,CAAC,CAMvB,GAEF,uBAAAjmF,GACE/zG,KAAK46L,mBACP,GAEF,OAAA/8J,GACE27J,GAAmBx5L,KAAKD,SACxBC,KAAKozC,MAAM,gBAAiB,CAC1BrzC,QAASC,KAAKD,QACd6M,MAAO5M,KAAK4M,MACZmd,IAAK/pB,KAAKizC,MAAMlzC,SAEpB,EACAu2C,QAAS,CACP,cAAAukJ,GACO76L,KAAK+zG,0BACR/zG,KAAK+2L,cAAe,EAChB/2L,KAAK86L,mBACP96L,KAAKg3L,eAAiBh3L,KAAKD,QAAQ+zB,KAEzC,EACA,cAAAgnK,GACE,OAAQ96L,KAAKD,QAAQuwE,OACvB,EACA,cAAAyqH,GACO/6L,KAAK+zG,0BACH/zG,KAAKk3L,eAAkBl3L,KAAKq7H,cAC/Br7H,KAAK+2L,cAAe,GACtB/2L,KAAKg3L,eAAiB,KAE1B,EACA,iBAAA4D,GACE56L,KAAK+2L,cAAe,EACpB/2L,KAAKg3L,eAAiB,IACxB,EACA,QAAA3B,CAAStlH,GACP/vE,KAAKozC,MAAM,YAAa,CAAErzC,QAASC,KAAKD,QAASgwE,QACnD,EACA,WAAAirH,CAAY5wF,GACVpqG,KAAKozC,MAAM,gBAAiB,CAAEg3D,QAChC,EACA,oBAAA8tF,CAAqBpoF,GACnB9vG,KAAK46L,oBACL7qK,YAAW,KACT/vB,KAAKozC,MAAM,yBAA0B,CAAE08D,SAAQ/vG,QAASC,KAAKD,SAAU,GACtE,IACL,EACA,mBAAAo4L,EAAoB,MAAEloH,EAAK,SAAEmoH,IAC3Bp4L,KAAKozC,MAAM,wBAAyB,CAClC67B,UAAWjvE,KAAKD,QAAQ+zB,IACxBskK,SAAUnoH,EACVtoE,OAAQywL,IAAsD,IAA1CA,EAAS77L,QAAQyD,KAAK6mE,iBAE5C7mE,KAAK+2L,cAAe,CACtB,EACA,aAAAkE,GACMj7L,KAAK+zG,0BACH/zG,KAAK26L,kBACP36L,KAAKozC,MAAM,mBAAoBpzC,KAAKD,QAAQ+zB,KAE5C9zB,KAAKozC,MAAM,iBAAkBpzC,KAAKD,SAGxC,IAGEm7L,GAAe,CAAC,MAChBC,GAAe,CACnBv9L,IAAK,EACL+e,MAAO,+BAEHy+K,GAAe,CACnBx9L,IAAK,EACL+e,MAAO,gBAEH0+K,GAAe,CACnBz9L,IAAK,EACL+e,MAAO,iCAEH2+K,GAAe,CACnB19L,IAAK,EACL+e,MAAO,qBAEH4+K,GAAe,CACnB39L,IAAK,EACL+e,MAAO,qBAEH6+K,GAAe,CAAE7+K,MAAO,sBACxB8+K,GAAa,CACjB79L,IAAK,EACL+e,MAAO,mBAEH++K,GAAa,CAAE99L,IAAK,GACpB+9L,GAA8B,GAAgB,MAAO,CAAEh/K,MAAO,oBAAsB,KAAM,GAC1Fi/K,GAAc,CAClBD,IAEIE,GAAc,CAClBj+L,IAAK,EACL+e,MAAO,6BAET,SAASm/K,GAAc/6I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM6/D,EAA4B,GAAiB,kBAC7CirF,EAA2B,GAAiB,iBAC5CC,EAA2B,GAAiB,iBAC5Cl6D,EAA0B,GAAiB,gBAC3CnwD,EAAsB,GAAiB,YACvCsqH,EAA6B,GAAiB,mBAC9CC,EAA+B,GAAiB,qBACtD,OAAO,KAAa,GAAmB,MAAO,CAC5Cr6L,GAAIkxC,EAAOhzC,QAAQ+zB,IACnB/J,IAAK,UACLpN,MAAO,uBACN,CACDs0B,EAASmpJ,UAAY,KAAa,GAAmB,MAAOe,GAAc,GAAgBpoJ,EAAOhzC,QAAQs6L,MAAO,IAAM,GAAmB,IAAI,GAC7IvnJ,EAAMknJ,WAAWlmK,MAAQif,EAAOhzC,QAAQ+zB,KAAO,KAAa,GAAmB,MAAOsnK,GAAc,GAAgBroJ,EAAOo+B,aAAa9J,cAAe,IAAM,GAAmB,IAAI,GACpLt0B,EAAOhzC,QAAQo8L,QAAU,KAAa,GAAmB,MAAOd,GAAc,CAC5E,GAAWt6I,EAAKtQ,OAAQ,WAAasC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACjE,GAAYg9E,EAA2B,CACrC,aAAc/9D,EAAOhzC,QAAQ+zB,IAC7BhpB,QAASioC,EAAOhzC,QAAQ+K,QACxBwlE,UAAWv9B,EAAOhzC,QAAQuwE,QAC1B25B,MAAOl3D,EAAO2/I,UACd,gBAAiB3/I,EAAOo+B,aACxB,kBAAmBp+B,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvBmrF,cAAezlJ,EAAS+pJ,aACvB,GAAY,CAAEvgL,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,aAAc,UAAW,UAAW,QAAS,gBAAiB,kBAAmB,eAAgB,yBAEzG,KAAa,GAAmB,MAAO,CAC5C+C,IAAK,EACL+e,MAAO,GAAe,CAAC,kBAAmB,CAAE,qBAAsBo2B,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,iBACrGliB,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAASgqJ,eAAiBhqJ,EAASgqJ,iBAAiBj1L,KACnG,CACD,GAAW+6C,EAAKtQ,OAAQ,WAAasC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACjEif,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cAAgB,GAAW9lB,EAAKtQ,OAAQ,kBAAoBsC,EAAOhzC,QAAQ+zB,IAAK,CAAEl2B,IAAK,IAAK,IAAM,CACnIm1C,EAAOhzC,QAAQixG,QAAU,KAAa,GAAmB,MAAO,CAC9DpzG,IAAK,EACL+e,MAAO,aACPE,MAAO,GAAe,CAAE,mBAAoB,QAAQk2B,EAAOhzC,QAAQixG,cAClE,KAAM,IAAM,GAAmB,IAAI,MACnC,GAAmB,IAAI,GAC5B//D,EAASypJ,sBAAwB3nJ,EAAOhzC,QAAQixG,QAAU,KAAa,GAAmB,MAAOsqF,KAAiB,GAAmB,IAAI,GACzI,GAAgB,MAAO,CACrB3+K,MAAO,GAAe,CAAC,wBAAyB,CAC9C,+BAAgCs0B,EAASqpJ,kBAE1C,CACD,GAAgB,MAAO,CACrB39K,MAAO,GAAe,CAAC,mBAAoB,CACzC,wBAAyBs0B,EAASspJ,eAClC,sBAAuBxnJ,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cAC1D,sBAAuB9zB,EAAOhzC,QAAQuwE,QACtC,qBAAsBv9B,EAAOghE,wBAC7B,uBAAwB9iE,EAAS0pJ,qBAEnCx7D,YAAa14D,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAAS4pJ,gBAAkB5pJ,EAAS4pJ,kBAAkB70L,IAC1G4vL,aAAcnvH,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAAS8pJ,gBAAkB9pJ,EAAS8pJ,kBAAkB/0L,KAC1G,CACDirC,EAASgpJ,cAAgB,KAAa,GAAmB,MAAO,CAC9Dr8L,IAAK,EACL+e,MAAO,GAAe,CAAC,oBAAqB,CAC1C,sBAAuBo2B,EAAOhzC,QAAQuwE,SAAWv9B,EAAOhzC,QAAQotL,iBAEjE,CACD,GAAgB,OAAQ,KAAM,GAAgBp6I,EAAOhzC,QAAQ3E,UAAW,IACvE,IAAM,GAAmB,IAAI,IAC/B23C,EAAOhzC,QAAQuwE,SAAWv9B,EAAOhzC,QAAQotL,cAAgB,KAAa,GAAY4O,EAA0B,CAC3Gn+L,IAAK,EACLmC,QAASgzC,EAAOhzC,QAChB,aAAcgzC,EAAO2/I,UACrB,kBAAmB3/I,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,aACtB,GAAY,CAAE9wF,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,UAAW,aAAc,kBAAmB,kBAAoB,GAAmB,IAAI,IAChGk4C,EAAOhzC,QAAQuwE,SAAYv9B,EAAOhzC,QAAQ4vG,OAAU58D,EAAOhzC,QAAQ4vG,MAAMruG,QAmBuD2vC,EAAS2+D,SAAW78D,EAAOhzC,QAAQ4vG,MAAMruG,OAAS,GAAK,KAAa,GAAY06L,EAA0B,CAC1Op+L,IAAK,EACL,kBAAmBm1C,EAAO8zB,cAC1B9mE,QAASgzC,EAAOhzC,QAChB,aAAcgzC,EAAO2/I,UACrB,kBAAmB3/I,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvB,4BAA6Bx4D,EAAOghE,wBACpC0iF,WAAYxlJ,EAASokJ,SACrBqB,cAAezlJ,EAAS+pJ,aACvB,GAAY,CAAEvgL,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,kBAAmB,UAAW,aAAc,kBAAmB,eAAgB,4BAA6B,aAAc,oBAAsB,KAAa,GAAmB,GAAU,CAAE+C,IAAK,GAAK,CAC/M,GAAYkkI,EAAyB,CACnC,aAAc/uF,EAAOhzC,QAAQ+zB,IAC7Bu4E,IAAKt5D,EAAOhzC,QAAQ4vG,MAAM,GAAG/zG,IAC7B,4BAA6Bm3C,EAAOghE,wBACpCy/E,qBAAsB/sH,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAM2gJ,aAAellJ,GACjFoyF,qBAAsBl6D,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAM4gJ,mBAAqBnlJ,IACtF,GAAY,CAAE9zB,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,aAAc,MAAO,8BAC/Bk4C,EAAOhzC,QAAQuwE,QAA2G,GAAmB,IAAI,IAAvH,KAAa,GAAmB,MAAOirH,GAAc,GAAgBzoJ,EAAM2gJ,cAAe,KACpH,MAxDkF,KAAa,GAAY3iF,EAA2B,CACvIlzG,IAAK,EACL,aAAcm1C,EAAOhzC,QAAQ+zB,IAC7BhpB,QAASioC,EAAOhzC,QAAQ+K,QACxBwlE,UAAWv9B,EAAOhzC,QAAQuwE,QAC1B25B,MAAOl3D,EAAO2/I,UACd,kBAAmB3/I,EAAOy3D,eAC1B,gBAAiBz3D,EAAOo+B,aACxB,eAAgBp+B,EAAOw4D,YACvBmrF,cAAezlJ,EAAS+pJ,aACvB,GAAY,CAAEvgL,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,aAAc,UAAW,UAAW,QAAS,kBAAmB,gBAAiB,eAAgB,mBAsC5G,GAAgB,MAAO2gM,GAAc,CACnCzoJ,EAAOhzC,QAAQq8L,SAAWrpJ,EAAOhzC,QAAQuwE,SAAW,KAAa,GAAmB,MAAOmrH,GAAY,CACrG,GAAW16I,EAAKtQ,OAAQ,eAAiBsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACrE,GAAY69C,EAAqB,CAAE5uE,KAAM,iBAEvC,GAAmB,IAAI,GAC7B,GAAgB,OAAQ,KAAM,GAAgBgwC,EAAOhzC,QAAQmxG,WAAY,GACzEjgE,EAASupJ,oBAAsB,KAAa,GAAmB,OAAQkB,GAAY,CACjF,GAAW36I,EAAKtQ,OAAQ,kBAAoBsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACxE,GAAY69C,EAAqB,CAC/B5uE,KAAMgwC,EAAOhzC,QAAQ0vG,YAAc,mBAAqB,YACxD9/B,MAAO58B,EAAOhzC,QAAQ6uB,KAAO,OAAS,GACtCjS,MAAO,kBACN,KAAM,EAAG,CAAC,OAAQ,gBAEnB,GAAmB,IAAI,KAE/B,GAAYs/K,EAA4B,CACtC,kBAAmBlpJ,EAAO8zB,cAC1B9mE,QAASgzC,EAAOhzC,QAChB,kBAAmBgzC,EAAO8jJ,eAC1B,uBAAwB9jJ,EAAO+jJ,mBAC/B,gBAAiBhkJ,EAAMikJ,aACvB,mBAAoBjkJ,EAAMkkJ,eAC1B,uBAAwBlkJ,EAAM4gJ,mBAC9B,oBAAqB3gJ,EAAO0oF,gBAC5B4gE,qBAAsB51H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMikJ,aAAexoJ,GACjF+tJ,sBAAuB71H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMokJ,cAAgB3oJ,GACnFguJ,oBAAqB91H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMuoF,YAAc9sF,GAC/EiuJ,uBAAwBvrJ,EAASinJ,qBACjCuE,sBAAuBxrJ,EAASknJ,qBAC/B,GAAY,CAAE19K,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,kBAAmB,UAAW,kBAAmB,uBAAwB,gBAAiB,mBAAoB,uBAAwB,oBAAqB,yBAA0B,2BAC/L,IACH,GAAYqhM,EAA8B,CACxC,kBAAmBnpJ,EAAO8zB,cAC1B9mE,QAASgzC,EAAOhzC,QAChB08L,sBAAuBxrJ,EAASknJ,qBAC/B,KAAM,EAAG,CAAC,kBAAmB,UAAW,2BAC1C,GACH,GAAWp3I,EAAKtQ,OAAQ,mBAAqBsC,EAAOhzC,QAAQ+zB,IAAK,CAAC,GAAG,IAAM,CACzEif,EAAOhzC,QAAQ28L,SAAW3pJ,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,eAAiB,KAAa,GAAmB,MAAO,CACnHjpE,IAAK,EACL+e,MAAO,GAAe,CAAC,uCAAwC,CAC7D,+BAAgCo2B,EAAOhzC,QAAQixG,QAAUj+D,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,iBAE9FliB,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,sBAAuB,CAAErzC,QAASgzC,EAAOhzC,YAClG67L,GAAa,IAAM,GAAmB,IAAI,MAE/C7oJ,EAAOhzC,QAAQsvG,WAAat8D,EAAO8zB,cAAgB,GAAW9lB,EAAKtQ,OAAQ,kBAAoBsC,EAAOhzC,QAAQ+zB,IAAK,CAAEl2B,IAAK,IAAK,IAAM,CACnIm1C,EAAOhzC,QAAQixG,QAAU,KAAa,GAAmB,MAAO,CAC9DpzG,IAAK,EACL+e,MAAO,gCACPE,MAAO,GAAe,CAAE,mBAAoB,QAAQk2B,EAAOhzC,QAAQixG,cAClE,KAAM,IAAM,GAAmB,IAAI,MACnC,GAAmB,IAAI,GAC5B//D,EAASwpJ,uBAAyB1nJ,EAAOhzC,QAAQixG,QAAU,KAAa,GAAmB,MAAO6qF,KAAgB,GAAmB,IAAI,OAE1I,KACF,EAAGX,GACR,CACA,IAAIyB,GAA8B9tH,GAAY6qH,GAAa,CAAC,CAAC,SAAUoC,MACvE,MAAMc,GAAc,CAClB75L,KAAM,WACNw0C,WAAY,CACVk4B,UACAwB,WACAskC,cACAi9E,cACAmK,gBAEFhxL,MAAO,CACLk7D,cAAe,CAAEt0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GACnDmC,aAAc,CAAE5+D,KAAMjO,OAAQ0qE,UAAU,GACxC4kC,WAAY,CAAErhG,KAAMsvB,QAASmtC,UAAU,GACvC0iC,cAAe,CAAEn/F,KAAMsvB,QAASmtC,UAAU,GAC1C2iC,SAAU,CAAEp/F,KAAMsvB,QAASmtC,UAAU,GACrClI,MAAO,CAAEv0D,KAAMtM,MAAO+oE,UAAU,GAChChI,OAAQ,CAAEz0D,KAAM,CAACrG,OAAQuP,QAASuzD,UAAU,GAC5C6tH,cAAe,CAAEtqL,KAAMsvB,QAASmtC,UAAU,GAC1C/H,SAAU,CAAE10D,KAAMtM,MAAO+oE,UAAU,GACnC07G,YAAa,CAAEn4K,KAAMrG,OAAQ6wB,QAAS,MACtCgqC,eAAgB,CAAEx0D,KAAMsvB,QAASmtC,UAAU,GAC3C8kC,YAAa,CAAEvhG,KAAMtM,MAAO+oE,UAAU,GACtC6nH,eAAgB,CAAEtkL,KAAMtM,MAAO+oE,UAAU,GACzCglC,wBAAyB,CAAEzhG,KAAMtM,MAAO+oE,UAAU,GAClD8tH,WAAY,CAAEvqL,KAAMjO,OAAQ0qE,UAAU,GACtC27G,aAAc,CAAEp4K,KAAMsvB,QAASmtC,UAAU,GACzC47G,UAAW,CAAEr4K,KAAMsvB,QAASmtC,UAAU,GACtC67G,UAAW,CAAEt4K,KAAMsvB,QAASmtC,UAAU,GACtCw8G,aAAc,CAAEj5K,KAAMkJ,OAAQuzD,UAAU,GACxCy8G,gBAAiB,CAAEl5K,KAAMkJ,OAAQuzD,UAAU,GAC3C87G,WAAY,CAAEv4K,KAAMsvB,QAASmtC,UAAU,GACvC8nH,mBAAoB,CAAEvkL,KAAMsvB,QAASmtC,UAAU,GAC/C6qH,uBAAwB,CAAEtnL,KAAMsvB,QAASmtC,UAAU,GACnD+7G,WAAY,CAAEx4K,KAAMsvB,QAASmtC,UAAU,GACvCg8G,cAAe,CAAEz4K,KAAMrG,OAAQ8iE,UAAU,GACzCk8G,aAAc,CAAE34K,KAAMrG,OAAQ8iE,UAAU,GACxCi8G,cAAe,CAAE14K,KAAMsvB,QAAS9E,SAAS,GACzCytE,eAAgB,CAAEj4F,KAAMjO,OAAQ0qE,UAAU,GAC1Cu8B,YAAa,CAAEh5F,KAAMjO,OAAQ0qE,UAAU,GACvCsC,aAAc,CAAE/+D,KAAMsvB,QAASmtC,UAAU,GACzC6kC,gBAAiB,CAAEthG,KAAMsvB,QAASmtC,UAAU,GAC5Cm8G,sBAAuB,CAAE54K,KAAMsvB,QAASmtC,UAAU,GAClDo8G,kBAAmB,CAAE74K,KAAMsvB,QAASmtC,UAAU,GAC9Cq8G,gBAAiB,CAAE94K,KAAMsvB,QAASmtC,UAAU,GAC5Cs8G,wBAAyB,CAAE/4K,KAAMsvB,QAASmtC,UAAU,GACpD8iC,eAAgB,CAAEv/F,KAAMkJ,OAAQuzD,UAAU,GAC1Cu8G,cAAe,CAAEh5K,KAAMtM,MAAO82B,QAAS,MACvC+8J,gBAAiB,CAAEvnL,KAAMjO,OAAQ0qE,UAAU,GAC3CysD,gBAAiB,CAAElpH,KAAMrG,OAAQ6wB,aAAS,IAE5CjK,MAAO,CACL,oBACA,YACA,sBACA,mCACA,eACA,eACA,iBACA,yBACA,iBACA,wBACA,iBACA,YACA,gBACA,sBACA,2BAEF,IAAAj4B,GACE,MAAO,CACL8+L,gBAAiB,KACjBjO,iBAAkB,KAClBC,gBAAiB,KACjBoR,iBAAiB,EACjB/qF,SAAU,KACVC,YAAY,EACZ+qF,qBAAqB,EACrBC,YAAY,EACZC,oBAAqB,EACrBtD,YAAa,GACb7lF,yBAAyB,EACzBgmF,iBAAkB,GAClBnO,aAAc,GAElB,EACA/qK,SAAU,CACR,IAAA0tF,GACE,OAAOvuG,KAAK8mE,MAAMujC,MAAMkE,GAASA,EAAKvnC,SAAWhnE,KAAKgnE,UAAW,CAAC,CACpE,EACA,cAAAm2H,GACE,OAAOn9L,KAAKgnE,SAAWhnE,KAAKinE,SAAS3lE,SAAWtB,KAAK+8L,kBAAoB/8L,KAAKsxE,YAChF,EACA,UAAA8rH,GACE,MAAMC,GAAkBr9L,KAAK8mE,MAAMxlE,SAAWtB,KAAKsxE,eAAiBtxE,KAAKgnE,SAAWhnE,KAAK68L,cAIzF,OAHIQ,GACFr9L,KAAKs9L,uBAAsB,GAEtBD,CACT,EACA,mBAAAE,GACE,OAAOv9L,KAAKinE,SAAS3lE,QAAUtB,KAAK+mE,cACtC,GAEFjoC,MAAO,CACLkoC,OAAQ,CACNjoC,WAAW,EACX,OAAAxM,GACEvyB,KAAKw9L,eACP,GAEFv2H,SAAU,CACRjoC,MAAM,EACN,OAAAzM,CAAQ1I,EAAQuoF,GACdvoF,EAAOnsB,SAAQ,CAACqC,EAASmG,KACnBlG,KAAK65L,yBAA2B95L,EAAQ6uB,MAAQ7uB,EAAQsvG,WAAarvG,KAAK6mE,eAC5E7mE,KAAK45L,YAAYv4L,KAAK,CACpByyB,IAAK/zB,EAAQ+zB,IACblnB,MAAO1G,GAEX,KAEa,MAAVksG,OAAiB,EAASA,EAAO9wG,WAAuB,MAAVuoB,OAAiB,EAASA,EAAOvoB,QAAU,IAC5FtB,KAAK45L,YAAc,IAErB7pK,YAAW,IAAM/vB,KAAKg9L,qBAAsB,GAC9C,GAEF,cAAAj2H,CAAeppE,GACTA,GACFqC,KAAKs9L,uBAAsB,EAC/B,GAEF,OAAAz/J,GACE79B,KAAK45L,YAAc,EACrB,EACAtjJ,QAAS,CACP,qBAAAgnJ,CAAsB3/L,GACpBqC,KAAK+8L,gBAAkBp/L,EAClBA,GACHoyB,YAAW,IAAM/vB,KAAKqyG,4BAE1B,EACA,wBAAAA,GACMryG,KAAKgyG,WACPhyG,KAAKiyG,YAAa,EAClBjyG,KAAKgyG,SAAS93C,cAEhB,MAAMt0B,EAAS5lC,KAAK6yC,IAAIwJ,cAAc,6BACtC,GAAIzW,EAAQ,CACV,MAAMz3B,EAAU,CACdynB,KAAM51B,KAAK6yC,IAAIwJ,cAAc,kBAC7Bi2D,WAAY,GAAGtyG,KAAK8xG,mBACpBS,UAAW,GAEbvyG,KAAKgyG,SAAW,IAAIQ,sBAAsBt0F,IACpCA,EAAQ,GAAGu0F,gBACbzyG,KAAKy9L,kBACP,GACCtvL,GACHnO,KAAKgyG,SAASh4C,QAAQp0B,EACxB,CACF,EACA,gBAAA83J,GACE,MAAMvyL,EAAYnL,KAAKizC,MAAM0qJ,gBACvBC,EAAmBzyL,EAAU6iL,aAC7Bh8E,EAAW,IAAI0Z,gBAAgBjxG,IAC/BtP,EAAU6iL,eAAiB4P,GACzB59L,KAAKizC,MAAM0qJ,kBACb39L,KAAKizC,MAAM0qJ,gBAAgBE,SAAS,CAClC78H,IAAK71D,EAAU6iL,aAAe4P,IAEhC5rF,EAAS93C,aAEb,IAEF,IAAK,IAAIh0D,EAAI,EAAGA,EAAIiF,EAAUirB,SAAS90B,OAAQ4E,IAC7C8rG,EAASh4C,QAAQ7uD,EAAUirB,SAASlwB,GAExC,EACA,UAAA43L,CAAWC,GACT,IAAI/9L,KAAK4zG,YAEgC,IAArCmqF,EAAWC,eAAe18L,OAAc,CAC1C,MAAM28L,EAAYF,EAAWC,eAAe,GAAGl/D,QACzCo/D,EAAYH,EAAWC,eAAe,GAAG5hE,QAC/Cl+H,iBACE,YACCigM,GAAgBn+L,KAAKo+L,SAASD,EAAaF,EAAWC,IACvD,CAAEjtK,MAAM,GAEZ,CACF,EACA,QAAAmtK,CAASL,EAAYE,EAAWC,GAC9B,GAAyC,IAArCH,EAAWC,eAAe18L,OAAc,CAC1C,MAAM+8L,EAAUN,EAAWC,eAAe,GAAGl/D,QACvCw/D,EAAUP,EAAWC,eAAe,GAAG5hE,QACvCmiE,EAAeF,EAAUJ,EAAY,IACrCO,EAAoBxtL,KAAKy1G,IAAI63E,EAAUJ,GAAa,GACtDK,IAAiBC,GACnBx+L,KAAKozC,MAAM,oBAEf,CACF,EACA,aAAAoqJ,GACEx9L,KAAKs9L,uBAAsB,GAC3Bt9L,KAAKi9L,YAAa,EAClBj9L,KAAKk9L,oBAAsB,EAC3Bl9L,KAAKy+L,wBACL,MAAMr/J,EAAUp/B,KAAKuzC,QACnB,IAAMvzC,KAAKinE,WACVtpE,IACC,IAAKA,IAAQA,EAAI2D,OACf,OACF,MAAMwpG,EAAW9qG,KAAKizC,MAAM0qJ,gBACvB7yF,IAEL1rE,IACArP,YAAW,KACT+6E,EAAS+yF,SAAS,CAAE78H,IAAK8pC,EAASkjF,eAClChuL,KAAKs9L,uBAAsB,EAAM,IACjC,GAGR,EACA,qBAAAmB,GACEz+L,KAAK+zG,yBAA0B,EAC/B/zG,KAAK+5L,iBAAmB,EAC1B,EACA,aAAAkB,CAAcl7L,GACZC,KAAK+5L,iBAAiB14L,KAAKtB,EAC7B,EACA,eAAA2+L,CAAgBzvH,GACdjvE,KAAK+5L,iBAAmB/5L,KAAK+5L,iBAAiBv1L,QAC3CzE,GAAYA,EAAQ+zB,MAAQm7C,GAEjC,EACA,cAAA0vH,EAAe,QAAE5+L,EAAO,MAAE6M,EAAK,IAAEmd,IAC/B,GAAInd,IAAU5M,KAAKinE,SAAS3lE,OAAS,EACnC,OACF,MAAMs9L,EAAmB70K,EAAI4uC,aAAe,GAC5C5oC,YAAW,KACT,MAAM4tK,EAAkB39L,KAAKizC,MAAM0qJ,gBACnC,IAAIkB,GAAa,EACblB,IACFkB,EAAa7+L,KAAK8+L,gBAAgBnB,GAAmBiB,GAEnD7+L,EAAQsvG,WAAarvG,KAAK6mE,cACxBg4H,EACE7+L,KAAK88L,WAAWp+L,KAAKqgM,kBACvB/+L,KAAKg/L,iBAGHh/L,KAAK88L,WAAWp+L,KAAKyyG,KACvBnxG,KAAKg/L,iBAILH,EACE7+L,KAAK88L,WAAWmC,QAAQF,iBAC1B/+L,KAAKg/L,kBAELh/L,KAAKi9L,YAAa,EAClBj9L,KAAKk9L,uBAGHl9L,KAAK88L,WAAWmC,QAAQ9tF,IAC1BnxG,KAAKg/L,kBAELh/L,KAAKi9L,YAAa,EAClBj9L,KAAKk9L,sBAGX,GAEJ,EACA,iBAAAgC,CAAkBlhM,GAChB,IAAKA,EAAE6F,OACL,OACF,MAAMs7L,EAAen/L,KAAK8+L,gBAAgB9gM,EAAE6F,QACxCs7L,EAAe,KACjBn/L,KAAKk9L,oBAAsB,GAC7Bl9L,KAAKi9L,WAAakC,EAAe,KAAOn/L,KAAKk9L,mBAC/C,EACA,gBAAAO,GACMz9L,KAAK+8L,iBAEThtK,YACE,KACE,IAAI/vB,KAAKg9L,oBAAT,CAEA,GAAIh9L,KAAK+mE,iBAAmB/mE,KAAKgnE,OAG/B,OAFAhnE,KAAKg9L,qBAAsB,OAC3Bh9L,KAAKiyG,YAAa,GAGpBjyG,KAAK09L,mBACL19L,KAAKozC,MAAM,kBACXpzC,KAAKg9L,qBAAsB,CARnB,CAQuB,GAEjC,IAEJ,EACA,oBAAA9E,EAAqB,OAAEpoF,EAAM,QAAE/vG,IAC7B,OAAQ+vG,EAAO/sG,MACb,IAAK,eAKH,OAJA/C,KAAK0rL,iBAAmB3rL,OACxBgwB,YAAW,KACT/vB,KAAK0rL,iBAAmB,IAAI,IAGhC,IAAK,cAKH,OAJA1rL,KAAK2rL,gBAAkB5rL,OACvBgwB,YAAW,KACT/vB,KAAK2rL,gBAAkB,IAAI,IAG/B,IAAK,gBACH,OAAO3rL,KAAKozC,MAAM,iBAAkBrzC,GACtC,IAAK,iBAGH,OAFAC,KAAK+5L,iBAAmB,CAACh6L,QACzBC,KAAK+zG,yBAA0B,GAEjC,QACE,OAAO/zG,KAAKozC,MAAM,yBAA0B,CAAE08D,SAAQ/vG,YAE5D,EACA,6BAAAw0G,CAA8BzE,GAC5B9vG,KAAKozC,MAAM,mCAAoC,CAC7C08D,SACA7oC,SAAUjnE,KAAK+5L,mBAEjB/5L,KAAKy+L,uBACP,EACA,mBAAAtG,CAAoBiH,GAClBp/L,KAAKozC,MAAM,wBAAyBgsJ,EACtC,EACA,eAAAN,CAAgBh0F,GACd,MAAM,aAAEkjF,EAAY,aAAEoH,EAAY,UAAEt7D,GAAchvB,EAClD,OAAOkjF,EAAeoH,EAAet7D,CACvC,EACA,cAAAklE,GACEjvK,YAAW,KACT,MAAM+6E,EAAW9qG,KAAKizC,MAAM0qJ,gBACxB7yF,IACFA,EAASx/F,UAAUC,IAAI,qBACvBu/F,EAAS+yF,SAAS,CAAE78H,IAAK8pC,EAASkjF,aAAcqR,SAAU,WAC1DtvK,YAAW,IAAM+6E,EAASx/F,UAAU3D,OAAO,uBAC7C,GACC,GACL,EACA,QAAA0tL,EAAS,QAAEt1L,EAAO,KAAEgwE,IAClB/vE,KAAKozC,MAAM,YAAa,CAAErzC,UAASgwE,QACrC,EACA,WAAAirH,CAAY5wF,GACVpqG,KAAKozC,MAAM,gBAAiBg3D,EAC9B,EACA,WAAAk1F,CAAY7vK,GACNzvB,KAAK4qL,YACP5qL,KAAK4rL,aAAen8J,EAAM8vK,aAAa5vF,MAE3C,IAGE6vF,GAAe,CAAE7iL,MAAO,uCACxB8iL,GAAe,CAAE9iL,MAAO,0BACxB+iL,GAAe,CACnB9hM,IAAK,EACL+e,MAAO,oBAEHgjL,GAAe,CACnB/hM,IAAK,EACL+e,MAAO,oBAEHijL,GAAe,CACnBhiM,IAAK,EACLiE,GAAI,4BAEAg+L,GAAa,CAAEjiM,IAAK,GACpBkiM,GAAa,CACjBliM,IAAK,EACL+e,MAAO,wCAET,SAASojL,GAAch/I,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM+uJ,EAAyB,GAAiB,eAC1C5sF,EAAoB,GAAiB,UACrC6sF,EAA0B,GAAiB,gBAC3CtuH,EAAsB,GAAiB,YACvCuuH,EAAyB,GAAiB,eAChD,OAAO,IAAgB,KAAa,GAAmB,MAAO,CAC5DvjL,MAAO,mBACPwjL,OAAQ15H,EAAO,MAAQA,EAAO,IAAM,IAAc,IAAIzgE,IAASirC,EAASquJ,aAAeruJ,EAASquJ,eAAet5L,IAAO,CAAC,aACvHo6L,YAAa35H,EAAO,MAAQA,EAAO,IAAM,IAAc,QACpD,CAAC,aACJ45H,WAAY55H,EAAO,MAAQA,EAAO,IAAM,IAAc,QACnD,CAAC,aACJ65H,YAAa75H,EAAO,MAAQA,EAAO,IAAM,IAAc,QACpD,CAAC,aACJ85H,aAAc95H,EAAO,MAAQA,EAAO,IAAM,IAAIzgE,IAASirC,EAAS6sJ,YAAc7sJ,EAAS6sJ,cAAc93L,KACpG,CACDirC,EAASmsJ,WAAa,GAAWr8I,EAAKtQ,OAAQ,mBAAoB,CAAE7yC,IAAK,IAAK,IAAM,CAClF,GAAgB,MAAO4hM,GAAc,CACnC,GAAgB,MAAO,KAAM,GAAgBzsJ,EAAOo+B,aAAa/J,YAAa,SAE5E,KAAa,GAAY44H,EAAwB,CACrDpiM,IAAK,EACL,kBAAmBm1C,EAAO8zB,cAC1B,gBAAiB9zB,EAAOo+B,aACxB,cAAep+B,EAAO6gE,WACtB,kBAAmB7gE,EAAO2+D,cAC1B,YAAa3+D,EAAO4+D,SACpB,oBAAqB5+D,EAAO8gE,gBAC5B,eAAgB9gE,EAAO+gE,YACvBvF,KAAMt9D,EAASs9D,KACf,4BAA6Bz7D,EAAMihE,wBACnC,4BAA6BhhE,EAAOihE,wBACpC,0BAA2BlhE,EAAMinJ,iBAAiBz4L,OAClDk/L,kBAAmB/5H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,sBACpEqtJ,WAAYh6H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,cAC7DstJ,oBAAqBj6H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,sBAAuB7E,IAC7FoyJ,gCAAiC1vJ,EAASsjE,8BAC1CqsF,yBAA0Bn6H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMihE,yBAA0B,IAC/F,GAAY,CAAEt5F,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAACvqC,EAAGnD,KACnB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,kBAAmB,gBAAiB,cAAe,kBAAmB,YAAa,oBAAqB,eAAgB,OAAQ,4BAA6B,4BAA6B,0BAA2B,qCAChO,GAAgB,MAAO,CACrBgH,GAAI,gBACJkoB,IAAK,kBACLpN,MAAO,uBACPkkL,SAAUp6H,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAASiuJ,mBAAqBjuJ,EAASiuJ,qBAAqBl5L,KAC5G,CACD,GAAYotG,EAAmB,CAC7B9sC,KAAMxzB,EAAMiqJ,gBACZxqL,KAAM,YACL,GAAY,CAAEkI,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,SACX,GAAgB,MAAO4kM,GAAc,CACnC,GAAgB,MAAO,CACrB9iL,MAAO,GAAe,CAAE,sBAAuBm2B,EAAMiqJ,mBACpD,CACD,GAAY,GAAY,CAAEh6L,KAAM,oBAAsB,CACpDg6B,QAAS,IAAQ,IAAM,CACrB,GAAgB,MAAO,KAAM,CAC3BkU,EAASksJ,gBAAkB,KAAa,GAAmB,MAAOuC,GAAc,CAC9E,GAAW3+I,EAAKtQ,OAAQ,iBAAkB,CAAC,GAAG,IAAM,CAClD,GAAgB,GAAgBsC,EAAOo+B,aAAa5J,gBAAiB,SAEnE,GAAmB,IAAI,GAC7Bt2B,EAASssJ,qBAAuB,KAAa,GAAmB,MAAOoC,GAAc,GAAgB5sJ,EAAOo+B,aAAa3J,sBAAwB,IAAM,GAAgBz0B,EAAOk0B,SAAS,GAAGozH,MAAO,IAAM,GAAmB,IAAI,QAGlO5/K,EAAG,IAELs4B,EAAOk0B,SAAS3lE,SAAWyxC,EAAOg0B,gBAAkB,KAAa,GAAmB,MAAO64H,GAAc,CACvG,GAAYxsF,EAAmB,CAC7B9sC,MAAM,EACNyI,UAAU,EACVx8D,KAAM,qBACL,GAAY,CAAEkI,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,SACA,GAAmB,IAAI,IAC5B,KAAa,GAAY,GAAiB,CACzC+C,IAAKm1C,EAAOi0B,OACZjkE,KAAM,mBACNmpC,IAAK,QACJ,CACDnP,QAAS,IAAQ,IAAM,EACpB,IAAU,GAAO,GAAmB,GAAU,KAAM,GAAWgW,EAAOk0B,UAAU,CAACl1C,EAAG7rB,KAC5E,KAAa,GAAmB,MAAO,CAC5CtI,IAAKm0B,EAAE+uK,SAAW/uK,EAAE+B,KACnB,CACD,GAAYmsK,EAAyB,CACnC,kBAAmBltJ,EAAO8zB,cAC1B9mE,QAASgyB,EACTnlB,MAAO1G,EACP+gE,SAAUl0B,EAAOk0B,SACjB,oBAAqBn0B,EAAM6mJ,gBAC3B,kBAAmB5mJ,EAAO8jJ,eAC1B,aAAc5lJ,EAASs9D,KAAKtE,MAC5B,gBAAiBl3D,EAAOo+B,aACxB,eAAgBr+B,EAAM8mJ,YACtB,uBAAwB7mJ,EAAO+jJ,mBAC/B,4BAA6B/jJ,EAAO8mJ,uBACpC,kBAAmB9mJ,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvB,mBAAoBx4D,EAAO+mJ,gBAC3B,4BAA6BhnJ,EAAMihE,wBACnC,oBAAqBjhE,EAAMinJ,iBAC3B,oBAAqBhnJ,EAAO0oF,gBAC5BkjE,eAAgB1tJ,EAAS0tJ,eACzBnC,uBAAwBvrJ,EAASinJ,qBACjCzB,WAAYxlJ,EAASokJ,SACrBqB,cAAezlJ,EAAS+pJ,YACxB+F,oBAAqBt6H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,sBAAuB7E,IAC7FkuJ,sBAAuBxrJ,EAASknJ,oBAChC6I,gBAAiB/vJ,EAASgqJ,cAC1BgG,kBAAmBhwJ,EAASytJ,iBAC3B,GAAY,CAAEjkL,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,kBAAmB,UAAW,QAAS,WAAY,oBAAqB,kBAAmB,aAAc,gBAAiB,eAAgB,uBAAwB,4BAA6B,kBAAmB,eAAgB,mBAAoB,4BAA6B,oBAAqB,oBAAqB,iBAAkB,yBAA0B,aAAc,gBAAiB,wBAAyB,kBAAmB,2BAE/b,SAEN4f,EAAG,MAEJ,MAEJ,KACFq4B,EAAMiqJ,gBAwBD,GAAmB,IAAI,IAxBH,KAAa,GAAmB,MAAO8C,GAAY,CAC3E,GAAY,GAAY,CAAE98L,KAAM,cAAgB,CAC9Cg6B,QAAS,IAAQ,IAAM,CACrB+V,EAAMmqJ,YAAc,KAAa,GAAmB,MAAO,CACzDr/L,IAAK,EACL+e,MAAO,kBACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAIzgE,IAASirC,EAAS+tJ,gBAAkB/tJ,EAAS+tJ,kBAAkBh5L,KACrG,CACD,GAAY,GAAY,CAAEjD,KAAM,cAAgB,CAC9Cg6B,QAAS,IAAQ,IAAM,CACrB+V,EAAMoqJ,qBAAuB,KAAa,GAAmB,MAAO4C,GAAY,GAAgBhtJ,EAAMoqJ,qBAAsB,IAAM,GAAmB,IAAI,MAE3JziL,EAAG,IAEL,GAAWsmC,EAAKtQ,OAAQ,cAAe,CAAC,GAAG,IAAM,CAC/C,GAAYkhC,EAAqB,CAC/B5uE,KAAM,WACN4sE,MAAO,iBAGP,GAAmB,IAAI,MAE/Bl1D,EAAG,OAGP,GAAYylL,EAAwB,CAClC3xF,KAAMt9D,EAASs9D,KACf,UAAWx7D,EAAOi0B,OAClB,eAAgBj0B,EAAO23I,YACvB,gBAAiB33I,EAAOo+B,aACxB,iBAAkBp+B,EAAO43I,aACzB,aAAc53I,EAAO63I,UACrB,aAAc73I,EAAO83I,UACrB,cAAe93I,EAAO+3I,WACtB,cAAe/3I,EAAOg4I,WACtB,iBAAkBh4I,EAAOi4I,cACzB,gBAAiBj4I,EAAOm4I,aACxB,iBAAkBn4I,EAAOk4I,cACzB,0BAA2Bl4I,EAAOo4I,sBAClC,sBAAuBp4I,EAAOq4I,kBAC9B,oBAAqBr4I,EAAOs4I,gBAC5B,4BAA6Bt4I,EAAOu4I,wBACpC,iBAAkBv4I,EAAOw4I,cACzB,kBAAmBx4I,EAAOy3D,eAC1B,eAAgBz3D,EAAOw4D,YACvB,iBAAkBx4D,EAAOy4I,aACzB,oBAAqBz4I,EAAO04I,gBAC5B,qBAAsB34I,EAAM44I,iBAC5B,oBAAqB54I,EAAM64I,gBAC3B,gBAAiB74I,EAAM84I,aACvB,oBAAqB74I,EAAO0oF,gBAC5BylE,wBAAyBz6H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAM6mJ,gBAAkBprJ,GACvF4yJ,cAAe16H,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,eAAgB7E,IAChFu5B,cAAerB,EAAO,KAAOA,EAAO,GAAMl4B,GAAWwS,EAAK3N,MAAM,eAAgB7E,IAChF6yJ,gBAAiB36H,EAAO,MAAQA,EAAO,IAAOl4B,GAAWwS,EAAK3N,MAAM,iBAAkB7E,IACtF8yJ,wBAAyB56H,EAAO,MAAQA,EAAO,IAAOl4B,GAAWwS,EAAK3N,MAAM,0BAA2B7E,KACtG,GAAY,CAAE9zB,EAAG,GAAK,CACvB,GAAWsmC,EAAKtQ,QAAQ,CAAC2gE,EAAKruG,KACrB,CACLA,OACAjB,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQ1tC,EAAM,GAAe,GAAmBlI,cAIpE,KAAM,CAAC,OAAQ,UAAW,eAAgB,gBAAiB,iBAAkB,aAAc,aAAc,cAAe,cAAe,iBAAkB,gBAAiB,iBAAkB,0BAA2B,sBAAuB,oBAAqB,4BAA6B,iBAAkB,kBAAmB,eAAgB,iBAAkB,oBAAqB,qBAAsB,oBAAqB,gBAAiB,uBAC3b,MAAO,CACR,CAAC,GAAOk4C,EAAO4+D,WAAa5+D,EAAO2+D,gBAAkB3+D,EAAO4+D,UAAY5+D,EAAO6gE,aAEnF,CACA,IAAI0tF,GAAuBzyH,GAAY+tH,GAAa,CAAC,CAAC,SAAUmD,MAChE,MAAMwB,GAAc,CAClBx+L,KAAM,eACNw0C,WAAY,CACV05B,YAEFtlE,MAAO,CACLokE,KAAM,CAAEx9D,KAAMjO,OAAQ0qE,UAAU,IAElCl8C,MAAO,CAAC,uBACRjS,SAAU,CACR,OAAAm8G,GACE,OAAOtuB,GAAY1uG,KAAK+vE,KAC1B,EACA,OAAAktD,GACE,OAAOtuB,GAAY3uG,KAAK+vE,KAC1B,GAEF,OAAAlyC,GACE79B,KAAKizC,MAAMuuJ,MAAM3rE,OACnB,EACAv/E,QAAS,CACP,UAAAmrJ,GACEzhM,KAAKozC,MAAM,sBACb,IAGEsuJ,GAAe,CACnB9jM,IAAK,EACL+e,MAAO,+BAEHglL,GAAa,CACjB/jM,IAAK,EACL+e,MAAO,+BAEHilL,GAAa,CACjBpkE,SAAU,GACVqkE,SAAU,IAENC,GAAa,CAAC,OACdC,GAAa,CAAEplL,MAAO,kBAC5B,SAASqlL,GAAcjhJ,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GAC1D,MAAM0gC,EAAsB,GAAiB,YAC7C,OAAO,KAAa,GAAmB,MAAO,CAC5C5nD,IAAK,QACLk4K,SAAU,IACVtlL,MAAO,oBACPgoC,QAAS8hB,EAAO,KAAOA,EAAO,GAAK,IAAc,IAAIzgE,IAASirC,EAASwwJ,YAAcxwJ,EAASwwJ,cAAcz7L,IAAO,CAAC,UACpHksL,UAAWzrH,EAAO,KAAOA,EAAO,GAAK,IAAS,IAAIzgE,IAASirC,EAASwwJ,YAAcxwJ,EAASwwJ,cAAcz7L,IAAO,CAAC,UAChH,CACD,GAAY,GAAY,CACtBjD,KAAM,qBACN6+B,OAAQ,IACP,CACD7E,QAAS,IAAQ,IAAM,CACrBkU,EAAS+rF,SAAW,KAAa,GAAmB,MAAO0kE,GAAc,CACvE,GAAgB,MAAO,CACrB/kL,MAAO,oBACPE,MAAO,GAAe,CACpB,mBAAoB,QAAQk2B,EAAOg9B,KAAKn0E,WAEzC,KAAM,MACLq1C,EAASgsF,SAAW,KAAa,GAAmB,MAAO0kE,GAAY,CAC3E,GAAgB,QAASC,GAAY,CACnC,GAAgB,SAAU,CACxBv1F,IAAKt5D,EAAOg9B,KAAKn0E,KAChB,KAAM,EAAGkmM,SAEV,GAAmB,IAAI,MAE/BrnL,EAAG,IAEL,GAAgB,MAAOsnL,GAAY,CACjC,GAAWhhJ,EAAKtQ,OAAQ,qBAAsB,CAAC,GAAG,IAAM,CACtD,GAAYkhC,EAAqB,CAC/B5uE,KAAM,gBACN4sE,MAAO,kBAIZ,IACL,CACA,IAAIuyH,GAA+BrzH,GAAY0yH,GAAa,CAAC,CAAC,SAAUS,MACpEG,GAAU,CACZh7H,YAAa,WACbC,WAAY,mBACZC,aAAc,eACdC,gBAAiB,2BACjBC,eAAgB,cAChBC,qBAAsB,2BACtBC,aAAc,eACdC,OAAQ,SACRC,UAAW,YACXC,UAAW,aACXC,UAAW,gBACXytC,sBAAuB,UAEzB,MAAM8sF,GAAqB,CACzBC,MAAO,CACLC,QAAS,CACPh5E,MAAO,UACPi5E,iBAAkB,UAClBC,YAAa,OACbC,sBAAuB,UACvBC,gBAAiB,OACjBC,iBAAkB,UAClBC,WAAY,UACZC,aAAc,OACdC,YAAa,oBACbC,qBAAsB,QAExB53L,UAAW,CACT63L,OAAQ,OACRC,aAAc,MACdC,UAAW,4EAEblyC,OAAQ,CACNmyC,WAAY,OACZC,cAAe,UACfC,cAAe,WAEjBC,OAAQ,CACNH,WAAY,UACZI,iBAAkB,oBAClBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UACrBC,cAAe,WAEjB74L,QAAS,CACPq4L,WAAY,WAEdS,SAAU,CACRT,WAAY,OACZU,gBAAiB,UACjBC,iBAAkB,UAClBC,YAAa,UACbC,kBAAmB,WAErB3zH,SAAU,CACR8yH,WAAY,OACZU,gBAAiB,WAEnB9jM,QAAS,CACPojM,WAAY,OACZc,aAAc,UACd36E,MAAO,UACP46E,aAAc,UACdC,kBAAmB,UACnBC,mBAAoB,UACpBC,aAAc,UACdC,cAAe,UACfC,eAAgB,UAChBC,eAAgB,UAChBC,UAAW,UACXC,iBAAkB,UAClBC,YAAa,UACbC,gBAAiB,sBACjBnB,gBAAiB,sBACjBoB,mBAAoB,UACpBC,WAAY,UACZC,SAAU,UACVC,gBAAiB,OACjBC,iBAAkB,UAClBC,wBAAyB,UACzBC,mBAAoB,OACpBC,mBAAoB,OACpBC,oBAAqB,iBACrBC,wBAAyB,OACzBC,yBAA0B,iBAC1BC,qBAAsB,UACtBC,qBAAsB,UACtBC,sBAAuB,oBACvBC,0BAA2B,UAC3BC,2BAA4B,oBAC5BC,uBAAwB,UACxBC,sBAAuB,UACvBC,oBAAqB,sBACrBC,wBAAyB,UACzBC,gCAAiC,UACjCC,mBAAoB,WAEtB37F,SAAU,CACR44F,WAAY,2BACZH,OAAQ,2BACR15E,MAAO,UACP68E,WAAY,WAEd53F,KAAM,CACJ+1F,cAAe,UACf8B,aAAc,UACd7B,eAAgB,UAChB8B,iBAAkB,UAClBC,kBAAmB,UACnBC,uBAAwB,UACxBC,kBAAmB,QAErBv2H,MAAO,CACLkzH,WAAY,QAEdsD,MAAO,CACL/9L,OAAQ,UACR6C,IAAK,UACLskE,OAAQ,UACRC,KAAM,UACN7qB,MAAO,UACPyhJ,WAAY,OACZ32H,KAAM,UACNC,UAAW,UACX22H,aAAc,OACdC,aAAc,OACdloM,KAAM,UACNmoM,aAAc,UACd52H,MAAO,UACPqrD,cAAe,qBACf/zH,SAAU,UACV2oE,OAAQ,UACRC,UAAW,UACX22H,cAAe,UACf12H,IAAK,OACL22H,gBAAiB,OACjBC,0BAA2B,sBAC3BC,aAAc,UACdC,eAAgB,UAChB32H,WAAY,UACZ42H,UAAW,UACXC,WAAY,UACZC,YAAa,UACbC,aAAc,YAGlBC,KAAM,CACJjF,QAAS,CACPh5E,MAAO,OACPi5E,iBAAkB,OAClBC,YAAa,OACbC,sBAAuB,UACvBC,gBAAiB,UACjBC,iBAAkB,UAClBC,WAAY,OACZC,aAAc,OACdC,YAAa,OACbC,qBAAsB,QAExB53L,UAAW,CACT63L,OAAQ,OACRC,aAAc,MACdC,UAAW,4EAEblyC,OAAQ,CACNmyC,WAAY,UACZC,cAAe,OACfC,cAAe,WAEjBC,OAAQ,CACNH,WAAY,UACZI,iBAAkB,OAClBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UACrBC,cAAe,WAEjB74L,QAAS,CACPq4L,WAAY,WAEdS,SAAU,CACRT,WAAY,UACZU,gBAAiB,UACjBC,iBAAkB,UAClBC,YAAa,OACbC,kBAAmB,WAErB3zH,SAAU,CACR8yH,WAAY,UACZU,gBAAiB,WAEnB9jM,QAAS,CACPojM,WAAY,UACZc,aAAc,UACd36E,MAAO,OACP46E,aAAc,UACdC,kBAAmB,UACnBC,mBAAoB,UACpBC,aAAc,UACdC,cAAe,UACfC,eAAgB,UAChBC,eAAgB,qBAChBC,UAAW,UACXC,iBAAkB,qBAClBC,YAAa,UACbC,gBAAiB,sBACjBnB,gBAAiB,sBACjBoB,mBAAoB,OACpBC,WAAY,UACZC,SAAU,UACVC,gBAAiB,OACjBC,iBAAkB,OAClBC,wBAAyB,UACzBC,mBAAoB,OACpBC,mBAAoB,OACpBC,oBAAqB,OACrBC,wBAAyB,UACzBC,yBAA0B,OAC1BC,qBAAsB,OACtBC,qBAAsB,UACtBC,sBAAuB,OACvBC,0BAA2B,UAC3BC,2BAA4B,OAC5BC,uBAAwB,OACxBC,sBAAuB,UACvBC,oBAAqB,4BACrBC,wBAAyB,UACzBC,gCAAiC,UACjCC,mBAAoB,WAEtB37F,SAAU,CACR44F,WAAY,2BACZH,OAAQ,2BACR15E,MAAO,UACP68E,WAAY,WAEd53F,KAAM,CACJ+1F,cAAe,OACf8B,aAAc,UACd7B,eAAgB,UAChB8B,iBAAkB,UAClBC,kBAAmB,UACnBC,uBAAwB,UACxBC,kBAAmB,QAErBv2H,MAAO,CACLkzH,WAAY,WAEdsD,MAAO,CACL/9L,OAAQ,UACR6C,IAAK,OACLskE,OAAQ,OACRC,KAAM,OACN7qB,MAAO,UACPyhJ,WAAY,OACZ32H,KAAM,UACNC,UAAW,OACX22H,aAAc,OACdC,aAAc,OACdloM,KAAM,OACNmoM,aAAc,UACd52H,MAAO,OACPqrD,cAAe,OACf/zH,SAAU,UACV2oE,OAAQ,UACRC,UAAW,UACX22H,cAAe,UACf12H,IAAK,OACL22H,gBAAiB,OACjBC,0BAA2B,sBAC3BC,aAAc,OACdC,eAAgB,UAChB32H,WAAY,OACZ42H,UAAW,UACXC,WAAY,UACZC,YAAa,UACbC,aAAc,aAIdE,GAAe,EACnBlF,UACAn3L,YACA6lJ,SACAsyC,SACAM,WACA94L,QAAS8iE,EACTyC,WACAtwE,UACAwqG,SAAUI,EACV4D,OACAt+B,QACAw2H,YAEO,CACL,eAAgBnE,EAAQh5E,MACxB,4BAA6Bg5E,EAAQC,iBACrC,sBAAuBD,EAAQE,YAC/B,yBAA0BF,EAAQG,sBAClC,wBAAyBH,EAAQI,gBACjC,uBAAwBJ,EAAQO,aAChC,2BAA4BP,EAAQK,iBACpC,qBAAsBL,EAAQM,WAC9B,sBAAuBN,EAAQQ,YAC/B,wBAAyBR,EAAQS,qBACjC,0BAA2B53L,EAAU63L,OACrC,iCAAkC73L,EAAU83L,aAC5C,8BAA+B93L,EAAU+3L,UACzC,yBAA0BlyC,EAAOmyC,WACjC,2BAA4BnyC,EAAOoyC,cACnC,2BAA4BpyC,EAAOqyC,cACnC,yBAA0BC,EAAOH,WACjC,4BAA6BG,EAAOC,iBACpC,qCAAsCD,EAAOE,oBAC7C,+BAAgCF,EAAOG,gBACvC,oCAAqCH,EAAOI,oBAC5C,6BAA8BJ,EAAOK,cACrC,0BAA2B/1H,EAASu1H,WACpC,2BAA4BS,EAAST,WACrC,iCAAkCS,EAASC,gBAC3C,kCAAmCD,EAASE,iBAC5C,+BAAgCF,EAASG,YACzC,sCAAuCH,EAASI,kBAChD,2BAA4B3zH,EAAS8yH,WACrC,iCAAkC9yH,EAASwzH,gBAC3C,0BAA2B9jM,EAAQojM,WACnC,6BAA8BpjM,EAAQkkM,aACtC,+BAAgClkM,EAAQmkM,aACxC,kCAAmCnkM,EAAQokM,kBAC3C,mCAAoCpkM,EAAQqkM,mBAC5C,+BAAgCrkM,EAAQskM,aACxC,gCAAiCtkM,EAAQukM,cACzC,iCAAkCvkM,EAAQwkM,eAC1C,+BAAgCxkM,EAAQykM,eACxC,4BAA6BzkM,EAAQ0kM,UACrC,iCAAkC1kM,EAAQ2kM,iBAC1C,8BAA+B3kM,EAAQ4kM,YACvC,uBAAwB5kM,EAAQupH,MAChC,gCAAiCvpH,EAAQ6kM,gBACzC,gCAAiC7kM,EAAQ0jM,gBACzC,sCAAuC1jM,EAAQ8kM,mBAC/C,qCAAsC9kM,EAAQ+kM,WAC9C,2BAA4B/kM,EAAQglM,SACpC,gCAAiChlM,EAAQilM,gBACzC,oCAAqCjlM,EAAQklM,iBAC7C,yCAA0CllM,EAAQmlM,wBAClD,sCAAuCnlM,EAAQolM,mBAC/C,mCAAoCplM,EAAQqlM,mBAC5C,uCAAwCrlM,EAAQslM,oBAChD,yCAA0CtlM,EAAQulM,wBAClD,6CAA8CvlM,EAAQwlM,yBACtD,wCAAyCxlM,EAAQylM,qBACjD,sCAAuCzlM,EAAQ0lM,qBAC/C,0CAA2C1lM,EAAQ2lM,sBACnD,4CAA6C3lM,EAAQ4lM,0BACrD,gDAAiD5lM,EAAQ6lM,2BACzD,2CAA4C7lM,EAAQ8lM,uBACpD,uCAAwC9lM,EAAQ+lM,sBAChD,qCAAsC/lM,EAAQgmM,oBAC9C,yCAA0ChmM,EAAQimM,wBAClD,kDAAmDjmM,EAAQkmM,gCAC3D,sCAAuClmM,EAAQmmM,mBAC/C,qBAAsBv7F,EAAUw4F,WAChC,yBAA0Bx4F,EAAUq4F,OACpC,wBAAyBr4F,EAAU2e,MACnC,8BAA+B3e,EAAUw7F,WACzC,6BAA8B53F,EAAK+1F,cACnC,4BAA6B/1F,EAAK63F,aAClC,8BAA+B73F,EAAKg2F,eACpC,2BAA4Bh2F,EAAK83F,iBACjC,4BAA6B93F,EAAK+3F,kBAClC,6BAA8B/3F,EAAKg4F,uBACnC,0BAA2Bh4F,EAAKi4F,kBAChC,wBAAyBv2H,EAAMkzH,WAC/B,2BAA4BsD,EAAM/9L,OAClC,wBAAyB+9L,EAAMl7L,IAC/B,2BAA4Bk7L,EAAM52H,OAClC,yBAA0B42H,EAAM32H,KAChC,0BAA2B22H,EAAMxhJ,MACjC,gCAAiCwhJ,EAAMC,WACvC,yBAA0BD,EAAM12H,KAChC,8BAA+B02H,EAAMz2H,UACrC,kCAAmCy2H,EAAME,aACzC,kCAAmCF,EAAMG,aACzC,yBAA0BH,EAAM/nM,KAChC,kCAAmC+nM,EAAMI,aACzC,0BAA2BJ,EAAMx2H,MACjC,mCAAoCw2H,EAAMnrE,cAC1C,6BAA8BmrE,EAAMl/L,SACpC,2BAA4Bk/L,EAAMv2H,OAClC,8BAA+Bu2H,EAAMt2H,UACrC,mCAAoCs2H,EAAMK,cAC1C,wBAAyBL,EAAMr2H,IAC/B,qCAAsCq2H,EAAMM,gBAC5C,kCAAmCN,EAAMO,0BACzC,kCAAmCP,EAAMQ,aACzC,oCAAqCR,EAAMS,eAC3C,+BAAgCT,EAAMl2H,WACtC,+BAAgCk2H,EAAMU,UACtC,gCAAiCV,EAAMW,WACvC,iCAAkCX,EAAMY,YACxC,kCAAmCZ,EAAMa,eAG7C,IAAIG,GAAW,gooCACf,MAAMC,GAAY,CAChB3kM,KAAM,gBACNw0C,WAAY,CACVm8D,aACA4tF,QACAY,iBAEFv2L,MAAO,CACLolE,OAAQ,CAAEx+D,KAAMrG,OAAQ6wB,QAAS,SACjC4qK,MAAO,CAAEp1L,KAAMrG,OAAQ6wB,QAAS,SAChC86B,OAAQ,CAAEtlD,KAAM,CAACjO,OAAQ4H,QAAS6wB,QAAS,KAAM,CAAG,IACpD6qK,qBAAsB,CAAEr1L,KAAMkJ,OAAQshB,QAAS,KAC/C62E,WAAY,CAAErhG,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAChD8qK,gBAAiB,CAAEt1L,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACrDo0C,aAAc,CAAE5+D,KAAM,CAACjO,OAAQ4H,QAAS6wB,QAAS,KAAM,CAAG,IAC1D8pC,cAAe,CAAEt0D,KAAMrG,OAAQ6wB,QAAS,IACxC+pC,MAAO,CAAEv0D,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IAC/C+qK,WAAY,CAAEv1L,KAAMrG,OAAQ6wB,QAAS,QACrCu0C,aAAc,CAAE/+D,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAClD60E,YAAa,CAAEr/F,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACjDiqC,OAAQ,CAAEz0D,KAAMrG,OAAQ6wB,QAAS,MACjC8/J,cAAe,CAAEtqL,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACnDkqC,SAAU,CAAE10D,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IAClDgqC,eAAgB,CAAEx0D,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACpDiyE,YAAa,CAAEz8F,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IACrD+2E,YAAa,CAAEvhG,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IACrD85J,eAAgB,CACdtkL,KAAM,CAACtM,MAAOiG,QACd6wB,QAAS,IAAM,CACb,CAAEh6B,KAAM,eAAgBmkE,MAAO,SAC/B,CAAEnkE,KAAM,cAAemkE,MAAO,eAAgBuwH,QAAQ,GACtD,CAAE10L,KAAM,gBAAiBmkE,MAAO,iBAAkBuwH,QAAQ,GAC1D,CAAE10L,KAAM,iBAAkBmkE,MAAO,YAGrC8sC,wBAAyB,CAAEzhG,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IACjE+/J,WAAY,CACVvqL,KAAM,CAACjO,OAAQ4H,QACf6wB,QAAS,KACA,CACLr+B,KAAM,CACJyyG,KAAK,EACL4tF,kBAAkB,GAEpBE,QAAS,CACP9tF,KAAK,EACL4tF,kBAAkB,MAK1BltF,wBAAyB,CAAEt/F,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC7Dq0C,WAAY,CAAE7+D,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAChDs0C,YAAa,CAAE9+D,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACjD4tJ,aAAc,CAAEp4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAClD6tJ,UAAW,CAAEr4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC/C8tJ,UAAW,CAAEt4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC/CyuJ,aAAc,CAAEj5K,KAAMkJ,OAAQshB,QAAS,KACvC0uJ,gBAAiB,CAAEl5K,KAAMkJ,OAAQshB,QAAS,OAC1C+tJ,WAAY,CAAEv4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAChD+5J,mBAAoB,CAAEvkL,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACxD88J,uBAAwB,CAAEtnL,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC5DguJ,WAAY,CAAEx4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAChDytE,eAAgB,CACdj4F,KAAM,CAACjO,OAAQ4H,QACf6wB,QAAS,KAAM,CACb6vB,UAAU,KAGd2+C,YAAa,CACXh5F,KAAM,CAACjO,OAAQ4H,QACf6wB,QAAS,KAAM,CAAG6vB,UAAU,EAAO/oD,OAAQ,SAAU8oG,IAAK,QAE5DkH,gBAAiB,CAAEthG,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACrDouJ,sBAAuB,CAAE54K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC3DquJ,kBAAmB,CAAE74K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACvDsuJ,gBAAiB,CAAE94K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACrDuuJ,wBAAyB,CAAE/4K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GAC7D2tJ,YAAa,CAAEn4K,KAAMrG,OAAQ6wB,QAAS,IACtC+0E,eAAgB,CAAEv/F,KAAMkJ,OAAQshB,QAAS,IACzCiuJ,cAAe,CAAEz4K,KAAMrG,OAAQ6wB,QAAS,KACxCmuJ,aAAc,CAAE34K,KAAMrG,OAAQ6wB,QAAS,IACvCkuJ,cAAe,CAAE14K,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACnDwuJ,cAAe,CAAEh5K,KAAM,CAACtM,MAAOiG,QAAS6wB,QAAS,IAAM,IACvDgrK,oBAAqB,CAAEx1L,KAAM,CAACsvB,QAAS31B,QAAS6wB,SAAS,GACzD+8J,gBAAiB,CACfvnL,KAAM,CAACjO,OAAQ4H,QACf6wB,QAAS,KAAM,CAAGo9J,SAAU,EAAGD,aAAa,KAE9Cz+D,gBAAiB,CAAElpH,KAAMrG,OAAQ6wB,aAAS,IAE5CjK,MAAO,CACL,oBACA,YACA,iBACA,eACA,eACA,iBACA,YACA,gBACA,sBACA,sBACA,yBACA,wBACA,iBACA,0BACA,mBACA,WACA,cACA,sBACA,oCAEF,IAAAj4B,GACE,MAAO,CACLg6B,MAAO,GACP05E,KAAM,CAAC,EACP2D,kBAAkB,EAClBR,eAAe,EACfC,UAAU,EACVq2F,kBAAkB,EAClBC,YAAa,CAAC,EAElB,EACApnL,SAAU,CACR,CAAA8pB,GACE,MAAO,IACFw3J,MACAniM,KAAKkoM,mBAEZ,EACA,OAAAC,GACE,MAAMC,EAAgBhG,GAAmBpiM,KAAK2nM,OACxCU,EAAe,CAAC,EAOtB,OANA/jM,OAAOC,KAAK6jM,GAAe7pL,KAAK3gB,IAC9ByqM,EAAazqM,GAAO,IACfwqM,EAAcxqM,MACdoC,KAAKsoM,aAAa1qM,IAAQ,CAAC,EAC/B,IAEI4pM,GAAaa,EACtB,EACA,YAAAE,GACE,OAAOvoM,KAAKwoM,YAAYxkM,QAAQ+qB,MAAK,CAACpkB,EAAGC,KACvC,MAAM69L,EAAO99L,EAAEiC,OAAS,EAClB87L,EAAO99L,EAAEgC,OAAS,EACxB,MAAwB,QAApB5M,KAAK8nM,WACAW,EAAOC,GAAQ,EAAIA,EAAOD,EAAO,EAAI,EAEvCA,EAAOC,GAAQ,EAAIA,EAAOD,EAAO,EAAI,CAAC,GAEjD,EACA,gBAAAE,GACE,OAAO3oM,KAAK4oM,YAAY5oM,KAAK4zG,WAC/B,EACA,qBAAAi1F,GACE,OAAO7oM,KAAK4oM,YAAY5oM,KAAK6nM,gBAC/B,EACA,kBAAAiB,GACE,OAAO9oM,KAAK4oM,YAAY5oM,KAAKsxE,aAC/B,EACA,iBAAAy3H,GACE,OAAO/oM,KAAK4oM,YAAY5oM,KAAK4xG,YAC/B,EACA,mBAAAo3F,GACE,OAAOhpM,KAAK4oM,YAAY5oM,KAAK68L,cAC/B,EACA,oBAAAoM,GACE,OAAOjpM,KAAK4oM,YAAY5oM,KAAK+mE,eAC/B,EACA,mBAAAmiI,GACE,OAAOlpM,KAAK4oM,YAAY5oM,KAAKirL,cAC/B,EACA,gBAAAke,GACE,OAAOnpM,KAAK4oM,YAAY5oM,KAAKoxE,WAC/B,EACA,iBAAAg4H,GACE,OAAOppM,KAAK4oM,YAAY5oM,KAAKqxE,YAC/B,EACA,kBAAAg4H,GACE,OAAOrpM,KAAK4oM,YAAY5oM,KAAK2qL,aAC/B,EACA,eAAA2e,GACE,OAAOtpM,KAAK4oM,YAAY5oM,KAAK4qL,UAC/B,EACA,eAAA2e,GACE,OAAOvpM,KAAK4oM,YAAY5oM,KAAK6qL,UAC/B,EACA,gBAAA2e,GACE,OAAOxpM,KAAK4oM,YAAY5oM,KAAK8qL,WAC/B,EACA,wBAAA2e,GACE,OAAOzpM,KAAK4oM,YAAY5oM,KAAK82L,mBAC/B,EACA,4BAAA4S,GACE,OAAO1pM,KAAK4oM,YAAY5oM,KAAK65L,uBAC/B,EACA,gBAAA8P,GACE,OAAO3pM,KAAK4oM,YAAY5oM,KAAK+qL,WAC/B,EACA,qBAAA6e,GACE,OAAO5pM,KAAK4oM,YAAY5oM,KAAK6zG,gBAC/B,EACA,2BAAAg2F,GACE,OAAO7pM,KAAK4oM,YAAY5oM,KAAKmrL,sBAC/B,EACA,uBAAA2e,GACE,OAAO9pM,KAAK4oM,YAAY5oM,KAAKorL,kBAC/B,EACA,qBAAA2e,GACE,OAAO/pM,KAAK4oM,YAAY5oM,KAAKqrL,gBAC/B,EACA,6BAAA2e,GACE,OAAOhqM,KAAK4oM,YAAY5oM,KAAKsrL,wBAC/B,EACA,yBAAA2e,GACE,OAAOjqM,KAAK4oM,YAAY5oM,KAAK+nM,oBAC/B,EACA,WAAAS,GACE,OAAOxoM,KAAKkqM,UAAUlqM,KAAK8mE,MAC7B,EACA,cAAAqjI,GACE,OAAOnqM,KAAKkqM,UAAUlqM,KAAKinE,SAC7B,EACA,iBAAAmjI,GACE,OAAOpqM,KAAKkqM,UAAUlqM,KAAKgvG,YAC7B,EACA,iBAAAq7F,GACE,OAAOrqM,KAAKkqM,UAAUlqM,KAAK8zG,YAC7B,EACA,oBAAAw2F,GACE,OAAOtqM,KAAKkqM,UAAUlqM,KAAK62L,eAC7B,EACA,6BAAA0T,GACE,OAAOvqM,KAAKkqM,UAAUlqM,KAAKg0G,wBAC7B,EACA,mBAAAw2F,GACE,OAAOxqM,KAAKkqM,UAAUlqM,KAAKurL,cAC7B,EACA,YAAA+c,GACE,OAAOtoM,KAAKyqM,WAAWzqM,KAAK63D,OAC9B,EACA,kBAAAqwI,GACE,OAAOloM,KAAKyqM,WAAWzqM,KAAKmxE,aAC9B,EACA,gBAAAu5H,GACE,OAAO1qM,KAAKyqM,WAAWzqM,KAAK88L,WAC9B,EACA,oBAAA6N,GACE,OAAO3qM,KAAKyqM,WAAWzqM,KAAKwqG,eAC9B,EACA,iBAAAogG,GACE,OAAO5qM,KAAKyqM,WAAWzqM,KAAKurG,YAC9B,EACA,qBAAAs/F,GACE,OAAO7qM,KAAKyqM,WAAWzqM,KAAK85L,gBAC9B,GAEFh7J,MAAO,CACL0pK,YAAa,CACXzpK,WAAW,EACXC,MAAM,EACN,OAAAzM,CAAQ1I,EAAQuoF,GAId,GAHKvoF,EAAO,IAAOA,EAAOwgF,MAAMkE,GAASA,EAAKvnC,SAAWhnE,KAAKuuG,KAAKvnC,WACjEhnE,KAAK0xG,eAAgB,IAElB1xG,KAAKkyG,kBAAoBlyG,KAAKgpM,qBAAuBn/K,EAAO,MAAQuoF,GAAUvoF,EAAOvoB,SAAW8wG,EAAO9wG,QAC1G,GAAItB,KAAKgnE,OAAQ,CACf,MAAMunC,EAAO1kF,EAAOwgF,MAAMvgF,GAAMA,EAAEk9C,SAAWhnE,KAAKgnE,UAAW,CAAC,EAC9DhnE,KAAK8qM,UAAU,CAAEv8F,QACnB,MAAYvuG,KAAK2xG,UAAY3xG,KAAK2oM,iBAChC3oM,KAAK8qM,UAAU,CAAEv8F,KAAMvuG,KAAKuoM,aAAa,KAEzCvoM,KAAK0xG,eAAgB,CAG3B,GAEF,kBAAAo3F,CAAmBnrM,GACbA,IACFqC,KAAKuuG,KAAO,CAAC,EACjB,EACAvnC,OAAQ,CACNjoC,WAAW,EACX,OAAAxM,CAAQ1I,EAAQuoF,GACd,GAAIvoF,IAAW7pB,KAAK8oM,oBAAsB9oM,KAAKwoM,YAAYlnM,OAAQ,CACjE,MAAMitG,EAAOvuG,KAAKwoM,YAAYn+F,MAAMvgF,GAAMA,EAAEk9C,SAAWn9C,IACvD7pB,KAAK8qM,UAAU,CAAEv8F,QACnB,MAAW6D,IAAWvoF,IACpB7pB,KAAKuuG,KAAO,CAAC,EAEjB,GAEF,IAAAA,CAAK5wG,GACEA,GAAsC,IAA/B2G,OAAO4Z,QAAQvgB,GAAK2D,SAEhC03L,GAAgBr7L,GAChBA,EAAIssG,MAAMvsG,SAAS0sG,IACjBkvF,GAAsBlvF,EAAK,IAE/B,EACAy+F,sBAAuB,CACrB9pK,WAAW,EACX,OAAAxM,CAAQ50B,GACNqC,KAAK0xG,cAAgB/zG,CACvB,IAGJ,OAAAg5C,GACE32C,KAAK+qM,mBACL/hM,OAAO9K,iBAAiB,UAAW00G,IAC7BA,EAAGo4F,WACLhrM,KAAK+qM,kBAAkB,GAE7B,EACA,OAAAjtK,GACE,MAAMjJ,EAAQttB,SAASmyD,iBAAiB,UACpC15D,KAAK60B,MAAMvzB,SAAWuzB,EAAMvzB,SAC9BtB,KAAK60B,MAAQA,EAEjB,EACAyhB,QAAS,CACP,WAAAsyJ,CAAYjrM,GACV,MAAe,SAARA,IAA0B,IAARA,CAC3B,EACA,SAAAusM,CAAUvsM,GACR,OAAQA,EAAWsI,MAAMlC,QAAQpG,GAAOA,EAAM+H,KAAKE,MAAMjI,GAA3C,EAChB,EACA,UAAA8sM,CAAW9sM,GACT,OAAQA,EAA0B,kBAARA,EAAmBA,EAAM+H,KAAKE,MAAMjI,GAAhD,CAAC,CACjB,EACA,gBAAAotM,GACE/qM,KAAK2xG,SAAW3oG,OAAOqzH,WAAa5gH,OAAOzb,KAAK4nM,qBAClD,EACA,eAAAqD,GACEjrM,KAAK0xG,eAAiB1xG,KAAK0xG,cACvB1xG,KAAK2xG,WACP3xG,KAAKuuG,KAAO,CAAC,GACfvuG,KAAKozC,MAAM,oBAAqB,CAAE83J,OAAQlrM,KAAK0xG,eACjD,EACA,SAAAo5F,EAAU,KAAEv8F,IACVvuG,KAAKuuG,KAAOA,EACZvuG,KAAKmrM,cAAc,CAAE/qK,OAAO,IACxBpgC,KAAK2xG,WACP3xG,KAAK0xG,eAAgB,EACzB,EACA,cAAA05F,GACEprM,KAAKozC,MAAM,mBACb,EACA,QAAAi4J,GACErrM,KAAKozC,MAAM,YAAapzC,KAAKuuG,KAC/B,EACA,OAAA+8F,GACEtrM,KAAKozC,MAAM,WACb,EACA,UAAAu/D,CAAWh1G,GACTqC,KAAKozC,MAAM,cAAe,CAAEzyC,MAAOhD,EAAKqpE,OAAQhnE,KAAKuuG,KAAKvnC,QAC5D,EACA,aAAAmkI,CAAch9L,GACZnO,KAAKozC,MAAM,iBAAkB,CAAEm7D,KAAMvuG,KAAKuuG,KAAMpgG,WAClD,EACA,WAAA45D,CAAYhoE,GACVC,KAAKozC,MAAM,eAAgB,IAAKrzC,EAASinE,OAAQhnE,KAAKuuG,KAAKvnC,QAC7D,EACA,WAAAomH,CAAYrtL,GACVC,KAAKozC,MAAM,eAAgB,IAAKrzC,EAASinE,OAAQhnE,KAAKuuG,KAAKvnC,QAC7D,EACA,aAAAukI,CAAcxrM,GACZC,KAAKozC,MAAM,iBAAkB,CAAErzC,UAASinE,OAAQhnE,KAAKuuG,KAAKvnC,QAC5D,EACA,QAAAquH,EAAS,QAAEt1L,EAAO,KAAEgwE,IACd/vE,KAAKiqM,2BAA6C,YAAhBl6H,EAAK+/B,QACzC9vG,KAAKioM,YAAcl4H,EAAKA,KACxB/vE,KAAKgoM,kBAAmB,GAExBhoM,KAAKozC,MAAM,YAAa,CAAErzC,UAASgwE,QAEvC,EACA,WAAAirH,EAAY,KAAE5wF,IACZpqG,KAAKozC,MAAM,gBAAiB,CAAEg3D,QAChC,EACA,iBAAAohG,EAAkB,QAAEzrM,IAClBC,KAAKozC,MAAM,sBAAuB,CAChCrzC,UACAinE,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,iBAAAqtC,CAAkBzB,GAChB5yG,KAAKozC,MAAM,sBAAuB,CAChC08D,OAAQ8C,EACR5rC,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,iBAAA6oC,EAAkB,OAAEC,EAAM,OAAE9oC,IAC1BhnE,KAAKozC,MAAM,sBAAuB,CAChC08D,SACA9oC,UAEJ,EACA,oBAAAkxH,CAAqBtlF,GACnB5yG,KAAKozC,MAAM,yBAA0B,IAChCw/D,EACH5rC,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,6BAAAutC,CAA8B3B,GAC5B5yG,KAAKozC,MAAM,mCAAoC,IAC1Cw/D,EACH5rC,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,mBAAAmxH,CAAoBiH,GAClBp/L,KAAKozC,MAAM,wBAAyB,IAC/BgsJ,EACHp4H,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,aAAAykI,CAAc1rM,GACZC,KAAKozC,MAAM,iBAAkB,CAC3BrzC,UACAinE,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,EACA,qBAAAuoH,CAAsBxvL,GACpBC,KAAKozC,MAAM,0BAA2B,CACpCrzC,UACAinE,OAAQhnE,KAAKuuG,KAAKvnC,QAEtB,IAGE,GAAa,CAAErqD,MAAO,sBAC5B,SAAS+uL,GAAY3qJ,EAAM0lB,EAAQ1zB,EAAQ2zB,EAAQ5zB,EAAO7B,GACxD,MAAM06J,EAAwB,GAAiB,cACzCC,EAAkB,GAAiB,QACnCC,EAA2B,GAAiB,iBAClD,OAAO,KAAa,GAAmB,MAAO,CAC5ClvL,MAAO,kBACPE,MAAO,GAAe,CAAC,CAAEk0D,OAAQh+B,EAAOg+B,QAAU9/B,EAASk3J,WAC1D,CACD,GAAgB,MAAO,GAAY,CAChCl3J,EAAS03J,iBAgCsV,GAAmB,IAAI,IAhCzV,KAAa,GAAYgD,EAAuB,CAC5E/tM,IAAK,EACL,kBAAmBm1C,EAAO8zB,cAC1BC,MAAO71B,EAASs3J,aAChB,gBAAiBt3J,EAAS63J,mBAC1B,eAAgB73J,EAAS83J,kBACzBx6F,KAAMz7D,EAAMy7D,KACZ,eAAgBt9D,EAASm5J,kBACzB,6BAA8Br3J,EAAO8+D,wBACrC,gBAAiB5gE,EAAStG,EAC1B,cAAesG,EAASk4J,iBACxB,gBAAiBl4J,EAASm4J,kBAC1B,kBAAmBt2J,EAAM4+D,eAAiBzgE,EAAS43J,sBACnD,kBAAmB53J,EAAS05J,qBAC5B,eAAgB15J,EAAS25J,kBACzB,YAAa93J,EAAM6+D,SACnB,kBAAmB5+D,EAAO++D,eAC1Bg6F,YAAa76J,EAAS65J,UACtBiB,iBAAkB96J,EAASm6J,eAC3BY,mBAAoBvlI,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMo/D,iBAAmB3jE,GACnFglE,UAAWtiE,EAASq6J,QACpBh4F,aAAcriE,EAAS0hE,WACvBc,oBAAqBxiE,EAAS4+D,mBAC7B,GAAY,CAAEp1F,EAAG,GAAK,CACvB,GAAWq4B,EAAMje,OAAQpoB,IAChB,CACL1J,KAAM0J,EAAGi/B,KACT5pC,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQhkC,EAAGi/B,KAAM,GAAe,GAAmB7wC,cAIvE,KAAM,CAAC,kBAAmB,QAAS,gBAAiB,eAAgB,OAAQ,eAAgB,6BAA8B,gBAAiB,cAAe,gBAAiB,kBAAmB,kBAAmB,eAAgB,YAAa,kBAAmB,cAAe,mBAAoB,YAAa,eAAgB,yBACrU,GAAY+wM,EAAiB,CAC3B,kBAAmB74J,EAAO8zB,cAC1BC,MAAO71B,EAASu3J,YAChB,UAAW11J,EAAMy7D,KAAKvnC,QAAU,GAChC,kBAAmB/1B,EAAS+3J,oBAC5B/hI,SAAUh2B,EAASk5J,eACnB,eAAgBp3J,EAAO23I,YACvB,kBAAmBz5I,EAASg4J,qBAC5B,eAAgBh4J,EAASo5J,kBACzB,kBAAmBp5J,EAASq5J,qBAC5B,4BAA6Br5J,EAASs5J,8BACtC,cAAet5J,EAASy5J,iBACxB,iBAAkBz5J,EAASo4J,mBAC3B,aAAcp4J,EAASq4J,gBACvB,aAAcr4J,EAASs4J,gBACvB,iBAAkBx2J,EAAOy4I,aACzB,oBAAqBz4I,EAAO04I,gBAC5B,cAAex6I,EAASu4J,iBACxB,uBAAwBv4J,EAASw4J,yBACjC,4BAA6Bx4J,EAASy4J,6BACtC,cAAez4J,EAAS04J,iBACxB,gBAAiB14J,EAAStG,EAC1B,cAAesG,EAAS03J,iBACxB,kBAAmB71J,EAAM4+D,eAAiBzgE,EAAS43J,sBACnD,kBAAmB53J,EAAS05J,qBAC5B,eAAgB15J,EAAS25J,kBACzB,YAAa93J,EAAM6+D,SACnB,gBAAiB1gE,EAAS63J,mBAC1B,oBAAqB73J,EAAS24J,sBAC9B,0BAA2B34J,EAAS44J,4BACpC,sBAAuB54J,EAAS64J,wBAChC,oBAAqB74J,EAAS84J,sBAC9B,4BAA6B94J,EAAS+4J,8BACtC,kBAAmBj3J,EAAO++D,eAC1B,iBAAkB/+D,EAAOi4I,cACzB,gBAAiBj4I,EAAOm4I,aACxB,iBAAkBj6I,EAASi4J,oBAC3B,iBAAkBj4J,EAASu5J,oBAC3B,mBAAoBv5J,EAAS45J,sBAC7B,oBAAqB93J,EAAO0oF,gBAC5B+kE,kBAAmBvvJ,EAASg6J,gBAC5BxK,WAAYxvJ,EAASo6J,SACrBY,gBAAiBh7J,EAASk6J,cAC1BrjI,cAAe72B,EAAS82B,YACxBo5H,cAAelwJ,EAASm8I,YACxB8e,gBAAiBj7J,EAASs6J,cAC1B9U,WAAYxlJ,EAASokJ,SACrBqB,cAAezlJ,EAAS+pJ,YACxB+F,oBAAqB9vJ,EAASu6J,kBAC9B9K,oBAAqBzvJ,EAASojE,kBAC9BmoF,uBAAwBvrJ,EAASinJ,qBACjCyI,gCAAiC1vJ,EAASsjE,8BAC1CkoF,sBAAuBxrJ,EAASknJ,oBAChCiJ,gBAAiBnwJ,EAASw6J,cAC1BpK,wBAAyBpwJ,EAASs+I,uBACjC,GAAY,CAAE90K,EAAG,GAAK,CACvB,GAAWq4B,EAAMje,OAAQpoB,IAChB,CACL1J,KAAM0J,EAAGi/B,KACT5pC,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQhkC,EAAGi/B,KAAM,GAAe,GAAmB7wC,cAIvE,KAAM,CAAC,kBAAmB,QAAS,UAAW,kBAAmB,WAAY,eAAgB,kBAAmB,eAAgB,kBAAmB,4BAA6B,cAAe,iBAAkB,aAAc,aAAc,iBAAkB,oBAAqB,cAAe,uBAAwB,4BAA6B,cAAe,gBAAiB,cAAe,kBAAmB,kBAAmB,eAAgB,YAAa,gBAAiB,oBAAqB,0BAA2B,sBAAuB,oBAAqB,4BAA6B,kBAAmB,iBAAkB,gBAAiB,iBAAkB,iBAAkB,mBAAoB,oBAAqB,oBAAqB,aAAc,kBAAmB,gBAAiB,gBAAiB,kBAAmB,aAAc,gBAAiB,sBAAuB,sBAAuB,yBAA0B,kCAAmC,wBAAyB,kBAAmB,8BAE9/B,GAAY,GAAY,CACtBkI,KAAM,mBACN6+B,OAAQ,IACP,CACD7E,QAAS,IAAQ,IAAM,CACrB+V,EAAMk1J,kBAAoB,KAAa,GAAY6D,EAA0B,CAC3EjuM,IAAK,EACLmyE,KAAMj9B,EAAMm1J,YACZkE,oBAAqB1lI,EAAO,KAAOA,EAAO,GAAMl4B,GAAWuE,EAAMk1J,kBAAmB,IACnF,GAAY,CAAEvtL,EAAG,GAAK,CACvB,GAAWq4B,EAAMje,OAAQpoB,IAChB,CACL1J,KAAM0J,EAAGi/B,KACT5pC,GAAI,IAASjH,GAAS,CACpB,GAAWkmD,EAAKtQ,OAAQhkC,EAAGi/B,KAAM,GAAe,GAAmB7wC,cAIvE,KAAM,CAAC,UAAY,GAAmB,IAAI,MAEhD4f,EAAG,KAEJ,EACL,CACA,IAAI2xL,GAA6Bv9H,GAAY64H,GAAW,CAAC,CAAC,SAAUgE,IAAc,CAAC,SAAU,CAACjE,OAC9F,MAAM4E,GAAkB,GAAoBD,IACtCE,GAAe,oBACrB,SAASx0J,KACFojF,eAAexsH,IAAI49L,KACtBpxE,eAAeC,OAAOmxE,GAAcD,GAExC,CDtolCAv0J,KAUA,OAAevS,GAAgB,CAC7B1qC,IAAAA,GACE,MAAO,CACL0xM,OAAQ,KACRzlI,MAAO,CACL,CACEE,OAAQ,SACRiqC,SAAU,GACVD,OAAQ,GACR/G,MAAO,KAGXljC,gBAAgB,EAChBE,SAAU,GACVJ,cAAe,KAEnB,EAEAhpC,OAAAA,GAEE,IAAI2uK,EAA6B,GACjC,MAAMC,EAAcllM,SAAS6D,eAAe,aACxCqhM,IAAaD,EAAcC,EAAY/nJ,aAC3C,IAAI2mJ,EAAgB,KACpB,IAAImB,EACC,KAAM,wBADMnB,EAAW3lM,KAAKE,MAAM4mM,GAEvCxsM,KAAK8mE,MAAQ,CACX,CACEE,OAAQqkI,EAASqB,UACjBz7F,SAAUo6F,EAASsB,WACnB37F,OAAQ,GAER/G,MAAO,CACL,CACEn2E,IAAK,IACL14B,SAAU,cACV41G,OAAQ,sBACR30G,OAAQ,CACNiW,MAAO,SACP8hG,YAAa,iBAGjB,CACEtgF,IAAK,IACL14B,SAAU,cACV41G,OAAQ,uBACR30G,OAAQ,CACNiW,MAAO,SACP8hG,YAAa,mBAGjB,CACEtgF,IAAK,IACL14B,SAAU,cACV41G,OAAQ,uBACR30G,OAAQ,CACNiW,MAAO,SACP8hG,YAAa,sBAMvBp0G,KAAK0pL,QAAQ2hB,EAASqB,WACtB1sM,KAAK6mE,cAAgBwkI,EAASuB,OAChC,EAEAt2J,QAAS,CACPozI,OAAAA,CAAQz4E,GAEN,IAAIzoG,EAAW,MACiB,UAA5BQ,OAAOC,SAAST,WAAsBA,EAAW,MACrDxI,KAAKusM,OAAS,IAAIM,UAAUrkM,EAAW,MAAQQ,OAAOC,SAASR,KAAO,YAAcwoG,EAAW,KAC/FjxG,KAAKmrM,gBAELnrM,KAAKusM,OAAO/zF,QAAU,KACpBvrF,QAAQk4G,IAAI,qBAAqB,CAMrC,EAEA,mBAAMgmE,GACJnrM,KAAKusM,OAAQO,UAAa9uM,IACxB,MAAMnD,EAAO6K,KAAKE,MAAM5H,EAAEnD,MACpB0X,EAAO1X,EAAK0X,KAElB,GAAY,WAARA,GAAqBvS,KAAK+mE,eAAgB,OAC9C,MAAM6yH,EAAc/+L,EAAKosE,SACzBjnE,KAAKinE,SAAW,IAAIjnE,KAAKinE,YAAa2yH,GAC1B,WAARrnL,IACFvS,KAAK+mE,gBAAiB,E,CAG5B,EAEAgB,WAAAA,EAAY,QAAEj9D,EAAO,aAAEqiL,IAErBntL,KAAKusM,OAAQ7tM,KACXgH,KAAKC,UAAU,CACb5F,QAAS+K,EACTiiM,QAAS5f,EAAeA,EAAar5J,IAAM,OAGjD,GAGFjT,SAAU,CACRgqK,SAAAA,GAEA,K,WE/JJ,MAAMmiB,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UCPA,MAAMC,GAAe54L,IAAM64L,GAAa,mBAAmB74L,EAAEA,IAAI84L,KAAc94L,GACzEmyD,GAAa,CCDV7pD,MAAM,QDETglL,GAA2BsL,IAAa,ICDxCG,GAA4G,OAAvG/gG,IAAI,oCAAoCpoC,IAAI,gBAAgBiD,MAAM,gBAAgBvqD,MAAM,cDMhG,MAAO,KACJilL,GAAa,CCVnBhkM,IAAA,EAIsC+e,MAAM,cDUtCmlL,GAAa,CCdnBlkM,IAAA,EAMuB+e,MAAM,sBDavB,SAAUoY,GAAOgsB,EAAU0lB,EAAY1zB,EAAY2zB,EAAY5zB,EAAW7B,GAC9E,MAAMo8J,EAAkCC,GAAkB,wBAE1D,OAAQ3mI,KCrBRC,GAoBM,OApBD/kE,GAAG,gBAAiB0rM,QAAK9mI,EAAA,KAAAA,EAAA,GDyBhC,IAAIzgE,ICzB8B+6C,EAAAllD,MAAAklD,EAAAllD,QAAAmK,IAAOwnM,WAAQ/mI,EAAA,KAAAA,EAAA,GD4BjD,IAAIzgE,IC5B+C+6C,EAAAkE,OAAAlE,EAAAkE,SAAAj/C,IAAOi8L,SAAS,KD8B9D,CC7BDmL,GAGM,MAHN5mI,GAGM,CAFJm7H,GACY5gJ,EAAA0sJ,eAAiB,GD+BxB9mI,KC/BLC,GAA8E,OAA9Eg7H,GAA8E8L,GAAxB3sJ,EAAA0sJ,gBAAc,IAJ1EE,GAAA,SAMe5sJ,EAAAmqJ,QDiCNvkI,KCjCLC,GAcM,MAdNk7H,GAcM,CAXJsL,GAUK,YDsBEzmI,IAAW,GC/BhBC,GAQwBgnI,GAAA,KAlBhCC,GAW4B9sJ,EAAAkmB,UAAXlnE,ID+BK4mE,KChCdmnI,GAQwBT,EAAA,CANrBzvM,IAAKmC,EAAQ+zB,IACbjyB,GAAI9B,EAAQ+zB,IACZhpB,QAAS/K,EAAQ+K,QACjBlP,IAAKmE,EAAQnE,IACbmyM,OAAQhuM,EAAQguM,OAChB,gBAAehuM,EAAQ42C,SDgCjB,KAAM,EAAG,CAAC,KAAM,UAAW,MAAO,SAAU,qBAC7C,WClDhBg3J,GAAA,QDsDK,GACL,CErDA,MACMnnI,GAAa,CCAT7pD,MAAM,QDEV,SAAUoY,GAAOgsB,EAAU0lB,EAAY1zB,EAAY2zB,EAAY5zB,EAAW7B,GAC9E,OAAQ01B,KCLRC,GAGK,MAHAjiB,QAAK8hB,EAAA,KAAAA,EAAA,GAAAl4B,GAAEwS,EAAA4D,WADdqpJ,UAAAvnI,EAAA,KAAAA,EAAA,GAAAwnI,IAAA1/J,GACwCwS,EAAAmtJ,iBAAa,cDQhD,CCPDd,GAAqE,QAA9DzwL,MAFXwxL,EAAA,CAAAC,UAE+BrtJ,EAAAgtJ,OAAM1hK,MAAA,KDU9BqhK,GCViD3sJ,EAAAj2C,SAAO,GAC3DsiM,GAAqD,OAArD5mI,GAAqDknI,GAA/B3sJ,EAAAstJ,sBAAoB,IDWzC,GACL,CEJe,SAASC,GAAgCjU,GACtD,IAAIkU,EAAU,IAAInnM,KAAKA,KAAKonM,IAAInU,EAAKoU,cAAepU,EAAKqU,WAAYrU,EAAKsU,UAAWtU,EAAKuU,WAAYvU,EAAKwU,aAAcxU,EAAKyU,aAAczU,EAAK0U,oBAEjJ,OADAR,EAAQS,eAAe3U,EAAKoU,eACrBpU,EAAK/8K,UAAYixL,EAAQjxL,SAClC,CCfe,SAAS2xL,GAAajgI,EAAUhpE,GAC7C,GAAIA,EAAK1E,OAAS0tE,EAChB,MAAM,IAAI5uE,UAAU4uE,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBhpE,EAAK1E,OAAS,WAEpH,CC4Be,SAAS4tM,GAAOljM,GAC7BijM,GAAa,EAAGluM,WAChB,IAAIouM,EAAS7qM,OAAOnF,UAAUc,SAAS+E,KAAKgH,GAE5C,OAAIA,aAAoB5E,MAA4B,kBAAb4E,GAAoC,kBAAXmjM,EAEvD,IAAI/nM,KAAK4E,EAASsR,WACI,kBAAbtR,GAAoC,oBAAXmjM,EAClC,IAAI/nM,KAAK4E,IAES,kBAAbA,GAAoC,oBAAXmjM,GAAoD,qBAAZliL,UAE3EA,QAAQ6tB,KAAK,oJAEb7tB,QAAQ6tB,MAAK,IAAIx4C,OAAQe,QAGpB,IAAI+D,KAAKsU,KAEpB,CC1Be,SAAS0zL,GAAWC,GACjCJ,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GAElB,OADAhV,EAAKiV,SAAS,EAAG,EAAG,EAAG,GAChBjV,CACT,CC3BA,IAAIkV,GAAsB,MAoCX,SAASC,GAAyBC,EAAeC,GAC9DT,GAAa,EAAGluM,WAChB,IAAI4uM,EAAiBP,GAAWK,GAC5BG,EAAkBR,GAAWM,GAC7BG,EAAgBF,EAAeryL,UAAYgxL,GAAgCqB,GAC3EG,EAAiBF,EAAgBtyL,UAAYgxL,GAAgCsB,GAIjF,OAAO5+L,KAAKo7F,OAAOyjG,EAAgBC,GAAkBP,GACvD,CCXe,SAAS,GAAO5uM,GAE7B,OADAsuM,GAAa,EAAGluM,WACTJ,aAAiByG,MAAyB,kBAAVzG,GAAgE,kBAA1C2D,OAAOnF,UAAUc,SAAS+E,KAAKrE,EAC9F,CCoBe,SAASovM,GAAQV,GAG9B,GAFAJ,GAAa,EAAGluM,YAEX,GAAOsuM,IAAmC,kBAAdA,EAC/B,OAAO,EAGT,IAAIhV,EAAO6U,GAAOG,GAClB,OAAQ9zL,MAAME,OAAO4+K,GACvB,CCtEA,IAAI2V,GAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLzjD,MAAO,+BAET0jD,SAAU,CACRD,IAAK,WACLzjD,MAAO,qBAET2jD,YAAa,gBACbC,iBAAkB,CAChBH,IAAK,qBACLzjD,MAAO,+BAET6jD,SAAU,CACRJ,IAAK,WACLzjD,MAAO,qBAET8jD,YAAa,CACXL,IAAK,eACLzjD,MAAO,yBAET+jD,OAAQ,CACNN,IAAK,SACLzjD,MAAO,mBAETgkD,MAAO,CACLP,IAAK,QACLzjD,MAAO,kBAETikD,YAAa,CACXR,IAAK,eACLzjD,MAAO,yBAETkkD,OAAQ,CACNT,IAAK,SACLzjD,MAAO,mBAETmkD,aAAc,CACZV,IAAK,gBACLzjD,MAAO,0BAETokD,QAAS,CACPX,IAAK,UACLzjD,MAAO,oBAETqkD,YAAa,CACXZ,IAAK,eACLzjD,MAAO,yBAETskD,OAAQ,CACNb,IAAK,SACLzjD,MAAO,mBAETukD,WAAY,CACVd,IAAK,cACLzjD,MAAO,wBAETwkD,aAAc,CACZf,IAAK,gBACLzjD,MAAO,2BAIPykD,GAAiB,SAAU5wM,EAAOg9E,EAAOnvE,GAC3C,IAAIrE,EACAqnM,EAAanB,GAAqB1vM,GAUtC,OAPEwJ,EADwB,kBAAfqnM,EACAA,EACU,IAAV7zH,EACA6zH,EAAWjB,IAEXiB,EAAW1kD,MAAMhrJ,QAAQ,YAAa67E,EAAMr9E,YAGvC,OAAZkO,QAAgC,IAAZA,GAAsBA,EAAQijM,UAChDjjM,EAAQkjM,YAAcljM,EAAQkjM,WAAa,EACtC,MAAQvnM,EAERA,EAAS,OAIbA,CACT,EAEA,MCvFe,SAASwnM,GAAkBtrM,GACxC,OAAO,WACL,IAAImI,EAAUpN,UAAUO,OAAS,QAAsB9D,IAAjBuD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E+vE,EAAQ3iE,EAAQ2iE,MAAQ5kE,OAAOiC,EAAQ2iE,OAAS9qE,EAAKurM,aACrDplB,EAASnmL,EAAKwrM,QAAQ1gI,IAAU9qE,EAAKwrM,QAAQxrM,EAAKurM,cACtD,OAAOplB,CACT,CACF,CCPA,IAAIslB,GAAc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAELC,GAAc,CAChBJ,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAELE,GAAkB,CACpBL,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAELG,GAAa,CACf3X,KAAMiX,GAAkB,CACtBE,QAASC,GACTF,aAAc,SAEhBU,KAAMX,GAAkB,CACtBE,QAASM,GACTP,aAAc,SAEhBW,SAAUZ,GAAkB,CAC1BE,QAASO,GACTR,aAAc,UAGlB,MCjCIY,GAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACV/lD,MAAO,KAGLgmD,GAAiB,SAAUnyM,EAAOoyM,EAAOC,EAAWC,GACtD,OAAOT,GAAqB7xM,EAC9B,EAEA,MCbe,SAASuyM,GAAgB7sM,GACtC,OAAO,SAAU8sM,EAAYC,GAC3B,IAEIC,EAFA7kM,EAAU4kM,GAAgB,CAAC,EAC3B9zM,EAAUkP,EAAQlP,QAAUiN,OAAOiC,EAAQlP,SAAW,aAG1D,GAAgB,eAAZA,GAA4B+G,EAAKitM,iBAAkB,CACrD,IAAI1B,EAAevrM,EAAKktM,wBAA0BltM,EAAKurM,aACnDzgI,EAAQ3iE,EAAQ2iE,MAAQ5kE,OAAOiC,EAAQ2iE,OAASygI,EACpDyB,EAAchtM,EAAKitM,iBAAiBniI,IAAU9qE,EAAKitM,iBAAiB1B,EACtE,KAAO,CACL,IAAI4B,EAAgBntM,EAAKurM,aAErB6B,EAASjlM,EAAQ2iE,MAAQ5kE,OAAOiC,EAAQ2iE,OAAS9qE,EAAKurM,aAE1DyB,EAAchtM,EAAKsY,OAAO80L,IAAWptM,EAAKsY,OAAO60L,EACnD,CAEA,IAAIvmM,EAAQ5G,EAAKqtM,iBAAmBrtM,EAAKqtM,iBAAiBP,GAAcA,EAExE,OAAOE,EAAYpmM,EACrB,CACF,CCrBA,IAAI0mM,GAAY,CACdC,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAEtBC,GAAgB,CAClBH,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAMlDE,GAAc,CAChBJ,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aAEnHG,GAAY,CACdL,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC1B,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5C2B,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aAEvEI,GAAkB,CACpBN,OAAQ,CACNO,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETZ,KAAM,CACJK,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAGPC,GAA4B,CAC9Bf,OAAQ,CACNO,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETZ,KAAM,CACJK,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAIPE,GAAgB,SAAUC,EAAa5B,GACzC,IAAI3vM,EAASwY,OAAO+4L,GAOhBC,EAASxxM,EAAS,IAEtB,GAAIwxM,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOxxM,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,KAItB,OAAOA,EAAS,IAClB,EAEIyxM,GAAW,CACbH,cAAeA,GACfI,IAAK9B,GAAgB,CACnBv0L,OAAQg1L,GACR/B,aAAc,SAEhBqD,QAAS/B,GAAgB,CACvBv0L,OAAQo1L,GACRnC,aAAc,OACd8B,iBAAkB,SAAUuB,GAC1B,OAAOA,EAAU,CACnB,IAEFC,MAAOhC,GAAgB,CACrBv0L,OAAQq1L,GACRpC,aAAc,SAEhBuD,IAAKjC,GAAgB,CACnBv0L,OAAQs1L,GACRrC,aAAc,SAEhBwD,UAAWlC,GAAgB,CACzBv0L,OAAQu1L,GACRtC,aAAc,OACd0B,iBAAkBqB,GAClBpB,uBAAwB,UAG5B,MCjJe,SAAS8B,GAAahvM,GACnC,OAAO,SAAUkN,GACf,IAAI/E,EAAUpN,UAAUO,OAAS,QAAsB9D,IAAjBuD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E+vE,EAAQ3iE,EAAQ2iE,MAChBmkI,EAAenkI,GAAS9qE,EAAKkvM,cAAcpkI,IAAU9qE,EAAKkvM,cAAclvM,EAAKmvM,mBAC7EC,EAAcliM,EAAO1L,MAAMytM,GAE/B,IAAKG,EACH,OAAO,KAGT,IAOIz0M,EAPA00M,EAAgBD,EAAY,GAC5BE,EAAgBxkI,GAAS9qE,EAAKsvM,cAAcxkI,IAAU9qE,EAAKsvM,cAActvM,EAAKuvM,mBAC9E33M,EAAMqI,MAAMlC,QAAQuxM,GAAiB13L,GAAU03L,GAAe,SAAU1sK,GAC1E,OAAOA,EAAQ/gC,KAAKwtM,EACtB,IAAKG,GAAQF,GAAe,SAAU1sK,GACpC,OAAOA,EAAQ/gC,KAAKwtM,EACtB,IAEA10M,EAAQqF,EAAKyvM,cAAgBzvM,EAAKyvM,cAAc73M,GAAOA,EACvD+C,EAAQwN,EAAQsnM,cAAgBtnM,EAAQsnM,cAAc90M,GAASA,EAC/D,IAAIunH,EAAOh1G,EAAOlP,MAAMqxM,EAAc/zM,QACtC,MAAO,CACLX,MAAOA,EACPunH,KAAMA,EAEV,CACF,CAEA,SAASstF,GAAQ3nM,EAAQiuG,GACvB,IAAK,IAAIl+G,KAAOiQ,EACd,GAAIA,EAAOpD,eAAe7M,IAAQk+G,EAAUjuG,EAAOjQ,IACjD,OAAOA,CAKb,CAEA,SAASggB,GAAUq9F,EAAOa,GACxB,IAAK,IAAIl+G,EAAM,EAAGA,EAAMq9G,EAAM35G,OAAQ1D,IACpC,GAAIk+G,EAAUb,EAAMr9G,IAClB,OAAOA,CAKb,CC/Ce,SAAS83M,GAAoB1vM,GAC1C,OAAO,SAAUkN,GACf,IAAI/E,EAAUpN,UAAUO,OAAS,QAAsB9D,IAAjBuD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eq0M,EAAcliM,EAAO1L,MAAMxB,EAAKivM,cACpC,IAAKG,EAAa,OAAO,KACzB,IAAIC,EAAgBD,EAAY,GAC5BO,EAAcziM,EAAO1L,MAAMxB,EAAK4vM,cACpC,IAAKD,EAAa,OAAO,KACzB,IAAIh1M,EAAQqF,EAAKyvM,cAAgBzvM,EAAKyvM,cAAcE,EAAY,IAAMA,EAAY,GAClFh1M,EAAQwN,EAAQsnM,cAAgBtnM,EAAQsnM,cAAc90M,GAASA,EAC/D,IAAIunH,EAAOh1G,EAAOlP,MAAMqxM,EAAc/zM,QACtC,MAAO,CACLX,MAAOA,EACPunH,KAAMA,EAEV,CACF,CCdA,IAAI2tF,GAA4B,wBAC5BC,GAA4B,OAC5BC,GAAmB,CACrBxC,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DAEJuC,GAAmB,CACrBC,IAAK,CAAC,MAAO,YAEXC,GAAuB,CACzB3C,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAEJ0C,GAAuB,CACzBF,IAAK,CAAC,KAAM,KAAM,KAAM,OAEtBG,GAAqB,CACvB7C,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAEJ4C,GAAqB,CACvB9C,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtF0C,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAE5FK,GAAmB,CACrB/C,OAAQ,YACR1B,MAAO,2BACP2B,YAAa,kCACbC,KAAM,gEAEJ8C,GAAmB,CACrBhD,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD0C,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAEjDO,GAAyB,CAC3BjD,OAAQ,6DACR0C,IAAK,kFAEHQ,GAAyB,CAC3BR,IAAK,CACHnC,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WAGP7sM,GAAQ,CACV+sM,cAAemB,GAAoB,CACjCT,aAAcY,GACdD,aAAcE,GACdL,cAAe,SAAU90M,GACvB,OAAOuZ,SAASvZ,EAAO,GACzB,IAEFg0M,IAAKK,GAAa,CAChBE,cAAea,GACfZ,kBAAmB,OACnBG,cAAeU,GACfT,kBAAmB,QAErBX,QAASI,GAAa,CACpBE,cAAegB,GACff,kBAAmB,OACnBG,cAAea,GACfZ,kBAAmB,MACnBE,cAAe,SAAU7oM,GACvB,OAAOA,EAAQ,CACjB,IAEFioM,MAAOG,GAAa,CAClBE,cAAekB,GACfjB,kBAAmB,OACnBG,cAAee,GACfd,kBAAmB,QAErBT,IAAKE,GAAa,CAChBE,cAAeoB,GACfnB,kBAAmB,OACnBG,cAAeiB,GACfhB,kBAAmB,QAErBR,UAAWC,GAAa,CACtBE,cAAesB,GACfrB,kBAAmB,MACnBG,cAAemB,GACflB,kBAAmB,SAGvB,MClFI3zF,GAAS,CACXx/G,KAAM,QACN8uM,eAAgB,GAChBc,WAAY,GACZS,eAAgB,GAChBiC,SAAU,GACVltM,MAAO,GACP2G,QAAS,CACPuoM,aAAc,EAGdC,sBAAuB,IAG3B,MC7Be,SAASC,GAAUpC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAO94L,IAGT,IAAIzY,EAASwY,OAAO+4L,GAEpB,OAAIj5L,MAAMtY,GACDA,EAGFA,EAAS,EAAI+N,KAAKiD,KAAKhR,GAAU+N,KAAKkD,MAAMjR,EACrD,CCce,SAAS4zM,GAAgBxH,EAAWyH,GACjD7H,GAAa,EAAGluM,WAChB,IAAImwG,EAAYg+F,GAAOG,GAAW/xL,UAC9By5L,EAASH,GAAUE,GACvB,OAAO,IAAI1vM,KAAK8pG,EAAY6lG,EAC9B,CCLe,SAASC,GAAgB3H,EAAWyH,GACjD7H,GAAa,EAAGluM,WAChB,IAAIg2M,EAASH,GAAUE,GACvB,OAAOD,GAAgBxH,GAAY0H,EACrC,CC5BA,IAAI,GAAsB,MAGX,SAASE,GAAgB5H,GACtCJ,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACdn+F,EAAYmpF,EAAK/8K,UACrB+8K,EAAK6c,YAAY,EAAG,GACpB7c,EAAK8c,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAIC,EAAuB/c,EAAK/8K,UAC5B+5L,EAAanmG,EAAYkmG,EAC7B,OAAOpmM,KAAKkD,MAAMmjM,EAAa,IAAuB,CACxD,CCVe,SAASC,GAAkBjI,GACxCJ,GAAa,EAAGluM,WAChB,IAAI21M,EAAe,EACfrc,EAAO6U,GAAOG,GACdyF,EAAMza,EAAKkd,YACXroL,GAAQ4lL,EAAM4B,EAAe,EAAI,GAAK5B,EAAM4B,EAGhD,OAFArc,EAAKmd,WAAWnd,EAAKod,aAAevoL,GACpCmrK,EAAK8c,YAAY,EAAG,EAAG,EAAG,GACnB9c,CACT,CCRe,SAASqd,GAAkBrI,GACxCJ,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACdsI,EAAOtd,EAAKud,iBACZC,EAA4B,IAAIzwM,KAAK,GACzCywM,EAA0B7I,eAAe2I,EAAO,EAAG,EAAG,GACtDE,EAA0BV,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIW,EAAkBR,GAAkBO,GACpCE,EAA4B,IAAI3wM,KAAK,GACzC2wM,EAA0B/I,eAAe2I,EAAM,EAAG,GAClDI,EAA0BZ,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIa,EAAkBV,GAAkBS,GAExC,OAAI1d,EAAK/8K,WAAaw6L,EAAgBx6L,UAC7Bq6L,EAAO,EACLtd,EAAK/8K,WAAa06L,EAAgB16L,UACpCq6L,EAEAA,EAAO,CAElB,CCpBe,SAASM,GAAsB5I,GAC5CJ,GAAa,EAAGluM,WAChB,IAAI42M,EAAOD,GAAkBrI,GACzB6I,EAAkB,IAAI9wM,KAAK,GAC/B8wM,EAAgBlJ,eAAe2I,EAAM,EAAG,GACxCO,EAAgBf,YAAY,EAAG,EAAG,EAAG,GACrC,IAAI9c,EAAOid,GAAkBY,GAC7B,OAAO7d,CACT,CCTA,IAAI8d,GAAuB,OAGZ,SAASC,GAAc/I,GACpCJ,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACdngL,EAAOooL,GAAkBjd,GAAM/8K,UAAY26L,GAAsB5d,GAAM/8K,UAI3E,OAAOtM,KAAKo7F,MAAMl9E,EAAOipL,IAAwB,CACnD,CCVe,SAASE,GAAehJ,EAAW0D,GAChD9D,GAAa,EAAGluM,WAChB,IAAIoN,EAAU4kM,GAAgB,CAAC,EAC3BnxF,EAASzzG,EAAQyzG,OACjB02F,EAAqB12F,GAAUA,EAAOzzG,SAAWyzG,EAAOzzG,QAAQuoM,aAChE6B,EAA4C,MAAtBD,EAA6B,EAAI1B,GAAU0B,GACjE5B,EAAuC,MAAxBvoM,EAAQuoM,aAAuB6B,EAAsB3B,GAAUzoM,EAAQuoM,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI8B,WAAW,oDAGvB,IAAIne,EAAO6U,GAAOG,GACdyF,EAAMza,EAAKkd,YACXroL,GAAQ4lL,EAAM4B,EAAe,EAAI,GAAK5B,EAAM4B,EAGhD,OAFArc,EAAKmd,WAAWnd,EAAKod,aAAevoL,GACpCmrK,EAAK8c,YAAY,EAAG,EAAG,EAAG,GACnB9c,CACT,CCjBe,SAASoe,GAAepJ,EAAW0D,GAChD9D,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACdsI,EAAOtd,EAAKud,iBACZzpM,EAAU4kM,GAAgB,CAAC,EAC3BnxF,EAASzzG,EAAQyzG,OACjB82F,EAA8B92F,GAAUA,EAAOzzG,SAAWyzG,EAAOzzG,QAAQwoM,sBACzEgC,EAA8D,MAA/BD,EAAsC,EAAI9B,GAAU8B,GACnF/B,EAAyD,MAAjCxoM,EAAQwoM,sBAAgCgC,EAA+B/B,GAAUzoM,EAAQwoM,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAI6B,WAAW,6DAGvB,IAAII,EAAsB,IAAIxxM,KAAK,GACnCwxM,EAAoB5J,eAAe2I,EAAO,EAAG,EAAGhB,GAChDiC,EAAoBzB,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIW,EAAkBO,GAAeO,EAAqB7F,GACtD8F,EAAsB,IAAIzxM,KAAK,GACnCyxM,EAAoB7J,eAAe2I,EAAM,EAAGhB,GAC5CkC,EAAoB1B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIa,EAAkBK,GAAeQ,EAAqB9F,GAE1D,OAAI1Y,EAAK/8K,WAAaw6L,EAAgBx6L,UAC7Bq6L,EAAO,EACLtd,EAAK/8K,WAAa06L,EAAgB16L,UACpCq6L,EAEAA,EAAO,CAElB,CC9Be,SAASmB,GAAmBzJ,EAAW0D,GACpD9D,GAAa,EAAGluM,WAChB,IAAIoN,EAAU4kM,GAAgB,CAAC,EAC3BnxF,EAASzzG,EAAQyzG,OACjB82F,EAA8B92F,GAAUA,EAAOzzG,SAAWyzG,EAAOzzG,QAAQwoM,sBACzEgC,EAA8D,MAA/BD,EAAsC,EAAI9B,GAAU8B,GACnF/B,EAAyD,MAAjCxoM,EAAQwoM,sBAAgCgC,EAA+B/B,GAAUzoM,EAAQwoM,uBACjHgB,EAAOc,GAAepJ,EAAW0D,GACjCgG,EAAY,IAAI3xM,KAAK,GACzB2xM,EAAU/J,eAAe2I,EAAM,EAAGhB,GAClCoC,EAAU5B,YAAY,EAAG,EAAG,EAAG,GAC/B,IAAI9c,EAAOge,GAAeU,EAAWhG,GACrC,OAAO1Y,CACT,CCfA,IAAI,GAAuB,OAGZ,SAAS2e,GAAW3J,EAAWlhM,GAC5C8gM,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACdngL,EAAOmpL,GAAehe,EAAMlsL,GAASmP,UAAYw7L,GAAmBze,EAAMlsL,GAASmP,UAIvF,OAAOtM,KAAKo7F,MAAMl9E,EAAO,IAAwB,CACnD,CCfe,SAAS+pL,GAAgBh2M,EAAQi2M,GAC9C,IAAIC,EAAOl2M,EAAS,EAAI,IAAM,GAC1BowJ,EAASriJ,KAAKy1G,IAAIxjH,GAAQhD,WAE9B,MAAOozJ,EAAO/xJ,OAAS43M,EACrB7lD,EAAS,IAAMA,EAGjB,OAAO8lD,EAAO9lD,CAChB,CCKA,IAAI+lD,GAAa,CAEfxzE,EAAG,SAAUy0D,EAAM/5L,GASjB,IAAI+4M,EAAahf,EAAKud,iBAElBD,EAAO0B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOJ,GAA0B,OAAV34M,EAAiBq3M,EAAO,IAAMA,EAAMr3M,EAAMgB,OACnE,EAEAg4M,EAAG,SAAUjf,EAAM/5L,GACjB,IAAIu0M,EAAQxa,EAAKkf,cACjB,MAAiB,MAAVj5M,EAAgB4L,OAAO2oM,EAAQ,GAAKoE,GAAgBpE,EAAQ,EAAG,EACxE,EAEAp8L,EAAG,SAAU4hL,EAAM/5L,GACjB,OAAO24M,GAAgB5e,EAAKod,aAAcn3M,EAAMgB,OAClD,EAEAqJ,EAAG,SAAU0vL,EAAM/5L,GACjB,IAAIk5M,EAAqBnf,EAAKof,cAAgB,IAAM,EAAI,KAAO,KAE/D,OAAQn5M,GACN,IAAK,IACL,IAAK,KACH,OAAOk5M,EAAmBz9M,cAE5B,IAAK,MACH,OAAOy9M,EAET,IAAK,QACH,OAAOA,EAAmB,GAE5B,IAAK,OACL,QACE,MAA8B,OAAvBA,EAA8B,OAAS,OAEpD,EAEAz3M,EAAG,SAAUs4L,EAAM/5L,GACjB,OAAO24M,GAAgB5e,EAAKof,cAAgB,IAAM,GAAIn5M,EAAMgB,OAC9D,EAEAo4M,EAAG,SAAUrf,EAAM/5L,GACjB,OAAO24M,GAAgB5e,EAAKof,cAAen5M,EAAMgB,OACnD,EAEAywB,EAAG,SAAUsoK,EAAM/5L,GACjB,OAAO24M,GAAgB5e,EAAKsf,gBAAiBr5M,EAAMgB,OACrD,EAEAwZ,EAAG,SAAUu/K,EAAM/5L,GACjB,OAAO24M,GAAgB5e,EAAKuf,gBAAiBt5M,EAAMgB,OACrD,EAEAu4M,EAAG,SAAUxf,EAAM/5L,GACjB,IAAIw5M,EAAiBx5M,EAAMgB,OACvBy4M,EAAe1f,EAAK2f,qBACpBC,EAAoBjpM,KAAKkD,MAAM6lM,EAAe/oM,KAAKqoI,IAAI,GAAIygE,EAAiB,IAChF,OAAOb,GAAgBgB,EAAmB35M,EAAMgB,OAClD,GAEF,MC5EI44M,GAAgB,CAClBpG,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAgDL,GAAa,CAEf8F,EAAG,SAAU9f,EAAM/5L,EAAOo0M,GACxB,IAAIC,EAAMta,EAAKud,iBAAmB,EAAI,EAAI,EAE1C,OAAQt3M,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOo0M,EAASC,IAAIA,EAAK,CACvB7jI,MAAO,gBAIX,IAAK,QACH,OAAO4jI,EAASC,IAAIA,EAAK,CACvB7jI,MAAO,WAIX,IAAK,OACL,QACE,OAAO4jI,EAASC,IAAIA,EAAK,CACvB7jI,MAAO,SAGf,EAEA80D,EAAG,SAAUy0D,EAAM/5L,EAAOo0M,GAExB,GAAc,OAAVp0M,EAAgB,CAClB,IAAI+4M,EAAahf,EAAKud,iBAElBD,EAAO0B,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAO3E,EAASH,cAAcoD,EAAM,CAClCyC,KAAM,QAEV,CAEA,OAAOC,GAAgBz0E,EAAEy0D,EAAM/5L,EACjC,EAEAg6M,EAAG,SAAUjgB,EAAM/5L,EAAOo0M,EAAUvmM,GAClC,IAAIosM,EAAiB9B,GAAepe,EAAMlsL,GAEtCqsM,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAEzD,GAAc,OAAVj6M,EAAgB,CAClB,IAAIm6M,EAAeD,EAAW,IAC9B,OAAOvB,GAAgBwB,EAAc,EACvC,CAGA,MAAc,OAAVn6M,EACKo0M,EAASH,cAAciG,EAAU,CACtCJ,KAAM,SAKHnB,GAAgBuB,EAAUl6M,EAAMgB,OACzC,EAEAo5M,EAAG,SAAUrgB,EAAM/5L,GACjB,IAAIq6M,EAAcjD,GAAkBrd,GAEpC,OAAO4e,GAAgB0B,EAAar6M,EAAMgB,OAC5C,EAUA4nD,EAAG,SAAUmxI,EAAM/5L,GACjB,IAAIq3M,EAAOtd,EAAKud,iBAChB,OAAOqB,GAAgBtB,EAAMr3M,EAAMgB,OACrC,EAEAs5M,EAAG,SAAUvgB,EAAM/5L,EAAOo0M,GACxB,IAAIE,EAAU5jM,KAAKiD,MAAMomL,EAAKkf,cAAgB,GAAK,GAEnD,OAAQj5M,GAEN,IAAK,IACH,OAAO4L,OAAO0oM,GAGhB,IAAK,KACH,OAAOqE,GAAgBrE,EAAS,GAGlC,IAAK,KACH,OAAOF,EAASH,cAAcK,EAAS,CACrCwF,KAAM,YAIV,IAAK,MACH,OAAO1F,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,SACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,OACP7xE,QAAS,eAGjB,EAEAg6K,EAAG,SAAUohB,EAAM/5L,EAAOo0M,GACxB,IAAIE,EAAU5jM,KAAKiD,MAAMomL,EAAKkf,cAAgB,GAAK,GAEnD,OAAQj5M,GAEN,IAAK,IACH,OAAO4L,OAAO0oM,GAGhB,IAAK,KACH,OAAOqE,GAAgBrE,EAAS,GAGlC,IAAK,KACH,OAAOF,EAASH,cAAcK,EAAS,CACrCwF,KAAM,YAIV,IAAK,MACH,OAAO1F,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,SACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASE,QAAQA,EAAS,CAC/B9jI,MAAO,OACP7xE,QAAS,eAGjB,EAEAq6M,EAAG,SAAUjf,EAAM/5L,EAAOo0M,GACxB,IAAIG,EAAQxa,EAAKkf,cAEjB,OAAQj5M,GACN,IAAK,IACL,IAAK,KACH,OAAO+5M,GAAgBf,EAAEjf,EAAM/5L,GAGjC,IAAK,KACH,OAAOo0M,EAASH,cAAcM,EAAQ,EAAG,CACvCuF,KAAM,UAIV,IAAK,MACH,OAAO1F,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,SACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,OACP7xE,QAAS,eAGjB,EAEA47M,EAAG,SAAUxgB,EAAM/5L,EAAOo0M,GACxB,IAAIG,EAAQxa,EAAKkf,cAEjB,OAAQj5M,GAEN,IAAK,IACH,OAAO4L,OAAO2oM,EAAQ,GAGxB,IAAK,KACH,OAAOoE,GAAgBpE,EAAQ,EAAG,GAGpC,IAAK,KACH,OAAOH,EAASH,cAAcM,EAAQ,EAAG,CACvCuF,KAAM,UAIV,IAAK,MACH,OAAO1F,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,SACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASG,MAAMA,EAAO,CAC3B/jI,MAAO,OACP7xE,QAAS,eAGjB,EAEA8pE,EAAG,SAAUsxH,EAAM/5L,EAAOo0M,EAAUvmM,GAClC,IAAI2sM,EAAO9B,GAAW3e,EAAMlsL,GAE5B,MAAc,OAAV7N,EACKo0M,EAASH,cAAcuG,EAAM,CAClCV,KAAM,SAIHnB,GAAgB6B,EAAMx6M,EAAMgB,OACrC,EAEAy5M,EAAG,SAAU1gB,EAAM/5L,EAAOo0M,GACxB,IAAIsG,EAAU5C,GAAc/d,GAE5B,MAAc,OAAV/5L,EACKo0M,EAASH,cAAcyG,EAAS,CACrCZ,KAAM,SAIHnB,GAAgB+B,EAAS16M,EAAMgB,OACxC,EAEAmX,EAAG,SAAU4hL,EAAM/5L,EAAOo0M,GACxB,MAAc,OAAVp0M,EACKo0M,EAASH,cAAcla,EAAKod,aAAc,CAC/C2C,KAAM,SAIHC,GAAgB5hM,EAAE4hL,EAAM/5L,EACjC,EAEA26M,EAAG,SAAU5gB,EAAM/5L,EAAOo0M,GACxB,IAAIwG,EAAYjE,GAAgB5c,GAEhC,MAAc,OAAV/5L,EACKo0M,EAASH,cAAc2G,EAAW,CACvCd,KAAM,cAIHnB,GAAgBiC,EAAW56M,EAAMgB,OAC1C,EAEA65M,EAAG,SAAU9gB,EAAM/5L,EAAOo0M,GACxB,IAAI0G,EAAY/gB,EAAKkd,YAErB,OAAQj3M,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOo0M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,SACP7xE,QAAS,eAIb,IAAK,SACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,QACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,OACP7xE,QAAS,eAGjB,EAEAjB,EAAG,SAAUq8L,EAAM/5L,EAAOo0M,EAAUvmM,GAClC,IAAIitM,EAAY/gB,EAAKkd,YACjB8D,GAAkBD,EAAYjtM,EAAQuoM,aAAe,GAAK,GAAK,EAEnE,OAAQp2M,GAEN,IAAK,IACH,OAAO4L,OAAOmvM,GAGhB,IAAK,KACH,OAAOpC,GAAgBoC,EAAgB,GAGzC,IAAK,KACH,OAAO3G,EAASH,cAAc8G,EAAgB,CAC5CjB,KAAM,QAGV,IAAK,MACH,OAAO1F,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,SACP7xE,QAAS,eAIb,IAAK,SACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,QACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,OACP7xE,QAAS,eAGjB,EAEAyB,EAAG,SAAU25L,EAAM/5L,EAAOo0M,EAAUvmM,GAClC,IAAIitM,EAAY/gB,EAAKkd,YACjB8D,GAAkBD,EAAYjtM,EAAQuoM,aAAe,GAAK,GAAK,EAEnE,OAAQp2M,GAEN,IAAK,IACH,OAAO4L,OAAOmvM,GAGhB,IAAK,KACH,OAAOpC,GAAgBoC,EAAgB/6M,EAAMgB,QAG/C,IAAK,KACH,OAAOozM,EAASH,cAAc8G,EAAgB,CAC5CjB,KAAM,QAGV,IAAK,MACH,OAAO1F,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,SACP7xE,QAAS,eAIb,IAAK,SACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,QACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,OACP7xE,QAAS,eAGjB,EAEAiH,EAAG,SAAUm0L,EAAM/5L,EAAOo0M,GACxB,IAAI0G,EAAY/gB,EAAKkd,YACjB+D,EAA6B,IAAdF,EAAkB,EAAIA,EAEzC,OAAQ96M,GAEN,IAAK,IACH,OAAO4L,OAAOovM,GAGhB,IAAK,KACH,OAAOrC,GAAgBqC,EAAch7M,EAAMgB,QAG7C,IAAK,KACH,OAAOozM,EAASH,cAAc+G,EAAc,CAC1ClB,KAAM,QAIV,IAAK,MACH,OAAO1F,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,cACP7xE,QAAS,eAIb,IAAK,QACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,SACP7xE,QAAS,eAIb,IAAK,SACH,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,QACP7xE,QAAS,eAIb,IAAK,OACL,QACE,OAAOy1M,EAASI,IAAIsG,EAAW,CAC7BtqI,MAAO,OACP7xE,QAAS,eAGjB,EAEA0L,EAAG,SAAU0vL,EAAM/5L,EAAOo0M,GACxB,IAAI6G,EAAQlhB,EAAKof,cACbD,EAAqB+B,EAAQ,IAAM,EAAI,KAAO,KAElD,OAAQj7M,GACN,IAAK,IACL,IAAK,KACH,OAAOo0M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,cACP7xE,QAAS,eAGb,IAAK,MACH,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,cACP7xE,QAAS,eACRpB,cAEL,IAAK,QACH,OAAO62M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,SACP7xE,QAAS,eAGb,IAAK,OACL,QACE,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,OACP7xE,QAAS,eAGjB,EAEA2L,EAAG,SAAUyvL,EAAM/5L,EAAOo0M,GACxB,IACI8E,EADA+B,EAAQlhB,EAAKof,cAWjB,OAPED,EADY,KAAV+B,EACmBrB,GAAcjG,KAChB,IAAVsH,EACYrB,GAAclG,SAEduH,EAAQ,IAAM,EAAI,KAAO,KAGxCj7M,GACN,IAAK,IACL,IAAK,KACH,OAAOo0M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,cACP7xE,QAAS,eAGb,IAAK,MACH,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,cACP7xE,QAAS,eACRpB,cAEL,IAAK,QACH,OAAO62M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,SACP7xE,QAAS,eAGb,IAAK,OACL,QACE,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,OACP7xE,QAAS,eAGjB,EAEAy2J,EAAG,SAAU2kC,EAAM/5L,EAAOo0M,GACxB,IACI8E,EADA+B,EAAQlhB,EAAKof,cAajB,OATED,EADE+B,GAAS,GACUrB,GAAc9F,QAC1BmH,GAAS,GACGrB,GAAc/F,UAC1BoH,GAAS,EACGrB,GAAchG,QAEdgG,GAAc7F,MAG7B/zM,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOo0M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,cACP7xE,QAAS,eAGb,IAAK,QACH,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,SACP7xE,QAAS,eAGb,IAAK,OACL,QACE,OAAOy1M,EAASK,UAAUyE,EAAoB,CAC5C1oI,MAAO,OACP7xE,QAAS,eAGjB,EAEA8C,EAAG,SAAUs4L,EAAM/5L,EAAOo0M,GACxB,GAAc,OAAVp0M,EAAgB,CAClB,IAAIi7M,EAAQlhB,EAAKof,cAAgB,GAEjC,OADc,IAAV8B,IAAaA,EAAQ,IAClB7G,EAASH,cAAcgH,EAAO,CACnCnB,KAAM,QAEV,CAEA,OAAOC,GAAgBt4M,EAAEs4L,EAAM/5L,EACjC,EAEAo5M,EAAG,SAAUrf,EAAM/5L,EAAOo0M,GACxB,MAAc,OAAVp0M,EACKo0M,EAASH,cAAcla,EAAKof,cAAe,CAChDW,KAAM,SAIHC,GAAgBX,EAAErf,EAAM/5L,EACjC,EAEAk7M,EAAG,SAAUnhB,EAAM/5L,EAAOo0M,GACxB,IAAI6G,EAAQlhB,EAAKof,cAAgB,GAEjC,MAAc,OAAVn5M,EACKo0M,EAASH,cAAcgH,EAAO,CACnCnB,KAAM,SAIHnB,GAAgBsC,EAAOj7M,EAAMgB,OACtC,EAEA0gD,EAAG,SAAUq4I,EAAM/5L,EAAOo0M,GACxB,IAAI6G,EAAQlhB,EAAKof,cAGjB,OAFc,IAAV8B,IAAaA,EAAQ,IAEX,OAAVj7M,EACKo0M,EAASH,cAAcgH,EAAO,CACnCnB,KAAM,SAIHnB,GAAgBsC,EAAOj7M,EAAMgB,OACtC,EAEAywB,EAAG,SAAUsoK,EAAM/5L,EAAOo0M,GACxB,MAAc,OAAVp0M,EACKo0M,EAASH,cAAcla,EAAKsf,gBAAiB,CAClDS,KAAM,WAIHC,GAAgBtoL,EAAEsoK,EAAM/5L,EACjC,EAEAwa,EAAG,SAAUu/K,EAAM/5L,EAAOo0M,GACxB,MAAc,OAAVp0M,EACKo0M,EAASH,cAAcla,EAAKuf,gBAAiB,CAClDQ,KAAM,WAIHC,GAAgBv/L,EAAEu/K,EAAM/5L,EACjC,EAEAu5M,EAAG,SAAUxf,EAAM/5L,GACjB,OAAO+5M,GAAgBR,EAAExf,EAAM/5L,EACjC,EAEAm7M,EAAG,SAAUphB,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCwhB,EAAiBF,EAAaG,oBAElC,GAAuB,IAAnBD,EACF,MAAO,IAGT,OAAQv7M,GAEN,IAAK,IACH,OAAOy7M,GAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,GAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,GAAeH,EAAgB,KAE5C,EAEAznM,EAAG,SAAUimL,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCwhB,EAAiBF,EAAaG,oBAElC,OAAQx7M,GAEN,IAAK,IACH,OAAOy7M,GAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,GAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,GAAeH,EAAgB,KAE5C,EAEAlvM,EAAG,SAAU0tL,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCwhB,EAAiBF,EAAaG,oBAElC,OAAQx7M,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ27M,GAAoBJ,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEpD,EAEAK,EAAG,SAAU7hB,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCwhB,EAAiBF,EAAaG,oBAElC,OAAQx7M,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ27M,GAAoBJ,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEpD,EAEAlxK,EAAG,SAAU0vJ,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCnpF,EAAYlgG,KAAKkD,MAAMynM,EAAar+L,UAAY,KACpD,OAAO27L,GAAgB/nG,EAAW5wG,EAAMgB,OAC1C,EAEA66M,EAAG,SAAU9hB,EAAM/5L,EAAOo7M,EAAWvtM,GACnC,IAAIwtM,EAAextM,EAAQytM,eAAiBvhB,EACxCnpF,EAAYyqG,EAAar+L,UAC7B,OAAO27L,GAAgB/nG,EAAW5wG,EAAMgB,OAC1C,GAGF,SAAS26M,GAAoBr7H,EAAQw7H,GACnC,IAAIjD,EAAOv4H,EAAS,EAAI,IAAM,IAC1By7H,EAAYrrM,KAAKy1G,IAAI7lC,GACrB26H,EAAQvqM,KAAKkD,MAAMmoM,EAAY,IAC/BC,EAAUD,EAAY,GAE1B,GAAgB,IAAZC,EACF,OAAOnD,EAAOjtM,OAAOqvM,GAGvB,IAAIgB,EAAYH,GAAkB,GAClC,OAAOjD,EAAOjtM,OAAOqvM,GAASgB,EAAYtD,GAAgBqD,EAAS,EACrE,CAEA,SAASP,GAAkCn7H,EAAQw7H,GACjD,GAAIx7H,EAAS,KAAO,EAAG,CACrB,IAAIu4H,EAAOv4H,EAAS,EAAI,IAAM,IAC9B,OAAOu4H,EAAOF,GAAgBjoM,KAAKy1G,IAAI7lC,GAAU,GAAI,EACvD,CAEA,OAAOo7H,GAAep7H,EAAQw7H,EAChC,CAEA,SAASJ,GAAep7H,EAAQw7H,GAC9B,IAAIG,EAAYH,GAAkB,GAC9BjD,EAAOv4H,EAAS,EAAI,IAAM,IAC1By7H,EAAYrrM,KAAKy1G,IAAI7lC,GACrB26H,EAAQtC,GAAgBjoM,KAAKkD,MAAMmoM,EAAY,IAAK,GACpDC,EAAUrD,GAAgBoD,EAAY,GAAI,GAC9C,OAAOlD,EAAOoC,EAAQgB,EAAYD,CACpC,CAEA,UCj2BA,SAASE,GAAkB5zK,EAASopK,GAClC,OAAQppK,GACN,IAAK,IACH,OAAOopK,EAAW3X,KAAK,CACrBvpH,MAAO,UAGX,IAAK,KACH,OAAOkhI,EAAW3X,KAAK,CACrBvpH,MAAO,WAGX,IAAK,MACH,OAAOkhI,EAAW3X,KAAK,CACrBvpH,MAAO,SAGX,IAAK,OACL,QACE,OAAOkhI,EAAW3X,KAAK,CACrBvpH,MAAO,SAGf,CAEA,SAAS2rI,GAAkB7zK,EAASopK,GAClC,OAAQppK,GACN,IAAK,IACH,OAAOopK,EAAWC,KAAK,CACrBnhI,MAAO,UAGX,IAAK,KACH,OAAOkhI,EAAWC,KAAK,CACrBnhI,MAAO,WAGX,IAAK,MACH,OAAOkhI,EAAWC,KAAK,CACrBnhI,MAAO,SAGX,IAAK,OACL,QACE,OAAOkhI,EAAWC,KAAK,CACrBnhI,MAAO,SAGf,CAEA,SAAS4rI,GAAsB9zK,EAASopK,GACtC,IAQI2K,EARAvH,EAAcxsK,EAAQphC,MAAM,cAAgB,GAC5Co1M,EAAcxH,EAAY,GAC1ByH,EAAczH,EAAY,GAE9B,IAAKyH,EACH,OAAOL,GAAkB5zK,EAASopK,GAKpC,OAAQ4K,GACN,IAAK,IACHD,EAAiB3K,EAAWE,SAAS,CACnCphI,MAAO,UAET,MAEF,IAAK,KACH6rI,EAAiB3K,EAAWE,SAAS,CACnCphI,MAAO,WAET,MAEF,IAAK,MACH6rI,EAAiB3K,EAAWE,SAAS,CACnCphI,MAAO,SAET,MAEF,IAAK,OACL,QACE6rI,EAAiB3K,EAAWE,SAAS,CACnCphI,MAAO,SAET,MAGJ,OAAO6rI,EAAel7M,QAAQ,WAAY+6M,GAAkBI,EAAa5K,IAAavwM,QAAQ,WAAYg7M,GAAkBI,EAAa7K,GAC3I,CAEA,IAAI8K,GAAiB,CACnBzxM,EAAGoxM,GACH5rM,EAAG6rM,IAEL,MC/FIK,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAC9B,SAASC,GAA0B38M,GACxC,OAAoD,IAA7Cy8M,GAAyBxgN,QAAQ+D,EAC1C,CACO,SAAS48M,GAAyB58M,GACvC,OAAmD,IAA5C08M,GAAwBzgN,QAAQ+D,EACzC,CACO,SAAS68M,GAAoB78M,EAAO6rL,EAAQ32K,GACjD,GAAc,SAAVlV,EACF,MAAM,IAAIk4M,WAAW,qCAAqCp0M,OAAO+nL,EAAQ,0CAA0C/nL,OAAOoR,EAAO,iCAC5H,GAAc,OAAVlV,EACT,MAAM,IAAIk4M,WAAW,iCAAiCp0M,OAAO+nL,EAAQ,0CAA0C/nL,OAAOoR,EAAO,iCACxH,GAAc,MAAVlV,EACT,MAAM,IAAIk4M,WAAW,+BAA+Bp0M,OAAO+nL,EAAQ,sDAAsD/nL,OAAOoR,EAAO,iCAClI,GAAc,OAAVlV,EACT,MAAM,IAAIk4M,WAAW,iCAAiCp0M,OAAO+nL,EAAQ,sDAAsD/nL,OAAOoR,EAAO,gCAE7I,CCGA,IAAI4nM,GAAyB,wDAGzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAyTrB,SAASrxB,GAAOkjB,EAAWoO,EAAgB1K,GACxD9D,GAAa,EAAGluM,WAChB,IAAI28M,EAAYxxM,OAAOuxM,GACnBtvM,EAAU4kM,GAAgB,CAAC,EAC3BnxF,EAASzzG,EAAQyzG,QAAU,GAC3B82F,EAA8B92F,EAAOzzG,SAAWyzG,EAAOzzG,QAAQwoM,sBAC/DgC,EAA8D,MAA/BD,EAAsC,EAAI9B,GAAU8B,GACnF/B,EAAyD,MAAjCxoM,EAAQwoM,sBAAgCgC,EAA+B/B,GAAUzoM,EAAQwoM,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAI6B,WAAW,6DAGvB,IAAIF,EAAqB12F,EAAOzzG,SAAWyzG,EAAOzzG,QAAQuoM,aACtD6B,EAA4C,MAAtBD,EAA6B,EAAI1B,GAAU0B,GACjE5B,EAAuC,MAAxBvoM,EAAQuoM,aAAuB6B,EAAsB3B,GAAUzoM,EAAQuoM,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI8B,WAAW,oDAGvB,IAAK52F,EAAO8yF,SACV,MAAM,IAAI8D,WAAW,yCAGvB,IAAK52F,EAAOowF,WACV,MAAM,IAAIwG,WAAW,2CAGvB,IAAImD,EAAezM,GAAOG,GAE1B,IAAKU,GAAQ4L,GACX,MAAM,IAAInD,WAAW,sBAMvB,IAAIqD,EAAiBvN,GAAgCqN,GACjDpN,EAAUyI,GAAgB2E,EAAcE,GACxC8B,EAAmB,CACrBhH,sBAAuBA,EACvBD,aAAcA,EACd90F,OAAQA,EACRg6F,cAAeD,GAEb7xM,EAAS4zM,EAAUl2M,MAAM61M,IAA4B9+L,KAAI,SAAUstF,GACrE,IAAI+xG,EAAiB/xG,EAAU,GAE/B,GAAuB,MAAnB+xG,GAA6C,MAAnBA,EAAwB,CACpD,IAAIC,EAAgB,GAAeD,GACnC,OAAOC,EAAchyG,EAAW+V,EAAOowF,WAAY2L,EACrD,CAEA,OAAO9xG,CACT,IAAGnlG,KAAK,IAAIc,MAAM41M,IAAwB7+L,KAAI,SAAUstF,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAGT,IAAI+xG,EAAiB/xG,EAAU,GAE/B,GAAuB,MAAnB+xG,EACF,OAAOE,GAAmBjyG,GAG5B,IAAIkyG,EAAY,GAAWH,GAE3B,GAAIG,EASF,OARK5vM,EAAQ6vM,6BAA+Bd,GAAyBrxG,IACnEsxG,GAAoBtxG,EAAW4xG,EAAgBpO,IAG5ClhM,EAAQ8vM,8BAAgChB,GAA0BpxG,IACrEsxG,GAAoBtxG,EAAW4xG,EAAgBpO,GAG1C0O,EAAUxP,EAAS1iG,EAAW+V,EAAO8yF,SAAUiJ,GAGxD,GAAIC,EAAep2M,MAAMg2M,IACvB,MAAM,IAAIhF,WAAW,iEAAmEoF,EAAiB,KAG3G,OAAO/xG,CACT,IAAGnlG,KAAK,IACR,OAAOoD,CACT,CAEA,SAASg0M,GAAmBtoM,GAC1B,OAAOA,EAAMhO,MAAM81M,IAAqB,GAAG77M,QAAQ87M,GAAmB,IACxE,CChYe,SAAS,GAAelO,EAAW6O,EAAenL,GAC/D9D,GAAa,EAAGluM,WAChB,IAAIs5L,EAAO6U,GAAOG,GACd8O,EAAWjP,GAAOgP,GAElBE,EAAOrL,GAAgB,CAAC,EACxBsL,EAAcD,EAAKx8F,OACnBA,OAAyB,IAAhBy8F,EAAyB,GAAgBA,EAClDC,EAAoBF,EAAK1H,aACzBA,OAAqC,IAAtB4H,EAA+B,EAAIA,EAEtD,IAAK18F,EAAO8yF,SACV,MAAM,IAAI8D,WAAW,yCAGvB,IAAK52F,EAAOowF,WACV,MAAM,IAAIwG,WAAW,2CAGvB,IAAK52F,EAAO6wF,eACV,MAAM,IAAI+F,WAAW,+CAGvB,IAMIl4M,EANA4uB,EAAOsgL,GAAyBnV,EAAM8jB,GAE1C,GAAI5iM,MAAM2T,GACR,MAAM,IAAIspL,WAAW,sBAMrBl4M,EADE4uB,GAAQ,EACF,QACCA,GAAQ,EACT,WACCA,EAAO,EACR,YACCA,EAAO,EACR,QACCA,EAAO,EACR,WACCA,EAAO,EACR,WAEA,QAGV,IAAIq/K,EAAUyI,GAAgB3c,EAAMiU,GAAgCjU,IAChEkkB,EAAcvH,GAAgBmH,EAAU7P,GAAgC6P,IACxET,EAAY97F,EAAO6wF,eAAenyM,EAAOiuM,EAASgQ,EAAa,CACjE38F,OAAQA,EACR80F,aAAcA,IAEhB,OAAOvqB,GAAOkO,EAAMqjB,EAAW,CAC7B97F,OAAQA,EACR80F,aAAcA,GAElB,CCzGA,IAAI,GAAuB,CACzBzG,iBAAkB,CAChBC,IAAK,sBACLzjD,MAAO,+BAET0jD,SAAU,CACRD,IAAK,YACLzjD,MAAO,sBAET2jD,YAAa,cACbC,iBAAkB,CAChBH,IAAK,qBACLzjD,MAAO,8BAET6jD,SAAU,CACRJ,IAAK,WACLzjD,MAAO,qBAET8jD,YAAa,CACXL,IAAK,kBACLzjD,MAAO,4BAET+jD,OAAQ,CACNN,IAAK,UACLzjD,MAAO,oBAETgkD,MAAO,CACLP,IAAK,SACLzjD,MAAO,mBAETikD,YAAa,CACXR,IAAK,oBACLzjD,MAAO,8BAETkkD,OAAQ,CACNT,IAAK,YACLzjD,MAAO,sBAETmkD,aAAc,CACZV,IAAK,iBACLzjD,MAAO,0BAETokD,QAAS,CACPX,IAAK,SACLzjD,MAAO,kBAETqkD,YAAa,CACXZ,IAAK,eACLzjD,MAAO,yBAETskD,OAAQ,CACNb,IAAK,OACLzjD,MAAO,iBAETukD,WAAY,CACVd,IAAK,eACLzjD,MAAO,yBAETwkD,aAAc,CACZf,IAAK,eACLzjD,MAAO,0BAIP,GAAiB,SAAUnsJ,EAAOg9E,EAAOnvE,GAC3C,IAAIrE,EACA00M,EAAO,GAAqBl+M,GAUhC,OAPEwJ,EADkB,kBAAT00M,EACAA,EACU,IAAVlhI,EACAkhI,EAAKtO,IAELsO,EAAK/xD,MAAMhrJ,QAAQ,YAAayK,OAAOoxE,IAGlC,OAAZnvE,QAAgC,IAAZA,GAAsBA,EAAQijM,UAChDjjM,EAAQkjM,YAAcljM,EAAQkjM,WAAa,EACtC,QAAUvnM,EAEV,UAAYA,EAIhBA,CACT,EAEA,MCtFI,GAAc,CAChB4nM,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,WAEL,GAAc,CAChBH,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAEL,GAAkB,CACpBH,KAAM,wBACNC,KAAM,wBACNC,OAAQ,qBACRC,MAAO,sBAEL,GAAa,CACfxX,KAAMiX,GAAkB,CACtBE,QAAS,GACTD,aAAc,SAEhBU,KAAMX,GAAkB,CACtBE,QAAS,GACTD,aAAc,SAEhBW,SAAUZ,GAAkB,CAC1BE,QAAS,GACTD,aAAc,UAGlB,MCjCI,GAAuB,CACzBa,SAAU,qBACVC,UAAW,aACXC,MAAO,oBACPC,SAAU,gBACVC,SAAU,sBACV/lD,MAAO,KAGL,GAAiB,SAAUnsJ,EAAOoyM,EAAOC,EAAWC,GACtD,OAAO,GAAqBtyM,EAC9B,EAEA,MCZI,GAAY,CACdizM,OAAQ,CAAC,WAAY,YACrBC,YAAa,CAAC,WAAY,YAC1BC,KAAM,CAAC,qBAAsB,uBAE3B,GAAgB,CAClBF,OAAQ,CAAC,KAAM,KAAM,KAAM,MAC3BC,YAAa,CAAC,YAAa,aAAc,aAAc,cACvDC,KAAM,CAAC,gBAAiB,iBAAkB,iBAAkB,mBAE1D,GAAc,CAChBF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,QACzGC,KAAM,CAAC,UAAW,UAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,OAAQ,YAAa,UAAW,WAAY,aAElH,GAAY,CACdF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC1B,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5C2B,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC9DC,KAAM,CAAC,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,WAEpE,GAAkB,CACpBF,OAAQ,CACNO,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,OACTC,UAAW,QACXC,QAAS,OACTC,MAAO,QAETb,YAAa,CACXM,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,QACTC,UAAW,aACXC,QAAS,OACTC,MAAO,SAETZ,KAAM,CACJK,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,WACTC,UAAW,kBACXC,QAAS,UACTC,MAAO,aAIP,GAAgB,SAAUG,EAAarmM,GACzC,IAAIlL,EAASwY,OAAO+4L,GAChB4F,EAAmB,OAAZjsM,QAAgC,IAAZA,OAAqB,EAASA,EAAQisM,KACrE,GAAe,IAAXn3M,EAAc,MAAO,IACzB,IACIw7M,EADAC,EAAgB,CAAC,OAAQ,OAAQ,OAAQ,SAAU,UASvD,OALED,EADa,IAAXx7M,EACOm3M,GAAQsE,EAAc7xM,SAASutM,GAAQ,MAAQ,KAE/C,MAGJn3M,EAASw7M,CAClB,EAEI,GAAW,CACblK,cAAe,GACfI,IAAK9B,GAAgB,CACnBv0L,OAAQ,GACRizL,aAAc,SAEhBqD,QAAS/B,GAAgB,CACvBv0L,OAAQ,GACRizL,aAAc,OACd8B,iBAAkB,SAAUuB,GAC1B,OAAOA,EAAU,CACnB,IAEFC,MAAOhC,GAAgB,CACrBv0L,OAAQ,GACRizL,aAAc,SAEhBuD,IAAKjC,GAAgB,CACnBv0L,OAAQ,GACRizL,aAAc,SAEhBwD,UAAWlC,GAAgB,CACzBv0L,OAAQ,GACRizL,aAAc,UAGlB,MC/FI,GAA4B,8BAC5B,GAA4B,OAC5B,GAAmB,CACrBgC,OAAQ,kCACRC,YAAa,oDACbC,KAAM,6CAEJ,GAAmB,CACrBwC,IAAK,CAAC,OAAQ,SAEZ,GAAuB,CACzB1C,OAAQ,aACRC,YAAa,8BACbC,KAAM,iCAEJ,GAAuB,CACzBwC,IAAK,CAAC,KAAM,KAAM,KAAM,OAEtB,GAAqB,CACvB1C,OAAQ,eACRC,YAAa,sEACbC,KAAM,4FAEJ,GAAqB,CACvBF,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtF0C,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,MAAO,MAAO,MAAO,QAE7F,GAAmB,CACrB1C,OAAQ,aACR1B,MAAO,2BACP2B,YAAa,qCACbC,KAAM,2DAEJ,GAAmB,CACrBF,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD0C,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAEpD,GAAyB,CAC3B1C,OAAQ,iDACR0C,IAAK,sEAEH,GAAyB,CAC3BA,IAAK,CACHnC,GAAI,MACJC,GAAI,MACJC,SAAU,QACVC,KAAM,QACNC,QAAS,OACTC,UAAW,MACXC,QAAS,QACTC,MAAO,UAGP,GAAQ,CACVE,cAAemB,GAAoB,CACjCT,aAAc,GACdW,aAAc,GACdH,cAAe,SAAU90M,GACvB,OAAOuZ,SAASvZ,EAClB,IAEFg0M,IAAKK,GAAa,CAChBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBX,QAASI,GAAa,CACpBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,MACnBE,cAAe,SAAU7oM,GACvB,OAAOA,EAAQ,CACjB,IAEFioM,MAAOG,GAAa,CAClBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBT,IAAKE,GAAa,CAChBE,cAAe,GACfC,kBAAmB,OACnBG,cAAe,GACfC,kBAAmB,QAErBR,UAAWC,GAAa,CACtBE,cAAe,GACfC,kBAAmB,MACnBG,cAAe,GACfC,kBAAmB,SAGvB,MClFI,GAAS,CACXnzM,KAAM,KACN8uM,eAAgB,GAChBc,WAAY,GACZS,eAAgB,GAChBiC,SAAU,GACVltM,MAAO,GACP2G,QAAS,CACPuoM,aAAc,EAGdC,sBAAuB,IAG3B,M,sB1CdA,GAAepxK,GAAgB,CAC7B55B,MAAO,CACL9J,GAAI4Z,OACJ3Q,QAASoB,OACTtQ,IAAKsQ,OACL6hM,OAAQlsK,QACR88K,aAAczyM,QAGhBoqC,QAAS,CACP,iBAAMsoK,IACgB,IAAhB5+M,KAAK+tM,cACD1uM,KAAAA,KAAW,gBAAiB,CAAEwC,GAAI7B,KAAK6B,GAAIksM,QAAQ,GAE7D,EAEA,aAAMppJ,SACE3kD,KAAK4+M,cACP5+M,KAAKpE,MAAKoN,OAAOC,SAASX,KAAOtI,KAAKpE,IAC5C,EAEA,mBAAMsyM,SACEluM,KAAK4+M,cACP5+M,KAAKpE,KAAKoN,OAAOnN,KAAKmE,KAAKpE,IAAK,SACtC,GAEFilB,SAAU,CACRwtL,oBAAAA,GACE,OAAOoE,GAAe,IAAIrrM,KAAKpH,KAAK2+M,cAAyB,IAAIv3M,KAAQ,CAAEw6G,OAAQi9F,IACrF,K2CrCJ,MAAM,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U7C2BA,GAAet5K,GAAgB,CAE7B1qC,IAAAA,GACE,MAAO,CACL0xM,OAAQ,KACRxlI,gBAAgB,EAChBE,SAAU,GACVJ,cAAe,KACfqkI,QAAQ,EAEZ,EACA3zJ,WAAY,CACVunK,oBAAmBA,IAErBnoK,OAAAA,GAEE,MAAMwzD,EAAS5iG,SAAS6D,eAAe,WAClC++F,IAELnqG,KAAK6mE,cAAgB3sD,SAASiwF,EAAO3uC,aAAa,SAAW,IAC7Dx7D,KAAK0pL,UACP,EAEApzI,QAAS,CACPozI,OAAAA,GAEE,IAAIlhL,EAAW,MACiB,UAA5BQ,OAAOC,SAAST,WAAsBA,EAAW,MACrDxI,KAAKusM,OAAS,IAAIM,UAChBrkM,EAAW,MAAQQ,OAAOC,SAASR,KAAO,oBAAsBzI,KAAK6mE,cAAgB,KAEvF7mE,KAAKmrM,gBAELnrM,KAAKusM,OAAO/zF,QAAU,KACpBvrF,QAAQk4G,IAAI,qBAAqB,CAErC,EAEA,mBAAMgmE,GACJnrM,KAAKusM,OAAQO,UAAa9uM,IACxB,MAAMnD,EAAO6K,KAAKE,MAAM5H,EAAEnD,MACpB0X,EAAO1X,EAAK0X,KAGlB,GAAa,YAATA,GAAsBvS,KAAK+mE,eAAgB,OAE/C,MAAM6yH,EAAc/+L,EAAKosE,SAIzB,IAAI57B,EAAW,KACF,QAAT94B,GAAyC,IAAvBqnL,EAAYt4L,SAChC+pC,EAAWrrC,KAAKinE,SAASrpD,WAAW7d,GAAYA,EAAQ+zB,MAAQ8lK,EAAY,GAAG9lK,OAK/E9zB,KAAKinE,SADU,OAAb57B,IAAmC,IAAdA,EACP,IAAIrrC,KAAKinE,SAASjjE,MAAM,EAAGqnC,GAAWuuJ,EAAY,MAAO55L,KAAKinE,SAASjjE,MAAMqnC,EAAW,IACnF,IAAIuuJ,KAAgB55L,KAAKinE,UACnC,YAAT10D,IAAoBvS,KAAK+mE,gBAAiB,EAAG,CAErD,EAEAlrE,IAAAA,GACEmE,KAAKkrM,QAAS,CAChB,EACAjmJ,KAAAA,GACEjlD,KAAKkrM,QAAS,CAChB,GAGFrqL,SAAU,CACR4sL,cAAAA,GACE,OAAOztM,KAAKinE,SAASziE,QAAQzE,IAAaA,EAAQguM,SAAQzsM,MAC5D,K8CvGJ,MAAM,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,ICTYy9M,GDSZ,M,QETe,SAASC,GAAQrmM,GAG9B,OAAOqmM,GAAU,mBAAqB3oM,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUoB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBtC,QAAUsC,EAAE/O,cAAgByM,QAAUsC,IAAMtC,OAAOlX,UAAY,gBAAkBwZ,CACpH,EAAGqmM,GAAQrmM,EACb,CCPe,SAASxB,GAAYwzB,EAAG7gB,GACrC,GAAI,UAAYk1L,GAAQr0K,KAAOA,EAAG,OAAOA,EACzC,IAAI3sC,EAAI2sC,EAAEt0B,OAAOc,aACjB,QAAI,IAAWnZ,EAAG,CAChB,IAAIkI,EAAIlI,EAAEgH,KAAK2lC,EAAG7gB,GAAK,WACvB,GAAI,UAAYk1L,GAAQ94M,GAAI,OAAOA,EACnC,MAAM,IAAI9F,UAAU,+CACtB,CACA,OAAQ,WAAa0pB,EAAI5d,OAASuP,QAAQkvB,EAC5C,CCRe,SAASl2B,GAAck2B,GACpC,IAAIzkC,EAAIiR,GAAYwzB,EAAG,UACvB,MAAO,UAAYq0K,GAAQ94M,GAAKA,EAAIgG,OAAOhG,EAC7C,CCJe,SAAS+4M,GAAgB10M,EAAK3M,EAAK+C,GAYhD,OAXA/C,EAAM6W,GAAc7W,GAChBA,KAAO2M,EACTjG,OAAO2I,eAAe1C,EAAK3M,EAAK,CAC9B+C,MAAOA,EACPoN,YAAY,EACZC,cAAc,EACdd,UAAU,IAGZ3C,EAAI3M,GAAO+C,EAEN4J,CACT,EJdA,SAAYw0M,GACRA,EAAA,wBACAA,EAAA,iBACAA,EAAA,qBACAA,EAAA,iBACAA,EAAA,yBACAA,EAAA,qBACAA,EAAA,kBACD,EARH,CAAYA,KAAAA,GAAW,KKAvB,MAAMG,IAAe,EACRC,GAAS,CACpBC,MAAOA,IAAIp5M,KACJk5M,IACLjyL,QAAQmyL,SAASp5M,EAAK,EAExB3D,MAAOA,IAAI2D,KACTinB,QAAQ5qB,SAAS2D,EAAK,GCFpB88G,GAAOA,OACb,MAAMu8F,GAcJz1M,WAAAA,CAAYi2H,EAA0By/E,GAAqCL,GAAA,uBAAAA,GAAA,iCAX3EA,GAAA,uBAAAA,GAAA,sBAAAA,GAAA,wBAAAA,GAAA,oBAAAA,GAAA,+BAAAA,GAAA,4BAAAA,GAAA,0BAAAA,GAAA,6BAAAA,GAAA,oBAAAA,GAAA,yBAYEj/M,KAAKu/M,QAAUvuM,KAAKqG,SAASpX,SAAS,IAAI4rG,UAAU,EAAG,IACvD7rG,KAAK6/H,OAASA,EACd7/H,KAAKs/M,kBAAoBA,EACzBt/M,KAAKwzF,KAAOxzF,KAAKs/M,kBAAkB9rH,OAAQ,EAC3CxzF,KAAKw9H,SAAWx9H,KAAKs/M,kBAAkB9hF,UAAYqC,EAAO1xH,QAAQqvH,WAAY,EAC9Ex9H,KAAKw/M,KAAO3/E,EAAO1xH,QAAQqxM,OAAQ,EAEnCx/M,KAAKy/M,cAAgBnkM,WAAWpP,OAAOlM,KAAKs/M,kBAAkBI,cAAgB,IAE9E1/M,KAAK2/M,gBAAkB,KACvB3/M,KAAK4/M,aAAe,KACpB5/M,KAAK6/M,WAAad,GAAYe,QAC9B9/M,KAAKu/H,WAAY,EAEjBv/H,KAAKg+C,OACP,CAEQA,KAAAA,GAIN,GAHAh+C,KAAK+0B,SACL/0B,KAAK4/M,aAAer4M,SAAS80C,cAAc,iBAAiBr8C,KAAKu/M,kBAE5Dv/M,KAAK4/M,aACR,OAAOT,GAAOC,MAAM,2BAItBrvL,YAAW,KACT/vB,KAAK+/M,kBAAkB,CAAEviF,SAAUx9H,KAAKw9H,SAAUhqC,KAAMxzF,KAAKwzF,MAAO,GACnE,GAGHvmE,QAAQk4G,IAAI,SACZl4G,QAAQk4G,IAAInlI,KAAK4/M,aAAc5/M,KAAKw9H,UAEpCx9H,KAAK4/M,aAAa1hN,iBAAiB,OAAQ8B,KAAKggN,cAAcrhN,KAAKqB,KAAM++M,GAAYkB,UAAU,GAC/FjgN,KAAK4/M,aAAa1hN,iBAAiB,QAAS8B,KAAKggN,cAAcrhN,KAAKqB,KAAM++M,GAAYmB,QAAQ,GAC9FlgN,KAAK4/M,aAAa1hN,iBAAiB,UAAW8B,KAAKmgN,UAAUxhN,KAAKqB,OAAO,GACzEA,KAAK4/M,aAAa1hN,iBAAiB,aAAc8B,KAAK+/H,aAAaphI,KAAKqB,OAAO,GAC/EA,KAAK4/M,aAAa1hN,iBAAiB,aAAc8B,KAAKogN,QAAQzhN,KAAKqB,OAAO,GAC1EA,KAAK4/M,aAAa1hN,iBAAiB,iBAAkB8B,KAAKggN,cAAcrhN,KAAKqB,KAAM++M,GAAYsB,YAAY,GAE3GrgN,KAAK4/M,aAAa1hN,iBAAiB,QAAS8B,KAAKggN,cAAcrhN,KAAKqB,KAAM++M,GAAYuB,QAAQ,GAC9FtgN,KAAK4/M,aAAa1hN,iBAAiB,UAAW8B,KAAKggN,cAAcrhN,KAAKqB,KAAM++M,GAAYwB,YAAY,EACtG,CAEQH,OAAAA,GACNnzL,QAAQk4G,IAAI,SACZg6E,GAAOC,MAAMp/M,KAAKu/M,QAAS,eAC3Bv/M,KAAKwgN,OAAO,GACZxgN,KAAK6/H,OAAOugF,SACd,CAEQD,SAAAA,GACNhB,GAAOC,MAAMp/M,KAAKu/M,QAAS,iBACtBv/M,KAAKwzF,MAGVxzF,KAAK6/H,OAAOE,aAAa//H,KAAMA,KAAKygN,gBACtC,CAEQ1gF,YAAAA,GACD//H,KAAKwzF,MAGVxzF,KAAK6/H,OAAOE,aAAa//H,KAAMA,KAAKygN,gBACtC,CAEQT,aAAAA,CAAc1tM,GACpB2a,QAAQk4G,IAAI,kBAAmB7yH,GAC/B6sM,GAAOC,MAAMp/M,KAAKu/M,QAAS,oBAAqBjtM,GAChDtS,KAAK6/M,WAAavtM,EAElB,MAAMouM,EAAoB,CACxB3B,GAAYwB,UACZxB,GAAYkB,QACZlB,GAAYmB,MACZnB,GAAYuB,MACZvB,GAAYsB,YAGV/tM,IAAUysM,GAAYkB,UACxBjgN,KAAKu/H,WAAY,EACZv/H,KAAKwzF,SAKRlhF,IAAUysM,GAAYmB,QACxBlgN,KAAKu/H,WAAY,EACZv/H,KAAKwzF,QAKRktH,EAAkB7zM,SAASyF,KAC7B2a,QAAQk4G,IAAI,WACZnlI,KAAK6/H,OAAO8gF,YAAYruM,EAAOtS,MAEnC,CAEQ+0B,MAAAA,GAIN,GAHA9H,QAAQk4G,IAAI,UAEZnlI,KAAK2/M,gBAAkBp4M,SAAS80C,cAAcr8C,KAAKs/M,kBAAkBz9M,KAChE7B,KAAK2/M,gBACR,OAAOR,GAAOC,MAAM,iBAAkBp/M,KAAKs/M,kBAAkBz9M,IAE/D7B,KAAK2/M,gBAAgBl0M,UAAY,mDAENzL,KAAKu/M,gQAOXv/M,KAAKs/M,kBAAkBsB,sWAW5C5gN,KAAK6gN,QAAU73M,OAAO63M,QAAQ,gBAAgB7gN,KAAKu/M,WACnDv/M,KAAK6gN,QAAQrjF,UAAS,EAExB,CAEQuiF,iBAAAA,CAAkB5xM,QACC3Q,IAArB2Q,EAAQqvH,UACVx9H,KAAK8gN,YAAY3yM,EAAQqvH,UAC3Bx9H,KAAK+gN,QAAQ5yM,EAAQqlF,KACvB,CAEOwtH,KAAAA,CAAMC,GACX,IAAKjhN,KAAK4/M,eAAiBqB,EAAYrB,aAAc,OACrD,MAAMsB,EAAQlhN,KAAK4/M,aAAajpF,cAC1BwqF,EAAQF,EAAYrB,aAAajpF,cACjCyqF,EAAUF,EAAOnmL,WACjBsmL,EAAUF,EAAOpmL,WAMvB,IAAKqmL,IAAYC,EAAS,MAAM,IAAI/+M,MAAM,yBAE1C,MAAMg/M,EAAWJ,EAAOp+J,cAAgBq+J,EAAQD,EAAQA,EAAOp+J,YAC/Du+J,EAAQ1tJ,aAAautJ,EAAQC,GAC7BC,EAAQztJ,aAAawtJ,EAAQG,GAE7B,MAAMC,EAAevhN,KAAKw9H,SACpBgkF,EAAWxhN,KAAKwzF,KACtBxzF,KAAK+/M,kBAAkB,CAAEviF,SAAUyjF,EAAYzjF,SAAUhqC,KAAMytH,EAAYztH,OAC3EytH,EAAYlB,kBAAkB,CAAEviF,SAAU+jF,EAAc/tH,KAAMguH,GAMhE,CAQO,UAAMrhF,GACNngI,KAAK4/M,cACN5/M,KAAK6/M,aAAed,GAAYkB,eAC9BjgN,KAAK4/M,aAAaz/E,OAAOrmH,MAAMgpG,GACvC,CAEO,WAAMod,GACNlgI,KAAK4/M,cACN5/M,KAAK6/M,aAAed,GAAYmB,aAC9BlgN,KAAK4/M,aAAa1/E,OAC1B,CAEO3gH,IAAAA,GACAvf,KAAK4/M,eACV5/M,KAAK4/M,aAAa1/E,QAClBlgI,KAAKwgN,OAAOxgN,KAAKyhN,cAAgB,IACnC,CAEOX,WAAAA,CAAYtjF,GACZx9H,KAAK4/M,eACV3yL,QAAQk4G,IAAInlI,KAAK6gN,SAEjB5zL,QAAQk4G,IAAI,eAAgB3H,GAC5Bx9H,KAAK6gN,QAAQrjF,SAASA,GAGtBx9H,KAAKw9H,SAAWA,EAClB,CAEOujF,OAAAA,CAAQvtH,GACbxzF,KAAKwzF,KAAOA,CACd,CAEOgtH,MAAAA,CAAOvO,GACZ,GAAKjyM,KAAK4/M,aAAV,CAIA,GAHA3N,EAAO32L,WAAW22L,EAAKhyM,YACvBgyM,GAAejyM,KAAKy/M,cAEhBxN,GAAQjyM,KAAKyhN,cAIf,OAHAzhN,KAAK4/M,aAAax/E,YAAcpgI,KAAKyhN,cAAgB,IACrDtC,GAAOC,MAAM,8CACbp/M,KAAKkgI,QAAQ3hI,KAAKukH,IAIpBq8F,GAAOC,MAAM,gBAAiBnN,GAC9BjyM,KAAK4/M,aAAax/E,YAAc6xE,CAZF,CAahC,CAEOwP,WAAAA,GACL,OAAQzhN,KAAK4/M,cAAc/qJ,UAAY,CACzC,CAEO6sJ,aAAAA,GACL,OAAO1hN,KAAKyhN,cAAgBzhN,KAAKy/M,aACnC,CAEOkC,cAAAA,GACL,OAAQ3hN,KAAK4/M,cAAcx/E,aAAe,CAC5C,CAEOqgF,aAAAA,GACL,MAAMxO,EAAOjyM,KAAK2hN,iBAAmB3hN,KAAKy/M,cAC1C,OAAOzuM,KAAKuF,IAAI07L,EAAM,EACxB,CAEO2P,OAAAA,GACL,MAAM1yL,EAAOle,KAAKy1G,IAAIzmH,KAAK2hN,iBAAmB3hN,KAAKyhN,eACnD,OAAOvyL,EAAO,EAEhB,EAGF,UCrQA,MAAM2yL,GAAc,CAClB,CAAC9C,GAAYe,SAAU,CAACf,GAAY+C,QACpC,CAAC/C,GAAY+C,QAAS,CAAC/C,GAAYkB,SACnC,CAAClB,GAAYkB,SAAU,CAAClB,GAAYmB,MAAOnB,GAAYuB,OACvD,CAACvB,GAAYmB,OAAQ,CAACnB,GAAYkB,QAASlB,GAAYuB,OACvD,CAACvB,GAAYuB,OAAQ,CAACvB,GAAYkB,SAElC,CAAClB,GAAYwB,WAAY,GACzB,CAACxB,GAAYsB,WAAY,IAGrB0B,GAAeA,CAACC,EAA2BC,KAC/C,MAAMC,EAA2BL,GAAYG,GAC7C,QAAKE,GAIEA,EAAUr1M,SAASo1M,EAAU,EAItC,MAAME,GAQJv4M,WAAAA,CAAYuE,GAAgC8wM,GAAA,uBAAAA,GAAA,0BAAAA,GAAA,oBALP,IAAEA,GAAA,0BAAAA,GAAA,qBAAAA,GAAA,2BAMrCj/M,KAAKmO,QAAU,CACbqvH,SAAUrvH,EAAQqvH,WAAY,EAC9BgiF,KAAMrxM,EAAQqxM,OAAQ,EACtB4C,KAAMj0M,EAAQi0M,MAAQ,GACtBC,aAAcl0M,EAAQk0M,cAAgB,GACtCtmK,SAAU,gDAGZ/7C,KAAKsS,MAAQysM,GAAYe,QACzB9/M,KAAKsiN,WAAa,EAElBtiN,KAAKuiN,WAAa,KAElBviN,KAAKqiN,aAAe,GACpBriN,KAAKogI,YAAc,CACrB,CAEOpiF,KAAAA,GACLh+C,KAAK+0B,SACL/0B,KAAKwiN,gBAAgBxiN,KAAKmO,QAAQk0M,aACpC,CAEQttL,MAAAA,GACN,MAAM,SAAEgnB,EAAQ,KAAEqmK,GAASpiN,KAAKmO,QAChC,IAAKi0M,EACH,OAEF,MAAMK,EAASl7M,SAAS80C,cAAc+lK,GACtC,IAAKK,EACH,OAAOtD,GAAO98M,MAAM,mBAAoB+/M,GAG1CK,EAAOh3M,UAAYswC,GAAY,GAC/B/7C,KAAKuiN,WAAah7M,SAAS80C,cAAc,+BAC3C,CAEO,iBAAMskK,CAAYruM,EAAoB2uM,GAC3C,GAAI3uM,IAAUysM,GAAYwB,UAA1B,CAIA,GAAIjuM,IAAUysM,GAAYkB,QAExB,OADAhzL,QAAQk4G,IAAI,uBACLnlI,KAAKmgI,OAEd,GAAI7tH,IAAUysM,GAAYmB,MAAO,CAC/B,GAAIe,EAAYW,UACd,OAEF,OAAO5hN,KAAKkgI,O,CAEd,GAAI5tH,IAAUysM,GAAYuB,MAAO,CAE/B,MAAMoC,EAAkB1iN,KAAKqiN,aAAah4G,MAAMs4G,GACvCA,EAAGnvH,OAEZ,GAAIkvH,GAAmBA,IAAoBzB,EACzC,aAGIjhN,KAAK4iN,YAAY7D,GAAYuB,OAAO,KACpCtgN,KAAKmO,QAAQqxM,MACfx/M,KAAKwgN,OAAO,E,IAIdluM,IAAUysM,GAAYsB,WACpBrgN,KAAKsS,QAAUysM,GAAYuB,OACzBtgN,KAAKmO,QAAQqxM,YACTx/M,KAAKmgI,M,CAInB,CAEQ,iBAAMyiF,CAAYtwM,EAAoBuwM,EAAkEC,GAC9G,GAAIf,GAAa/hN,KAAKsS,MAAOA,GAAQ,CACnC,MAAMywM,EAAW/iN,KAAKsS,MACtBtS,KAAKsS,MAAQA,EACTuwM,SACIA,EAAQ7iN,KAAKsS,MAAOywM,GAE5B5D,GAAOC,MAAM,qBAAsB9sM,E,MAE/BwwM,SACIA,EAAK9iN,KAAKsS,MAAOA,GAEzB6sM,GAAO98M,MAAM,yBAA0BrC,KAAKsS,MAAOA,EAEvD,CAEO,aAAM8tM,GACXpgN,KAAKsiN,aACDtiN,KAAKsiN,aAAetiN,KAAKqiN,aAAa/gN,SAC1C2rB,QAAQk4G,IAAI,gBACNnlI,KAAK4iN,YAAY7D,GAAY+C,QACrC,CAEO/hF,YAAAA,CAAakhF,EAA0BhP,GAC5C,MAAM/iL,EAAOle,KAAKy1G,IAAIzmH,KAAKogI,YAAc6xE,GACrC/iL,EAAO,IACTlvB,KAAKwgN,OAAOvO,GAEdjyM,KAAKogI,YAAc6xE,EACnBjyM,KAAKgjN,gBACP,CAEQA,cAAAA,GACN,MAAMN,EAAkB1iN,KAAKqiN,aAAah4G,MAAMs4G,GACvCA,EAAGnvH,OAGPkvH,GACL1iN,KAAKqiN,aAAa3kN,SAAQilN,IACpBA,IAAOD,IACPC,EAAGf,YACJc,EAAgBnjF,YAAcojF,EAAGpjF,WAClCojF,EAAGxiF,OAAOrmH,OAAM,UAId4oM,EAAgBnjF,WAAaojF,EAAGpjF,WAClCojF,EAAGziF,QAAQpmH,OAAM,U,GAKvB,CAQO0oM,eAAAA,CAAgBH,GAChBA,GACLA,EAAa3kN,SAAQujN,IACnBjhN,KAAKijN,eAAehC,EAAY,GAEpC,CAEOgC,cAAAA,CAAehC,GACpB,MAAMiC,EAAgB,IAAI7D,GAAYr/M,KAAMihN,GACvCiC,EAActD,cACnB5/M,KAAKqiN,aAAahhN,KAAK6hN,EACzB,CAEO,UAAM/iF,GACXlzG,QAAQk4G,IAAI,cACNnlI,KAAK4iN,YAAY7D,GAAYkB,SAAS/nG,UAC1Cl4G,KAAKwgN,OAAOxgN,KAAKogI,mBACX3lI,QAAQkF,IAAIK,KAAKqiN,aAAa9jM,KAAI25F,UAClCl4G,KAAKogI,YAAcgoD,EAAMs5B,uBACrBt5B,EAAMjoD,M,IAEb,GAEP,CAEO,WAAMD,SACLlgI,KAAK4iN,YAAY7D,GAAYmB,OAAOhoG,gBAClCz9G,QAAQkF,IAAIK,KAAKqiN,aAAa9jM,KAAI25F,gBAChCkwE,EAAMloD,OAAO,IAClB,GAEP,CAEO,UAAM3gH,SACLvf,KAAK4iN,YAAY7D,GAAYmB,OAAOhoG,gBAClCz9G,QAAQkF,IAAIK,KAAKqiN,aAAa9jM,KAAI25F,gBAChCkwE,EAAM7oK,MAAM,IACjB,GAEP,CAEOihM,MAAAA,CAAOvO,GACZjyM,KAAKogI,YAAc6xE,EACnBjyM,KAAKqiN,aAAa3kN,SAAQ0qL,IACxBA,EAAMo4B,OAAOvO,EAAK,GAEtB,CAEOkR,SAAAA,CAAUC,EAAgBC,GAC/B,GAAID,IAAWC,EAAQ,OACvBrjN,KAAKqiN,aAAae,GAAQpC,MAAMhhN,KAAKqiN,aAAagB,IAClD,MAAM7mM,EAAMxc,KAAKqiN,aAAae,GAC9BpjN,KAAKqiN,aAAae,GAAUpjN,KAAKqiN,aAAagB,GAC9CrjN,KAAKqiN,aAAagB,GAAU7mM,CAC9B,EAGF,UChOA,MAAMgqD,GAAa,CAAE7pD,MAAO,aACtBglL,GAAa,CAAE9/L,GAAI,cACnB+/L,GAAa,CAAE//L,GAAI,qBACnBigM,GAAa,CAAC,KAAM,WACpBC,GAAa,CAAEplL,MAAO,YACtBkjL,GAAa,CAAEljL,MAAO,QAO5B,OAA4B2mM,GAAiB,CAC3CrxJ,OAAQ,iBACRrvB,KAAAA,CAAM2gL,GCZR,MAAMC,EAAMz5L,GAAI,CAAC,UAAW,UAAW,YAEjC05L,EAAkB,IAAItB,GAAgB,CAC1C3kF,UAAU,EACVgiF,MAAM,EACN6C,aAAc,CACZ,CACExgN,GAAI,WACJ27H,UAAU,EACVhqC,MAAM,EACNotH,WACE,iHAEJ,CACE/+M,GAAI,WAEJ++M,WACE,iHAEJ,CACE/+M,GAAI,WACJ++M,WAAY,wGAEd,CACE/+M,GAAI,WACJ++M,WACE,qHAqBR,SAAS8C,IAGPz2L,QAAQk4G,IAAI,yBACZ,MAAMw+E,EAAqBp8M,SAAS6D,eAAe,cAC7Cw4M,EAAkBD,GAAoBvuB,aAEtCyuB,EAAmBt8M,SAAS6D,eAAe,qBAEjD,IAAI04M,EAAwBF,EACxB56M,OAAOqzH,WAAa,OACtBynF,EAAwBF,EAAkB,GAG5C32L,QAAQk4G,IAAI0+E,EAAkBC,GAE9BD,EAAkBhnM,MAAMk0D,OAAS,GAAG+yI,KACtC,CAEA5rG,eAAe6rG,UACPN,EAAgBtjF,MACxB,CAEAjoB,eAAe8rG,UACPP,EAAgBvjF,OACxB,CAEA,SAAS+jF,IAEP,MAAMpiN,EAAK,SAASmP,KAAKqG,SAASpX,SAAS,IAAI4rG,UAAU,EAAG,KAC5D23G,EAAI7iN,MAAMU,KAAKQ,GACf8rB,IAAS,KAEP81L,EAAgBR,eAAe,CAC7BphN,GAAI,IAAIA,IACR++M,WACE,kHACF,GAEN,CAEA1oG,eAAevzD,EAAQ/3C,GACrB62M,EAAgBN,UAAU,EAAGv2M,EAC/B,CAEAsrG,eAAeq6E,EAASv0L,GACtB,MAAM2C,EAAS3C,EAAE6F,OAA4BlD,YACvC8iN,EAAgBjD,OAAOllM,WAAW3a,GAC1C,CDgBA,OChFA6gC,IAAU,KACRiiL,EAAgBzlK,QAChB,MAAMkmK,EAAY38M,SAAS6D,eAAe,cAAcixC,cAAc,SAEtE6nK,EAAUhmN,iBAAiB,cAAc,KAGnCgmN,EAAU9nN,YAAc,GAC1BsnN,G,IAIJ16M,OAAO9K,iBAAiB,SAAUwlN,EAAsB,IDoEnD,CAAC3iK,EAAU0lB,KACRE,KAAcC,GAAoB,MAAO,KAAM,CACrDwmI,GAAoB,MAAO5mI,GAAY,CACrC4mI,GAAoB,MAAOzL,GAAY,EACpCh7H,KAAcC,GAAoB,MAAO,CACxCjqD,MAAO,MACP9a,GAAI,UACJjE,IAAK,EACL+mD,QAAS8hB,EAAO,KAAOA,EAAO,GAAMl4B,GAAiBoW,EAAQ,SAGjEyoJ,GAAoB,MAAOxL,GAAY,EACpCj7H,IAAW,GAAOC,GAAoBgnI,GAAW,KAAMC,GAAY2V,EAAI7iN,MAAMqD,MAAM,IAAI,CAACnC,EAAIqE,KACnFygE,KAAcC,GAAoB,MAAO,CAC/CjqD,MAAO,MACP9a,GAAIA,EACJjE,IAAKsI,EAAI,EACTy+C,QAASspJ,IAAgB1/J,GAAiBoW,EAAQz+C,EAAI,IAAK,CAAC,aAC3D,KAAM,EAAG47L,OACV,UAGRsL,GAAoB,MAAOrL,GAAY,CACrCqL,GAAoB,SAAU,CAAEzoJ,QAASs/J,GAAS,aAClD7W,GAAoB,SAAU,CAAEzoJ,QAASo/J,GAAU,QACnD3W,GAAoB,SAAU,CAAEzoJ,QAASq/J,GAAW,SACpD5W,GAAoB,MAAOvN,GAAY,CACrCuN,GAAoB,QAAS,CAC3B76L,KAAM,QACNiE,IAAK,IACLD,IAAK,MACL5V,MAAO,IACPgc,MAAO,SACP9a,GAAI,UACJgwE,QAAS0gH,GACR,KAAM,UAKjB,IEvJA,MAAM,GAAc,GAEpB,UCEAlzL,KAAAA,SAAe5B,eAAiB,cAChC4B,KAAAA,SAAe/B,eAAiB,YAChC+B,KAAAA,SAAehC,iBAAkB,EAE7BkK,SAAS6D,eAAe,SAC1BmuC,GAAU4qK,IAAenmK,MAAM,SAG7Bz2C,SAAS6D,eAAe,kBAC1BmuC,GAAU6qK,IAAmBpmK,MAAM,kBAGlCz2C,SAAS6D,eAAe,eACzBmuC,GAAU8qK,IAAgBrmK,MAAM,c","sources":["webpack://src/./node_modules/axios/index.js","webpack://src/./node_modules/axios/lib/adapters/xhr.js","webpack://src/./node_modules/axios/lib/axios.js","webpack://src/./node_modules/axios/lib/cancel/Cancel.js","webpack://src/./node_modules/axios/lib/cancel/CancelToken.js","webpack://src/./node_modules/axios/lib/cancel/isCancel.js","webpack://src/./node_modules/axios/lib/core/Axios.js","webpack://src/./node_modules/axios/lib/core/InterceptorManager.js","webpack://src/./node_modules/axios/lib/core/buildFullPath.js","webpack://src/./node_modules/axios/lib/core/createError.js","webpack://src/./node_modules/axios/lib/core/dispatchRequest.js","webpack://src/./node_modules/axios/lib/core/enhanceError.js","webpack://src/./node_modules/axios/lib/core/mergeConfig.js","webpack://src/./node_modules/axios/lib/core/settle.js","webpack://src/./node_modules/axios/lib/core/transformData.js","webpack://src/./node_modules/axios/lib/defaults.js","webpack://src/./node_modules/axios/lib/helpers/bind.js","webpack://src/./node_modules/axios/lib/helpers/buildURL.js","webpack://src/./node_modules/axios/lib/helpers/combineURLs.js","webpack://src/./node_modules/axios/lib/helpers/cookies.js","webpack://src/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://src/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://src/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://src/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://src/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://src/./node_modules/axios/lib/helpers/spread.js","webpack://src/./node_modules/axios/lib/utils.js","webpack://src/./js/compatibility.ts","webpack://src/./node_modules/vue-loader/dist/exportHelper.js","webpack://src/./node_modules/core-js/internals/a-callable.js","webpack://src/./node_modules/core-js/internals/an-object.js","webpack://src/./node_modules/core-js/internals/array-includes.js","webpack://src/./node_modules/core-js/internals/array-set-length.js","webpack://src/./node_modules/core-js/internals/classof-raw.js","webpack://src/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://src/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://src/./node_modules/core-js/internals/create-property-descriptor.js","webpack://src/./node_modules/core-js/internals/define-built-in.js","webpack://src/./node_modules/core-js/internals/define-global-property.js","webpack://src/./node_modules/core-js/internals/descriptors.js","webpack://src/./node_modules/core-js/internals/document-create-element.js","webpack://src/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://src/./node_modules/core-js/internals/engine-user-agent.js","webpack://src/./node_modules/core-js/internals/engine-v8-version.js","webpack://src/./node_modules/core-js/internals/enum-bug-keys.js","webpack://src/./node_modules/core-js/internals/export.js","webpack://src/./node_modules/core-js/internals/fails.js","webpack://src/./node_modules/core-js/internals/function-bind-native.js","webpack://src/./node_modules/core-js/internals/function-call.js","webpack://src/./node_modules/core-js/internals/function-name.js","webpack://src/./node_modules/core-js/internals/function-uncurry-this.js","webpack://src/./node_modules/core-js/internals/get-built-in.js","webpack://src/./node_modules/core-js/internals/get-method.js","webpack://src/./node_modules/core-js/internals/global.js","webpack://src/./node_modules/core-js/internals/has-own-property.js","webpack://src/./node_modules/core-js/internals/hidden-keys.js","webpack://src/./node_modules/core-js/internals/ie8-dom-define.js","webpack://src/./node_modules/core-js/internals/indexed-object.js","webpack://src/./node_modules/core-js/internals/inspect-source.js","webpack://src/./node_modules/core-js/internals/internal-state.js","webpack://src/./node_modules/core-js/internals/is-array.js","webpack://src/./node_modules/core-js/internals/is-callable.js","webpack://src/./node_modules/core-js/internals/is-forced.js","webpack://src/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://src/./node_modules/core-js/internals/is-object.js","webpack://src/./node_modules/core-js/internals/is-pure.js","webpack://src/./node_modules/core-js/internals/is-symbol.js","webpack://src/./node_modules/core-js/internals/length-of-array-like.js","webpack://src/./node_modules/core-js/internals/make-built-in.js","webpack://src/./node_modules/core-js/internals/math-trunc.js","webpack://src/./node_modules/core-js/internals/object-define-property.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://src/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://src/./node_modules/core-js/internals/object-keys-internal.js","webpack://src/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://src/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://src/./node_modules/core-js/internals/own-keys.js","webpack://src/./node_modules/core-js/internals/require-object-coercible.js","webpack://src/./node_modules/core-js/internals/shared-key.js","webpack://src/./node_modules/core-js/internals/shared-store.js","webpack://src/./node_modules/core-js/internals/shared.js","webpack://src/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://src/./node_modules/core-js/internals/to-absolute-index.js","webpack://src/./node_modules/core-js/internals/to-indexed-object.js","webpack://src/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://src/./node_modules/core-js/internals/to-length.js","webpack://src/./node_modules/core-js/internals/to-object.js","webpack://src/./node_modules/core-js/internals/to-primitive.js","webpack://src/./node_modules/core-js/internals/to-property-key.js","webpack://src/./node_modules/core-js/internals/try-to-string.js","webpack://src/./node_modules/core-js/internals/uid.js","webpack://src/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://src/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://src/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://src/./node_modules/core-js/internals/well-known-symbol.js","webpack://src/./node_modules/core-js/modules/es.array.push.js","webpack://src/webpack/bootstrap","webpack://src/webpack/runtime/compat get default export","webpack://src/webpack/runtime/define property getters","webpack://src/webpack/runtime/global","webpack://src/webpack/runtime/hasOwnProperty shorthand","webpack://src/./node_modules/@vue/compat/dist/vue.runtime.esm-bundler.js","webpack://src/./js/components/ChatComponent.vue?e262","webpack://src/./js/components/ChatComponent.vue","webpack://src/./node_modules/vue-advanced-chat/dist/vue-advanced-chat.es.js","webpack://src/./js/components/ChatComponent.vue?ef42","webpack://src/./js/components/NotificationsBell.vue?641f","webpack://src/./js/components/NotificationsBell.vue","webpack://src/./js/components/sub/NotificationMessage.vue?cc67","webpack://src/./js/components/sub/NotificationMessage.vue","webpack://src/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://src/./node_modules/date-fns/esm/toDate/index.js","webpack://src/./node_modules/date-fns/esm/startOfDay/index.js","webpack://src/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://src/./node_modules/date-fns/esm/isDate/index.js","webpack://src/./node_modules/date-fns/esm/isValid/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://src/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://src/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://src/./node_modules/date-fns/esm/format/index.js","webpack://src/./node_modules/date-fns/esm/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/index.js","webpack://src/./js/components/sub/NotificationMessage.vue?4cf0","webpack://src/./js/components/NotificationsBell.vue?67bf","webpack://src/./js/video/constants.ts","webpack://src/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://src/./js/video/utils.ts","webpack://src/./js/video/VideoPlayer.ts","webpack://src/./js/video/SyncVideoPlayer.ts","webpack://src/./js/video/VideoComponent.vue?c30e","webpack://src/./js/video/VideoComponent.vue","webpack://src/./js/video/VideoComponent.vue?eef0","webpack://src/./js/main.ts"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request.onreadystatechange = function handleLoad() {\n      if (!request || request.readyState !== 4) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n    'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n  ];\n  var directMergeKeys = ['validateStatus'];\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  utils.forEach(directMergeKeys, function merge(prop) {\n    if (prop in config2) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys)\n    .concat(directMergeKeys);\n\n  var otherKeys = Object\n    .keys(config1)\n    .concat(Object.keys(config2))\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, mergeDeepProperties);\n\n  return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n  if (toString.call(val) !== '[object Object]') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM\n};\n","window.addEventListener(\"DOMContentLoaded\", () => {\n\n    const testVideo = document.createElement(\"video\");\n    if (testVideo.canPlayType) {\n        // Check for Webm support\n        const webm = \"\" !== testVideo.canPlayType('video/webm; codecs=\"vp8, vorbis\"');\n        if (!webm){\n            const container = document.getElementById(\"content\");\n            if(container){\n                const p = document.createElement(\"p\");\n                p.classList.add(\"warning\");\n                container.prepend(p);\n                p.innerHTML = `\n                    Votre navigateur n'est pas compatible avec le format video <abbr title=\"WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.\">WebM</abbr> des cours en direct.\n                    Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n                `;\n            }\n        }\n        \n    }\n});","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = global[TARGET] && global[TARGET].prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n","'use strict';\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.35.1',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  var len = toIntegerOrInfinity(argument);\n  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\n* @vue/compat v3.4.15\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n  const set = new Set(str.split(\",\"));\n  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n  const i = arr.indexOf(el);\n  if (i > -1) {\n    arr.splice(i, 1);\n  }\n};\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n  return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n  return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n  // the leading comma is intentional so empty string \"\" is also included\n  \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n  \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n  (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n  const s = str ? `on${capitalize(str)}` : ``;\n  return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n  for (let i = 0; i < fns.length; i++) {\n    fns[i](arg);\n  }\n};\nconst def = (obj, key, value) => {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    enumerable: false,\n    value\n  });\n};\nconst looseToNumber = (val) => {\n  const n = parseFloat(val);\n  return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n  const n = isString(val) ? Number(val) : NaN;\n  return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n  return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\n\nfunction normalizeStyle(value) {\n  if (isArray(value)) {\n    const res = {};\n    for (let i = 0; i < value.length; i++) {\n      const item = value[i];\n      const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n      if (normalized) {\n        for (const key in normalized) {\n          res[key] = normalized[key];\n        }\n      }\n    }\n    return res;\n  } else if (isString(value) || isObject(value)) {\n    return value;\n  }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n  const ret = {};\n  cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n    if (item) {\n      const tmp = item.split(propertyDelimiterRE);\n      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return ret;\n}\nfunction stringifyStyle(styles) {\n  let ret = \"\";\n  if (!styles || isString(styles)) {\n    return ret;\n  }\n  for (const key in styles) {\n    const value = styles[key];\n    const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n    if (isString(value) || typeof value === \"number\") {\n      ret += `${normalizedKey}:${value};`;\n    }\n  }\n  return ret;\n}\nfunction normalizeClass(value) {\n  let res = \"\";\n  if (isString(value)) {\n    res = value;\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      const normalized = normalizeClass(value[i]);\n      if (normalized) {\n        res += normalized + \" \";\n      }\n    }\n  } else if (isObject(value)) {\n    for (const name in value) {\n      if (value[name]) {\n        res += name + \" \";\n      }\n    }\n  }\n  return res.trim();\n}\nfunction normalizeProps(props) {\n  if (!props)\n    return null;\n  let { class: klass, style } = props;\n  if (klass && !isString(klass)) {\n    props.class = normalizeClass(klass);\n  }\n  if (style) {\n    props.style = normalizeStyle(style);\n  }\n  return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n  return !!value || value === \"\";\n}\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n  `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n  if (value == null) {\n    return false;\n  }\n  const type = typeof value;\n  return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nfunction looseCompareArrays(a, b) {\n  if (a.length !== b.length)\n    return false;\n  let equal = true;\n  for (let i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i]);\n  }\n  return equal;\n}\nfunction looseEqual(a, b) {\n  if (a === b)\n    return true;\n  let aValidType = isDate(a);\n  let bValidType = isDate(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n  }\n  aValidType = isSymbol(a);\n  bValidType = isSymbol(b);\n  if (aValidType || bValidType) {\n    return a === b;\n  }\n  aValidType = isArray(a);\n  bValidType = isArray(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n  }\n  aValidType = isObject(a);\n  bValidType = isObject(b);\n  if (aValidType || bValidType) {\n    if (!aValidType || !bValidType) {\n      return false;\n    }\n    const aKeysCount = Object.keys(a).length;\n    const bKeysCount = Object.keys(b).length;\n    if (aKeysCount !== bKeysCount) {\n      return false;\n    }\n    for (const key in a) {\n      const aHasKey = a.hasOwnProperty(key);\n      const bHasKey = b.hasOwnProperty(key);\n      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n  }\n  return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n  return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n  return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n  if (val && val.__v_isRef) {\n    return replacer(_key, val.value);\n  } else if (isMap(val)) {\n    return {\n      [`Map(${val.size})`]: [...val.entries()].reduce(\n        (entries, [key, val2], i) => {\n          entries[stringifySymbol(key, i) + \" =>\"] = val2;\n          return entries;\n        },\n        {}\n      )\n    };\n  } else if (isSet(val)) {\n    return {\n      [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n    };\n  } else if (isSymbol(val)) {\n    return stringifySymbol(val);\n  } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n    return String(val);\n  }\n  return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n  var _a;\n  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nfunction warn$2(msg, ...args) {\n  console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n  constructor(detached = false) {\n    this.detached = detached;\n    /**\n     * @internal\n     */\n    this._active = true;\n    /**\n     * @internal\n     */\n    this.effects = [];\n    /**\n     * @internal\n     */\n    this.cleanups = [];\n    this.parent = activeEffectScope;\n    if (!detached && activeEffectScope) {\n      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n        this\n      ) - 1;\n    }\n  }\n  get active() {\n    return this._active;\n  }\n  run(fn) {\n    if (this._active) {\n      const currentEffectScope = activeEffectScope;\n      try {\n        activeEffectScope = this;\n        return fn();\n      } finally {\n        activeEffectScope = currentEffectScope;\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(`cannot run an inactive effect scope.`);\n    }\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  on() {\n    activeEffectScope = this;\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  off() {\n    activeEffectScope = this.parent;\n  }\n  stop(fromParent) {\n    if (this._active) {\n      let i, l;\n      for (i = 0, l = this.effects.length; i < l; i++) {\n        this.effects[i].stop();\n      }\n      for (i = 0, l = this.cleanups.length; i < l; i++) {\n        this.cleanups[i]();\n      }\n      if (this.scopes) {\n        for (i = 0, l = this.scopes.length; i < l; i++) {\n          this.scopes[i].stop(true);\n        }\n      }\n      if (!this.detached && this.parent && !fromParent) {\n        const last = this.parent.scopes.pop();\n        if (last && last !== this) {\n          this.parent.scopes[this.index] = last;\n          last.index = this.index;\n        }\n      }\n      this.parent = void 0;\n      this._active = false;\n    }\n  }\n}\nfunction effectScope(detached) {\n  return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n  if (scope && scope.active) {\n    scope.effects.push(effect);\n  }\n}\nfunction getCurrentScope() {\n  return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n  if (activeEffectScope) {\n    activeEffectScope.cleanups.push(fn);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$2(\n      `onScopeDispose() is called when there is no active effect scope to be associated with.`\n    );\n  }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n  constructor(fn, trigger, scheduler, scope) {\n    this.fn = fn;\n    this.trigger = trigger;\n    this.scheduler = scheduler;\n    this.active = true;\n    this.deps = [];\n    /**\n     * @internal\n     */\n    this._dirtyLevel = 2;\n    /**\n     * @internal\n     */\n    this._trackId = 0;\n    /**\n     * @internal\n     */\n    this._runnings = 0;\n    /**\n     * @internal\n     */\n    this._shouldSchedule = false;\n    /**\n     * @internal\n     */\n    this._depsLength = 0;\n    recordEffectScope(this, scope);\n  }\n  get dirty() {\n    if (this._dirtyLevel === 1) {\n      pauseTracking();\n      for (let i = 0; i < this._depsLength; i++) {\n        const dep = this.deps[i];\n        if (dep.computed) {\n          triggerComputed(dep.computed);\n          if (this._dirtyLevel >= 2) {\n            break;\n          }\n        }\n      }\n      if (this._dirtyLevel < 2) {\n        this._dirtyLevel = 0;\n      }\n      resetTracking();\n    }\n    return this._dirtyLevel >= 2;\n  }\n  set dirty(v) {\n    this._dirtyLevel = v ? 2 : 0;\n  }\n  run() {\n    this._dirtyLevel = 0;\n    if (!this.active) {\n      return this.fn();\n    }\n    let lastShouldTrack = shouldTrack;\n    let lastEffect = activeEffect;\n    try {\n      shouldTrack = true;\n      activeEffect = this;\n      this._runnings++;\n      preCleanupEffect(this);\n      return this.fn();\n    } finally {\n      postCleanupEffect(this);\n      this._runnings--;\n      activeEffect = lastEffect;\n      shouldTrack = lastShouldTrack;\n    }\n  }\n  stop() {\n    var _a;\n    if (this.active) {\n      preCleanupEffect(this);\n      postCleanupEffect(this);\n      (_a = this.onStop) == null ? void 0 : _a.call(this);\n      this.active = false;\n    }\n  }\n}\nfunction triggerComputed(computed) {\n  return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n  effect2._trackId++;\n  effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n  if (effect2.deps && effect2.deps.length > effect2._depsLength) {\n    for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n      cleanupDepEffect(effect2.deps[i], effect2);\n    }\n    effect2.deps.length = effect2._depsLength;\n  }\n}\nfunction cleanupDepEffect(dep, effect2) {\n  const trackId = dep.get(effect2);\n  if (trackId !== void 0 && effect2._trackId !== trackId) {\n    dep.delete(effect2);\n    if (dep.size === 0) {\n      dep.cleanup();\n    }\n  }\n}\nfunction effect(fn, options) {\n  if (fn.effect instanceof ReactiveEffect) {\n    fn = fn.effect.fn;\n  }\n  const _effect = new ReactiveEffect(fn, NOOP, () => {\n    if (_effect.dirty) {\n      _effect.run();\n    }\n  });\n  if (options) {\n    extend(_effect, options);\n    if (options.scope)\n      recordEffectScope(_effect, options.scope);\n  }\n  if (!options || !options.lazy) {\n    _effect.run();\n  }\n  const runner = _effect.run.bind(_effect);\n  runner.effect = _effect;\n  return runner;\n}\nfunction stop(runner) {\n  runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = false;\n}\nfunction resetTracking() {\n  const last = trackStack.pop();\n  shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n  pauseScheduleStack++;\n}\nfunction resetScheduling() {\n  pauseScheduleStack--;\n  while (!pauseScheduleStack && queueEffectSchedulers.length) {\n    queueEffectSchedulers.shift()();\n  }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n  var _a;\n  if (dep.get(effect2) !== effect2._trackId) {\n    dep.set(effect2, effect2._trackId);\n    const oldDep = effect2.deps[effect2._depsLength];\n    if (oldDep !== dep) {\n      if (oldDep) {\n        cleanupDepEffect(oldDep, effect2);\n      }\n      effect2.deps[effect2._depsLength++] = dep;\n    } else {\n      effect2._depsLength++;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n    }\n  }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n  var _a;\n  pauseScheduling();\n  for (const effect2 of dep.keys()) {\n    if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {\n      const lastDirtyLevel = effect2._dirtyLevel;\n      effect2._dirtyLevel = dirtyLevel;\n      if (lastDirtyLevel === 0) {\n        effect2._shouldSchedule = true;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n        }\n        effect2.trigger();\n      }\n    }\n  }\n  scheduleEffects(dep);\n  resetScheduling();\n}\nfunction scheduleEffects(dep) {\n  for (const effect2 of dep.keys()) {\n    if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {\n      effect2._shouldSchedule = false;\n      queueEffectSchedulers.push(effect2.scheduler);\n    }\n  }\n}\n\nconst createDep = (cleanup, computed) => {\n  const dep = /* @__PURE__ */ new Map();\n  dep.cleanup = cleanup;\n  dep.computed = computed;\n  return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n  if (shouldTrack && activeEffect) {\n    let depsMap = targetMap.get(target);\n    if (!depsMap) {\n      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n    }\n    let dep = depsMap.get(key);\n    if (!dep) {\n      depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n    }\n    trackEffect(\n      activeEffect,\n      dep,\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target,\n        type,\n        key\n      } : void 0\n    );\n  }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n  const depsMap = targetMap.get(target);\n  if (!depsMap) {\n    return;\n  }\n  let deps = [];\n  if (type === \"clear\") {\n    deps = [...depsMap.values()];\n  } else if (key === \"length\" && isArray(target)) {\n    const newLength = Number(newValue);\n    depsMap.forEach((dep, key2) => {\n      if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n        deps.push(dep);\n      }\n    });\n  } else {\n    if (key !== void 0) {\n      deps.push(depsMap.get(key));\n    }\n    switch (type) {\n      case \"add\":\n        if (!isArray(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        } else if (isIntegerKey(key)) {\n          deps.push(depsMap.get(\"length\"));\n        }\n        break;\n      case \"delete\":\n        if (!isArray(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        }\n        break;\n      case \"set\":\n        if (isMap(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n        }\n        break;\n    }\n  }\n  pauseScheduling();\n  for (const dep of deps) {\n    if (dep) {\n      triggerEffects(\n        dep,\n        2,\n        !!(process.env.NODE_ENV !== \"production\") ? {\n          target,\n          type,\n          key,\n          newValue,\n          oldValue,\n          oldTarget\n        } : void 0\n      );\n    }\n  }\n  resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n  var _a;\n  return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n  const instrumentations = {};\n  [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      const arr = toRaw(this);\n      for (let i = 0, l = this.length; i < l; i++) {\n        track(arr, \"get\", i + \"\");\n      }\n      const res = arr[key](...args);\n      if (res === -1 || res === false) {\n        return arr[key](...args.map(toRaw));\n      } else {\n        return res;\n      }\n    };\n  });\n  [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      pauseTracking();\n      pauseScheduling();\n      const res = toRaw(this)[key].apply(this, args);\n      resetScheduling();\n      resetTracking();\n      return res;\n    };\n  });\n  return instrumentations;\n}\nfunction hasOwnProperty(key) {\n  const obj = toRaw(this);\n  track(obj, \"has\", key);\n  return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n  constructor(_isReadonly = false, _shallow = false) {\n    this._isReadonly = _isReadonly;\n    this._shallow = _shallow;\n  }\n  get(target, key, receiver) {\n    const isReadonly2 = this._isReadonly, shallow = this._shallow;\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_isShallow\") {\n      return shallow;\n    } else if (key === \"__v_raw\") {\n      if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n      // this means the reciever is a user proxy of the reactive proxy\n      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n        return target;\n      }\n      return;\n    }\n    const targetIsArray = isArray(target);\n    if (!isReadonly2) {\n      if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n        return Reflect.get(arrayInstrumentations, key, receiver);\n      }\n      if (key === \"hasOwnProperty\") {\n        return hasOwnProperty;\n      }\n    }\n    const res = Reflect.get(target, key, receiver);\n    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n      return res;\n    }\n    if (!isReadonly2) {\n      track(target, \"get\", key);\n    }\n    if (shallow) {\n      return res;\n    }\n    if (isRef(res)) {\n      return targetIsArray && isIntegerKey(key) ? res : res.value;\n    }\n    if (isObject(res)) {\n      return isReadonly2 ? readonly(res) : reactive(res);\n    }\n    return res;\n  }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n  constructor(shallow = false) {\n    super(false, shallow);\n  }\n  set(target, key, value, receiver) {\n    let oldValue = target[key];\n    if (!this._shallow) {\n      const isOldValueReadonly = isReadonly(oldValue);\n      if (!isShallow(value) && !isReadonly(value)) {\n        oldValue = toRaw(oldValue);\n        value = toRaw(value);\n      }\n      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n        if (isOldValueReadonly) {\n          return false;\n        } else {\n          oldValue.value = value;\n          return true;\n        }\n      }\n    }\n    const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n    const result = Reflect.set(target, key, value, receiver);\n    if (target === toRaw(receiver)) {\n      if (!hadKey) {\n        trigger(target, \"add\", key, value);\n      } else if (hasChanged(value, oldValue)) {\n        trigger(target, \"set\", key, value, oldValue);\n      }\n    }\n    return result;\n  }\n  deleteProperty(target, key) {\n    const hadKey = hasOwn(target, key);\n    const oldValue = target[key];\n    const result = Reflect.deleteProperty(target, key);\n    if (result && hadKey) {\n      trigger(target, \"delete\", key, void 0, oldValue);\n    }\n    return result;\n  }\n  has(target, key) {\n    const result = Reflect.has(target, key);\n    if (!isSymbol(key) || !builtInSymbols.has(key)) {\n      track(target, \"has\", key);\n    }\n    return result;\n  }\n  ownKeys(target) {\n    track(\n      target,\n      \"iterate\",\n      isArray(target) ? \"length\" : ITERATE_KEY\n    );\n    return Reflect.ownKeys(target);\n  }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n  constructor(shallow = false) {\n    super(true, shallow);\n  }\n  set(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(\n        `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n  deleteProperty(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(\n        `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n  true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n  target = target[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly) {\n    if (hasChanged(key, rawKey)) {\n      track(rawTarget, \"get\", key);\n    }\n    track(rawTarget, \"get\", rawKey);\n  }\n  const { has: has2 } = getProto(rawTarget);\n  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n  if (has2.call(rawTarget, key)) {\n    return wrap(target.get(key));\n  } else if (has2.call(rawTarget, rawKey)) {\n    return wrap(target.get(rawKey));\n  } else if (target !== rawTarget) {\n    target.get(key);\n  }\n}\nfunction has(key, isReadonly = false) {\n  const target = this[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly) {\n    if (hasChanged(key, rawKey)) {\n      track(rawTarget, \"has\", key);\n    }\n    track(rawTarget, \"has\", rawKey);\n  }\n  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n  target = target[\"__v_raw\"];\n  !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n  return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const proto = getProto(target);\n  const hadKey = proto.has.call(target, value);\n  if (!hadKey) {\n    target.add(value);\n    trigger(target, \"add\", value, value);\n  }\n  return this;\n}\nfunction set(key, value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get2.call(target, key);\n  target.set(key, value);\n  if (!hadKey) {\n    trigger(target, \"add\", key, value);\n  } else if (hasChanged(value, oldValue)) {\n    trigger(target, \"set\", key, value, oldValue);\n  }\n  return this;\n}\nfunction deleteEntry(key) {\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get2 ? get2.call(target, key) : void 0;\n  const result = target.delete(key);\n  if (hadKey) {\n    trigger(target, \"delete\", key, void 0, oldValue);\n  }\n  return result;\n}\nfunction clear() {\n  const target = toRaw(this);\n  const hadItems = target.size !== 0;\n  const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n  const result = target.clear();\n  if (hadItems) {\n    trigger(target, \"clear\", void 0, void 0, oldTarget);\n  }\n  return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n  return function forEach(callback, thisArg) {\n    const observed = this;\n    const target = observed[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n    return target.forEach((value, key) => {\n      return callback.call(thisArg, wrap(value), wrap(key), observed);\n    });\n  };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n  return function(...args) {\n    const target = this[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const targetIsMap = isMap(rawTarget);\n    const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n    const isKeyOnly = method === \"keys\" && targetIsMap;\n    const innerIterator = target[method](...args);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(\n      rawTarget,\n      \"iterate\",\n      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n    );\n    return {\n      // iterator protocol\n      next() {\n        const { value, done } = innerIterator.next();\n        return done ? { value, done } : {\n          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n          done\n        };\n      },\n      // iterable protocol\n      [Symbol.iterator]() {\n        return this;\n      }\n    };\n  };\n}\nfunction createReadonlyMethod(type) {\n  return function(...args) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n      console.warn(\n        `${capitalize(type)} operation ${key}failed: target is readonly.`,\n        toRaw(this)\n      );\n    }\n    return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n  };\n}\nfunction createInstrumentations() {\n  const mutableInstrumentations2 = {\n    get(key) {\n      return get(this, key);\n    },\n    get size() {\n      return size(this);\n    },\n    has,\n    add,\n    set,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, false)\n  };\n  const shallowInstrumentations2 = {\n    get(key) {\n      return get(this, key, false, true);\n    },\n    get size() {\n      return size(this);\n    },\n    has,\n    add,\n    set,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, true)\n  };\n  const readonlyInstrumentations2 = {\n    get(key) {\n      return get(this, key, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, false)\n  };\n  const shallowReadonlyInstrumentations2 = {\n    get(key) {\n      return get(this, key, true, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, true)\n  };\n  const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n  iteratorMethods.forEach((method) => {\n    mutableInstrumentations2[method] = createIterableMethod(\n      method,\n      false,\n      false\n    );\n    readonlyInstrumentations2[method] = createIterableMethod(\n      method,\n      true,\n      false\n    );\n    shallowInstrumentations2[method] = createIterableMethod(\n      method,\n      false,\n      true\n    );\n    shallowReadonlyInstrumentations2[method] = createIterableMethod(\n      method,\n      true,\n      true\n    );\n  });\n  return [\n    mutableInstrumentations2,\n    readonlyInstrumentations2,\n    shallowInstrumentations2,\n    shallowReadonlyInstrumentations2\n  ];\n}\nconst [\n  mutableInstrumentations,\n  readonlyInstrumentations,\n  shallowInstrumentations,\n  shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n  const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n  return (target, key, receiver) => {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly;\n    } else if (key === \"__v_raw\") {\n      return target;\n    }\n    return Reflect.get(\n      hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n      key,\n      receiver\n    );\n  };\n}\nconst mutableCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n  const rawKey = toRaw(key);\n  if (rawKey !== key && has2.call(target, rawKey)) {\n    const type = toRawType(target);\n    console.warn(\n      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n    );\n  }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n  switch (rawType) {\n    case \"Object\":\n    case \"Array\":\n      return 1 /* COMMON */;\n    case \"Map\":\n    case \"Set\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return 2 /* COLLECTION */;\n    default:\n      return 0 /* INVALID */;\n  }\n}\nfunction getTargetType(value) {\n  return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n  if (isReadonly(target)) {\n    return target;\n  }\n  return createReactiveObject(\n    target,\n    false,\n    mutableHandlers,\n    mutableCollectionHandlers,\n    reactiveMap\n  );\n}\nfunction shallowReactive(target) {\n  return createReactiveObject(\n    target,\n    false,\n    shallowReactiveHandlers,\n    shallowCollectionHandlers,\n    shallowReactiveMap\n  );\n}\nfunction readonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    readonlyHandlers,\n    readonlyCollectionHandlers,\n    readonlyMap\n  );\n}\nfunction shallowReadonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    shallowReadonlyHandlers,\n    shallowReadonlyCollectionHandlers,\n    shallowReadonlyMap\n  );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n  if (!isObject(target)) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      console.warn(`value cannot be made reactive: ${String(target)}`);\n    }\n    return target;\n  }\n  if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n    return target;\n  }\n  const existingProxy = proxyMap.get(target);\n  if (existingProxy) {\n    return existingProxy;\n  }\n  const targetType = getTargetType(target);\n  if (targetType === 0 /* INVALID */) {\n    return target;\n  }\n  const proxy = new Proxy(\n    target,\n    targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n  );\n  proxyMap.set(target, proxy);\n  return proxy;\n}\nfunction isReactive(value) {\n  if (isReadonly(value)) {\n    return isReactive(value[\"__v_raw\"]);\n  }\n  return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n  return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n  return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n  return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n  const raw = observed && observed[\"__v_raw\"];\n  return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n  def(value, \"__v_skip\", true);\n  return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nclass ComputedRefImpl {\n  constructor(getter, _setter, isReadonly, isSSR) {\n    this._setter = _setter;\n    this.dep = void 0;\n    this.__v_isRef = true;\n    this[\"__v_isReadonly\"] = false;\n    this.effect = new ReactiveEffect(\n      () => getter(this._value),\n      () => triggerRefValue(this, 1),\n      () => this.dep && scheduleEffects(this.dep)\n    );\n    this.effect.computed = this;\n    this.effect.active = this._cacheable = !isSSR;\n    this[\"__v_isReadonly\"] = isReadonly;\n  }\n  get value() {\n    const self = toRaw(this);\n    if (!self._cacheable || self.effect.dirty) {\n      if (hasChanged(self._value, self._value = self.effect.run())) {\n        triggerRefValue(self, 2);\n      }\n    }\n    trackRefValue(self);\n    if (self.effect._dirtyLevel >= 1) {\n      triggerRefValue(self, 1);\n    }\n    return self._value;\n  }\n  set value(newValue) {\n    this._setter(newValue);\n  }\n  // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n  get _dirty() {\n    return this.effect.dirty;\n  }\n  set _dirty(v) {\n    this.effect.dirty = v;\n  }\n  // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n  let getter;\n  let setter;\n  const onlyGetter = isFunction(getterOrOptions);\n  if (onlyGetter) {\n    getter = getterOrOptions;\n    setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n      console.warn(\"Write operation failed: computed value is readonly\");\n    } : NOOP;\n  } else {\n    getter = getterOrOptions.get;\n    setter = getterOrOptions.set;\n  }\n  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n  if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n    cRef.effect.onTrack = debugOptions.onTrack;\n    cRef.effect.onTrigger = debugOptions.onTrigger;\n  }\n  return cRef;\n}\n\nfunction trackRefValue(ref2) {\n  if (shouldTrack && activeEffect) {\n    ref2 = toRaw(ref2);\n    trackEffect(\n      activeEffect,\n      ref2.dep || (ref2.dep = createDep(\n        () => ref2.dep = void 0,\n        ref2 instanceof ComputedRefImpl ? ref2 : void 0\n      )),\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target: ref2,\n        type: \"get\",\n        key: \"value\"\n      } : void 0\n    );\n  }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 2, newVal) {\n  ref2 = toRaw(ref2);\n  const dep = ref2.dep;\n  if (dep) {\n    triggerEffects(\n      dep,\n      dirtyLevel,\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target: ref2,\n        type: \"set\",\n        key: \"value\",\n        newValue: newVal\n      } : void 0\n    );\n  }\n}\nfunction isRef(r) {\n  return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n  return createRef(value, false);\n}\nfunction shallowRef(value) {\n  return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n  if (isRef(rawValue)) {\n    return rawValue;\n  }\n  return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n  constructor(value, __v_isShallow) {\n    this.__v_isShallow = __v_isShallow;\n    this.dep = void 0;\n    this.__v_isRef = true;\n    this._rawValue = __v_isShallow ? value : toRaw(value);\n    this._value = __v_isShallow ? value : toReactive(value);\n  }\n  get value() {\n    trackRefValue(this);\n    return this._value;\n  }\n  set value(newVal) {\n    const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n    newVal = useDirectValue ? newVal : toRaw(newVal);\n    if (hasChanged(newVal, this._rawValue)) {\n      this._rawValue = newVal;\n      this._value = useDirectValue ? newVal : toReactive(newVal);\n      triggerRefValue(this, 2, newVal);\n    }\n  }\n}\nfunction triggerRef(ref2) {\n  triggerRefValue(ref2, 2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n  return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n  return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n  set: (target, key, value, receiver) => {\n    const oldValue = target[key];\n    if (isRef(oldValue) && !isRef(value)) {\n      oldValue.value = value;\n      return true;\n    } else {\n      return Reflect.set(target, key, value, receiver);\n    }\n  }\n};\nfunction proxyRefs(objectWithRefs) {\n  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n  constructor(factory) {\n    this.dep = void 0;\n    this.__v_isRef = true;\n    const { get, set } = factory(\n      () => trackRefValue(this),\n      () => triggerRefValue(this)\n    );\n    this._get = get;\n    this._set = set;\n  }\n  get value() {\n    return this._get();\n  }\n  set value(newVal) {\n    this._set(newVal);\n  }\n}\nfunction customRef(factory) {\n  return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n    console.warn(`toRefs() expects a reactive object but received a plain one.`);\n  }\n  const ret = isArray(object) ? new Array(object.length) : {};\n  for (const key in object) {\n    ret[key] = propertyToRef(object, key);\n  }\n  return ret;\n}\nclass ObjectRefImpl {\n  constructor(_object, _key, _defaultValue) {\n    this._object = _object;\n    this._key = _key;\n    this._defaultValue = _defaultValue;\n    this.__v_isRef = true;\n  }\n  get value() {\n    const val = this._object[this._key];\n    return val === void 0 ? this._defaultValue : val;\n  }\n  set value(newVal) {\n    this._object[this._key] = newVal;\n  }\n  get dep() {\n    return getDepFromReactive(toRaw(this._object), this._key);\n  }\n}\nclass GetterRefImpl {\n  constructor(_getter) {\n    this._getter = _getter;\n    this.__v_isRef = true;\n    this.__v_isReadonly = true;\n  }\n  get value() {\n    return this._getter();\n  }\n}\nfunction toRef(source, key, defaultValue) {\n  if (isRef(source)) {\n    return source;\n  } else if (isFunction(source)) {\n    return new GetterRefImpl(source);\n  } else if (isObject(source) && arguments.length > 1) {\n    return propertyToRef(source, key, defaultValue);\n  } else {\n    return ref(source);\n  }\n}\nfunction propertyToRef(source, key, defaultValue) {\n  const val = source[key];\n  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst TrackOpTypes = {\n  \"GET\": \"get\",\n  \"HAS\": \"has\",\n  \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n  \"SET\": \"set\",\n  \"ADD\": \"add\",\n  \"DELETE\": \"delete\",\n  \"CLEAR\": \"clear\"\n};\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n  stack.push(vnode);\n}\nfunction popWarningContext() {\n  stack.pop();\n}\nfunction warn$1(msg, ...args) {\n  pauseTracking();\n  const instance = stack.length ? stack[stack.length - 1].component : null;\n  const appWarnHandler = instance && instance.appContext.config.warnHandler;\n  const trace = getComponentTrace();\n  if (appWarnHandler) {\n    callWithErrorHandling(\n      appWarnHandler,\n      instance,\n      11,\n      [\n        msg + args.join(\"\"),\n        instance && instance.proxy,\n        trace.map(\n          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n        ).join(\"\\n\"),\n        trace\n      ]\n    );\n  } else {\n    const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n    if (trace.length && // avoid spamming console during tests\n    true) {\n      warnArgs.push(`\n`, ...formatTrace(trace));\n    }\n    console.warn(...warnArgs);\n  }\n  resetTracking();\n}\nfunction getComponentTrace() {\n  let currentVNode = stack[stack.length - 1];\n  if (!currentVNode) {\n    return [];\n  }\n  const normalizedStack = [];\n  while (currentVNode) {\n    const last = normalizedStack[0];\n    if (last && last.vnode === currentVNode) {\n      last.recurseCount++;\n    } else {\n      normalizedStack.push({\n        vnode: currentVNode,\n        recurseCount: 0\n      });\n    }\n    const parentInstance = currentVNode.component && currentVNode.component.parent;\n    currentVNode = parentInstance && parentInstance.vnode;\n  }\n  return normalizedStack;\n}\nfunction formatTrace(trace) {\n  const logs = [];\n  trace.forEach((entry, i) => {\n    logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n  });\n  return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n  const isRoot = vnode.component ? vnode.component.parent == null : false;\n  const open = ` at <${formatComponentName(\n    vnode.component,\n    vnode.type,\n    isRoot\n  )}`;\n  const close = `>` + postfix;\n  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n  const res = [];\n  const keys = Object.keys(props);\n  keys.slice(0, 3).forEach((key) => {\n    res.push(...formatProp(key, props[key]));\n  });\n  if (keys.length > 3) {\n    res.push(` ...`);\n  }\n  return res;\n}\nfunction formatProp(key, value, raw) {\n  if (isString(value)) {\n    value = JSON.stringify(value);\n    return raw ? value : [`${key}=${value}`];\n  } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n    return raw ? value : [`${key}=${value}`];\n  } else if (isRef(value)) {\n    value = formatProp(key, toRaw(value.value), true);\n    return raw ? value : [`${key}=Ref<`, value, `>`];\n  } else if (isFunction(value)) {\n    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n  } else {\n    value = toRaw(value);\n    return raw ? value : [`${key}=`, value];\n  }\n}\nfunction assertNumber(val, type) {\n  if (!!!(process.env.NODE_ENV !== \"production\"))\n    return;\n  if (val === void 0) {\n    return;\n  } else if (typeof val !== \"number\") {\n    warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n  } else if (isNaN(val)) {\n    warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n  }\n}\n\nconst ErrorCodes = {\n  \"SETUP_FUNCTION\": 0,\n  \"0\": \"SETUP_FUNCTION\",\n  \"RENDER_FUNCTION\": 1,\n  \"1\": \"RENDER_FUNCTION\",\n  \"WATCH_GETTER\": 2,\n  \"2\": \"WATCH_GETTER\",\n  \"WATCH_CALLBACK\": 3,\n  \"3\": \"WATCH_CALLBACK\",\n  \"WATCH_CLEANUP\": 4,\n  \"4\": \"WATCH_CLEANUP\",\n  \"NATIVE_EVENT_HANDLER\": 5,\n  \"5\": \"NATIVE_EVENT_HANDLER\",\n  \"COMPONENT_EVENT_HANDLER\": 6,\n  \"6\": \"COMPONENT_EVENT_HANDLER\",\n  \"VNODE_HOOK\": 7,\n  \"7\": \"VNODE_HOOK\",\n  \"DIRECTIVE_HOOK\": 8,\n  \"8\": \"DIRECTIVE_HOOK\",\n  \"TRANSITION_HOOK\": 9,\n  \"9\": \"TRANSITION_HOOK\",\n  \"APP_ERROR_HANDLER\": 10,\n  \"10\": \"APP_ERROR_HANDLER\",\n  \"APP_WARN_HANDLER\": 11,\n  \"11\": \"APP_WARN_HANDLER\",\n  \"FUNCTION_REF\": 12,\n  \"12\": \"FUNCTION_REF\",\n  \"ASYNC_COMPONENT_LOADER\": 13,\n  \"13\": \"ASYNC_COMPONENT_LOADER\",\n  \"SCHEDULER\": 14,\n  \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n  [\"sp\"]: \"serverPrefetch hook\",\n  [\"bc\"]: \"beforeCreate hook\",\n  [\"c\"]: \"created hook\",\n  [\"bm\"]: \"beforeMount hook\",\n  [\"m\"]: \"mounted hook\",\n  [\"bu\"]: \"beforeUpdate hook\",\n  [\"u\"]: \"updated\",\n  [\"bum\"]: \"beforeUnmount hook\",\n  [\"um\"]: \"unmounted hook\",\n  [\"a\"]: \"activated hook\",\n  [\"da\"]: \"deactivated hook\",\n  [\"ec\"]: \"errorCaptured hook\",\n  [\"rtc\"]: \"renderTracked hook\",\n  [\"rtg\"]: \"renderTriggered hook\",\n  [0]: \"setup function\",\n  [1]: \"render function\",\n  [2]: \"watcher getter\",\n  [3]: \"watcher callback\",\n  [4]: \"watcher cleanup function\",\n  [5]: \"native event handler\",\n  [6]: \"component event handler\",\n  [7]: \"vnode hook\",\n  [8]: \"directive hook\",\n  [9]: \"transition hook\",\n  [10]: \"app errorHandler\",\n  [11]: \"app warnHandler\",\n  [12]: \"ref function\",\n  [13]: \"async component loader\",\n  [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n  let res;\n  try {\n    res = args ? fn(...args) : fn();\n  } catch (err) {\n    handleError(err, instance, type);\n  }\n  return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n  if (isFunction(fn)) {\n    const res = callWithErrorHandling(fn, instance, type, args);\n    if (res && isPromise(res)) {\n      res.catch((err) => {\n        handleError(err, instance, type);\n      });\n    }\n    return res;\n  }\n  const values = [];\n  for (let i = 0; i < fn.length; i++) {\n    values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n  }\n  return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n  const contextVNode = instance ? instance.vnode : null;\n  if (instance) {\n    let cur = instance.parent;\n    const exposedInstance = instance.proxy;\n    const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n    while (cur) {\n      const errorCapturedHooks = cur.ec;\n      if (errorCapturedHooks) {\n        for (let i = 0; i < errorCapturedHooks.length; i++) {\n          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n            return;\n          }\n        }\n      }\n      cur = cur.parent;\n    }\n    const appErrorHandler = instance.appContext.config.errorHandler;\n    if (appErrorHandler) {\n      callWithErrorHandling(\n        appErrorHandler,\n        null,\n        10,\n        [err, exposedInstance, errorInfo]\n      );\n      return;\n    }\n  }\n  logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const info = ErrorTypeStrings$1[type];\n    if (contextVNode) {\n      pushWarningContext(contextVNode);\n    }\n    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n    if (contextVNode) {\n      popWarningContext();\n    }\n    if (throwInDev) {\n      throw err;\n    } else {\n      console.error(err);\n    }\n  } else {\n    console.error(err);\n  }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n  const p = currentFlushPromise || resolvedPromise;\n  return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n  let start = flushIndex + 1;\n  let end = queue.length;\n  while (start < end) {\n    const middle = start + end >>> 1;\n    const middleJob = queue[middle];\n    const middleJobId = getId(middleJob);\n    if (middleJobId < id || middleJobId === id && middleJob.pre) {\n      start = middle + 1;\n    } else {\n      end = middle;\n    }\n  }\n  return start;\n}\nfunction queueJob(job) {\n  if (!queue.length || !queue.includes(\n    job,\n    isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n  )) {\n    if (job.id == null) {\n      queue.push(job);\n    } else {\n      queue.splice(findInsertionIndex(job.id), 0, job);\n    }\n    queueFlush();\n  }\n}\nfunction queueFlush() {\n  if (!isFlushing && !isFlushPending) {\n    isFlushPending = true;\n    currentFlushPromise = resolvedPromise.then(flushJobs);\n  }\n}\nfunction invalidateJob(job) {\n  const i = queue.indexOf(job);\n  if (i > flushIndex) {\n    queue.splice(i, 1);\n  }\n}\nfunction queuePostFlushCb(cb) {\n  if (!isArray(cb)) {\n    if (!activePostFlushCbs || !activePostFlushCbs.includes(\n      cb,\n      cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n    )) {\n      pendingPostFlushCbs.push(cb);\n    }\n  } else {\n    pendingPostFlushCbs.push(...cb);\n  }\n  queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  for (; i < queue.length; i++) {\n    const cb = queue[i];\n    if (cb && cb.pre) {\n      if (instance && cb.id !== instance.uid) {\n        continue;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n        continue;\n      }\n      queue.splice(i, 1);\n      i--;\n      cb();\n    }\n  }\n}\nfunction flushPostFlushCbs(seen) {\n  if (pendingPostFlushCbs.length) {\n    const deduped = [...new Set(pendingPostFlushCbs)].sort(\n      (a, b) => getId(a) - getId(b)\n    );\n    pendingPostFlushCbs.length = 0;\n    if (activePostFlushCbs) {\n      activePostFlushCbs.push(...deduped);\n      return;\n    }\n    activePostFlushCbs = deduped;\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      seen = seen || /* @__PURE__ */ new Map();\n    }\n    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n        continue;\n      }\n      activePostFlushCbs[postFlushIndex]();\n    }\n    activePostFlushCbs = null;\n    postFlushIndex = 0;\n  }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n  const diff = getId(a) - getId(b);\n  if (diff === 0) {\n    if (a.pre && !b.pre)\n      return -1;\n    if (b.pre && !a.pre)\n      return 1;\n  }\n  return diff;\n};\nfunction flushJobs(seen) {\n  isFlushPending = false;\n  isFlushing = true;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  queue.sort(comparator);\n  const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n  try {\n    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n      const job = queue[flushIndex];\n      if (job && job.active !== false) {\n        if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n          continue;\n        }\n        callWithErrorHandling(job, null, 14);\n      }\n    }\n  } finally {\n    flushIndex = 0;\n    queue.length = 0;\n    flushPostFlushCbs(seen);\n    isFlushing = false;\n    currentFlushPromise = null;\n    if (queue.length || pendingPostFlushCbs.length) {\n      flushJobs(seen);\n    }\n  }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n  if (!seen.has(fn)) {\n    seen.set(fn, 1);\n  } else {\n    const count = seen.get(fn);\n    if (count > RECURSION_LIMIT) {\n      const instance = fn.ownerInstance;\n      const componentName = instance && getComponentName(instance.type);\n      handleError(\n        `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n        null,\n        10\n      );\n      return true;\n    } else {\n      seen.set(fn, count + 1);\n    }\n  }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  getGlobalThis().__VUE_HMR_RUNTIME__ = {\n    createRecord: tryWrap(createRecord),\n    rerender: tryWrap(rerender),\n    reload: tryWrap(reload)\n  };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n  const id = instance.type.__hmrId;\n  let record = map.get(id);\n  if (!record) {\n    createRecord(id, instance.type);\n    record = map.get(id);\n  }\n  record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n  map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n  if (map.has(id)) {\n    return false;\n  }\n  map.set(id, {\n    initialDef: normalizeClassComponent(initialDef),\n    instances: /* @__PURE__ */ new Set()\n  });\n  return true;\n}\nfunction normalizeClassComponent(component) {\n  return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n  const record = map.get(id);\n  if (!record) {\n    return;\n  }\n  record.initialDef.render = newRender;\n  [...record.instances].forEach((instance) => {\n    if (newRender) {\n      instance.render = newRender;\n      normalizeClassComponent(instance.type).render = newRender;\n    }\n    instance.renderCache = [];\n    isHmrUpdating = true;\n    instance.effect.dirty = true;\n    instance.update();\n    isHmrUpdating = false;\n  });\n}\nfunction reload(id, newComp) {\n  const record = map.get(id);\n  if (!record)\n    return;\n  newComp = normalizeClassComponent(newComp);\n  updateComponentDef(record.initialDef, newComp);\n  const instances = [...record.instances];\n  for (const instance of instances) {\n    const oldComp = normalizeClassComponent(instance.type);\n    if (!hmrDirtyComponents.has(oldComp)) {\n      if (oldComp !== record.initialDef) {\n        updateComponentDef(oldComp, newComp);\n      }\n      hmrDirtyComponents.add(oldComp);\n    }\n    instance.appContext.propsCache.delete(instance.type);\n    instance.appContext.emitsCache.delete(instance.type);\n    instance.appContext.optionsCache.delete(instance.type);\n    if (instance.ceReload) {\n      hmrDirtyComponents.add(oldComp);\n      instance.ceReload(newComp.styles);\n      hmrDirtyComponents.delete(oldComp);\n    } else if (instance.parent) {\n      instance.parent.effect.dirty = true;\n      queueJob(instance.parent.update);\n    } else if (instance.appContext.reload) {\n      instance.appContext.reload();\n    } else if (typeof window !== \"undefined\") {\n      window.location.reload();\n    } else {\n      console.warn(\n        \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n      );\n    }\n  }\n  queuePostFlushCb(() => {\n    for (const instance of instances) {\n      hmrDirtyComponents.delete(\n        normalizeClassComponent(instance.type)\n      );\n    }\n  });\n}\nfunction updateComponentDef(oldComp, newComp) {\n  extend(oldComp, newComp);\n  for (const key in oldComp) {\n    if (key !== \"__file\" && !(key in newComp)) {\n      delete oldComp[key];\n    }\n  }\n}\nfunction tryWrap(fn) {\n  return (id, arg) => {\n    try {\n      return fn(id, arg);\n    } catch (e) {\n      console.error(e);\n      console.warn(\n        `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n      );\n    }\n  };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$2(event, ...args) {\n  if (devtools$1) {\n    devtools$1.emit(event, ...args);\n  } else if (!devtoolsNotInstalled) {\n    buffer.push({ event, args });\n  }\n}\nfunction setDevtoolsHook$1(hook, target) {\n  var _a, _b;\n  devtools$1 = hook;\n  if (devtools$1) {\n    devtools$1.enabled = true;\n    buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n    buffer = [];\n  } else if (\n    // handle late devtools injection - only do this if we are in an actual\n    // browser environment to avoid the timer handle stalling test runner exit\n    // (#4815)\n    typeof window !== \"undefined\" && // some envs mock window but not fully\n    window.HTMLElement && // also exclude jsdom\n    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n  ) {\n    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n    replay.push((newHook) => {\n      setDevtoolsHook$1(newHook, target);\n    });\n    setTimeout(() => {\n      if (!devtools$1) {\n        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n        devtoolsNotInstalled = true;\n        buffer = [];\n      }\n    }, 3e3);\n  } else {\n    devtoolsNotInstalled = true;\n    buffer = [];\n  }\n}\nfunction devtoolsInitApp(app, version) {\n  emit$2(\"app:init\" /* APP_INIT */, app, version, {\n    Fragment,\n    Text,\n    Comment,\n    Static\n  });\n}\nfunction devtoolsUnmountApp(app) {\n  emit$2(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n  \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n  \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n  if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n  !devtools$1.cleanupBuffer(component)) {\n    _devtoolsComponentRemoved(component);\n  }\n};\nfunction createDevtoolsComponentHook(hook) {\n  return (component) => {\n    emit$2(\n      hook,\n      component.appContext.app,\n      component.uid,\n      component.parent ? component.parent.uid : void 0,\n      component\n    );\n  };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n  \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n  \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n  return (component, type, time) => {\n    emit$2(hook, component.appContext.app, component.uid, component, type, time);\n  };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n  emit$2(\n    \"component:emit\" /* COMPONENT_EMIT */,\n    component.appContext.app,\n    component,\n    event,\n    params\n  );\n}\n\nconst DeprecationTypes$1 = {\n  \"GLOBAL_MOUNT\": \"GLOBAL_MOUNT\",\n  \"GLOBAL_MOUNT_CONTAINER\": \"GLOBAL_MOUNT_CONTAINER\",\n  \"GLOBAL_EXTEND\": \"GLOBAL_EXTEND\",\n  \"GLOBAL_PROTOTYPE\": \"GLOBAL_PROTOTYPE\",\n  \"GLOBAL_SET\": \"GLOBAL_SET\",\n  \"GLOBAL_DELETE\": \"GLOBAL_DELETE\",\n  \"GLOBAL_OBSERVABLE\": \"GLOBAL_OBSERVABLE\",\n  \"GLOBAL_PRIVATE_UTIL\": \"GLOBAL_PRIVATE_UTIL\",\n  \"CONFIG_SILENT\": \"CONFIG_SILENT\",\n  \"CONFIG_DEVTOOLS\": \"CONFIG_DEVTOOLS\",\n  \"CONFIG_KEY_CODES\": \"CONFIG_KEY_CODES\",\n  \"CONFIG_PRODUCTION_TIP\": \"CONFIG_PRODUCTION_TIP\",\n  \"CONFIG_IGNORED_ELEMENTS\": \"CONFIG_IGNORED_ELEMENTS\",\n  \"CONFIG_WHITESPACE\": \"CONFIG_WHITESPACE\",\n  \"CONFIG_OPTION_MERGE_STRATS\": \"CONFIG_OPTION_MERGE_STRATS\",\n  \"INSTANCE_SET\": \"INSTANCE_SET\",\n  \"INSTANCE_DELETE\": \"INSTANCE_DELETE\",\n  \"INSTANCE_DESTROY\": \"INSTANCE_DESTROY\",\n  \"INSTANCE_EVENT_EMITTER\": \"INSTANCE_EVENT_EMITTER\",\n  \"INSTANCE_EVENT_HOOKS\": \"INSTANCE_EVENT_HOOKS\",\n  \"INSTANCE_CHILDREN\": \"INSTANCE_CHILDREN\",\n  \"INSTANCE_LISTENERS\": \"INSTANCE_LISTENERS\",\n  \"INSTANCE_SCOPED_SLOTS\": \"INSTANCE_SCOPED_SLOTS\",\n  \"INSTANCE_ATTRS_CLASS_STYLE\": \"INSTANCE_ATTRS_CLASS_STYLE\",\n  \"OPTIONS_DATA_FN\": \"OPTIONS_DATA_FN\",\n  \"OPTIONS_DATA_MERGE\": \"OPTIONS_DATA_MERGE\",\n  \"OPTIONS_BEFORE_DESTROY\": \"OPTIONS_BEFORE_DESTROY\",\n  \"OPTIONS_DESTROYED\": \"OPTIONS_DESTROYED\",\n  \"WATCH_ARRAY\": \"WATCH_ARRAY\",\n  \"PROPS_DEFAULT_THIS\": \"PROPS_DEFAULT_THIS\",\n  \"V_ON_KEYCODE_MODIFIER\": \"V_ON_KEYCODE_MODIFIER\",\n  \"CUSTOM_DIR\": \"CUSTOM_DIR\",\n  \"ATTR_FALSE_VALUE\": \"ATTR_FALSE_VALUE\",\n  \"ATTR_ENUMERATED_COERCION\": \"ATTR_ENUMERATED_COERCION\",\n  \"TRANSITION_CLASSES\": \"TRANSITION_CLASSES\",\n  \"TRANSITION_GROUP_ROOT\": \"TRANSITION_GROUP_ROOT\",\n  \"COMPONENT_ASYNC\": \"COMPONENT_ASYNC\",\n  \"COMPONENT_FUNCTIONAL\": \"COMPONENT_FUNCTIONAL\",\n  \"COMPONENT_V_MODEL\": \"COMPONENT_V_MODEL\",\n  \"RENDER_FUNCTION\": \"RENDER_FUNCTION\",\n  \"FILTERS\": \"FILTERS\",\n  \"PRIVATE_APIS\": \"PRIVATE_APIS\"\n};\nconst deprecationData = {\n  [\"GLOBAL_MOUNT\"]: {\n    message: `The global app bootstrapping API has changed: vm.$mount() and the \"el\" option have been removed. Use createApp(RootComponent).mount() instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`\n  },\n  [\"GLOBAL_MOUNT_CONTAINER\"]: {\n    message: `Vue detected directives on the mount container. In Vue 3, the container is no longer considered part of the template and will not be processed/replaced.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`\n  },\n  [\"GLOBAL_EXTEND\"]: {\n    message: `Vue.extend() has been removed in Vue 3. Use defineComponent() instead.`,\n    link: `https://vuejs.org/api/general.html#definecomponent`\n  },\n  [\"GLOBAL_PROTOTYPE\"]: {\n    message: `Vue.prototype is no longer available in Vue 3. Use app.config.globalProperties instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`\n  },\n  [\"GLOBAL_SET\"]: {\n    message: `Vue.set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n  },\n  [\"GLOBAL_DELETE\"]: {\n    message: `Vue.delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n  },\n  [\"GLOBAL_OBSERVABLE\"]: {\n    message: `Vue.observable() has been removed. Use \\`import { reactive } from \"vue\"\\` from Composition API instead.`,\n    link: `https://vuejs.org/api/reactivity-core.html#reactive`\n  },\n  [\"GLOBAL_PRIVATE_UTIL\"]: {\n    message: `Vue.util has been removed. Please refactor to avoid its usage since it was an internal API even in Vue 2.`\n  },\n  [\"CONFIG_SILENT\"]: {\n    message: `config.silent has been removed because it is not good practice to intentionally suppress warnings. You can use your browser console's filter features to focus on relevant messages.`\n  },\n  [\"CONFIG_DEVTOOLS\"]: {\n    message: `config.devtools has been removed. To enable devtools for production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,\n    link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`\n  },\n  [\"CONFIG_KEY_CODES\"]: {\n    message: `config.keyCodes has been removed. In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n  },\n  [\"CONFIG_PRODUCTION_TIP\"]: {\n    message: `config.productionTip has been removed.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`\n  },\n  [\"CONFIG_IGNORED_ELEMENTS\"]: {\n    message: () => {\n      let msg = `config.ignoredElements has been removed.`;\n      if (isRuntimeOnly()) {\n        msg += ` Pass the \"isCustomElement\" option to @vue/compiler-dom instead.`;\n      } else {\n        msg += ` Use config.isCustomElement instead.`;\n      }\n      return msg;\n    },\n    link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`\n  },\n  [\"CONFIG_WHITESPACE\"]: {\n    // this warning is only relevant in the full build when using runtime\n    // compilation, so it's put in the runtime compatConfig list.\n    message: `Vue 3 compiler's whitespace option will default to \"condense\" instead of \"preserve\". To suppress this warning, provide an explicit value for \\`config.compilerOptions.whitespace\\`.`\n  },\n  [\"CONFIG_OPTION_MERGE_STRATS\"]: {\n    message: `config.optionMergeStrategies no longer exposes internal strategies. Use custom merge functions instead.`\n  },\n  [\"INSTANCE_SET\"]: {\n    message: `vm.$set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n  },\n  [\"INSTANCE_DELETE\"]: {\n    message: `vm.$delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n  },\n  [\"INSTANCE_DESTROY\"]: {\n    message: `vm.$destroy() has been removed. Use app.unmount() instead.`,\n    link: `https://vuejs.org/api/application.html#app-unmount`\n  },\n  [\"INSTANCE_EVENT_EMITTER\"]: {\n    message: `vm.$on/$once/$off() have been removed. Use an external event emitter library instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`\n  },\n  [\"INSTANCE_EVENT_HOOKS\"]: {\n    message: (event) => `\"${event}\" lifecycle events are no longer supported. From templates, use the \"vue:\" prefix instead of \"hook:\". For example, @${event} should be changed to @vue:${event.slice(5)}. From JavaScript, use Composition API to dynamically register lifecycle hooks.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`\n  },\n  [\"INSTANCE_CHILDREN\"]: {\n    message: `vm.$children has been removed. Consider refactoring your logic to avoid relying on direct access to child components.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/children.html`\n  },\n  [\"INSTANCE_LISTENERS\"]: {\n    message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are included in vm.$attrs and it is no longer necessary to separately use v-on=\"$listeners\" if you are already using v-bind=\"$attrs\". (Note: the Vue 3 behavior only applies if this compat config is disabled)`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`\n  },\n  [\"INSTANCE_SCOPED_SLOTS\"]: {\n    message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`\n  },\n  [\"INSTANCE_ATTRS_CLASS_STYLE\"]: {\n    message: (componentName) => `Component <${componentName || \"Anonymous\"}> has \\`inheritAttrs: false\\` but is relying on class/style fallthrough from parent. In Vue 3, class/style are now included in $attrs and will no longer fallthrough when inheritAttrs is false. If you are already using v-bind=\"$attrs\" on component root it should render the same end result. If you are binding $attrs to a non-root element and expecting class/style to fallthrough on root, you will need to now manually bind them on root via :class=\"$attrs.class\".`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`\n  },\n  [\"OPTIONS_DATA_FN\"]: {\n    message: `The \"data\" option can no longer be a plain object. Always use a function.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`\n  },\n  [\"OPTIONS_DATA_MERGE\"]: {\n    message: (key) => `Detected conflicting key \"${key}\" when merging data option values. In Vue 3, data keys are merged shallowly and will override one another.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`\n  },\n  [\"OPTIONS_BEFORE_DESTROY\"]: {\n    message: `\\`beforeDestroy\\` has been renamed to \\`beforeUnmount\\`.`\n  },\n  [\"OPTIONS_DESTROYED\"]: {\n    message: `\\`destroyed\\` has been renamed to \\`unmounted\\`.`\n  },\n  [\"WATCH_ARRAY\"]: {\n    message: `\"watch\" option or vm.$watch on an array value will no longer trigger on array mutation unless the \"deep\" option is specified. If current usage is intended, you can disable the compat behavior and suppress this warning with:\n\n  configureCompat({ ${\"WATCH_ARRAY\"}: false })\n`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`\n  },\n  [\"PROPS_DEFAULT_THIS\"]: {\n    message: (key) => `props default value function no longer has access to \"this\". The compat build only offers access to this.$options.(found in prop \"${key}\")`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`\n  },\n  [\"CUSTOM_DIR\"]: {\n    message: (legacyHook, newHook) => `Custom directive hook \"${legacyHook}\" has been removed. Use \"${newHook}\" instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`\n  },\n  [\"V_ON_KEYCODE_MODIFIER\"]: {\n    message: `Using keyCode as v-on modifier is no longer supported. Use kebab-case key name modifiers instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n  },\n  [\"ATTR_FALSE_VALUE\"]: {\n    message: (name) => `Attribute \"${name}\" with v-bind value \\`false\\` will render ${name}=\"false\" instead of removing it in Vue 3. To remove the attribute, use \\`null\\` or \\`undefined\\` instead. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n  configureCompat({ ${\"ATTR_FALSE_VALUE\"}: false })\n`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n  },\n  [\"ATTR_ENUMERATED_COERCION\"]: {\n    message: (name, value, coerced) => `Enumerated attribute \"${name}\" with v-bind value \\`${value}\\` will ${value === null ? `be removed` : `render the value as-is`} instead of coercing the value to \"${coerced}\" in Vue 3. Always use explicit \"true\" or \"false\" values for enumerated attributes. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n  configureCompat({ ${\"ATTR_ENUMERATED_COERCION\"}: false })\n`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n  },\n  [\"TRANSITION_CLASSES\"]: {\n    message: ``\n    // this feature cannot be runtime-detected\n  },\n  [\"TRANSITION_GROUP_ROOT\"]: {\n    message: `<TransitionGroup> no longer renders a root <span> element by default if no \"tag\" prop is specified. If you do not rely on the span for styling, you can disable the compat behavior and suppress this warning with:\n\n  configureCompat({ ${\"TRANSITION_GROUP_ROOT\"}: false })\n`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`\n  },\n  [\"COMPONENT_ASYNC\"]: {\n    message: (comp) => {\n      const name = getComponentName(comp);\n      return `Async component${name ? ` <${name}>` : `s`} should be explicitly created via \\`defineAsyncComponent()\\` in Vue 3. Plain functions will be treated as functional components in non-compat build. If you have already migrated all async component usage and intend to use plain functions for functional components, you can disable the compat behavior and suppress this warning with:\n\n  configureCompat({ ${\"COMPONENT_ASYNC\"}: false })\n`;\n    },\n    link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`\n  },\n  [\"COMPONENT_FUNCTIONAL\"]: {\n    message: (comp) => {\n      const name = getComponentName(comp);\n      return `Functional component${name ? ` <${name}>` : `s`} should be defined as a plain function in Vue 3. The \"functional\" option has been removed. NOTE: Before migrating to use plain functions for functional components, first make sure that all async components usage have been migrated and its compat behavior has been disabled.`;\n    },\n    link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`\n  },\n  [\"COMPONENT_V_MODEL\"]: {\n    message: (comp) => {\n      const configMsg = `opt-in to Vue 3 behavior on a per-component basis with \\`compatConfig: { ${\"COMPONENT_V_MODEL\"}: false }\\`.`;\n      if (comp.props && (isArray(comp.props) ? comp.props.includes(\"modelValue\") : hasOwn(comp.props, \"modelValue\"))) {\n        return `Component declares \"modelValue\" prop, which is Vue 3 usage, but is running under Vue 2 compat v-model behavior. You can ${configMsg}`;\n      }\n      return `v-model usage on component has changed in Vue 3. Component that expects to work with v-model should now use the \"modelValue\" prop and emit the \"update:modelValue\" event. You can update the usage and then ${configMsg}`;\n    },\n    link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n  },\n  [\"RENDER_FUNCTION\"]: {\n    message: `Vue 3's render function API has changed. You can opt-in to the new API with:\n\n  configureCompat({ ${\"RENDER_FUNCTION\"}: false })\n\n  (This can also be done per-component via the \"compatConfig\" option.)`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`\n  },\n  [\"FILTERS\"]: {\n    message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n    link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n  },\n  [\"PRIVATE_APIS\"]: {\n    message: (name) => `\"${name}\" is a Vue 2 private API that no longer exists in Vue 3. If you are seeing this warning only due to a dependency, you can suppress this warning via { PRIVATE_APIS: 'suppress-warning' }.`\n  }\n};\nconst instanceWarned = /* @__PURE__ */ Object.create(null);\nconst warnCount = /* @__PURE__ */ Object.create(null);\nfunction warnDeprecation(key, instance, ...args) {\n  if (!!!(process.env.NODE_ENV !== \"production\")) {\n    return;\n  }\n  instance = instance || getCurrentInstance();\n  const config = getCompatConfigForKey(key, instance);\n  if (config === \"suppress-warning\") {\n    return;\n  }\n  const dupKey = key + args.join(\"\");\n  let compId = instance && formatComponentName(instance, instance.type);\n  if (compId === \"Anonymous\" && instance) {\n    compId = instance.uid;\n  }\n  const componentDupKey = dupKey + compId;\n  if (componentDupKey in instanceWarned) {\n    return;\n  }\n  instanceWarned[componentDupKey] = true;\n  if (dupKey in warnCount) {\n    warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);\n    return;\n  }\n  warnCount[dupKey] = 0;\n  const { message, link } = deprecationData[key];\n  warn$1(\n    `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n  Details: ${link}` : ``}`\n  );\n  if (!isCompatEnabled(key, instance, true)) {\n    console.error(\n      `^ The above deprecation's compat behavior is disabled and will likely lead to runtime errors.`\n    );\n  }\n}\nconst globalCompatConfig = {\n  MODE: 2\n};\nfunction configureCompat$1(config) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateCompatConfig(config);\n  }\n  extend(globalCompatConfig, config);\n}\nconst seenConfigObjects = /* @__PURE__ */ new WeakSet();\nconst warnedInvalidKeys = {};\nfunction validateCompatConfig(config, instance) {\n  if (seenConfigObjects.has(config)) {\n    return;\n  }\n  seenConfigObjects.add(config);\n  for (const key of Object.keys(config)) {\n    if (key !== \"MODE\" && !(key in deprecationData) && !(key in warnedInvalidKeys)) {\n      if (key.startsWith(\"COMPILER_\")) {\n        if (isRuntimeOnly()) {\n          warn$1(\n            `Deprecation config \"${key}\" is compiler-specific and you are running a runtime-only build of Vue. This deprecation should be configured via compiler options in your build setup instead.\nDetails: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`\n          );\n        }\n      } else {\n        warn$1(`Invalid deprecation config \"${key}\".`);\n      }\n      warnedInvalidKeys[key] = true;\n    }\n  }\n  if (instance && config[\"OPTIONS_DATA_MERGE\"] != null) {\n    warn$1(\n      `Deprecation config \"${\"OPTIONS_DATA_MERGE\"}\" can only be configured globally.`\n    );\n  }\n}\nfunction getCompatConfigForKey(key, instance) {\n  const instanceConfig = instance && instance.type.compatConfig;\n  if (instanceConfig && key in instanceConfig) {\n    return instanceConfig[key];\n  }\n  return globalCompatConfig[key];\n}\nfunction isCompatEnabled(key, instance, enableForBuiltIn = false) {\n  if (!enableForBuiltIn && instance && instance.type.__isBuiltIn) {\n    return false;\n  }\n  const rawMode = getCompatConfigForKey(\"MODE\", instance) || 2;\n  const val = getCompatConfigForKey(key, instance);\n  const mode = isFunction(rawMode) ? rawMode(instance && instance.type) : rawMode;\n  if (mode === 2) {\n    return val !== false;\n  } else {\n    return val === true || val === \"suppress-warning\";\n  }\n}\nfunction assertCompatEnabled(key, instance, ...args) {\n  if (!isCompatEnabled(key, instance)) {\n    throw new Error(`${key} compat has been disabled.`);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnDeprecation(key, instance, ...args);\n  }\n}\nfunction softAssertCompatEnabled(key, instance, ...args) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnDeprecation(key, instance, ...args);\n  }\n  return isCompatEnabled(key, instance);\n}\nfunction checkCompatEnabled(key, instance, ...args) {\n  const enabled = isCompatEnabled(key, instance);\n  if (!!(process.env.NODE_ENV !== \"production\") && enabled) {\n    warnDeprecation(key, instance, ...args);\n  }\n  return enabled;\n}\n\nconst eventRegistryMap = /* @__PURE__ */ new WeakMap();\nfunction getRegistry(instance) {\n  let events = eventRegistryMap.get(instance);\n  if (!events) {\n    eventRegistryMap.set(instance, events = /* @__PURE__ */ Object.create(null));\n  }\n  return events;\n}\nfunction on(instance, event, fn) {\n  if (isArray(event)) {\n    event.forEach((e) => on(instance, e, fn));\n  } else {\n    if (event.startsWith(\"hook:\")) {\n      assertCompatEnabled(\n        \"INSTANCE_EVENT_HOOKS\",\n        instance,\n        event\n      );\n    } else {\n      assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n    }\n    const events = getRegistry(instance);\n    (events[event] || (events[event] = [])).push(fn);\n  }\n  return instance.proxy;\n}\nfunction once(instance, event, fn) {\n  const wrapped = (...args) => {\n    off(instance, event, wrapped);\n    fn.call(instance.proxy, ...args);\n  };\n  wrapped.fn = fn;\n  on(instance, event, wrapped);\n  return instance.proxy;\n}\nfunction off(instance, event, fn) {\n  assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n  const vm = instance.proxy;\n  if (!event) {\n    eventRegistryMap.set(instance, /* @__PURE__ */ Object.create(null));\n    return vm;\n  }\n  if (isArray(event)) {\n    event.forEach((e) => off(instance, e, fn));\n    return vm;\n  }\n  const events = getRegistry(instance);\n  const cbs = events[event];\n  if (!cbs) {\n    return vm;\n  }\n  if (!fn) {\n    events[event] = void 0;\n    return vm;\n  }\n  events[event] = cbs.filter((cb) => !(cb === fn || cb.fn === fn));\n  return vm;\n}\nfunction emit$1(instance, event, args) {\n  const cbs = getRegistry(instance)[event];\n  if (cbs) {\n    callWithAsyncErrorHandling(\n      cbs.map((cb) => cb.bind(instance.proxy)),\n      instance,\n      6,\n      args\n    );\n  }\n  return instance.proxy;\n}\n\nconst compatModelEventPrefix = `onModelCompat:`;\nconst warnedTypes = /* @__PURE__ */ new WeakSet();\nfunction convertLegacyVModelProps(vnode) {\n  const { type, shapeFlag, props, dynamicProps } = vnode;\n  const comp = type;\n  if (shapeFlag & 6 && props && \"modelValue\" in props) {\n    if (!isCompatEnabled(\n      \"COMPONENT_V_MODEL\",\n      // this is a special case where we want to use the vnode component's\n      // compat config instead of the current rendering instance (which is the\n      // parent of the component that exposes v-model)\n      { type }\n    )) {\n      return;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && !warnedTypes.has(comp)) {\n      pushWarningContext(vnode);\n      warnDeprecation(\"COMPONENT_V_MODEL\", { type }, comp);\n      popWarningContext();\n      warnedTypes.add(comp);\n    }\n    const model = comp.model || {};\n    applyModelFromMixins(model, comp.mixins);\n    const { prop = \"value\", event = \"input\" } = model;\n    if (prop !== \"modelValue\") {\n      props[prop] = props.modelValue;\n      delete props.modelValue;\n    }\n    if (dynamicProps) {\n      dynamicProps[dynamicProps.indexOf(\"modelValue\")] = prop;\n    }\n    props[compatModelEventPrefix + event] = props[\"onUpdate:modelValue\"];\n    delete props[\"onUpdate:modelValue\"];\n  }\n}\nfunction applyModelFromMixins(model, mixins) {\n  if (mixins) {\n    mixins.forEach((m) => {\n      if (m.model)\n        extend(model, m.model);\n      if (m.mixins)\n        applyModelFromMixins(model, m.mixins);\n    });\n  }\n}\nfunction compatModelEmit(instance, event, args) {\n  if (!isCompatEnabled(\"COMPONENT_V_MODEL\", instance)) {\n    return;\n  }\n  const props = instance.vnode.props;\n  const modelHandler = props && props[compatModelEventPrefix + event];\n  if (modelHandler) {\n    callWithErrorHandling(\n      modelHandler,\n      instance,\n      6,\n      args\n    );\n  }\n}\n\nfunction emit(instance, event, ...rawArgs) {\n  if (instance.isUnmounted)\n    return;\n  const props = instance.vnode.props || EMPTY_OBJ;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const {\n      emitsOptions,\n      propsOptions: [propsOptions]\n    } = instance;\n    if (emitsOptions) {\n      if (!(event in emitsOptions) && !(event.startsWith(\"hook:\") || event.startsWith(compatModelEventPrefix))) {\n        if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n          warn$1(\n            `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n          );\n        }\n      } else {\n        const validator = emitsOptions[event];\n        if (isFunction(validator)) {\n          const isValid = validator(...rawArgs);\n          if (!isValid) {\n            warn$1(\n              `Invalid event arguments: event validation failed for event \"${event}\".`\n            );\n          }\n        }\n      }\n    }\n  }\n  let args = rawArgs;\n  const isModelListener = event.startsWith(\"update:\");\n  const modelArg = isModelListener && event.slice(7);\n  if (modelArg && modelArg in props) {\n    const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n    const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n    if (trim) {\n      args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n    }\n    if (number) {\n      args = rawArgs.map(looseToNumber);\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsComponentEmit(instance, event, args);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const lowerCaseEvent = event.toLowerCase();\n    if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n      warn$1(\n        `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n          instance,\n          instance.type\n        )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n          event\n        )}\" instead of \"${event}\".`\n      );\n    }\n  }\n  let handlerName;\n  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n  props[handlerName = toHandlerKey(camelize(event))];\n  if (!handler && isModelListener) {\n    handler = props[handlerName = toHandlerKey(hyphenate(event))];\n  }\n  if (handler) {\n    callWithAsyncErrorHandling(\n      handler,\n      instance,\n      6,\n      args\n    );\n  }\n  const onceHandler = props[handlerName + `Once`];\n  if (onceHandler) {\n    if (!instance.emitted) {\n      instance.emitted = {};\n    } else if (instance.emitted[handlerName]) {\n      return;\n    }\n    instance.emitted[handlerName] = true;\n    callWithAsyncErrorHandling(\n      onceHandler,\n      instance,\n      6,\n      args\n    );\n  }\n  {\n    compatModelEmit(instance, event, args);\n    return emit$1(instance, event, args);\n  }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.emitsCache;\n  const cached = cache.get(comp);\n  if (cached !== void 0) {\n    return cached;\n  }\n  const raw = comp.emits;\n  let normalized = {};\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendEmits = (raw2) => {\n      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n      if (normalizedFromExtend) {\n        hasExtends = true;\n        extend(normalized, normalizedFromExtend);\n      }\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendEmits);\n    }\n    if (comp.extends) {\n      extendEmits(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendEmits);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, null);\n    }\n    return null;\n  }\n  if (isArray(raw)) {\n    raw.forEach((key) => normalized[key] = null);\n  } else {\n    extend(normalized, raw);\n  }\n  if (isObject(comp)) {\n    cache.set(comp, normalized);\n  }\n  return normalized;\n}\nfunction isEmitListener(options, key) {\n  if (!options || !isOn(key)) {\n    return false;\n  }\n  if (key.startsWith(compatModelEventPrefix)) {\n    return true;\n  }\n  key = key.slice(2).replace(/Once$/, \"\");\n  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n  const prev = currentRenderingInstance;\n  currentRenderingInstance = instance;\n  currentScopeId = instance && instance.type.__scopeId || null;\n  if (!currentScopeId) {\n    currentScopeId = instance && instance.type._scopeId || null;\n  }\n  return prev;\n}\nfunction pushScopeId(id) {\n  currentScopeId = id;\n}\nfunction popScopeId() {\n  currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n  if (!ctx)\n    return fn;\n  if (fn._n) {\n    return fn;\n  }\n  const renderFnWithContext = (...args) => {\n    if (renderFnWithContext._d) {\n      setBlockTracking(-1);\n    }\n    const prevInstance = setCurrentRenderingInstance(ctx);\n    let res;\n    try {\n      res = fn(...args);\n    } finally {\n      setCurrentRenderingInstance(prevInstance);\n      if (renderFnWithContext._d) {\n        setBlockTracking(1);\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsComponentUpdated(ctx);\n    }\n    return res;\n  };\n  renderFnWithContext._n = true;\n  renderFnWithContext._c = true;\n  renderFnWithContext._d = true;\n  if (isNonScopedSlot) {\n    renderFnWithContext._ns = true;\n  }\n  return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n  accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n  const {\n    type: Component,\n    vnode,\n    proxy,\n    withProxy,\n    props,\n    propsOptions: [propsOptions],\n    slots,\n    attrs,\n    emit,\n    render,\n    renderCache,\n    data,\n    setupState,\n    ctx,\n    inheritAttrs\n  } = instance;\n  let result;\n  let fallthroughAttrs;\n  const prev = setCurrentRenderingInstance(instance);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    accessedAttrs = false;\n  }\n  try {\n    if (vnode.shapeFlag & 4) {\n      const proxyToUse = withProxy || proxy;\n      const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n        get(target, key, receiver) {\n          warn$1(\n            `Property '${String(\n              key\n            )}' was accessed via 'this'. Avoid using 'this' in templates.`\n          );\n          return Reflect.get(target, key, receiver);\n        }\n      }) : proxyToUse;\n      result = normalizeVNode(\n        render.call(\n          thisProxy,\n          proxyToUse,\n          renderCache,\n          props,\n          setupState,\n          data,\n          ctx\n        )\n      );\n      fallthroughAttrs = attrs;\n    } else {\n      const render2 = Component;\n      if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n        markAttrsAccessed();\n      }\n      result = normalizeVNode(\n        render2.length > 1 ? render2(\n          props,\n          !!(process.env.NODE_ENV !== \"production\") ? {\n            get attrs() {\n              markAttrsAccessed();\n              return attrs;\n            },\n            slots,\n            emit\n          } : { attrs, slots, emit }\n        ) : render2(\n          props,\n          null\n          /* we know it doesn't need it */\n        )\n      );\n      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n    }\n  } catch (err) {\n    blockStack.length = 0;\n    handleError(err, instance, 1);\n    result = createVNode(Comment);\n  }\n  let root = result;\n  let setRoot = void 0;\n  if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n    [root, setRoot] = getChildRoot(result);\n  }\n  if (fallthroughAttrs && inheritAttrs !== false) {\n    const keys = Object.keys(fallthroughAttrs);\n    const { shapeFlag } = root;\n    if (keys.length) {\n      if (shapeFlag & (1 | 6)) {\n        if (propsOptions && keys.some(isModelListener)) {\n          fallthroughAttrs = filterModelListeners(\n            fallthroughAttrs,\n            propsOptions\n          );\n        }\n        root = cloneVNode(root, fallthroughAttrs);\n      } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n        const allAttrs = Object.keys(attrs);\n        const eventAttrs = [];\n        const extraAttrs = [];\n        for (let i = 0, l = allAttrs.length; i < l; i++) {\n          const key = allAttrs[i];\n          if (isOn(key)) {\n            if (!isModelListener(key)) {\n              eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n            }\n          } else {\n            extraAttrs.push(key);\n          }\n        }\n        if (extraAttrs.length) {\n          warn$1(\n            `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n          );\n        }\n        if (eventAttrs.length) {\n          warn$1(\n            `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n          );\n        }\n      }\n    }\n  }\n  if (isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance) && vnode.shapeFlag & 4 && root.shapeFlag & (1 | 6)) {\n    const { class: cls, style } = vnode.props || {};\n    if (cls || style) {\n      if (!!(process.env.NODE_ENV !== \"production\") && inheritAttrs === false) {\n        warnDeprecation(\n          \"INSTANCE_ATTRS_CLASS_STYLE\",\n          instance,\n          getComponentName(instance.type)\n        );\n      }\n      root = cloneVNode(root, {\n        class: cls,\n        style\n      });\n    }\n  }\n  if (vnode.dirs) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n      warn$1(\n        `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n      );\n    }\n    root = cloneVNode(root);\n    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n  }\n  if (vnode.transition) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n      warn$1(\n        `Component inside <Transition> renders non-element root node that cannot be animated.`\n      );\n    }\n    root.transition = vnode.transition;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n    setRoot(root);\n  } else {\n    result = root;\n  }\n  setCurrentRenderingInstance(prev);\n  return result;\n}\nconst getChildRoot = (vnode) => {\n  const rawChildren = vnode.children;\n  const dynamicChildren = vnode.dynamicChildren;\n  const childRoot = filterSingleRoot(rawChildren, false);\n  if (!childRoot) {\n    return [vnode, void 0];\n  } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n    return getChildRoot(childRoot);\n  }\n  const index = rawChildren.indexOf(childRoot);\n  const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n  const setRoot = (updatedRoot) => {\n    rawChildren[index] = updatedRoot;\n    if (dynamicChildren) {\n      if (dynamicIndex > -1) {\n        dynamicChildren[dynamicIndex] = updatedRoot;\n      } else if (updatedRoot.patchFlag > 0) {\n        vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n      }\n    }\n  };\n  return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n  let singleRoot;\n  for (let i = 0; i < children.length; i++) {\n    const child = children[i];\n    if (isVNode(child)) {\n      if (child.type !== Comment || child.children === \"v-if\") {\n        if (singleRoot) {\n          return;\n        } else {\n          singleRoot = child;\n          if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n            return filterSingleRoot(singleRoot.children);\n          }\n        }\n      }\n    } else {\n      return;\n    }\n  }\n  return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n  let res;\n  for (const key in attrs) {\n    if (key === \"class\" || key === \"style\" || isOn(key)) {\n      (res || (res = {}))[key] = attrs[key];\n    }\n  }\n  return res;\n};\nconst filterModelListeners = (attrs, props) => {\n  const res = {};\n  for (const key in attrs) {\n    if (!isModelListener(key) || !(key.slice(9) in props)) {\n      res[key] = attrs[key];\n    }\n  }\n  return res;\n};\nconst isElementRoot = (vnode) => {\n  return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n  const { props: prevProps, children: prevChildren, component } = prevVNode;\n  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n  const emits = component.emitsOptions;\n  if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n    return true;\n  }\n  if (nextVNode.dirs || nextVNode.transition) {\n    return true;\n  }\n  if (optimized && patchFlag >= 0) {\n    if (patchFlag & 1024) {\n      return true;\n    }\n    if (patchFlag & 16) {\n      if (!prevProps) {\n        return !!nextProps;\n      }\n      return hasPropsChanged(prevProps, nextProps, emits);\n    } else if (patchFlag & 8) {\n      const dynamicProps = nextVNode.dynamicProps;\n      for (let i = 0; i < dynamicProps.length; i++) {\n        const key = dynamicProps[i];\n        if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n          return true;\n        }\n      }\n    }\n  } else {\n    if (prevChildren || nextChildren) {\n      if (!nextChildren || !nextChildren.$stable) {\n        return true;\n      }\n    }\n    if (prevProps === nextProps) {\n      return false;\n    }\n    if (!prevProps) {\n      return !!nextProps;\n    }\n    if (!nextProps) {\n      return true;\n    }\n    return hasPropsChanged(prevProps, nextProps, emits);\n  }\n  return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n  const nextKeys = Object.keys(nextProps);\n  if (nextKeys.length !== Object.keys(prevProps).length) {\n    return true;\n  }\n  for (let i = 0; i < nextKeys.length; i++) {\n    const key = nextKeys[i];\n    if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n  while (parent) {\n    const root = parent.subTree;\n    if (root.suspense && root.suspense.activeBranch === vnode) {\n      root.el = vnode.el;\n    }\n    if (root === vnode) {\n      (vnode = parent.vnode).el = el;\n      parent = parent.parent;\n    } else {\n      break;\n    }\n  }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nconst FILTERS = \"filters\";\nfunction resolveComponent(name, maybeSelfReference) {\n  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n  if (isString(component)) {\n    return resolveAsset(COMPONENTS, component, false) || component;\n  } else {\n    return component || NULL_DYNAMIC_COMPONENT;\n  }\n}\nfunction resolveDirective(name) {\n  return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveFilter$1(name) {\n  return resolveAsset(FILTERS, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n  const instance = currentRenderingInstance || currentInstance;\n  if (instance) {\n    const Component = instance.type;\n    if (type === COMPONENTS) {\n      const selfName = getComponentName(\n        Component,\n        false\n      );\n      if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n        return Component;\n      }\n    }\n    const res = (\n      // local registration\n      // check instance[type] first which is resolved for options API\n      resolve(instance[type] || Component[type], name) || // global registration\n      resolve(instance.appContext[type], name)\n    );\n    if (!res && maybeSelfReference) {\n      return Component;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n      const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n      warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n    }\n    return res;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n    );\n  }\n}\nfunction resolve(registry, name) {\n  return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n  name: \"Suspense\",\n  // In order to make Suspense tree-shakable, we need to avoid importing it\n  // directly in the renderer. The renderer checks for the __isSuspense flag\n  // on a vnode's type and calls the `process` method, passing in renderer\n  // internals.\n  __isSuspense: true,\n  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n    if (n1 == null) {\n      mountSuspense(\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized,\n        rendererInternals\n      );\n    } else {\n      if (parentSuspense && parentSuspense.deps > 0) {\n        n2.suspense = n1.suspense;\n        return;\n      }\n      patchSuspense(\n        n1,\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        namespace,\n        slotScopeIds,\n        optimized,\n        rendererInternals\n      );\n    }\n  },\n  hydrate: hydrateSuspense,\n  create: createSuspenseBoundary,\n  normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n  const eventListener = vnode.props && vnode.props[name];\n  if (isFunction(eventListener)) {\n    eventListener();\n  }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n  const {\n    p: patch,\n    o: { createElement }\n  } = rendererInternals;\n  const hiddenContainer = createElement(\"div\");\n  const suspense = vnode.suspense = createSuspenseBoundary(\n    vnode,\n    parentSuspense,\n    parentComponent,\n    container,\n    hiddenContainer,\n    anchor,\n    namespace,\n    slotScopeIds,\n    optimized,\n    rendererInternals\n  );\n  patch(\n    null,\n    suspense.pendingBranch = vnode.ssContent,\n    hiddenContainer,\n    null,\n    parentComponent,\n    suspense,\n    namespace,\n    slotScopeIds\n  );\n  if (suspense.deps > 0) {\n    triggerEvent(vnode, \"onPending\");\n    triggerEvent(vnode, \"onFallback\");\n    patch(\n      null,\n      vnode.ssFallback,\n      container,\n      anchor,\n      parentComponent,\n      null,\n      // fallback tree will not have suspense context\n      namespace,\n      slotScopeIds\n    );\n    setActiveBranch(suspense, vnode.ssFallback);\n  } else {\n    suspense.resolve(false, true);\n  }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n  const suspense = n2.suspense = n1.suspense;\n  suspense.vnode = n2;\n  n2.el = n1.el;\n  const newBranch = n2.ssContent;\n  const newFallback = n2.ssFallback;\n  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n  if (pendingBranch) {\n    suspense.pendingBranch = newBranch;\n    if (isSameVNodeType(newBranch, pendingBranch)) {\n      patch(\n        pendingBranch,\n        newBranch,\n        suspense.hiddenContainer,\n        null,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      if (suspense.deps <= 0) {\n        suspense.resolve();\n      } else if (isInFallback) {\n        if (!isHydrating) {\n          patch(\n            activeBranch,\n            newFallback,\n            container,\n            anchor,\n            parentComponent,\n            null,\n            // fallback tree will not have suspense context\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          setActiveBranch(suspense, newFallback);\n        }\n      }\n    } else {\n      suspense.pendingId = suspenseId++;\n      if (isHydrating) {\n        suspense.isHydrating = false;\n        suspense.activeBranch = pendingBranch;\n      } else {\n        unmount(pendingBranch, parentComponent, suspense);\n      }\n      suspense.deps = 0;\n      suspense.effects.length = 0;\n      suspense.hiddenContainer = createElement(\"div\");\n      if (isInFallback) {\n        patch(\n          null,\n          newBranch,\n          suspense.hiddenContainer,\n          null,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        if (suspense.deps <= 0) {\n          suspense.resolve();\n        } else {\n          patch(\n            activeBranch,\n            newFallback,\n            container,\n            anchor,\n            parentComponent,\n            null,\n            // fallback tree will not have suspense context\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          setActiveBranch(suspense, newFallback);\n        }\n      } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n        patch(\n          activeBranch,\n          newBranch,\n          container,\n          anchor,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        suspense.resolve(true);\n      } else {\n        patch(\n          null,\n          newBranch,\n          suspense.hiddenContainer,\n          null,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        if (suspense.deps <= 0) {\n          suspense.resolve();\n        }\n      }\n    }\n  } else {\n    if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n      patch(\n        activeBranch,\n        newBranch,\n        container,\n        anchor,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      setActiveBranch(suspense, newBranch);\n    } else {\n      triggerEvent(n2, \"onPending\");\n      suspense.pendingBranch = newBranch;\n      if (newBranch.shapeFlag & 512) {\n        suspense.pendingId = newBranch.component.suspenseId;\n      } else {\n        suspense.pendingId = suspenseId++;\n      }\n      patch(\n        null,\n        newBranch,\n        suspense.hiddenContainer,\n        null,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      if (suspense.deps <= 0) {\n        suspense.resolve();\n      } else {\n        const { timeout, pendingId } = suspense;\n        if (timeout > 0) {\n          setTimeout(() => {\n            if (suspense.pendingId === pendingId) {\n              suspense.fallback(newFallback);\n            }\n          }, timeout);\n        } else if (timeout === 0) {\n          suspense.fallback(newFallback);\n        }\n      }\n    }\n  }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n  if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n    hasWarned = true;\n    console[console.info ? \"info\" : \"log\"](\n      `<Suspense> is an experimental feature and its API will likely change.`\n    );\n  }\n  const {\n    p: patch,\n    m: move,\n    um: unmount,\n    n: next,\n    o: { parentNode, remove }\n  } = rendererInternals;\n  let parentSuspenseId;\n  const isSuspensible = isVNodeSuspensible(vnode);\n  if (isSuspensible) {\n    if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n      parentSuspenseId = parentSuspense.pendingId;\n      parentSuspense.deps++;\n    }\n  }\n  const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    assertNumber(timeout, `Suspense timeout`);\n  }\n  const initialAnchor = anchor;\n  const suspense = {\n    vnode,\n    parent: parentSuspense,\n    parentComponent,\n    namespace,\n    container,\n    hiddenContainer,\n    deps: 0,\n    pendingId: suspenseId++,\n    timeout: typeof timeout === \"number\" ? timeout : -1,\n    activeBranch: null,\n    pendingBranch: null,\n    isInFallback: !isHydrating,\n    isHydrating,\n    isUnmounted: false,\n    effects: [],\n    resolve(resume = false, sync = false) {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        if (!resume && !suspense.pendingBranch) {\n          throw new Error(\n            `suspense.resolve() is called without a pending branch.`\n          );\n        }\n        if (suspense.isUnmounted) {\n          throw new Error(\n            `suspense.resolve() is called on an already unmounted suspense boundary.`\n          );\n        }\n      }\n      const {\n        vnode: vnode2,\n        activeBranch,\n        pendingBranch,\n        pendingId,\n        effects,\n        parentComponent: parentComponent2,\n        container: container2\n      } = suspense;\n      let delayEnter = false;\n      if (suspense.isHydrating) {\n        suspense.isHydrating = false;\n      } else if (!resume) {\n        delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n        if (delayEnter) {\n          activeBranch.transition.afterLeave = () => {\n            if (pendingId === suspense.pendingId) {\n              move(\n                pendingBranch,\n                container2,\n                anchor === initialAnchor ? next(activeBranch) : anchor,\n                0\n              );\n              queuePostFlushCb(effects);\n            }\n          };\n        }\n        if (activeBranch) {\n          if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n            anchor = next(activeBranch);\n          }\n          unmount(activeBranch, parentComponent2, suspense, true);\n        }\n        if (!delayEnter) {\n          move(pendingBranch, container2, anchor, 0);\n        }\n      }\n      setActiveBranch(suspense, pendingBranch);\n      suspense.pendingBranch = null;\n      suspense.isInFallback = false;\n      let parent = suspense.parent;\n      let hasUnresolvedAncestor = false;\n      while (parent) {\n        if (parent.pendingBranch) {\n          parent.effects.push(...effects);\n          hasUnresolvedAncestor = true;\n          break;\n        }\n        parent = parent.parent;\n      }\n      if (!hasUnresolvedAncestor && !delayEnter) {\n        queuePostFlushCb(effects);\n      }\n      suspense.effects = [];\n      if (isSuspensible) {\n        if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n          parentSuspense.deps--;\n          if (parentSuspense.deps === 0 && !sync) {\n            parentSuspense.resolve();\n          }\n        }\n      }\n      triggerEvent(vnode2, \"onResolve\");\n    },\n    fallback(fallbackVNode) {\n      if (!suspense.pendingBranch) {\n        return;\n      }\n      const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n      triggerEvent(vnode2, \"onFallback\");\n      const anchor2 = next(activeBranch);\n      const mountFallback = () => {\n        if (!suspense.isInFallback) {\n          return;\n        }\n        patch(\n          null,\n          fallbackVNode,\n          container2,\n          anchor2,\n          parentComponent2,\n          null,\n          // fallback tree will not have suspense context\n          namespace2,\n          slotScopeIds,\n          optimized\n        );\n        setActiveBranch(suspense, fallbackVNode);\n      };\n      const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n      if (delayEnter) {\n        activeBranch.transition.afterLeave = mountFallback;\n      }\n      suspense.isInFallback = true;\n      unmount(\n        activeBranch,\n        parentComponent2,\n        null,\n        // no suspense so unmount hooks fire now\n        true\n        // shouldRemove\n      );\n      if (!delayEnter) {\n        mountFallback();\n      }\n    },\n    move(container2, anchor2, type) {\n      suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n      suspense.container = container2;\n    },\n    next() {\n      return suspense.activeBranch && next(suspense.activeBranch);\n    },\n    registerDep(instance, setupRenderEffect) {\n      const isInPendingSuspense = !!suspense.pendingBranch;\n      if (isInPendingSuspense) {\n        suspense.deps++;\n      }\n      const hydratedEl = instance.vnode.el;\n      instance.asyncDep.catch((err) => {\n        handleError(err, instance, 0);\n      }).then((asyncSetupResult) => {\n        if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n          return;\n        }\n        instance.asyncResolved = true;\n        const { vnode: vnode2 } = instance;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(vnode2);\n        }\n        handleSetupResult(instance, asyncSetupResult, false);\n        if (hydratedEl) {\n          vnode2.el = hydratedEl;\n        }\n        const placeholder = !hydratedEl && instance.subTree.el;\n        setupRenderEffect(\n          instance,\n          vnode2,\n          // component may have been moved before resolve.\n          // if this is not a hydration, instance.subTree will be the comment\n          // placeholder.\n          parentNode(hydratedEl || instance.subTree.el),\n          // anchor will not be used if this is hydration, so only need to\n          // consider the comment placeholder case.\n          hydratedEl ? null : next(instance.subTree),\n          suspense,\n          namespace,\n          optimized\n        );\n        if (placeholder) {\n          remove(placeholder);\n        }\n        updateHOCHostEl(instance, vnode2.el);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n        if (isInPendingSuspense && --suspense.deps === 0) {\n          suspense.resolve();\n        }\n      });\n    },\n    unmount(parentSuspense2, doRemove) {\n      suspense.isUnmounted = true;\n      if (suspense.activeBranch) {\n        unmount(\n          suspense.activeBranch,\n          parentComponent,\n          parentSuspense2,\n          doRemove\n        );\n      }\n      if (suspense.pendingBranch) {\n        unmount(\n          suspense.pendingBranch,\n          parentComponent,\n          parentSuspense2,\n          doRemove\n        );\n      }\n    }\n  };\n  return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n  const suspense = vnode.suspense = createSuspenseBoundary(\n    vnode,\n    parentSuspense,\n    parentComponent,\n    node.parentNode,\n    // eslint-disable-next-line no-restricted-globals\n    document.createElement(\"div\"),\n    null,\n    namespace,\n    slotScopeIds,\n    optimized,\n    rendererInternals,\n    true\n  );\n  const result = hydrateNode(\n    node,\n    suspense.pendingBranch = vnode.ssContent,\n    parentComponent,\n    suspense,\n    slotScopeIds,\n    optimized\n  );\n  if (suspense.deps === 0) {\n    suspense.resolve(false, true);\n  }\n  return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n  const { shapeFlag, children } = vnode;\n  const isSlotChildren = shapeFlag & 32;\n  vnode.ssContent = normalizeSuspenseSlot(\n    isSlotChildren ? children.default : children\n  );\n  vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n  let block;\n  if (isFunction(s)) {\n    const trackBlock = isBlockTreeEnabled && s._c;\n    if (trackBlock) {\n      s._d = false;\n      openBlock();\n    }\n    s = s();\n    if (trackBlock) {\n      s._d = true;\n      block = currentBlock;\n      closeBlock();\n    }\n  }\n  if (isArray(s)) {\n    const singleChild = filterSingleRoot(s);\n    if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n      warn$1(`<Suspense> slots expect a single root node.`);\n    }\n    s = singleChild;\n  }\n  s = normalizeVNode(s);\n  if (block && !s.dynamicChildren) {\n    s.dynamicChildren = block.filter((c) => c !== s);\n  }\n  return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n  if (suspense && suspense.pendingBranch) {\n    if (isArray(fn)) {\n      suspense.effects.push(...fn);\n    } else {\n      suspense.effects.push(fn);\n    }\n  } else {\n    queuePostFlushCb(fn);\n  }\n}\nfunction setActiveBranch(suspense, branch) {\n  suspense.activeBranch = branch;\n  const { vnode, parentComponent } = suspense;\n  let el = branch.el;\n  while (!el && branch.component) {\n    branch = branch.component.subTree;\n    el = branch.el;\n  }\n  vnode.el = el;\n  if (parentComponent && parentComponent.subTree === vnode) {\n    parentComponent.vnode.el = el;\n    updateHOCHostEl(parentComponent, el);\n  }\n}\nfunction isVNodeSuspensible(vnode) {\n  var _a;\n  return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst legacyDirectiveHookMap = {\n  beforeMount: \"bind\",\n  mounted: \"inserted\",\n  updated: [\"update\", \"componentUpdated\"],\n  unmounted: \"unbind\"\n};\nfunction mapCompatDirectiveHook(name, dir, instance) {\n  const mappedName = legacyDirectiveHookMap[name];\n  if (mappedName) {\n    if (isArray(mappedName)) {\n      const hook = [];\n      mappedName.forEach((mapped) => {\n        const mappedHook = dir[mapped];\n        if (mappedHook) {\n          softAssertCompatEnabled(\n            \"CUSTOM_DIR\",\n            instance,\n            mapped,\n            name\n          );\n          hook.push(mappedHook);\n        }\n      });\n      return hook.length ? hook : void 0;\n    } else {\n      if (dir[mappedName]) {\n        softAssertCompatEnabled(\n          \"CUSTOM_DIR\",\n          instance,\n          mappedName,\n          name\n        );\n      }\n      return dir[mappedName];\n    }\n  }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n  {\n    const ctx = inject(ssrContextKey);\n    if (!ctx) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n      );\n    }\n    return ctx;\n  }\n};\n\nfunction watchEffect(effect, options) {\n  return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n  );\n}\nfunction watchSyncEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n  );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n    warn$1(\n      `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n    );\n  }\n  return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n  immediate,\n  deep,\n  flush,\n  once,\n  onTrack,\n  onTrigger\n} = EMPTY_OBJ) {\n  if (cb && once) {\n    const _cb = cb;\n    cb = (...args) => {\n      _cb(...args);\n      unwatch();\n    };\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n    warn$1(\n      `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n    );\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n    if (immediate !== void 0) {\n      warn$1(\n        `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (deep !== void 0) {\n      warn$1(\n        `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (once !== void 0) {\n      warn$1(\n        `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n  }\n  const warnInvalidSource = (s) => {\n    warn$1(\n      `Invalid watch source: `,\n      s,\n      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n    );\n  };\n  const instance = currentInstance;\n  const reactiveGetter = (source2) => deep === true ? source2 : (\n    // for deep: false, only traverse root-level properties\n    traverse(source2, deep === false ? 1 : void 0)\n  );\n  let getter;\n  let forceTrigger = false;\n  let isMultiSource = false;\n  if (isRef(source)) {\n    getter = () => source.value;\n    forceTrigger = isShallow(source);\n  } else if (isReactive(source)) {\n    getter = () => reactiveGetter(source);\n    forceTrigger = true;\n  } else if (isArray(source)) {\n    isMultiSource = true;\n    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n    getter = () => source.map((s) => {\n      if (isRef(s)) {\n        return s.value;\n      } else if (isReactive(s)) {\n        return reactiveGetter(s);\n      } else if (isFunction(s)) {\n        return callWithErrorHandling(s, instance, 2);\n      } else {\n        !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n      }\n    });\n  } else if (isFunction(source)) {\n    if (cb) {\n      getter = () => callWithErrorHandling(source, instance, 2);\n    } else {\n      getter = () => {\n        if (cleanup) {\n          cleanup();\n        }\n        return callWithAsyncErrorHandling(\n          source,\n          instance,\n          3,\n          [onCleanup]\n        );\n      };\n    }\n  } else {\n    getter = NOOP;\n    !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n  }\n  if (cb && !deep) {\n    const baseGetter = getter;\n    getter = () => {\n      const val = baseGetter();\n      if (isArray(val) && checkCompatEnabled(\"WATCH_ARRAY\", instance)) {\n        traverse(val);\n      }\n      return val;\n    };\n  }\n  if (cb && deep) {\n    const baseGetter = getter;\n    getter = () => traverse(baseGetter());\n  }\n  let cleanup;\n  let onCleanup = (fn) => {\n    cleanup = effect.onStop = () => {\n      callWithErrorHandling(fn, instance, 4);\n      cleanup = effect.onStop = void 0;\n    };\n  };\n  let ssrCleanup;\n  if (isInSSRComponentSetup) {\n    onCleanup = NOOP;\n    if (!cb) {\n      getter();\n    } else if (immediate) {\n      callWithAsyncErrorHandling(cb, instance, 3, [\n        getter(),\n        isMultiSource ? [] : void 0,\n        onCleanup\n      ]);\n    }\n    if (flush === \"sync\") {\n      const ctx = useSSRContext();\n      ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n    } else {\n      return NOOP;\n    }\n  }\n  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n  const job = () => {\n    if (!effect.active || !effect.dirty) {\n      return;\n    }\n    if (cb) {\n      const newValue = effect.run();\n      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled(\"WATCH_ARRAY\", instance)) {\n        if (cleanup) {\n          cleanup();\n        }\n        callWithAsyncErrorHandling(cb, instance, 3, [\n          newValue,\n          // pass undefined as the old value when it's changed for the first time\n          oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n          onCleanup\n        ]);\n        oldValue = newValue;\n      }\n    } else {\n      effect.run();\n    }\n  };\n  job.allowRecurse = !!cb;\n  let scheduler;\n  if (flush === \"sync\") {\n    scheduler = job;\n  } else if (flush === \"post\") {\n    scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n  } else {\n    job.pre = true;\n    if (instance)\n      job.id = instance.uid;\n    scheduler = () => queueJob(job);\n  }\n  const effect = new ReactiveEffect(getter, NOOP, scheduler);\n  const scope = getCurrentScope();\n  const unwatch = () => {\n    effect.stop();\n    if (scope) {\n      remove(scope.effects, effect);\n    }\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    effect.onTrack = onTrack;\n    effect.onTrigger = onTrigger;\n  }\n  if (cb) {\n    if (immediate) {\n      job();\n    } else {\n      oldValue = effect.run();\n    }\n  } else if (flush === \"post\") {\n    queuePostRenderEffect(\n      effect.run.bind(effect),\n      instance && instance.suspense\n    );\n  } else {\n    effect.run();\n  }\n  if (ssrCleanup)\n    ssrCleanup.push(unwatch);\n  return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n  const publicThis = this.proxy;\n  const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n  let cb;\n  if (isFunction(value)) {\n    cb = value;\n  } else {\n    cb = value.handler;\n    options = value;\n  }\n  const reset = setCurrentInstance(this);\n  const res = doWatch(getter, cb.bind(publicThis), options);\n  reset();\n  return res;\n}\nfunction createPathGetter(ctx, path) {\n  const segments = path.split(\".\");\n  return () => {\n    let cur = ctx;\n    for (let i = 0; i < segments.length && cur; i++) {\n      cur = cur[segments[i]];\n    }\n    return cur;\n  };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n  if (!isObject(value) || value[\"__v_skip\"]) {\n    return value;\n  }\n  if (depth && depth > 0) {\n    if (currentDepth >= depth) {\n      return value;\n    }\n    currentDepth++;\n  }\n  seen = seen || /* @__PURE__ */ new Set();\n  if (seen.has(value)) {\n    return value;\n  }\n  seen.add(value);\n  if (isRef(value)) {\n    traverse(value.value, depth, currentDepth, seen);\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      traverse(value[i], depth, currentDepth, seen);\n    }\n  } else if (isSet(value) || isMap(value)) {\n    value.forEach((v) => {\n      traverse(v, depth, currentDepth, seen);\n    });\n  } else if (isPlainObject(value)) {\n    for (const key in value) {\n      traverse(value[key], depth, currentDepth, seen);\n    }\n  }\n  return value;\n}\n\nfunction validateDirectiveName(name) {\n  if (isBuiltInDirective(name)) {\n    warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n  }\n}\nfunction withDirectives(vnode, directives) {\n  if (currentRenderingInstance === null) {\n    !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n    return vnode;\n  }\n  const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n  const bindings = vnode.dirs || (vnode.dirs = []);\n  for (let i = 0; i < directives.length; i++) {\n    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n    if (dir) {\n      if (isFunction(dir)) {\n        dir = {\n          mounted: dir,\n          updated: dir\n        };\n      }\n      if (dir.deep) {\n        traverse(value);\n      }\n      bindings.push({\n        dir,\n        instance,\n        value,\n        oldValue: void 0,\n        arg,\n        modifiers\n      });\n    }\n  }\n  return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n  const bindings = vnode.dirs;\n  const oldBindings = prevVNode && prevVNode.dirs;\n  for (let i = 0; i < bindings.length; i++) {\n    const binding = bindings[i];\n    if (oldBindings) {\n      binding.oldValue = oldBindings[i].value;\n    }\n    let hook = binding.dir[name];\n    if (!hook) {\n      hook = mapCompatDirectiveHook(name, binding.dir, instance);\n    }\n    if (hook) {\n      pauseTracking();\n      callWithAsyncErrorHandling(hook, instance, 8, [\n        vnode.el,\n        binding,\n        vnode,\n        prevVNode\n      ]);\n      resetTracking();\n    }\n  }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey$1 = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n  const state = {\n    isMounted: false,\n    isLeaving: false,\n    isUnmounting: false,\n    leavingVNodes: /* @__PURE__ */ new Map()\n  };\n  onMounted(() => {\n    state.isMounted = true;\n  });\n  onBeforeUnmount(() => {\n    state.isUnmounting = true;\n  });\n  return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n  mode: String,\n  appear: Boolean,\n  persisted: Boolean,\n  // enter\n  onBeforeEnter: TransitionHookValidator,\n  onEnter: TransitionHookValidator,\n  onAfterEnter: TransitionHookValidator,\n  onEnterCancelled: TransitionHookValidator,\n  // leave\n  onBeforeLeave: TransitionHookValidator,\n  onLeave: TransitionHookValidator,\n  onAfterLeave: TransitionHookValidator,\n  onLeaveCancelled: TransitionHookValidator,\n  // appear\n  onBeforeAppear: TransitionHookValidator,\n  onAppear: TransitionHookValidator,\n  onAfterAppear: TransitionHookValidator,\n  onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n  name: `BaseTransition`,\n  props: BaseTransitionPropsValidators,\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const state = useTransitionState();\n    let prevTransitionKey;\n    return () => {\n      const children = slots.default && getTransitionRawChildren(slots.default(), true);\n      if (!children || !children.length) {\n        return;\n      }\n      let child = children[0];\n      if (children.length > 1) {\n        let hasFound = false;\n        for (const c of children) {\n          if (c.type !== Comment) {\n            if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n              warn$1(\n                \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n              );\n              break;\n            }\n            child = c;\n            hasFound = true;\n            if (!!!(process.env.NODE_ENV !== \"production\"))\n              break;\n          }\n        }\n      }\n      const rawProps = toRaw(props);\n      const { mode } = rawProps;\n      if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n        warn$1(`invalid <transition> mode: ${mode}`);\n      }\n      if (state.isLeaving) {\n        return emptyPlaceholder(child);\n      }\n      const innerChild = getKeepAliveChild(child);\n      if (!innerChild) {\n        return emptyPlaceholder(child);\n      }\n      const enterHooks = resolveTransitionHooks(\n        innerChild,\n        rawProps,\n        state,\n        instance\n      );\n      setTransitionHooks(innerChild, enterHooks);\n      const oldChild = instance.subTree;\n      const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n      let transitionKeyChanged = false;\n      const { getTransitionKey } = innerChild.type;\n      if (getTransitionKey) {\n        const key = getTransitionKey();\n        if (prevTransitionKey === void 0) {\n          prevTransitionKey = key;\n        } else if (key !== prevTransitionKey) {\n          prevTransitionKey = key;\n          transitionKeyChanged = true;\n        }\n      }\n      if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n        const leavingHooks = resolveTransitionHooks(\n          oldInnerChild,\n          rawProps,\n          state,\n          instance\n        );\n        setTransitionHooks(oldInnerChild, leavingHooks);\n        if (mode === \"out-in\") {\n          state.isLeaving = true;\n          leavingHooks.afterLeave = () => {\n            state.isLeaving = false;\n            if (instance.update.active !== false) {\n              instance.effect.dirty = true;\n              instance.update();\n            }\n          };\n          return emptyPlaceholder(child);\n        } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n            const leavingVNodesCache = getLeavingNodesForType(\n              state,\n              oldInnerChild\n            );\n            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n            el[leaveCbKey] = () => {\n              earlyRemove();\n              el[leaveCbKey] = void 0;\n              delete enterHooks.delayedLeave;\n            };\n            enterHooks.delayedLeave = delayedLeave;\n          };\n        }\n      }\n      return child;\n    };\n  }\n};\n{\n  BaseTransitionImpl.__isBuiltIn = true;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n  const { leavingVNodes } = state;\n  let leavingVNodesCache = leavingVNodes.get(vnode.type);\n  if (!leavingVNodesCache) {\n    leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n    leavingVNodes.set(vnode.type, leavingVNodesCache);\n  }\n  return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n  const {\n    appear,\n    mode,\n    persisted = false,\n    onBeforeEnter,\n    onEnter,\n    onAfterEnter,\n    onEnterCancelled,\n    onBeforeLeave,\n    onLeave,\n    onAfterLeave,\n    onLeaveCancelled,\n    onBeforeAppear,\n    onAppear,\n    onAfterAppear,\n    onAppearCancelled\n  } = props;\n  const key = String(vnode.key);\n  const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n  const callHook = (hook, args) => {\n    hook && callWithAsyncErrorHandling(\n      hook,\n      instance,\n      9,\n      args\n    );\n  };\n  const callAsyncHook = (hook, args) => {\n    const done = args[1];\n    callHook(hook, args);\n    if (isArray(hook)) {\n      if (hook.every((hook2) => hook2.length <= 1))\n        done();\n    } else if (hook.length <= 1) {\n      done();\n    }\n  };\n  const hooks = {\n    mode,\n    persisted,\n    beforeEnter(el) {\n      let hook = onBeforeEnter;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onBeforeAppear || onBeforeEnter;\n        } else {\n          return;\n        }\n      }\n      if (el[leaveCbKey]) {\n        el[leaveCbKey](\n          true\n          /* cancelled */\n        );\n      }\n      const leavingVNode = leavingVNodesCache[key];\n      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n        leavingVNode.el[leaveCbKey]();\n      }\n      callHook(hook, [el]);\n    },\n    enter(el) {\n      let hook = onEnter;\n      let afterHook = onAfterEnter;\n      let cancelHook = onEnterCancelled;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onAppear || onEnter;\n          afterHook = onAfterAppear || onAfterEnter;\n          cancelHook = onAppearCancelled || onEnterCancelled;\n        } else {\n          return;\n        }\n      }\n      let called = false;\n      const done = el[enterCbKey$1] = (cancelled) => {\n        if (called)\n          return;\n        called = true;\n        if (cancelled) {\n          callHook(cancelHook, [el]);\n        } else {\n          callHook(afterHook, [el]);\n        }\n        if (hooks.delayedLeave) {\n          hooks.delayedLeave();\n        }\n        el[enterCbKey$1] = void 0;\n      };\n      if (hook) {\n        callAsyncHook(hook, [el, done]);\n      } else {\n        done();\n      }\n    },\n    leave(el, remove) {\n      const key2 = String(vnode.key);\n      if (el[enterCbKey$1]) {\n        el[enterCbKey$1](\n          true\n          /* cancelled */\n        );\n      }\n      if (state.isUnmounting) {\n        return remove();\n      }\n      callHook(onBeforeLeave, [el]);\n      let called = false;\n      const done = el[leaveCbKey] = (cancelled) => {\n        if (called)\n          return;\n        called = true;\n        remove();\n        if (cancelled) {\n          callHook(onLeaveCancelled, [el]);\n        } else {\n          callHook(onAfterLeave, [el]);\n        }\n        el[leaveCbKey] = void 0;\n        if (leavingVNodesCache[key2] === vnode) {\n          delete leavingVNodesCache[key2];\n        }\n      };\n      leavingVNodesCache[key2] = vnode;\n      if (onLeave) {\n        callAsyncHook(onLeave, [el, done]);\n      } else {\n        done();\n      }\n    },\n    clone(vnode2) {\n      return resolveTransitionHooks(vnode2, props, state, instance);\n    }\n  };\n  return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n  if (isKeepAlive(vnode)) {\n    vnode = cloneVNode(vnode);\n    vnode.children = null;\n    return vnode;\n  }\n}\nfunction getKeepAliveChild(vnode) {\n  return isKeepAlive(vnode) ? (\n    // #7121 ensure get the child component subtree in case\n    // it's been replaced during HMR\n    !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n  ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n  if (vnode.shapeFlag & 6 && vnode.component) {\n    setTransitionHooks(vnode.component.subTree, hooks);\n  } else if (vnode.shapeFlag & 128) {\n    vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n  } else {\n    vnode.transition = hooks;\n  }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n  let ret = [];\n  let keyedFragmentCount = 0;\n  for (let i = 0; i < children.length; i++) {\n    let child = children[i];\n    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n    if (child.type === Fragment) {\n      if (child.patchFlag & 128)\n        keyedFragmentCount++;\n      ret = ret.concat(\n        getTransitionRawChildren(child.children, keepComment, key)\n      );\n    } else if (keepComment || child.type !== Comment) {\n      ret.push(key != null ? cloneVNode(child, { key }) : child);\n    }\n  }\n  if (keyedFragmentCount > 1) {\n    for (let i = 0; i < ret.length; i++) {\n      ret[i].patchFlag = -2;\n    }\n  }\n  return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n  return isFunction(options) ? (\n    // #8326: extend call and options.name access are considered side-effects\n    // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n    /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n  ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n  if (isFunction(source)) {\n    source = { loader: source };\n  }\n  const {\n    loader,\n    loadingComponent,\n    errorComponent,\n    delay = 200,\n    timeout,\n    // undefined = never times out\n    suspensible = true,\n    onError: userOnError\n  } = source;\n  let pendingRequest = null;\n  let resolvedComp;\n  let retries = 0;\n  const retry = () => {\n    retries++;\n    pendingRequest = null;\n    return load();\n  };\n  const load = () => {\n    let thisRequest;\n    return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n      err = err instanceof Error ? err : new Error(String(err));\n      if (userOnError) {\n        return new Promise((resolve, reject) => {\n          const userRetry = () => resolve(retry());\n          const userFail = () => reject(err);\n          userOnError(err, userRetry, userFail, retries + 1);\n        });\n      } else {\n        throw err;\n      }\n    }).then((comp) => {\n      if (thisRequest !== pendingRequest && pendingRequest) {\n        return pendingRequest;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n        warn$1(\n          `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n        );\n      }\n      if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n        comp = comp.default;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n        throw new Error(`Invalid async component load result: ${comp}`);\n      }\n      resolvedComp = comp;\n      return comp;\n    }));\n  };\n  return defineComponent({\n    name: \"AsyncComponentWrapper\",\n    __asyncLoader: load,\n    get __asyncResolved() {\n      return resolvedComp;\n    },\n    setup() {\n      const instance = currentInstance;\n      if (resolvedComp) {\n        return () => createInnerComp(resolvedComp, instance);\n      }\n      const onError = (err) => {\n        pendingRequest = null;\n        handleError(\n          err,\n          instance,\n          13,\n          !errorComponent\n        );\n      };\n      if (suspensible && instance.suspense || isInSSRComponentSetup) {\n        return load().then((comp) => {\n          return () => createInnerComp(comp, instance);\n        }).catch((err) => {\n          onError(err);\n          return () => errorComponent ? createVNode(errorComponent, {\n            error: err\n          }) : null;\n        });\n      }\n      const loaded = ref(false);\n      const error = ref();\n      const delayed = ref(!!delay);\n      if (delay) {\n        setTimeout(() => {\n          delayed.value = false;\n        }, delay);\n      }\n      if (timeout != null) {\n        setTimeout(() => {\n          if (!loaded.value && !error.value) {\n            const err = new Error(\n              `Async component timed out after ${timeout}ms.`\n            );\n            onError(err);\n            error.value = err;\n          }\n        }, timeout);\n      }\n      load().then(() => {\n        loaded.value = true;\n        if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n          instance.parent.effect.dirty = true;\n          queueJob(instance.parent.update);\n        }\n      }).catch((err) => {\n        onError(err);\n        error.value = err;\n      });\n      return () => {\n        if (loaded.value && resolvedComp) {\n          return createInnerComp(resolvedComp, instance);\n        } else if (error.value && errorComponent) {\n          return createVNode(errorComponent, {\n            error: error.value\n          });\n        } else if (loadingComponent && !delayed.value) {\n          return createVNode(loadingComponent);\n        }\n      };\n    }\n  });\n}\nfunction createInnerComp(comp, parent) {\n  const { ref: ref2, props, children, ce } = parent.vnode;\n  const vnode = createVNode(comp, props, children);\n  vnode.ref = ref2;\n  vnode.ce = ce;\n  delete parent.vnode.ce;\n  return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n  name: `KeepAlive`,\n  // Marker for special handling inside the renderer. We are not using a ===\n  // check directly on KeepAlive in the renderer, because importing it directly\n  // would prevent it from being tree-shaken.\n  __isKeepAlive: true,\n  props: {\n    include: [String, RegExp, Array],\n    exclude: [String, RegExp, Array],\n    max: [String, Number]\n  },\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const sharedContext = instance.ctx;\n    if (!sharedContext.renderer) {\n      return () => {\n        const children = slots.default && slots.default();\n        return children && children.length === 1 ? children[0] : children;\n      };\n    }\n    const cache = /* @__PURE__ */ new Map();\n    const keys = /* @__PURE__ */ new Set();\n    let current = null;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      instance.__v_cache = cache;\n    }\n    const parentSuspense = instance.suspense;\n    const {\n      renderer: {\n        p: patch,\n        m: move,\n        um: _unmount,\n        o: { createElement }\n      }\n    } = sharedContext;\n    const storageContainer = createElement(\"div\");\n    sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n      const instance2 = vnode.component;\n      move(vnode, container, anchor, 0, parentSuspense);\n      patch(\n        instance2.vnode,\n        vnode,\n        container,\n        anchor,\n        instance2,\n        parentSuspense,\n        namespace,\n        vnode.slotScopeIds,\n        optimized\n      );\n      queuePostRenderEffect(() => {\n        instance2.isDeactivated = false;\n        if (instance2.a) {\n          invokeArrayFns(instance2.a);\n        }\n        const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n        if (vnodeHook) {\n          invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n        }\n      }, parentSuspense);\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentAdded(instance2);\n      }\n    };\n    sharedContext.deactivate = (vnode) => {\n      const instance2 = vnode.component;\n      move(vnode, storageContainer, null, 1, parentSuspense);\n      queuePostRenderEffect(() => {\n        if (instance2.da) {\n          invokeArrayFns(instance2.da);\n        }\n        const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n        if (vnodeHook) {\n          invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n        }\n        instance2.isDeactivated = true;\n      }, parentSuspense);\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentAdded(instance2);\n      }\n    };\n    function unmount(vnode) {\n      resetShapeFlag(vnode);\n      _unmount(vnode, instance, parentSuspense, true);\n    }\n    function pruneCache(filter) {\n      cache.forEach((vnode, key) => {\n        const name = getComponentName(vnode.type);\n        if (name && (!filter || !filter(name))) {\n          pruneCacheEntry(key);\n        }\n      });\n    }\n    function pruneCacheEntry(key) {\n      const cached = cache.get(key);\n      if (!current || !isSameVNodeType(cached, current)) {\n        unmount(cached);\n      } else if (current) {\n        resetShapeFlag(current);\n      }\n      cache.delete(key);\n      keys.delete(key);\n    }\n    watch(\n      () => [props.include, props.exclude],\n      ([include, exclude]) => {\n        include && pruneCache((name) => matches(include, name));\n        exclude && pruneCache((name) => !matches(exclude, name));\n      },\n      // prune post-render after `current` has been updated\n      { flush: \"post\", deep: true }\n    );\n    let pendingCacheKey = null;\n    const cacheSubtree = () => {\n      if (pendingCacheKey != null) {\n        cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n      }\n    };\n    onMounted(cacheSubtree);\n    onUpdated(cacheSubtree);\n    onBeforeUnmount(() => {\n      cache.forEach((cached) => {\n        const { subTree, suspense } = instance;\n        const vnode = getInnerChild(subTree);\n        if (cached.type === vnode.type && cached.key === vnode.key) {\n          resetShapeFlag(vnode);\n          const da = vnode.component.da;\n          da && queuePostRenderEffect(da, suspense);\n          return;\n        }\n        unmount(cached);\n      });\n    });\n    return () => {\n      pendingCacheKey = null;\n      if (!slots.default) {\n        return null;\n      }\n      const children = slots.default();\n      const rawVNode = children[0];\n      if (children.length > 1) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(`KeepAlive should contain exactly one component child.`);\n        }\n        current = null;\n        return children;\n      } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n        current = null;\n        return rawVNode;\n      }\n      let vnode = getInnerChild(rawVNode);\n      const comp = vnode.type;\n      const name = getComponentName(\n        isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n      );\n      const { include, exclude, max } = props;\n      if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n        current = vnode;\n        return rawVNode;\n      }\n      const key = vnode.key == null ? comp : vnode.key;\n      const cachedVNode = cache.get(key);\n      if (vnode.el) {\n        vnode = cloneVNode(vnode);\n        if (rawVNode.shapeFlag & 128) {\n          rawVNode.ssContent = vnode;\n        }\n      }\n      pendingCacheKey = key;\n      if (cachedVNode) {\n        vnode.el = cachedVNode.el;\n        vnode.component = cachedVNode.component;\n        if (vnode.transition) {\n          setTransitionHooks(vnode, vnode.transition);\n        }\n        vnode.shapeFlag |= 512;\n        keys.delete(key);\n        keys.add(key);\n      } else {\n        keys.add(key);\n        if (max && keys.size > parseInt(max, 10)) {\n          pruneCacheEntry(keys.values().next().value);\n        }\n      }\n      vnode.shapeFlag |= 256;\n      current = vnode;\n      return isSuspense(rawVNode.type) ? rawVNode : vnode;\n    };\n  }\n};\n{\n  KeepAliveImpl.__isBuildIn = true;\n}\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n  if (isArray(pattern)) {\n    return pattern.some((p) => matches(p, name));\n  } else if (isString(pattern)) {\n    return pattern.split(\",\").includes(name);\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name);\n  }\n  return false;\n}\nfunction onActivated(hook, target) {\n  registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n  registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n  const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n    let current = target;\n    while (current) {\n      if (current.isDeactivated) {\n        return;\n      }\n      current = current.parent;\n    }\n    return hook();\n  });\n  injectHook(type, wrappedHook, target);\n  if (target) {\n    let current = target.parent;\n    while (current && current.parent) {\n      if (isKeepAlive(current.parent.vnode)) {\n        injectToKeepAliveRoot(wrappedHook, type, target, current);\n      }\n      current = current.parent;\n    }\n  }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n  const injected = injectHook(\n    type,\n    hook,\n    keepAliveRoot,\n    true\n    /* prepend */\n  );\n  onUnmounted(() => {\n    remove(keepAliveRoot[type], injected);\n  }, target);\n}\nfunction resetShapeFlag(vnode) {\n  vnode.shapeFlag &= ~256;\n  vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n  if (target) {\n    const hooks = target[type] || (target[type] = []);\n    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n      if (target.isUnmounted) {\n        return;\n      }\n      pauseTracking();\n      const reset = setCurrentInstance(target);\n      const res = callWithAsyncErrorHandling(hook, target, type, args);\n      reset();\n      resetTracking();\n      return res;\n    });\n    if (prepend) {\n      hooks.unshift(wrappedHook);\n    } else {\n      hooks.push(wrappedHook);\n    }\n    return wrappedHook;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n    warn$1(\n      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n    );\n  }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n  (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n  \"rtg\"\n);\nconst onRenderTracked = createHook(\n  \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n  injectHook(\"ec\", hook, target);\n}\n\nfunction getCompatChildren(instance) {\n  assertCompatEnabled(\"INSTANCE_CHILDREN\", instance);\n  const root = instance.subTree;\n  const children = [];\n  if (root) {\n    walk(root, children);\n  }\n  return children;\n}\nfunction walk(vnode, children) {\n  if (vnode.component) {\n    children.push(vnode.component.proxy);\n  } else if (vnode.shapeFlag & 16) {\n    const vnodes = vnode.children;\n    for (let i = 0; i < vnodes.length; i++) {\n      walk(vnodes[i], children);\n    }\n  }\n}\n\nfunction getCompatListeners(instance) {\n  assertCompatEnabled(\"INSTANCE_LISTENERS\", instance);\n  const listeners = {};\n  const rawProps = instance.vnode.props;\n  if (!rawProps) {\n    return listeners;\n  }\n  for (const key in rawProps) {\n    if (isOn(key)) {\n      listeners[key[2].toLowerCase() + key.slice(3)] = rawProps[key];\n    }\n  }\n  return listeners;\n}\n\nfunction convertLegacyRenderFn(instance) {\n  const Component = instance.type;\n  const render = Component.render;\n  if (!render || render._rc || render._compatChecked || render._compatWrapped) {\n    return;\n  }\n  if (render.length >= 2) {\n    render._compatChecked = true;\n    return;\n  }\n  if (checkCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n    const wrapped = Component.render = function compatRender() {\n      return render.call(this, compatH);\n    };\n    wrapped._compatWrapped = true;\n  }\n}\nfunction compatH(type, propsOrChildren, children) {\n  if (!type) {\n    type = Comment;\n  }\n  if (typeof type === \"string\") {\n    const t = hyphenate(type);\n    if (t === \"transition\" || t === \"transition-group\" || t === \"keep-alive\") {\n      type = `__compat__${t}`;\n    }\n    type = resolveDynamicComponent(type);\n  }\n  const l = arguments.length;\n  const is2ndArgArrayChildren = isArray(propsOrChildren);\n  if (l === 2 || is2ndArgArrayChildren) {\n    if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {\n      if (isVNode(propsOrChildren)) {\n        return convertLegacySlots(createVNode(type, null, [propsOrChildren]));\n      }\n      return convertLegacySlots(\n        convertLegacyDirectives(\n          createVNode(type, convertLegacyProps(propsOrChildren, type)),\n          propsOrChildren\n        )\n      );\n    } else {\n      return convertLegacySlots(createVNode(type, null, propsOrChildren));\n    }\n  } else {\n    if (isVNode(children)) {\n      children = [children];\n    }\n    return convertLegacySlots(\n      convertLegacyDirectives(\n        createVNode(type, convertLegacyProps(propsOrChildren, type), children),\n        propsOrChildren\n      )\n    );\n  }\n}\nconst skipLegacyRootLevelProps = /* @__PURE__ */ makeMap(\n  \"staticStyle,staticClass,directives,model,hook\"\n);\nfunction convertLegacyProps(legacyProps, type) {\n  if (!legacyProps) {\n    return null;\n  }\n  const converted = {};\n  for (const key in legacyProps) {\n    if (key === \"attrs\" || key === \"domProps\" || key === \"props\") {\n      extend(converted, legacyProps[key]);\n    } else if (key === \"on\" || key === \"nativeOn\") {\n      const listeners = legacyProps[key];\n      for (const event in listeners) {\n        let handlerKey = convertLegacyEventKey(event);\n        if (key === \"nativeOn\")\n          handlerKey += `Native`;\n        const existing = converted[handlerKey];\n        const incoming = listeners[event];\n        if (existing !== incoming) {\n          if (existing) {\n            converted[handlerKey] = [].concat(existing, incoming);\n          } else {\n            converted[handlerKey] = incoming;\n          }\n        }\n      }\n    } else if (!skipLegacyRootLevelProps(key)) {\n      converted[key] = legacyProps[key];\n    }\n  }\n  if (legacyProps.staticClass) {\n    converted.class = normalizeClass([legacyProps.staticClass, converted.class]);\n  }\n  if (legacyProps.staticStyle) {\n    converted.style = normalizeStyle([legacyProps.staticStyle, converted.style]);\n  }\n  if (legacyProps.model && isObject(type)) {\n    const { prop = \"value\", event = \"input\" } = type.model || {};\n    converted[prop] = legacyProps.model.value;\n    converted[compatModelEventPrefix + event] = legacyProps.model.callback;\n  }\n  return converted;\n}\nfunction convertLegacyEventKey(event) {\n  if (event[0] === \"&\") {\n    event = event.slice(1) + \"Passive\";\n  }\n  if (event[0] === \"~\") {\n    event = event.slice(1) + \"Once\";\n  }\n  if (event[0] === \"!\") {\n    event = event.slice(1) + \"Capture\";\n  }\n  return toHandlerKey(event);\n}\nfunction convertLegacyDirectives(vnode, props) {\n  if (props && props.directives) {\n    return withDirectives(\n      vnode,\n      props.directives.map(({ name, value, arg, modifiers }) => {\n        return [\n          resolveDirective(name),\n          value,\n          arg,\n          modifiers\n        ];\n      })\n    );\n  }\n  return vnode;\n}\nfunction convertLegacySlots(vnode) {\n  const { props, children } = vnode;\n  let slots;\n  if (vnode.shapeFlag & 6 && isArray(children)) {\n    slots = {};\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i];\n      const slotName = isVNode(child) && child.props && child.props.slot || \"default\";\n      const slot = slots[slotName] || (slots[slotName] = []);\n      if (isVNode(child) && child.type === \"template\") {\n        slot.push(child.children);\n      } else {\n        slot.push(child);\n      }\n    }\n    if (slots) {\n      for (const key in slots) {\n        const slotChildren = slots[key];\n        slots[key] = () => slotChildren;\n        slots[key]._ns = true;\n      }\n    }\n  }\n  const scopedSlots = props && props.scopedSlots;\n  if (scopedSlots) {\n    delete props.scopedSlots;\n    if (slots) {\n      extend(slots, scopedSlots);\n    } else {\n      slots = scopedSlots;\n    }\n  }\n  if (slots) {\n    normalizeChildren(vnode, slots);\n  }\n  return vnode;\n}\nfunction defineLegacyVNodeProperties(vnode) {\n  if (isCompatEnabled(\n    \"RENDER_FUNCTION\",\n    currentRenderingInstance,\n    true\n  ) && isCompatEnabled(\n    \"PRIVATE_APIS\",\n    currentRenderingInstance,\n    true\n  )) {\n    const context = currentRenderingInstance;\n    const getInstance = () => vnode.component && vnode.component.proxy;\n    let componentOptions;\n    Object.defineProperties(vnode, {\n      tag: { get: () => vnode.type },\n      data: { get: () => vnode.props || {}, set: (p) => vnode.props = p },\n      elm: { get: () => vnode.el },\n      componentInstance: { get: getInstance },\n      child: { get: getInstance },\n      text: { get: () => isString(vnode.children) ? vnode.children : null },\n      context: { get: () => context && context.proxy },\n      componentOptions: {\n        get: () => {\n          if (vnode.shapeFlag & 4) {\n            if (componentOptions) {\n              return componentOptions;\n            }\n            return componentOptions = {\n              Ctor: vnode.type,\n              propsData: vnode.props,\n              children: vnode.children\n            };\n          }\n        }\n      }\n    });\n  }\n}\n\nconst normalizedFunctionalComponentMap = /* @__PURE__ */ new WeakMap();\nconst legacySlotProxyHandlers = {\n  get(target, key) {\n    const slot = target[key];\n    return slot && slot();\n  }\n};\nfunction convertLegacyFunctionalComponent(comp) {\n  if (normalizedFunctionalComponentMap.has(comp)) {\n    return normalizedFunctionalComponentMap.get(comp);\n  }\n  const legacyFn = comp.render;\n  const Func = (props, ctx) => {\n    const instance = getCurrentInstance();\n    const legacyCtx = {\n      props,\n      children: instance.vnode.children || [],\n      data: instance.vnode.props || {},\n      scopedSlots: ctx.slots,\n      parent: instance.parent && instance.parent.proxy,\n      slots() {\n        return new Proxy(ctx.slots, legacySlotProxyHandlers);\n      },\n      get listeners() {\n        return getCompatListeners(instance);\n      },\n      get injections() {\n        if (comp.inject) {\n          const injections = {};\n          resolveInjections(comp.inject, injections);\n          return injections;\n        }\n        return {};\n      }\n    };\n    return legacyFn(compatH, legacyCtx);\n  };\n  Func.props = comp.props;\n  Func.displayName = comp.name;\n  Func.compatConfig = comp.compatConfig;\n  Func.inheritAttrs = false;\n  normalizedFunctionalComponentMap.set(comp, Func);\n  return Func;\n}\n\nfunction renderList(source, renderItem, cache, index) {\n  let ret;\n  const cached = cache && cache[index];\n  if (isArray(source) || isString(source)) {\n    ret = new Array(source.length);\n    for (let i = 0, l = source.length; i < l; i++) {\n      ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n    }\n  } else if (typeof source === \"number\") {\n    if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n      warn$1(`The v-for range expect an integer value but got ${source}.`);\n    }\n    ret = new Array(source);\n    for (let i = 0; i < source; i++) {\n      ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n    }\n  } else if (isObject(source)) {\n    if (source[Symbol.iterator]) {\n      ret = Array.from(\n        source,\n        (item, i) => renderItem(item, i, void 0, cached && cached[i])\n      );\n    } else {\n      const keys = Object.keys(source);\n      ret = new Array(keys.length);\n      for (let i = 0, l = keys.length; i < l; i++) {\n        const key = keys[i];\n        ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n      }\n    }\n  } else {\n    ret = [];\n  }\n  if (cache) {\n    cache[index] = ret;\n  }\n  return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n  for (let i = 0; i < dynamicSlots.length; i++) {\n    const slot = dynamicSlots[i];\n    if (isArray(slot)) {\n      for (let j = 0; j < slot.length; j++) {\n        slots[slot[j].name] = slot[j].fn;\n      }\n    } else if (slot) {\n      slots[slot.name] = slot.key ? (...args) => {\n        const res = slot.fn(...args);\n        if (res)\n          res.key = slot.key;\n        return res;\n      } : slot.fn;\n    }\n  }\n  return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n  if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n    if (name !== \"default\")\n      props.name = name;\n    return createVNode(\"slot\", props, fallback && fallback());\n  }\n  let slot = slots[name];\n  if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n    warn$1(\n      `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n    );\n    slot = () => [];\n  }\n  if (slot && slot._c) {\n    slot._d = false;\n  }\n  openBlock();\n  const validSlotContent = slot && ensureValidVNode(slot(props));\n  const rendered = createBlock(\n    Fragment,\n    {\n      key: props.key || // slot content array of a dynamic conditional slot may have a branch\n      // key attached in the `createSlots` helper, respect that\n      validSlotContent && validSlotContent.key || `_${name}`\n    },\n    validSlotContent || (fallback ? fallback() : []),\n    validSlotContent && slots._ === 1 ? 64 : -2\n  );\n  if (!noSlotted && rendered.scopeId) {\n    rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n  }\n  if (slot && slot._c) {\n    slot._d = true;\n  }\n  return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n  return vnodes.some((child) => {\n    if (!isVNode(child))\n      return true;\n    if (child.type === Comment)\n      return false;\n    if (child.type === Fragment && !ensureValidVNode(child.children))\n      return false;\n    return true;\n  }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n  const ret = {};\n  if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n    warn$1(`v-on with no argument expects an object value.`);\n    return ret;\n  }\n  for (const key in obj) {\n    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n  }\n  return ret;\n}\n\nfunction toObject(arr) {\n  const res = {};\n  for (let i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res;\n}\nfunction legacyBindObjectProps(data, _tag, value, _asProp, isSync) {\n  if (value && isObject(value)) {\n    if (isArray(value)) {\n      value = toObject(value);\n    }\n    for (const key in value) {\n      if (isReservedProp(key)) {\n        data[key] = value[key];\n      } else if (key === \"class\") {\n        data.class = normalizeClass([data.class, value.class]);\n      } else if (key === \"style\") {\n        data.style = normalizeClass([data.style, value.style]);\n      } else {\n        const attrs = data.attrs || (data.attrs = {});\n        const camelizedKey = camelize(key);\n        const hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in attrs) && !(hyphenatedKey in attrs)) {\n          attrs[key] = value[key];\n          if (isSync) {\n            const on = data.on || (data.on = {});\n            on[`update:${key}`] = function($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      }\n    }\n  }\n  return data;\n}\nfunction legacyBindObjectListeners(props, listeners) {\n  return mergeProps(props, toHandlers(listeners));\n}\nfunction legacyRenderSlot(instance, name, fallback, props, bindObject) {\n  if (bindObject) {\n    props = mergeProps(props, bindObject);\n  }\n  return renderSlot(instance.slots, name, props, fallback && (() => fallback));\n}\nfunction legacyresolveScopedSlots(fns, raw, hasDynamicKeys) {\n  return createSlots(\n    raw || { $stable: !hasDynamicKeys },\n    mapKeyToName(fns)\n  );\n}\nfunction mapKeyToName(slots) {\n  for (let i = 0; i < slots.length; i++) {\n    const fn = slots[i];\n    if (fn) {\n      if (isArray(fn)) {\n        mapKeyToName(fn);\n      } else {\n        fn.name = fn.key || \"default\";\n      }\n    }\n  }\n  return slots;\n}\nconst staticCacheMap = /* @__PURE__ */ new WeakMap();\nfunction legacyRenderStatic(instance, index) {\n  let cache = staticCacheMap.get(instance);\n  if (!cache) {\n    staticCacheMap.set(instance, cache = []);\n  }\n  if (cache[index]) {\n    return cache[index];\n  }\n  const fn = instance.type.staticRenderFns[index];\n  const ctx = instance.proxy;\n  return cache[index] = fn.call(ctx, null, ctx);\n}\nfunction legacyCheckKeyCodes(instance, eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n  const config = instance.appContext.config;\n  const configKeyCodes = config.keyCodes || {};\n  const mappedKeyCode = configKeyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !configKeyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName);\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key;\n  }\n}\nfunction isKeyNotMatch(expect, actual) {\n  if (isArray(expect)) {\n    return !expect.includes(actual);\n  } else {\n    return expect !== actual;\n  }\n}\nfunction legacyMarkOnce(tree) {\n  return tree;\n}\nfunction legacyBindDynamicKeys(props, values) {\n  for (let i = 0; i < values.length; i += 2) {\n    const key = values[i];\n    if (typeof key === \"string\" && key) {\n      props[values[i]] = values[i + 1];\n    }\n  }\n  return props;\n}\nfunction legacyPrependModifier(value, symbol) {\n  return typeof value === \"string\" ? symbol + value : value;\n}\n\nfunction installCompatInstanceProperties(map) {\n  const set = (target, key, val) => {\n    target[key] = val;\n    return target[key];\n  };\n  const del = (target, key) => {\n    delete target[key];\n  };\n  extend(map, {\n    $set: (i) => {\n      assertCompatEnabled(\"INSTANCE_SET\", i);\n      return set;\n    },\n    $delete: (i) => {\n      assertCompatEnabled(\"INSTANCE_DELETE\", i);\n      return del;\n    },\n    $mount: (i) => {\n      assertCompatEnabled(\n        \"GLOBAL_MOUNT\",\n        null\n      );\n      return i.ctx._compat_mount || NOOP;\n    },\n    $destroy: (i) => {\n      assertCompatEnabled(\"INSTANCE_DESTROY\", i);\n      return i.ctx._compat_destroy || NOOP;\n    },\n    // overrides existing accessor\n    $slots: (i) => {\n      if (isCompatEnabled(\"RENDER_FUNCTION\", i) && i.render && i.render._compatWrapped) {\n        return new Proxy(i.slots, legacySlotProxyHandlers);\n      }\n      return !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots;\n    },\n    $scopedSlots: (i) => {\n      assertCompatEnabled(\"INSTANCE_SCOPED_SLOTS\", i);\n      const res = {};\n      for (const key in i.slots) {\n        const fn = i.slots[key];\n        if (!fn._ns) {\n          res[key] = fn;\n        }\n      }\n      return res;\n    },\n    $on: (i) => on.bind(null, i),\n    $once: (i) => once.bind(null, i),\n    $off: (i) => off.bind(null, i),\n    $children: getCompatChildren,\n    $listeners: getCompatListeners\n  });\n  if (isCompatEnabled(\"PRIVATE_APIS\", null)) {\n    extend(map, {\n      // needed by many libs / render fns\n      $vnode: (i) => i.vnode,\n      // inject additional properties into $options for compat\n      // e.g. vuex needs this.$options.parent\n      $options: (i) => {\n        const res = extend({}, resolveMergedOptions(i));\n        res.parent = i.proxy.$parent;\n        res.propsData = i.vnode.props;\n        return res;\n      },\n      // some private properties that are likely accessed...\n      _self: (i) => i.proxy,\n      _uid: (i) => i.uid,\n      _data: (i) => i.data,\n      _isMounted: (i) => i.isMounted,\n      _isDestroyed: (i) => i.isUnmounted,\n      // v2 render helpers\n      $createElement: () => compatH,\n      _c: () => compatH,\n      _o: () => legacyMarkOnce,\n      _n: () => looseToNumber,\n      _s: () => toDisplayString,\n      _l: () => renderList,\n      _t: (i) => legacyRenderSlot.bind(null, i),\n      _q: () => looseEqual,\n      _i: () => looseIndexOf,\n      _m: (i) => legacyRenderStatic.bind(null, i),\n      _f: () => resolveFilter$1,\n      _k: (i) => legacyCheckKeyCodes.bind(null, i),\n      _b: () => legacyBindObjectProps,\n      _v: () => createTextVNode,\n      _e: () => createCommentVNode,\n      _u: () => legacyresolveScopedSlots,\n      _g: () => legacyBindObjectListeners,\n      _d: () => legacyBindDynamicKeys,\n      _p: () => legacyPrependModifier\n    });\n  }\n}\n\nconst getPublicInstance = (i) => {\n  if (!i)\n    return null;\n  if (isStatefulComponent(i))\n    return getExposeProxy(i) || i.proxy;\n  return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n  // Move PURE marker to new line to workaround compiler discarding it\n  // due to type annotation\n  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n    $: (i) => i,\n    $el: (i) => i.vnode.el,\n    $data: (i) => i.data,\n    $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n    $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n    $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n    $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n    $parent: (i) => getPublicInstance(i.parent),\n    $root: (i) => getPublicInstance(i.root),\n    $emit: (i) => i.emit,\n    $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n    $forceUpdate: (i) => i.f || (i.f = () => {\n      i.effect.dirty = true;\n      queueJob(i.update);\n    }),\n    $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n    $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n  })\n);\n{\n  installCompatInstanceProperties(publicPropertiesMap);\n}\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n  get({ _: instance }, key) {\n    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n    if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n      return true;\n    }\n    let normalizedProps;\n    if (key[0] !== \"$\") {\n      const n = accessCache[key];\n      if (n !== void 0) {\n        switch (n) {\n          case 1 /* SETUP */:\n            return setupState[key];\n          case 2 /* DATA */:\n            return data[key];\n          case 4 /* CONTEXT */:\n            return ctx[key];\n          case 3 /* PROPS */:\n            return props[key];\n        }\n      } else if (hasSetupBinding(setupState, key)) {\n        accessCache[key] = 1 /* SETUP */;\n        return setupState[key];\n      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n        accessCache[key] = 2 /* DATA */;\n        return data[key];\n      } else if (\n        // only cache other properties when instance has declared (thus stable)\n        // props\n        (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n      ) {\n        accessCache[key] = 3 /* PROPS */;\n        return props[key];\n      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n        accessCache[key] = 4 /* CONTEXT */;\n        return ctx[key];\n      } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n        accessCache[key] = 0 /* OTHER */;\n      }\n    }\n    const publicGetter = publicPropertiesMap[key];\n    let cssModule, globalProperties;\n    if (publicGetter) {\n      if (key === \"$attrs\") {\n        track(instance, \"get\", key);\n        !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n      } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n        track(instance, \"get\", key);\n      }\n      return publicGetter(instance);\n    } else if (\n      // css module (injected by vue-loader)\n      (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n    ) {\n      return cssModule;\n    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n      accessCache[key] = 4 /* CONTEXT */;\n      return ctx[key];\n    } else if (\n      // global properties\n      globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n    ) {\n      {\n        const desc = Object.getOwnPropertyDescriptor(globalProperties, key);\n        if (desc.get) {\n          return desc.get.call(instance.proxy);\n        } else {\n          const val = globalProperties[key];\n          return isFunction(val) ? Object.assign(val.bind(instance.proxy), val) : val;\n        }\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n    // to infinite warning loop\n    key.indexOf(\"__v\") !== 0)) {\n      if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n        warn$1(\n          `Property ${JSON.stringify(\n            key\n          )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n        );\n      } else if (instance === currentRenderingInstance) {\n        warn$1(\n          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n        );\n      }\n    }\n  },\n  set({ _: instance }, key, value) {\n    const { data, setupState, ctx } = instance;\n    if (hasSetupBinding(setupState, key)) {\n      setupState[key] = value;\n      return true;\n    } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n      warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n      return false;\n    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n      data[key] = value;\n      return true;\n    } else if (hasOwn(instance.props, key)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n      return false;\n    }\n    if (key[0] === \"$\" && key.slice(1) in instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n      );\n      return false;\n    } else {\n      if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n        Object.defineProperty(ctx, key, {\n          enumerable: true,\n          configurable: true,\n          value\n        });\n      } else {\n        ctx[key] = value;\n      }\n    }\n    return true;\n  },\n  has({\n    _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n  }, key) {\n    let normalizedProps;\n    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n  },\n  defineProperty(target, key, descriptor) {\n    if (descriptor.get != null) {\n      target._.accessCache[key] = 0;\n    } else if (hasOwn(descriptor, \"value\")) {\n      this.set(target, key, descriptor.value, null);\n    }\n    return Reflect.defineProperty(target, key, descriptor);\n  }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n  PublicInstanceProxyHandlers.ownKeys = (target) => {\n    warn$1(\n      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n    );\n    return Reflect.ownKeys(target);\n  };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(\n  {},\n  PublicInstanceProxyHandlers,\n  {\n    get(target, key) {\n      if (key === Symbol.unscopables) {\n        return;\n      }\n      return PublicInstanceProxyHandlers.get(target, key, target);\n    },\n    has(_, key) {\n      const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n      if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n        warn$1(\n          `Property ${JSON.stringify(\n            key\n          )} should not start with _ which is a reserved prefix for Vue internals.`\n        );\n      }\n      return has;\n    }\n  }\n);\nfunction createDevRenderContext(instance) {\n  const target = {};\n  Object.defineProperty(target, `_`, {\n    configurable: true,\n    enumerable: false,\n    get: () => instance\n  });\n  Object.keys(publicPropertiesMap).forEach((key) => {\n    Object.defineProperty(target, key, {\n      configurable: true,\n      enumerable: false,\n      get: () => publicPropertiesMap[key](instance),\n      // intercepted by the proxy so no need for implementation,\n      // but needed to prevent set errors\n      set: NOOP\n    });\n  });\n  return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n  const {\n    ctx,\n    propsOptions: [propsOptions]\n  } = instance;\n  if (propsOptions) {\n    Object.keys(propsOptions).forEach((key) => {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => instance.props[key],\n        set: NOOP\n      });\n    });\n  }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n  const { ctx, setupState } = instance;\n  Object.keys(toRaw(setupState)).forEach((key) => {\n    if (!setupState.__isScriptSetup) {\n      if (isReservedPrefix(key[0])) {\n        warn$1(\n          `setup() return property ${JSON.stringify(\n            key\n          )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n        );\n        return;\n      }\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => setupState[key],\n        set: NOOP\n      });\n    }\n  });\n}\n\nfunction deepMergeData(to, from) {\n  for (const key in from) {\n    const toVal = to[key];\n    const fromVal = from[key];\n    if (key in to && isPlainObject(toVal) && isPlainObject(fromVal)) {\n      !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"OPTIONS_DATA_MERGE\", null, key);\n      deepMergeData(toVal, fromVal);\n    } else {\n      to[key] = fromVal;\n    }\n  }\n  return to;\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineProps`);\n  }\n  return null;\n}\nfunction defineEmits() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineEmits`);\n  }\n  return null;\n}\nfunction defineExpose(exposed) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineExpose`);\n  }\n}\nfunction defineOptions(options) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineOptions`);\n  }\n}\nfunction defineSlots() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineSlots`);\n  }\n  return null;\n}\nfunction defineModel() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(\"defineModel\");\n  }\n}\nfunction withDefaults(props, defaults) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`withDefaults`);\n  }\n  return null;\n}\nfunction useSlots() {\n  return getContext().slots;\n}\nfunction useAttrs() {\n  return getContext().attrs;\n}\nfunction getContext() {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useContext() called without active instance.`);\n  }\n  return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n  return isArray(props) ? props.reduce(\n    (normalized, p) => (normalized[p] = null, normalized),\n    {}\n  ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n  const props = normalizePropsOrEmits(raw);\n  for (const key in defaults) {\n    if (key.startsWith(\"__skip\"))\n      continue;\n    let opt = props[key];\n    if (opt) {\n      if (isArray(opt) || isFunction(opt)) {\n        opt = props[key] = { type: opt, default: defaults[key] };\n      } else {\n        opt.default = defaults[key];\n      }\n    } else if (opt === null) {\n      opt = props[key] = { default: defaults[key] };\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n    }\n    if (opt && defaults[`__skip_${key}`]) {\n      opt.skipFactory = true;\n    }\n  }\n  return props;\n}\nfunction mergeModels(a, b) {\n  if (!a || !b)\n    return a || b;\n  if (isArray(a) && isArray(b))\n    return a.concat(b);\n  return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n  const ret = {};\n  for (const key in props) {\n    if (!excludedKeys.includes(key)) {\n      Object.defineProperty(ret, key, {\n        enumerable: true,\n        get: () => props[key]\n      });\n    }\n  }\n  return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n  const ctx = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n    warn$1(\n      `withAsyncContext called without active current instance. This is likely a bug.`\n    );\n  }\n  let awaitable = getAwaitable();\n  unsetCurrentInstance();\n  if (isPromise(awaitable)) {\n    awaitable = awaitable.catch((e) => {\n      setCurrentInstance(ctx);\n      throw e;\n    });\n  }\n  return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (type, key) => {\n    if (cache[key]) {\n      warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n    } else {\n      cache[key] = type;\n    }\n  };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n  const options = resolveMergedOptions(instance);\n  const publicThis = instance.proxy;\n  const ctx = instance.ctx;\n  shouldCacheAccess = false;\n  if (options.beforeCreate) {\n    callHook$1(options.beforeCreate, instance, \"bc\");\n  }\n  const {\n    // state\n    data: dataOptions,\n    computed: computedOptions,\n    methods,\n    watch: watchOptions,\n    provide: provideOptions,\n    inject: injectOptions,\n    // lifecycle\n    created,\n    beforeMount,\n    mounted,\n    beforeUpdate,\n    updated,\n    activated,\n    deactivated,\n    beforeDestroy,\n    beforeUnmount,\n    destroyed,\n    unmounted,\n    render,\n    renderTracked,\n    renderTriggered,\n    errorCaptured,\n    serverPrefetch,\n    // public API\n    expose,\n    inheritAttrs,\n    // assets\n    components,\n    directives,\n    filters\n  } = options;\n  const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const [propsOptions] = instance.propsOptions;\n    if (propsOptions) {\n      for (const key in propsOptions) {\n        checkDuplicateProperties(\"Props\" /* PROPS */, key);\n      }\n    }\n  }\n  if (injectOptions) {\n    resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n  }\n  if (methods) {\n    for (const key in methods) {\n      const methodHandler = methods[key];\n      if (isFunction(methodHandler)) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          Object.defineProperty(ctx, key, {\n            value: methodHandler.bind(publicThis),\n            configurable: true,\n            enumerable: true,\n            writable: true\n          });\n        } else {\n          ctx[key] = methodHandler.bind(publicThis);\n        }\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n        }\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(\n          `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n        );\n      }\n    }\n  }\n  if (dataOptions) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n      warn$1(\n        `The data option must be a function. Plain object usage is no longer supported.`\n      );\n    }\n    const data = dataOptions.call(publicThis, publicThis);\n    if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n      warn$1(\n        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n      );\n    }\n    if (!isObject(data)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n    } else {\n      instance.data = reactive(data);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        for (const key in data) {\n          checkDuplicateProperties(\"Data\" /* DATA */, key);\n          if (!isReservedPrefix(key[0])) {\n            Object.defineProperty(ctx, key, {\n              configurable: true,\n              enumerable: true,\n              get: () => data[key],\n              set: NOOP\n            });\n          }\n        }\n      }\n    }\n  }\n  shouldCacheAccess = true;\n  if (computedOptions) {\n    for (const key in computedOptions) {\n      const opt = computedOptions[key];\n      const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n      if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n        warn$1(`Computed property \"${key}\" has no getter.`);\n      }\n      const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n        warn$1(\n          `Write operation failed: computed property \"${key}\" is readonly.`\n        );\n      } : NOOP;\n      const c = computed({\n        get,\n        set\n      });\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => c.value,\n        set: (v) => c.value = v\n      });\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n      }\n    }\n  }\n  if (watchOptions) {\n    for (const key in watchOptions) {\n      createWatcher(watchOptions[key], ctx, publicThis, key);\n    }\n  }\n  if (provideOptions) {\n    const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n    Reflect.ownKeys(provides).forEach((key) => {\n      provide(key, provides[key]);\n    });\n  }\n  if (created) {\n    callHook$1(created, instance, \"c\");\n  }\n  function registerLifecycleHook(register, hook) {\n    if (isArray(hook)) {\n      hook.forEach((_hook) => register(_hook.bind(publicThis)));\n    } else if (hook) {\n      register(hook.bind(publicThis));\n    }\n  }\n  registerLifecycleHook(onBeforeMount, beforeMount);\n  registerLifecycleHook(onMounted, mounted);\n  registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n  registerLifecycleHook(onUpdated, updated);\n  registerLifecycleHook(onActivated, activated);\n  registerLifecycleHook(onDeactivated, deactivated);\n  registerLifecycleHook(onErrorCaptured, errorCaptured);\n  registerLifecycleHook(onRenderTracked, renderTracked);\n  registerLifecycleHook(onRenderTriggered, renderTriggered);\n  registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n  registerLifecycleHook(onUnmounted, unmounted);\n  registerLifecycleHook(onServerPrefetch, serverPrefetch);\n  {\n    if (beforeDestroy && softAssertCompatEnabled(\"OPTIONS_BEFORE_DESTROY\", instance)) {\n      registerLifecycleHook(onBeforeUnmount, beforeDestroy);\n    }\n    if (destroyed && softAssertCompatEnabled(\"OPTIONS_DESTROYED\", instance)) {\n      registerLifecycleHook(onUnmounted, destroyed);\n    }\n  }\n  if (isArray(expose)) {\n    if (expose.length) {\n      const exposed = instance.exposed || (instance.exposed = {});\n      expose.forEach((key) => {\n        Object.defineProperty(exposed, key, {\n          get: () => publicThis[key],\n          set: (val) => publicThis[key] = val\n        });\n      });\n    } else if (!instance.exposed) {\n      instance.exposed = {};\n    }\n  }\n  if (render && instance.render === NOOP) {\n    instance.render = render;\n  }\n  if (inheritAttrs != null) {\n    instance.inheritAttrs = inheritAttrs;\n  }\n  if (components)\n    instance.components = components;\n  if (directives)\n    instance.directives = directives;\n  if (filters && isCompatEnabled(\"FILTERS\", instance)) {\n    instance.filters = filters;\n  }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n  if (isArray(injectOptions)) {\n    injectOptions = normalizeInject(injectOptions);\n  }\n  for (const key in injectOptions) {\n    const opt = injectOptions[key];\n    let injected;\n    if (isObject(opt)) {\n      if (\"default\" in opt) {\n        injected = inject(\n          opt.from || key,\n          opt.default,\n          true\n        );\n      } else {\n        injected = inject(opt.from || key);\n      }\n    } else {\n      injected = inject(opt);\n    }\n    if (isRef(injected)) {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => injected.value,\n        set: (v) => injected.value = v\n      });\n    } else {\n      ctx[key] = injected;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n    }\n  }\n}\nfunction callHook$1(hook, instance, type) {\n  callWithAsyncErrorHandling(\n    isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n    instance,\n    type\n  );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n  const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n  if (isString(raw)) {\n    const handler = ctx[raw];\n    if (isFunction(handler)) {\n      watch(getter, handler);\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n    }\n  } else if (isFunction(raw)) {\n    watch(getter, raw.bind(publicThis));\n  } else if (isObject(raw)) {\n    if (isArray(raw)) {\n      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n    } else {\n      const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n      if (isFunction(handler)) {\n        watch(getter, handler, raw);\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n      }\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid watch option: \"${key}\"`, raw);\n  }\n}\nfunction resolveMergedOptions(instance) {\n  const base = instance.type;\n  const { mixins, extends: extendsOptions } = base;\n  const {\n    mixins: globalMixins,\n    optionsCache: cache,\n    config: { optionMergeStrategies }\n  } = instance.appContext;\n  const cached = cache.get(base);\n  let resolved;\n  if (cached) {\n    resolved = cached;\n  } else if (!globalMixins.length && !mixins && !extendsOptions) {\n    if (isCompatEnabled(\"PRIVATE_APIS\", instance)) {\n      resolved = extend({}, base);\n      resolved.parent = instance.parent && instance.parent.proxy;\n      resolved.propsData = instance.vnode.props;\n    } else {\n      resolved = base;\n    }\n  } else {\n    resolved = {};\n    if (globalMixins.length) {\n      globalMixins.forEach(\n        (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n      );\n    }\n    mergeOptions(resolved, base, optionMergeStrategies);\n  }\n  if (isObject(base)) {\n    cache.set(base, resolved);\n  }\n  return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n  if (isFunction(from)) {\n    from = from.options;\n  }\n  const { mixins, extends: extendsOptions } = from;\n  if (extendsOptions) {\n    mergeOptions(to, extendsOptions, strats, true);\n  }\n  if (mixins) {\n    mixins.forEach(\n      (m) => mergeOptions(to, m, strats, true)\n    );\n  }\n  for (const key in from) {\n    if (asMixin && key === \"expose\") {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n      );\n    } else {\n      const strat = internalOptionMergeStrats[key] || strats && strats[key];\n      to[key] = strat ? strat(to[key], from[key]) : from[key];\n    }\n  }\n  return to;\n}\nconst internalOptionMergeStrats = {\n  data: mergeDataFn,\n  props: mergeEmitsOrPropsOptions,\n  emits: mergeEmitsOrPropsOptions,\n  // objects\n  methods: mergeObjectOptions,\n  computed: mergeObjectOptions,\n  // lifecycle\n  beforeCreate: mergeAsArray,\n  created: mergeAsArray,\n  beforeMount: mergeAsArray,\n  mounted: mergeAsArray,\n  beforeUpdate: mergeAsArray,\n  updated: mergeAsArray,\n  beforeDestroy: mergeAsArray,\n  beforeUnmount: mergeAsArray,\n  destroyed: mergeAsArray,\n  unmounted: mergeAsArray,\n  activated: mergeAsArray,\n  deactivated: mergeAsArray,\n  errorCaptured: mergeAsArray,\n  serverPrefetch: mergeAsArray,\n  // assets\n  components: mergeObjectOptions,\n  directives: mergeObjectOptions,\n  // watch\n  watch: mergeWatchOptions,\n  // provide / inject\n  provide: mergeDataFn,\n  inject: mergeInject\n};\n{\n  internalOptionMergeStrats.filters = mergeObjectOptions;\n}\nfunction mergeDataFn(to, from) {\n  if (!from) {\n    return to;\n  }\n  if (!to) {\n    return from;\n  }\n  return function mergedDataFn() {\n    return (isCompatEnabled(\"OPTIONS_DATA_MERGE\", null) ? deepMergeData : extend)(\n      isFunction(to) ? to.call(this, this) : to,\n      isFunction(from) ? from.call(this, this) : from\n    );\n  };\n}\nfunction mergeInject(to, from) {\n  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n  if (isArray(raw)) {\n    const res = {};\n    for (let i = 0; i < raw.length; i++) {\n      res[raw[i]] = raw[i];\n    }\n    return res;\n  }\n  return raw;\n}\nfunction mergeAsArray(to, from) {\n  return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n  return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n  if (to) {\n    if (isArray(to) && isArray(from)) {\n      return [.../* @__PURE__ */ new Set([...to, ...from])];\n    }\n    return extend(\n      /* @__PURE__ */ Object.create(null),\n      normalizePropsOrEmits(to),\n      normalizePropsOrEmits(from != null ? from : {})\n    );\n  } else {\n    return from;\n  }\n}\nfunction mergeWatchOptions(to, from) {\n  if (!to)\n    return from;\n  if (!from)\n    return to;\n  const merged = extend(/* @__PURE__ */ Object.create(null), to);\n  for (const key in from) {\n    merged[key] = mergeAsArray(to[key], from[key]);\n  }\n  return merged;\n}\n\nfunction installLegacyConfigWarnings(config) {\n  const legacyConfigOptions = {\n    silent: \"CONFIG_SILENT\",\n    devtools: \"CONFIG_DEVTOOLS\",\n    ignoredElements: \"CONFIG_IGNORED_ELEMENTS\",\n    keyCodes: \"CONFIG_KEY_CODES\",\n    productionTip: \"CONFIG_PRODUCTION_TIP\"\n  };\n  Object.keys(legacyConfigOptions).forEach((key) => {\n    let val = config[key];\n    Object.defineProperty(config, key, {\n      enumerable: true,\n      get() {\n        return val;\n      },\n      set(newVal) {\n        if (!isCopyingConfig) {\n          warnDeprecation(legacyConfigOptions[key], null);\n        }\n        val = newVal;\n      }\n    });\n  });\n}\nfunction installLegacyOptionMergeStrats(config) {\n  config.optionMergeStrategies = new Proxy({}, {\n    get(target, key) {\n      if (key in target) {\n        return target[key];\n      }\n      if (key in internalOptionMergeStrats && softAssertCompatEnabled(\n        \"CONFIG_OPTION_MERGE_STRATS\",\n        null\n      )) {\n        return internalOptionMergeStrats[key];\n      }\n    }\n  });\n}\n\nlet isCopyingConfig = false;\nlet singletonApp;\nlet singletonCtor;\nfunction createCompatVue$1(createApp, createSingletonApp) {\n  singletonApp = createSingletonApp({});\n  const Vue = singletonCtor = function Vue2(options = {}) {\n    return createCompatApp(options, Vue2);\n  };\n  function createCompatApp(options = {}, Ctor) {\n    assertCompatEnabled(\"GLOBAL_MOUNT\", null);\n    const { data } = options;\n    if (data && !isFunction(data) && softAssertCompatEnabled(\"OPTIONS_DATA_FN\", null)) {\n      options.data = () => data;\n    }\n    const app = createApp(options);\n    if (Ctor !== Vue) {\n      applySingletonPrototype(app, Ctor);\n    }\n    const vm = app._createRoot(options);\n    if (options.el) {\n      return vm.$mount(options.el);\n    } else {\n      return vm;\n    }\n  }\n  Vue.version = `2.6.14-compat:${\"3.4.15\"}`;\n  Vue.config = singletonApp.config;\n  Vue.use = (p, ...options) => {\n    if (p && isFunction(p.install)) {\n      p.install(Vue, ...options);\n    } else if (isFunction(p)) {\n      p(Vue, ...options);\n    }\n    return Vue;\n  };\n  Vue.mixin = (m) => {\n    singletonApp.mixin(m);\n    return Vue;\n  };\n  Vue.component = (name, comp) => {\n    if (comp) {\n      singletonApp.component(name, comp);\n      return Vue;\n    } else {\n      return singletonApp.component(name);\n    }\n  };\n  Vue.directive = (name, dir) => {\n    if (dir) {\n      singletonApp.directive(name, dir);\n      return Vue;\n    } else {\n      return singletonApp.directive(name);\n    }\n  };\n  Vue.options = { _base: Vue };\n  let cid = 1;\n  Vue.cid = cid;\n  Vue.nextTick = nextTick;\n  const extendCache = /* @__PURE__ */ new WeakMap();\n  function extendCtor(extendOptions = {}) {\n    assertCompatEnabled(\"GLOBAL_EXTEND\", null);\n    if (isFunction(extendOptions)) {\n      extendOptions = extendOptions.options;\n    }\n    if (extendCache.has(extendOptions)) {\n      return extendCache.get(extendOptions);\n    }\n    const Super = this;\n    function SubVue(inlineOptions) {\n      if (!inlineOptions) {\n        return createCompatApp(SubVue.options, SubVue);\n      } else {\n        return createCompatApp(\n          mergeOptions(\n            extend({}, SubVue.options),\n            inlineOptions,\n            internalOptionMergeStrats\n          ),\n          SubVue\n        );\n      }\n    }\n    SubVue.super = Super;\n    SubVue.prototype = Object.create(Vue.prototype);\n    SubVue.prototype.constructor = SubVue;\n    const mergeBase = {};\n    for (const key in Super.options) {\n      const superValue = Super.options[key];\n      mergeBase[key] = isArray(superValue) ? superValue.slice() : isObject(superValue) ? extend(/* @__PURE__ */ Object.create(null), superValue) : superValue;\n    }\n    SubVue.options = mergeOptions(\n      mergeBase,\n      extendOptions,\n      internalOptionMergeStrats\n    );\n    SubVue.options._base = SubVue;\n    SubVue.extend = extendCtor.bind(SubVue);\n    SubVue.mixin = Super.mixin;\n    SubVue.use = Super.use;\n    SubVue.cid = ++cid;\n    extendCache.set(extendOptions, SubVue);\n    return SubVue;\n  }\n  Vue.extend = extendCtor.bind(Vue);\n  Vue.set = (target, key, value) => {\n    assertCompatEnabled(\"GLOBAL_SET\", null);\n    target[key] = value;\n  };\n  Vue.delete = (target, key) => {\n    assertCompatEnabled(\"GLOBAL_DELETE\", null);\n    delete target[key];\n  };\n  Vue.observable = (target) => {\n    assertCompatEnabled(\"GLOBAL_OBSERVABLE\", null);\n    return reactive(target);\n  };\n  Vue.filter = (name, filter) => {\n    if (filter) {\n      singletonApp.filter(name, filter);\n      return Vue;\n    } else {\n      return singletonApp.filter(name);\n    }\n  };\n  const util = {\n    warn: !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP,\n    extend,\n    mergeOptions: (parent, child, vm) => mergeOptions(\n      parent,\n      child,\n      vm ? void 0 : internalOptionMergeStrats\n    ),\n    defineReactive\n  };\n  Object.defineProperty(Vue, \"util\", {\n    get() {\n      assertCompatEnabled(\"GLOBAL_PRIVATE_UTIL\", null);\n      return util;\n    }\n  });\n  Vue.configureCompat = configureCompat$1;\n  return Vue;\n}\nfunction installAppCompatProperties(app, context, render) {\n  installFilterMethod(app, context);\n  installLegacyOptionMergeStrats(app.config);\n  if (!singletonApp) {\n    return;\n  }\n  installCompatMount(app, context, render);\n  installLegacyAPIs(app);\n  applySingletonAppMutations(app);\n  if (!!(process.env.NODE_ENV !== \"production\"))\n    installLegacyConfigWarnings(app.config);\n}\nfunction installFilterMethod(app, context) {\n  context.filters = {};\n  app.filter = (name, filter) => {\n    assertCompatEnabled(\"FILTERS\", null);\n    if (!filter) {\n      return context.filters[name];\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && context.filters[name]) {\n      warn$1(`Filter \"${name}\" has already been registered.`);\n    }\n    context.filters[name] = filter;\n    return app;\n  };\n}\nfunction installLegacyAPIs(app) {\n  Object.defineProperties(app, {\n    // so that app.use() can work with legacy plugins that extend prototypes\n    prototype: {\n      get() {\n        !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n        return app.config.globalProperties;\n      }\n    },\n    nextTick: { value: nextTick },\n    extend: { value: singletonCtor.extend },\n    set: { value: singletonCtor.set },\n    delete: { value: singletonCtor.delete },\n    observable: { value: singletonCtor.observable },\n    util: {\n      get() {\n        return singletonCtor.util;\n      }\n    }\n  });\n}\nfunction applySingletonAppMutations(app) {\n  app._context.mixins = [...singletonApp._context.mixins];\n  [\"components\", \"directives\", \"filters\"].forEach((key) => {\n    app._context[key] = Object.create(singletonApp._context[key]);\n  });\n  isCopyingConfig = true;\n  for (const key in singletonApp.config) {\n    if (key === \"isNativeTag\")\n      continue;\n    if (isRuntimeOnly() && (key === \"isCustomElement\" || key === \"compilerOptions\")) {\n      continue;\n    }\n    const val = singletonApp.config[key];\n    app.config[key] = isObject(val) ? Object.create(val) : val;\n    if (key === \"ignoredElements\" && isCompatEnabled(\"CONFIG_IGNORED_ELEMENTS\", null) && !isRuntimeOnly() && isArray(val)) {\n      app.config.compilerOptions.isCustomElement = (tag) => {\n        return val.some((v) => isString(v) ? v === tag : v.test(tag));\n      };\n    }\n  }\n  isCopyingConfig = false;\n  applySingletonPrototype(app, singletonCtor);\n}\nfunction applySingletonPrototype(app, Ctor) {\n  const enabled = isCompatEnabled(\"GLOBAL_PROTOTYPE\", null);\n  if (enabled) {\n    app.config.globalProperties = Object.create(Ctor.prototype);\n  }\n  let hasPrototypeAugmentations = false;\n  const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype);\n  for (const key in descriptors) {\n    if (key !== \"constructor\") {\n      hasPrototypeAugmentations = true;\n      if (enabled) {\n        Object.defineProperty(\n          app.config.globalProperties,\n          key,\n          descriptors[key]\n        );\n      }\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && hasPrototypeAugmentations) {\n    warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n  }\n}\nfunction installCompatMount(app, context, render) {\n  let isMounted = false;\n  app._createRoot = (options) => {\n    const component = app._component;\n    const vnode = createVNode(component, options.propsData || null);\n    vnode.appContext = context;\n    const hasNoRender = !isFunction(component) && !component.render && !component.template;\n    const emptyRender = () => {\n    };\n    const instance = createComponentInstance(vnode, null, null);\n    if (hasNoRender) {\n      instance.render = emptyRender;\n    }\n    setupComponent(instance);\n    vnode.component = instance;\n    vnode.isCompatRoot = true;\n    instance.ctx._compat_mount = (selectorOrEl) => {\n      if (isMounted) {\n        !!(process.env.NODE_ENV !== \"production\") && warn$1(`Root instance is already mounted.`);\n        return;\n      }\n      let container;\n      if (typeof selectorOrEl === \"string\") {\n        const result = document.querySelector(selectorOrEl);\n        if (!result) {\n          !!(process.env.NODE_ENV !== \"production\") && warn$1(\n            `Failed to mount root instance: selector \"${selectorOrEl}\" returned null.`\n          );\n          return;\n        }\n        container = result;\n      } else {\n        container = selectorOrEl || document.createElement(\"div\");\n      }\n      let namespace;\n      if (container instanceof SVGElement)\n        namespace = \"svg\";\n      else if (typeof MathMLElement === \"function\" && container instanceof MathMLElement)\n        namespace = \"mathml\";\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        context.reload = () => {\n          const cloned = cloneVNode(vnode);\n          cloned.component = null;\n          render(cloned, container, namespace);\n        };\n      }\n      if (hasNoRender && instance.render === emptyRender) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          for (let i = 0; i < container.attributes.length; i++) {\n            const attr = container.attributes[i];\n            if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n              warnDeprecation(\"GLOBAL_MOUNT_CONTAINER\", null);\n              break;\n            }\n          }\n        }\n        instance.render = null;\n        component.template = container.innerHTML;\n        finishComponentSetup(\n          instance,\n          false,\n          true\n          /* skip options */\n        );\n      }\n      container.innerHTML = \"\";\n      render(vnode, container, namespace);\n      if (container instanceof Element) {\n        container.removeAttribute(\"v-cloak\");\n        container.setAttribute(\"data-v-app\", \"\");\n      }\n      isMounted = true;\n      app._container = container;\n      container.__vue_app__ = app;\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsInitApp(app, version);\n      }\n      return instance.proxy;\n    };\n    instance.ctx._compat_destroy = () => {\n      if (isMounted) {\n        render(null, app._container);\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n          devtoolsUnmountApp(app);\n        }\n        delete app._container.__vue_app__;\n      } else {\n        const { bum, scope, um } = instance;\n        if (bum) {\n          invokeArrayFns(bum);\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          instance.emit(\"hook:beforeDestroy\");\n        }\n        if (scope) {\n          scope.stop();\n        }\n        if (um) {\n          invokeArrayFns(um);\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          instance.emit(\"hook:destroyed\");\n        }\n      }\n    };\n    return instance.proxy;\n  };\n}\nconst methodsToPatch = [\n  \"push\",\n  \"pop\",\n  \"shift\",\n  \"unshift\",\n  \"splice\",\n  \"sort\",\n  \"reverse\"\n];\nconst patched = /* @__PURE__ */ new WeakSet();\nfunction defineReactive(obj, key, val) {\n  if (isObject(val) && !isReactive(val) && !patched.has(val)) {\n    const reactiveVal = reactive(val);\n    if (isArray(val)) {\n      methodsToPatch.forEach((m) => {\n        val[m] = (...args) => {\n          Array.prototype[m].call(reactiveVal, ...args);\n        };\n      });\n    } else {\n      Object.keys(val).forEach((key2) => {\n        try {\n          defineReactiveSimple(val, key2, val[key2]);\n        } catch (e) {\n        }\n      });\n    }\n  }\n  const i = obj.$;\n  if (i && obj === i.proxy) {\n    defineReactiveSimple(i.ctx, key, val);\n    i.accessCache = /* @__PURE__ */ Object.create(null);\n  } else if (isReactive(obj)) {\n    obj[key] = val;\n  } else {\n    defineReactiveSimple(obj, key, val);\n  }\n}\nfunction defineReactiveSimple(obj, key, val) {\n  val = isObject(val) ? reactive(val) : val;\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get() {\n      track(obj, \"get\", key);\n      return val;\n    },\n    set(newVal) {\n      val = isObject(newVal) ? reactive(newVal) : newVal;\n      trigger(obj, \"set\", key, newVal);\n    }\n  });\n}\n\nfunction createAppContext() {\n  return {\n    app: null,\n    config: {\n      isNativeTag: NO,\n      performance: false,\n      globalProperties: {},\n      optionMergeStrategies: {},\n      errorHandler: void 0,\n      warnHandler: void 0,\n      compilerOptions: {}\n    },\n    mixins: [],\n    components: {},\n    directives: {},\n    provides: /* @__PURE__ */ Object.create(null),\n    optionsCache: /* @__PURE__ */ new WeakMap(),\n    propsCache: /* @__PURE__ */ new WeakMap(),\n    emitsCache: /* @__PURE__ */ new WeakMap()\n  };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n  return function createApp(rootComponent, rootProps = null) {\n    if (!isFunction(rootComponent)) {\n      rootComponent = extend({}, rootComponent);\n    }\n    if (rootProps != null && !isObject(rootProps)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n      rootProps = null;\n    }\n    const context = createAppContext();\n    const installedPlugins = /* @__PURE__ */ new WeakSet();\n    let isMounted = false;\n    const app = context.app = {\n      _uid: uid$1++,\n      _component: rootComponent,\n      _props: rootProps,\n      _container: null,\n      _context: context,\n      _instance: null,\n      version,\n      get config() {\n        return context.config;\n      },\n      set config(v) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `app.config cannot be replaced. Modify individual options instead.`\n          );\n        }\n      },\n      use(plugin, ...options) {\n        if (installedPlugins.has(plugin)) {\n          !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n        } else if (plugin && isFunction(plugin.install)) {\n          installedPlugins.add(plugin);\n          plugin.install(app, ...options);\n        } else if (isFunction(plugin)) {\n          installedPlugins.add(plugin);\n          plugin(app, ...options);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `A plugin must either be a function or an object with an \"install\" function.`\n          );\n        }\n        return app;\n      },\n      mixin(mixin) {\n        if (__VUE_OPTIONS_API__) {\n          if (!context.mixins.includes(mixin)) {\n            context.mixins.push(mixin);\n          } else if (!!(process.env.NODE_ENV !== \"production\")) {\n            warn$1(\n              \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n            );\n          }\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Mixins are only available in builds supporting Options API\");\n        }\n        return app;\n      },\n      component(name, component) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateComponentName(name, context.config);\n        }\n        if (!component) {\n          return context.components[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n          warn$1(`Component \"${name}\" has already been registered in target app.`);\n        }\n        context.components[name] = component;\n        return app;\n      },\n      directive(name, directive) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateDirectiveName(name);\n        }\n        if (!directive) {\n          return context.directives[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n          warn$1(`Directive \"${name}\" has already been registered in target app.`);\n        }\n        context.directives[name] = directive;\n        return app;\n      },\n      mount(rootContainer, isHydrate, namespace) {\n        if (!isMounted) {\n          if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n            warn$1(\n              `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n            );\n          }\n          const vnode = createVNode(rootComponent, rootProps);\n          vnode.appContext = context;\n          if (namespace === true) {\n            namespace = \"svg\";\n          } else if (namespace === false) {\n            namespace = void 0;\n          }\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            context.reload = () => {\n              render(\n                cloneVNode(vnode),\n                rootContainer,\n                namespace\n              );\n            };\n          }\n          if (isHydrate && hydrate) {\n            hydrate(vnode, rootContainer);\n          } else {\n            render(vnode, rootContainer, namespace);\n          }\n          isMounted = true;\n          app._container = rootContainer;\n          rootContainer.__vue_app__ = app;\n          if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n            app._instance = vnode.component;\n            devtoolsInitApp(app, version);\n          }\n          return getExposeProxy(vnode.component) || vnode.component.proxy;\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n          );\n        }\n      },\n      unmount() {\n        if (isMounted) {\n          render(null, app._container);\n          if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n            app._instance = null;\n            devtoolsUnmountApp(app);\n          }\n          delete app._container.__vue_app__;\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(`Cannot unmount an app that is not mounted.`);\n        }\n      },\n      provide(key, value) {\n        if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n          warn$1(\n            `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n          );\n        }\n        context.provides[key] = value;\n        return app;\n      },\n      runWithContext(fn) {\n        currentApp = app;\n        try {\n          return fn();\n        } finally {\n          currentApp = null;\n        }\n      }\n    };\n    {\n      installAppCompatProperties(app, context, render);\n    }\n    return app;\n  };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n  if (!currentInstance) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`provide() can only be used inside setup().`);\n    }\n  } else {\n    let provides = currentInstance.provides;\n    const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n    if (parentProvides === provides) {\n      provides = currentInstance.provides = Object.create(parentProvides);\n    }\n    provides[key] = value;\n  }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n  const instance = currentInstance || currentRenderingInstance;\n  if (instance || currentApp) {\n    const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n    if (provides && key in provides) {\n      return provides[key];\n    } else if (arguments.length > 1) {\n      return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`injection \"${String(key)}\" not found.`);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`inject() can only be used inside setup() or functional components.`);\n  }\n}\nfunction hasInjectionContext() {\n  return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nfunction createPropsDefaultThis(instance, rawProps, propKey) {\n  return new Proxy(\n    {},\n    {\n      get(_, key) {\n        !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"PROPS_DEFAULT_THIS\", null, propKey);\n        if (key === \"$options\") {\n          return resolveMergedOptions(instance);\n        }\n        if (key in rawProps) {\n          return rawProps[key];\n        }\n        const injections = instance.type.inject;\n        if (injections) {\n          if (isArray(injections)) {\n            if (injections.includes(key)) {\n              return inject(key);\n            }\n          } else if (key in injections) {\n            return inject(key);\n          }\n        }\n      }\n    }\n  );\n}\n\nfunction shouldSkipAttr(key, instance) {\n  if (key === \"is\") {\n    return true;\n  }\n  if ((key === \"class\" || key === \"style\") && isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance)) {\n    return true;\n  }\n  if (isOn(key) && isCompatEnabled(\"INSTANCE_LISTENERS\", instance)) {\n    return true;\n  }\n  if (key.startsWith(\"routerView\") || key === \"registerRouteInstance\") {\n    return true;\n  }\n  return false;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n  const props = {};\n  const attrs = {};\n  def(attrs, InternalObjectKey, 1);\n  instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n  setFullProps(instance, rawProps, props, attrs);\n  for (const key in instance.propsOptions[0]) {\n    if (!(key in props)) {\n      props[key] = void 0;\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n  if (isStateful) {\n    instance.props = isSSR ? props : shallowReactive(props);\n  } else {\n    if (!instance.type.props) {\n      instance.props = attrs;\n    } else {\n      instance.props = props;\n    }\n  }\n  instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n  while (instance) {\n    if (instance.type.__hmrId)\n      return true;\n    instance = instance.parent;\n  }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n  const {\n    props,\n    attrs,\n    vnode: { patchFlag }\n  } = instance;\n  const rawCurrentProps = toRaw(props);\n  const [options] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  if (\n    // always force full diff in dev\n    // - #1942 if hmr is enabled with sfc component\n    // - vite#872 non-sfc component used by sfc component\n    !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n  ) {\n    if (patchFlag & 8) {\n      const propsToUpdate = instance.vnode.dynamicProps;\n      for (let i = 0; i < propsToUpdate.length; i++) {\n        let key = propsToUpdate[i];\n        if (isEmitListener(instance.emitsOptions, key)) {\n          continue;\n        }\n        const value = rawProps[key];\n        if (options) {\n          if (hasOwn(attrs, key)) {\n            if (value !== attrs[key]) {\n              attrs[key] = value;\n              hasAttrsChanged = true;\n            }\n          } else {\n            const camelizedKey = camelize(key);\n            props[camelizedKey] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              camelizedKey,\n              value,\n              instance,\n              false\n            );\n          }\n        } else {\n          {\n            if (isOn(key) && key.endsWith(\"Native\")) {\n              key = key.slice(0, -6);\n            } else if (shouldSkipAttr(key, instance)) {\n              continue;\n            }\n          }\n          if (value !== attrs[key]) {\n            attrs[key] = value;\n            hasAttrsChanged = true;\n          }\n        }\n      }\n    }\n  } else {\n    if (setFullProps(instance, rawProps, props, attrs)) {\n      hasAttrsChanged = true;\n    }\n    let kebabKey;\n    for (const key in rawCurrentProps) {\n      if (!rawProps || // for camelCase\n      !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n      // and converted to camelCase (#955)\n      ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n        if (options) {\n          if (rawPrevProps && // for camelCase\n          (rawPrevProps[key] !== void 0 || // for kebab-case\n          rawPrevProps[kebabKey] !== void 0)) {\n            props[key] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              key,\n              void 0,\n              instance,\n              true\n            );\n          }\n        } else {\n          delete props[key];\n        }\n      }\n    }\n    if (attrs !== rawCurrentProps) {\n      for (const key in attrs) {\n        if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + \"Native\")) {\n          delete attrs[key];\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (hasAttrsChanged) {\n    trigger(instance, \"set\", \"$attrs\");\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n  const [options, needCastKeys] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  let rawCastValues;\n  if (rawProps) {\n    for (let key in rawProps) {\n      if (isReservedProp(key)) {\n        continue;\n      }\n      {\n        if (key.startsWith(\"onHook:\")) {\n          softAssertCompatEnabled(\n            \"INSTANCE_EVENT_HOOKS\",\n            instance,\n            key.slice(2).toLowerCase()\n          );\n        }\n        if (key === \"inline-template\") {\n          continue;\n        }\n      }\n      const value = rawProps[key];\n      let camelKey;\n      if (options && hasOwn(options, camelKey = camelize(key))) {\n        if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n          props[camelKey] = value;\n        } else {\n          (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n        }\n      } else if (!isEmitListener(instance.emitsOptions, key)) {\n        {\n          if (isOn(key) && key.endsWith(\"Native\")) {\n            key = key.slice(0, -6);\n          } else if (shouldSkipAttr(key, instance)) {\n            continue;\n          }\n        }\n        if (!(key in attrs) || value !== attrs[key]) {\n          attrs[key] = value;\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (needCastKeys) {\n    const rawCurrentProps = toRaw(props);\n    const castValues = rawCastValues || EMPTY_OBJ;\n    for (let i = 0; i < needCastKeys.length; i++) {\n      const key = needCastKeys[i];\n      props[key] = resolvePropValue(\n        options,\n        rawCurrentProps,\n        key,\n        castValues[key],\n        instance,\n        !hasOwn(castValues, key)\n      );\n    }\n  }\n  return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, \"default\");\n    if (hasDefault && value === void 0) {\n      const defaultValue = opt.default;\n      if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n        const { propsDefaults } = instance;\n        if (key in propsDefaults) {\n          value = propsDefaults[key];\n        } else {\n          const reset = setCurrentInstance(instance);\n          value = propsDefaults[key] = defaultValue.call(\n            isCompatEnabled(\"PROPS_DEFAULT_THIS\", instance) ? createPropsDefaultThis(instance, props, key) : null,\n            props\n          );\n          reset();\n        }\n      } else {\n        value = defaultValue;\n      }\n    }\n    if (opt[0 /* shouldCast */]) {\n      if (isAbsent && !hasDefault) {\n        value = false;\n      } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n        value = true;\n      }\n    }\n  }\n  return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.propsCache;\n  const cached = cache.get(comp);\n  if (cached) {\n    return cached;\n  }\n  const raw = comp.props;\n  const normalized = {};\n  const needCastKeys = [];\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendProps = (raw2) => {\n      if (isFunction(raw2)) {\n        raw2 = raw2.options;\n      }\n      hasExtends = true;\n      const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n      extend(normalized, props);\n      if (keys)\n        needCastKeys.push(...keys);\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendProps);\n    }\n    if (comp.extends) {\n      extendProps(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendProps);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, EMPTY_ARR);\n    }\n    return EMPTY_ARR;\n  }\n  if (isArray(raw)) {\n    for (let i = 0; i < raw.length; i++) {\n      if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n        warn$1(`props must be strings when using array syntax.`, raw[i]);\n      }\n      const normalizedKey = camelize(raw[i]);\n      if (validatePropName(normalizedKey)) {\n        normalized[normalizedKey] = EMPTY_OBJ;\n      }\n    }\n  } else if (raw) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n      warn$1(`invalid props options`, raw);\n    }\n    for (const key in raw) {\n      const normalizedKey = camelize(key);\n      if (validatePropName(normalizedKey)) {\n        const opt = raw[key];\n        const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n        if (prop) {\n          const booleanIndex = getTypeIndex(Boolean, prop.type);\n          const stringIndex = getTypeIndex(String, prop.type);\n          prop[0 /* shouldCast */] = booleanIndex > -1;\n          prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n          if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n            needCastKeys.push(normalizedKey);\n          }\n        }\n      }\n    }\n  }\n  const res = [normalized, needCastKeys];\n  if (isObject(comp)) {\n    cache.set(comp, res);\n  }\n  return res;\n}\nfunction validatePropName(key) {\n  if (key[0] !== \"$\") {\n    return true;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n  }\n  return false;\n}\nfunction getType(ctor) {\n  const match = ctor && ctor.toString().match(/^\\s*(function|class) (\\w+)/);\n  return match ? match[2] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n  return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n  if (isArray(expectedTypes)) {\n    return expectedTypes.findIndex((t) => isSameType(t, type));\n  } else if (isFunction(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1;\n  }\n  return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n  const resolvedValues = toRaw(props);\n  const options = instance.propsOptions[0];\n  for (const key in options) {\n    let opt = options[key];\n    if (opt == null)\n      continue;\n    validateProp(\n      key,\n      resolvedValues[key],\n      opt,\n      !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n      !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n    );\n  }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n  const { type, required, validator, skipCheck } = prop;\n  if (required && isAbsent) {\n    warn$1('Missing required prop: \"' + name + '\"');\n    return;\n  }\n  if (value == null && !required) {\n    return;\n  }\n  if (type != null && type !== true && !skipCheck) {\n    let isValid = false;\n    const types = isArray(type) ? type : [type];\n    const expectedTypes = [];\n    for (let i = 0; i < types.length && !isValid; i++) {\n      const { valid, expectedType } = assertType(value, types[i]);\n      expectedTypes.push(expectedType || \"\");\n      isValid = valid;\n    }\n    if (!isValid) {\n      warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n      return;\n    }\n  }\n  if (validator && !validator(value, props)) {\n    warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n  }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n  \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n  let valid;\n  const expectedType = getType(type);\n  if (isSimpleType(expectedType)) {\n    const t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    if (!valid && t === \"object\") {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === \"Object\") {\n    valid = isObject(value);\n  } else if (expectedType === \"Array\") {\n    valid = isArray(value);\n  } else if (expectedType === \"null\") {\n    valid = value === null;\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid,\n    expectedType\n  };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n  if (expectedTypes.length === 0) {\n    return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n  }\n  let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n  const expectedType = expectedTypes[0];\n  const receivedType = toRawType(value);\n  const expectedValue = styleValue(value, expectedType);\n  const receivedValue = styleValue(value, receivedType);\n  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n    message += ` with value ${expectedValue}`;\n  }\n  message += `, got ${receivedType} `;\n  if (isExplicable(receivedType)) {\n    message += `with value ${receivedValue}.`;\n  }\n  return message;\n}\nfunction styleValue(value, type) {\n  if (type === \"String\") {\n    return `\"${value}\"`;\n  } else if (type === \"Number\") {\n    return `${Number(value)}`;\n  } else {\n    return `${value}`;\n  }\n}\nfunction isExplicable(type) {\n  const explicitTypes = [\"string\", \"number\", \"boolean\"];\n  return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n  return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n  if (rawSlot._n) {\n    return rawSlot;\n  }\n  const normalized = withCtx((...args) => {\n    if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n      warn$1(\n        `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n      );\n    }\n    return normalizeSlotValue(rawSlot(...args));\n  }, ctx);\n  normalized._c = false;\n  return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n  const ctx = rawSlots._ctx;\n  for (const key in rawSlots) {\n    if (isInternalKey(key))\n      continue;\n    const value = rawSlots[key];\n    if (isFunction(value)) {\n      slots[key] = normalizeSlot(key, value, ctx);\n    } else if (value != null) {\n      if (!!(process.env.NODE_ENV !== \"production\") && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n        warn$1(\n          `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n        );\n      }\n      const normalized = normalizeSlotValue(value);\n      slots[key] = () => normalized;\n    }\n  }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n    warn$1(\n      `Non-function value encountered for default slot. Prefer function slots for better performance.`\n    );\n  }\n  const normalized = normalizeSlotValue(children);\n  instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n  if (instance.vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      instance.slots = toRaw(children);\n      def(children, \"_\", type);\n    } else {\n      normalizeObjectSlots(\n        children,\n        instance.slots = {},\n        instance\n      );\n    }\n  } else {\n    instance.slots = {};\n    if (children) {\n      normalizeVNodeSlots(instance, children);\n    }\n  }\n  def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n  const { vnode, slots } = instance;\n  let needDeletionCheck = true;\n  let deletionComparisonTarget = EMPTY_OBJ;\n  if (vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n        extend(slots, children);\n        trigger(instance, \"set\", \"$slots\");\n      } else if (optimized && type === 1) {\n        needDeletionCheck = false;\n      } else {\n        extend(slots, children);\n        if (!optimized && type === 1) {\n          delete slots._;\n        }\n      }\n    } else {\n      needDeletionCheck = !children.$stable;\n      normalizeObjectSlots(children, slots, instance);\n    }\n    deletionComparisonTarget = children;\n  } else if (children) {\n    normalizeVNodeSlots(instance, children);\n    deletionComparisonTarget = { default: 1 };\n  }\n  if (needDeletionCheck) {\n    for (const key in slots) {\n      if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n        delete slots[key];\n      }\n    }\n  }\n};\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n  if (isArray(rawRef)) {\n    rawRef.forEach(\n      (r, i) => setRef(\n        r,\n        oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n        parentSuspense,\n        vnode,\n        isUnmount\n      )\n    );\n    return;\n  }\n  if (isAsyncWrapper(vnode) && !isUnmount) {\n    return;\n  }\n  const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n  const value = isUnmount ? null : refValue;\n  const { i: owner, r: ref } = rawRef;\n  if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n    warn$1(\n      `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n    );\n    return;\n  }\n  const oldRef = oldRawRef && oldRawRef.r;\n  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n  const setupState = owner.setupState;\n  if (oldRef != null && oldRef !== ref) {\n    if (isString(oldRef)) {\n      refs[oldRef] = null;\n      if (hasOwn(setupState, oldRef)) {\n        setupState[oldRef] = null;\n      }\n    } else if (isRef(oldRef)) {\n      oldRef.value = null;\n    }\n  }\n  if (isFunction(ref)) {\n    callWithErrorHandling(ref, owner, 12, [value, refs]);\n  } else {\n    const _isString = isString(ref);\n    const _isRef = isRef(ref);\n    const isVFor = rawRef.f;\n    if (_isString || _isRef) {\n      const doSet = () => {\n        if (isVFor) {\n          const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;\n          if (isUnmount) {\n            isArray(existing) && remove(existing, refValue);\n          } else {\n            if (!isArray(existing)) {\n              if (_isString) {\n                refs[ref] = [refValue];\n                if (hasOwn(setupState, ref)) {\n                  setupState[ref] = refs[ref];\n                }\n              } else {\n                ref.value = [refValue];\n                if (rawRef.k)\n                  refs[rawRef.k] = ref.value;\n              }\n            } else if (!existing.includes(refValue)) {\n              existing.push(refValue);\n            }\n          }\n        } else if (_isString) {\n          refs[ref] = value;\n          if (hasOwn(setupState, ref)) {\n            setupState[ref] = value;\n          }\n        } else if (_isRef) {\n          ref.value = value;\n          if (rawRef.k)\n            refs[rawRef.k] = value;\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n        }\n      };\n      if (isUnmount || isVFor) {\n        doSet();\n      } else {\n        doSet.id = -1;\n        queuePostRenderEffect(doSet, parentSuspense);\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n    }\n  }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n  if (isSVGContainer(container))\n    return \"svg\";\n  if (isMathMLContainer(container))\n    return \"mathml\";\n  return void 0;\n};\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\nfunction createHydrationFunctions(rendererInternals) {\n  const {\n    mt: mountComponent,\n    p: patch,\n    o: {\n      patchProp,\n      createText,\n      nextSibling,\n      parentNode,\n      remove,\n      insert,\n      createComment\n    }\n  } = rendererInternals;\n  const hydrate = (vnode, container) => {\n    if (!container.hasChildNodes()) {\n      (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n        `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n      );\n      patch(null, vnode, container);\n      flushPostFlushCbs();\n      container._vnode = vnode;\n      return;\n    }\n    hasMismatch = false;\n    hydrateNode(container.firstChild, vnode, null, null, null);\n    flushPostFlushCbs();\n    container._vnode = vnode;\n    if (hasMismatch && true) {\n      console.error(`Hydration completed but contains mismatches.`);\n    }\n  };\n  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n    const isFragmentStart = isComment(node) && node.data === \"[\";\n    const onMismatch = () => handleMismatch(\n      node,\n      vnode,\n      parentComponent,\n      parentSuspense,\n      slotScopeIds,\n      isFragmentStart\n    );\n    const { type, ref, shapeFlag, patchFlag } = vnode;\n    let domType = node.nodeType;\n    vnode.el = node;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      if (!(\"__vnode\" in node)) {\n        Object.defineProperty(node, \"__vnode\", {\n          value: vnode,\n          enumerable: false\n        });\n      }\n      if (!(\"__vueParentComponent\" in node)) {\n        Object.defineProperty(node, \"__vueParentComponent\", {\n          value: parentComponent,\n          enumerable: false\n        });\n      }\n    }\n    if (patchFlag === -2) {\n      optimized = false;\n      vnode.dynamicChildren = null;\n    }\n    let nextNode = null;\n    switch (type) {\n      case Text:\n        if (domType !== 3 /* TEXT */) {\n          if (vnode.children === \"\") {\n            insert(vnode.el = createText(\"\"), parentNode(node), node);\n            nextNode = node;\n          } else {\n            nextNode = onMismatch();\n          }\n        } else {\n          if (node.data !== vnode.children) {\n            hasMismatch = true;\n            (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n              `Hydration text mismatch in`,\n              node.parentNode,\n              `\n  - rendered on server: ${JSON.stringify(\n                node.data\n              )}\n  - expected on client: ${JSON.stringify(vnode.children)}`\n            );\n            node.data = vnode.children;\n          }\n          nextNode = nextSibling(node);\n        }\n        break;\n      case Comment:\n        if (isTemplateNode(node)) {\n          nextNode = nextSibling(node);\n          replaceNode(\n            vnode.el = node.content.firstChild,\n            node,\n            parentComponent\n          );\n        } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {\n          nextNode = onMismatch();\n        } else {\n          nextNode = nextSibling(node);\n        }\n        break;\n      case Static:\n        if (isFragmentStart) {\n          node = nextSibling(node);\n          domType = node.nodeType;\n        }\n        if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) {\n          nextNode = node;\n          const needToAdoptContent = !vnode.children.length;\n          for (let i = 0; i < vnode.staticCount; i++) {\n            if (needToAdoptContent)\n              vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data;\n            if (i === vnode.staticCount - 1) {\n              vnode.anchor = nextNode;\n            }\n            nextNode = nextSibling(nextNode);\n          }\n          return isFragmentStart ? nextSibling(nextNode) : nextNode;\n        } else {\n          onMismatch();\n        }\n        break;\n      case Fragment:\n        if (!isFragmentStart) {\n          nextNode = onMismatch();\n        } else {\n          nextNode = hydrateFragment(\n            node,\n            vnode,\n            parentComponent,\n            parentSuspense,\n            slotScopeIds,\n            optimized\n          );\n        }\n        break;\n      default:\n        if (shapeFlag & 1) {\n          if ((domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n            nextNode = onMismatch();\n          } else {\n            nextNode = hydrateElement(\n              node,\n              vnode,\n              parentComponent,\n              parentSuspense,\n              slotScopeIds,\n              optimized\n            );\n          }\n        } else if (shapeFlag & 6) {\n          vnode.slotScopeIds = slotScopeIds;\n          const container = parentNode(node);\n          if (isFragmentStart) {\n            nextNode = locateClosingAnchor(node);\n          } else if (isComment(node) && node.data === \"teleport start\") {\n            nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n          } else {\n            nextNode = nextSibling(node);\n          }\n          mountComponent(\n            vnode,\n            container,\n            null,\n            parentComponent,\n            parentSuspense,\n            getContainerType(container),\n            optimized\n          );\n          if (isAsyncWrapper(vnode)) {\n            let subTree;\n            if (isFragmentStart) {\n              subTree = createVNode(Fragment);\n              subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n            } else {\n              subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n            }\n            subTree.el = node;\n            vnode.component.subTree = subTree;\n          }\n        } else if (shapeFlag & 64) {\n          if (domType !== 8 /* COMMENT */) {\n            nextNode = onMismatch();\n          } else {\n            nextNode = vnode.type.hydrate(\n              node,\n              vnode,\n              parentComponent,\n              parentSuspense,\n              slotScopeIds,\n              optimized,\n              rendererInternals,\n              hydrateChildren\n            );\n          }\n        } else if (shapeFlag & 128) {\n          nextNode = vnode.type.hydrate(\n            node,\n            vnode,\n            parentComponent,\n            parentSuspense,\n            getContainerType(parentNode(node)),\n            slotScopeIds,\n            optimized,\n            rendererInternals,\n            hydrateNode\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n          warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n        }\n    }\n    if (ref != null) {\n      setRef(ref, null, parentSuspense, vnode);\n    }\n    return nextNode;\n  };\n  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    optimized = optimized || !!vnode.dynamicChildren;\n    const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n    const forcePatch = type === \"input\" || type === \"option\";\n    if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n      if (dirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n      }\n      let needCallTransitionHooks = false;\n      if (isTemplateNode(el)) {\n        needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n        const content = el.content.firstChild;\n        if (needCallTransitionHooks) {\n          transition.beforeEnter(content);\n        }\n        replaceNode(content, el, parentComponent);\n        vnode.el = el = content;\n      }\n      if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n      !(props && (props.innerHTML || props.textContent))) {\n        let next = hydrateChildren(\n          el.firstChild,\n          vnode,\n          el,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n        let hasWarned = false;\n        while (next) {\n          hasMismatch = true;\n          if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n            warn$1(\n              `Hydration children mismatch on`,\n              el,\n              `\nServer rendered element contains more child nodes than client vdom.`\n            );\n            hasWarned = true;\n          }\n          const cur = next;\n          next = next.nextSibling;\n          remove(cur);\n        }\n      } else if (shapeFlag & 8) {\n        if (el.textContent !== vnode.children) {\n          hasMismatch = true;\n          (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n            `Hydration text content mismatch on`,\n            el,\n            `\n  - rendered on server: ${el.textContent}\n  - expected on client: ${vnode.children}`\n          );\n          el.textContent = vnode.children;\n        }\n      }\n      if (props) {\n        if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || !optimized || patchFlag & (16 | 32)) {\n          for (const key in props) {\n            if (!!(process.env.NODE_ENV !== \"production\") && propHasMismatch(el, key, props[key], vnode)) {\n              hasMismatch = true;\n            }\n            if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n            key[0] === \".\") {\n              patchProp(\n                el,\n                key,\n                null,\n                props[key],\n                void 0,\n                void 0,\n                parentComponent\n              );\n            }\n          }\n        } else if (props.onClick) {\n          patchProp(\n            el,\n            \"onClick\",\n            null,\n            props.onClick,\n            void 0,\n            void 0,\n            parentComponent\n          );\n        }\n      }\n      let vnodeHooks;\n      if (vnodeHooks = props && props.onVnodeBeforeMount) {\n        invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n      }\n      if (dirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n      }\n      if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n        queueEffectWithSuspense(() => {\n          vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n          needCallTransitionHooks && transition.enter(el);\n          dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n        }, parentSuspense);\n      }\n    }\n    return el.nextSibling;\n  };\n  const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    optimized = optimized || !!parentVNode.dynamicChildren;\n    const children = parentVNode.children;\n    const l = children.length;\n    let hasWarned = false;\n    for (let i = 0; i < l; i++) {\n      const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n      if (node) {\n        node = hydrateNode(\n          node,\n          vnode,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n      } else if (vnode.type === Text && !vnode.children) {\n        continue;\n      } else {\n        hasMismatch = true;\n        if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n          warn$1(\n            `Hydration children mismatch on`,\n            container,\n            `\nServer rendered element contains fewer child nodes than client vdom.`\n          );\n          hasWarned = true;\n        }\n        patch(\n          null,\n          vnode,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          getContainerType(container),\n          slotScopeIds\n        );\n      }\n    }\n    return node;\n  };\n  const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n    if (fragmentSlotScopeIds) {\n      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n    }\n    const container = parentNode(node);\n    const next = hydrateChildren(\n      nextSibling(node),\n      vnode,\n      container,\n      parentComponent,\n      parentSuspense,\n      slotScopeIds,\n      optimized\n    );\n    if (next && isComment(next) && next.data === \"]\") {\n      return nextSibling(vnode.anchor = next);\n    } else {\n      hasMismatch = true;\n      insert(vnode.anchor = createComment(`]`), container, next);\n      return next;\n    }\n  };\n  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n    hasMismatch = true;\n    (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n      `Hydration node mismatch:\n- rendered on server:`,\n      node,\n      node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n      `\n- expected on client:`,\n      vnode.type\n    );\n    vnode.el = null;\n    if (isFragment) {\n      const end = locateClosingAnchor(node);\n      while (true) {\n        const next2 = nextSibling(node);\n        if (next2 && next2 !== end) {\n          remove(next2);\n        } else {\n          break;\n        }\n      }\n    }\n    const next = nextSibling(node);\n    const container = parentNode(node);\n    remove(node);\n    patch(\n      null,\n      vnode,\n      container,\n      next,\n      parentComponent,\n      parentSuspense,\n      getContainerType(container),\n      slotScopeIds\n    );\n    return next;\n  };\n  const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n    let match = 0;\n    while (node) {\n      node = nextSibling(node);\n      if (node && isComment(node)) {\n        if (node.data === open)\n          match++;\n        if (node.data === close) {\n          if (match === 0) {\n            return nextSibling(node);\n          } else {\n            match--;\n          }\n        }\n      }\n    }\n    return node;\n  };\n  const replaceNode = (newNode, oldNode, parentComponent) => {\n    const parentNode2 = oldNode.parentNode;\n    if (parentNode2) {\n      parentNode2.replaceChild(newNode, oldNode);\n    }\n    let parent = parentComponent;\n    while (parent) {\n      if (parent.vnode.el === oldNode) {\n        parent.vnode.el = parent.subTree.el = newNode;\n      }\n      parent = parent.parent;\n    }\n  };\n  const isTemplateNode = (node) => {\n    return node.nodeType === 1 /* ELEMENT */ && node.tagName.toLowerCase() === \"template\";\n  };\n  return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode) {\n  let mismatchType;\n  let mismatchKey;\n  let actual;\n  let expected;\n  if (key === \"class\") {\n    actual = el.getAttribute(\"class\");\n    expected = normalizeClass(clientValue);\n    if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n      mismatchType = mismatchKey = `class`;\n    }\n  } else if (key === \"style\") {\n    actual = el.getAttribute(\"style\");\n    expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n    const actualMap = toStyleMap(actual);\n    const expectedMap = toStyleMap(expected);\n    if (vnode.dirs) {\n      for (const { dir, value } of vnode.dirs) {\n        if (dir.name === \"show\" && !value) {\n          expectedMap.set(\"display\", \"none\");\n        }\n      }\n    }\n    if (!isMapEqual(actualMap, expectedMap)) {\n      mismatchType = mismatchKey = \"style\";\n    }\n  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n    if (isBooleanAttr(key)) {\n      actual = el.hasAttribute(key);\n      expected = includeBooleanAttr(clientValue);\n    } else if (clientValue == null) {\n      actual = el.hasAttribute(key);\n      expected = false;\n    } else {\n      if (el.hasAttribute(key)) {\n        actual = el.getAttribute(key);\n      } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n        actual = el.value;\n      } else {\n        actual = false;\n      }\n      expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n    }\n    if (actual !== expected) {\n      mismatchType = `attribute`;\n      mismatchKey = key;\n    }\n  }\n  if (mismatchType) {\n    const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n    const preSegment = `Hydration ${mismatchType} mismatch on`;\n    const postSegment = `\n  - rendered on server: ${format(actual)}\n  - expected on client: ${format(expected)}\n  Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n  You should fix the source of the mismatch.`;\n    {\n      warn$1(preSegment, el, postSegment);\n    }\n    return true;\n  }\n  return false;\n}\nfunction toClassSet(str) {\n  return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n  if (a.size !== b.size) {\n    return false;\n  }\n  for (const s of a) {\n    if (!b.has(s)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction toStyleMap(str) {\n  const styleMap = /* @__PURE__ */ new Map();\n  for (const item of str.split(\";\")) {\n    let [key, value] = item.split(\":\");\n    key = key == null ? void 0 : key.trim();\n    value = value == null ? void 0 : value.trim();\n    if (key && value) {\n      styleMap.set(key, value);\n    }\n  }\n  return styleMap;\n}\nfunction isMapEqual(a, b) {\n  if (a.size !== b.size) {\n    return false;\n  }\n  for (const [key, value] of a) {\n    if (value !== b.get(key)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    perf.mark(`vue-${type}-${instance.uid}`);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction endMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    const startTag = `vue-${type}-${instance.uid}`;\n    const endTag = startTag + `:end`;\n    perf.mark(endTag);\n    perf.measure(\n      `<${formatComponentName(instance, instance.type)}> ${type}`,\n      startTag,\n      endTag\n    );\n    perf.clearMarks(startTag);\n    perf.clearMarks(endTag);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction isSupported() {\n  if (supported !== void 0) {\n    return supported;\n  }\n  if (typeof window !== \"undefined\" && window.performance) {\n    supported = true;\n    perf = window.performance;\n  } else {\n    supported = false;\n  }\n  return supported;\n}\n\nfunction initFeatureFlags() {\n  const needWarn = [];\n  if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n    getGlobalThis().__VUE_OPTIONS_API__ = true;\n  }\n  if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n    getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n  }\n  if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n    getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n    const multi = needWarn.length > 1;\n    console.warn(\n      `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n    );\n  }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n  return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n  return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n  {\n    initFeatureFlags();\n  }\n  const target = getGlobalThis();\n  target.__VUE__ = true;\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n  }\n  const {\n    insert: hostInsert,\n    remove: hostRemove,\n    patchProp: hostPatchProp,\n    createElement: hostCreateElement,\n    createText: hostCreateText,\n    createComment: hostCreateComment,\n    setText: hostSetText,\n    setElementText: hostSetElementText,\n    parentNode: hostParentNode,\n    nextSibling: hostNextSibling,\n    setScopeId: hostSetScopeId = NOOP,\n    insertStaticContent: hostInsertStaticContent\n  } = options;\n  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n    if (n1 === n2) {\n      return;\n    }\n    if (n1 && !isSameVNodeType(n1, n2)) {\n      anchor = getNextHostNode(n1);\n      unmount(n1, parentComponent, parentSuspense, true);\n      n1 = null;\n    }\n    if (n2.patchFlag === -2) {\n      optimized = false;\n      n2.dynamicChildren = null;\n    }\n    const { type, ref, shapeFlag } = n2;\n    switch (type) {\n      case Text:\n        processText(n1, n2, container, anchor);\n        break;\n      case Comment:\n        processCommentNode(n1, n2, container, anchor);\n        break;\n      case Static:\n        if (n1 == null) {\n          mountStaticNode(n2, container, anchor, namespace);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          patchStaticNode(n1, n2, container, namespace);\n        }\n        break;\n      case Fragment:\n        processFragment(\n          n1,\n          n2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        break;\n      default:\n        if (shapeFlag & 1) {\n          processElement(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (shapeFlag & 6) {\n          processComponent(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (shapeFlag & 64) {\n          type.process(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized,\n            internals\n          );\n        } else if (shapeFlag & 128) {\n          type.process(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized,\n            internals\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n        }\n    }\n    if (ref != null && parentComponent) {\n      setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n    }\n  };\n  const processText = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(\n        n2.el = hostCreateText(n2.children),\n        container,\n        anchor\n      );\n    } else {\n      const el = n2.el = n1.el;\n      if (n2.children !== n1.children) {\n        hostSetText(el, n2.children);\n      }\n    }\n  };\n  const processCommentNode = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(\n        n2.el = hostCreateComment(n2.children || \"\"),\n        container,\n        anchor\n      );\n    } else {\n      n2.el = n1.el;\n    }\n  };\n  const mountStaticNode = (n2, container, anchor, namespace) => {\n    [n2.el, n2.anchor] = hostInsertStaticContent(\n      n2.children,\n      container,\n      anchor,\n      namespace,\n      n2.el,\n      n2.anchor\n    );\n  };\n  const patchStaticNode = (n1, n2, container, namespace) => {\n    if (n2.children !== n1.children) {\n      const anchor = hostNextSibling(n1.anchor);\n      removeStaticNode(n1);\n      [n2.el, n2.anchor] = hostInsertStaticContent(\n        n2.children,\n        container,\n        anchor,\n        namespace\n      );\n    } else {\n      n2.el = n1.el;\n      n2.anchor = n1.anchor;\n    }\n  };\n  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostInsert(el, container, nextSibling);\n      el = next;\n    }\n    hostInsert(anchor, container, nextSibling);\n  };\n  const removeStaticNode = ({ el, anchor }) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostRemove(el);\n      el = next;\n    }\n    hostRemove(anchor);\n  };\n  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    if (n2.type === \"svg\") {\n      namespace = \"svg\";\n    } else if (n2.type === \"math\") {\n      namespace = \"mathml\";\n    }\n    if (n1 == null) {\n      mountElement(\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    } else {\n      patchElement(\n        n1,\n        n2,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n  };\n  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    let el;\n    let vnodeHook;\n    const { props, shapeFlag, transition, dirs } = vnode;\n    el = vnode.el = hostCreateElement(\n      vnode.type,\n      namespace,\n      props && props.is,\n      props\n    );\n    if (shapeFlag & 8) {\n      hostSetElementText(el, vnode.children);\n    } else if (shapeFlag & 16) {\n      mountChildren(\n        vnode.children,\n        el,\n        null,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(vnode, namespace),\n        slotScopeIds,\n        optimized\n      );\n    }\n    if (dirs) {\n      invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n    }\n    setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n    if (props) {\n      for (const key in props) {\n        if (key !== \"value\" && !isReservedProp(key)) {\n          hostPatchProp(\n            el,\n            key,\n            null,\n            props[key],\n            namespace,\n            vnode.children,\n            parentComponent,\n            parentSuspense,\n            unmountChildren\n          );\n        }\n      }\n      if (\"value\" in props) {\n        hostPatchProp(el, \"value\", null, props.value, namespace);\n      }\n      if (vnodeHook = props.onVnodeBeforeMount) {\n        invokeVNodeHook(vnodeHook, parentComponent, vnode);\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      Object.defineProperty(el, \"__vnode\", {\n        value: vnode,\n        enumerable: false\n      });\n      Object.defineProperty(el, \"__vueParentComponent\", {\n        value: parentComponent,\n        enumerable: false\n      });\n    }\n    if (dirs) {\n      invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n    }\n    const needCallTransitionHooks = needTransition(parentSuspense, transition);\n    if (needCallTransitionHooks) {\n      transition.beforeEnter(el);\n    }\n    hostInsert(el, container, anchor);\n    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        needCallTransitionHooks && transition.enter(el);\n        dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n      }, parentSuspense);\n    }\n  };\n  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n    if (scopeId) {\n      hostSetScopeId(el, scopeId);\n    }\n    if (slotScopeIds) {\n      for (let i = 0; i < slotScopeIds.length; i++) {\n        hostSetScopeId(el, slotScopeIds[i]);\n      }\n    }\n    if (parentComponent) {\n      let subTree = parentComponent.subTree;\n      if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n        subTree = filterSingleRoot(subTree.children) || subTree;\n      }\n      if (vnode === subTree) {\n        const parentVNode = parentComponent.vnode;\n        setScopeId(\n          el,\n          parentVNode,\n          parentVNode.scopeId,\n          parentVNode.slotScopeIds,\n          parentComponent.parent\n        );\n      }\n    }\n  };\n  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n      patch(\n        null,\n        child,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n  };\n  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    const el = n2.el = n1.el;\n    let { patchFlag, dynamicChildren, dirs } = n2;\n    patchFlag |= n1.patchFlag & 16;\n    const oldProps = n1.props || EMPTY_OBJ;\n    const newProps = n2.props || EMPTY_OBJ;\n    let vnodeHook;\n    parentComponent && toggleRecurse(parentComponent, false);\n    if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n    }\n    if (dirs) {\n      invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n    }\n    parentComponent && toggleRecurse(parentComponent, true);\n    if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n      patchFlag = 0;\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (dynamicChildren) {\n      patchBlockChildren(\n        n1.dynamicChildren,\n        dynamicChildren,\n        el,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(n2, namespace),\n        slotScopeIds\n      );\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        traverseStaticChildren(n1, n2);\n      }\n    } else if (!optimized) {\n      patchChildren(\n        n1,\n        n2,\n        el,\n        null,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(n2, namespace),\n        slotScopeIds,\n        false\n      );\n    }\n    if (patchFlag > 0) {\n      if (patchFlag & 16) {\n        patchProps(\n          el,\n          n2,\n          oldProps,\n          newProps,\n          parentComponent,\n          parentSuspense,\n          namespace\n        );\n      } else {\n        if (patchFlag & 2) {\n          if (oldProps.class !== newProps.class) {\n            hostPatchProp(el, \"class\", null, newProps.class, namespace);\n          }\n        }\n        if (patchFlag & 4) {\n          hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n        }\n        if (patchFlag & 8) {\n          const propsToUpdate = n2.dynamicProps;\n          for (let i = 0; i < propsToUpdate.length; i++) {\n            const key = propsToUpdate[i];\n            const prev = oldProps[key];\n            const next = newProps[key];\n            if (next !== prev || key === \"value\") {\n              hostPatchProp(\n                el,\n                key,\n                prev,\n                next,\n                namespace,\n                n1.children,\n                parentComponent,\n                parentSuspense,\n                unmountChildren\n              );\n            }\n          }\n        }\n      }\n      if (patchFlag & 1) {\n        if (n1.children !== n2.children) {\n          hostSetElementText(el, n2.children);\n        }\n      }\n    } else if (!optimized && dynamicChildren == null) {\n      patchProps(\n        el,\n        n2,\n        oldProps,\n        newProps,\n        parentComponent,\n        parentSuspense,\n        namespace\n      );\n    }\n    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n        dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n      }, parentSuspense);\n    }\n  };\n  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n    for (let i = 0; i < newChildren.length; i++) {\n      const oldVNode = oldChildren[i];\n      const newVNode = newChildren[i];\n      const container = (\n        // oldVNode may be an errored async setup() component inside Suspense\n        // which will not have a mounted element\n        oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n        // of the Fragment itself so it can move its children.\n        (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n        // which also requires the correct parent container\n        !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n        oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n          // In other cases, the parent container is not actually used so we\n          // just pass the block element here to avoid a DOM parentNode call.\n          fallbackContainer\n        )\n      );\n      patch(\n        oldVNode,\n        newVNode,\n        container,\n        null,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        true\n      );\n    }\n  };\n  const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {\n    if (oldProps !== newProps) {\n      if (oldProps !== EMPTY_OBJ) {\n        for (const key in oldProps) {\n          if (!isReservedProp(key) && !(key in newProps)) {\n            hostPatchProp(\n              el,\n              key,\n              oldProps[key],\n              null,\n              namespace,\n              vnode.children,\n              parentComponent,\n              parentSuspense,\n              unmountChildren\n            );\n          }\n        }\n      }\n      for (const key in newProps) {\n        if (isReservedProp(key))\n          continue;\n        const next = newProps[key];\n        const prev = oldProps[key];\n        if (next !== prev && key !== \"value\") {\n          hostPatchProp(\n            el,\n            key,\n            prev,\n            next,\n            namespace,\n            vnode.children,\n            parentComponent,\n            parentSuspense,\n            unmountChildren\n          );\n        }\n      }\n      if (\"value\" in newProps) {\n        hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n      }\n    }\n  };\n  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n    if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n    (isHmrUpdating || patchFlag & 2048)) {\n      patchFlag = 0;\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (fragmentSlotScopeIds) {\n      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n    }\n    if (n1 == null) {\n      hostInsert(fragmentStartAnchor, container, anchor);\n      hostInsert(fragmentEndAnchor, container, anchor);\n      mountChildren(\n        // #10007\n        // such fragment like `<></>` will be compiled into\n        // a fragment which doesn't have a children.\n        // In this case fallback to an empty array\n        n2.children || [],\n        container,\n        fragmentEndAnchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    } else {\n      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n      // of renderSlot() with no valid children\n      n1.dynamicChildren) {\n        patchBlockChildren(\n          n1.dynamicChildren,\n          dynamicChildren,\n          container,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds\n        );\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          traverseStaticChildren(n1, n2);\n        } else if (\n          // #2080 if the stable fragment has a key, it's a <template v-for> that may\n          //  get moved around. Make sure all root level vnodes inherit el.\n          // #2134 or if it's a component root, it may also get moved around\n          // as the component is being moved.\n          n2.key != null || parentComponent && n2 === parentComponent.subTree\n        ) {\n          traverseStaticChildren(\n            n1,\n            n2,\n            true\n            /* shallow */\n          );\n        }\n      } else {\n        patchChildren(\n          n1,\n          n2,\n          container,\n          fragmentEndAnchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      }\n    }\n  };\n  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    n2.slotScopeIds = slotScopeIds;\n    if (n1 == null) {\n      if (n2.shapeFlag & 512) {\n        parentComponent.ctx.activate(\n          n2,\n          container,\n          anchor,\n          namespace,\n          optimized\n        );\n      } else {\n        mountComponent(\n          n2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          optimized\n        );\n      }\n    } else {\n      updateComponent(n1, n2, optimized);\n    }\n  };\n  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n    const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;\n    const instance = compatMountInstance || (initialVNode.component = createComponentInstance(\n      initialVNode,\n      parentComponent,\n      parentSuspense\n    ));\n    if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n      registerHMR(instance);\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      pushWarningContext(initialVNode);\n      startMeasure(instance, `mount`);\n    }\n    if (isKeepAlive(initialVNode)) {\n      instance.ctx.renderer = internals;\n    }\n    if (!compatMountInstance) {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        startMeasure(instance, `init`);\n      }\n      setupComponent(instance);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        endMeasure(instance, `init`);\n      }\n    }\n    if (instance.asyncDep) {\n      parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n      if (!initialVNode.el) {\n        const placeholder = instance.subTree = createVNode(Comment);\n        processCommentNode(null, placeholder, container, anchor);\n      }\n    } else {\n      setupRenderEffect(\n        instance,\n        initialVNode,\n        container,\n        anchor,\n        parentSuspense,\n        namespace,\n        optimized\n      );\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      popWarningContext();\n      endMeasure(instance, `mount`);\n    }\n  };\n  const updateComponent = (n1, n2, optimized) => {\n    const instance = n2.component = n1.component;\n    if (shouldUpdateComponent(n1, n2, optimized)) {\n      if (instance.asyncDep && !instance.asyncResolved) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(n2);\n        }\n        updateComponentPreRender(instance, n2, optimized);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n        return;\n      } else {\n        instance.next = n2;\n        invalidateJob(instance.update);\n        instance.effect.dirty = true;\n        instance.update();\n      }\n    } else {\n      n2.el = n1.el;\n      instance.vnode = n2;\n    }\n  };\n  const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n    const componentUpdateFn = () => {\n      if (!instance.isMounted) {\n        let vnodeHook;\n        const { el, props } = initialVNode;\n        const { bm, m, parent } = instance;\n        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n        toggleRecurse(instance, false);\n        if (bm) {\n          invokeArrayFns(bm);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n          invokeVNodeHook(vnodeHook, parent, initialVNode);\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          instance.emit(\"hook:beforeMount\");\n        }\n        toggleRecurse(instance, true);\n        if (el && hydrateNode) {\n          const hydrateSubTree = () => {\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              startMeasure(instance, `render`);\n            }\n            instance.subTree = renderComponentRoot(instance);\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              endMeasure(instance, `render`);\n            }\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              startMeasure(instance, `hydrate`);\n            }\n            hydrateNode(\n              el,\n              instance.subTree,\n              instance,\n              parentSuspense,\n              null\n            );\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              endMeasure(instance, `hydrate`);\n            }\n          };\n          if (isAsyncWrapperVNode) {\n            initialVNode.type.__asyncLoader().then(\n              // note: we are moving the render call into an async callback,\n              // which means it won't track dependencies - but it's ok because\n              // a server-rendered async wrapper is already in resolved state\n              // and it will never need to change.\n              () => !instance.isUnmounted && hydrateSubTree()\n            );\n          } else {\n            hydrateSubTree();\n          }\n        } else {\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            startMeasure(instance, `render`);\n          }\n          const subTree = instance.subTree = renderComponentRoot(instance);\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            endMeasure(instance, `render`);\n          }\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            startMeasure(instance, `patch`);\n          }\n          patch(\n            null,\n            subTree,\n            container,\n            anchor,\n            instance,\n            parentSuspense,\n            namespace\n          );\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            endMeasure(instance, `patch`);\n          }\n          initialVNode.el = subTree.el;\n        }\n        if (m) {\n          queuePostRenderEffect(m, parentSuspense);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n          const scopedInitialVNode = initialVNode;\n          queuePostRenderEffect(\n            () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n            parentSuspense\n          );\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          queuePostRenderEffect(\n            () => instance.emit(\"hook:mounted\"),\n            parentSuspense\n          );\n        }\n        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n          instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n          if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n            queuePostRenderEffect(\n              () => instance.emit(\"hook:activated\"),\n              parentSuspense\n            );\n          }\n        }\n        instance.isMounted = true;\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n          devtoolsComponentAdded(instance);\n        }\n        initialVNode = container = anchor = null;\n      } else {\n        let { next, bu, u, parent, vnode } = instance;\n        {\n          const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n          if (nonHydratedAsyncRoot) {\n            if (next) {\n              next.el = vnode.el;\n              updateComponentPreRender(instance, next, optimized);\n            }\n            nonHydratedAsyncRoot.asyncDep.then(() => {\n              if (!instance.isUnmounted) {\n                componentUpdateFn();\n              }\n            });\n            return;\n          }\n        }\n        let originNext = next;\n        let vnodeHook;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(next || instance.vnode);\n        }\n        toggleRecurse(instance, false);\n        if (next) {\n          next.el = vnode.el;\n          updateComponentPreRender(instance, next, optimized);\n        } else {\n          next = vnode;\n        }\n        if (bu) {\n          invokeArrayFns(bu);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n          invokeVNodeHook(vnodeHook, parent, next, vnode);\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          instance.emit(\"hook:beforeUpdate\");\n        }\n        toggleRecurse(instance, true);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `render`);\n        }\n        const nextTree = renderComponentRoot(instance);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `render`);\n        }\n        const prevTree = instance.subTree;\n        instance.subTree = nextTree;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `patch`);\n        }\n        patch(\n          prevTree,\n          nextTree,\n          // parent may have changed if it's in a teleport\n          hostParentNode(prevTree.el),\n          // anchor may have changed if it's in a fragment\n          getNextHostNode(prevTree),\n          instance,\n          parentSuspense,\n          namespace\n        );\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `patch`);\n        }\n        next.el = nextTree.el;\n        if (originNext === null) {\n          updateHOCHostEl(instance, nextTree.el);\n        }\n        if (u) {\n          queuePostRenderEffect(u, parentSuspense);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n          queuePostRenderEffect(\n            () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n            parentSuspense\n          );\n        }\n        if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n          queuePostRenderEffect(\n            () => instance.emit(\"hook:updated\"),\n            parentSuspense\n          );\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n          devtoolsComponentUpdated(instance);\n        }\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n      }\n    };\n    const effect = instance.effect = new ReactiveEffect(\n      componentUpdateFn,\n      NOOP,\n      () => queueJob(update),\n      instance.scope\n      // track it in component's effect scope\n    );\n    const update = instance.update = () => {\n      if (effect.dirty) {\n        effect.run();\n      }\n    };\n    update.id = instance.uid;\n    toggleRecurse(instance, true);\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n      effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n      update.ownerInstance = instance;\n    }\n    update();\n  };\n  const updateComponentPreRender = (instance, nextVNode, optimized) => {\n    nextVNode.component = instance;\n    const prevProps = instance.vnode.props;\n    instance.vnode = nextVNode;\n    instance.next = null;\n    updateProps(instance, nextVNode.props, prevProps, optimized);\n    updateSlots(instance, nextVNode.children, optimized);\n    pauseTracking();\n    flushPreFlushCbs(instance);\n    resetTracking();\n  };\n  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n    const c1 = n1 && n1.children;\n    const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n    const c2 = n2.children;\n    const { patchFlag, shapeFlag } = n2;\n    if (patchFlag > 0) {\n      if (patchFlag & 128) {\n        patchKeyedChildren(\n          c1,\n          c2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        return;\n      } else if (patchFlag & 256) {\n        patchUnkeyedChildren(\n          c1,\n          c2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        return;\n      }\n    }\n    if (shapeFlag & 8) {\n      if (prevShapeFlag & 16) {\n        unmountChildren(c1, parentComponent, parentSuspense);\n      }\n      if (c2 !== c1) {\n        hostSetElementText(container, c2);\n      }\n    } else {\n      if (prevShapeFlag & 16) {\n        if (shapeFlag & 16) {\n          patchKeyedChildren(\n            c1,\n            c2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else {\n          unmountChildren(c1, parentComponent, parentSuspense, true);\n        }\n      } else {\n        if (prevShapeFlag & 8) {\n          hostSetElementText(container, \"\");\n        }\n        if (shapeFlag & 16) {\n          mountChildren(\n            c2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        }\n      }\n    }\n  };\n  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    c1 = c1 || EMPTY_ARR;\n    c2 = c2 || EMPTY_ARR;\n    const oldLength = c1.length;\n    const newLength = c2.length;\n    const commonLength = Math.min(oldLength, newLength);\n    let i;\n    for (i = 0; i < commonLength; i++) {\n      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      patch(\n        c1[i],\n        nextChild,\n        container,\n        null,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n    if (oldLength > newLength) {\n      unmountChildren(\n        c1,\n        parentComponent,\n        parentSuspense,\n        true,\n        false,\n        commonLength\n      );\n    } else {\n      mountChildren(\n        c2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized,\n        commonLength\n      );\n    }\n  };\n  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    let i = 0;\n    const l2 = c2.length;\n    let e1 = c1.length - 1;\n    let e2 = l2 - 1;\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[i];\n      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(\n          n1,\n          n2,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      } else {\n        break;\n      }\n      i++;\n    }\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[e1];\n      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(\n          n1,\n          n2,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      } else {\n        break;\n      }\n      e1--;\n      e2--;\n    }\n    if (i > e1) {\n      if (i <= e2) {\n        const nextPos = e2 + 1;\n        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n        while (i <= e2) {\n          patch(\n            null,\n            c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          i++;\n        }\n      }\n    } else if (i > e2) {\n      while (i <= e1) {\n        unmount(c1[i], parentComponent, parentSuspense, true);\n        i++;\n      }\n    } else {\n      const s1 = i;\n      const s2 = i;\n      const keyToNewIndexMap = /* @__PURE__ */ new Map();\n      for (i = s2; i <= e2; i++) {\n        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n        if (nextChild.key != null) {\n          if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n            warn$1(\n              `Duplicate keys found during update:`,\n              JSON.stringify(nextChild.key),\n              `Make sure keys are unique.`\n            );\n          }\n          keyToNewIndexMap.set(nextChild.key, i);\n        }\n      }\n      let j;\n      let patched = 0;\n      const toBePatched = e2 - s2 + 1;\n      let moved = false;\n      let maxNewIndexSoFar = 0;\n      const newIndexToOldIndexMap = new Array(toBePatched);\n      for (i = 0; i < toBePatched; i++)\n        newIndexToOldIndexMap[i] = 0;\n      for (i = s1; i <= e1; i++) {\n        const prevChild = c1[i];\n        if (patched >= toBePatched) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n          continue;\n        }\n        let newIndex;\n        if (prevChild.key != null) {\n          newIndex = keyToNewIndexMap.get(prevChild.key);\n        } else {\n          for (j = s2; j <= e2; j++) {\n            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n              newIndex = j;\n              break;\n            }\n          }\n        }\n        if (newIndex === void 0) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n        } else {\n          newIndexToOldIndexMap[newIndex - s2] = i + 1;\n          if (newIndex >= maxNewIndexSoFar) {\n            maxNewIndexSoFar = newIndex;\n          } else {\n            moved = true;\n          }\n          patch(\n            prevChild,\n            c2[newIndex],\n            container,\n            null,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          patched++;\n        }\n      }\n      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n      j = increasingNewIndexSequence.length - 1;\n      for (i = toBePatched - 1; i >= 0; i--) {\n        const nextIndex = s2 + i;\n        const nextChild = c2[nextIndex];\n        const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n        if (newIndexToOldIndexMap[i] === 0) {\n          patch(\n            null,\n            nextChild,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (moved) {\n          if (j < 0 || i !== increasingNewIndexSequence[j]) {\n            move(nextChild, container, anchor, 2);\n          } else {\n            j--;\n          }\n        }\n      }\n    }\n  };\n  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n    const { el, type, transition, children, shapeFlag } = vnode;\n    if (shapeFlag & 6) {\n      move(vnode.component.subTree, container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 128) {\n      vnode.suspense.move(container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 64) {\n      type.move(vnode, container, anchor, internals);\n      return;\n    }\n    if (type === Fragment) {\n      hostInsert(el, container, anchor);\n      for (let i = 0; i < children.length; i++) {\n        move(children[i], container, anchor, moveType);\n      }\n      hostInsert(vnode.anchor, container, anchor);\n      return;\n    }\n    if (type === Static) {\n      moveStaticNode(vnode, container, anchor);\n      return;\n    }\n    const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n    if (needTransition2) {\n      if (moveType === 0) {\n        transition.beforeEnter(el);\n        hostInsert(el, container, anchor);\n        queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n      } else {\n        const { leave, delayLeave, afterLeave } = transition;\n        const remove2 = () => hostInsert(el, container, anchor);\n        const performLeave = () => {\n          leave(el, () => {\n            remove2();\n            afterLeave && afterLeave();\n          });\n        };\n        if (delayLeave) {\n          delayLeave(el, remove2, performLeave);\n        } else {\n          performLeave();\n        }\n      }\n    } else {\n      hostInsert(el, container, anchor);\n    }\n  };\n  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n    const {\n      type,\n      props,\n      ref,\n      children,\n      dynamicChildren,\n      shapeFlag,\n      patchFlag,\n      dirs\n    } = vnode;\n    if (ref != null) {\n      setRef(ref, null, parentSuspense, vnode, true);\n    }\n    if (shapeFlag & 256) {\n      parentComponent.ctx.deactivate(vnode);\n      return;\n    }\n    const shouldInvokeDirs = shapeFlag & 1 && dirs;\n    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n    let vnodeHook;\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n      invokeVNodeHook(vnodeHook, parentComponent, vnode);\n    }\n    if (shapeFlag & 6) {\n      unmountComponent(vnode.component, parentSuspense, doRemove);\n    } else {\n      if (shapeFlag & 128) {\n        vnode.suspense.unmount(parentSuspense, doRemove);\n        return;\n      }\n      if (shouldInvokeDirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n      }\n      if (shapeFlag & 64) {\n        vnode.type.remove(\n          vnode,\n          parentComponent,\n          parentSuspense,\n          optimized,\n          internals,\n          doRemove\n        );\n      } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments\n      (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n        unmountChildren(\n          dynamicChildren,\n          parentComponent,\n          parentSuspense,\n          false,\n          true\n        );\n      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n        unmountChildren(children, parentComponent, parentSuspense);\n      }\n      if (doRemove) {\n        remove(vnode);\n      }\n    }\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n      }, parentSuspense);\n    }\n  };\n  const remove = (vnode) => {\n    const { type, el, anchor, transition } = vnode;\n    if (type === Fragment) {\n      if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n        vnode.children.forEach((child) => {\n          if (child.type === Comment) {\n            hostRemove(child.el);\n          } else {\n            remove(child);\n          }\n        });\n      } else {\n        removeFragment(el, anchor);\n      }\n      return;\n    }\n    if (type === Static) {\n      removeStaticNode(vnode);\n      return;\n    }\n    const performRemove = () => {\n      hostRemove(el);\n      if (transition && !transition.persisted && transition.afterLeave) {\n        transition.afterLeave();\n      }\n    };\n    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n      const { leave, delayLeave } = transition;\n      const performLeave = () => leave(el, performRemove);\n      if (delayLeave) {\n        delayLeave(vnode.el, performRemove, performLeave);\n      } else {\n        performLeave();\n      }\n    } else {\n      performRemove();\n    }\n  };\n  const removeFragment = (cur, end) => {\n    let next;\n    while (cur !== end) {\n      next = hostNextSibling(cur);\n      hostRemove(cur);\n      cur = next;\n    }\n    hostRemove(end);\n  };\n  const unmountComponent = (instance, parentSuspense, doRemove) => {\n    if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n      unregisterHMR(instance);\n    }\n    const { bum, scope, update, subTree, um } = instance;\n    if (bum) {\n      invokeArrayFns(bum);\n    }\n    if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n      instance.emit(\"hook:beforeDestroy\");\n    }\n    scope.stop();\n    if (update) {\n      update.active = false;\n      unmount(subTree, instance, parentSuspense, doRemove);\n    }\n    if (um) {\n      queuePostRenderEffect(um, parentSuspense);\n    }\n    if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n      queuePostRenderEffect(\n        () => instance.emit(\"hook:destroyed\"),\n        parentSuspense\n      );\n    }\n    queuePostRenderEffect(() => {\n      instance.isUnmounted = true;\n    }, parentSuspense);\n    if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n      parentSuspense.deps--;\n      if (parentSuspense.deps === 0) {\n        parentSuspense.resolve();\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsComponentRemoved(instance);\n    }\n  };\n  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n    }\n  };\n  const getNextHostNode = (vnode) => {\n    if (vnode.shapeFlag & 6) {\n      return getNextHostNode(vnode.component.subTree);\n    }\n    if (vnode.shapeFlag & 128) {\n      return vnode.suspense.next();\n    }\n    return hostNextSibling(vnode.anchor || vnode.el);\n  };\n  let isFlushing = false;\n  const render = (vnode, container, namespace) => {\n    if (vnode == null) {\n      if (container._vnode) {\n        unmount(container._vnode, null, null, true);\n      }\n    } else {\n      patch(\n        container._vnode || null,\n        vnode,\n        container,\n        null,\n        null,\n        null,\n        namespace\n      );\n    }\n    if (!isFlushing) {\n      isFlushing = true;\n      flushPreFlushCbs();\n      flushPostFlushCbs();\n      isFlushing = false;\n    }\n    container._vnode = vnode;\n  };\n  const internals = {\n    p: patch,\n    um: unmount,\n    m: move,\n    r: remove,\n    mt: mountComponent,\n    mc: mountChildren,\n    pc: patchChildren,\n    pbc: patchBlockChildren,\n    n: getNextHostNode,\n    o: options\n  };\n  let hydrate;\n  let hydrateNode;\n  if (createHydrationFns) {\n    [hydrate, hydrateNode] = createHydrationFns(\n      internals\n    );\n  }\n  return {\n    render,\n    hydrate,\n    createApp: createAppAPI(render, hydrate)\n  };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n  return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n  effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction needTransition(parentSuspense, transition) {\n  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n  const ch1 = n1.children;\n  const ch2 = n2.children;\n  if (isArray(ch1) && isArray(ch2)) {\n    for (let i = 0; i < ch1.length; i++) {\n      const c1 = ch1[i];\n      let c2 = ch2[i];\n      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n          c2 = ch2[i] = cloneIfMounted(ch2[i]);\n          c2.el = c1.el;\n        }\n        if (!shallow)\n          traverseStaticChildren(c1, c2);\n      }\n      if (c2.type === Text) {\n        c2.el = c1.el;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n        c2.el = c1.el;\n      }\n    }\n  }\n}\nfunction getSequence(arr) {\n  const p = arr.slice();\n  const result = [0];\n  let i, j, u, v, c;\n  const len = arr.length;\n  for (i = 0; i < len; i++) {\n    const arrI = arr[i];\n    if (arrI !== 0) {\n      j = result[result.length - 1];\n      if (arr[j] < arrI) {\n        p[i] = j;\n        result.push(i);\n        continue;\n      }\n      u = 0;\n      v = result.length - 1;\n      while (u < v) {\n        c = u + v >> 1;\n        if (arr[result[c]] < arrI) {\n          u = c + 1;\n        } else {\n          v = c;\n        }\n      }\n      if (arrI < arr[result[u]]) {\n        if (u > 0) {\n          p[i] = result[u - 1];\n        }\n        result[u] = i;\n      }\n    }\n  }\n  u = result.length;\n  v = result[u - 1];\n  while (u-- > 0) {\n    result[u] = v;\n    v = p[v];\n  }\n  return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n  const subComponent = instance.subTree.component;\n  if (subComponent) {\n    if (subComponent.asyncDep && !subComponent.asyncResolved) {\n      return subComponent;\n    } else {\n      return locateNonHydratedAsyncRoot(subComponent);\n    }\n  }\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n  const targetSelector = props && props.to;\n  if (isString(targetSelector)) {\n    if (!select) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n      );\n      return null;\n    } else {\n      const target = select(targetSelector);\n      if (!target) {\n        !!(process.env.NODE_ENV !== \"production\") && warn$1(\n          `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n        );\n      }\n      return target;\n    }\n  } else {\n    if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n      warn$1(`Invalid Teleport target: ${targetSelector}`);\n    }\n    return targetSelector;\n  }\n};\nconst TeleportImpl = {\n  name: \"Teleport\",\n  __isTeleport: true,\n  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n    const {\n      mc: mountChildren,\n      pc: patchChildren,\n      pbc: patchBlockChildren,\n      o: { insert, querySelector, createText, createComment }\n    } = internals;\n    const disabled = isTeleportDisabled(n2.props);\n    let { shapeFlag, children, dynamicChildren } = n2;\n    if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (n1 == null) {\n      const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n      const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n      insert(placeholder, container, anchor);\n      insert(mainAnchor, container, anchor);\n      const target = n2.target = resolveTarget(n2.props, querySelector);\n      const targetAnchor = n2.targetAnchor = createText(\"\");\n      if (target) {\n        insert(targetAnchor, target);\n        if (namespace === \"svg\" || isTargetSVG(target)) {\n          namespace = \"svg\";\n        } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n          namespace = \"mathml\";\n        }\n      } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n        warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n      }\n      const mount = (container2, anchor2) => {\n        if (shapeFlag & 16) {\n          mountChildren(\n            children,\n            container2,\n            anchor2,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        }\n      };\n      if (disabled) {\n        mount(container, mainAnchor);\n      } else if (target) {\n        mount(target, targetAnchor);\n      }\n    } else {\n      n2.el = n1.el;\n      const mainAnchor = n2.anchor = n1.anchor;\n      const target = n2.target = n1.target;\n      const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n      const wasDisabled = isTeleportDisabled(n1.props);\n      const currentContainer = wasDisabled ? container : target;\n      const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n      if (namespace === \"svg\" || isTargetSVG(target)) {\n        namespace = \"svg\";\n      } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n        namespace = \"mathml\";\n      }\n      if (dynamicChildren) {\n        patchBlockChildren(\n          n1.dynamicChildren,\n          dynamicChildren,\n          currentContainer,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds\n        );\n        traverseStaticChildren(n1, n2, true);\n      } else if (!optimized) {\n        patchChildren(\n          n1,\n          n2,\n          currentContainer,\n          currentAnchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          false\n        );\n      }\n      if (disabled) {\n        if (!wasDisabled) {\n          moveTeleport(\n            n2,\n            container,\n            mainAnchor,\n            internals,\n            1\n          );\n        } else {\n          if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n            n2.props.to = n1.props.to;\n          }\n        }\n      } else {\n        if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n          const nextTarget = n2.target = resolveTarget(\n            n2.props,\n            querySelector\n          );\n          if (nextTarget) {\n            moveTeleport(\n              n2,\n              nextTarget,\n              null,\n              internals,\n              0\n            );\n          } else if (!!(process.env.NODE_ENV !== \"production\")) {\n            warn$1(\n              \"Invalid Teleport target on update:\",\n              target,\n              `(${typeof target})`\n            );\n          }\n        } else if (wasDisabled) {\n          moveTeleport(\n            n2,\n            target,\n            targetAnchor,\n            internals,\n            1\n          );\n        }\n      }\n    }\n    updateCssVars(n2);\n  },\n  remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n    const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n    if (target) {\n      hostRemove(targetAnchor);\n    }\n    doRemove && hostRemove(anchor);\n    if (shapeFlag & 16) {\n      const shouldRemove = doRemove || !isTeleportDisabled(props);\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        unmount(\n          child,\n          parentComponent,\n          parentSuspense,\n          shouldRemove,\n          !!child.dynamicChildren\n        );\n      }\n    }\n  },\n  move: moveTeleport,\n  hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n  if (moveType === 0) {\n    insert(vnode.targetAnchor, container, parentAnchor);\n  }\n  const { el, anchor, shapeFlag, children, props } = vnode;\n  const isReorder = moveType === 2;\n  if (isReorder) {\n    insert(el, container, parentAnchor);\n  }\n  if (!isReorder || isTeleportDisabled(props)) {\n    if (shapeFlag & 16) {\n      for (let i = 0; i < children.length; i++) {\n        move(\n          children[i],\n          container,\n          parentAnchor,\n          2\n        );\n      }\n    }\n  }\n  if (isReorder) {\n    insert(anchor, container, parentAnchor);\n  }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n  o: { nextSibling, parentNode, querySelector }\n}, hydrateChildren) {\n  const target = vnode.target = resolveTarget(\n    vnode.props,\n    querySelector\n  );\n  if (target) {\n    const targetNode = target._lpa || target.firstChild;\n    if (vnode.shapeFlag & 16) {\n      if (isTeleportDisabled(vnode.props)) {\n        vnode.anchor = hydrateChildren(\n          nextSibling(node),\n          vnode,\n          parentNode(node),\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n        vnode.targetAnchor = targetNode;\n      } else {\n        vnode.anchor = nextSibling(node);\n        let targetAnchor = targetNode;\n        while (targetAnchor) {\n          targetAnchor = nextSibling(targetAnchor);\n          if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === \"teleport anchor\") {\n            vnode.targetAnchor = targetAnchor;\n            target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n            break;\n          }\n        }\n        hydrateChildren(\n          targetNode,\n          vnode,\n          target,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n      }\n    }\n    updateCssVars(vnode);\n  }\n  return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n  const ctx = vnode.ctx;\n  if (ctx && ctx.ut) {\n    let node = vnode.children[0].el;\n    while (node && node !== vnode.targetAnchor) {\n      if (node.nodeType === 1)\n        node.setAttribute(\"data-v-owner\", ctx.uid);\n      node = node.nextSibling;\n    }\n    ctx.ut();\n  }\n}\n\nconst normalizedAsyncComponentMap = /* @__PURE__ */ new WeakMap();\nfunction convertLegacyAsyncComponent(comp) {\n  if (normalizedAsyncComponentMap.has(comp)) {\n    return normalizedAsyncComponentMap.get(comp);\n  }\n  let resolve;\n  let reject;\n  const fallbackPromise = new Promise((r, rj) => {\n    resolve = r, reject = rj;\n  });\n  const res = comp(resolve, reject);\n  let converted;\n  if (isPromise(res)) {\n    converted = defineAsyncComponent(() => res);\n  } else if (isObject(res) && !isVNode(res) && !isArray(res)) {\n    converted = defineAsyncComponent({\n      loader: () => res.component,\n      loadingComponent: res.loading,\n      errorComponent: res.error,\n      delay: res.delay,\n      timeout: res.timeout\n    });\n  } else if (res == null) {\n    converted = defineAsyncComponent(() => fallbackPromise);\n  } else {\n    converted = comp;\n  }\n  normalizedAsyncComponentMap.set(comp, converted);\n  return converted;\n}\n\nfunction convertLegacyComponent(comp, instance) {\n  if (comp.__isBuiltIn) {\n    return comp;\n  }\n  if (isFunction(comp) && comp.cid) {\n    comp = comp.options;\n  }\n  if (isFunction(comp) && checkCompatEnabled(\"COMPONENT_ASYNC\", instance, comp)) {\n    return convertLegacyAsyncComponent(comp);\n  }\n  if (isObject(comp) && comp.functional && softAssertCompatEnabled(\n    \"COMPONENT_FUNCTIONAL\",\n    instance,\n    comp\n  )) {\n    return convertLegacyFunctionalComponent(comp);\n  }\n  return comp;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n  blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n  blockStack.pop();\n  currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n  isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n  closeBlock();\n  if (isBlockTreeEnabled > 0 && currentBlock) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n  return setupBlock(\n    createBaseVNode(\n      type,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      shapeFlag,\n      true\n    )\n  );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n  return setupBlock(\n    createVNode(\n      type,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      true\n    )\n  );\n}\nfunction isVNode(value) {\n  return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n  if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) {\n    n1.shapeFlag &= ~256;\n    n2.shapeFlag &= ~512;\n    return false;\n  }\n  return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n  vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n  return _createVNode(\n    ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n  );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n  ref,\n  ref_key,\n  ref_for\n}) => {\n  if (typeof ref === \"number\") {\n    ref = \"\" + ref;\n  }\n  return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n  const vnode = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type,\n    props,\n    key: props && normalizeKey(props),\n    ref: props && normalizeRef(props),\n    scopeId: currentScopeId,\n    slotScopeIds: null,\n    children,\n    component: null,\n    suspense: null,\n    ssContent: null,\n    ssFallback: null,\n    dirs: null,\n    transition: null,\n    el: null,\n    anchor: null,\n    target: null,\n    targetAnchor: null,\n    staticCount: 0,\n    shapeFlag,\n    patchFlag,\n    dynamicProps,\n    dynamicChildren: null,\n    appContext: null,\n    ctx: currentRenderingInstance\n  };\n  if (needFullChildrenNormalization) {\n    normalizeChildren(vnode, children);\n    if (shapeFlag & 128) {\n      type.normalize(vnode);\n    }\n  } else if (children) {\n    vnode.shapeFlag |= isString(children) ? 8 : 16;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n    warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n  }\n  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n  !isBlockNode && // has current parent block\n  currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n  // component nodes also should always be patched, because even if the\n  // component doesn't need to update, it needs to persist the instance on to\n  // the next vnode so that it can be properly unmounted later.\n  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n  // vnode should not be considered dynamic due to handler caching.\n  vnode.patchFlag !== 32) {\n    currentBlock.push(vnode);\n  }\n  {\n    convertLegacyVModelProps(vnode);\n    defineLegacyVNodeProperties(vnode);\n  }\n  return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n  if (!type || type === NULL_DYNAMIC_COMPONENT) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n      warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n    }\n    type = Comment;\n  }\n  if (isVNode(type)) {\n    const cloned = cloneVNode(\n      type,\n      props,\n      true\n      /* mergeRef: true */\n    );\n    if (children) {\n      normalizeChildren(cloned, children);\n    }\n    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n      if (cloned.shapeFlag & 6) {\n        currentBlock[currentBlock.indexOf(type)] = cloned;\n      } else {\n        currentBlock.push(cloned);\n      }\n    }\n    cloned.patchFlag |= -2;\n    return cloned;\n  }\n  if (isClassComponent(type)) {\n    type = type.__vccOpts;\n  }\n  {\n    type = convertLegacyComponent(type, currentRenderingInstance);\n  }\n  if (props) {\n    props = guardReactiveProps(props);\n    let { class: klass, style } = props;\n    if (klass && !isString(klass)) {\n      props.class = normalizeClass(klass);\n    }\n    if (isObject(style)) {\n      if (isProxy(style) && !isArray(style)) {\n        style = extend({}, style);\n      }\n      props.style = normalizeStyle(style);\n    }\n  }\n  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n  if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n    type = toRaw(type);\n    warn$1(\n      `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n      `\nComponent that was made reactive: `,\n      type\n    );\n  }\n  return createBaseVNode(\n    type,\n    props,\n    children,\n    patchFlag,\n    dynamicProps,\n    shapeFlag,\n    isBlockNode,\n    true\n  );\n}\nfunction guardReactiveProps(props) {\n  if (!props)\n    return null;\n  return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n  const { props, ref, patchFlag, children } = vnode;\n  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n  const cloned = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type: vnode.type,\n    props: mergedProps,\n    key: mergedProps && normalizeKey(mergedProps),\n    ref: extraProps && extraProps.ref ? (\n      // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n      // if the vnode itself already has a ref, cloneVNode will need to merge\n      // the refs so the single vnode can be set on multiple refs\n      mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n    ) : ref,\n    scopeId: vnode.scopeId,\n    slotScopeIds: vnode.slotScopeIds,\n    children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n    target: vnode.target,\n    targetAnchor: vnode.targetAnchor,\n    staticCount: vnode.staticCount,\n    shapeFlag: vnode.shapeFlag,\n    // if the vnode is cloned with extra props, we can no longer assume its\n    // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n    // note: preserve flag for fragments since they use the flag for children\n    // fast paths only.\n    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n    dynamicProps: vnode.dynamicProps,\n    dynamicChildren: vnode.dynamicChildren,\n    appContext: vnode.appContext,\n    dirs: vnode.dirs,\n    transition: vnode.transition,\n    // These should technically only be non-null on mounted VNodes. However,\n    // they *should* be copied for kept-alive vnodes. So we just always copy\n    // them since them being non-null during a mount doesn't affect the logic as\n    // they will simply be overwritten.\n    component: vnode.component,\n    suspense: vnode.suspense,\n    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n    el: vnode.el,\n    anchor: vnode.anchor,\n    ctx: vnode.ctx,\n    ce: vnode.ce\n  };\n  {\n    defineLegacyVNodeProperties(cloned);\n  }\n  return cloned;\n}\nfunction deepCloneVNode(vnode) {\n  const cloned = cloneVNode(vnode);\n  if (isArray(vnode.children)) {\n    cloned.children = vnode.children.map(deepCloneVNode);\n  }\n  return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n  return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n  const vnode = createVNode(Static, null, content);\n  vnode.staticCount = numberOfNodes;\n  return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n  return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n  if (child == null || typeof child === \"boolean\") {\n    return createVNode(Comment);\n  } else if (isArray(child)) {\n    return createVNode(\n      Fragment,\n      null,\n      // #3666, avoid reference pollution when reusing vnode\n      child.slice()\n    );\n  } else if (typeof child === \"object\") {\n    return cloneIfMounted(child);\n  } else {\n    return createVNode(Text, null, String(child));\n  }\n}\nfunction cloneIfMounted(child) {\n  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n  let type = 0;\n  const { shapeFlag } = vnode;\n  if (children == null) {\n    children = null;\n  } else if (isArray(children)) {\n    type = 16;\n  } else if (typeof children === \"object\") {\n    if (shapeFlag & (1 | 64)) {\n      const slot = children.default;\n      if (slot) {\n        slot._c && (slot._d = false);\n        normalizeChildren(vnode, slot());\n        slot._c && (slot._d = true);\n      }\n      return;\n    } else {\n      type = 32;\n      const slotFlag = children._;\n      if (!slotFlag && !(InternalObjectKey in children)) {\n        children._ctx = currentRenderingInstance;\n      } else if (slotFlag === 3 && currentRenderingInstance) {\n        if (currentRenderingInstance.slots._ === 1) {\n          children._ = 1;\n        } else {\n          children._ = 2;\n          vnode.patchFlag |= 1024;\n        }\n      }\n    }\n  } else if (isFunction(children)) {\n    children = { default: children, _ctx: currentRenderingInstance };\n    type = 32;\n  } else {\n    children = String(children);\n    if (shapeFlag & 64) {\n      type = 16;\n      children = [createTextVNode(children)];\n    } else {\n      type = 8;\n    }\n  }\n  vnode.children = children;\n  vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n  const ret = {};\n  for (let i = 0; i < args.length; i++) {\n    const toMerge = args[i];\n    for (const key in toMerge) {\n      if (key === \"class\") {\n        if (ret.class !== toMerge.class) {\n          ret.class = normalizeClass([ret.class, toMerge.class]);\n        }\n      } else if (key === \"style\") {\n        ret.style = normalizeStyle([ret.style, toMerge.style]);\n      } else if (isOn(key)) {\n        const existing = ret[key];\n        const incoming = toMerge[key];\n        if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n          ret[key] = existing ? [].concat(existing, incoming) : incoming;\n        }\n      } else if (key !== \"\") {\n        ret[key] = toMerge[key];\n      }\n    }\n  }\n  return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n  callWithAsyncErrorHandling(hook, instance, 7, [\n    vnode,\n    prevVNode\n  ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n  const type = vnode.type;\n  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n  const instance = {\n    uid: uid++,\n    vnode,\n    type,\n    parent,\n    appContext,\n    root: null,\n    // to be immediately set\n    next: null,\n    subTree: null,\n    // will be set synchronously right after creation\n    effect: null,\n    update: null,\n    // will be set synchronously right after creation\n    scope: new EffectScope(\n      true\n      /* detached */\n    ),\n    render: null,\n    proxy: null,\n    exposed: null,\n    exposeProxy: null,\n    withProxy: null,\n    provides: parent ? parent.provides : Object.create(appContext.provides),\n    accessCache: null,\n    renderCache: [],\n    // local resolved assets\n    components: null,\n    directives: null,\n    // resolved props and emits options\n    propsOptions: normalizePropsOptions(type, appContext),\n    emitsOptions: normalizeEmitsOptions(type, appContext),\n    // emit\n    emit: null,\n    // to be set immediately\n    emitted: null,\n    // props default value\n    propsDefaults: EMPTY_OBJ,\n    // inheritAttrs\n    inheritAttrs: type.inheritAttrs,\n    // state\n    ctx: EMPTY_OBJ,\n    data: EMPTY_OBJ,\n    props: EMPTY_OBJ,\n    attrs: EMPTY_OBJ,\n    slots: EMPTY_OBJ,\n    refs: EMPTY_OBJ,\n    setupState: EMPTY_OBJ,\n    setupContext: null,\n    attrsProxy: null,\n    slotsProxy: null,\n    // suspense related\n    suspense,\n    suspenseId: suspense ? suspense.pendingId : 0,\n    asyncDep: null,\n    asyncResolved: false,\n    // lifecycle hooks\n    // not using enums here because it results in computed properties\n    isMounted: false,\n    isUnmounted: false,\n    isDeactivated: false,\n    bc: null,\n    c: null,\n    bm: null,\n    m: null,\n    bu: null,\n    u: null,\n    um: null,\n    bum: null,\n    da: null,\n    a: null,\n    rtg: null,\n    rtc: null,\n    ec: null,\n    sp: null\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    instance.ctx = createDevRenderContext(instance);\n  } else {\n    instance.ctx = { _: instance };\n  }\n  instance.root = parent ? parent.root : instance;\n  instance.emit = emit.bind(null, instance);\n  if (vnode.ce) {\n    vnode.ce(instance);\n  }\n  return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n  const g = getGlobalThis();\n  const registerGlobalSetter = (key, setter) => {\n    let setters;\n    if (!(setters = g[key]))\n      setters = g[key] = [];\n    setters.push(setter);\n    return (v) => {\n      if (setters.length > 1)\n        setters.forEach((set) => set(v));\n      else\n        setters[0](v);\n    };\n  };\n  internalSetCurrentInstance = registerGlobalSetter(\n    `__VUE_INSTANCE_SETTERS__`,\n    (v) => currentInstance = v\n  );\n  setInSSRSetupState = registerGlobalSetter(\n    `__VUE_SSR_SETTERS__`,\n    (v) => isInSSRComponentSetup = v\n  );\n}\nconst setCurrentInstance = (instance) => {\n  const prev = currentInstance;\n  internalSetCurrentInstance(instance);\n  instance.scope.on();\n  return () => {\n    instance.scope.off();\n    internalSetCurrentInstance(prev);\n  };\n};\nconst unsetCurrentInstance = () => {\n  currentInstance && currentInstance.scope.off();\n  internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, config) {\n  const appIsNativeTag = config.isNativeTag || NO;\n  if (isBuiltInTag(name) || appIsNativeTag(name)) {\n    warn$1(\n      \"Do not use built-in or reserved HTML elements as component id: \" + name\n    );\n  }\n}\nfunction isStatefulComponent(instance) {\n  return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n  isSSR && setInSSRSetupState(isSSR);\n  const { props, children } = instance.vnode;\n  const isStateful = isStatefulComponent(instance);\n  initProps(instance, props, isStateful, isSSR);\n  initSlots(instance, children);\n  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n  isSSR && setInSSRSetupState(false);\n  return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n  var _a;\n  const Component = instance.type;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    if (Component.name) {\n      validateComponentName(Component.name, instance.appContext.config);\n    }\n    if (Component.components) {\n      const names = Object.keys(Component.components);\n      for (let i = 0; i < names.length; i++) {\n        validateComponentName(names[i], instance.appContext.config);\n      }\n    }\n    if (Component.directives) {\n      const names = Object.keys(Component.directives);\n      for (let i = 0; i < names.length; i++) {\n        validateDirectiveName(names[i]);\n      }\n    }\n    if (Component.compilerOptions && isRuntimeOnly()) {\n      warn$1(\n        `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n      );\n    }\n  }\n  instance.accessCache = /* @__PURE__ */ Object.create(null);\n  instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    exposePropsOnRenderContext(instance);\n  }\n  const { setup } = Component;\n  if (setup) {\n    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n    const reset = setCurrentInstance(instance);\n    pauseTracking();\n    const setupResult = callWithErrorHandling(\n      setup,\n      instance,\n      0,\n      [\n        !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n        setupContext\n      ]\n    );\n    resetTracking();\n    reset();\n    if (isPromise(setupResult)) {\n      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n      if (isSSR) {\n        return setupResult.then((resolvedResult) => {\n          handleSetupResult(instance, resolvedResult, isSSR);\n        }).catch((e) => {\n          handleError(e, instance, 0);\n        });\n      } else {\n        instance.asyncDep = setupResult;\n        if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n          const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n          warn$1(\n            `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n          );\n        }\n      }\n    } else {\n      handleSetupResult(instance, setupResult, isSSR);\n    }\n  } else {\n    finishComponentSetup(instance, isSSR);\n  }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n  if (isFunction(setupResult)) {\n    if (instance.type.__ssrInlineRender) {\n      instance.ssrRender = setupResult;\n    } else {\n      instance.render = setupResult;\n    }\n  } else if (isObject(setupResult)) {\n    if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n      warn$1(\n        `setup() should not return VNodes directly - return a render function instead.`\n      );\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      instance.devtoolsRawSetupState = setupResult;\n    }\n    instance.setupState = proxyRefs(setupResult);\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      exposeSetupStateOnRenderContext(instance);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n    warn$1(\n      `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n    );\n  }\n  finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n  compile = _compile;\n  installWithProxy = (i) => {\n    if (i.render._rc) {\n      i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n    }\n  };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n  const Component = instance.type;\n  {\n    convertLegacyRenderFn(instance);\n    if (!!(process.env.NODE_ENV !== \"production\") && Component.compatConfig) {\n      validateCompatConfig(Component.compatConfig);\n    }\n  }\n  if (!instance.render) {\n    if (!isSSR && compile && !Component.render) {\n      const template = instance.vnode.props && instance.vnode.props[\"inline-template\"] || Component.template || resolveMergedOptions(instance).template;\n      if (template) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `compile`);\n        }\n        const { isCustomElement, compilerOptions } = instance.appContext.config;\n        const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n        const finalCompilerOptions = extend(\n          extend(\n            {\n              isCustomElement,\n              delimiters\n            },\n            compilerOptions\n          ),\n          componentCompilerOptions\n        );\n        {\n          finalCompilerOptions.compatConfig = Object.create(globalCompatConfig);\n          if (Component.compatConfig) {\n            extend(finalCompilerOptions.compatConfig, Component.compatConfig);\n          }\n        }\n        Component.render = compile(template, finalCompilerOptions);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `compile`);\n        }\n      }\n    }\n    instance.render = Component.render || NOOP;\n    if (installWithProxy) {\n      installWithProxy(instance);\n    }\n  }\n  if (__VUE_OPTIONS_API__ && !skipOptions) {\n    const reset = setCurrentInstance(instance);\n    pauseTracking();\n    try {\n      applyOptions(instance);\n    } finally {\n      resetTracking();\n      reset();\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n    if (!compile && Component.template) {\n      warn$1(\n        `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n      );\n    } else {\n      warn$1(`Component is missing template or render function.`);\n    }\n  }\n}\nfunction getAttrsProxy(instance) {\n  return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n    instance.attrs,\n    !!(process.env.NODE_ENV !== \"production\") ? {\n      get(target, key) {\n        markAttrsAccessed();\n        track(instance, \"get\", \"$attrs\");\n        return target[key];\n      },\n      set() {\n        warn$1(`setupContext.attrs is readonly.`);\n        return false;\n      },\n      deleteProperty() {\n        warn$1(`setupContext.attrs is readonly.`);\n        return false;\n      }\n    } : {\n      get(target, key) {\n        track(instance, \"get\", \"$attrs\");\n        return target[key];\n      }\n    }\n  ));\n}\nfunction getSlotsProxy(instance) {\n  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n    get(target, key) {\n      track(instance, \"get\", \"$slots\");\n      return target[key];\n    }\n  }));\n}\nfunction createSetupContext(instance) {\n  const expose = (exposed) => {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (instance.exposed) {\n        warn$1(`expose() should be called only once per setup().`);\n      }\n      if (exposed != null) {\n        let exposedType = typeof exposed;\n        if (exposedType === \"object\") {\n          if (isArray(exposed)) {\n            exposedType = \"array\";\n          } else if (isRef(exposed)) {\n            exposedType = \"ref\";\n          }\n        }\n        if (exposedType !== \"object\") {\n          warn$1(\n            `expose() should be passed a plain object, received ${exposedType}.`\n          );\n        }\n      }\n    }\n    instance.exposed = exposed || {};\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    return Object.freeze({\n      get attrs() {\n        return getAttrsProxy(instance);\n      },\n      get slots() {\n        return getSlotsProxy(instance);\n      },\n      get emit() {\n        return (event, ...args) => instance.emit(event, ...args);\n      },\n      expose\n    });\n  } else {\n    return {\n      get attrs() {\n        return getAttrsProxy(instance);\n      },\n      slots: instance.slots,\n      emit: instance.emit,\n      expose\n    };\n  }\n}\nfunction getExposeProxy(instance) {\n  if (instance.exposed) {\n    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n      get(target, key) {\n        if (key in target) {\n          return target[key];\n        } else if (key in publicPropertiesMap) {\n          return publicPropertiesMap[key](instance);\n        }\n      },\n      has(target, key) {\n        return key in target || key in publicPropertiesMap;\n      }\n    }));\n  }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n  return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n  let name = getComponentName(Component);\n  if (!name && Component.__file) {\n    const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n    if (match) {\n      name = match[1];\n    }\n  }\n  if (!name && instance && instance.parent) {\n    const inferFromRegistry = (registry) => {\n      for (const key in registry) {\n        if (registry[key] === Component) {\n          return key;\n        }\n      }\n    };\n    name = inferFromRegistry(\n      instance.components || instance.parent.type.components\n    ) || inferFromRegistry(instance.appContext.components);\n  }\n  return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n  return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n  return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useModel() called without active instance.`);\n    return ref();\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n    warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n    return ref();\n  }\n  const camelizedName = camelize(name);\n  const hyphenatedName = hyphenate(name);\n  const res = customRef((track, trigger) => {\n    let localValue;\n    watchSyncEffect(() => {\n      const propValue = props[name];\n      if (hasChanged(localValue, propValue)) {\n        localValue = propValue;\n        trigger();\n      }\n    });\n    return {\n      get() {\n        track();\n        return options.get ? options.get(localValue) : localValue;\n      },\n      set(value) {\n        const rawProps = i.vnode.props;\n        if (!(rawProps && // check if parent has passed v-model\n        (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {\n          localValue = value;\n          trigger();\n        }\n        i.emit(`update:${name}`, options.set ? options.set(value) : value);\n      }\n    };\n  });\n  const modifierKey = name === \"modelValue\" ? \"modelModifiers\" : `${name}Modifiers`;\n  res[Symbol.iterator] = () => {\n    let i2 = 0;\n    return {\n      next() {\n        if (i2 < 2) {\n          return { value: i2++ ? props[modifierKey] || {} : res, done: false };\n        } else {\n          return { done: true };\n        }\n      }\n    };\n  };\n  return res;\n}\n\nfunction h(type, propsOrChildren, children) {\n  const l = arguments.length;\n  if (l === 2) {\n    if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n      if (isVNode(propsOrChildren)) {\n        return createVNode(type, null, [propsOrChildren]);\n      }\n      return createVNode(type, propsOrChildren);\n    } else {\n      return createVNode(type, null, propsOrChildren);\n    }\n  } else {\n    if (l > 3) {\n      children = Array.prototype.slice.call(arguments, 2);\n    } else if (l === 3 && isVNode(children)) {\n      children = [children];\n    }\n    return createVNode(type, propsOrChildren, children);\n  }\n}\n\nfunction initCustomFormatter() {\n  if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n    return;\n  }\n  const vueStyle = { style: \"color:#3ba776\" };\n  const numberStyle = { style: \"color:#1677ff\" };\n  const stringStyle = { style: \"color:#f5222d\" };\n  const keywordStyle = { style: \"color:#eb2f96\" };\n  const formatter = {\n    header(obj) {\n      if (!isObject(obj)) {\n        return null;\n      }\n      if (obj.__isVue) {\n        return [\"div\", vueStyle, `VueInstance`];\n      } else if (isRef(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, genRefFlag(obj)],\n          \"<\",\n          formatValue(obj.value),\n          `>`\n        ];\n      } else if (isReactive(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n          \"<\",\n          formatValue(obj),\n          `>${isReadonly(obj) ? ` (readonly)` : ``}`\n        ];\n      } else if (isReadonly(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n          \"<\",\n          formatValue(obj),\n          \">\"\n        ];\n      }\n      return null;\n    },\n    hasBody(obj) {\n      return obj && obj.__isVue;\n    },\n    body(obj) {\n      if (obj && obj.__isVue) {\n        return [\n          \"div\",\n          {},\n          ...formatInstance(obj.$)\n        ];\n      }\n    }\n  };\n  function formatInstance(instance) {\n    const blocks = [];\n    if (instance.type.props && instance.props) {\n      blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n    }\n    if (instance.setupState !== EMPTY_OBJ) {\n      blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n    }\n    if (instance.data !== EMPTY_OBJ) {\n      blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n    }\n    const computed = extractKeys(instance, \"computed\");\n    if (computed) {\n      blocks.push(createInstanceBlock(\"computed\", computed));\n    }\n    const injected = extractKeys(instance, \"inject\");\n    if (injected) {\n      blocks.push(createInstanceBlock(\"injected\", injected));\n    }\n    blocks.push([\n      \"div\",\n      {},\n      [\n        \"span\",\n        {\n          style: keywordStyle.style + \";opacity:0.66\"\n        },\n        \"$ (internal): \"\n      ],\n      [\"object\", { object: instance }]\n    ]);\n    return blocks;\n  }\n  function createInstanceBlock(type, target) {\n    target = extend({}, target);\n    if (!Object.keys(target).length) {\n      return [\"span\", {}];\n    }\n    return [\n      \"div\",\n      { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n      [\n        \"div\",\n        {\n          style: \"color:#476582\"\n        },\n        type\n      ],\n      [\n        \"div\",\n        {\n          style: \"padding-left:1.25em\"\n        },\n        ...Object.keys(target).map((key) => {\n          return [\n            \"div\",\n            {},\n            [\"span\", keywordStyle, key + \": \"],\n            formatValue(target[key], false)\n          ];\n        })\n      ]\n    ];\n  }\n  function formatValue(v, asRaw = true) {\n    if (typeof v === \"number\") {\n      return [\"span\", numberStyle, v];\n    } else if (typeof v === \"string\") {\n      return [\"span\", stringStyle, JSON.stringify(v)];\n    } else if (typeof v === \"boolean\") {\n      return [\"span\", keywordStyle, v];\n    } else if (isObject(v)) {\n      return [\"object\", { object: asRaw ? toRaw(v) : v }];\n    } else {\n      return [\"span\", stringStyle, String(v)];\n    }\n  }\n  function extractKeys(instance, type) {\n    const Comp = instance.type;\n    if (isFunction(Comp)) {\n      return;\n    }\n    const extracted = {};\n    for (const key in instance.ctx) {\n      if (isKeyOfType(Comp, key, type)) {\n        extracted[key] = instance.ctx[key];\n      }\n    }\n    return extracted;\n  }\n  function isKeyOfType(Comp, key, type) {\n    const opts = Comp[type];\n    if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n      return true;\n    }\n    if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n      return true;\n    }\n    if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n      return true;\n    }\n  }\n  function genRefFlag(v) {\n    if (isShallow(v)) {\n      return `ShallowRef`;\n    }\n    if (v.effect) {\n      return `ComputedRef`;\n    }\n    return `Ref`;\n  }\n  if (window.devtoolsFormatters) {\n    window.devtoolsFormatters.push(formatter);\n  } else {\n    window.devtoolsFormatters = [formatter];\n  }\n}\n\nfunction withMemo(memo, render, cache, index) {\n  const cached = cache[index];\n  if (cached && isMemoSame(cached, memo)) {\n    return cached;\n  }\n  const ret = render();\n  ret.memo = memo.slice();\n  return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n  const prev = cached.memo;\n  if (prev.length != memo.length) {\n    return false;\n  }\n  for (let i = 0; i < prev.length; i++) {\n    if (hasChanged(prev[i], memo[i])) {\n      return false;\n    }\n  }\n  if (isBlockTreeEnabled > 0 && currentBlock) {\n    currentBlock.push(cached);\n  }\n  return true;\n}\n\nconst version = \"3.4.15\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n  createComponentInstance,\n  setupComponent,\n  renderComponentRoot,\n  setCurrentRenderingInstance,\n  isVNode: isVNode,\n  normalizeVNode\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = resolveFilter$1 ;\nconst _compatUtils = {\n  warnDeprecation,\n  createCompatVue: createCompatVue$1,\n  isCompatEnabled,\n  checkCompatEnabled,\n  softAssertCompatEnabled\n};\nconst compatUtils = _compatUtils ;\nconst DeprecationTypes = DeprecationTypes$1 ;\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n  insert: (child, parent, anchor) => {\n    parent.insertBefore(child, anchor || null);\n  },\n  remove: (child) => {\n    const parent = child.parentNode;\n    if (parent) {\n      parent.removeChild(child);\n    }\n  },\n  createElement: (tag, namespace, is, props) => {\n    const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n    if (tag === \"select\" && props && props.multiple != null) {\n      el.setAttribute(\"multiple\", props.multiple);\n    }\n    return el;\n  },\n  createText: (text) => doc.createTextNode(text),\n  createComment: (text) => doc.createComment(text),\n  setText: (node, text) => {\n    node.nodeValue = text;\n  },\n  setElementText: (el, text) => {\n    el.textContent = text;\n  },\n  parentNode: (node) => node.parentNode,\n  nextSibling: (node) => node.nextSibling,\n  querySelector: (selector) => doc.querySelector(selector),\n  setScopeId(el, id) {\n    el.setAttribute(id, \"\");\n  },\n  // __UNSAFE__\n  // Reason: innerHTML.\n  // Static content here can only come from compiled templates.\n  // As long as the user only uses trusted templates, this is safe.\n  insertStaticContent(content, parent, anchor, namespace, start, end) {\n    const before = anchor ? anchor.previousSibling : parent.lastChild;\n    if (start && (start === end || start.nextSibling)) {\n      while (true) {\n        parent.insertBefore(start.cloneNode(true), anchor);\n        if (start === end || !(start = start.nextSibling))\n          break;\n      }\n    } else {\n      templateContainer.innerHTML = namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content;\n      const template = templateContainer.content;\n      if (namespace === \"svg\" || namespace === \"mathml\") {\n        const wrapper = template.firstChild;\n        while (wrapper.firstChild) {\n          template.appendChild(wrapper.firstChild);\n        }\n        template.removeChild(wrapper);\n      }\n      parent.insertBefore(template, anchor);\n    }\n    return [\n      // first\n      before ? before.nextSibling : parent.firstChild,\n      // last\n      anchor ? anchor.previousSibling : parent.lastChild\n    ];\n  }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\n{\n  Transition.__isBuiltIn = true;\n}\nconst DOMTransitionPropsValidators = {\n  name: String,\n  type: String,\n  css: {\n    type: Boolean,\n    default: true\n  },\n  duration: [String, Number, Object],\n  enterFromClass: String,\n  enterActiveClass: String,\n  enterToClass: String,\n  appearFromClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  leaveFromClass: String,\n  leaveActiveClass: String,\n  leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(\n  {},\n  BaseTransitionPropsValidators,\n  DOMTransitionPropsValidators\n);\nconst callHook = (hook, args = []) => {\n  if (isArray(hook)) {\n    hook.forEach((h2) => h2(...args));\n  } else if (hook) {\n    hook(...args);\n  }\n};\nconst hasExplicitCallback = (hook) => {\n  return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n  const baseProps = {};\n  for (const key in rawProps) {\n    if (!(key in DOMTransitionPropsValidators)) {\n      baseProps[key] = rawProps[key];\n    }\n  }\n  if (rawProps.css === false) {\n    return baseProps;\n  }\n  const {\n    name = \"v\",\n    type,\n    duration,\n    enterFromClass = `${name}-enter-from`,\n    enterActiveClass = `${name}-enter-active`,\n    enterToClass = `${name}-enter-to`,\n    appearFromClass = enterFromClass,\n    appearActiveClass = enterActiveClass,\n    appearToClass = enterToClass,\n    leaveFromClass = `${name}-leave-from`,\n    leaveActiveClass = `${name}-leave-active`,\n    leaveToClass = `${name}-leave-to`\n  } = rawProps;\n  const legacyClassEnabled = compatUtils.isCompatEnabled(\"TRANSITION_CLASSES\", null);\n  let legacyEnterFromClass;\n  let legacyAppearFromClass;\n  let legacyLeaveFromClass;\n  if (legacyClassEnabled) {\n    const toLegacyClass = (cls) => cls.replace(/-from$/, \"\");\n    if (!rawProps.enterFromClass) {\n      legacyEnterFromClass = toLegacyClass(enterFromClass);\n    }\n    if (!rawProps.appearFromClass) {\n      legacyAppearFromClass = toLegacyClass(appearFromClass);\n    }\n    if (!rawProps.leaveFromClass) {\n      legacyLeaveFromClass = toLegacyClass(leaveFromClass);\n    }\n  }\n  const durations = normalizeDuration(duration);\n  const enterDuration = durations && durations[0];\n  const leaveDuration = durations && durations[1];\n  const {\n    onBeforeEnter,\n    onEnter,\n    onEnterCancelled,\n    onLeave,\n    onLeaveCancelled,\n    onBeforeAppear = onBeforeEnter,\n    onAppear = onEnter,\n    onAppearCancelled = onEnterCancelled\n  } = baseProps;\n  const finishEnter = (el, isAppear, done) => {\n    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n    done && done();\n  };\n  const finishLeave = (el, done) => {\n    el._isLeaving = false;\n    removeTransitionClass(el, leaveFromClass);\n    removeTransitionClass(el, leaveToClass);\n    removeTransitionClass(el, leaveActiveClass);\n    done && done();\n  };\n  const makeEnterHook = (isAppear) => {\n    return (el, done) => {\n      const hook = isAppear ? onAppear : onEnter;\n      const resolve = () => finishEnter(el, isAppear, done);\n      callHook(hook, [el, resolve]);\n      nextFrame(() => {\n        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n        if (legacyClassEnabled) {\n          const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;\n          if (legacyClass) {\n            removeTransitionClass(el, legacyClass);\n          }\n        }\n        addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n        if (!hasExplicitCallback(hook)) {\n          whenTransitionEnds(el, type, enterDuration, resolve);\n        }\n      });\n    };\n  };\n  return extend(baseProps, {\n    onBeforeEnter(el) {\n      callHook(onBeforeEnter, [el]);\n      addTransitionClass(el, enterFromClass);\n      if (legacyClassEnabled && legacyEnterFromClass) {\n        addTransitionClass(el, legacyEnterFromClass);\n      }\n      addTransitionClass(el, enterActiveClass);\n    },\n    onBeforeAppear(el) {\n      callHook(onBeforeAppear, [el]);\n      addTransitionClass(el, appearFromClass);\n      if (legacyClassEnabled && legacyAppearFromClass) {\n        addTransitionClass(el, legacyAppearFromClass);\n      }\n      addTransitionClass(el, appearActiveClass);\n    },\n    onEnter: makeEnterHook(false),\n    onAppear: makeEnterHook(true),\n    onLeave(el, done) {\n      el._isLeaving = true;\n      const resolve = () => finishLeave(el, done);\n      addTransitionClass(el, leaveFromClass);\n      if (legacyClassEnabled && legacyLeaveFromClass) {\n        addTransitionClass(el, legacyLeaveFromClass);\n      }\n      forceReflow();\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(() => {\n        if (!el._isLeaving) {\n          return;\n        }\n        removeTransitionClass(el, leaveFromClass);\n        if (legacyClassEnabled && legacyLeaveFromClass) {\n          removeTransitionClass(el, legacyLeaveFromClass);\n        }\n        addTransitionClass(el, leaveToClass);\n        if (!hasExplicitCallback(onLeave)) {\n          whenTransitionEnds(el, type, leaveDuration, resolve);\n        }\n      });\n      callHook(onLeave, [el, resolve]);\n    },\n    onEnterCancelled(el) {\n      finishEnter(el, false);\n      callHook(onEnterCancelled, [el]);\n    },\n    onAppearCancelled(el) {\n      finishEnter(el, true);\n      callHook(onAppearCancelled, [el]);\n    },\n    onLeaveCancelled(el) {\n      finishLeave(el);\n      callHook(onLeaveCancelled, [el]);\n    }\n  });\n}\nfunction normalizeDuration(duration) {\n  if (duration == null) {\n    return null;\n  } else if (isObject(duration)) {\n    return [NumberOf(duration.enter), NumberOf(duration.leave)];\n  } else {\n    const n = NumberOf(duration);\n    return [n, n];\n  }\n}\nfunction NumberOf(val) {\n  const res = toNumber(val);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    assertNumber(res, \"<transition> explicit duration\");\n  }\n  return res;\n}\nfunction addTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n  (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n  const _vtc = el[vtcKey];\n  if (_vtc) {\n    _vtc.delete(cls);\n    if (!_vtc.size) {\n      el[vtcKey] = void 0;\n    }\n  }\n}\nfunction nextFrame(cb) {\n  requestAnimationFrame(() => {\n    requestAnimationFrame(cb);\n  });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n  const id = el._endId = ++endId;\n  const resolveIfNotStale = () => {\n    if (id === el._endId) {\n      resolve();\n    }\n  };\n  if (explicitTimeout) {\n    return setTimeout(resolveIfNotStale, explicitTimeout);\n  }\n  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n  if (!type) {\n    return resolve();\n  }\n  const endEvent = type + \"end\";\n  let ended = 0;\n  const end = () => {\n    el.removeEventListener(endEvent, onEnd);\n    resolveIfNotStale();\n  };\n  const onEnd = (e) => {\n    if (e.target === el && ++ended >= propCount) {\n      end();\n    }\n  };\n  setTimeout(() => {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n  const styles = window.getComputedStyle(el);\n  const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n  const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n  const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n  const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n  const animationTimeout = getTimeout(animationDelays, animationDurations);\n  let type = null;\n  let timeout = 0;\n  let propCount = 0;\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n    propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n  }\n  const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n    getStyleProperties(`${TRANSITION}Property`).toString()\n  );\n  return {\n    type,\n    timeout,\n    propCount,\n    hasTransform\n  };\n}\nfunction getTimeout(delays, durations) {\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n  if (s === \"auto\")\n    return 0;\n  return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n  return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n  const transitionClasses = el[vtcKey];\n  if (transitionClasses) {\n    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n  }\n  if (value == null) {\n    el.removeAttribute(\"class\");\n  } else if (isSVG) {\n    el.setAttribute(\"class\", value);\n  } else {\n    el.className = value;\n  }\n}\n\nconst vShowOldKey = Symbol(\"_vod\");\nconst vShow = {\n  beforeMount(el, { value }, { transition }) {\n    el[vShowOldKey] = el.style.display === \"none\" ? \"\" : el.style.display;\n    if (transition && value) {\n      transition.beforeEnter(el);\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  mounted(el, { value }, { transition }) {\n    if (transition && value) {\n      transition.enter(el);\n    }\n  },\n  updated(el, { value, oldValue }, { transition }) {\n    if (!value === !oldValue)\n      return;\n    if (transition) {\n      if (value) {\n        transition.beforeEnter(el);\n        setDisplay(el, true);\n        transition.enter(el);\n      } else {\n        transition.leave(el, () => {\n          setDisplay(el, false);\n        });\n      }\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  beforeUnmount(el, { value }) {\n    setDisplay(el, value);\n  }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n  el.style.display = value ? el[vShowOldKey] : \"none\";\n}\nfunction initVShowForSSR() {\n  vShow.getSSRProps = ({ value }) => {\n    if (!value) {\n      return { style: { display: \"none\" } };\n    }\n  };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n  const instance = getCurrentInstance();\n  if (!instance) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n    return;\n  }\n  const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n    Array.from(\n      document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n    ).forEach((node) => setVarsOnNode(node, vars));\n  };\n  const setVars = () => {\n    const vars = getter(instance.proxy);\n    setVarsOnVNode(instance.subTree, vars);\n    updateTeleports(vars);\n  };\n  watchPostEffect(setVars);\n  onMounted(() => {\n    const ob = new MutationObserver(setVars);\n    ob.observe(instance.subTree.el.parentNode, { childList: true });\n    onUnmounted(() => ob.disconnect());\n  });\n}\nfunction setVarsOnVNode(vnode, vars) {\n  if (vnode.shapeFlag & 128) {\n    const suspense = vnode.suspense;\n    vnode = suspense.activeBranch;\n    if (suspense.pendingBranch && !suspense.isHydrating) {\n      suspense.effects.push(() => {\n        setVarsOnVNode(suspense.activeBranch, vars);\n      });\n    }\n  }\n  while (vnode.component) {\n    vnode = vnode.component.subTree;\n  }\n  if (vnode.shapeFlag & 1 && vnode.el) {\n    setVarsOnNode(vnode.el, vars);\n  } else if (vnode.type === Fragment) {\n    vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n  } else if (vnode.type === Static) {\n    let { el, anchor } = vnode;\n    while (el) {\n      setVarsOnNode(el, vars);\n      if (el === anchor)\n        break;\n      el = el.nextSibling;\n    }\n  }\n}\nfunction setVarsOnNode(el, vars) {\n  if (el.nodeType === 1) {\n    const style = el.style;\n    let cssText = \"\";\n    for (const key in vars) {\n      style.setProperty(`--${key}`, vars[key]);\n      cssText += `--${key}: ${vars[key]};`;\n    }\n    style[CSS_VAR_TEXT] = cssText;\n  }\n}\n\nfunction patchStyle(el, prev, next) {\n  const style = el.style;\n  const currentDisplay = style.display;\n  const isCssString = isString(next);\n  if (next && !isCssString) {\n    if (prev && !isString(prev)) {\n      for (const key in prev) {\n        if (next[key] == null) {\n          setStyle(style, key, \"\");\n        }\n      }\n    }\n    for (const key in next) {\n      setStyle(style, key, next[key]);\n    }\n  } else {\n    if (isCssString) {\n      if (prev !== next) {\n        const cssVarText = style[CSS_VAR_TEXT];\n        if (cssVarText) {\n          next += \";\" + cssVarText;\n        }\n        style.cssText = next;\n      }\n    } else if (prev) {\n      el.removeAttribute(\"style\");\n    }\n  }\n  if (vShowOldKey in el) {\n    style.display = currentDisplay;\n  }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n  if (isArray(val)) {\n    val.forEach((v) => setStyle(style, name, v));\n  } else {\n    if (val == null)\n      val = \"\";\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (semicolonRE.test(val)) {\n        warn(\n          `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n        );\n      }\n    }\n    if (name.startsWith(\"--\")) {\n      style.setProperty(name, val);\n    } else {\n      const prefixed = autoPrefix(style, name);\n      if (importantRE.test(val)) {\n        style.setProperty(\n          hyphenate(prefixed),\n          val.replace(importantRE, \"\"),\n          \"important\"\n        );\n      } else {\n        style[prefixed] = val;\n      }\n    }\n  }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n  const cached = prefixCache[rawName];\n  if (cached) {\n    return cached;\n  }\n  let name = camelize(rawName);\n  if (name !== \"filter\" && name in style) {\n    return prefixCache[rawName] = name;\n  }\n  name = capitalize(name);\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefixed = prefixes[i] + name;\n    if (prefixed in style) {\n      return prefixCache[rawName] = prefixed;\n    }\n  }\n  return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance) {\n  if (isSVG && key.startsWith(\"xlink:\")) {\n    if (value == null) {\n      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    if (compatCoerceAttr(el, key, value, instance)) {\n      return;\n    }\n    const isBoolean = isSpecialBooleanAttr(key);\n    if (value == null || isBoolean && !includeBooleanAttr(value)) {\n      el.removeAttribute(key);\n    } else {\n      el.setAttribute(key, isBoolean ? \"\" : value);\n    }\n  }\n}\nconst isEnumeratedAttr = /* @__PURE__ */ makeMap(\"contenteditable,draggable,spellcheck\") ;\nfunction compatCoerceAttr(el, key, value, instance = null) {\n  if (isEnumeratedAttr(key)) {\n    const v2CoercedValue = value === null ? \"false\" : typeof value !== \"boolean\" && value !== void 0 ? \"true\" : null;\n    if (v2CoercedValue && compatUtils.softAssertCompatEnabled(\n      \"ATTR_ENUMERATED_COERCION\",\n      instance,\n      key,\n      value,\n      v2CoercedValue\n    )) {\n      el.setAttribute(key, v2CoercedValue);\n      return true;\n    }\n  } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(\n    \"ATTR_FALSE_VALUE\",\n    instance,\n    key\n  )) {\n    el.removeAttribute(key);\n    return true;\n  }\n  return false;\n}\n\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n  if (key === \"innerHTML\" || key === \"textContent\") {\n    if (prevChildren) {\n      unmountChildren(prevChildren, parentComponent, parentSuspense);\n    }\n    el[key] = value == null ? \"\" : value;\n    return;\n  }\n  const tag = el.tagName;\n  if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n  !tag.includes(\"-\")) {\n    el._value = value;\n    const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") : el.value;\n    const newValue = value == null ? \"\" : value;\n    if (oldValue !== newValue) {\n      el.value = newValue;\n    }\n    if (value == null) {\n      el.removeAttribute(key);\n    }\n    return;\n  }\n  let needRemove = false;\n  if (value === \"\" || value == null) {\n    const type = typeof el[key];\n    if (type === \"boolean\") {\n      value = includeBooleanAttr(value);\n    } else if (value == null && type === \"string\") {\n      value = \"\";\n      needRemove = true;\n    } else if (type === \"number\") {\n      value = 0;\n      needRemove = true;\n    }\n  } else {\n    if (value === false && compatUtils.isCompatEnabled(\n      \"ATTR_FALSE_VALUE\",\n      parentComponent\n    )) {\n      const type = typeof el[key];\n      if (type === \"string\" || type === \"number\") {\n        !!(process.env.NODE_ENV !== \"production\") && compatUtils.warnDeprecation(\n          \"ATTR_FALSE_VALUE\",\n          parentComponent,\n          key\n        );\n        value = type === \"number\" ? 0 : \"\";\n        needRemove = true;\n      }\n    }\n  }\n  try {\n    el[key] = value;\n  } catch (e) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n      warn(\n        `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n        e\n      );\n    }\n  }\n  needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n  el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n  el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n  const invokers = el[veiKey] || (el[veiKey] = {});\n  const existingInvoker = invokers[rawName];\n  if (nextValue && existingInvoker) {\n    existingInvoker.value = nextValue;\n  } else {\n    const [name, options] = parseName(rawName);\n    if (nextValue) {\n      const invoker = invokers[rawName] = createInvoker(nextValue, instance);\n      addEventListener(el, name, invoker, options);\n    } else if (existingInvoker) {\n      removeEventListener(el, name, existingInvoker, options);\n      invokers[rawName] = void 0;\n    }\n  }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n  let options;\n  if (optionsModifierRE.test(name)) {\n    options = {};\n    let m;\n    while (m = name.match(optionsModifierRE)) {\n      name = name.slice(0, name.length - m[0].length);\n      options[m[0].toLowerCase()] = true;\n    }\n  }\n  const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n  return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n  const invoker = (e) => {\n    if (!e._vts) {\n      e._vts = Date.now();\n    } else if (e._vts <= invoker.attached) {\n      return;\n    }\n    callWithAsyncErrorHandling(\n      patchStopImmediatePropagation(e, invoker.value),\n      instance,\n      5,\n      [e]\n    );\n  };\n  invoker.value = initialValue;\n  invoker.attached = getNow();\n  return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n  if (isArray(value)) {\n    const originalStop = e.stopImmediatePropagation;\n    e.stopImmediatePropagation = () => {\n      originalStop.call(e);\n      e._stopped = true;\n    };\n    return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n  } else {\n    return value;\n  }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n  const isSVG = namespace === \"svg\";\n  if (key === \"class\") {\n    patchClass(el, nextValue, isSVG);\n  } else if (key === \"style\") {\n    patchStyle(el, prevValue, nextValue);\n  } else if (isOn(key)) {\n    if (!isModelListener(key)) {\n      patchEvent(el, key, prevValue, nextValue, parentComponent);\n    }\n  } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n    patchDOMProp(\n      el,\n      key,\n      nextValue,\n      prevChildren,\n      parentComponent,\n      parentSuspense,\n      unmountChildren\n    );\n  } else {\n    if (key === \"true-value\") {\n      el._trueValue = nextValue;\n    } else if (key === \"false-value\") {\n      el._falseValue = nextValue;\n    }\n    patchAttr(el, key, nextValue, isSVG, parentComponent);\n  }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n  if (isSVG) {\n    if (key === \"innerHTML\" || key === \"textContent\") {\n      return true;\n    }\n    if (key in el && isNativeOn(key) && isFunction(value)) {\n      return true;\n    }\n    return false;\n  }\n  if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n    return false;\n  }\n  if (key === \"form\") {\n    return false;\n  }\n  if (key === \"list\" && el.tagName === \"INPUT\") {\n    return false;\n  }\n  if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n    return false;\n  }\n  if (key === \"width\" || key === \"height\") {\n    const tag = el.tagName;\n    if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n      return false;\n    }\n  }\n  if (isNativeOn(key) && isString(value)) {\n    return false;\n  }\n  return key in el;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, hydrate2) {\n  const Comp = defineComponent(options);\n  class VueCustomElement extends VueElement {\n    constructor(initialProps) {\n      super(Comp, initialProps, hydrate2);\n    }\n  }\n  VueCustomElement.def = Comp;\n  return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {\n  return /* @__PURE__ */ defineCustomElement(options, hydrate);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n  constructor(_def, _props = {}, hydrate2) {\n    super();\n    this._def = _def;\n    this._props = _props;\n    /**\n     * @internal\n     */\n    this._instance = null;\n    this._connected = false;\n    this._resolved = false;\n    this._numberProps = null;\n    this._ob = null;\n    if (this.shadowRoot && hydrate2) {\n      hydrate2(this._createVNode(), this.shadowRoot);\n    } else {\n      if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n        warn(\n          `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n        );\n      }\n      this.attachShadow({ mode: \"open\" });\n      if (!this._def.__asyncLoader) {\n        this._resolveProps(this._def);\n      }\n    }\n  }\n  connectedCallback() {\n    this._connected = true;\n    if (!this._instance) {\n      if (this._resolved) {\n        this._update();\n      } else {\n        this._resolveDef();\n      }\n    }\n  }\n  disconnectedCallback() {\n    this._connected = false;\n    if (this._ob) {\n      this._ob.disconnect();\n      this._ob = null;\n    }\n    nextTick(() => {\n      if (!this._connected) {\n        render(null, this.shadowRoot);\n        this._instance = null;\n      }\n    });\n  }\n  /**\n   * resolve inner component definition (handle possible async component)\n   */\n  _resolveDef() {\n    this._resolved = true;\n    for (let i = 0; i < this.attributes.length; i++) {\n      this._setAttr(this.attributes[i].name);\n    }\n    this._ob = new MutationObserver((mutations) => {\n      for (const m of mutations) {\n        this._setAttr(m.attributeName);\n      }\n    });\n    this._ob.observe(this, { attributes: true });\n    const resolve = (def, isAsync = false) => {\n      const { props, styles } = def;\n      let numberProps;\n      if (props && !isArray(props)) {\n        for (const key in props) {\n          const opt = props[key];\n          if (opt === Number || opt && opt.type === Number) {\n            if (key in this._props) {\n              this._props[key] = toNumber(this._props[key]);\n            }\n            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;\n          }\n        }\n      }\n      this._numberProps = numberProps;\n      if (isAsync) {\n        this._resolveProps(def);\n      }\n      this._applyStyles(styles);\n      this._update();\n    };\n    const asyncDef = this._def.__asyncLoader;\n    if (asyncDef) {\n      asyncDef().then((def) => resolve(def, true));\n    } else {\n      resolve(this._def);\n    }\n  }\n  _resolveProps(def) {\n    const { props } = def;\n    const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n    for (const key of Object.keys(this)) {\n      if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n        this._setProp(key, this[key], true, false);\n      }\n    }\n    for (const key of declaredPropKeys.map(camelize)) {\n      Object.defineProperty(this, key, {\n        get() {\n          return this._getProp(key);\n        },\n        set(val) {\n          this._setProp(key, val);\n        }\n      });\n    }\n  }\n  _setAttr(key) {\n    let value = this.getAttribute(key);\n    const camelKey = camelize(key);\n    if (this._numberProps && this._numberProps[camelKey]) {\n      value = toNumber(value);\n    }\n    this._setProp(camelKey, value, false);\n  }\n  /**\n   * @internal\n   */\n  _getProp(key) {\n    return this._props[key];\n  }\n  /**\n   * @internal\n   */\n  _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n    if (val !== this._props[key]) {\n      this._props[key] = val;\n      if (shouldUpdate && this._instance) {\n        this._update();\n      }\n      if (shouldReflect) {\n        if (val === true) {\n          this.setAttribute(hyphenate(key), \"\");\n        } else if (typeof val === \"string\" || typeof val === \"number\") {\n          this.setAttribute(hyphenate(key), val + \"\");\n        } else if (!val) {\n          this.removeAttribute(hyphenate(key));\n        }\n      }\n    }\n  }\n  _update() {\n    render(this._createVNode(), this.shadowRoot);\n  }\n  _createVNode() {\n    const vnode = createVNode(this._def, extend({}, this._props));\n    if (!this._instance) {\n      vnode.ce = (instance) => {\n        this._instance = instance;\n        instance.isCE = true;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          instance.ceReload = (newStyles) => {\n            if (this._styles) {\n              this._styles.forEach((s) => this.shadowRoot.removeChild(s));\n              this._styles.length = 0;\n            }\n            this._applyStyles(newStyles);\n            this._instance = null;\n            this._update();\n          };\n        }\n        const dispatch = (event, args) => {\n          this.dispatchEvent(\n            new CustomEvent(event, {\n              detail: args\n            })\n          );\n        };\n        instance.emit = (event, ...args) => {\n          dispatch(event, args);\n          if (hyphenate(event) !== event) {\n            dispatch(hyphenate(event), args);\n          }\n        };\n        let parent = this;\n        while (parent = parent && (parent.parentNode || parent.host)) {\n          if (parent instanceof VueElement) {\n            instance.parent = parent._instance;\n            instance.provides = parent._instance.provides;\n            break;\n          }\n        }\n      };\n    }\n    return vnode;\n  }\n  _applyStyles(styles) {\n    if (styles) {\n      styles.forEach((css) => {\n        const s = document.createElement(\"style\");\n        s.textContent = css;\n        this.shadowRoot.appendChild(s);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          (this._styles || (this._styles = [])).push(s);\n        }\n      });\n    }\n  }\n}\n\nfunction useCssModule(name = \"$style\") {\n  {\n    const instance = getCurrentInstance();\n    if (!instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n      return EMPTY_OBJ;\n    }\n    const modules = instance.type.__cssModules;\n    if (!modules) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n      return EMPTY_OBJ;\n    }\n    const mod = modules[name];\n    if (!mod) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n      return EMPTY_OBJ;\n    }\n    return mod;\n  }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst TransitionGroupImpl = {\n  name: \"TransitionGroup\",\n  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n    tag: String,\n    moveClass: String\n  }),\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const state = useTransitionState();\n    let prevChildren;\n    let children;\n    onUpdated(() => {\n      if (!prevChildren.length) {\n        return;\n      }\n      const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n      if (!hasCSSTransform(\n        prevChildren[0].el,\n        instance.vnode.el,\n        moveClass\n      )) {\n        return;\n      }\n      prevChildren.forEach(callPendingCbs);\n      prevChildren.forEach(recordPosition);\n      const movedChildren = prevChildren.filter(applyTranslation);\n      forceReflow();\n      movedChildren.forEach((c) => {\n        const el = c.el;\n        const style = el.style;\n        addTransitionClass(el, moveClass);\n        style.transform = style.webkitTransform = style.transitionDuration = \"\";\n        const cb = el[moveCbKey] = (e) => {\n          if (e && e.target !== el) {\n            return;\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(\"transitionend\", cb);\n            el[moveCbKey] = null;\n            removeTransitionClass(el, moveClass);\n          }\n        };\n        el.addEventListener(\"transitionend\", cb);\n      });\n    });\n    return () => {\n      const rawProps = toRaw(props);\n      const cssTransitionProps = resolveTransitionProps(rawProps);\n      let tag = rawProps.tag || Fragment;\n      if (!rawProps.tag && compatUtils.checkCompatEnabled(\n        \"TRANSITION_GROUP_ROOT\",\n        instance.parent\n      )) {\n        tag = \"span\";\n      }\n      prevChildren = children;\n      children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        if (child.key != null) {\n          setTransitionHooks(\n            child,\n            resolveTransitionHooks(child, cssTransitionProps, state, instance)\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn(`<TransitionGroup> children must be keyed.`);\n        }\n      }\n      if (prevChildren) {\n        for (let i = 0; i < prevChildren.length; i++) {\n          const child = prevChildren[i];\n          setTransitionHooks(\n            child,\n            resolveTransitionHooks(child, cssTransitionProps, state, instance)\n          );\n          positionMap.set(child, child.el.getBoundingClientRect());\n        }\n      }\n      return createVNode(tag, null, children);\n    };\n  }\n};\n{\n  TransitionGroupImpl.__isBuiltIn = true;\n}\nconst removeMode = (props) => delete props.mode;\n/* @__PURE__ */ removeMode(TransitionGroupImpl.props);\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n  const el = c.el;\n  if (el[moveCbKey]) {\n    el[moveCbKey]();\n  }\n  if (el[enterCbKey]) {\n    el[enterCbKey]();\n  }\n}\nfunction recordPosition(c) {\n  newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n  const oldPos = positionMap.get(c);\n  const newPos = newPositionMap.get(c);\n  const dx = oldPos.left - newPos.left;\n  const dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    const s = c.el.style;\n    s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n    s.transitionDuration = \"0s\";\n    return c;\n  }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n  const clone = el.cloneNode();\n  const _vtc = el[vtcKey];\n  if (_vtc) {\n    _vtc.forEach((cls) => {\n      cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n    });\n  }\n  moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n  clone.style.display = \"none\";\n  const container = root.nodeType === 1 ? root : root.parentNode;\n  container.appendChild(clone);\n  const { hasTransform } = getTransitionInfo(clone);\n  container.removeChild(clone);\n  return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n  const fn = vnode.props[\"onUpdate:modelValue\"] || vnode.props[\"onModelCompat:input\"];\n  return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n  e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n  const target = e.target;\n  if (target.composing) {\n    target.composing = false;\n    target.dispatchEvent(new Event(\"input\"));\n  }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n  created(el, { modifiers: { lazy, trim, number } }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n    addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n      if (e.target.composing)\n        return;\n      let domValue = el.value;\n      if (trim) {\n        domValue = domValue.trim();\n      }\n      if (castToNumber) {\n        domValue = looseToNumber(domValue);\n      }\n      el[assignKey](domValue);\n    });\n    if (trim) {\n      addEventListener(el, \"change\", () => {\n        el.value = el.value.trim();\n      });\n    }\n    if (!lazy) {\n      addEventListener(el, \"compositionstart\", onCompositionStart);\n      addEventListener(el, \"compositionend\", onCompositionEnd);\n      addEventListener(el, \"change\", onCompositionEnd);\n    }\n  },\n  // set value on mounted so it's after min/max for type=\"range\"\n  mounted(el, { value }) {\n    el.value = value == null ? \"\" : value;\n  },\n  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    if (el.composing)\n      return;\n    const elValue = number || el.type === \"number\" ? looseToNumber(el.value) : el.value;\n    const newValue = value == null ? \"\" : value;\n    if (elValue === newValue) {\n      return;\n    }\n    if (document.activeElement === el && el.type !== \"range\") {\n      if (lazy) {\n        return;\n      }\n      if (trim && el.value.trim() === newValue) {\n        return;\n      }\n    }\n    el.value = newValue;\n  }\n};\nconst vModelCheckbox = {\n  // #4096 array checkboxes need to be deep traversed\n  deep: true,\n  created(el, _, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    addEventListener(el, \"change\", () => {\n      const modelValue = el._modelValue;\n      const elementValue = getValue(el);\n      const checked = el.checked;\n      const assign = el[assignKey];\n      if (isArray(modelValue)) {\n        const index = looseIndexOf(modelValue, elementValue);\n        const found = index !== -1;\n        if (checked && !found) {\n          assign(modelValue.concat(elementValue));\n        } else if (!checked && found) {\n          const filtered = [...modelValue];\n          filtered.splice(index, 1);\n          assign(filtered);\n        }\n      } else if (isSet(modelValue)) {\n        const cloned = new Set(modelValue);\n        if (checked) {\n          cloned.add(elementValue);\n        } else {\n          cloned.delete(elementValue);\n        }\n        assign(cloned);\n      } else {\n        assign(getCheckboxValue(el, checked));\n      }\n    });\n  },\n  // set initial checked on mount to wait for true-value/false-value\n  mounted: setChecked,\n  beforeUpdate(el, binding, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    setChecked(el, binding, vnode);\n  }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n  el._modelValue = value;\n  if (isArray(value)) {\n    el.checked = looseIndexOf(value, vnode.props.value) > -1;\n  } else if (isSet(value)) {\n    el.checked = value.has(vnode.props.value);\n  } else if (value !== oldValue) {\n    el.checked = looseEqual(value, getCheckboxValue(el, true));\n  }\n}\nconst vModelRadio = {\n  created(el, { value }, vnode) {\n    el.checked = looseEqual(value, vnode.props.value);\n    el[assignKey] = getModelAssigner(vnode);\n    addEventListener(el, \"change\", () => {\n      el[assignKey](getValue(el));\n    });\n  },\n  beforeUpdate(el, { value, oldValue }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    if (value !== oldValue) {\n      el.checked = looseEqual(value, vnode.props.value);\n    }\n  }\n};\nconst vModelSelect = {\n  // <select multiple> value need to be deep traversed\n  deep: true,\n  created(el, { value, modifiers: { number } }, vnode) {\n    const isSetModel = isSet(value);\n    addEventListener(el, \"change\", () => {\n      const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n        (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n      );\n      el[assignKey](\n        el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n      );\n      el._assigning = true;\n      nextTick(() => {\n        el._assigning = false;\n      });\n    });\n    el[assignKey] = getModelAssigner(vnode);\n  },\n  // set value in mounted & updated because <select> relies on its children\n  // <option>s.\n  mounted(el, { value, oldValue, modifiers: { number } }) {\n    setSelected(el, value, oldValue, number);\n  },\n  beforeUpdate(el, _binding, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n  },\n  updated(el, { value, oldValue, modifiers: { number } }) {\n    if (!el._assigning) {\n      setSelected(el, value, oldValue, number);\n    }\n  }\n};\nfunction setSelected(el, value, oldValue, number) {\n  const isMultiple = el.multiple;\n  const isArrayValue = isArray(value);\n  if (isMultiple && !isArrayValue && !isSet(value)) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(\n      `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n    );\n    return;\n  }\n  if (isArrayValue && looseEqual(value, oldValue)) {\n    return;\n  }\n  for (let i = 0, l = el.options.length; i < l; i++) {\n    const option = el.options[i];\n    const optionValue = getValue(option);\n    if (isMultiple) {\n      if (isArrayValue) {\n        const optionType = typeof optionValue;\n        if (optionType === \"string\" || optionType === \"number\") {\n          option.selected = value.includes(\n            number ? looseToNumber(optionValue) : optionValue\n          );\n        } else {\n          option.selected = looseIndexOf(value, optionValue) > -1;\n        }\n      } else {\n        option.selected = value.has(optionValue);\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i)\n          el.selectedIndex = i;\n        return;\n      }\n    }\n  }\n  if (!isMultiple && el.selectedIndex !== -1) {\n    el.selectedIndex = -1;\n  }\n}\nfunction getValue(el) {\n  return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n  const key = checked ? \"_trueValue\" : \"_falseValue\";\n  return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n  created(el, binding, vnode) {\n    callModelHook(el, binding, vnode, null, \"created\");\n  },\n  mounted(el, binding, vnode) {\n    callModelHook(el, binding, vnode, null, \"mounted\");\n  },\n  beforeUpdate(el, binding, vnode, prevVNode) {\n    callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n  },\n  updated(el, binding, vnode, prevVNode) {\n    callModelHook(el, binding, vnode, prevVNode, \"updated\");\n  }\n};\nfunction resolveDynamicModel(tagName, type) {\n  switch (tagName) {\n    case \"SELECT\":\n      return vModelSelect;\n    case \"TEXTAREA\":\n      return vModelText;\n    default:\n      switch (type) {\n        case \"checkbox\":\n          return vModelCheckbox;\n        case \"radio\":\n          return vModelRadio;\n        default:\n          return vModelText;\n      }\n  }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n  const modelToUse = resolveDynamicModel(\n    el.tagName,\n    vnode.props && vnode.props.type\n  );\n  const fn = modelToUse[hook];\n  fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n  vModelText.getSSRProps = ({ value }) => ({ value });\n  vModelRadio.getSSRProps = ({ value }, vnode) => {\n    if (vnode.props && looseEqual(vnode.props.value, value)) {\n      return { checked: true };\n    }\n  };\n  vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n    if (isArray(value)) {\n      if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n        return { checked: true };\n      }\n    } else if (isSet(value)) {\n      if (vnode.props && value.has(vnode.props.value)) {\n        return { checked: true };\n      }\n    } else if (value) {\n      return { checked: true };\n    }\n  };\n  vModelDynamic.getSSRProps = (binding, vnode) => {\n    if (typeof vnode.type !== \"string\") {\n      return;\n    }\n    const modelToUse = resolveDynamicModel(\n      // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n      vnode.type.toUpperCase(),\n      vnode.props && vnode.props.type\n    );\n    if (modelToUse.getSSRProps) {\n      return modelToUse.getSSRProps(binding, vnode);\n    }\n  };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n  stop: (e) => e.stopPropagation(),\n  prevent: (e) => e.preventDefault(),\n  self: (e) => e.target !== e.currentTarget,\n  ctrl: (e) => !e.ctrlKey,\n  shift: (e) => !e.shiftKey,\n  alt: (e) => !e.altKey,\n  meta: (e) => !e.metaKey,\n  left: (e) => \"button\" in e && e.button !== 0,\n  middle: (e) => \"button\" in e && e.button !== 1,\n  right: (e) => \"button\" in e && e.button !== 2,\n  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n  const cache = fn._withMods || (fn._withMods = {});\n  const cacheKey = modifiers.join(\".\");\n  return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n    for (let i = 0; i < modifiers.length; i++) {\n      const guard = modifierGuards[modifiers[i]];\n      if (guard && guard(event, modifiers))\n        return;\n    }\n    return fn(event, ...args);\n  });\n};\nconst keyNames = {\n  esc: \"escape\",\n  space: \" \",\n  up: \"arrow-up\",\n  left: \"arrow-left\",\n  right: \"arrow-right\",\n  down: \"arrow-down\",\n  delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n  let globalKeyCodes;\n  let instance = null;\n  {\n    instance = getCurrentInstance();\n    if (compatUtils.isCompatEnabled(\"CONFIG_KEY_CODES\", instance)) {\n      if (instance) {\n        globalKeyCodes = instance.appContext.config.keyCodes;\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && modifiers.some((m) => /^\\d+$/.test(m))) {\n      compatUtils.warnDeprecation(\n        \"V_ON_KEYCODE_MODIFIER\",\n        instance\n      );\n    }\n  }\n  const cache = fn._withKeys || (fn._withKeys = {});\n  const cacheKey = modifiers.join(\".\");\n  return cache[cacheKey] || (cache[cacheKey] = (event) => {\n    if (!(\"key\" in event)) {\n      return;\n    }\n    const eventKey = hyphenate(event.key);\n    if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n      return fn(event);\n    }\n    {\n      const keyCode = String(event.keyCode);\n      if (compatUtils.isCompatEnabled(\n        \"V_ON_KEYCODE_MODIFIER\",\n        instance\n      ) && modifiers.some((mod) => mod == keyCode)) {\n        return fn(event);\n      }\n      if (globalKeyCodes) {\n        for (const mod of modifiers) {\n          const codes = globalKeyCodes[mod];\n          if (codes) {\n            const matches = isArray(codes) ? codes.some((code) => String(code) === keyCode) : String(codes) === keyCode;\n            if (matches) {\n              return fn(event);\n            }\n          }\n        }\n      }\n    }\n  });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n  return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n  renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n  enabledHydration = true;\n  return renderer;\n}\nconst render = (...args) => {\n  ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n  ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n  const app = ensureRenderer().createApp(...args);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    injectNativeTagCheck(app);\n    injectCompilerOptionsCheck(app);\n  }\n  const { mount } = app;\n  app.mount = (containerOrSelector) => {\n    const container = normalizeContainer(containerOrSelector);\n    if (!container)\n      return;\n    const component = app._component;\n    if (!isFunction(component) && !component.render && !component.template) {\n      component.template = container.innerHTML;\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        for (let i = 0; i < container.attributes.length; i++) {\n          const attr = container.attributes[i];\n          if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n            compatUtils.warnDeprecation(\n              \"GLOBAL_MOUNT_CONTAINER\",\n              null\n            );\n            break;\n          }\n        }\n      }\n    }\n    container.innerHTML = \"\";\n    const proxy = mount(container, false, resolveRootNamespace(container));\n    if (container instanceof Element) {\n      container.removeAttribute(\"v-cloak\");\n      container.setAttribute(\"data-v-app\", \"\");\n    }\n    return proxy;\n  };\n  return app;\n};\nconst createSSRApp = (...args) => {\n  const app = ensureHydrationRenderer().createApp(...args);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    injectNativeTagCheck(app);\n    injectCompilerOptionsCheck(app);\n  }\n  const { mount } = app;\n  app.mount = (containerOrSelector) => {\n    const container = normalizeContainer(containerOrSelector);\n    if (container) {\n      return mount(container, true, resolveRootNamespace(container));\n    }\n  };\n  return app;\n};\nfunction resolveRootNamespace(container) {\n  if (container instanceof SVGElement) {\n    return \"svg\";\n  }\n  if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n    return \"mathml\";\n  }\n}\nfunction injectNativeTagCheck(app) {\n  Object.defineProperty(app.config, \"isNativeTag\", {\n    value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n    writable: false\n  });\n}\nfunction injectCompilerOptionsCheck(app) {\n  if (isRuntimeOnly()) {\n    const isCustomElement = app.config.isCustomElement;\n    Object.defineProperty(app.config, \"isCustomElement\", {\n      get() {\n        return isCustomElement;\n      },\n      set() {\n        warn(\n          `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n        );\n      }\n    });\n    const compilerOptions = app.config.compilerOptions;\n    const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n    Object.defineProperty(app.config, \"compilerOptions\", {\n      get() {\n        warn(msg);\n        return compilerOptions;\n      },\n      set() {\n        warn(msg);\n      }\n    });\n  }\n}\nfunction normalizeContainer(container) {\n  if (isString(container)) {\n    const res = document.querySelector(container);\n    if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n      warn(\n        `Failed to mount app: mount target selector \"${container}\" returned null.`\n      );\n    }\n    return res;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n    warn(\n      `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n    );\n  }\n  return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n  if (!ssrDirectiveInitialized) {\n    ssrDirectiveInitialized = true;\n    initVModelForSSR();\n    initVShowForSSR();\n  }\n} ;\n\nvar runtimeDom = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  BaseTransition: BaseTransition,\n  BaseTransitionPropsValidators: BaseTransitionPropsValidators,\n  Comment: Comment,\n  DeprecationTypes: DeprecationTypes,\n  EffectScope: EffectScope,\n  ErrorCodes: ErrorCodes,\n  ErrorTypeStrings: ErrorTypeStrings,\n  Fragment: Fragment,\n  KeepAlive: KeepAlive,\n  ReactiveEffect: ReactiveEffect,\n  Static: Static,\n  Suspense: Suspense,\n  Teleport: Teleport,\n  Text: Text,\n  TrackOpTypes: TrackOpTypes,\n  Transition: Transition,\n  TransitionGroup: TransitionGroup,\n  TriggerOpTypes: TriggerOpTypes,\n  VueElement: VueElement,\n  assertNumber: assertNumber,\n  callWithAsyncErrorHandling: callWithAsyncErrorHandling,\n  callWithErrorHandling: callWithErrorHandling,\n  camelize: camelize,\n  capitalize: capitalize,\n  cloneVNode: cloneVNode,\n  compatUtils: compatUtils,\n  computed: computed,\n  createApp: createApp,\n  createBlock: createBlock,\n  createCommentVNode: createCommentVNode,\n  createElementBlock: createElementBlock,\n  createElementVNode: createBaseVNode,\n  createHydrationRenderer: createHydrationRenderer,\n  createPropsRestProxy: createPropsRestProxy,\n  createRenderer: createRenderer,\n  createSSRApp: createSSRApp,\n  createSlots: createSlots,\n  createStaticVNode: createStaticVNode,\n  createTextVNode: createTextVNode,\n  createVNode: createVNode,\n  customRef: customRef,\n  defineAsyncComponent: defineAsyncComponent,\n  defineComponent: defineComponent,\n  defineCustomElement: defineCustomElement,\n  defineEmits: defineEmits,\n  defineExpose: defineExpose,\n  defineModel: defineModel,\n  defineOptions: defineOptions,\n  defineProps: defineProps,\n  defineSSRCustomElement: defineSSRCustomElement,\n  defineSlots: defineSlots,\n  devtools: devtools,\n  effect: effect,\n  effectScope: effectScope,\n  getCurrentInstance: getCurrentInstance,\n  getCurrentScope: getCurrentScope,\n  getTransitionRawChildren: getTransitionRawChildren,\n  guardReactiveProps: guardReactiveProps,\n  h: h,\n  handleError: handleError,\n  hasInjectionContext: hasInjectionContext,\n  hydrate: hydrate,\n  initCustomFormatter: initCustomFormatter,\n  initDirectivesForSSR: initDirectivesForSSR,\n  inject: inject,\n  isMemoSame: isMemoSame,\n  isProxy: isProxy,\n  isReactive: isReactive,\n  isReadonly: isReadonly,\n  isRef: isRef,\n  isRuntimeOnly: isRuntimeOnly,\n  isShallow: isShallow,\n  isVNode: isVNode,\n  markRaw: markRaw,\n  mergeDefaults: mergeDefaults,\n  mergeModels: mergeModels,\n  mergeProps: mergeProps,\n  nextTick: nextTick,\n  normalizeClass: normalizeClass,\n  normalizeProps: normalizeProps,\n  normalizeStyle: normalizeStyle,\n  onActivated: onActivated,\n  onBeforeMount: onBeforeMount,\n  onBeforeUnmount: onBeforeUnmount,\n  onBeforeUpdate: onBeforeUpdate,\n  onDeactivated: onDeactivated,\n  onErrorCaptured: onErrorCaptured,\n  onMounted: onMounted,\n  onRenderTracked: onRenderTracked,\n  onRenderTriggered: onRenderTriggered,\n  onScopeDispose: onScopeDispose,\n  onServerPrefetch: onServerPrefetch,\n  onUnmounted: onUnmounted,\n  onUpdated: onUpdated,\n  openBlock: openBlock,\n  popScopeId: popScopeId,\n  provide: provide,\n  proxyRefs: proxyRefs,\n  pushScopeId: pushScopeId,\n  queuePostFlushCb: queuePostFlushCb,\n  reactive: reactive,\n  readonly: readonly,\n  ref: ref,\n  registerRuntimeCompiler: registerRuntimeCompiler,\n  render: render,\n  renderList: renderList,\n  renderSlot: renderSlot,\n  resolveComponent: resolveComponent,\n  resolveDirective: resolveDirective,\n  resolveDynamicComponent: resolveDynamicComponent,\n  resolveFilter: resolveFilter,\n  resolveTransitionHooks: resolveTransitionHooks,\n  setBlockTracking: setBlockTracking,\n  setDevtoolsHook: setDevtoolsHook,\n  setTransitionHooks: setTransitionHooks,\n  shallowReactive: shallowReactive,\n  shallowReadonly: shallowReadonly,\n  shallowRef: shallowRef,\n  ssrContextKey: ssrContextKey,\n  ssrUtils: ssrUtils,\n  stop: stop,\n  toDisplayString: toDisplayString,\n  toHandlerKey: toHandlerKey,\n  toHandlers: toHandlers,\n  toRaw: toRaw,\n  toRef: toRef,\n  toRefs: toRefs,\n  toValue: toValue,\n  transformVNodeArgs: transformVNodeArgs,\n  triggerRef: triggerRef,\n  unref: unref,\n  useAttrs: useAttrs,\n  useCssModule: useCssModule,\n  useCssVars: useCssVars,\n  useModel: useModel,\n  useSSRContext: useSSRContext,\n  useSlots: useSlots,\n  useTransitionState: useTransitionState,\n  vModelCheckbox: vModelCheckbox,\n  vModelDynamic: vModelDynamic,\n  vModelRadio: vModelRadio,\n  vModelSelect: vModelSelect,\n  vModelText: vModelText,\n  vShow: vShow,\n  version: version,\n  warn: warn,\n  watch: watch,\n  watchEffect: watchEffect,\n  watchPostEffect: watchPostEffect,\n  watchSyncEffect: watchSyncEffect,\n  withAsyncContext: withAsyncContext,\n  withCtx: withCtx,\n  withDefaults: withDefaults,\n  withDirectives: withDirectives,\n  withKeys: withKeys,\n  withMemo: withMemo,\n  withModifiers: withModifiers,\n  withScopeId: withScopeId\n});\n\nfunction initDev() {\n  {\n    initCustomFormatter();\n  }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  initDev();\n}\nfunction wrappedCreateApp(...args) {\n  const app = createApp(...args);\n  if (compatUtils.isCompatEnabled(\"RENDER_FUNCTION\", null)) {\n    app.component(\"__compat__transition\", Transition);\n    app.component(\"__compat__transition-group\", TransitionGroup);\n    app.component(\"__compat__keep-alive\", KeepAlive);\n    app._context.directives.show = vShow;\n    app._context.directives.model = vModelDynamic;\n  }\n  return app;\n}\nfunction createCompatVue() {\n  const Vue = compatUtils.createCompatVue(createApp, wrappedCreateApp);\n  extend(Vue, runtimeDom);\n  return Vue;\n}\n\nconst Vue = createCompatVue();\nVue.compile = () => {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn(\n      `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"@vue/compat/dist/vue.esm-bundler.js\".` )\n    );\n  }\n};\nvar Vue$1 = Vue;\n\nconst { configureCompat } = Vue$1;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"current-user-id\", \"rooms-loaded\", \"messages-loaded\", \"rooms\", \"room-id\", \"messages\", \"message-actions\", \"link-options\", \"text-messages\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"vue-advanced-chat\", {\n    \"current-user-id\": _ctx.currentUserId,\n    \"rooms-loaded\": _ctx.rooms.length > 0,\n    \"messages-loaded\": _ctx.messagesLoaded || null,\n    \"single-room\": \"true\",\n    rooms: JSON.stringify(_ctx.rooms),\n    \"room-id\": _ctx.rooms[0].roomId,\n    \"show-files\": \"false\",\n    \"show-emojis\": \"true\",\n    \"show-reaction-emojis\": \"false\",\n    \"show-audio\": \"false\",\n    messages: JSON.stringify(_ctx.messages),\n    \"message-actions\": \n      JSON.stringify([\n        {\n          name: 'replyMessage',\n          title: 'Répondre'\n        }\n      ])\n    ,\n    \"link-options\": JSON.stringify({ disabled: false, target: '_self' }),\n    \"text-messages\": \n      JSON.stringify({\n        ROOMS_EMPTY: 'Aucune conversation',\n        ROOM_EMPTY: 'Aucune conversation sélectionnée',\n        NEW_MESSAGES: 'Nouveaux messages',\n        MESSAGE_DELETED: 'Ce message a été supprimé',\n        MESSAGES_EMPTY: 'Aucun message',\n        CONVERSATION_STARTED: 'La conversation a commencée le :',\n        TYPE_MESSAGE: 'Tapez votre message',\n        SEARCH: 'Rechercher',\n        IS_ONLINE: 'est en ligne',\n        LAST_SEEN: 'dernière connexion ',\n        IS_TYPING: 'est en train de taper...'\n      })\n    ,\n    onSendMessage: _cache[0] || (_cache[0] = ($event: any) => (_ctx.sendMessage($event.detail[0])))\n  }, null, 40, _hoisted_1))\n}","<template>\n  <vue-advanced-chat\n    :current-user-id=\"currentUserId\"\n    :rooms-loaded=\"rooms.length > 0\"\n    :messages-loaded=\"messagesLoaded || null\"\n    single-room=\"true\"\n    :rooms=\"JSON.stringify(rooms)\"\n    :room-id=\"rooms[0].roomId\"\n    show-files=\"false\"\n    show-emojis=\"true\"\n    show-reaction-emojis=\"false\"\n    show-audio=\"false\"\n    :messages=\"JSON.stringify(messages)\"\n    :message-actions=\"\n      JSON.stringify([\n        {\n          name: 'replyMessage',\n          title: 'Répondre'\n        }\n      ])\n    \"\n    :link-options=\"JSON.stringify({ disabled: false, target: '_self' })\"\n    :text-messages=\"\n      JSON.stringify({\n        ROOMS_EMPTY: 'Aucune conversation',\n        ROOM_EMPTY: 'Aucune conversation sélectionnée',\n        NEW_MESSAGES: 'Nouveaux messages',\n        MESSAGE_DELETED: 'Ce message a été supprimé',\n        MESSAGES_EMPTY: 'Aucun message',\n        CONVERSATION_STARTED: 'La conversation a commencée le :',\n        TYPE_MESSAGE: 'Tapez votre message',\n        SEARCH: 'Rechercher',\n        IS_ONLINE: 'est en ligne',\n        LAST_SEEN: 'dernière connexion ',\n        IS_TYPING: 'est en train de taper...'\n      })\n    \"\n    @send-message=\"sendMessage($event.detail[0])\"\n  />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from \"vue\"\nimport { Message, Room, register } from \"vue-advanced-chat\"\nregister()\n\ninterface BaseComponentData {\n  socket: WebSocket | null\n  rooms: Room[]\n  messagesLoaded: boolean\n  messages: Message[]\n  currentUserId: string | null\n}\n\nexport default defineComponent({\n  data(): BaseComponentData {\n    return {\n      socket: null,\n      rooms: [\n        {\n          roomId: \"global\",\n          roomName: \"\",\n          avatar: \"\",\n          users: []\n        }\n      ],\n      messagesLoaded: false,\n      messages: [],\n      currentUserId: null\n    }\n  },\n\n  mounted() {\n    // get room info\n    let roomInfoStr: string | null = \"\"\n    const roomInfoElm = document.getElementById(\"room-info\")\n    if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n    let roomInfo: any = null\n    if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n    else throw \"No room info provided\"\n    this.rooms = [\n      {\n        roomId: roomInfo.room_name,\n        roomName: roomInfo.room_title,\n        avatar: \"\",\n        // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n        users: [\n          {\n            _id: \"1\",\n            username: \"Fake user 1\",\n            avatar: \"assets/imgs/doe.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"today, 14:30\"\n            }\n          },\n          {\n            _id: \"2\",\n            username: \"Fake user 2\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          },\n          {\n            _id: \"3\",\n            username: \"Fake user 3\",\n            avatar: \"assets/imgs/snow.png\",\n            status: {\n              state: \"online\",\n              lastChanged: \"14 July, 20:00\"\n            }\n          }\n        ]\n      }\n    ]\n    this.connect(roomInfo.room_name)\n    this.currentUserId = roomInfo.user_id\n  },\n\n  methods: {\n    connect(roomName: string) {\n      // connect to socket\n      let protocol = \"wss\"\n      if (window.location.protocol != \"https:\") protocol = \"ws\"\n      this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n      this.fetchMessages()\n\n      this.socket.onclose = () => {\n        console.log(\"Chat socket closed\")\n        // try to reconnect\n        // setTimeout(() => {\n        //   this.connect(roomName)\n        // }, 10000)\n      }\n    },\n\n    async fetchMessages() {\n      this.socket!.onmessage = (e) => {\n        const data = JSON.parse(e.data)\n        const type = data.type\n        // do not load messages in case of socket reconnect\n        if (type == \"initial\" && this.messagesLoaded) return\n        const newMessages = data.messages as Message[]\n        this.messages = [...this.messages, ...newMessages]\n        if (type == \"initial\") {\n          this.messagesLoaded = true\n        }\n      }\n    },\n\n    sendMessage({ content, replyMessage }: Message) {\n      /** send message to socket */\n      this.socket!.send(\n        JSON.stringify({\n          message: content,\n          replyTo: replyMessage ? replyMessage._id : null\n        })\n      )\n    }\n  },\n\n  computed: {\n    showAudio() {\n      return undefined\n    }\n  }\n})\n</script>\n\n<style>\n.vac-message-wrapper .vac-offset-current {\n  margin-left: 15%;\n}\n.vac-message-wrapper .vac-message-box {\n  max-width: 80%;\n}\n</style>\n","function makeMap$2(str, expectsLowerCase) {\n  const map = /* @__PURE__ */ Object.create(null);\n  const list2 = str.split(\",\");\n  for (let i = 0; i < list2.length; i++) {\n    map[list2[i]] = true;\n  }\n  return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst NOOP$1 = () => {\n};\nconst extend$2 = Object.assign;\nconst hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nconst hasOwn$1 = (val, key) => hasOwnProperty$3.call(val, key);\nconst isArray$2 = Array.isArray;\nconst isMap$1 = (val) => toTypeString$1(val) === \"[object Map]\";\nconst isFunction$2 = (val) => typeof val === \"function\";\nconst isString$2 = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject$2 = (val) => val !== null && typeof val === \"object\";\nconst objectToString$1 = Object.prototype.toString;\nconst toTypeString$1 = (value) => objectToString$1.call(value);\nconst toRawType = (value) => {\n  return toTypeString$1(value).slice(8, -1);\n};\nconst isIntegerKey = (key) => isString$2(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst hasChanged$1 = (value, oldValue) => !Object.is(value, oldValue);\nconst def$1 = (obj, key, value) => {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    enumerable: false,\n    value\n  });\n};\nlet activeEffectScope;\nclass EffectScope {\n  constructor(detached = false) {\n    this.active = true;\n    this.effects = [];\n    this.cleanups = [];\n    if (!detached && activeEffectScope) {\n      this.parent = activeEffectScope;\n      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n    }\n  }\n  run(fn) {\n    if (this.active) {\n      const currentEffectScope = activeEffectScope;\n      try {\n        activeEffectScope = this;\n        return fn();\n      } finally {\n        activeEffectScope = currentEffectScope;\n      }\n    }\n  }\n  on() {\n    activeEffectScope = this;\n  }\n  off() {\n    activeEffectScope = this.parent;\n  }\n  stop(fromParent) {\n    if (this.active) {\n      let i, l;\n      for (i = 0, l = this.effects.length; i < l; i++) {\n        this.effects[i].stop();\n      }\n      for (i = 0, l = this.cleanups.length; i < l; i++) {\n        this.cleanups[i]();\n      }\n      if (this.scopes) {\n        for (i = 0, l = this.scopes.length; i < l; i++) {\n          this.scopes[i].stop(true);\n        }\n      }\n      if (this.parent && !fromParent) {\n        const last = this.parent.scopes.pop();\n        if (last && last !== this) {\n          this.parent.scopes[this.index] = last;\n          last.index = this.index;\n        }\n      }\n      this.active = false;\n    }\n  }\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n  if (scope && scope.active) {\n    scope.effects.push(effect);\n  }\n}\nconst createDep = (effects) => {\n  const dep = new Set(effects);\n  dep.w = 0;\n  dep.n = 0;\n  return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n  if (deps.length) {\n    for (let i = 0; i < deps.length; i++) {\n      deps[i].w |= trackOpBit;\n    }\n  }\n};\nconst finalizeDepMarkers = (effect) => {\n  const { deps } = effect;\n  if (deps.length) {\n    let ptr = 0;\n    for (let i = 0; i < deps.length; i++) {\n      const dep = deps[i];\n      if (wasTracked(dep) && !newTracked(dep)) {\n        dep.delete(effect);\n      } else {\n        deps[ptr++] = dep;\n      }\n      dep.w &= ~trackOpBit;\n      dep.n &= ~trackOpBit;\n    }\n    deps.length = ptr;\n  }\n};\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(\"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(\"\");\nclass ReactiveEffect {\n  constructor(fn, scheduler = null, scope) {\n    this.fn = fn;\n    this.scheduler = scheduler;\n    this.active = true;\n    this.deps = [];\n    this.parent = void 0;\n    recordEffectScope(this, scope);\n  }\n  run() {\n    if (!this.active) {\n      return this.fn();\n    }\n    let parent = activeEffect;\n    let lastShouldTrack = shouldTrack;\n    while (parent) {\n      if (parent === this) {\n        return;\n      }\n      parent = parent.parent;\n    }\n    try {\n      this.parent = activeEffect;\n      activeEffect = this;\n      shouldTrack = true;\n      trackOpBit = 1 << ++effectTrackDepth;\n      if (effectTrackDepth <= maxMarkerBits) {\n        initDepMarkers(this);\n      } else {\n        cleanupEffect(this);\n      }\n      return this.fn();\n    } finally {\n      if (effectTrackDepth <= maxMarkerBits) {\n        finalizeDepMarkers(this);\n      }\n      trackOpBit = 1 << --effectTrackDepth;\n      activeEffect = this.parent;\n      shouldTrack = lastShouldTrack;\n      this.parent = void 0;\n      if (this.deferStop) {\n        this.stop();\n      }\n    }\n  }\n  stop() {\n    if (activeEffect === this) {\n      this.deferStop = true;\n    } else if (this.active) {\n      cleanupEffect(this);\n      if (this.onStop) {\n        this.onStop();\n      }\n      this.active = false;\n    }\n  }\n}\nfunction cleanupEffect(effect) {\n  const { deps } = effect;\n  if (deps.length) {\n    for (let i = 0; i < deps.length; i++) {\n      deps[i].delete(effect);\n    }\n    deps.length = 0;\n  }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = false;\n}\nfunction resetTracking() {\n  const last = trackStack.pop();\n  shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n  if (shouldTrack && activeEffect) {\n    let depsMap = targetMap.get(target);\n    if (!depsMap) {\n      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n    }\n    let dep = depsMap.get(key);\n    if (!dep) {\n      depsMap.set(key, dep = createDep());\n    }\n    trackEffects(dep);\n  }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n  let shouldTrack2 = false;\n  if (effectTrackDepth <= maxMarkerBits) {\n    if (!newTracked(dep)) {\n      dep.n |= trackOpBit;\n      shouldTrack2 = !wasTracked(dep);\n    }\n  } else {\n    shouldTrack2 = !dep.has(activeEffect);\n  }\n  if (shouldTrack2) {\n    dep.add(activeEffect);\n    activeEffect.deps.push(dep);\n  }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n  const depsMap = targetMap.get(target);\n  if (!depsMap) {\n    return;\n  }\n  let deps = [];\n  if (type === \"clear\") {\n    deps = [...depsMap.values()];\n  } else if (key === \"length\" && isArray$2(target)) {\n    depsMap.forEach((dep, key2) => {\n      if (key2 === \"length\" || key2 >= newValue) {\n        deps.push(dep);\n      }\n    });\n  } else {\n    if (key !== void 0) {\n      deps.push(depsMap.get(key));\n    }\n    switch (type) {\n      case \"add\":\n        if (!isArray$2(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap$1(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        } else if (isIntegerKey(key)) {\n          deps.push(depsMap.get(\"length\"));\n        }\n        break;\n      case \"delete\":\n        if (!isArray$2(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap$1(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        }\n        break;\n      case \"set\":\n        if (isMap$1(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n        }\n        break;\n    }\n  }\n  if (deps.length === 1) {\n    if (deps[0]) {\n      {\n        triggerEffects(deps[0]);\n      }\n    }\n  } else {\n    const effects = [];\n    for (const dep of deps) {\n      if (dep) {\n        effects.push(...dep);\n      }\n    }\n    {\n      triggerEffects(createDep(effects));\n    }\n  }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n  const effects = isArray$2(dep) ? dep : [...dep];\n  for (const effect of effects) {\n    if (effect.computed) {\n      triggerEffect(effect);\n    }\n  }\n  for (const effect of effects) {\n    if (!effect.computed) {\n      triggerEffect(effect);\n    }\n  }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n  if (effect !== activeEffect || effect.allowRecurse) {\n    if (effect.scheduler) {\n      effect.scheduler();\n    } else {\n      effect.run();\n    }\n  }\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap$2(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n  const instrumentations = {};\n  [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      const arr = toRaw(this);\n      for (let i = 0, l = this.length; i < l; i++) {\n        track(arr, \"get\", i + \"\");\n      }\n      const res = arr[key](...args);\n      if (res === -1 || res === false) {\n        return arr[key](...args.map(toRaw));\n      } else {\n        return res;\n      }\n    };\n  });\n  [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      pauseTracking();\n      const res = toRaw(this)[key].apply(this, args);\n      resetTracking();\n      return res;\n    };\n  });\n  return instrumentations;\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n  return function get2(target, key, receiver) {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_isShallow\") {\n      return shallow;\n    } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n      return target;\n    }\n    const targetIsArray = isArray$2(target);\n    if (!isReadonly2 && targetIsArray && hasOwn$1(arrayInstrumentations, key)) {\n      return Reflect.get(arrayInstrumentations, key, receiver);\n    }\n    const res = Reflect.get(target, key, receiver);\n    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n      return res;\n    }\n    if (!isReadonly2) {\n      track(target, \"get\", key);\n    }\n    if (shallow) {\n      return res;\n    }\n    if (isRef(res)) {\n      return targetIsArray && isIntegerKey(key) ? res : res.value;\n    }\n    if (isObject$2(res)) {\n      return isReadonly2 ? readonly(res) : reactive(res);\n    }\n    return res;\n  };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n  return function set2(target, key, value, receiver) {\n    let oldValue = target[key];\n    if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n      return false;\n    }\n    if (!shallow && !isReadonly(value)) {\n      if (!isShallow(value)) {\n        value = toRaw(value);\n        oldValue = toRaw(oldValue);\n      }\n      if (!isArray$2(target) && isRef(oldValue) && !isRef(value)) {\n        oldValue.value = value;\n        return true;\n      }\n    }\n    const hadKey = isArray$2(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$1(target, key);\n    const result = Reflect.set(target, key, value, receiver);\n    if (target === toRaw(receiver)) {\n      if (!hadKey) {\n        trigger(target, \"add\", key, value);\n      } else if (hasChanged$1(value, oldValue)) {\n        trigger(target, \"set\", key, value);\n      }\n    }\n    return result;\n  };\n}\nfunction deleteProperty(target, key) {\n  const hadKey = hasOwn$1(target, key);\n  target[key];\n  const result = Reflect.deleteProperty(target, key);\n  if (result && hadKey) {\n    trigger(target, \"delete\", key, void 0);\n  }\n  return result;\n}\nfunction has(target, key) {\n  const result = Reflect.has(target, key);\n  if (!isSymbol(key) || !builtInSymbols.has(key)) {\n    track(target, \"has\", key);\n  }\n  return result;\n}\nfunction ownKeys(target) {\n  track(target, \"iterate\", isArray$2(target) ? \"length\" : ITERATE_KEY);\n  return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n  get: get$1,\n  set: set$1,\n  deleteProperty,\n  has,\n  ownKeys\n};\nconst readonlyHandlers = {\n  get: readonlyGet,\n  set(target, key) {\n    return true;\n  },\n  deleteProperty(target, key) {\n    return true;\n  }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend$2({}, mutableHandlers, {\n  get: shallowGet,\n  set: shallowSet\n});\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1$1(target, key, isReadonly2 = false, isShallow2 = false) {\n  target = target[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly2) {\n    if (key !== rawKey) {\n      track(rawTarget, \"get\", key);\n    }\n    track(rawTarget, \"get\", rawKey);\n  }\n  const { has: has2 } = getProto(rawTarget);\n  const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n  if (has2.call(rawTarget, key)) {\n    return wrap(target.get(key));\n  } else if (has2.call(rawTarget, rawKey)) {\n    return wrap(target.get(rawKey));\n  } else if (target !== rawTarget) {\n    target.get(key);\n  }\n}\nfunction has$1(key, isReadonly2 = false) {\n  const target = this[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly2) {\n    if (key !== rawKey) {\n      track(rawTarget, \"has\", key);\n    }\n    track(rawTarget, \"has\", rawKey);\n  }\n  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n  target = target[\"__v_raw\"];\n  !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n  return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const proto = getProto(target);\n  const hadKey = proto.has.call(target, value);\n  if (!hadKey) {\n    target.add(value);\n    trigger(target, \"add\", value, value);\n  }\n  return this;\n}\nfunction set$1$1(key, value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  }\n  const oldValue = get2.call(target, key);\n  target.set(key, value);\n  if (!hadKey) {\n    trigger(target, \"add\", key, value);\n  } else if (hasChanged$1(value, oldValue)) {\n    trigger(target, \"set\", key, value);\n  }\n  return this;\n}\nfunction deleteEntry(key) {\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  }\n  get2 ? get2.call(target, key) : void 0;\n  const result = target.delete(key);\n  if (hadKey) {\n    trigger(target, \"delete\", key, void 0);\n  }\n  return result;\n}\nfunction clear() {\n  const target = toRaw(this);\n  const hadItems = target.size !== 0;\n  const result = target.clear();\n  if (hadItems) {\n    trigger(target, \"clear\", void 0, void 0);\n  }\n  return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n  return function forEach(callback, thisArg) {\n    const observed = this;\n    const target = observed[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n    !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n    return target.forEach((value, key) => {\n      return callback.call(thisArg, wrap(value), wrap(key), observed);\n    });\n  };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n  return function(...args) {\n    const target = this[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const targetIsMap = isMap$1(rawTarget);\n    const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n    const isKeyOnly = method === \"keys\" && targetIsMap;\n    const innerIterator = target[method](...args);\n    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n    !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n    return {\n      next() {\n        const { value, done } = innerIterator.next();\n        return done ? { value, done } : {\n          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n          done\n        };\n      },\n      [Symbol.iterator]() {\n        return this;\n      }\n    };\n  };\n}\nfunction createReadonlyMethod(type) {\n  return function(...args) {\n    return type === \"delete\" ? false : this;\n  };\n}\nfunction createInstrumentations() {\n  const mutableInstrumentations2 = {\n    get(key) {\n      return get$1$1(this, key);\n    },\n    get size() {\n      return size(this);\n    },\n    has: has$1,\n    add,\n    set: set$1$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, false)\n  };\n  const shallowInstrumentations2 = {\n    get(key) {\n      return get$1$1(this, key, false, true);\n    },\n    get size() {\n      return size(this);\n    },\n    has: has$1,\n    add,\n    set: set$1$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, true)\n  };\n  const readonlyInstrumentations2 = {\n    get(key) {\n      return get$1$1(this, key, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has$1.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, false)\n  };\n  const shallowReadonlyInstrumentations2 = {\n    get(key) {\n      return get$1$1(this, key, true, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has$1.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, true)\n  };\n  const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n  iteratorMethods.forEach((method) => {\n    mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n    shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n    shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n  });\n  return [\n    mutableInstrumentations2,\n    readonlyInstrumentations2,\n    shallowInstrumentations2,\n    shallowReadonlyInstrumentations2\n  ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n  const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n  return (target, key, receiver) => {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_raw\") {\n      return target;\n    }\n    return Reflect.get(hasOwn$1(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n  };\n}\nconst mutableCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n  switch (rawType) {\n    case \"Object\":\n    case \"Array\":\n      return 1;\n    case \"Map\":\n    case \"Set\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return 2;\n    default:\n      return 0;\n  }\n}\nfunction getTargetType(value) {\n  return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n  if (isReadonly(target)) {\n    return target;\n  }\n  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction shallowReactive(target) {\n  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\nfunction readonly(target) {\n  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n  if (!isObject$2(target)) {\n    return target;\n  }\n  if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n    return target;\n  }\n  const existingProxy = proxyMap.get(target);\n  if (existingProxy) {\n    return existingProxy;\n  }\n  const targetType = getTargetType(target);\n  if (targetType === 0) {\n    return target;\n  }\n  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n  proxyMap.set(target, proxy);\n  return proxy;\n}\nfunction isReactive(value) {\n  if (isReadonly(value)) {\n    return isReactive(value[\"__v_raw\"]);\n  }\n  return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n  return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n  return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n  return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n  const raw = observed && observed[\"__v_raw\"];\n  return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n  def$1(value, \"__v_skip\", true);\n  return value;\n}\nconst toReactive = (value) => isObject$2(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject$2(value) ? readonly(value) : value;\nfunction trackRefValue(ref) {\n  if (shouldTrack && activeEffect) {\n    ref = toRaw(ref);\n    {\n      trackEffects(ref.dep || (ref.dep = createDep()));\n    }\n  }\n}\nfunction triggerRefValue(ref, newVal) {\n  ref = toRaw(ref);\n  if (ref.dep) {\n    {\n      triggerEffects(ref.dep);\n    }\n  }\n}\nfunction isRef(r) {\n  return !!(r && r.__v_isRef === true);\n}\nfunction unref(ref) {\n  return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n  set: (target, key, value, receiver) => {\n    const oldValue = target[key];\n    if (isRef(oldValue) && !isRef(value)) {\n      oldValue.value = value;\n      return true;\n    } else {\n      return Reflect.set(target, key, value, receiver);\n    }\n  }\n};\nfunction proxyRefs(objectWithRefs) {\n  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass ComputedRefImpl {\n  constructor(getter, _setter, isReadonly2, isSSR) {\n    this._setter = _setter;\n    this.dep = void 0;\n    this.__v_isRef = true;\n    this._dirty = true;\n    this.effect = new ReactiveEffect(getter, () => {\n      if (!this._dirty) {\n        this._dirty = true;\n        triggerRefValue(this);\n      }\n    });\n    this.effect.computed = this;\n    this.effect.active = this._cacheable = !isSSR;\n    this[\"__v_isReadonly\"] = isReadonly2;\n  }\n  get value() {\n    const self2 = toRaw(this);\n    trackRefValue(self2);\n    if (self2._dirty || !self2._cacheable) {\n      self2._dirty = false;\n      self2._value = self2.effect.run();\n    }\n    return self2._value;\n  }\n  set value(newValue) {\n    this._setter(newValue);\n  }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n  let getter;\n  let setter;\n  const onlyGetter = isFunction$2(getterOrOptions);\n  if (onlyGetter) {\n    getter = getterOrOptions;\n    setter = NOOP$1;\n  } else {\n    getter = getterOrOptions.get;\n    setter = getterOrOptions.set;\n  }\n  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n  return cRef;\n}\nfunction makeMap$1(str, expectsLowerCase) {\n  const map = /* @__PURE__ */ Object.create(null);\n  const list2 = str.split(\",\");\n  for (let i = 0; i < list2.length; i++) {\n    map[list2[i]] = true;\n  }\n  return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nfunction normalizeStyle(value) {\n  if (isArray$1(value)) {\n    const res = {};\n    for (let i = 0; i < value.length; i++) {\n      const item = value[i];\n      const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);\n      if (normalized) {\n        for (const key in normalized) {\n          res[key] = normalized[key];\n        }\n      }\n    }\n    return res;\n  } else if (isString$1(value)) {\n    return value;\n  } else if (isObject$1(value)) {\n    return value;\n  }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n  const ret = {};\n  cssText.split(listDelimiterRE).forEach((item) => {\n    if (item) {\n      const tmp = item.split(propertyDelimiterRE);\n      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return ret;\n}\nfunction normalizeClass(value) {\n  let res = \"\";\n  if (isString$1(value)) {\n    res = value;\n  } else if (isArray$1(value)) {\n    for (let i = 0; i < value.length; i++) {\n      const normalized = normalizeClass(value[i]);\n      if (normalized) {\n        res += normalized + \" \";\n      }\n    }\n  } else if (isObject$1(value)) {\n    for (const name in value) {\n      if (value[name]) {\n        res += name + \" \";\n      }\n    }\n  }\n  return res.trim();\n}\nfunction normalizeProps(props) {\n  if (!props)\n    return null;\n  let { class: klass, style } = props;\n  if (klass && !isString$1(klass)) {\n    props.class = normalizeClass(klass);\n  }\n  if (style) {\n    props.style = normalizeStyle(style);\n  }\n  return props;\n}\nconst toDisplayString = (val) => {\n  return isString$1(val) ? val : val == null ? \"\" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n  if (val && val.__v_isRef) {\n    return replacer(_key, val.value);\n  } else if (isMap(val)) {\n    return {\n      [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n        entries[`${key} =>`] = val2;\n        return entries;\n      }, {})\n    };\n  } else if (isSet(val)) {\n    return {\n      [`Set(${val.size})`]: [...val.values()]\n    };\n  } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject(val)) {\n    return String(val);\n  }\n  return val;\n};\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE$1 = /^on[^a-z]/;\nconst isOn$1 = (key) => onRE$1.test(key);\nconst isModelListener$1 = (key) => key.startsWith(\"onUpdate:\");\nconst extend$1 = Object.assign;\nconst remove = (arr, el) => {\n  const i = arr.indexOf(el);\n  if (i > -1) {\n    arr.splice(i, 1);\n  }\n};\nconst hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$2.call(val, key);\nconst isArray$1 = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction$1 = (val) => typeof val === \"function\";\nconst isString$1 = (val) => typeof val === \"string\";\nconst isObject$1 = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n  return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isReservedProp = /* @__PURE__ */ makeMap$1(\n  \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst cacheStringFunction$1 = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE$1 = /-(\\w)/g;\nconst camelize$1 = cacheStringFunction$1((str) => {\n  return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE$1 = /\\B([A-Z])/g;\nconst hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, \"-$1\").toLowerCase());\nconst capitalize$1 = cacheStringFunction$1((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toHandlerKey = cacheStringFunction$1((str) => str ? `on${capitalize$1(str)}` : ``);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n  for (let i = 0; i < fns.length; i++) {\n    fns[i](arg);\n  }\n};\nconst def = (obj, key, value) => {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    enumerable: false,\n    value\n  });\n};\nconst toNumber$1 = (val) => {\n  const n = parseFloat(val);\n  return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n  return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction callWithErrorHandling(fn, instance2, type, args) {\n  let res;\n  try {\n    res = args ? fn(...args) : fn();\n  } catch (err) {\n    handleError(err, instance2, type);\n  }\n  return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance2, type, args) {\n  if (isFunction$1(fn)) {\n    const res = callWithErrorHandling(fn, instance2, type, args);\n    if (res && isPromise(res)) {\n      res.catch((err) => {\n        handleError(err, instance2, type);\n      });\n    }\n    return res;\n  }\n  const values = [];\n  for (let i = 0; i < fn.length; i++) {\n    values.push(callWithAsyncErrorHandling(fn[i], instance2, type, args));\n  }\n  return values;\n}\nfunction handleError(err, instance2, type, throwInDev = true) {\n  const contextVNode = instance2 ? instance2.vnode : null;\n  if (instance2) {\n    let cur = instance2.parent;\n    const exposedInstance = instance2.proxy;\n    const errorInfo = type;\n    while (cur) {\n      const errorCapturedHooks = cur.ec;\n      if (errorCapturedHooks) {\n        for (let i = 0; i < errorCapturedHooks.length; i++) {\n          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n            return;\n          }\n        }\n      }\n      cur = cur.parent;\n    }\n    const appErrorHandler = instance2.appContext.config.errorHandler;\n    if (appErrorHandler) {\n      callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]);\n      return;\n    }\n  }\n  logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n  {\n    console.error(err);\n  }\n}\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPreFlushCbs = [];\nlet activePreFlushCbs = null;\nlet preFlushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nlet currentPreFlushParentJob = null;\nfunction nextTick(fn) {\n  const p2 = currentFlushPromise || resolvedPromise;\n  return fn ? p2.then(this ? fn.bind(this) : fn) : p2;\n}\nfunction findInsertionIndex(id) {\n  let start = flushIndex + 1;\n  let end = queue.length;\n  while (start < end) {\n    const middle = start + end >>> 1;\n    const middleJobId = getId(queue[middle]);\n    middleJobId < id ? start = middle + 1 : end = middle;\n  }\n  return start;\n}\nfunction queueJob(job) {\n  if ((!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && job !== currentPreFlushParentJob) {\n    if (job.id == null) {\n      queue.push(job);\n    } else {\n      queue.splice(findInsertionIndex(job.id), 0, job);\n    }\n    queueFlush();\n  }\n}\nfunction queueFlush() {\n  if (!isFlushing && !isFlushPending) {\n    isFlushPending = true;\n    currentFlushPromise = resolvedPromise.then(flushJobs);\n  }\n}\nfunction invalidateJob(job) {\n  const i = queue.indexOf(job);\n  if (i > flushIndex) {\n    queue.splice(i, 1);\n  }\n}\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\n  if (!isArray$1(cb)) {\n    if (!activeQueue || !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\n      pendingQueue.push(cb);\n    }\n  } else {\n    pendingQueue.push(...cb);\n  }\n  queueFlush();\n}\nfunction queuePreFlushCb(cb) {\n  queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\n}\nfunction queuePostFlushCb(cb) {\n  queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\n}\nfunction flushPreFlushCbs(seen, parentJob = null) {\n  if (pendingPreFlushCbs.length) {\n    currentPreFlushParentJob = parentJob;\n    activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\n    pendingPreFlushCbs.length = 0;\n    for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\n      activePreFlushCbs[preFlushIndex]();\n    }\n    activePreFlushCbs = null;\n    preFlushIndex = 0;\n    currentPreFlushParentJob = null;\n    flushPreFlushCbs(seen, parentJob);\n  }\n}\nfunction flushPostFlushCbs(seen) {\n  flushPreFlushCbs();\n  if (pendingPostFlushCbs.length) {\n    const deduped = [...new Set(pendingPostFlushCbs)];\n    pendingPostFlushCbs.length = 0;\n    if (activePostFlushCbs) {\n      activePostFlushCbs.push(...deduped);\n      return;\n    }\n    activePostFlushCbs = deduped;\n    activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n      activePostFlushCbs[postFlushIndex]();\n    }\n    activePostFlushCbs = null;\n    postFlushIndex = 0;\n  }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nfunction flushJobs(seen) {\n  isFlushPending = false;\n  isFlushing = true;\n  flushPreFlushCbs(seen);\n  queue.sort((a, b) => getId(a) - getId(b));\n  const check = NOOP;\n  try {\n    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n      const job = queue[flushIndex];\n      if (job && job.active !== false) {\n        if (false)\n          ;\n        callWithErrorHandling(job, null, 14);\n      }\n    }\n  } finally {\n    flushIndex = 0;\n    queue.length = 0;\n    flushPostFlushCbs();\n    isFlushing = false;\n    currentFlushPromise = null;\n    if (queue.length || pendingPreFlushCbs.length || pendingPostFlushCbs.length) {\n      flushJobs(seen);\n    }\n  }\n}\nfunction emit$1(instance2, event, ...rawArgs) {\n  if (instance2.isUnmounted)\n    return;\n  const props = instance2.vnode.props || EMPTY_OBJ;\n  let args = rawArgs;\n  const isModelListener2 = event.startsWith(\"update:\");\n  const modelArg = isModelListener2 && event.slice(7);\n  if (modelArg && modelArg in props) {\n    const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n    const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n    if (trim) {\n      args = rawArgs.map((a) => a.trim());\n    }\n    if (number) {\n      args = rawArgs.map(toNumber$1);\n    }\n  }\n  let handlerName;\n  let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize$1(event))];\n  if (!handler && isModelListener2) {\n    handler = props[handlerName = toHandlerKey(hyphenate$1(event))];\n  }\n  if (handler) {\n    callWithAsyncErrorHandling(handler, instance2, 6, args);\n  }\n  const onceHandler = props[handlerName + `Once`];\n  if (onceHandler) {\n    if (!instance2.emitted) {\n      instance2.emitted = {};\n    } else if (instance2.emitted[handlerName]) {\n      return;\n    }\n    instance2.emitted[handlerName] = true;\n    callWithAsyncErrorHandling(onceHandler, instance2, 6, args);\n  }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.emitsCache;\n  const cached = cache.get(comp);\n  if (cached !== void 0) {\n    return cached;\n  }\n  const raw = comp.emits;\n  let normalized = {};\n  let hasExtends = false;\n  if (!isFunction$1(comp)) {\n    const extendEmits = (raw2) => {\n      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n      if (normalizedFromExtend) {\n        hasExtends = true;\n        extend$1(normalized, normalizedFromExtend);\n      }\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendEmits);\n    }\n    if (comp.extends) {\n      extendEmits(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendEmits);\n    }\n  }\n  if (!raw && !hasExtends) {\n    cache.set(comp, null);\n    return null;\n  }\n  if (isArray$1(raw)) {\n    raw.forEach((key) => normalized[key] = null);\n  } else {\n    extend$1(normalized, raw);\n  }\n  cache.set(comp, normalized);\n  return normalized;\n}\nfunction isEmitListener(options, key) {\n  if (!options || !isOn$1(key)) {\n    return false;\n  }\n  key = key.slice(2).replace(/Once$/, \"\");\n  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate$1(key)) || hasOwn(options, key);\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance2) {\n  const prev = currentRenderingInstance;\n  currentRenderingInstance = instance2;\n  currentScopeId = instance2 && instance2.type.__scopeId || null;\n  return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n  if (!ctx)\n    return fn;\n  if (fn._n) {\n    return fn;\n  }\n  const renderFnWithContext = (...args) => {\n    if (renderFnWithContext._d) {\n      setBlockTracking(-1);\n    }\n    const prevInstance = setCurrentRenderingInstance(ctx);\n    const res = fn(...args);\n    setCurrentRenderingInstance(prevInstance);\n    if (renderFnWithContext._d) {\n      setBlockTracking(1);\n    }\n    return res;\n  };\n  renderFnWithContext._n = true;\n  renderFnWithContext._c = true;\n  renderFnWithContext._d = true;\n  return renderFnWithContext;\n}\nfunction markAttrsAccessed() {\n}\nfunction renderComponentRoot(instance2) {\n  const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render: render2, renderCache, data, setupState, ctx, inheritAttrs } = instance2;\n  let result;\n  let fallthroughAttrs;\n  const prev = setCurrentRenderingInstance(instance2);\n  try {\n    if (vnode.shapeFlag & 4) {\n      const proxyToUse = withProxy || proxy;\n      result = normalizeVNode(render2.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n      fallthroughAttrs = attrs;\n    } else {\n      const render3 = Component;\n      if (false)\n        ;\n      result = normalizeVNode(render3.length > 1 ? render3(props, false ? {\n        get attrs() {\n          markAttrsAccessed();\n          return attrs;\n        },\n        slots,\n        emit\n      } : { attrs, slots, emit }) : render3(props, null));\n      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n    }\n  } catch (err) {\n    blockStack.length = 0;\n    handleError(err, instance2, 1);\n    result = createVNode(Comment);\n  }\n  let root = result;\n  if (fallthroughAttrs && inheritAttrs !== false) {\n    const keys = Object.keys(fallthroughAttrs);\n    const { shapeFlag } = root;\n    if (keys.length) {\n      if (shapeFlag & (1 | 6)) {\n        if (propsOptions && keys.some(isModelListener$1)) {\n          fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n        }\n        root = cloneVNode(root, fallthroughAttrs);\n      }\n    }\n  }\n  if (vnode.dirs) {\n    root = cloneVNode(root);\n    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n  }\n  if (vnode.transition) {\n    root.transition = vnode.transition;\n  }\n  {\n    result = root;\n  }\n  setCurrentRenderingInstance(prev);\n  return result;\n}\nconst getFunctionalFallthrough = (attrs) => {\n  let res;\n  for (const key in attrs) {\n    if (key === \"class\" || key === \"style\" || isOn$1(key)) {\n      (res || (res = {}))[key] = attrs[key];\n    }\n  }\n  return res;\n};\nconst filterModelListeners = (attrs, props) => {\n  const res = {};\n  for (const key in attrs) {\n    if (!isModelListener$1(key) || !(key.slice(9) in props)) {\n      res[key] = attrs[key];\n    }\n  }\n  return res;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n  const { props: prevProps, children: prevChildren, component } = prevVNode;\n  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n  const emits = component.emitsOptions;\n  if (nextVNode.dirs || nextVNode.transition) {\n    return true;\n  }\n  if (optimized && patchFlag >= 0) {\n    if (patchFlag & 1024) {\n      return true;\n    }\n    if (patchFlag & 16) {\n      if (!prevProps) {\n        return !!nextProps;\n      }\n      return hasPropsChanged(prevProps, nextProps, emits);\n    } else if (patchFlag & 8) {\n      const dynamicProps = nextVNode.dynamicProps;\n      for (let i = 0; i < dynamicProps.length; i++) {\n        const key = dynamicProps[i];\n        if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n          return true;\n        }\n      }\n    }\n  } else {\n    if (prevChildren || nextChildren) {\n      if (!nextChildren || !nextChildren.$stable) {\n        return true;\n      }\n    }\n    if (prevProps === nextProps) {\n      return false;\n    }\n    if (!prevProps) {\n      return !!nextProps;\n    }\n    if (!nextProps) {\n      return true;\n    }\n    return hasPropsChanged(prevProps, nextProps, emits);\n  }\n  return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n  const nextKeys = Object.keys(nextProps);\n  if (nextKeys.length !== Object.keys(prevProps).length) {\n    return true;\n  }\n  for (let i = 0; i < nextKeys.length; i++) {\n    const key = nextKeys[i];\n    if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n  while (parent && parent.subTree === vnode) {\n    (vnode = parent.vnode).el = el;\n    parent = parent.parent;\n  }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n  if (suspense && suspense.pendingBranch) {\n    if (isArray$1(fn)) {\n      suspense.effects.push(...fn);\n    } else {\n      suspense.effects.push(fn);\n    }\n  } else {\n    queuePostFlushCb(fn);\n  }\n}\nfunction provide(key, value) {\n  if (!currentInstance)\n    ;\n  else {\n    let provides = currentInstance.provides;\n    const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n    if (parentProvides === provides) {\n      provides = currentInstance.provides = Object.create(parentProvides);\n    }\n    provides[key] = value;\n  }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n  const instance2 = currentInstance || currentRenderingInstance;\n  if (instance2) {\n    const provides = instance2.parent == null ? instance2.vnode.appContext && instance2.vnode.appContext.provides : instance2.parent.provides;\n    if (provides && key in provides) {\n      return provides[key];\n    } else if (arguments.length > 1) {\n      return treatDefaultAsFactory && isFunction$1(defaultValue) ? defaultValue.call(instance2.proxy) : defaultValue;\n    } else\n      ;\n  }\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n  return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush: flush2, onTrack, onTrigger } = EMPTY_OBJ) {\n  const instance2 = currentInstance;\n  let getter;\n  let forceTrigger = false;\n  let isMultiSource = false;\n  if (isRef(source)) {\n    getter = () => source.value;\n    forceTrigger = isShallow(source);\n  } else if (isReactive(source)) {\n    getter = () => source;\n    deep = true;\n  } else if (isArray$1(source)) {\n    isMultiSource = true;\n    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n    getter = () => source.map((s) => {\n      if (isRef(s)) {\n        return s.value;\n      } else if (isReactive(s)) {\n        return traverse(s);\n      } else if (isFunction$1(s)) {\n        return callWithErrorHandling(s, instance2, 2);\n      } else\n        ;\n    });\n  } else if (isFunction$1(source)) {\n    if (cb) {\n      getter = () => callWithErrorHandling(source, instance2, 2);\n    } else {\n      getter = () => {\n        if (instance2 && instance2.isUnmounted) {\n          return;\n        }\n        if (cleanup) {\n          cleanup();\n        }\n        return callWithAsyncErrorHandling(source, instance2, 3, [onCleanup]);\n      };\n    }\n  } else {\n    getter = NOOP;\n  }\n  if (cb && deep) {\n    const baseGetter = getter;\n    getter = () => traverse(baseGetter());\n  }\n  let cleanup;\n  let onCleanup = (fn) => {\n    cleanup = effect.onStop = () => {\n      callWithErrorHandling(fn, instance2, 4);\n    };\n  };\n  if (isInSSRComponentSetup) {\n    onCleanup = NOOP;\n    if (!cb) {\n      getter();\n    } else if (immediate) {\n      callWithAsyncErrorHandling(cb, instance2, 3, [\n        getter(),\n        isMultiSource ? [] : void 0,\n        onCleanup\n      ]);\n    }\n    return NOOP;\n  }\n  let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n  const job = () => {\n    if (!effect.active) {\n      return;\n    }\n    if (cb) {\n      const newValue = effect.run();\n      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n        if (cleanup) {\n          cleanup();\n        }\n        callWithAsyncErrorHandling(cb, instance2, 3, [\n          newValue,\n          oldValue === INITIAL_WATCHER_VALUE ? void 0 : oldValue,\n          onCleanup\n        ]);\n        oldValue = newValue;\n      }\n    } else {\n      effect.run();\n    }\n  };\n  job.allowRecurse = !!cb;\n  let scheduler;\n  if (flush2 === \"sync\") {\n    scheduler = job;\n  } else if (flush2 === \"post\") {\n    scheduler = () => queuePostRenderEffect(job, instance2 && instance2.suspense);\n  } else {\n    scheduler = () => queuePreFlushCb(job);\n  }\n  const effect = new ReactiveEffect(getter, scheduler);\n  if (cb) {\n    if (immediate) {\n      job();\n    } else {\n      oldValue = effect.run();\n    }\n  } else if (flush2 === \"post\") {\n    queuePostRenderEffect(effect.run.bind(effect), instance2 && instance2.suspense);\n  } else {\n    effect.run();\n  }\n  return () => {\n    effect.stop();\n    if (instance2 && instance2.scope) {\n      remove(instance2.scope.effects, effect);\n    }\n  };\n}\nfunction instanceWatch(source, value, options) {\n  const publicThis = this.proxy;\n  const getter = isString$1(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n  let cb;\n  if (isFunction$1(value)) {\n    cb = value;\n  } else {\n    cb = value.handler;\n    options = value;\n  }\n  const cur = currentInstance;\n  setCurrentInstance(this);\n  const res = doWatch(getter, cb.bind(publicThis), options);\n  if (cur) {\n    setCurrentInstance(cur);\n  } else {\n    unsetCurrentInstance();\n  }\n  return res;\n}\nfunction createPathGetter(ctx, path2) {\n  const segments = path2.split(\".\");\n  return () => {\n    let cur = ctx;\n    for (let i = 0; i < segments.length && cur; i++) {\n      cur = cur[segments[i]];\n    }\n    return cur;\n  };\n}\nfunction traverse(value, seen) {\n  if (!isObject$1(value) || value[\"__v_skip\"]) {\n    return value;\n  }\n  seen = seen || /* @__PURE__ */ new Set();\n  if (seen.has(value)) {\n    return value;\n  }\n  seen.add(value);\n  if (isRef(value)) {\n    traverse(value.value, seen);\n  } else if (isArray$1(value)) {\n    for (let i = 0; i < value.length; i++) {\n      traverse(value[i], seen);\n    }\n  } else if (isSet(value) || isMap(value)) {\n    value.forEach((v) => {\n      traverse(v, seen);\n    });\n  } else if (isPlainObject(value)) {\n    for (const key in value) {\n      traverse(value[key], seen);\n    }\n  }\n  return value;\n}\nfunction useTransitionState() {\n  const state = {\n    isMounted: false,\n    isLeaving: false,\n    isUnmounting: false,\n    leavingVNodes: /* @__PURE__ */ new Map()\n  };\n  onMounted(() => {\n    state.isMounted = true;\n  });\n  onBeforeUnmount(() => {\n    state.isUnmounting = true;\n  });\n  return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n  name: `BaseTransition`,\n  props: {\n    mode: String,\n    appear: Boolean,\n    persisted: Boolean,\n    onBeforeEnter: TransitionHookValidator,\n    onEnter: TransitionHookValidator,\n    onAfterEnter: TransitionHookValidator,\n    onEnterCancelled: TransitionHookValidator,\n    onBeforeLeave: TransitionHookValidator,\n    onLeave: TransitionHookValidator,\n    onAfterLeave: TransitionHookValidator,\n    onLeaveCancelled: TransitionHookValidator,\n    onBeforeAppear: TransitionHookValidator,\n    onAppear: TransitionHookValidator,\n    onAfterAppear: TransitionHookValidator,\n    onAppearCancelled: TransitionHookValidator\n  },\n  setup(props, { slots }) {\n    const instance2 = getCurrentInstance();\n    const state = useTransitionState();\n    let prevTransitionKey;\n    return () => {\n      const children = slots.default && getTransitionRawChildren(slots.default(), true);\n      if (!children || !children.length) {\n        return;\n      }\n      let child = children[0];\n      if (children.length > 1) {\n        for (const c of children) {\n          if (c.type !== Comment) {\n            child = c;\n            break;\n          }\n        }\n      }\n      const rawProps = toRaw(props);\n      const { mode } = rawProps;\n      if (state.isLeaving) {\n        return emptyPlaceholder(child);\n      }\n      const innerChild = getKeepAliveChild(child);\n      if (!innerChild) {\n        return emptyPlaceholder(child);\n      }\n      const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance2);\n      setTransitionHooks(innerChild, enterHooks);\n      const oldChild = instance2.subTree;\n      const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n      let transitionKeyChanged = false;\n      const { getTransitionKey } = innerChild.type;\n      if (getTransitionKey) {\n        const key = getTransitionKey();\n        if (prevTransitionKey === void 0) {\n          prevTransitionKey = key;\n        } else if (key !== prevTransitionKey) {\n          prevTransitionKey = key;\n          transitionKeyChanged = true;\n        }\n      }\n      if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n        const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance2);\n        setTransitionHooks(oldInnerChild, leavingHooks);\n        if (mode === \"out-in\") {\n          state.isLeaving = true;\n          leavingHooks.afterLeave = () => {\n            state.isLeaving = false;\n            instance2.update();\n          };\n          return emptyPlaceholder(child);\n        } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n            const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n            el._leaveCb = () => {\n              earlyRemove();\n              el._leaveCb = void 0;\n              delete enterHooks.delayedLeave;\n            };\n            enterHooks.delayedLeave = delayedLeave;\n          };\n        }\n      }\n      return child;\n    };\n  }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n  const { leavingVNodes } = state;\n  let leavingVNodesCache = leavingVNodes.get(vnode.type);\n  if (!leavingVNodesCache) {\n    leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n    leavingVNodes.set(vnode.type, leavingVNodesCache);\n  }\n  return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance2) {\n  const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n  const key = String(vnode.key);\n  const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n  const callHook2 = (hook, args) => {\n    hook && callWithAsyncErrorHandling(hook, instance2, 9, args);\n  };\n  const callAsyncHook = (hook, args) => {\n    const done = args[1];\n    callHook2(hook, args);\n    if (isArray$1(hook)) {\n      if (hook.every((hook2) => hook2.length <= 1))\n        done();\n    } else if (hook.length <= 1) {\n      done();\n    }\n  };\n  const hooks = {\n    mode,\n    persisted,\n    beforeEnter(el) {\n      let hook = onBeforeEnter;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onBeforeAppear || onBeforeEnter;\n        } else {\n          return;\n        }\n      }\n      if (el._leaveCb) {\n        el._leaveCb(true);\n      }\n      const leavingVNode = leavingVNodesCache[key];\n      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n        leavingVNode.el._leaveCb();\n      }\n      callHook2(hook, [el]);\n    },\n    enter(el) {\n      let hook = onEnter;\n      let afterHook = onAfterEnter;\n      let cancelHook = onEnterCancelled;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onAppear || onEnter;\n          afterHook = onAfterAppear || onAfterEnter;\n          cancelHook = onAppearCancelled || onEnterCancelled;\n        } else {\n          return;\n        }\n      }\n      let called = false;\n      const done = el._enterCb = (cancelled) => {\n        if (called)\n          return;\n        called = true;\n        if (cancelled) {\n          callHook2(cancelHook, [el]);\n        } else {\n          callHook2(afterHook, [el]);\n        }\n        if (hooks.delayedLeave) {\n          hooks.delayedLeave();\n        }\n        el._enterCb = void 0;\n      };\n      if (hook) {\n        callAsyncHook(hook, [el, done]);\n      } else {\n        done();\n      }\n    },\n    leave(el, remove2) {\n      const key2 = String(vnode.key);\n      if (el._enterCb) {\n        el._enterCb(true);\n      }\n      if (state.isUnmounting) {\n        return remove2();\n      }\n      callHook2(onBeforeLeave, [el]);\n      let called = false;\n      const done = el._leaveCb = (cancelled) => {\n        if (called)\n          return;\n        called = true;\n        remove2();\n        if (cancelled) {\n          callHook2(onLeaveCancelled, [el]);\n        } else {\n          callHook2(onAfterLeave, [el]);\n        }\n        el._leaveCb = void 0;\n        if (leavingVNodesCache[key2] === vnode) {\n          delete leavingVNodesCache[key2];\n        }\n      };\n      leavingVNodesCache[key2] = vnode;\n      if (onLeave) {\n        callAsyncHook(onLeave, [el, done]);\n      } else {\n        done();\n      }\n    },\n    clone(vnode2) {\n      return resolveTransitionHooks(vnode2, props, state, instance2);\n    }\n  };\n  return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n  if (isKeepAlive(vnode)) {\n    vnode = cloneVNode(vnode);\n    vnode.children = null;\n    return vnode;\n  }\n}\nfunction getKeepAliveChild(vnode) {\n  return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n  if (vnode.shapeFlag & 6 && vnode.component) {\n    setTransitionHooks(vnode.component.subTree, hooks);\n  } else if (vnode.shapeFlag & 128) {\n    vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n  } else {\n    vnode.transition = hooks;\n  }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n  let ret = [];\n  let keyedFragmentCount = 0;\n  for (let i = 0; i < children.length; i++) {\n    let child = children[i];\n    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n    if (child.type === Fragment) {\n      if (child.patchFlag & 128)\n        keyedFragmentCount++;\n      ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n    } else if (keepComment || child.type !== Comment) {\n      ret.push(key != null ? cloneVNode(child, { key }) : child);\n    }\n  }\n  if (keyedFragmentCount > 1) {\n    for (let i = 0; i < ret.length; i++) {\n      ret[i].patchFlag = -2;\n    }\n  }\n  return ret;\n}\nfunction defineComponent(options) {\n  return isFunction$1(options) ? { setup: options, name: options.name } : options;\n}\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n  registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n  registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n  const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n    let current = target;\n    while (current) {\n      if (current.isDeactivated) {\n        return;\n      }\n      current = current.parent;\n    }\n    return hook();\n  });\n  injectHook(type, wrappedHook, target);\n  if (target) {\n    let current = target.parent;\n    while (current && current.parent) {\n      if (isKeepAlive(current.parent.vnode)) {\n        injectToKeepAliveRoot(wrappedHook, type, target, current);\n      }\n      current = current.parent;\n    }\n  }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n  const injected = injectHook(type, hook, keepAliveRoot, true);\n  onUnmounted(() => {\n    remove(keepAliveRoot[type], injected);\n  }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n  if (target) {\n    const hooks = target[type] || (target[type] = []);\n    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n      if (target.isUnmounted) {\n        return;\n      }\n      pauseTracking();\n      setCurrentInstance(target);\n      const res = callWithAsyncErrorHandling(hook, target, type, args);\n      unsetCurrentInstance();\n      resetTracking();\n      return res;\n    });\n    if (prepend) {\n      hooks.unshift(wrappedHook);\n    } else {\n      hooks.push(wrappedHook);\n    }\n    return wrappedHook;\n  }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, hook, target);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n  injectHook(\"ec\", hook, target);\n}\nfunction withDirectives(vnode, directives) {\n  const internalInstance = currentRenderingInstance;\n  if (internalInstance === null) {\n    return vnode;\n  }\n  const instance2 = getExposeProxy(internalInstance) || internalInstance.proxy;\n  const bindings = vnode.dirs || (vnode.dirs = []);\n  for (let i = 0; i < directives.length; i++) {\n    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n    if (isFunction$1(dir)) {\n      dir = {\n        mounted: dir,\n        updated: dir\n      };\n    }\n    if (dir.deep) {\n      traverse(value);\n    }\n    bindings.push({\n      dir,\n      instance: instance2,\n      value,\n      oldValue: void 0,\n      arg,\n      modifiers\n    });\n  }\n  return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance2, name) {\n  const bindings = vnode.dirs;\n  const oldBindings = prevVNode && prevVNode.dirs;\n  for (let i = 0; i < bindings.length; i++) {\n    const binding = bindings[i];\n    if (oldBindings) {\n      binding.oldValue = oldBindings[i].value;\n    }\n    let hook = binding.dir[name];\n    if (hook) {\n      pauseTracking();\n      callWithAsyncErrorHandling(hook, instance2, 8, [\n        vnode.el,\n        binding,\n        vnode,\n        prevVNode\n      ]);\n      resetTracking();\n    }\n  }\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\nfunction resolveDynamicComponent(component) {\n  if (isString$1(component)) {\n    return resolveAsset(COMPONENTS, component, false) || component;\n  } else {\n    return component || NULL_DYNAMIC_COMPONENT;\n  }\n}\nfunction resolveDirective(name) {\n  return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n  const instance2 = currentRenderingInstance || currentInstance;\n  if (instance2) {\n    const Component = instance2.type;\n    if (type === COMPONENTS) {\n      const selfName = getComponentName(Component, false);\n      if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize$1(camelize$1(name)))) {\n        return Component;\n      }\n    }\n    const res = resolve(instance2[type] || Component[type], name) || resolve(instance2.appContext[type], name);\n    if (!res && maybeSelfReference) {\n      return Component;\n    }\n    return res;\n  }\n}\nfunction resolve(registry, name) {\n  return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize$1(camelize$1(name))]);\n}\nfunction renderList(source, renderItem, cache, index) {\n  let ret;\n  const cached = cache && cache[index];\n  if (isArray$1(source) || isString$1(source)) {\n    ret = new Array(source.length);\n    for (let i = 0, l = source.length; i < l; i++) {\n      ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n    }\n  } else if (typeof source === \"number\") {\n    ret = new Array(source);\n    for (let i = 0; i < source; i++) {\n      ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n    }\n  } else if (isObject$1(source)) {\n    if (source[Symbol.iterator]) {\n      ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));\n    } else {\n      const keys = Object.keys(source);\n      ret = new Array(keys.length);\n      for (let i = 0, l = keys.length; i < l; i++) {\n        const key = keys[i];\n        ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n      }\n    }\n  } else {\n    ret = [];\n  }\n  if (cache) {\n    cache[index] = ret;\n  }\n  return ret;\n}\nfunction createSlots(slots, dynamicSlots) {\n  for (let i = 0; i < dynamicSlots.length; i++) {\n    const slot = dynamicSlots[i];\n    if (isArray$1(slot)) {\n      for (let j = 0; j < slot.length; j++) {\n        slots[slot[j].name] = slot[j].fn;\n      }\n    } else if (slot) {\n      slots[slot.name] = slot.fn;\n    }\n  }\n  return slots;\n}\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n  if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n    return createVNode(\"slot\", name === \"default\" ? null : { name }, fallback && fallback());\n  }\n  let slot = slots[name];\n  if (slot && slot._c) {\n    slot._d = false;\n  }\n  openBlock();\n  const validSlotContent = slot && ensureValidVNode(slot(props));\n  const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);\n  if (!noSlotted && rendered.scopeId) {\n    rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n  }\n  if (slot && slot._c) {\n    slot._d = true;\n  }\n  return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n  return vnodes.some((child) => {\n    if (!isVNode(child))\n      return true;\n    if (child.type === Comment)\n      return false;\n    if (child.type === Fragment && !ensureValidVNode(child.children))\n      return false;\n    return true;\n  }) ? vnodes : null;\n}\nconst getPublicInstance = (i) => {\n  if (!i)\n    return null;\n  if (isStatefulComponent(i))\n    return getExposeProxy(i) || i.proxy;\n  return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), {\n  $: (i) => i,\n  $el: (i) => i.vnode.el,\n  $data: (i) => i.data,\n  $props: (i) => i.props,\n  $attrs: (i) => i.attrs,\n  $slots: (i) => i.slots,\n  $refs: (i) => i.refs,\n  $parent: (i) => getPublicInstance(i.parent),\n  $root: (i) => getPublicInstance(i.root),\n  $emit: (i) => i.emit,\n  $options: (i) => resolveMergedOptions(i),\n  $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n  $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n  $watch: (i) => instanceWatch.bind(i)\n});\nconst PublicInstanceProxyHandlers = {\n  get({ _: instance2 }, key) {\n    const { ctx, setupState, data, props, accessCache, type, appContext } = instance2;\n    let normalizedProps;\n    if (key[0] !== \"$\") {\n      const n = accessCache[key];\n      if (n !== void 0) {\n        switch (n) {\n          case 1:\n            return setupState[key];\n          case 2:\n            return data[key];\n          case 4:\n            return ctx[key];\n          case 3:\n            return props[key];\n        }\n      } else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n        accessCache[key] = 1;\n        return setupState[key];\n      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n        accessCache[key] = 2;\n        return data[key];\n      } else if ((normalizedProps = instance2.propsOptions[0]) && hasOwn(normalizedProps, key)) {\n        accessCache[key] = 3;\n        return props[key];\n      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n        accessCache[key] = 4;\n        return ctx[key];\n      } else if (shouldCacheAccess) {\n        accessCache[key] = 0;\n      }\n    }\n    const publicGetter = publicPropertiesMap[key];\n    let cssModule, globalProperties;\n    if (publicGetter) {\n      if (key === \"$attrs\") {\n        track(instance2, \"get\", key);\n      }\n      return publicGetter(instance2);\n    } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) {\n      return cssModule;\n    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n      accessCache[key] = 4;\n      return ctx[key];\n    } else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) {\n      {\n        return globalProperties[key];\n      }\n    } else\n      ;\n  },\n  set({ _: instance2 }, key, value) {\n    const { data, setupState, ctx } = instance2;\n    if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n      setupState[key] = value;\n      return true;\n    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n      data[key] = value;\n      return true;\n    } else if (hasOwn(instance2.props, key)) {\n      return false;\n    }\n    if (key[0] === \"$\" && key.slice(1) in instance2) {\n      return false;\n    } else {\n      {\n        ctx[key] = value;\n      }\n    }\n    return true;\n  },\n  has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n    let normalizedProps;\n    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || setupState !== EMPTY_OBJ && hasOwn(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n  },\n  defineProperty(target, key, descriptor) {\n    if (descriptor.get != null) {\n      target._.accessCache[key] = 0;\n    } else if (hasOwn(descriptor, \"value\")) {\n      this.set(target, key, descriptor.value, null);\n    }\n    return Reflect.defineProperty(target, key, descriptor);\n  }\n};\nlet shouldCacheAccess = true;\nfunction applyOptions(instance2) {\n  const options = resolveMergedOptions(instance2);\n  const publicThis = instance2.proxy;\n  const ctx = instance2.ctx;\n  shouldCacheAccess = false;\n  if (options.beforeCreate) {\n    callHook$1(options.beforeCreate, instance2, \"bc\");\n  }\n  const {\n    data: dataOptions,\n    computed: computedOptions,\n    methods,\n    watch: watchOptions,\n    provide: provideOptions,\n    inject: injectOptions,\n    created,\n    beforeMount: beforeMount2,\n    mounted,\n    beforeUpdate,\n    updated: updated2,\n    activated,\n    deactivated,\n    beforeDestroy,\n    beforeUnmount,\n    destroyed,\n    unmounted: unmounted2,\n    render: render2,\n    renderTracked,\n    renderTriggered,\n    errorCaptured,\n    serverPrefetch,\n    expose,\n    inheritAttrs,\n    components,\n    directives,\n    filters\n  } = options;\n  const checkDuplicateProperties = null;\n  if (injectOptions) {\n    resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance2.appContext.config.unwrapInjectedRef);\n  }\n  if (methods) {\n    for (const key in methods) {\n      const methodHandler = methods[key];\n      if (isFunction$1(methodHandler)) {\n        {\n          ctx[key] = methodHandler.bind(publicThis);\n        }\n      }\n    }\n  }\n  if (dataOptions) {\n    const data = dataOptions.call(publicThis, publicThis);\n    if (!isObject$1(data))\n      ;\n    else {\n      instance2.data = reactive(data);\n    }\n  }\n  shouldCacheAccess = true;\n  if (computedOptions) {\n    for (const key in computedOptions) {\n      const opt = computedOptions[key];\n      const get2 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n      const set2 = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : NOOP;\n      const c = computed({\n        get: get2,\n        set: set2\n      });\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => c.value,\n        set: (v) => c.value = v\n      });\n    }\n  }\n  if (watchOptions) {\n    for (const key in watchOptions) {\n      createWatcher(watchOptions[key], ctx, publicThis, key);\n    }\n  }\n  if (provideOptions) {\n    const provides = isFunction$1(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n    Reflect.ownKeys(provides).forEach((key) => {\n      provide(key, provides[key]);\n    });\n  }\n  if (created) {\n    callHook$1(created, instance2, \"c\");\n  }\n  function registerLifecycleHook(register2, hook) {\n    if (isArray$1(hook)) {\n      hook.forEach((_hook) => register2(_hook.bind(publicThis)));\n    } else if (hook) {\n      register2(hook.bind(publicThis));\n    }\n  }\n  registerLifecycleHook(onBeforeMount, beforeMount2);\n  registerLifecycleHook(onMounted, mounted);\n  registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n  registerLifecycleHook(onUpdated, updated2);\n  registerLifecycleHook(onActivated, activated);\n  registerLifecycleHook(onDeactivated, deactivated);\n  registerLifecycleHook(onErrorCaptured, errorCaptured);\n  registerLifecycleHook(onRenderTracked, renderTracked);\n  registerLifecycleHook(onRenderTriggered, renderTriggered);\n  registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n  registerLifecycleHook(onUnmounted, unmounted2);\n  registerLifecycleHook(onServerPrefetch, serverPrefetch);\n  if (isArray$1(expose)) {\n    if (expose.length) {\n      const exposed = instance2.exposed || (instance2.exposed = {});\n      expose.forEach((key) => {\n        Object.defineProperty(exposed, key, {\n          get: () => publicThis[key],\n          set: (val) => publicThis[key] = val\n        });\n      });\n    } else if (!instance2.exposed) {\n      instance2.exposed = {};\n    }\n  }\n  if (render2 && instance2.render === NOOP) {\n    instance2.render = render2;\n  }\n  if (inheritAttrs != null) {\n    instance2.inheritAttrs = inheritAttrs;\n  }\n  if (components)\n    instance2.components = components;\n  if (directives)\n    instance2.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n  if (isArray$1(injectOptions)) {\n    injectOptions = normalizeInject(injectOptions);\n  }\n  for (const key in injectOptions) {\n    const opt = injectOptions[key];\n    let injected;\n    if (isObject$1(opt)) {\n      if (\"default\" in opt) {\n        injected = inject(opt.from || key, opt.default, true);\n      } else {\n        injected = inject(opt.from || key);\n      }\n    } else {\n      injected = inject(opt);\n    }\n    if (isRef(injected)) {\n      if (unwrapRef) {\n        Object.defineProperty(ctx, key, {\n          enumerable: true,\n          configurable: true,\n          get: () => injected.value,\n          set: (v) => injected.value = v\n        });\n      } else {\n        ctx[key] = injected;\n      }\n    } else {\n      ctx[key] = injected;\n    }\n  }\n}\nfunction callHook$1(hook, instance2, type) {\n  callWithAsyncErrorHandling(isArray$1(hook) ? hook.map((h2) => h2.bind(instance2.proxy)) : hook.bind(instance2.proxy), instance2, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n  const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n  if (isString$1(raw)) {\n    const handler = ctx[raw];\n    if (isFunction$1(handler)) {\n      watch(getter, handler);\n    }\n  } else if (isFunction$1(raw)) {\n    watch(getter, raw.bind(publicThis));\n  } else if (isObject$1(raw)) {\n    if (isArray$1(raw)) {\n      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n    } else {\n      const handler = isFunction$1(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n      if (isFunction$1(handler)) {\n        watch(getter, handler, raw);\n      }\n    }\n  } else\n    ;\n}\nfunction resolveMergedOptions(instance2) {\n  const base = instance2.type;\n  const { mixins, extends: extendsOptions } = base;\n  const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance2.appContext;\n  const cached = cache.get(base);\n  let resolved;\n  if (cached) {\n    resolved = cached;\n  } else if (!globalMixins.length && !mixins && !extendsOptions) {\n    {\n      resolved = base;\n    }\n  } else {\n    resolved = {};\n    if (globalMixins.length) {\n      globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));\n    }\n    mergeOptions(resolved, base, optionMergeStrategies);\n  }\n  cache.set(base, resolved);\n  return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n  const { mixins, extends: extendsOptions } = from;\n  if (extendsOptions) {\n    mergeOptions(to, extendsOptions, strats, true);\n  }\n  if (mixins) {\n    mixins.forEach((m) => mergeOptions(to, m, strats, true));\n  }\n  for (const key in from) {\n    if (asMixin && key === \"expose\")\n      ;\n    else {\n      const strat = internalOptionMergeStrats[key] || strats && strats[key];\n      to[key] = strat ? strat(to[key], from[key]) : from[key];\n    }\n  }\n  return to;\n}\nconst internalOptionMergeStrats = {\n  data: mergeDataFn,\n  props: mergeObjectOptions,\n  emits: mergeObjectOptions,\n  methods: mergeObjectOptions,\n  computed: mergeObjectOptions,\n  beforeCreate: mergeAsArray,\n  created: mergeAsArray,\n  beforeMount: mergeAsArray,\n  mounted: mergeAsArray,\n  beforeUpdate: mergeAsArray,\n  updated: mergeAsArray,\n  beforeDestroy: mergeAsArray,\n  beforeUnmount: mergeAsArray,\n  destroyed: mergeAsArray,\n  unmounted: mergeAsArray,\n  activated: mergeAsArray,\n  deactivated: mergeAsArray,\n  errorCaptured: mergeAsArray,\n  serverPrefetch: mergeAsArray,\n  components: mergeObjectOptions,\n  directives: mergeObjectOptions,\n  watch: mergeWatchOptions,\n  provide: mergeDataFn,\n  inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n  if (!from) {\n    return to;\n  }\n  if (!to) {\n    return from;\n  }\n  return function mergedDataFn() {\n    return extend$1(isFunction$1(to) ? to.call(this, this) : to, isFunction$1(from) ? from.call(this, this) : from);\n  };\n}\nfunction mergeInject(to, from) {\n  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n  if (isArray$1(raw)) {\n    const res = {};\n    for (let i = 0; i < raw.length; i++) {\n      res[raw[i]] = raw[i];\n    }\n    return res;\n  }\n  return raw;\n}\nfunction mergeAsArray(to, from) {\n  return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n  return to ? extend$1(extend$1(/* @__PURE__ */ Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n  if (!to)\n    return from;\n  if (!from)\n    return to;\n  const merged = extend$1(/* @__PURE__ */ Object.create(null), to);\n  for (const key in from) {\n    merged[key] = mergeAsArray(to[key], from[key]);\n  }\n  return merged;\n}\nfunction initProps(instance2, rawProps, isStateful, isSSR = false) {\n  const props = {};\n  const attrs = {};\n  def(attrs, InternalObjectKey, 1);\n  instance2.propsDefaults = /* @__PURE__ */ Object.create(null);\n  setFullProps(instance2, rawProps, props, attrs);\n  for (const key in instance2.propsOptions[0]) {\n    if (!(key in props)) {\n      props[key] = void 0;\n    }\n  }\n  if (isStateful) {\n    instance2.props = isSSR ? props : shallowReactive(props);\n  } else {\n    if (!instance2.type.props) {\n      instance2.props = attrs;\n    } else {\n      instance2.props = props;\n    }\n  }\n  instance2.attrs = attrs;\n}\nfunction updateProps(instance2, rawProps, rawPrevProps, optimized) {\n  const { props, attrs, vnode: { patchFlag } } = instance2;\n  const rawCurrentProps = toRaw(props);\n  const [options] = instance2.propsOptions;\n  let hasAttrsChanged = false;\n  if ((optimized || patchFlag > 0) && !(patchFlag & 16)) {\n    if (patchFlag & 8) {\n      const propsToUpdate = instance2.vnode.dynamicProps;\n      for (let i = 0; i < propsToUpdate.length; i++) {\n        let key = propsToUpdate[i];\n        if (isEmitListener(instance2.emitsOptions, key)) {\n          continue;\n        }\n        const value = rawProps[key];\n        if (options) {\n          if (hasOwn(attrs, key)) {\n            if (value !== attrs[key]) {\n              attrs[key] = value;\n              hasAttrsChanged = true;\n            }\n          } else {\n            const camelizedKey = camelize$1(key);\n            props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance2, false);\n          }\n        } else {\n          if (value !== attrs[key]) {\n            attrs[key] = value;\n            hasAttrsChanged = true;\n          }\n        }\n      }\n    }\n  } else {\n    if (setFullProps(instance2, rawProps, props, attrs)) {\n      hasAttrsChanged = true;\n    }\n    let kebabKey;\n    for (const key in rawCurrentProps) {\n      if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate$1(key)) === key || !hasOwn(rawProps, kebabKey))) {\n        if (options) {\n          if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) {\n            props[key] = resolvePropValue(options, rawCurrentProps, key, void 0, instance2, true);\n          }\n        } else {\n          delete props[key];\n        }\n      }\n    }\n    if (attrs !== rawCurrentProps) {\n      for (const key in attrs) {\n        if (!rawProps || !hasOwn(rawProps, key) && true) {\n          delete attrs[key];\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (hasAttrsChanged) {\n    trigger(instance2, \"set\", \"$attrs\");\n  }\n}\nfunction setFullProps(instance2, rawProps, props, attrs) {\n  const [options, needCastKeys] = instance2.propsOptions;\n  let hasAttrsChanged = false;\n  let rawCastValues;\n  if (rawProps) {\n    for (let key in rawProps) {\n      if (isReservedProp(key)) {\n        continue;\n      }\n      const value = rawProps[key];\n      let camelKey;\n      if (options && hasOwn(options, camelKey = camelize$1(key))) {\n        if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n          props[camelKey] = value;\n        } else {\n          (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n        }\n      } else if (!isEmitListener(instance2.emitsOptions, key)) {\n        if (!(key in attrs) || value !== attrs[key]) {\n          attrs[key] = value;\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (needCastKeys) {\n    const rawCurrentProps = toRaw(props);\n    const castValues = rawCastValues || EMPTY_OBJ;\n    for (let i = 0; i < needCastKeys.length; i++) {\n      const key = needCastKeys[i];\n      props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance2, !hasOwn(castValues, key));\n    }\n  }\n  return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance2, isAbsent) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, \"default\");\n    if (hasDefault && value === void 0) {\n      const defaultValue = opt.default;\n      if (opt.type !== Function && isFunction$1(defaultValue)) {\n        const { propsDefaults } = instance2;\n        if (key in propsDefaults) {\n          value = propsDefaults[key];\n        } else {\n          setCurrentInstance(instance2);\n          value = propsDefaults[key] = defaultValue.call(null, props);\n          unsetCurrentInstance();\n        }\n      } else {\n        value = defaultValue;\n      }\n    }\n    if (opt[0]) {\n      if (isAbsent && !hasDefault) {\n        value = false;\n      } else if (opt[1] && (value === \"\" || value === hyphenate$1(key))) {\n        value = true;\n      }\n    }\n  }\n  return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.propsCache;\n  const cached = cache.get(comp);\n  if (cached) {\n    return cached;\n  }\n  const raw = comp.props;\n  const normalized = {};\n  const needCastKeys = [];\n  let hasExtends = false;\n  if (!isFunction$1(comp)) {\n    const extendProps = (raw2) => {\n      hasExtends = true;\n      const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n      extend$1(normalized, props);\n      if (keys)\n        needCastKeys.push(...keys);\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendProps);\n    }\n    if (comp.extends) {\n      extendProps(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendProps);\n    }\n  }\n  if (!raw && !hasExtends) {\n    cache.set(comp, EMPTY_ARR);\n    return EMPTY_ARR;\n  }\n  if (isArray$1(raw)) {\n    for (let i = 0; i < raw.length; i++) {\n      const normalizedKey = camelize$1(raw[i]);\n      if (validatePropName(normalizedKey)) {\n        normalized[normalizedKey] = EMPTY_OBJ;\n      }\n    }\n  } else if (raw) {\n    for (const key in raw) {\n      const normalizedKey = camelize$1(key);\n      if (validatePropName(normalizedKey)) {\n        const opt = raw[key];\n        const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$1(opt) ? { type: opt } : opt;\n        if (prop) {\n          const booleanIndex = getTypeIndex(Boolean, prop.type);\n          const stringIndex = getTypeIndex(String, prop.type);\n          prop[0] = booleanIndex > -1;\n          prop[1] = stringIndex < 0 || booleanIndex < stringIndex;\n          if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n            needCastKeys.push(normalizedKey);\n          }\n        }\n      }\n    }\n  }\n  const res = [normalized, needCastKeys];\n  cache.set(comp, res);\n  return res;\n}\nfunction validatePropName(key) {\n  if (key[0] !== \"$\") {\n    return true;\n  }\n  return false;\n}\nfunction getType(ctor) {\n  const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n  return match ? match[1] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n  return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n  if (isArray$1(expectedTypes)) {\n    return expectedTypes.findIndex((t) => isSameType(t, type));\n  } else if (isFunction$1(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1;\n  }\n  return -1;\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n  if (rawSlot._n) {\n    return rawSlot;\n  }\n  const normalized = withCtx((...args) => {\n    return normalizeSlotValue(rawSlot(...args));\n  }, ctx);\n  normalized._c = false;\n  return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance2) => {\n  const ctx = rawSlots._ctx;\n  for (const key in rawSlots) {\n    if (isInternalKey(key))\n      continue;\n    const value = rawSlots[key];\n    if (isFunction$1(value)) {\n      slots[key] = normalizeSlot(key, value, ctx);\n    } else if (value != null) {\n      const normalized = normalizeSlotValue(value);\n      slots[key] = () => normalized;\n    }\n  }\n};\nconst normalizeVNodeSlots = (instance2, children) => {\n  const normalized = normalizeSlotValue(children);\n  instance2.slots.default = () => normalized;\n};\nconst initSlots = (instance2, children) => {\n  if (instance2.vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      instance2.slots = toRaw(children);\n      def(children, \"_\", type);\n    } else {\n      normalizeObjectSlots(children, instance2.slots = {});\n    }\n  } else {\n    instance2.slots = {};\n    if (children) {\n      normalizeVNodeSlots(instance2, children);\n    }\n  }\n  def(instance2.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance2, children, optimized) => {\n  const { vnode, slots } = instance2;\n  let needDeletionCheck = true;\n  let deletionComparisonTarget = EMPTY_OBJ;\n  if (vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      if (optimized && type === 1) {\n        needDeletionCheck = false;\n      } else {\n        extend$1(slots, children);\n        if (!optimized && type === 1) {\n          delete slots._;\n        }\n      }\n    } else {\n      needDeletionCheck = !children.$stable;\n      normalizeObjectSlots(children, slots);\n    }\n    deletionComparisonTarget = children;\n  } else if (children) {\n    normalizeVNodeSlots(instance2, children);\n    deletionComparisonTarget = { default: 1 };\n  }\n  if (needDeletionCheck) {\n    for (const key in slots) {\n      if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n        delete slots[key];\n      }\n    }\n  }\n};\nfunction createAppContext() {\n  return {\n    app: null,\n    config: {\n      isNativeTag: NO,\n      performance: false,\n      globalProperties: {},\n      optionMergeStrategies: {},\n      errorHandler: void 0,\n      warnHandler: void 0,\n      compilerOptions: {}\n    },\n    mixins: [],\n    components: {},\n    directives: {},\n    provides: /* @__PURE__ */ Object.create(null),\n    optionsCache: /* @__PURE__ */ new WeakMap(),\n    propsCache: /* @__PURE__ */ new WeakMap(),\n    emitsCache: /* @__PURE__ */ new WeakMap()\n  };\n}\nlet uid = 0;\nfunction createAppAPI(render2, hydrate) {\n  return function createApp(rootComponent, rootProps = null) {\n    if (!isFunction$1(rootComponent)) {\n      rootComponent = Object.assign({}, rootComponent);\n    }\n    if (rootProps != null && !isObject$1(rootProps)) {\n      rootProps = null;\n    }\n    const context = createAppContext();\n    const installedPlugins = /* @__PURE__ */ new Set();\n    let isMounted = false;\n    const app = context.app = {\n      _uid: uid++,\n      _component: rootComponent,\n      _props: rootProps,\n      _container: null,\n      _context: context,\n      _instance: null,\n      version,\n      get config() {\n        return context.config;\n      },\n      set config(v) {\n      },\n      use(plugin, ...options) {\n        if (installedPlugins.has(plugin))\n          ;\n        else if (plugin && isFunction$1(plugin.install)) {\n          installedPlugins.add(plugin);\n          plugin.install(app, ...options);\n        } else if (isFunction$1(plugin)) {\n          installedPlugins.add(plugin);\n          plugin(app, ...options);\n        } else\n          ;\n        return app;\n      },\n      mixin(mixin) {\n        {\n          if (!context.mixins.includes(mixin)) {\n            context.mixins.push(mixin);\n          }\n        }\n        return app;\n      },\n      component(name, component) {\n        if (!component) {\n          return context.components[name];\n        }\n        context.components[name] = component;\n        return app;\n      },\n      directive(name, directive2) {\n        if (!directive2) {\n          return context.directives[name];\n        }\n        context.directives[name] = directive2;\n        return app;\n      },\n      mount(rootContainer, isHydrate, isSVG) {\n        if (!isMounted) {\n          const vnode = createVNode(rootComponent, rootProps);\n          vnode.appContext = context;\n          if (isHydrate && hydrate) {\n            hydrate(vnode, rootContainer);\n          } else {\n            render2(vnode, rootContainer, isSVG);\n          }\n          isMounted = true;\n          app._container = rootContainer;\n          rootContainer.__vue_app__ = app;\n          return getExposeProxy(vnode.component) || vnode.component.proxy;\n        }\n      },\n      unmount() {\n        if (isMounted) {\n          render2(null, app._container);\n          delete app._container.__vue_app__;\n        }\n      },\n      provide(key, value) {\n        context.provides[key] = value;\n        return app;\n      }\n    };\n    return app;\n  };\n}\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n  if (isArray$1(rawRef)) {\n    rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n    return;\n  }\n  if (isAsyncWrapper(vnode) && !isUnmount) {\n    return;\n  }\n  const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n  const value = isUnmount ? null : refValue;\n  const { i: owner, r: ref } = rawRef;\n  const oldRef = oldRawRef && oldRawRef.r;\n  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n  const setupState = owner.setupState;\n  if (oldRef != null && oldRef !== ref) {\n    if (isString$1(oldRef)) {\n      refs[oldRef] = null;\n      if (hasOwn(setupState, oldRef)) {\n        setupState[oldRef] = null;\n      }\n    } else if (isRef(oldRef)) {\n      oldRef.value = null;\n    }\n  }\n  if (isFunction$1(ref)) {\n    callWithErrorHandling(ref, owner, 12, [value, refs]);\n  } else {\n    const _isString = isString$1(ref);\n    const _isRef = isRef(ref);\n    if (_isString || _isRef) {\n      const doSet = () => {\n        if (rawRef.f) {\n          const existing = _isString ? refs[ref] : ref.value;\n          if (isUnmount) {\n            isArray$1(existing) && remove(existing, refValue);\n          } else {\n            if (!isArray$1(existing)) {\n              if (_isString) {\n                refs[ref] = [refValue];\n                if (hasOwn(setupState, ref)) {\n                  setupState[ref] = refs[ref];\n                }\n              } else {\n                ref.value = [refValue];\n                if (rawRef.k)\n                  refs[rawRef.k] = ref.value;\n              }\n            } else if (!existing.includes(refValue)) {\n              existing.push(refValue);\n            }\n          }\n        } else if (_isString) {\n          refs[ref] = value;\n          if (hasOwn(setupState, ref)) {\n            setupState[ref] = value;\n          }\n        } else if (_isRef) {\n          ref.value = value;\n          if (rawRef.k)\n            refs[rawRef.k] = value;\n        } else\n          ;\n      };\n      if (value) {\n        doSet.id = -1;\n        queuePostRenderEffect(doSet, parentSuspense);\n      } else {\n        doSet();\n      }\n    }\n  }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options) {\n  return baseCreateRenderer(options);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n  const target = getGlobalThis();\n  target.__VUE__ = true;\n  const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\n  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {\n    if (n1 === n2) {\n      return;\n    }\n    if (n1 && !isSameVNodeType(n1, n2)) {\n      anchor = getNextHostNode(n1);\n      unmount(n1, parentComponent, parentSuspense, true);\n      n1 = null;\n    }\n    if (n2.patchFlag === -2) {\n      optimized = false;\n      n2.dynamicChildren = null;\n    }\n    const { type, ref, shapeFlag } = n2;\n    switch (type) {\n      case Text:\n        processText(n1, n2, container, anchor);\n        break;\n      case Comment:\n        processCommentNode(n1, n2, container, anchor);\n        break;\n      case Static:\n        if (n1 == null) {\n          mountStaticNode(n2, container, anchor, isSVG);\n        }\n        break;\n      case Fragment:\n        processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        break;\n      default:\n        if (shapeFlag & 1) {\n          processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        } else if (shapeFlag & 6) {\n          processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        } else if (shapeFlag & 64) {\n          type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n        } else if (shapeFlag & 128) {\n          type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n        } else\n          ;\n    }\n    if (ref != null && parentComponent) {\n      setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n    }\n  };\n  const processText = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(n2.el = hostCreateText(n2.children), container, anchor);\n    } else {\n      const el = n2.el = n1.el;\n      if (n2.children !== n1.children) {\n        hostSetText(el, n2.children);\n      }\n    }\n  };\n  const processCommentNode = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(n2.el = hostCreateComment(n2.children || \"\"), container, anchor);\n    } else {\n      n2.el = n1.el;\n    }\n  };\n  const mountStaticNode = (n2, container, anchor, isSVG) => {\n    [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n  };\n  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostInsert(el, container, nextSibling);\n      el = next;\n    }\n    hostInsert(anchor, container, nextSibling);\n  };\n  const removeStaticNode = ({ el, anchor }) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostRemove(el);\n      el = next;\n    }\n    hostRemove(anchor);\n  };\n  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    isSVG = isSVG || n2.type === \"svg\";\n    if (n1 == null) {\n      mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n    } else {\n      patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n    }\n  };\n  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    let el;\n    let vnodeHook;\n    const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;\n    if (vnode.el && hostCloneNode !== void 0 && patchFlag === -1) {\n      el = vnode.el = hostCloneNode(vnode.el);\n    } else {\n      el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n      if (shapeFlag & 8) {\n        hostSetElementText(el, vnode.children);\n      } else if (shapeFlag & 16) {\n        mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== \"foreignObject\", slotScopeIds, optimized);\n      }\n      if (dirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n      }\n      if (props) {\n        for (const key in props) {\n          if (key !== \"value\" && !isReservedProp(key)) {\n            hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n          }\n        }\n        if (\"value\" in props) {\n          hostPatchProp(el, \"value\", null, props.value);\n        }\n        if (vnodeHook = props.onVnodeBeforeMount) {\n          invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        }\n      }\n      setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n    }\n    if (dirs) {\n      invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n    }\n    const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n    if (needCallTransitionHooks) {\n      transition.beforeEnter(el);\n    }\n    hostInsert(el, container, anchor);\n    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        needCallTransitionHooks && transition.enter(el);\n        dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n      }, parentSuspense);\n    }\n  };\n  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n    if (scopeId) {\n      hostSetScopeId(el, scopeId);\n    }\n    if (slotScopeIds) {\n      for (let i = 0; i < slotScopeIds.length; i++) {\n        hostSetScopeId(el, slotScopeIds[i]);\n      }\n    }\n    if (parentComponent) {\n      let subTree = parentComponent.subTree;\n      if (vnode === subTree) {\n        const parentVNode = parentComponent.vnode;\n        setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n      }\n    }\n  };\n  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n      patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n    }\n  };\n  const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    const el = n2.el = n1.el;\n    let { patchFlag, dynamicChildren, dirs } = n2;\n    patchFlag |= n1.patchFlag & 16;\n    const oldProps = n1.props || EMPTY_OBJ;\n    const newProps = n2.props || EMPTY_OBJ;\n    let vnodeHook;\n    parentComponent && toggleRecurse(parentComponent, false);\n    if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n    }\n    if (dirs) {\n      invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n    }\n    parentComponent && toggleRecurse(parentComponent, true);\n    const areChildrenSVG = isSVG && n2.type !== \"foreignObject\";\n    if (dynamicChildren) {\n      patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n    } else if (!optimized) {\n      patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n    }\n    if (patchFlag > 0) {\n      if (patchFlag & 16) {\n        patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n      } else {\n        if (patchFlag & 2) {\n          if (oldProps.class !== newProps.class) {\n            hostPatchProp(el, \"class\", null, newProps.class, isSVG);\n          }\n        }\n        if (patchFlag & 4) {\n          hostPatchProp(el, \"style\", oldProps.style, newProps.style, isSVG);\n        }\n        if (patchFlag & 8) {\n          const propsToUpdate = n2.dynamicProps;\n          for (let i = 0; i < propsToUpdate.length; i++) {\n            const key = propsToUpdate[i];\n            const prev = oldProps[key];\n            const next = newProps[key];\n            if (next !== prev || key === \"value\") {\n              hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n            }\n          }\n        }\n      }\n      if (patchFlag & 1) {\n        if (n1.children !== n2.children) {\n          hostSetElementText(el, n2.children);\n        }\n      }\n    } else if (!optimized && dynamicChildren == null) {\n      patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n    }\n    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n        dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n      }, parentSuspense);\n    }\n  };\n  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n    for (let i = 0; i < newChildren.length; i++) {\n      const oldVNode = oldChildren[i];\n      const newVNode = newChildren[i];\n      const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : fallbackContainer;\n      patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n    }\n  };\n  const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n    if (oldProps !== newProps) {\n      for (const key in newProps) {\n        if (isReservedProp(key))\n          continue;\n        const next = newProps[key];\n        const prev = oldProps[key];\n        if (next !== prev && key !== \"value\") {\n          hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n        }\n      }\n      if (oldProps !== EMPTY_OBJ) {\n        for (const key in oldProps) {\n          if (!isReservedProp(key) && !(key in newProps)) {\n            hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n          }\n        }\n      }\n      if (\"value\" in newProps) {\n        hostPatchProp(el, \"value\", oldProps.value, newProps.value);\n      }\n    }\n  };\n  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n    if (fragmentSlotScopeIds) {\n      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n    }\n    if (n1 == null) {\n      hostInsert(fragmentStartAnchor, container, anchor);\n      hostInsert(fragmentEndAnchor, container, anchor);\n      mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n    } else {\n      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren) {\n        patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n        if (n2.key != null || parentComponent && n2 === parentComponent.subTree) {\n          traverseStaticChildren(n1, n2, true);\n        }\n      } else {\n        patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n      }\n    }\n  };\n  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    n2.slotScopeIds = slotScopeIds;\n    if (n1 == null) {\n      if (n2.shapeFlag & 512) {\n        parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n      } else {\n        mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n      }\n    } else {\n      updateComponent(n1, n2, optimized);\n    }\n  };\n  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n    const instance2 = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);\n    if (isKeepAlive(initialVNode)) {\n      instance2.ctx.renderer = internals;\n    }\n    {\n      setupComponent(instance2);\n    }\n    if (instance2.asyncDep) {\n      parentSuspense && parentSuspense.registerDep(instance2, setupRenderEffect);\n      if (!initialVNode.el) {\n        const placeholder = instance2.subTree = createVNode(Comment);\n        processCommentNode(null, placeholder, container, anchor);\n      }\n      return;\n    }\n    setupRenderEffect(instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n  };\n  const updateComponent = (n1, n2, optimized) => {\n    const instance2 = n2.component = n1.component;\n    if (shouldUpdateComponent(n1, n2, optimized)) {\n      if (instance2.asyncDep && !instance2.asyncResolved) {\n        updateComponentPreRender(instance2, n2, optimized);\n        return;\n      } else {\n        instance2.next = n2;\n        invalidateJob(instance2.update);\n        instance2.update();\n      }\n    } else {\n      n2.el = n1.el;\n      instance2.vnode = n2;\n    }\n  };\n  const setupRenderEffect = (instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n    const componentUpdateFn = () => {\n      if (!instance2.isMounted) {\n        let vnodeHook;\n        const { el, props } = initialVNode;\n        const { bm, m, parent } = instance2;\n        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n        toggleRecurse(instance2, false);\n        if (bm) {\n          invokeArrayFns(bm);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n          invokeVNodeHook(vnodeHook, parent, initialVNode);\n        }\n        toggleRecurse(instance2, true);\n        if (el && hydrateNode) {\n          const hydrateSubTree = () => {\n            instance2.subTree = renderComponentRoot(instance2);\n            hydrateNode(el, instance2.subTree, instance2, parentSuspense, null);\n          };\n          if (isAsyncWrapperVNode) {\n            initialVNode.type.__asyncLoader().then(\n              () => !instance2.isUnmounted && hydrateSubTree()\n            );\n          } else {\n            hydrateSubTree();\n          }\n        } else {\n          const subTree = instance2.subTree = renderComponentRoot(instance2);\n          patch(null, subTree, container, anchor, instance2, parentSuspense, isSVG);\n          initialVNode.el = subTree.el;\n        }\n        if (m) {\n          queuePostRenderEffect(m, parentSuspense);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n          const scopedInitialVNode = initialVNode;\n          queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n        }\n        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n          instance2.a && queuePostRenderEffect(instance2.a, parentSuspense);\n        }\n        instance2.isMounted = true;\n        initialVNode = container = anchor = null;\n      } else {\n        let { next, bu, u, parent, vnode } = instance2;\n        let originNext = next;\n        let vnodeHook;\n        toggleRecurse(instance2, false);\n        if (next) {\n          next.el = vnode.el;\n          updateComponentPreRender(instance2, next, optimized);\n        } else {\n          next = vnode;\n        }\n        if (bu) {\n          invokeArrayFns(bu);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n          invokeVNodeHook(vnodeHook, parent, next, vnode);\n        }\n        toggleRecurse(instance2, true);\n        const nextTree = renderComponentRoot(instance2);\n        const prevTree = instance2.subTree;\n        instance2.subTree = nextTree;\n        patch(\n          prevTree,\n          nextTree,\n          hostParentNode(prevTree.el),\n          getNextHostNode(prevTree),\n          instance2,\n          parentSuspense,\n          isSVG\n        );\n        next.el = nextTree.el;\n        if (originNext === null) {\n          updateHOCHostEl(instance2, nextTree.el);\n        }\n        if (u) {\n          queuePostRenderEffect(u, parentSuspense);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n          queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n        }\n      }\n    };\n    const effect = instance2.effect = new ReactiveEffect(\n      componentUpdateFn,\n      () => queueJob(update2),\n      instance2.scope\n    );\n    const update2 = instance2.update = () => effect.run();\n    update2.id = instance2.uid;\n    toggleRecurse(instance2, true);\n    update2();\n  };\n  const updateComponentPreRender = (instance2, nextVNode, optimized) => {\n    nextVNode.component = instance2;\n    const prevProps = instance2.vnode.props;\n    instance2.vnode = nextVNode;\n    instance2.next = null;\n    updateProps(instance2, nextVNode.props, prevProps, optimized);\n    updateSlots(instance2, nextVNode.children, optimized);\n    pauseTracking();\n    flushPreFlushCbs(void 0, instance2.update);\n    resetTracking();\n  };\n  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n    const c1 = n1 && n1.children;\n    const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n    const c2 = n2.children;\n    const { patchFlag, shapeFlag } = n2;\n    if (patchFlag > 0) {\n      if (patchFlag & 128) {\n        patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        return;\n      } else if (patchFlag & 256) {\n        patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        return;\n      }\n    }\n    if (shapeFlag & 8) {\n      if (prevShapeFlag & 16) {\n        unmountChildren(c1, parentComponent, parentSuspense);\n      }\n      if (c2 !== c1) {\n        hostSetElementText(container, c2);\n      }\n    } else {\n      if (prevShapeFlag & 16) {\n        if (shapeFlag & 16) {\n          patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        } else {\n          unmountChildren(c1, parentComponent, parentSuspense, true);\n        }\n      } else {\n        if (prevShapeFlag & 8) {\n          hostSetElementText(container, \"\");\n        }\n        if (shapeFlag & 16) {\n          mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        }\n      }\n    }\n  };\n  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    c1 = c1 || EMPTY_ARR;\n    c2 = c2 || EMPTY_ARR;\n    const oldLength = c1.length;\n    const newLength = c2.length;\n    const commonLength = Math.min(oldLength, newLength);\n    let i;\n    for (i = 0; i < commonLength; i++) {\n      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n    }\n    if (oldLength > newLength) {\n      unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n    } else {\n      mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n    }\n  };\n  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n    let i = 0;\n    const l2 = c2.length;\n    let e1 = c1.length - 1;\n    let e2 = l2 - 1;\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[i];\n      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n      } else {\n        break;\n      }\n      i++;\n    }\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[e1];\n      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n      } else {\n        break;\n      }\n      e1--;\n      e2--;\n    }\n    if (i > e1) {\n      if (i <= e2) {\n        const nextPos = e2 + 1;\n        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n        while (i <= e2) {\n          patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n          i++;\n        }\n      }\n    } else if (i > e2) {\n      while (i <= e1) {\n        unmount(c1[i], parentComponent, parentSuspense, true);\n        i++;\n      }\n    } else {\n      const s1 = i;\n      const s2 = i;\n      const keyToNewIndexMap = /* @__PURE__ */ new Map();\n      for (i = s2; i <= e2; i++) {\n        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n        if (nextChild.key != null) {\n          keyToNewIndexMap.set(nextChild.key, i);\n        }\n      }\n      let j;\n      let patched = 0;\n      const toBePatched = e2 - s2 + 1;\n      let moved = false;\n      let maxNewIndexSoFar = 0;\n      const newIndexToOldIndexMap = new Array(toBePatched);\n      for (i = 0; i < toBePatched; i++)\n        newIndexToOldIndexMap[i] = 0;\n      for (i = s1; i <= e1; i++) {\n        const prevChild = c1[i];\n        if (patched >= toBePatched) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n          continue;\n        }\n        let newIndex;\n        if (prevChild.key != null) {\n          newIndex = keyToNewIndexMap.get(prevChild.key);\n        } else {\n          for (j = s2; j <= e2; j++) {\n            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n              newIndex = j;\n              break;\n            }\n          }\n        }\n        if (newIndex === void 0) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n        } else {\n          newIndexToOldIndexMap[newIndex - s2] = i + 1;\n          if (newIndex >= maxNewIndexSoFar) {\n            maxNewIndexSoFar = newIndex;\n          } else {\n            moved = true;\n          }\n          patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n          patched++;\n        }\n      }\n      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n      j = increasingNewIndexSequence.length - 1;\n      for (i = toBePatched - 1; i >= 0; i--) {\n        const nextIndex = s2 + i;\n        const nextChild = c2[nextIndex];\n        const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n        if (newIndexToOldIndexMap[i] === 0) {\n          patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n        } else if (moved) {\n          if (j < 0 || i !== increasingNewIndexSequence[j]) {\n            move(nextChild, container, anchor, 2);\n          } else {\n            j--;\n          }\n        }\n      }\n    }\n  };\n  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n    const { el, type, transition, children, shapeFlag } = vnode;\n    if (shapeFlag & 6) {\n      move(vnode.component.subTree, container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 128) {\n      vnode.suspense.move(container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 64) {\n      type.move(vnode, container, anchor, internals);\n      return;\n    }\n    if (type === Fragment) {\n      hostInsert(el, container, anchor);\n      for (let i = 0; i < children.length; i++) {\n        move(children[i], container, anchor, moveType);\n      }\n      hostInsert(vnode.anchor, container, anchor);\n      return;\n    }\n    if (type === Static) {\n      moveStaticNode(vnode, container, anchor);\n      return;\n    }\n    const needTransition = moveType !== 2 && shapeFlag & 1 && transition;\n    if (needTransition) {\n      if (moveType === 0) {\n        transition.beforeEnter(el);\n        hostInsert(el, container, anchor);\n        queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n      } else {\n        const { leave, delayLeave, afterLeave } = transition;\n        const remove3 = () => hostInsert(el, container, anchor);\n        const performLeave = () => {\n          leave(el, () => {\n            remove3();\n            afterLeave && afterLeave();\n          });\n        };\n        if (delayLeave) {\n          delayLeave(el, remove3, performLeave);\n        } else {\n          performLeave();\n        }\n      }\n    } else {\n      hostInsert(el, container, anchor);\n    }\n  };\n  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n    const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n    if (ref != null) {\n      setRef(ref, null, parentSuspense, vnode, true);\n    }\n    if (shapeFlag & 256) {\n      parentComponent.ctx.deactivate(vnode);\n      return;\n    }\n    const shouldInvokeDirs = shapeFlag & 1 && dirs;\n    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n    let vnodeHook;\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n      invokeVNodeHook(vnodeHook, parentComponent, vnode);\n    }\n    if (shapeFlag & 6) {\n      unmountComponent(vnode.component, parentSuspense, doRemove);\n    } else {\n      if (shapeFlag & 128) {\n        vnode.suspense.unmount(parentSuspense, doRemove);\n        return;\n      }\n      if (shouldInvokeDirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n      }\n      if (shapeFlag & 64) {\n        vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n      } else if (dynamicChildren && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n        unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n        unmountChildren(children, parentComponent, parentSuspense);\n      }\n      if (doRemove) {\n        remove2(vnode);\n      }\n    }\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n      }, parentSuspense);\n    }\n  };\n  const remove2 = (vnode) => {\n    const { type, el, anchor, transition } = vnode;\n    if (type === Fragment) {\n      {\n        removeFragment(el, anchor);\n      }\n      return;\n    }\n    if (type === Static) {\n      removeStaticNode(vnode);\n      return;\n    }\n    const performRemove = () => {\n      hostRemove(el);\n      if (transition && !transition.persisted && transition.afterLeave) {\n        transition.afterLeave();\n      }\n    };\n    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n      const { leave, delayLeave } = transition;\n      const performLeave = () => leave(el, performRemove);\n      if (delayLeave) {\n        delayLeave(vnode.el, performRemove, performLeave);\n      } else {\n        performLeave();\n      }\n    } else {\n      performRemove();\n    }\n  };\n  const removeFragment = (cur, end) => {\n    let next;\n    while (cur !== end) {\n      next = hostNextSibling(cur);\n      hostRemove(cur);\n      cur = next;\n    }\n    hostRemove(end);\n  };\n  const unmountComponent = (instance2, parentSuspense, doRemove) => {\n    const { bum, scope, update: update2, subTree, um } = instance2;\n    if (bum) {\n      invokeArrayFns(bum);\n    }\n    scope.stop();\n    if (update2) {\n      update2.active = false;\n      unmount(subTree, instance2, parentSuspense, doRemove);\n    }\n    if (um) {\n      queuePostRenderEffect(um, parentSuspense);\n    }\n    queuePostRenderEffect(() => {\n      instance2.isUnmounted = true;\n    }, parentSuspense);\n    if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance2.asyncDep && !instance2.asyncResolved && instance2.suspenseId === parentSuspense.pendingId) {\n      parentSuspense.deps--;\n      if (parentSuspense.deps === 0) {\n        parentSuspense.resolve();\n      }\n    }\n  };\n  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n    }\n  };\n  const getNextHostNode = (vnode) => {\n    if (vnode.shapeFlag & 6) {\n      return getNextHostNode(vnode.component.subTree);\n    }\n    if (vnode.shapeFlag & 128) {\n      return vnode.suspense.next();\n    }\n    return hostNextSibling(vnode.anchor || vnode.el);\n  };\n  const render2 = (vnode, container, isSVG) => {\n    if (vnode == null) {\n      if (container._vnode) {\n        unmount(container._vnode, null, null, true);\n      }\n    } else {\n      patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n    }\n    flushPostFlushCbs();\n    container._vnode = vnode;\n  };\n  const internals = {\n    p: patch,\n    um: unmount,\n    m: move,\n    r: remove2,\n    mt: mountComponent,\n    mc: mountChildren,\n    pc: patchChildren,\n    pbc: patchBlockChildren,\n    n: getNextHostNode,\n    o: options\n  };\n  let hydrate;\n  let hydrateNode;\n  if (createHydrationFns) {\n    [hydrate, hydrateNode] = createHydrationFns(internals);\n  }\n  return {\n    render: render2,\n    hydrate,\n    createApp: createAppAPI(render2, hydrate)\n  };\n}\nfunction toggleRecurse({ effect, update: update2 }, allowed) {\n  effect.allowRecurse = update2.allowRecurse = allowed;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n  const ch1 = n1.children;\n  const ch2 = n2.children;\n  if (isArray$1(ch1) && isArray$1(ch2)) {\n    for (let i = 0; i < ch1.length; i++) {\n      const c1 = ch1[i];\n      let c2 = ch2[i];\n      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n          c2 = ch2[i] = cloneIfMounted(ch2[i]);\n          c2.el = c1.el;\n        }\n        if (!shallow)\n          traverseStaticChildren(c1, c2);\n      }\n    }\n  }\n}\nfunction getSequence(arr) {\n  const p2 = arr.slice();\n  const result = [0];\n  let i, j, u, v, c;\n  const len = arr.length;\n  for (i = 0; i < len; i++) {\n    const arrI = arr[i];\n    if (arrI !== 0) {\n      j = result[result.length - 1];\n      if (arr[j] < arrI) {\n        p2[i] = j;\n        result.push(i);\n        continue;\n      }\n      u = 0;\n      v = result.length - 1;\n      while (u < v) {\n        c = u + v >> 1;\n        if (arr[result[c]] < arrI) {\n          u = c + 1;\n        } else {\n          v = c;\n        }\n      }\n      if (arrI < arr[result[u]]) {\n        if (u > 0) {\n          p2[i] = result[u - 1];\n        }\n        result[u] = i;\n      }\n    }\n  }\n  u = result.length;\n  v = result[u - 1];\n  while (u-- > 0) {\n    result[u] = v;\n    v = p2[v];\n  }\n  return result;\n}\nconst isTeleport = (type) => type.__isTeleport;\nconst Fragment = Symbol(void 0);\nconst Text = Symbol(void 0);\nconst Comment = Symbol(void 0);\nconst Static = Symbol(void 0);\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n  blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n  blockStack.pop();\n  currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n  isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n  closeBlock();\n  if (isBlockTreeEnabled > 0 && currentBlock) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n  return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true));\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n  return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true));\n}\nfunction isVNode(value) {\n  return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n  return n1.type === n2.type && n1.key === n2.key;\n}\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n  return ref != null ? isString$1(ref) || isRef(ref) || isFunction$1(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n  const vnode = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type,\n    props,\n    key: props && normalizeKey(props),\n    ref: props && normalizeRef(props),\n    scopeId: currentScopeId,\n    slotScopeIds: null,\n    children,\n    component: null,\n    suspense: null,\n    ssContent: null,\n    ssFallback: null,\n    dirs: null,\n    transition: null,\n    el: null,\n    anchor: null,\n    target: null,\n    targetAnchor: null,\n    staticCount: 0,\n    shapeFlag,\n    patchFlag,\n    dynamicProps,\n    dynamicChildren: null,\n    appContext: null\n  };\n  if (needFullChildrenNormalization) {\n    normalizeChildren(vnode, children);\n    if (shapeFlag & 128) {\n      type.normalize(vnode);\n    }\n  } else if (children) {\n    vnode.shapeFlag |= isString$1(children) ? 8 : 16;\n  }\n  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nconst createVNode = _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n  if (!type || type === NULL_DYNAMIC_COMPONENT) {\n    type = Comment;\n  }\n  if (isVNode(type)) {\n    const cloned = cloneVNode(type, props, true);\n    if (children) {\n      normalizeChildren(cloned, children);\n    }\n    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n      if (cloned.shapeFlag & 6) {\n        currentBlock[currentBlock.indexOf(type)] = cloned;\n      } else {\n        currentBlock.push(cloned);\n      }\n    }\n    cloned.patchFlag |= -2;\n    return cloned;\n  }\n  if (isClassComponent(type)) {\n    type = type.__vccOpts;\n  }\n  if (props) {\n    props = guardReactiveProps(props);\n    let { class: klass, style } = props;\n    if (klass && !isString$1(klass)) {\n      props.class = normalizeClass(klass);\n    }\n    if (isObject$1(style)) {\n      if (isProxy(style) && !isArray$1(style)) {\n        style = extend$1({}, style);\n      }\n      props.style = normalizeStyle(style);\n    }\n  }\n  const shapeFlag = isString$1(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$1(type) ? 4 : isFunction$1(type) ? 2 : 0;\n  return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n  if (!props)\n    return null;\n  return isProxy(props) || InternalObjectKey in props ? extend$1({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n  const { props, ref, patchFlag, children } = vnode;\n  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n  const cloned = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type: vnode.type,\n    props: mergedProps,\n    key: mergedProps && normalizeKey(mergedProps),\n    ref: extraProps && extraProps.ref ? mergeRef && ref ? isArray$1(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref,\n    scopeId: vnode.scopeId,\n    slotScopeIds: vnode.slotScopeIds,\n    children,\n    target: vnode.target,\n    targetAnchor: vnode.targetAnchor,\n    staticCount: vnode.staticCount,\n    shapeFlag: vnode.shapeFlag,\n    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n    dynamicProps: vnode.dynamicProps,\n    dynamicChildren: vnode.dynamicChildren,\n    appContext: vnode.appContext,\n    dirs: vnode.dirs,\n    transition: vnode.transition,\n    component: vnode.component,\n    suspense: vnode.suspense,\n    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n    el: vnode.el,\n    anchor: vnode.anchor\n  };\n  return cloned;\n}\nfunction createTextVNode(text2 = \" \", flag = 0) {\n  return createVNode(Text, null, text2, flag);\n}\nfunction createCommentVNode(text2 = \"\", asBlock = false) {\n  return asBlock ? (openBlock(), createBlock(Comment, null, text2)) : createVNode(Comment, null, text2);\n}\nfunction normalizeVNode(child) {\n  if (child == null || typeof child === \"boolean\") {\n    return createVNode(Comment);\n  } else if (isArray$1(child)) {\n    return createVNode(\n      Fragment,\n      null,\n      child.slice()\n    );\n  } else if (typeof child === \"object\") {\n    return cloneIfMounted(child);\n  } else {\n    return createVNode(Text, null, String(child));\n  }\n}\nfunction cloneIfMounted(child) {\n  return child.el === null || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n  let type = 0;\n  const { shapeFlag } = vnode;\n  if (children == null) {\n    children = null;\n  } else if (isArray$1(children)) {\n    type = 16;\n  } else if (typeof children === \"object\") {\n    if (shapeFlag & (1 | 64)) {\n      const slot = children.default;\n      if (slot) {\n        slot._c && (slot._d = false);\n        normalizeChildren(vnode, slot());\n        slot._c && (slot._d = true);\n      }\n      return;\n    } else {\n      type = 32;\n      const slotFlag = children._;\n      if (!slotFlag && !(InternalObjectKey in children)) {\n        children._ctx = currentRenderingInstance;\n      } else if (slotFlag === 3 && currentRenderingInstance) {\n        if (currentRenderingInstance.slots._ === 1) {\n          children._ = 1;\n        } else {\n          children._ = 2;\n          vnode.patchFlag |= 1024;\n        }\n      }\n    }\n  } else if (isFunction$1(children)) {\n    children = { default: children, _ctx: currentRenderingInstance };\n    type = 32;\n  } else {\n    children = String(children);\n    if (shapeFlag & 64) {\n      type = 16;\n      children = [createTextVNode(children)];\n    } else {\n      type = 8;\n    }\n  }\n  vnode.children = children;\n  vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n  const ret = {};\n  for (let i = 0; i < args.length; i++) {\n    const toMerge = args[i];\n    for (const key in toMerge) {\n      if (key === \"class\") {\n        if (ret.class !== toMerge.class) {\n          ret.class = normalizeClass([ret.class, toMerge.class]);\n        }\n      } else if (key === \"style\") {\n        ret.style = normalizeStyle([ret.style, toMerge.style]);\n      } else if (isOn$1(key)) {\n        const existing = ret[key];\n        const incoming = toMerge[key];\n        if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {\n          ret[key] = existing ? [].concat(existing, incoming) : incoming;\n        }\n      } else if (key !== \"\") {\n        ret[key] = toMerge[key];\n      }\n    }\n  }\n  return ret;\n}\nfunction invokeVNodeHook(hook, instance2, vnode, prevVNode = null) {\n  callWithAsyncErrorHandling(hook, instance2, 7, [\n    vnode,\n    prevVNode\n  ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n  const type = vnode.type;\n  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n  const instance2 = {\n    uid: uid$1++,\n    vnode,\n    type,\n    parent,\n    appContext,\n    root: null,\n    next: null,\n    subTree: null,\n    effect: null,\n    update: null,\n    scope: new EffectScope(true),\n    render: null,\n    proxy: null,\n    exposed: null,\n    exposeProxy: null,\n    withProxy: null,\n    provides: parent ? parent.provides : Object.create(appContext.provides),\n    accessCache: null,\n    renderCache: [],\n    components: null,\n    directives: null,\n    propsOptions: normalizePropsOptions(type, appContext),\n    emitsOptions: normalizeEmitsOptions(type, appContext),\n    emit: null,\n    emitted: null,\n    propsDefaults: EMPTY_OBJ,\n    inheritAttrs: type.inheritAttrs,\n    ctx: EMPTY_OBJ,\n    data: EMPTY_OBJ,\n    props: EMPTY_OBJ,\n    attrs: EMPTY_OBJ,\n    slots: EMPTY_OBJ,\n    refs: EMPTY_OBJ,\n    setupState: EMPTY_OBJ,\n    setupContext: null,\n    suspense,\n    suspenseId: suspense ? suspense.pendingId : 0,\n    asyncDep: null,\n    asyncResolved: false,\n    isMounted: false,\n    isUnmounted: false,\n    isDeactivated: false,\n    bc: null,\n    c: null,\n    bm: null,\n    m: null,\n    bu: null,\n    u: null,\n    um: null,\n    bum: null,\n    da: null,\n    a: null,\n    rtg: null,\n    rtc: null,\n    ec: null,\n    sp: null\n  };\n  {\n    instance2.ctx = { _: instance2 };\n  }\n  instance2.root = parent ? parent.root : instance2;\n  instance2.emit = emit$1.bind(null, instance2);\n  if (vnode.ce) {\n    vnode.ce(instance2);\n  }\n  return instance2;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance2) => {\n  currentInstance = instance2;\n  instance2.scope.on();\n};\nconst unsetCurrentInstance = () => {\n  currentInstance && currentInstance.scope.off();\n  currentInstance = null;\n};\nfunction isStatefulComponent(instance2) {\n  return instance2.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance2, isSSR = false) {\n  isInSSRComponentSetup = isSSR;\n  const { props, children } = instance2.vnode;\n  const isStateful = isStatefulComponent(instance2);\n  initProps(instance2, props, isStateful, isSSR);\n  initSlots(instance2, children);\n  const setupResult = isStateful ? setupStatefulComponent(instance2, isSSR) : void 0;\n  isInSSRComponentSetup = false;\n  return setupResult;\n}\nfunction setupStatefulComponent(instance2, isSSR) {\n  const Component = instance2.type;\n  instance2.accessCache = /* @__PURE__ */ Object.create(null);\n  instance2.proxy = markRaw(new Proxy(instance2.ctx, PublicInstanceProxyHandlers));\n  const { setup } = Component;\n  if (setup) {\n    const setupContext = instance2.setupContext = setup.length > 1 ? createSetupContext(instance2) : null;\n    setCurrentInstance(instance2);\n    pauseTracking();\n    const setupResult = callWithErrorHandling(setup, instance2, 0, [instance2.props, setupContext]);\n    resetTracking();\n    unsetCurrentInstance();\n    if (isPromise(setupResult)) {\n      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n      if (isSSR) {\n        return setupResult.then((resolvedResult) => {\n          handleSetupResult(instance2, resolvedResult, isSSR);\n        }).catch((e) => {\n          handleError(e, instance2, 0);\n        });\n      } else {\n        instance2.asyncDep = setupResult;\n      }\n    } else {\n      handleSetupResult(instance2, setupResult, isSSR);\n    }\n  } else {\n    finishComponentSetup(instance2, isSSR);\n  }\n}\nfunction handleSetupResult(instance2, setupResult, isSSR) {\n  if (isFunction$1(setupResult)) {\n    if (instance2.type.__ssrInlineRender) {\n      instance2.ssrRender = setupResult;\n    } else {\n      instance2.render = setupResult;\n    }\n  } else if (isObject$1(setupResult)) {\n    instance2.setupState = proxyRefs(setupResult);\n  } else\n    ;\n  finishComponentSetup(instance2, isSSR);\n}\nlet compile$1;\nfunction finishComponentSetup(instance2, isSSR, skipOptions) {\n  const Component = instance2.type;\n  if (!instance2.render) {\n    if (!isSSR && compile$1 && !Component.render) {\n      const template = Component.template;\n      if (template) {\n        const { isCustomElement, compilerOptions } = instance2.appContext.config;\n        const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n        const finalCompilerOptions = extend$1(extend$1({\n          isCustomElement,\n          delimiters\n        }, compilerOptions), componentCompilerOptions);\n        Component.render = compile$1(template, finalCompilerOptions);\n      }\n    }\n    instance2.render = Component.render || NOOP;\n  }\n  {\n    setCurrentInstance(instance2);\n    pauseTracking();\n    applyOptions(instance2);\n    resetTracking();\n    unsetCurrentInstance();\n  }\n}\nfunction createAttrsProxy(instance2) {\n  return new Proxy(instance2.attrs, {\n    get(target, key) {\n      track(instance2, \"get\", \"$attrs\");\n      return target[key];\n    }\n  });\n}\nfunction createSetupContext(instance2) {\n  const expose = (exposed) => {\n    instance2.exposed = exposed || {};\n  };\n  let attrs;\n  {\n    return {\n      get attrs() {\n        return attrs || (attrs = createAttrsProxy(instance2));\n      },\n      slots: instance2.slots,\n      emit: instance2.emit,\n      expose\n    };\n  }\n}\nfunction getExposeProxy(instance2) {\n  if (instance2.exposed) {\n    return instance2.exposeProxy || (instance2.exposeProxy = new Proxy(proxyRefs(markRaw(instance2.exposed)), {\n      get(target, key) {\n        if (key in target) {\n          return target[key];\n        } else if (key in publicPropertiesMap) {\n          return publicPropertiesMap[key](instance2);\n        }\n      }\n    }));\n  }\n}\nfunction getComponentName(Component, includeInferred = true) {\n  return isFunction$1(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction isClassComponent(value) {\n  return isFunction$1(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n  return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\nfunction h(type, propsOrChildren, children) {\n  const l = arguments.length;\n  if (l === 2) {\n    if (isObject$1(propsOrChildren) && !isArray$1(propsOrChildren)) {\n      if (isVNode(propsOrChildren)) {\n        return createVNode(type, null, [propsOrChildren]);\n      }\n      return createVNode(type, propsOrChildren);\n    } else {\n      return createVNode(type, null, propsOrChildren);\n    }\n  } else {\n    if (l > 3) {\n      children = Array.prototype.slice.call(arguments, 2);\n    } else if (l === 3 && isVNode(children)) {\n      children = [children];\n    }\n    return createVNode(type, propsOrChildren, children);\n  }\n}\nconst version = \"3.2.37\";\nfunction makeMap(str, expectsLowerCase) {\n  const map = /* @__PURE__ */ Object.create(null);\n  const list2 = str.split(\",\");\n  for (let i = 0; i < list2.length; i++) {\n    map[list2[i]] = true;\n  }\n  return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n  return !!value || value === \"\";\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst cacheStringFunction = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toNumber = (val) => {\n  const n = parseFloat(val);\n  return isNaN(n) ? val : n;\n};\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n  insert: (child, parent, anchor) => {\n    parent.insertBefore(child, anchor || null);\n  },\n  remove: (child) => {\n    const parent = child.parentNode;\n    if (parent) {\n      parent.removeChild(child);\n    }\n  },\n  createElement: (tag, isSVG, is, props) => {\n    const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n    if (tag === \"select\" && props && props.multiple != null) {\n      el.setAttribute(\"multiple\", props.multiple);\n    }\n    return el;\n  },\n  createText: (text2) => doc.createTextNode(text2),\n  createComment: (text2) => doc.createComment(text2),\n  setText: (node, text2) => {\n    node.nodeValue = text2;\n  },\n  setElementText: (el, text2) => {\n    el.textContent = text2;\n  },\n  parentNode: (node) => node.parentNode,\n  nextSibling: (node) => node.nextSibling,\n  querySelector: (selector) => doc.querySelector(selector),\n  setScopeId(el, id) {\n    el.setAttribute(id, \"\");\n  },\n  cloneNode(el) {\n    const cloned = el.cloneNode(true);\n    if (`_value` in el) {\n      cloned._value = el._value;\n    }\n    return cloned;\n  },\n  insertStaticContent(content2, parent, anchor, isSVG, start, end) {\n    const before = anchor ? anchor.previousSibling : parent.lastChild;\n    if (start && (start === end || start.nextSibling)) {\n      while (true) {\n        parent.insertBefore(start.cloneNode(true), anchor);\n        if (start === end || !(start = start.nextSibling))\n          break;\n      }\n    } else {\n      templateContainer.innerHTML = isSVG ? `<svg>${content2}</svg>` : content2;\n      const template = templateContainer.content;\n      if (isSVG) {\n        const wrapper = template.firstChild;\n        while (wrapper.firstChild) {\n          template.appendChild(wrapper.firstChild);\n        }\n        template.removeChild(wrapper);\n      }\n      parent.insertBefore(template, anchor);\n    }\n    return [\n      before ? before.nextSibling : parent.firstChild,\n      anchor ? anchor.previousSibling : parent.lastChild\n    ];\n  }\n};\nfunction patchClass(el, value, isSVG) {\n  const transitionClasses = el._vtc;\n  if (transitionClasses) {\n    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n  }\n  if (value == null) {\n    el.removeAttribute(\"class\");\n  } else if (isSVG) {\n    el.setAttribute(\"class\", value);\n  } else {\n    el.className = value;\n  }\n}\nfunction patchStyle(el, prev, next) {\n  const style = el.style;\n  const isCssString = isString(next);\n  if (next && !isCssString) {\n    for (const key in next) {\n      setStyle(style, key, next[key]);\n    }\n    if (prev && !isString(prev)) {\n      for (const key in prev) {\n        if (next[key] == null) {\n          setStyle(style, key, \"\");\n        }\n      }\n    }\n  } else {\n    const currentDisplay = style.display;\n    if (isCssString) {\n      if (prev !== next) {\n        style.cssText = next;\n      }\n    } else if (prev) {\n      el.removeAttribute(\"style\");\n    }\n    if (\"_vod\" in el) {\n      style.display = currentDisplay;\n    }\n  }\n}\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n  if (isArray(val)) {\n    val.forEach((v) => setStyle(style, name, v));\n  } else {\n    if (val == null)\n      val = \"\";\n    if (name.startsWith(\"--\")) {\n      style.setProperty(name, val);\n    } else {\n      const prefixed = autoPrefix(style, name);\n      if (importantRE.test(val)) {\n        style.setProperty(hyphenate(prefixed), val.replace(importantRE, \"\"), \"important\");\n      } else {\n        style[prefixed] = val;\n      }\n    }\n  }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n  const cached = prefixCache[rawName];\n  if (cached) {\n    return cached;\n  }\n  let name = camelize$1(rawName);\n  if (name !== \"filter\" && name in style) {\n    return prefixCache[rawName] = name;\n  }\n  name = capitalize(name);\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefixed = prefixes[i] + name;\n    if (prefixed in style) {\n      return prefixCache[rawName] = prefixed;\n    }\n  }\n  return rawName;\n}\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance2) {\n  if (isSVG && key.startsWith(\"xlink:\")) {\n    if (value == null) {\n      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    const isBoolean = isSpecialBooleanAttr(key);\n    if (value == null || isBoolean && !includeBooleanAttr(value)) {\n      el.removeAttribute(key);\n    } else {\n      el.setAttribute(key, isBoolean ? \"\" : value);\n    }\n  }\n}\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n  if (key === \"innerHTML\" || key === \"textContent\") {\n    if (prevChildren) {\n      unmountChildren(prevChildren, parentComponent, parentSuspense);\n    }\n    el[key] = value == null ? \"\" : value;\n    return;\n  }\n  if (key === \"value\" && el.tagName !== \"PROGRESS\" && !el.tagName.includes(\"-\")) {\n    el._value = value;\n    const newValue = value == null ? \"\" : value;\n    if (el.value !== newValue || el.tagName === \"OPTION\") {\n      el.value = newValue;\n    }\n    if (value == null) {\n      el.removeAttribute(key);\n    }\n    return;\n  }\n  let needRemove = false;\n  if (value === \"\" || value == null) {\n    const type = typeof el[key];\n    if (type === \"boolean\") {\n      value = includeBooleanAttr(value);\n    } else if (value == null && type === \"string\") {\n      value = \"\";\n      needRemove = true;\n    } else if (type === \"number\") {\n      value = 0;\n      needRemove = true;\n    }\n  }\n  try {\n    el[key] = value;\n  } catch (e) {\n  }\n  needRemove && el.removeAttribute(key);\n}\nconst [_getNow, skipTimestampCheck] = /* @__PURE__ */ (() => {\n  let _getNow2 = Date.now;\n  let skipTimestampCheck2 = false;\n  if (typeof window !== \"undefined\") {\n    if (Date.now() > document.createEvent(\"Event\").timeStamp) {\n      _getNow2 = performance.now.bind(performance);\n    }\n    const ffMatch = navigator.userAgent.match(/firefox\\/(\\d+)/i);\n    skipTimestampCheck2 = !!(ffMatch && Number(ffMatch[1]) <= 53);\n  }\n  return [_getNow2, skipTimestampCheck2];\n})();\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst reset = () => {\n  cachedNow = 0;\n};\nconst getNow = () => cachedNow || (p.then(reset), cachedNow = _getNow());\nfunction addEventListener$1(el, event, handler, options) {\n  el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n  el.removeEventListener(event, handler, options);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance2 = null) {\n  const invokers = el._vei || (el._vei = {});\n  const existingInvoker = invokers[rawName];\n  if (nextValue && existingInvoker) {\n    existingInvoker.value = nextValue;\n  } else {\n    const [name, options] = parseName(rawName);\n    if (nextValue) {\n      const invoker = invokers[rawName] = createInvoker(nextValue, instance2);\n      addEventListener$1(el, name, invoker, options);\n    } else if (existingInvoker) {\n      removeEventListener(el, name, existingInvoker, options);\n      invokers[rawName] = void 0;\n    }\n  }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n  let options;\n  if (optionsModifierRE.test(name)) {\n    options = {};\n    let m;\n    while (m = name.match(optionsModifierRE)) {\n      name = name.slice(0, name.length - m[0].length);\n      options[m[0].toLowerCase()] = true;\n    }\n  }\n  return [hyphenate(name.slice(2)), options];\n}\nfunction createInvoker(initialValue, instance2) {\n  const invoker = (e) => {\n    const timeStamp = e.timeStamp || _getNow();\n    if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {\n      callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance2, 5, [e]);\n    }\n  };\n  invoker.value = initialValue;\n  invoker.attached = getNow();\n  return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n  if (isArray(value)) {\n    const originalStop = e.stopImmediatePropagation;\n    e.stopImmediatePropagation = () => {\n      originalStop.call(e);\n      e._stopped = true;\n    };\n    return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n  } else {\n    return value;\n  }\n}\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n  if (key === \"class\") {\n    patchClass(el, nextValue, isSVG);\n  } else if (key === \"style\") {\n    patchStyle(el, prevValue, nextValue);\n  } else if (isOn(key)) {\n    if (!isModelListener(key)) {\n      patchEvent(el, key, prevValue, nextValue, parentComponent);\n    }\n  } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n    patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n  } else {\n    if (key === \"true-value\") {\n      el._trueValue = nextValue;\n    } else if (key === \"false-value\") {\n      el._falseValue = nextValue;\n    }\n    patchAttr(el, key, nextValue, isSVG);\n  }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n  if (isSVG) {\n    if (key === \"innerHTML\" || key === \"textContent\") {\n      return true;\n    }\n    if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n      return true;\n    }\n    return false;\n  }\n  if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n    return false;\n  }\n  if (key === \"form\") {\n    return false;\n  }\n  if (key === \"list\" && el.tagName === \"INPUT\") {\n    return false;\n  }\n  if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n    return false;\n  }\n  if (nativeOnRE.test(key) && isString(value)) {\n    return false;\n  }\n  return key in el;\n}\nfunction defineCustomElement(options, hydrate) {\n  const Comp = defineComponent(options);\n  class VueCustomElement extends VueElement {\n    constructor(initialProps) {\n      super(Comp, initialProps, hydrate);\n    }\n  }\n  VueCustomElement.def = Comp;\n  return VueCustomElement;\n}\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n  constructor(_def, _props = {}, hydrate) {\n    super();\n    this._def = _def;\n    this._props = _props;\n    this._instance = null;\n    this._connected = false;\n    this._resolved = false;\n    this._numberProps = null;\n    if (this.shadowRoot && hydrate) {\n      hydrate(this._createVNode(), this.shadowRoot);\n    } else {\n      this.attachShadow({ mode: \"open\" });\n    }\n  }\n  connectedCallback() {\n    this._connected = true;\n    if (!this._instance) {\n      this._resolveDef();\n    }\n  }\n  disconnectedCallback() {\n    this._connected = false;\n    nextTick(() => {\n      if (!this._connected) {\n        render(null, this.shadowRoot);\n        this._instance = null;\n      }\n    });\n  }\n  _resolveDef() {\n    if (this._resolved) {\n      return;\n    }\n    this._resolved = true;\n    for (let i = 0; i < this.attributes.length; i++) {\n      this._setAttr(this.attributes[i].name);\n    }\n    new MutationObserver((mutations) => {\n      for (const m of mutations) {\n        this._setAttr(m.attributeName);\n      }\n    }).observe(this, { attributes: true });\n    const resolve2 = (def2) => {\n      const { props, styles } = def2;\n      const hasOptions = !isArray(props);\n      const rawKeys = props ? hasOptions ? Object.keys(props) : props : [];\n      let numberProps;\n      if (hasOptions) {\n        for (const key in this._props) {\n          const opt = props[key];\n          if (opt === Number || opt && opt.type === Number) {\n            this._props[key] = toNumber(this._props[key]);\n            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[key] = true;\n          }\n        }\n      }\n      this._numberProps = numberProps;\n      for (const key of Object.keys(this)) {\n        if (key[0] !== \"_\") {\n          this._setProp(key, this[key], true, false);\n        }\n      }\n      for (const key of rawKeys.map(camelize)) {\n        Object.defineProperty(this, key, {\n          get() {\n            return this._getProp(key);\n          },\n          set(val) {\n            this._setProp(key, val);\n          }\n        });\n      }\n      this._applyStyles(styles);\n      this._update();\n    };\n    const asyncDef = this._def.__asyncLoader;\n    if (asyncDef) {\n      asyncDef().then(resolve2);\n    } else {\n      resolve2(this._def);\n    }\n  }\n  _setAttr(key) {\n    let value = this.getAttribute(key);\n    if (this._numberProps && this._numberProps[key]) {\n      value = toNumber(value);\n    }\n    this._setProp(camelize(key), value, false);\n  }\n  _getProp(key) {\n    return this._props[key];\n  }\n  _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n    if (val !== this._props[key]) {\n      this._props[key] = val;\n      if (shouldUpdate && this._instance) {\n        this._update();\n      }\n      if (shouldReflect) {\n        if (val === true) {\n          this.setAttribute(hyphenate(key), \"\");\n        } else if (typeof val === \"string\" || typeof val === \"number\") {\n          this.setAttribute(hyphenate(key), val + \"\");\n        } else if (!val) {\n          this.removeAttribute(hyphenate(key));\n        }\n      }\n    }\n  }\n  _update() {\n    render(this._createVNode(), this.shadowRoot);\n  }\n  _createVNode() {\n    const vnode = createVNode(this._def, extend({}, this._props));\n    if (!this._instance) {\n      vnode.ce = (instance2) => {\n        this._instance = instance2;\n        instance2.isCE = true;\n        instance2.emit = (event, ...args) => {\n          this.dispatchEvent(new CustomEvent(event, {\n            detail: args\n          }));\n        };\n        let parent = this;\n        while (parent = parent && (parent.parentNode || parent.host)) {\n          if (parent instanceof VueElement) {\n            instance2.parent = parent._instance;\n            break;\n          }\n        }\n      };\n    }\n    return vnode;\n  }\n  _applyStyles(styles) {\n    if (styles) {\n      styles.forEach((css) => {\n        const s = document.createElement(\"style\");\n        s.textContent = css;\n        this.shadowRoot.appendChild(s);\n      });\n    }\n  }\n}\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\nconst DOMTransitionPropsValidators = {\n  name: String,\n  type: String,\n  css: {\n    type: Boolean,\n    default: true\n  },\n  duration: [String, Number, Object],\n  enterFromClass: String,\n  enterActiveClass: String,\n  enterToClass: String,\n  appearFromClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  leaveFromClass: String,\n  leaveActiveClass: String,\n  leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend({}, BaseTransition.props, DOMTransitionPropsValidators);\nconst callHook = (hook, args = []) => {\n  if (isArray(hook)) {\n    hook.forEach((h2) => h2(...args));\n  } else if (hook) {\n    hook(...args);\n  }\n};\nconst hasExplicitCallback = (hook) => {\n  return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n  const baseProps = {};\n  for (const key in rawProps) {\n    if (!(key in DOMTransitionPropsValidators)) {\n      baseProps[key] = rawProps[key];\n    }\n  }\n  if (rawProps.css === false) {\n    return baseProps;\n  }\n  const { name = \"v\", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n  const durations = normalizeDuration(duration);\n  const enterDuration = durations && durations[0];\n  const leaveDuration = durations && durations[1];\n  const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n  const finishEnter = (el, isAppear, done) => {\n    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n    done && done();\n  };\n  const finishLeave = (el, done) => {\n    el._isLeaving = false;\n    removeTransitionClass(el, leaveFromClass);\n    removeTransitionClass(el, leaveToClass);\n    removeTransitionClass(el, leaveActiveClass);\n    done && done();\n  };\n  const makeEnterHook = (isAppear) => {\n    return (el, done) => {\n      const hook = isAppear ? onAppear : onEnter;\n      const resolve2 = () => finishEnter(el, isAppear, done);\n      callHook(hook, [el, resolve2]);\n      nextFrame(() => {\n        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n        addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n        if (!hasExplicitCallback(hook)) {\n          whenTransitionEnds(el, type, enterDuration, resolve2);\n        }\n      });\n    };\n  };\n  return extend(baseProps, {\n    onBeforeEnter(el) {\n      callHook(onBeforeEnter, [el]);\n      addTransitionClass(el, enterFromClass);\n      addTransitionClass(el, enterActiveClass);\n    },\n    onBeforeAppear(el) {\n      callHook(onBeforeAppear, [el]);\n      addTransitionClass(el, appearFromClass);\n      addTransitionClass(el, appearActiveClass);\n    },\n    onEnter: makeEnterHook(false),\n    onAppear: makeEnterHook(true),\n    onLeave(el, done) {\n      el._isLeaving = true;\n      const resolve2 = () => finishLeave(el, done);\n      addTransitionClass(el, leaveFromClass);\n      forceReflow();\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(() => {\n        if (!el._isLeaving) {\n          return;\n        }\n        removeTransitionClass(el, leaveFromClass);\n        addTransitionClass(el, leaveToClass);\n        if (!hasExplicitCallback(onLeave)) {\n          whenTransitionEnds(el, type, leaveDuration, resolve2);\n        }\n      });\n      callHook(onLeave, [el, resolve2]);\n    },\n    onEnterCancelled(el) {\n      finishEnter(el, false);\n      callHook(onEnterCancelled, [el]);\n    },\n    onAppearCancelled(el) {\n      finishEnter(el, true);\n      callHook(onAppearCancelled, [el]);\n    },\n    onLeaveCancelled(el) {\n      finishLeave(el);\n      callHook(onLeaveCancelled, [el]);\n    }\n  });\n}\nfunction normalizeDuration(duration) {\n  if (duration == null) {\n    return null;\n  } else if (isObject(duration)) {\n    return [NumberOf(duration.enter), NumberOf(duration.leave)];\n  } else {\n    const n = NumberOf(duration);\n    return [n, n];\n  }\n}\nfunction NumberOf(val) {\n  const res = toNumber(val);\n  return res;\n}\nfunction addTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n  (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n  const { _vtc } = el;\n  if (_vtc) {\n    _vtc.delete(cls);\n    if (!_vtc.size) {\n      el._vtc = void 0;\n    }\n  }\n}\nfunction nextFrame(cb) {\n  requestAnimationFrame(() => {\n    requestAnimationFrame(cb);\n  });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {\n  const id = el._endId = ++endId;\n  const resolveIfNotStale = () => {\n    if (id === el._endId) {\n      resolve2();\n    }\n  };\n  if (explicitTimeout) {\n    return setTimeout(resolveIfNotStale, explicitTimeout);\n  }\n  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n  if (!type) {\n    return resolve2();\n  }\n  const endEvent = type + \"end\";\n  let ended = 0;\n  const end = () => {\n    el.removeEventListener(endEvent, onEnd);\n    resolveIfNotStale();\n  };\n  const onEnd = (e) => {\n    if (e.target === el && ++ended >= propCount) {\n      end();\n    }\n  };\n  setTimeout(() => {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n  const styles = window.getComputedStyle(el);\n  const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n  const transitionDelays = getStyleProperties(TRANSITION + \"Delay\");\n  const transitionDurations = getStyleProperties(TRANSITION + \"Duration\");\n  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  const animationDelays = getStyleProperties(ANIMATION + \"Delay\");\n  const animationDurations = getStyleProperties(ANIMATION + \"Duration\");\n  const animationTimeout = getTimeout(animationDelays, animationDurations);\n  let type = null;\n  let timeout = 0;\n  let propCount = 0;\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n    propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n  }\n  const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(styles[TRANSITION + \"Property\"]);\n  return {\n    type,\n    timeout,\n    propCount,\n    hasTransform\n  };\n}\nfunction getTimeout(delays, durations) {\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n  return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n  return document.body.offsetHeight;\n}\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst TransitionGroupImpl = {\n  name: \"TransitionGroup\",\n  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n    tag: String,\n    moveClass: String\n  }),\n  setup(props, { slots }) {\n    const instance2 = getCurrentInstance();\n    const state = useTransitionState();\n    let prevChildren;\n    let children;\n    onUpdated(() => {\n      if (!prevChildren.length) {\n        return;\n      }\n      const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n      if (!hasCSSTransform(prevChildren[0].el, instance2.vnode.el, moveClass)) {\n        return;\n      }\n      prevChildren.forEach(callPendingCbs);\n      prevChildren.forEach(recordPosition);\n      const movedChildren = prevChildren.filter(applyTranslation);\n      forceReflow();\n      movedChildren.forEach((c) => {\n        const el = c.el;\n        const style = el.style;\n        addTransitionClass(el, moveClass);\n        style.transform = style.webkitTransform = style.transitionDuration = \"\";\n        const cb = el._moveCb = (e) => {\n          if (e && e.target !== el) {\n            return;\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(\"transitionend\", cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        };\n        el.addEventListener(\"transitionend\", cb);\n      });\n    });\n    return () => {\n      const rawProps = toRaw(props);\n      const cssTransitionProps = resolveTransitionProps(rawProps);\n      let tag = rawProps.tag || Fragment;\n      prevChildren = children;\n      children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        if (child.key != null) {\n          setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n        }\n      }\n      if (prevChildren) {\n        for (let i = 0; i < prevChildren.length; i++) {\n          const child = prevChildren[i];\n          setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n          positionMap.set(child, child.el.getBoundingClientRect());\n        }\n      }\n      return createVNode(tag, null, children);\n    };\n  }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n  const el = c.el;\n  if (el._moveCb) {\n    el._moveCb();\n  }\n  if (el._enterCb) {\n    el._enterCb();\n  }\n}\nfunction recordPosition(c) {\n  newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n  const oldPos = positionMap.get(c);\n  const newPos = newPositionMap.get(c);\n  const dx = oldPos.left - newPos.left;\n  const dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    const s = c.el.style;\n    s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n    s.transitionDuration = \"0s\";\n    return c;\n  }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n  const clone = el.cloneNode();\n  if (el._vtc) {\n    el._vtc.forEach((cls) => {\n      cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n    });\n  }\n  moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n  clone.style.display = \"none\";\n  const container = root.nodeType === 1 ? root : root.parentNode;\n  container.appendChild(clone);\n  const { hasTransform } = getTransitionInfo(clone);\n  container.removeChild(clone);\n  return hasTransform;\n}\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n  stop: (e) => e.stopPropagation(),\n  prevent: (e) => e.preventDefault(),\n  self: (e) => e.target !== e.currentTarget,\n  ctrl: (e) => !e.ctrlKey,\n  shift: (e) => !e.shiftKey,\n  alt: (e) => !e.altKey,\n  meta: (e) => !e.metaKey,\n  left: (e) => \"button\" in e && e.button !== 0,\n  middle: (e) => \"button\" in e && e.button !== 1,\n  right: (e) => \"button\" in e && e.button !== 2,\n  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n  return (event, ...args) => {\n    for (let i = 0; i < modifiers.length; i++) {\n      const guard = modifierGuards[modifiers[i]];\n      if (guard && guard(event, modifiers))\n        return;\n    }\n    return fn(event, ...args);\n  };\n};\nconst keyNames = {\n  esc: \"escape\",\n  space: \" \",\n  up: \"arrow-up\",\n  left: \"arrow-left\",\n  right: \"arrow-right\",\n  down: \"arrow-down\",\n  delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n  return (event) => {\n    if (!(\"key\" in event)) {\n      return;\n    }\n    const eventKey = hyphenate(event.key);\n    if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n      return fn(event);\n    }\n  };\n};\nconst vShow = {\n  beforeMount(el, { value }, { transition }) {\n    el._vod = el.style.display === \"none\" ? \"\" : el.style.display;\n    if (transition && value) {\n      transition.beforeEnter(el);\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  mounted(el, { value }, { transition }) {\n    if (transition && value) {\n      transition.enter(el);\n    }\n  },\n  updated(el, { value, oldValue }, { transition }) {\n    if (!value === !oldValue)\n      return;\n    if (transition) {\n      if (value) {\n        transition.beforeEnter(el);\n        setDisplay(el, true);\n        transition.enter(el);\n      } else {\n        transition.leave(el, () => {\n          setDisplay(el, false);\n        });\n      }\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  beforeUnmount(el, { value }) {\n    setDisplay(el, value);\n  }\n};\nfunction setDisplay(el, value) {\n  el.style.display = value ? el._vod : \"none\";\n}\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nfunction ensureRenderer() {\n  return renderer || (renderer = createRenderer(rendererOptions));\n}\nconst render = (...args) => {\n  ensureRenderer().render(...args);\n};\nvar _export_sfc = (sfc, props) => {\n  const target = sfc.__vccOpts || sfc;\n  for (const [key, val] of props) {\n    target[key] = val;\n  }\n  return target;\n};\nconst _sfc_main$q = {\n  name: \"AppLoader\",\n  props: {\n    show: { type: Boolean, default: false },\n    infinite: { type: Boolean, default: false },\n    type: { type: String, required: true },\n    messageId: { type: String, default: \"\" }\n  }\n};\nconst _hoisted_1$q = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_2$n = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_3$j = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_4$g = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_5$b = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_6$7 = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nfunction _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createBlock(Transition, {\n    name: \"vac-fade-spinner\",\n    appear: \"\"\n  }, {\n    default: withCtx(() => [\n      $props.show ? (openBlock(), createElementBlock(\"div\", {\n        key: 0,\n        class: normalizeClass([\"vac-loader-wrapper\", {\n          \"vac-container-center\": !$props.infinite,\n          \"vac-container-top\": $props.infinite\n        }])\n      }, [\n        $props.type === \"rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-rooms\", { key: 0 }, () => [\n          _hoisted_1$q\n        ]) : createCommentVNode(\"\", true),\n        $props.type === \"infinite-rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-rooms\", { key: 1 }, () => [\n          _hoisted_2$n\n        ]) : createCommentVNode(\"\", true),\n        $props.type === \"message-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-message-file_\" + $props.messageId, { key: 2 }, () => [\n          _hoisted_3$j\n        ]) : createCommentVNode(\"\", true),\n        $props.type === \"room-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-room-file\", { key: 3 }, () => [\n          _hoisted_4$g\n        ]) : createCommentVNode(\"\", true),\n        $props.type === \"messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-messages\", { key: 4 }, () => [\n          _hoisted_5$b\n        ]) : createCommentVNode(\"\", true),\n        $props.type === \"infinite-messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-messages\", { key: 5 }, () => [\n          _hoisted_6$7\n        ]) : createCommentVNode(\"\", true)\n      ], 2)) : createCommentVNode(\"\", true)\n    ]),\n    _: 3\n  });\n}\nvar Loader = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"render\", _sfc_render$q]]);\nconst _sfc_main$p = {\n  name: \"SvgIcon\",\n  props: {\n    name: { type: String, default: null },\n    param: { type: String, default: null }\n  },\n  data() {\n    return {\n      svgItem: {\n        search: {\n          path: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"\n        },\n        add: {\n          path: \"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"\n        },\n        toggle: {\n          path: \"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z\"\n        },\n        menu: {\n          path: \"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z\"\n        },\n        close: {\n          path: \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\"\n        },\n        file: {\n          path: \"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"\n        },\n        paperclip: {\n          path: \"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\"\n        },\n        \"close-outline\": {\n          path: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"\n        },\n        send: {\n          path: \"M2,21L23,12L2,3V10L17,12L2,14V21Z\"\n        },\n        emoji: {\n          path: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"\n        },\n        document: {\n          path: \"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"\n        },\n        pencil: {\n          path: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"\n        },\n        checkmark: {\n          path: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"\n        },\n        \"double-checkmark\": {\n          path: \"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"\n        },\n        eye: {\n          path: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n        },\n        dropdown: {\n          path: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"\n        },\n        deleted: {\n          path: \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z\"\n        },\n        microphone: {\n          size: \"large\",\n          path: \"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z\"\n        },\n        \"audio-play\": {\n          size: \"medium\",\n          path: \"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684   c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84   c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z\"\n        },\n        \"audio-pause\": {\n          size: \"medium\",\n          path: \"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\",\n          path2: \"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\"\n        }\n      }\n    };\n  },\n  computed: {\n    svgId() {\n      const param = this.param ? \"-\" + this.param : \"\";\n      return `vac-icon-${this.name}${param}`;\n    },\n    size() {\n      const item = this.svgItem[this.name];\n      if (item.size === \"large\")\n        return 512;\n      else if (item.size === \"medium\")\n        return 48;\n      else\n        return 24;\n    }\n  }\n};\nconst _hoisted_1$p = [\"viewBox\"];\nconst _hoisted_2$m = [\"id\", \"d\"];\nconst _hoisted_3$i = [\"id\", \"d\"];\nfunction _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n    version: \"1.1\",\n    width: \"24\",\n    height: \"24\",\n    viewBox: `0 0 ${$options.size} ${$options.size}`\n  }, [\n    createBaseVNode(\"path\", {\n      id: $options.svgId,\n      d: $data.svgItem[$props.name].path\n    }, null, 8, _hoisted_2$m),\n    $data.svgItem[$props.name].path2 ? (openBlock(), createElementBlock(\"path\", {\n      key: 0,\n      id: $options.svgId,\n      d: $data.svgItem[$props.name].path2\n    }, null, 8, _hoisted_3$i)) : createCommentVNode(\"\", true)\n  ], 8, _hoisted_1$p);\n}\nvar SvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"render\", _sfc_render$p]]);\nconst _sfc_main$o = {\n  name: \"RoomsSearch\",\n  components: { SvgIcon },\n  props: {\n    textMessages: { type: Object, required: true },\n    showSearch: { type: Boolean, required: true },\n    showAddRoom: { type: Boolean, required: true },\n    rooms: { type: Array, required: true },\n    loadingRooms: { type: Boolean, required: true }\n  },\n  emits: [\"search-room\", \"add-room\"],\n  computed: {\n    showSearchBar() {\n      return this.showSearch || this.showAddRoom;\n    }\n  }\n};\nconst _hoisted_1$o = {\n  key: 0,\n  class: \"vac-icon-search\"\n};\nconst _hoisted_2$l = [\"placeholder\"];\nfunction _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createElementBlock(\"div\", {\n    class: normalizeClass({\n      \"vac-box-search\": $options.showSearchBar,\n      \"vac-box-empty\": !$options.showSearchBar\n    })\n  }, [\n    $props.showSearch ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n      !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n        renderSlot(_ctx.$slots, \"search-icon\", {}, () => [\n          createVNode(_component_svg_icon, { name: \"search\" })\n        ])\n      ])) : createCommentVNode(\"\", true),\n      !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"input\", {\n        key: 1,\n        type: \"search\",\n        placeholder: $props.textMessages.SEARCH,\n        autocomplete: \"off\",\n        class: \"vac-input\",\n        onInput: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"search-room\", $event))\n      }, null, 40, _hoisted_2$l)) : createCommentVNode(\"\", true)\n    ], 64)) : createCommentVNode(\"\", true),\n    $props.showAddRoom ? (openBlock(), createElementBlock(\"div\", {\n      key: 1,\n      class: \"vac-svg-button vac-add-icon\",\n      onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"add-room\"))\n    }, [\n      renderSlot(_ctx.$slots, \"add-icon\", {}, () => [\n        createVNode(_component_svg_icon, { name: \"add\" })\n      ])\n    ])) : createCommentVNode(\"\", true)\n  ], 2);\n}\nvar RoomsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"render\", _sfc_render$o]]);\nconst element$1 = document.createElement(\"i\");\nfunction decodeNamedCharacterReference(value) {\n  const characterReference2 = \"&\" + value + \";\";\n  element$1.innerHTML = characterReference2;\n  const char = element$1.textContent;\n  if (char.charCodeAt(char.length - 1) === 59 && value !== \"semi\") {\n    return false;\n  }\n  return char === characterReference2 ? false : char;\n}\nfunction splice(list2, start, remove2, items) {\n  const end = list2.length;\n  let chunkStart = 0;\n  let parameters;\n  if (start < 0) {\n    start = -start > end ? 0 : end + start;\n  } else {\n    start = start > end ? end : start;\n  }\n  remove2 = remove2 > 0 ? remove2 : 0;\n  if (items.length < 1e4) {\n    parameters = Array.from(items);\n    parameters.unshift(start, remove2);\n    list2.splice(...parameters);\n  } else {\n    if (remove2)\n      list2.splice(start, remove2);\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 1e4);\n      parameters.unshift(start, 0);\n      list2.splice(...parameters);\n      chunkStart += 1e4;\n      start += 1e4;\n    }\n  }\n}\nfunction push(list2, items) {\n  if (list2.length > 0) {\n    splice(list2, list2.length, 0, items);\n    return list2;\n  }\n  return items;\n}\nconst hasOwnProperty$1 = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n  const all = {};\n  let index = -1;\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index]);\n  }\n  return all;\n}\nfunction syntaxExtension(all, extension) {\n  let hook;\n  for (hook in extension) {\n    const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n    const left = maybe || (all[hook] = {});\n    const right = extension[hook];\n    let code2;\n    if (right) {\n      for (code2 in right) {\n        if (!hasOwnProperty$1.call(left, code2))\n          left[code2] = [];\n        const value = right[code2];\n        constructs(\n          left[code2],\n          Array.isArray(value) ? value : value ? [value] : []\n        );\n      }\n    }\n  }\n}\nfunction constructs(existing, list2) {\n  let index = -1;\n  const before = [];\n  while (++index < list2.length) {\n    (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n  }\n  splice(existing, 0, 0, before);\n}\nfunction combineHtmlExtensions(htmlExtensions) {\n  const handlers = {};\n  let index = -1;\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index]);\n  }\n  return handlers;\n}\nfunction htmlExtension(all, extension) {\n  let hook;\n  for (hook in extension) {\n    const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n    const left = maybe || (all[hook] = {});\n    const right = extension[hook];\n    let type;\n    if (right) {\n      for (type in right) {\n        left[type] = right[type];\n      }\n    }\n  }\n}\nfunction decodeNumericCharacterReference(value, base) {\n  const code2 = Number.parseInt(value, base);\n  if (code2 < 9 || code2 === 11 || code2 > 13 && code2 < 32 || code2 > 126 && code2 < 160 || code2 > 55295 && code2 < 57344 || code2 > 64975 && code2 < 65008 || (code2 & 65535) === 65535 || (code2 & 65535) === 65534 || code2 > 1114111) {\n    return \"\\uFFFD\";\n  }\n  return String.fromCharCode(code2);\n}\nconst characterReferences = { '\"': \"quot\", \"&\": \"amp\", \"<\": \"lt\", \">\": \"gt\" };\nfunction encode(value) {\n  return value.replace(/[\"&<>]/g, replace2);\n  function replace2(value2) {\n    return \"&\" + characterReferences[value2] + \";\";\n  }\n}\nfunction normalizeIdentifier(value) {\n  return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst unicodePunctuationRegex = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\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\\u1B7D\\u1B7E\\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-\\u2E5D\\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]/;\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nconst asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\nfunction asciiControl(code2) {\n  return code2 !== null && (code2 < 32 || code2 === 127);\n}\nconst asciiDigit = regexCheck(/\\d/);\nconst asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\nconst asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\nfunction markdownLineEnding(code2) {\n  return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n  return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n  return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(unicodePunctuationRegex);\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n  return check;\n  function check(code2) {\n    return code2 !== null && regex.test(String.fromCharCode(code2));\n  }\n}\nfunction sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || \"\"));\n  if (!protocol) {\n    return value;\n  }\n  const colon = value.indexOf(\":\");\n  const questionMark = value.indexOf(\"?\");\n  const numberSign = value.indexOf(\"#\");\n  const slash = value.indexOf(\"/\");\n  if (colon < 0 || slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || protocol.test(value.slice(0, colon))) {\n    return value;\n  }\n  return \"\";\n}\nfunction normalizeUri(value) {\n  const result = [];\n  let index = -1;\n  let start = 0;\n  let skip = 0;\n  while (++index < value.length) {\n    const code2 = value.charCodeAt(index);\n    let replace2 = \"\";\n    if (code2 === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n      skip = 2;\n    } else if (code2 < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code2))) {\n        replace2 = String.fromCharCode(code2);\n      }\n    } else if (code2 > 55295 && code2 < 57344) {\n      const next = value.charCodeAt(index + 1);\n      if (code2 < 56320 && next > 56319 && next < 57344) {\n        replace2 = String.fromCharCode(code2, next);\n        skip = 1;\n      } else {\n        replace2 = \"\\uFFFD\";\n      }\n    } else {\n      replace2 = String.fromCharCode(code2);\n    }\n    if (replace2) {\n      result.push(value.slice(start, index), encodeURIComponent(replace2));\n      start = index + skip + 1;\n      replace2 = \"\";\n    }\n    if (skip) {\n      index += skip;\n      skip = 0;\n    }\n  }\n  return result.join(\"\") + value.slice(start);\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nconst protocolHref = /^(https?|ircs?|mailto|xmpp)$/i;\nconst protocolSrc = /^https?$/i;\nfunction compile(options) {\n  const settings = options || {};\n  let tags = true;\n  const definitions2 = {};\n  const buffers = [[]];\n  const mediaStack = [];\n  const tightStack = [];\n  const defaultHandlers = {\n    enter: {\n      blockQuote: onenterblockquote,\n      codeFenced: onentercodefenced,\n      codeFencedFenceInfo: buffer,\n      codeFencedFenceMeta: buffer,\n      codeIndented: onentercodeindented,\n      codeText: onentercodetext,\n      content: onentercontent,\n      definition: onenterdefinition,\n      definitionDestinationString: onenterdefinitiondestinationstring,\n      definitionLabelString: buffer,\n      definitionTitleString: buffer,\n      emphasis: onenteremphasis,\n      htmlFlow: onenterhtmlflow,\n      htmlText: onenterhtml,\n      image: onenterimage,\n      label: buffer,\n      link: onenterlink,\n      listItemMarker: onenterlistitemmarker,\n      listItemValue: onenterlistitemvalue,\n      listOrdered: onenterlistordered,\n      listUnordered: onenterlistunordered,\n      paragraph: onenterparagraph,\n      reference: buffer,\n      resource: onenterresource,\n      resourceDestinationString: onenterresourcedestinationstring,\n      resourceTitleString: buffer,\n      setextHeading: onentersetextheading,\n      strong: onenterstrong\n    },\n    exit: {\n      atxHeading: onexitatxheading,\n      atxHeadingSequence: onexitatxheadingsequence,\n      autolinkEmail: onexitautolinkemail,\n      autolinkProtocol: onexitautolinkprotocol,\n      blockQuote: onexitblockquote,\n      characterEscapeValue: onexitdata,\n      characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n      characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n      characterReferenceValue: onexitcharacterreferencevalue,\n      codeFenced: onexitflowcode,\n      codeFencedFence: onexitcodefencedfence,\n      codeFencedFenceInfo: onexitcodefencedfenceinfo,\n      codeFencedFenceMeta: resume,\n      codeFlowValue: onexitcodeflowvalue,\n      codeIndented: onexitflowcode,\n      codeText: onexitcodetext,\n      codeTextData: onexitdata,\n      data: onexitdata,\n      definition: onexitdefinition,\n      definitionDestinationString: onexitdefinitiondestinationstring,\n      definitionLabelString: onexitdefinitionlabelstring,\n      definitionTitleString: onexitdefinitiontitlestring,\n      emphasis: onexitemphasis,\n      hardBreakEscape: onexithardbreak,\n      hardBreakTrailing: onexithardbreak,\n      htmlFlow: onexithtml,\n      htmlFlowData: onexitdata,\n      htmlText: onexithtml,\n      htmlTextData: onexitdata,\n      image: onexitmedia,\n      label: onexitlabel,\n      labelText: onexitlabeltext,\n      lineEnding: onexitlineending,\n      link: onexitmedia,\n      listOrdered: onexitlistordered,\n      listUnordered: onexitlistunordered,\n      paragraph: onexitparagraph,\n      reference: resume,\n      referenceString: onexitreferencestring,\n      resource: resume,\n      resourceDestinationString: onexitresourcedestinationstring,\n      resourceTitleString: onexitresourcetitlestring,\n      setextHeading: onexitsetextheading,\n      setextHeadingLineSequence: onexitsetextheadinglinesequence,\n      setextHeadingText: onexitsetextheadingtext,\n      strong: onexitstrong,\n      thematicBreak: onexitthematicbreak\n    }\n  };\n  const handlers = combineHtmlExtensions(\n    [defaultHandlers].concat(settings.htmlExtensions || [])\n  );\n  const data = {\n    tightStack,\n    definitions: definitions2\n  };\n  const context = {\n    lineEndingIfNeeded,\n    options: settings,\n    encode: encode$1,\n    raw,\n    tag,\n    buffer,\n    resume,\n    setData,\n    getData\n  };\n  let lineEndingStyle = settings.defaultLineEnding;\n  return compile2;\n  function compile2(events) {\n    let index = -1;\n    let start = 0;\n    const listStack = [];\n    let head = [];\n    let body = [];\n    while (++index < events.length) {\n      if (!lineEndingStyle && (events[index][1].type === \"lineEnding\" || events[index][1].type === \"lineEndingBlank\")) {\n        lineEndingStyle = events[index][2].sliceSerialize(events[index][1]);\n      }\n      if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n        if (events[index][0] === \"enter\") {\n          listStack.push(index);\n        } else {\n          prepareList(events.slice(listStack.pop(), index));\n        }\n      }\n      if (events[index][1].type === \"definition\") {\n        if (events[index][0] === \"enter\") {\n          body = push(body, events.slice(start, index));\n          start = index;\n        } else {\n          head = push(head, events.slice(start, index + 1));\n          start = index + 1;\n        }\n      }\n    }\n    head = push(head, body);\n    head = push(head, events.slice(start));\n    index = -1;\n    const result = head;\n    if (handlers.enter.null) {\n      handlers.enter.null.call(context);\n    }\n    while (++index < events.length) {\n      const handles = handlers[result[index][0]];\n      const kind = result[index][1].type;\n      const handle = handles[kind];\n      if (hasOwnProperty.call(handles, kind) && handle) {\n        handle.call(\n          Object.assign(\n            {\n              sliceSerialize: result[index][2].sliceSerialize\n            },\n            context\n          ),\n          result[index][1]\n        );\n      }\n    }\n    if (handlers.exit.null) {\n      handlers.exit.null.call(context);\n    }\n    return buffers[0].join(\"\");\n  }\n  function prepareList(slice) {\n    const length = slice.length;\n    let index = 0;\n    let containerBalance = 0;\n    let loose = false;\n    let atMarker;\n    while (++index < length) {\n      const event = slice[index];\n      if (event[1]._container) {\n        atMarker = void 0;\n        if (event[0] === \"enter\") {\n          containerBalance++;\n        } else {\n          containerBalance--;\n        }\n      } else\n        switch (event[1].type) {\n          case \"listItemPrefix\": {\n            if (event[0] === \"exit\") {\n              atMarker = true;\n            }\n            break;\n          }\n          case \"linePrefix\": {\n            break;\n          }\n          case \"lineEndingBlank\": {\n            if (event[0] === \"enter\" && !containerBalance) {\n              if (atMarker) {\n                atMarker = void 0;\n              } else {\n                loose = true;\n              }\n            }\n            break;\n          }\n          default: {\n            atMarker = void 0;\n          }\n        }\n    }\n    slice[0][1]._loose = loose;\n  }\n  function setData(key, value) {\n    data[key] = value;\n  }\n  function getData(key) {\n    return data[key];\n  }\n  function buffer() {\n    buffers.push([]);\n  }\n  function resume() {\n    const buf = buffers.pop();\n    return buf.join(\"\");\n  }\n  function tag(value) {\n    if (!tags)\n      return;\n    setData(\"lastWasTag\", true);\n    buffers[buffers.length - 1].push(value);\n  }\n  function raw(value) {\n    setData(\"lastWasTag\");\n    buffers[buffers.length - 1].push(value);\n  }\n  function lineEnding2() {\n    raw(lineEndingStyle || \"\\n\");\n  }\n  function lineEndingIfNeeded() {\n    const buffer2 = buffers[buffers.length - 1];\n    const slice = buffer2[buffer2.length - 1];\n    const previous2 = slice ? slice.charCodeAt(slice.length - 1) : null;\n    if (previous2 === 10 || previous2 === 13 || previous2 === null) {\n      return;\n    }\n    lineEnding2();\n  }\n  function encode$1(value) {\n    return getData(\"ignoreEncode\") ? value : encode(value);\n  }\n  function onenterlistordered(token) {\n    tightStack.push(!token._loose);\n    lineEndingIfNeeded();\n    tag(\"<ol\");\n    setData(\"expectFirstItem\", true);\n  }\n  function onenterlistunordered(token) {\n    tightStack.push(!token._loose);\n    lineEndingIfNeeded();\n    tag(\"<ul\");\n    setData(\"expectFirstItem\", true);\n  }\n  function onenterlistitemvalue(token) {\n    if (getData(\"expectFirstItem\")) {\n      const value = Number.parseInt(this.sliceSerialize(token), 10);\n      if (value !== 1) {\n        tag(' start=\"' + encode$1(String(value)) + '\"');\n      }\n    }\n  }\n  function onenterlistitemmarker() {\n    if (getData(\"expectFirstItem\")) {\n      tag(\">\");\n    } else {\n      onexitlistitem();\n    }\n    lineEndingIfNeeded();\n    tag(\"<li>\");\n    setData(\"expectFirstItem\");\n    setData(\"lastWasTag\");\n  }\n  function onexitlistordered() {\n    onexitlistitem();\n    tightStack.pop();\n    lineEnding2();\n    tag(\"</ol>\");\n  }\n  function onexitlistunordered() {\n    onexitlistitem();\n    tightStack.pop();\n    lineEnding2();\n    tag(\"</ul>\");\n  }\n  function onexitlistitem() {\n    if (getData(\"lastWasTag\") && !getData(\"slurpAllLineEndings\")) {\n      lineEndingIfNeeded();\n    }\n    tag(\"</li>\");\n    setData(\"slurpAllLineEndings\");\n  }\n  function onenterblockquote() {\n    tightStack.push(false);\n    lineEndingIfNeeded();\n    tag(\"<blockquote>\");\n  }\n  function onexitblockquote() {\n    tightStack.pop();\n    lineEndingIfNeeded();\n    tag(\"</blockquote>\");\n    setData(\"slurpAllLineEndings\");\n  }\n  function onenterparagraph() {\n    if (!tightStack[tightStack.length - 1]) {\n      lineEndingIfNeeded();\n      tag(\"<p>\");\n    }\n    setData(\"slurpAllLineEndings\");\n  }\n  function onexitparagraph() {\n    if (tightStack[tightStack.length - 1]) {\n      setData(\"slurpAllLineEndings\", true);\n    } else {\n      tag(\"</p>\");\n    }\n  }\n  function onentercodefenced() {\n    lineEndingIfNeeded();\n    tag(\"<pre><code\");\n    setData(\"fencesCount\", 0);\n  }\n  function onexitcodefencedfenceinfo() {\n    const value = resume();\n    tag(' class=\"language-' + value + '\"');\n  }\n  function onexitcodefencedfence() {\n    const count = getData(\"fencesCount\") || 0;\n    if (!count) {\n      tag(\">\");\n      setData(\"slurpOneLineEnding\", true);\n    }\n    setData(\"fencesCount\", count + 1);\n  }\n  function onentercodeindented() {\n    lineEndingIfNeeded();\n    tag(\"<pre><code>\");\n  }\n  function onexitflowcode() {\n    const count = getData(\"fencesCount\");\n    if (count !== void 0 && count < 2 && data.tightStack.length > 0 && !getData(\"lastWasTag\")) {\n      lineEnding2();\n    }\n    if (getData(\"flowCodeSeenData\")) {\n      lineEndingIfNeeded();\n    }\n    tag(\"</code></pre>\");\n    if (count !== void 0 && count < 2)\n      lineEndingIfNeeded();\n    setData(\"flowCodeSeenData\");\n    setData(\"fencesCount\");\n    setData(\"slurpOneLineEnding\");\n  }\n  function onenterimage() {\n    mediaStack.push({\n      image: true\n    });\n    tags = void 0;\n  }\n  function onenterlink() {\n    mediaStack.push({});\n  }\n  function onexitlabeltext(token) {\n    mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n  }\n  function onexitlabel() {\n    mediaStack[mediaStack.length - 1].label = resume();\n  }\n  function onexitreferencestring(token) {\n    mediaStack[mediaStack.length - 1].referenceId = this.sliceSerialize(token);\n  }\n  function onenterresource() {\n    buffer();\n    mediaStack[mediaStack.length - 1].destination = \"\";\n  }\n  function onenterresourcedestinationstring() {\n    buffer();\n    setData(\"ignoreEncode\", true);\n  }\n  function onexitresourcedestinationstring() {\n    mediaStack[mediaStack.length - 1].destination = resume();\n    setData(\"ignoreEncode\");\n  }\n  function onexitresourcetitlestring() {\n    mediaStack[mediaStack.length - 1].title = resume();\n  }\n  function onexitmedia() {\n    let index = mediaStack.length - 1;\n    const media = mediaStack[index];\n    const id = media.referenceId || media.labelId;\n    const context2 = media.destination === void 0 ? definitions2[normalizeIdentifier(id)] : media;\n    tags = true;\n    while (index--) {\n      if (mediaStack[index].image) {\n        tags = void 0;\n        break;\n      }\n    }\n    if (media.image) {\n      tag(\n        '<img src=\"' + sanitizeUri(\n          context2.destination,\n          settings.allowDangerousProtocol ? void 0 : protocolSrc\n        ) + '\" alt=\"'\n      );\n      raw(media.label);\n      tag('\"');\n    } else {\n      tag(\n        '<a href=\"' + sanitizeUri(\n          context2.destination,\n          settings.allowDangerousProtocol ? void 0 : protocolHref\n        ) + '\"'\n      );\n    }\n    tag(context2.title ? ' title=\"' + context2.title + '\"' : \"\");\n    if (media.image) {\n      tag(\" />\");\n    } else {\n      tag(\">\");\n      raw(media.label);\n      tag(\"</a>\");\n    }\n    mediaStack.pop();\n  }\n  function onenterdefinition() {\n    buffer();\n    mediaStack.push({});\n  }\n  function onexitdefinitionlabelstring(token) {\n    resume();\n    mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n  }\n  function onenterdefinitiondestinationstring() {\n    buffer();\n    setData(\"ignoreEncode\", true);\n  }\n  function onexitdefinitiondestinationstring() {\n    mediaStack[mediaStack.length - 1].destination = resume();\n    setData(\"ignoreEncode\");\n  }\n  function onexitdefinitiontitlestring() {\n    mediaStack[mediaStack.length - 1].title = resume();\n  }\n  function onexitdefinition() {\n    const media = mediaStack[mediaStack.length - 1];\n    const id = normalizeIdentifier(media.labelId);\n    resume();\n    if (!hasOwnProperty.call(definitions2, id)) {\n      definitions2[id] = mediaStack[mediaStack.length - 1];\n    }\n    mediaStack.pop();\n  }\n  function onentercontent() {\n    setData(\"slurpAllLineEndings\", true);\n  }\n  function onexitatxheadingsequence(token) {\n    if (getData(\"headingRank\"))\n      return;\n    setData(\"headingRank\", this.sliceSerialize(token).length);\n    lineEndingIfNeeded();\n    tag(\"<h\" + getData(\"headingRank\") + \">\");\n  }\n  function onentersetextheading() {\n    buffer();\n    setData(\"slurpAllLineEndings\");\n  }\n  function onexitsetextheadingtext() {\n    setData(\"slurpAllLineEndings\", true);\n  }\n  function onexitatxheading() {\n    tag(\"</h\" + getData(\"headingRank\") + \">\");\n    setData(\"headingRank\");\n  }\n  function onexitsetextheadinglinesequence(token) {\n    setData(\n      \"headingRank\",\n      this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n    );\n  }\n  function onexitsetextheading() {\n    const value = resume();\n    lineEndingIfNeeded();\n    tag(\"<h\" + getData(\"headingRank\") + \">\");\n    raw(value);\n    tag(\"</h\" + getData(\"headingRank\") + \">\");\n    setData(\"slurpAllLineEndings\");\n    setData(\"headingRank\");\n  }\n  function onexitdata(token) {\n    raw(encode$1(this.sliceSerialize(token)));\n  }\n  function onexitlineending(token) {\n    if (getData(\"slurpAllLineEndings\")) {\n      return;\n    }\n    if (getData(\"slurpOneLineEnding\")) {\n      setData(\"slurpOneLineEnding\");\n      return;\n    }\n    if (getData(\"inCodeText\")) {\n      raw(\" \");\n      return;\n    }\n    raw(encode$1(this.sliceSerialize(token)));\n  }\n  function onexitcodeflowvalue(token) {\n    raw(encode$1(this.sliceSerialize(token)));\n    setData(\"flowCodeSeenData\", true);\n  }\n  function onexithardbreak() {\n    tag(\"<br />\");\n  }\n  function onenterhtmlflow() {\n    lineEndingIfNeeded();\n    onenterhtml();\n  }\n  function onexithtml() {\n    setData(\"ignoreEncode\");\n  }\n  function onenterhtml() {\n    if (settings.allowDangerousHtml) {\n      setData(\"ignoreEncode\", true);\n    }\n  }\n  function onenteremphasis() {\n    tag(\"<em>\");\n  }\n  function onenterstrong() {\n    tag(\"<strong>\");\n  }\n  function onentercodetext() {\n    setData(\"inCodeText\", true);\n    tag(\"<code>\");\n  }\n  function onexitcodetext() {\n    setData(\"inCodeText\");\n    tag(\"</code>\");\n  }\n  function onexitemphasis() {\n    tag(\"</em>\");\n  }\n  function onexitstrong() {\n    tag(\"</strong>\");\n  }\n  function onexitthematicbreak() {\n    lineEndingIfNeeded();\n    tag(\"<hr />\");\n  }\n  function onexitcharacterreferencemarker(token) {\n    setData(\"characterReferenceType\", token.type);\n  }\n  function onexitcharacterreferencevalue(token) {\n    let value = this.sliceSerialize(token);\n    value = getData(\"characterReferenceType\") ? decodeNumericCharacterReference(\n      value,\n      getData(\"characterReferenceType\") === \"characterReferenceMarkerNumeric\" ? 10 : 16\n    ) : decodeNamedCharacterReference(value);\n    raw(encode$1(value));\n    setData(\"characterReferenceType\");\n  }\n  function onexitautolinkprotocol(token) {\n    const uri = this.sliceSerialize(token);\n    tag(\n      '<a href=\"' + sanitizeUri(\n        uri,\n        settings.allowDangerousProtocol ? void 0 : protocolHref\n      ) + '\">'\n    );\n    raw(encode$1(uri));\n    tag(\"</a>\");\n  }\n  function onexitautolinkemail(token) {\n    const uri = this.sliceSerialize(token);\n    tag('<a href=\"' + sanitizeUri(\"mailto:\" + uri) + '\">');\n    raw(encode$1(uri));\n    tag(\"</a>\");\n  }\n}\nfunction factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n  let size2 = 0;\n  return start;\n  function start(code2) {\n    if (markdownSpace(code2)) {\n      effects.enter(type);\n      return prefix(code2);\n    }\n    return ok(code2);\n  }\n  function prefix(code2) {\n    if (markdownSpace(code2) && size2++ < limit) {\n      effects.consume(code2);\n      return prefix;\n    }\n    effects.exit(type);\n    return ok(code2);\n  }\n}\nconst content$1 = {\n  tokenize: initializeContent\n};\nfunction initializeContent(effects) {\n  const contentStart = effects.attempt(\n    this.parser.constructs.contentInitial,\n    afterContentStartConstruct,\n    paragraphInitial\n  );\n  let previous2;\n  return contentStart;\n  function afterContentStartConstruct(code2) {\n    if (code2 === null) {\n      effects.consume(code2);\n      return;\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, contentStart, \"linePrefix\");\n  }\n  function paragraphInitial(code2) {\n    effects.enter(\"paragraph\");\n    return lineStart(code2);\n  }\n  function lineStart(code2) {\n    const token = effects.enter(\"chunkText\", {\n      contentType: \"text\",\n      previous: previous2\n    });\n    if (previous2) {\n      previous2.next = token;\n    }\n    previous2 = token;\n    return data(code2);\n  }\n  function data(code2) {\n    if (code2 === null) {\n      effects.exit(\"chunkText\");\n      effects.exit(\"paragraph\");\n      effects.consume(code2);\n      return;\n    }\n    if (markdownLineEnding(code2)) {\n      effects.consume(code2);\n      effects.exit(\"chunkText\");\n      return lineStart;\n    }\n    effects.consume(code2);\n    return data;\n  }\n}\nconst document$2 = {\n  tokenize: initializeDocument\n};\nconst containerConstruct = {\n  tokenize: tokenizeContainer\n};\nfunction initializeDocument(effects) {\n  const self2 = this;\n  const stack = [];\n  let continued = 0;\n  let childFlow;\n  let childToken;\n  let lineStartOffset;\n  return start;\n  function start(code2) {\n    if (continued < stack.length) {\n      const item = stack[continued];\n      self2.containerState = item[1];\n      return effects.attempt(\n        item[0].continuation,\n        documentContinue,\n        checkNewContainers\n      )(code2);\n    }\n    return checkNewContainers(code2);\n  }\n  function documentContinue(code2) {\n    continued++;\n    if (self2.containerState._closeFlow) {\n      self2.containerState._closeFlow = void 0;\n      if (childFlow) {\n        closeFlow();\n      }\n      const indexBeforeExits = self2.events.length;\n      let indexBeforeFlow = indexBeforeExits;\n      let point;\n      while (indexBeforeFlow--) {\n        if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n          point = self2.events[indexBeforeFlow][1].end;\n          break;\n        }\n      }\n      exitContainers(continued);\n      let index = indexBeforeExits;\n      while (index < self2.events.length) {\n        self2.events[index][1].end = Object.assign({}, point);\n        index++;\n      }\n      splice(\n        self2.events,\n        indexBeforeFlow + 1,\n        0,\n        self2.events.slice(indexBeforeExits)\n      );\n      self2.events.length = index;\n      return checkNewContainers(code2);\n    }\n    return start(code2);\n  }\n  function checkNewContainers(code2) {\n    if (continued === stack.length) {\n      if (!childFlow) {\n        return documentContinued(code2);\n      }\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        return flowStart(code2);\n      }\n      self2.interrupt = Boolean(\n        childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n      );\n    }\n    self2.containerState = {};\n    return effects.check(\n      containerConstruct,\n      thereIsANewContainer,\n      thereIsNoNewContainer\n    )(code2);\n  }\n  function thereIsANewContainer(code2) {\n    if (childFlow)\n      closeFlow();\n    exitContainers(continued);\n    return documentContinued(code2);\n  }\n  function thereIsNoNewContainer(code2) {\n    self2.parser.lazy[self2.now().line] = continued !== stack.length;\n    lineStartOffset = self2.now().offset;\n    return flowStart(code2);\n  }\n  function documentContinued(code2) {\n    self2.containerState = {};\n    return effects.attempt(\n      containerConstruct,\n      containerContinue,\n      flowStart\n    )(code2);\n  }\n  function containerContinue(code2) {\n    continued++;\n    stack.push([self2.currentConstruct, self2.containerState]);\n    return documentContinued(code2);\n  }\n  function flowStart(code2) {\n    if (code2 === null) {\n      if (childFlow)\n        closeFlow();\n      exitContainers(0);\n      effects.consume(code2);\n      return;\n    }\n    childFlow = childFlow || self2.parser.flow(self2.now());\n    effects.enter(\"chunkFlow\", {\n      contentType: \"flow\",\n      previous: childToken,\n      _tokenizer: childFlow\n    });\n    return flowContinue(code2);\n  }\n  function flowContinue(code2) {\n    if (code2 === null) {\n      writeToChild(effects.exit(\"chunkFlow\"), true);\n      exitContainers(0);\n      effects.consume(code2);\n      return;\n    }\n    if (markdownLineEnding(code2)) {\n      effects.consume(code2);\n      writeToChild(effects.exit(\"chunkFlow\"));\n      continued = 0;\n      self2.interrupt = void 0;\n      return start;\n    }\n    effects.consume(code2);\n    return flowContinue;\n  }\n  function writeToChild(token, eof) {\n    const stream = self2.sliceStream(token);\n    if (eof)\n      stream.push(null);\n    token.previous = childToken;\n    if (childToken)\n      childToken.next = token;\n    childToken = token;\n    childFlow.defineSkip(token.start);\n    childFlow.write(stream);\n    if (self2.parser.lazy[token.start.line]) {\n      let index = childFlow.events.length;\n      while (index--) {\n        if (childFlow.events[index][1].start.offset < lineStartOffset && (!childFlow.events[index][1].end || childFlow.events[index][1].end.offset > lineStartOffset)) {\n          return;\n        }\n      }\n      const indexBeforeExits = self2.events.length;\n      let indexBeforeFlow = indexBeforeExits;\n      let seen;\n      let point;\n      while (indexBeforeFlow--) {\n        if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n          if (seen) {\n            point = self2.events[indexBeforeFlow][1].end;\n            break;\n          }\n          seen = true;\n        }\n      }\n      exitContainers(continued);\n      index = indexBeforeExits;\n      while (index < self2.events.length) {\n        self2.events[index][1].end = Object.assign({}, point);\n        index++;\n      }\n      splice(\n        self2.events,\n        indexBeforeFlow + 1,\n        0,\n        self2.events.slice(indexBeforeExits)\n      );\n      self2.events.length = index;\n    }\n  }\n  function exitContainers(size2) {\n    let index = stack.length;\n    while (index-- > size2) {\n      const entry = stack[index];\n      self2.containerState = entry[1];\n      entry[0].exit.call(self2, effects);\n    }\n    stack.length = size2;\n  }\n  function closeFlow() {\n    childFlow.write([null]);\n    childToken = void 0;\n    childFlow = void 0;\n    self2.containerState._closeFlow = void 0;\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.includes(\"codeIndented\") ? void 0 : 4\n  );\n}\nfunction classifyCharacter(code2) {\n  if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n    return 1;\n  }\n  if (unicodePunctuation(code2)) {\n    return 2;\n  }\n}\nfunction resolveAll(constructs2, events, context) {\n  const called = [];\n  let index = -1;\n  while (++index < constructs2.length) {\n    const resolve2 = constructs2[index].resolveAll;\n    if (resolve2 && !called.includes(resolve2)) {\n      events = resolve2(events, context);\n      called.push(resolve2);\n    }\n  }\n  return events;\n}\nconst attention = {\n  name: \"attention\",\n  tokenize: tokenizeAttention,\n  resolveAll: resolveAllAttention\n};\nfunction resolveAllAttention(events, context) {\n  let index = -1;\n  let open;\n  let group;\n  let text2;\n  let openingSequence;\n  let closingSequence;\n  let use;\n  let nextEvents;\n  let offset;\n  while (++index < events.length) {\n    if (events[index][0] === \"enter\" && events[index][1].type === \"attentionSequence\" && events[index][1]._close) {\n      open = index;\n      while (open--) {\n        if (events[open][0] === \"exit\" && events[open][1].type === \"attentionSequence\" && events[open][1]._open && context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n          if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n            continue;\n          }\n          use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n          const start = Object.assign({}, events[open][1].end);\n          const end = Object.assign({}, events[index][1].start);\n          movePoint(start, -use);\n          movePoint(end, use);\n          openingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start,\n            end: Object.assign({}, events[open][1].end)\n          };\n          closingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start: Object.assign({}, events[index][1].start),\n            end\n          };\n          text2 = {\n            type: use > 1 ? \"strongText\" : \"emphasisText\",\n            start: Object.assign({}, events[open][1].end),\n            end: Object.assign({}, events[index][1].start)\n          };\n          group = {\n            type: use > 1 ? \"strong\" : \"emphasis\",\n            start: Object.assign({}, openingSequence.start),\n            end: Object.assign({}, closingSequence.end)\n          };\n          events[open][1].end = Object.assign({}, openingSequence.start);\n          events[index][1].start = Object.assign({}, closingSequence.end);\n          nextEvents = [];\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = push(nextEvents, [\n              [\"enter\", events[open][1], context],\n              [\"exit\", events[open][1], context]\n            ]);\n          }\n          nextEvents = push(nextEvents, [\n            [\"enter\", group, context],\n            [\"enter\", openingSequence, context],\n            [\"exit\", openingSequence, context],\n            [\"enter\", text2, context]\n          ]);\n          nextEvents = push(\n            nextEvents,\n            resolveAll(\n              context.parser.constructs.insideSpan.null,\n              events.slice(open + 1, index),\n              context\n            )\n          );\n          nextEvents = push(nextEvents, [\n            [\"exit\", text2, context],\n            [\"enter\", closingSequence, context],\n            [\"exit\", closingSequence, context],\n            [\"exit\", group, context]\n          ]);\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2;\n            nextEvents = push(nextEvents, [\n              [\"enter\", events[index][1], context],\n              [\"exit\", events[index][1], context]\n            ]);\n          } else {\n            offset = 0;\n          }\n          splice(events, open - 1, index - open + 3, nextEvents);\n          index = open + nextEvents.length - offset - 2;\n          break;\n        }\n      }\n    }\n  }\n  index = -1;\n  while (++index < events.length) {\n    if (events[index][1].type === \"attentionSequence\") {\n      events[index][1].type = \"data\";\n    }\n  }\n  return events;\n}\nfunction tokenizeAttention(effects, ok) {\n  const attentionMarkers2 = this.parser.constructs.attentionMarkers.null;\n  const previous2 = this.previous;\n  const before = classifyCharacter(previous2);\n  let marker;\n  return start;\n  function start(code2) {\n    marker = code2;\n    effects.enter(\"attentionSequence\");\n    return inside(code2);\n  }\n  function inside(code2) {\n    if (code2 === marker) {\n      effects.consume(code2);\n      return inside;\n    }\n    const token = effects.exit(\"attentionSequence\");\n    const after = classifyCharacter(code2);\n    const open = !after || after === 2 && before || attentionMarkers2.includes(code2);\n    const close = !before || before === 2 && after || attentionMarkers2.includes(previous2);\n    token._open = Boolean(marker === 42 ? open : open && (before || !close));\n    token._close = Boolean(marker === 42 ? close : close && (after || !open));\n    return ok(code2);\n  }\n}\nfunction movePoint(point, offset) {\n  point.column += offset;\n  point.offset += offset;\n  point._bufferIndex += offset;\n}\nconst autolink = {\n  name: \"autolink\",\n  tokenize: tokenizeAutolink\n};\nfunction tokenizeAutolink(effects, ok, nok) {\n  let size2 = 0;\n  return start;\n  function start(code2) {\n    effects.enter(\"autolink\");\n    effects.enter(\"autolinkMarker\");\n    effects.consume(code2);\n    effects.exit(\"autolinkMarker\");\n    effects.enter(\"autolinkProtocol\");\n    return open;\n  }\n  function open(code2) {\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      return schemeOrEmailAtext;\n    }\n    return emailAtext(code2);\n  }\n  function schemeOrEmailAtext(code2) {\n    if (code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) {\n      size2 = 1;\n      return schemeInsideOrEmailAtext(code2);\n    }\n    return emailAtext(code2);\n  }\n  function schemeInsideOrEmailAtext(code2) {\n    if (code2 === 58) {\n      effects.consume(code2);\n      size2 = 0;\n      return urlInside;\n    }\n    if ((code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) && size2++ < 32) {\n      effects.consume(code2);\n      return schemeInsideOrEmailAtext;\n    }\n    size2 = 0;\n    return emailAtext(code2);\n  }\n  function urlInside(code2) {\n    if (code2 === 62) {\n      effects.exit(\"autolinkProtocol\");\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code2);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n    if (code2 === null || code2 === 32 || code2 === 60 || asciiControl(code2)) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return urlInside;\n  }\n  function emailAtext(code2) {\n    if (code2 === 64) {\n      effects.consume(code2);\n      return emailAtSignOrDot;\n    }\n    if (asciiAtext(code2)) {\n      effects.consume(code2);\n      return emailAtext;\n    }\n    return nok(code2);\n  }\n  function emailAtSignOrDot(code2) {\n    return asciiAlphanumeric(code2) ? emailLabel(code2) : nok(code2);\n  }\n  function emailLabel(code2) {\n    if (code2 === 46) {\n      effects.consume(code2);\n      size2 = 0;\n      return emailAtSignOrDot;\n    }\n    if (code2 === 62) {\n      effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code2);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n    return emailValue(code2);\n  }\n  function emailValue(code2) {\n    if ((code2 === 45 || asciiAlphanumeric(code2)) && size2++ < 63) {\n      const next = code2 === 45 ? emailValue : emailLabel;\n      effects.consume(code2);\n      return next;\n    }\n    return nok(code2);\n  }\n}\nconst blankLine = {\n  tokenize: tokenizeBlankLine,\n  partial: true\n};\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return start;\n  function start(code2) {\n    return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n  }\n  function after(code2) {\n    return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n  }\n}\nconst blockQuote = {\n  name: \"blockQuote\",\n  tokenize: tokenizeBlockQuoteStart,\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit\n};\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    if (code2 === 62) {\n      const state = self2.containerState;\n      if (!state.open) {\n        effects.enter(\"blockQuote\", {\n          _container: true\n        });\n        state.open = true;\n      }\n      effects.enter(\"blockQuotePrefix\");\n      effects.enter(\"blockQuoteMarker\");\n      effects.consume(code2);\n      effects.exit(\"blockQuoteMarker\");\n      return after;\n    }\n    return nok(code2);\n  }\n  function after(code2) {\n    if (markdownSpace(code2)) {\n      effects.enter(\"blockQuotePrefixWhitespace\");\n      effects.consume(code2);\n      effects.exit(\"blockQuotePrefixWhitespace\");\n      effects.exit(\"blockQuotePrefix\");\n      return ok;\n    }\n    effects.exit(\"blockQuotePrefix\");\n    return ok(code2);\n  }\n}\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  const self2 = this;\n  return contStart;\n  function contStart(code2) {\n    if (markdownSpace(code2)) {\n      return factorySpace(\n        effects,\n        contBefore,\n        \"linePrefix\",\n        self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n      )(code2);\n    }\n    return contBefore(code2);\n  }\n  function contBefore(code2) {\n    return effects.attempt(blockQuote, ok, nok)(code2);\n  }\n}\nfunction exit(effects) {\n  effects.exit(\"blockQuote\");\n}\nconst characterEscape = {\n  name: \"characterEscape\",\n  tokenize: tokenizeCharacterEscape\n};\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start;\n  function start(code2) {\n    effects.enter(\"characterEscape\");\n    effects.enter(\"escapeMarker\");\n    effects.consume(code2);\n    effects.exit(\"escapeMarker\");\n    return inside;\n  }\n  function inside(code2) {\n    if (asciiPunctuation(code2)) {\n      effects.enter(\"characterEscapeValue\");\n      effects.consume(code2);\n      effects.exit(\"characterEscapeValue\");\n      effects.exit(\"characterEscape\");\n      return ok;\n    }\n    return nok(code2);\n  }\n}\nconst characterReference = {\n  name: \"characterReference\",\n  tokenize: tokenizeCharacterReference\n};\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  const self2 = this;\n  let size2 = 0;\n  let max;\n  let test;\n  return start;\n  function start(code2) {\n    effects.enter(\"characterReference\");\n    effects.enter(\"characterReferenceMarker\");\n    effects.consume(code2);\n    effects.exit(\"characterReferenceMarker\");\n    return open;\n  }\n  function open(code2) {\n    if (code2 === 35) {\n      effects.enter(\"characterReferenceMarkerNumeric\");\n      effects.consume(code2);\n      effects.exit(\"characterReferenceMarkerNumeric\");\n      return numeric;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 31;\n    test = asciiAlphanumeric;\n    return value(code2);\n  }\n  function numeric(code2) {\n    if (code2 === 88 || code2 === 120) {\n      effects.enter(\"characterReferenceMarkerHexadecimal\");\n      effects.consume(code2);\n      effects.exit(\"characterReferenceMarkerHexadecimal\");\n      effects.enter(\"characterReferenceValue\");\n      max = 6;\n      test = asciiHexDigit;\n      return value;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 7;\n    test = asciiDigit;\n    return value(code2);\n  }\n  function value(code2) {\n    if (code2 === 59 && size2) {\n      const token = effects.exit(\"characterReferenceValue\");\n      if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self2.sliceSerialize(token))) {\n        return nok(code2);\n      }\n      effects.enter(\"characterReferenceMarker\");\n      effects.consume(code2);\n      effects.exit(\"characterReferenceMarker\");\n      effects.exit(\"characterReference\");\n      return ok;\n    }\n    if (test(code2) && size2++ < max) {\n      effects.consume(code2);\n      return value;\n    }\n    return nok(code2);\n  }\n}\nconst nonLazyContinuation = {\n  tokenize: tokenizeNonLazyContinuation,\n  partial: true\n};\nconst codeFenced = {\n  name: \"codeFenced\",\n  tokenize: tokenizeCodeFenced,\n  concrete: true\n};\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  const self2 = this;\n  const closeStart = {\n    tokenize: tokenizeCloseStart,\n    partial: true\n  };\n  let initialPrefix = 0;\n  let sizeOpen = 0;\n  let marker;\n  return start;\n  function start(code2) {\n    return beforeSequenceOpen(code2);\n  }\n  function beforeSequenceOpen(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n    marker = code2;\n    effects.enter(\"codeFenced\");\n    effects.enter(\"codeFencedFence\");\n    effects.enter(\"codeFencedFenceSequence\");\n    return sequenceOpen(code2);\n  }\n  function sequenceOpen(code2) {\n    if (code2 === marker) {\n      sizeOpen++;\n      effects.consume(code2);\n      return sequenceOpen;\n    }\n    if (sizeOpen < 3) {\n      return nok(code2);\n    }\n    effects.exit(\"codeFencedFenceSequence\");\n    return markdownSpace(code2) ? factorySpace(effects, infoBefore, \"whitespace\")(code2) : infoBefore(code2);\n  }\n  function infoBefore(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"codeFencedFence\");\n      return self2.interrupt ? ok(code2) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n    }\n    effects.enter(\"codeFencedFenceInfo\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return info(code2);\n  }\n  function info(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return infoBefore(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return factorySpace(effects, metaBefore, \"whitespace\")(code2);\n    }\n    if (code2 === 96 && code2 === marker) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return info;\n  }\n  function metaBefore(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      return infoBefore(code2);\n    }\n    effects.enter(\"codeFencedFenceMeta\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return meta(code2);\n  }\n  function meta(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceMeta\");\n      return infoBefore(code2);\n    }\n    if (code2 === 96 && code2 === marker) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return meta;\n  }\n  function atNonLazyBreak(code2) {\n    return effects.attempt(closeStart, after, contentBefore)(code2);\n  }\n  function contentBefore(code2) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return contentStart;\n  }\n  function contentStart(code2) {\n    return initialPrefix > 0 && markdownSpace(code2) ? factorySpace(\n      effects,\n      beforeContentChunk,\n      \"linePrefix\",\n      initialPrefix + 1\n    )(code2) : beforeContentChunk(code2);\n  }\n  function beforeContentChunk(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n    }\n    effects.enter(\"codeFlowValue\");\n    return contentChunk(code2);\n  }\n  function contentChunk(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"codeFlowValue\");\n      return beforeContentChunk(code2);\n    }\n    effects.consume(code2);\n    return contentChunk;\n  }\n  function after(code2) {\n    effects.exit(\"codeFenced\");\n    return ok(code2);\n  }\n  function tokenizeCloseStart(effects2, ok2, nok2) {\n    let size2 = 0;\n    return startBefore;\n    function startBefore(code2) {\n      effects2.enter(\"lineEnding\");\n      effects2.consume(code2);\n      effects2.exit(\"lineEnding\");\n      return start2;\n    }\n    function start2(code2) {\n      effects2.enter(\"codeFencedFence\");\n      return markdownSpace(code2) ? factorySpace(\n        effects2,\n        beforeSequenceClose,\n        \"linePrefix\",\n        self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n      )(code2) : beforeSequenceClose(code2);\n    }\n    function beforeSequenceClose(code2) {\n      if (code2 === marker) {\n        effects2.enter(\"codeFencedFenceSequence\");\n        return sequenceClose(code2);\n      }\n      return nok2(code2);\n    }\n    function sequenceClose(code2) {\n      if (code2 === marker) {\n        size2++;\n        effects2.consume(code2);\n        return sequenceClose;\n      }\n      if (size2 >= sizeOpen) {\n        effects2.exit(\"codeFencedFenceSequence\");\n        return markdownSpace(code2) ? factorySpace(effects2, sequenceCloseAfter, \"whitespace\")(code2) : sequenceCloseAfter(code2);\n      }\n      return nok2(code2);\n    }\n    function sequenceCloseAfter(code2) {\n      if (code2 === null || markdownLineEnding(code2)) {\n        effects2.exit(\"codeFencedFence\");\n        return ok2(code2);\n      }\n      return nok2(code2);\n    }\n  }\n}\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return lineStart;\n  }\n  function lineStart(code2) {\n    return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n  }\n}\nconst codeIndented = {\n  name: \"codeIndented\",\n  tokenize: tokenizeCodeIndented\n};\nconst furtherStart = {\n  tokenize: tokenizeFurtherStart,\n  partial: true\n};\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    effects.enter(\"codeIndented\");\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n  }\n  function afterPrefix(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code2) : nok(code2);\n  }\n  function atBreak(code2) {\n    if (code2 === null) {\n      return after(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      return effects.attempt(furtherStart, atBreak, after)(code2);\n    }\n    effects.enter(\"codeFlowValue\");\n    return inside(code2);\n  }\n  function inside(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"codeFlowValue\");\n      return atBreak(code2);\n    }\n    effects.consume(code2);\n    return inside;\n  }\n  function after(code2) {\n    effects.exit(\"codeIndented\");\n    return ok(code2);\n  }\n}\nfunction tokenizeFurtherStart(effects, ok, nok) {\n  const self2 = this;\n  return furtherStart2;\n  function furtherStart2(code2) {\n    if (self2.parser.lazy[self2.now().line]) {\n      return nok(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      return furtherStart2;\n    }\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n  }\n  function afterPrefix(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code2) : markdownLineEnding(code2) ? furtherStart2(code2) : nok(code2);\n  }\n}\nconst codeText = {\n  name: \"codeText\",\n  tokenize: tokenizeCodeText,\n  resolve: resolveCodeText,\n  previous\n};\nfunction resolveCodeText(events) {\n  let tailExitIndex = events.length - 4;\n  let headEnterIndex = 3;\n  let index;\n  let enter;\n  if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === \"space\") && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === \"space\")) {\n    index = headEnterIndex;\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === \"codeTextData\") {\n        events[headEnterIndex][1].type = \"codeTextPadding\";\n        events[tailExitIndex][1].type = \"codeTextPadding\";\n        headEnterIndex += 2;\n        tailExitIndex -= 2;\n        break;\n      }\n    }\n  }\n  index = headEnterIndex - 1;\n  tailExitIndex++;\n  while (++index <= tailExitIndex) {\n    if (enter === void 0) {\n      if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n        enter = index;\n      }\n    } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n      events[enter][1].type = \"codeTextData\";\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      enter = void 0;\n    }\n  }\n  return events;\n}\nfunction previous(code2) {\n  return code2 !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction tokenizeCodeText(effects, ok, nok) {\n  let sizeOpen = 0;\n  let size2;\n  let token;\n  return start;\n  function start(code2) {\n    effects.enter(\"codeText\");\n    effects.enter(\"codeTextSequence\");\n    return sequenceOpen(code2);\n  }\n  function sequenceOpen(code2) {\n    if (code2 === 96) {\n      effects.consume(code2);\n      sizeOpen++;\n      return sequenceOpen;\n    }\n    effects.exit(\"codeTextSequence\");\n    return between(code2);\n  }\n  function between(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (code2 === 32) {\n      effects.enter(\"space\");\n      effects.consume(code2);\n      effects.exit(\"space\");\n      return between;\n    }\n    if (code2 === 96) {\n      token = effects.enter(\"codeTextSequence\");\n      size2 = 0;\n      return sequenceClose(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      return between;\n    }\n    effects.enter(\"codeTextData\");\n    return data(code2);\n  }\n  function data(code2) {\n    if (code2 === null || code2 === 32 || code2 === 96 || markdownLineEnding(code2)) {\n      effects.exit(\"codeTextData\");\n      return between(code2);\n    }\n    effects.consume(code2);\n    return data;\n  }\n  function sequenceClose(code2) {\n    if (code2 === 96) {\n      effects.consume(code2);\n      size2++;\n      return sequenceClose;\n    }\n    if (size2 === sizeOpen) {\n      effects.exit(\"codeTextSequence\");\n      effects.exit(\"codeText\");\n      return ok(code2);\n    }\n    token.type = \"codeTextData\";\n    return data(code2);\n  }\n}\nfunction subtokenize(events) {\n  const jumps = {};\n  let index = -1;\n  let event;\n  let lineIndex;\n  let otherIndex;\n  let otherEvent;\n  let parameters;\n  let subevents;\n  let more;\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index];\n    }\n    event = events[index];\n    if (index && event[1].type === \"chunkFlow\" && events[index - 1][1].type === \"listItemPrefix\") {\n      subevents = event[1]._tokenizer.events;\n      otherIndex = 0;\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n        otherIndex += 2;\n      }\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === \"content\") {\n            break;\n          }\n          if (subevents[otherIndex][1].type === \"chunkText\") {\n            subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n            otherIndex++;\n          }\n        }\n      }\n    }\n    if (event[0] === \"enter\") {\n      if (event[1].contentType) {\n        Object.assign(jumps, subcontent(events, index));\n        index = jumps[index];\n        more = true;\n      }\n    } else if (event[1]._container) {\n      otherIndex = index;\n      lineIndex = void 0;\n      while (otherIndex--) {\n        otherEvent = events[otherIndex];\n        if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n          if (otherEvent[0] === \"enter\") {\n            if (lineIndex) {\n              events[lineIndex][1].type = \"lineEndingBlank\";\n            }\n            otherEvent[1].type = \"lineEnding\";\n            lineIndex = otherIndex;\n          }\n        } else {\n          break;\n        }\n      }\n      if (lineIndex) {\n        event[1].end = Object.assign({}, events[lineIndex][1].start);\n        parameters = events.slice(lineIndex, index);\n        parameters.unshift(event);\n        splice(events, lineIndex, index - lineIndex + 1, parameters);\n      }\n    }\n  }\n  return !more;\n}\nfunction subcontent(events, eventIndex) {\n  const token = events[eventIndex][1];\n  const context = events[eventIndex][2];\n  let startPosition = eventIndex - 1;\n  const startPositions = [];\n  const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n  const childEvents = tokenizer.events;\n  const jumps = [];\n  const gaps = {};\n  let stream;\n  let previous2;\n  let index = -1;\n  let current = token;\n  let adjust = 0;\n  let start = 0;\n  const breaks = [start];\n  while (current) {\n    while (events[++startPosition][1] !== current) {\n    }\n    startPositions.push(startPosition);\n    if (!current._tokenizer) {\n      stream = context.sliceStream(current);\n      if (!current.next) {\n        stream.push(null);\n      }\n      if (previous2) {\n        tokenizer.defineSkip(current.start);\n      }\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true;\n      }\n      tokenizer.write(stream);\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = void 0;\n      }\n    }\n    previous2 = current;\n    current = current.next;\n  }\n  current = token;\n  while (++index < childEvents.length) {\n    if (childEvents[index][0] === \"exit\" && childEvents[index - 1][0] === \"enter\" && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n      start = index + 1;\n      breaks.push(start);\n      current._tokenizer = void 0;\n      current.previous = void 0;\n      current = current.next;\n    }\n  }\n  tokenizer.events = [];\n  if (current) {\n    current._tokenizer = void 0;\n    current.previous = void 0;\n  } else {\n    breaks.pop();\n  }\n  index = breaks.length;\n  while (index--) {\n    const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n    const start2 = startPositions.pop();\n    jumps.unshift([start2, start2 + slice.length - 1]);\n    splice(events, start2, 2, slice);\n  }\n  index = -1;\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  return gaps;\n}\nconst content = {\n  tokenize: tokenizeContent,\n  resolve: resolveContent\n};\nconst continuationConstruct = {\n  tokenize: tokenizeContinuation,\n  partial: true\n};\nfunction resolveContent(events) {\n  subtokenize(events);\n  return events;\n}\nfunction tokenizeContent(effects, ok) {\n  let previous2;\n  return chunkStart;\n  function chunkStart(code2) {\n    effects.enter(\"content\");\n    previous2 = effects.enter(\"chunkContent\", {\n      contentType: \"content\"\n    });\n    return chunkInside(code2);\n  }\n  function chunkInside(code2) {\n    if (code2 === null) {\n      return contentEnd(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      return effects.check(\n        continuationConstruct,\n        contentContinue,\n        contentEnd\n      )(code2);\n    }\n    effects.consume(code2);\n    return chunkInside;\n  }\n  function contentEnd(code2) {\n    effects.exit(\"chunkContent\");\n    effects.exit(\"content\");\n    return ok(code2);\n  }\n  function contentContinue(code2) {\n    effects.consume(code2);\n    effects.exit(\"chunkContent\");\n    previous2.next = effects.enter(\"chunkContent\", {\n      contentType: \"content\",\n      previous: previous2\n    });\n    previous2 = previous2.next;\n    return chunkInside;\n  }\n}\nfunction tokenizeContinuation(effects, ok, nok) {\n  const self2 = this;\n  return startLookahead;\n  function startLookahead(code2) {\n    effects.exit(\"chunkContent\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, prefixed, \"linePrefix\");\n  }\n  function prefixed(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      return nok(code2);\n    }\n    const tail = self2.events[self2.events.length - 1];\n    if (!self2.parser.constructs.disable.null.includes(\"codeIndented\") && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n      return ok(code2);\n    }\n    return effects.interrupt(self2.parser.constructs.flow, nok, ok)(code2);\n  }\n}\nfunction factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n  const limit = max || Number.POSITIVE_INFINITY;\n  let balance = 0;\n  return start;\n  function start(code2) {\n    if (code2 === 60) {\n      effects.enter(type);\n      effects.enter(literalType);\n      effects.enter(literalMarkerType);\n      effects.consume(code2);\n      effects.exit(literalMarkerType);\n      return enclosedBefore;\n    }\n    if (code2 === null || code2 === 32 || code2 === 41 || asciiControl(code2)) {\n      return nok(code2);\n    }\n    effects.enter(type);\n    effects.enter(rawType);\n    effects.enter(stringType);\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return raw(code2);\n  }\n  function enclosedBefore(code2) {\n    if (code2 === 62) {\n      effects.enter(literalMarkerType);\n      effects.consume(code2);\n      effects.exit(literalMarkerType);\n      effects.exit(literalType);\n      effects.exit(type);\n      return ok;\n    }\n    effects.enter(stringType);\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return enclosed(code2);\n  }\n  function enclosed(code2) {\n    if (code2 === 62) {\n      effects.exit(\"chunkString\");\n      effects.exit(stringType);\n      return enclosedBefore(code2);\n    }\n    if (code2 === null || code2 === 60 || markdownLineEnding(code2)) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return code2 === 92 ? enclosedEscape : enclosed;\n  }\n  function enclosedEscape(code2) {\n    if (code2 === 60 || code2 === 62 || code2 === 92) {\n      effects.consume(code2);\n      return enclosed;\n    }\n    return enclosed(code2);\n  }\n  function raw(code2) {\n    if (!balance && (code2 === null || code2 === 41 || markdownLineEndingOrSpace(code2))) {\n      effects.exit(\"chunkString\");\n      effects.exit(stringType);\n      effects.exit(rawType);\n      effects.exit(type);\n      return ok(code2);\n    }\n    if (balance < limit && code2 === 40) {\n      effects.consume(code2);\n      balance++;\n      return raw;\n    }\n    if (code2 === 41) {\n      effects.consume(code2);\n      balance--;\n      return raw;\n    }\n    if (code2 === null || code2 === 32 || code2 === 40 || asciiControl(code2)) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return code2 === 92 ? rawEscape : raw;\n  }\n  function rawEscape(code2) {\n    if (code2 === 40 || code2 === 41 || code2 === 92) {\n      effects.consume(code2);\n      return raw;\n    }\n    return raw(code2);\n  }\n}\nfunction factoryLabel(effects, ok, nok, type, markerType, stringType) {\n  const self2 = this;\n  let size2 = 0;\n  let seen;\n  return start;\n  function start(code2) {\n    effects.enter(type);\n    effects.enter(markerType);\n    effects.consume(code2);\n    effects.exit(markerType);\n    effects.enter(stringType);\n    return atBreak;\n  }\n  function atBreak(code2) {\n    if (size2 > 999 || code2 === null || code2 === 91 || code2 === 93 && !seen || code2 === 94 && !size2 && \"_hiddenFootnoteSupport\" in self2.parser.constructs) {\n      return nok(code2);\n    }\n    if (code2 === 93) {\n      effects.exit(stringType);\n      effects.enter(markerType);\n      effects.consume(code2);\n      effects.exit(markerType);\n      effects.exit(type);\n      return ok;\n    }\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      return atBreak;\n    }\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return labelInside(code2);\n  }\n  function labelInside(code2) {\n    if (code2 === null || code2 === 91 || code2 === 93 || markdownLineEnding(code2) || size2++ > 999) {\n      effects.exit(\"chunkString\");\n      return atBreak(code2);\n    }\n    effects.consume(code2);\n    if (!seen)\n      seen = !markdownSpace(code2);\n    return code2 === 92 ? labelEscape : labelInside;\n  }\n  function labelEscape(code2) {\n    if (code2 === 91 || code2 === 92 || code2 === 93) {\n      effects.consume(code2);\n      size2++;\n      return labelInside;\n    }\n    return labelInside(code2);\n  }\n}\nfunction factoryTitle(effects, ok, nok, type, markerType, stringType) {\n  let marker;\n  return start;\n  function start(code2) {\n    if (code2 === 34 || code2 === 39 || code2 === 40) {\n      effects.enter(type);\n      effects.enter(markerType);\n      effects.consume(code2);\n      effects.exit(markerType);\n      marker = code2 === 40 ? 41 : code2;\n      return begin;\n    }\n    return nok(code2);\n  }\n  function begin(code2) {\n    if (code2 === marker) {\n      effects.enter(markerType);\n      effects.consume(code2);\n      effects.exit(markerType);\n      effects.exit(type);\n      return ok;\n    }\n    effects.enter(stringType);\n    return atBreak(code2);\n  }\n  function atBreak(code2) {\n    if (code2 === marker) {\n      effects.exit(stringType);\n      return begin(marker);\n    }\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      return factorySpace(effects, atBreak, \"linePrefix\");\n    }\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return inside(code2);\n  }\n  function inside(code2) {\n    if (code2 === marker || code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"chunkString\");\n      return atBreak(code2);\n    }\n    effects.consume(code2);\n    return code2 === 92 ? escape : inside;\n  }\n  function escape(code2) {\n    if (code2 === marker || code2 === 92) {\n      effects.consume(code2);\n      return inside;\n    }\n    return inside(code2);\n  }\n}\nfunction factoryWhitespace(effects, ok) {\n  let seen;\n  return start;\n  function start(code2) {\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      seen = true;\n      return start;\n    }\n    if (markdownSpace(code2)) {\n      return factorySpace(\n        effects,\n        start,\n        seen ? \"linePrefix\" : \"lineSuffix\"\n      )(code2);\n    }\n    return ok(code2);\n  }\n}\nconst definition = {\n  name: \"definition\",\n  tokenize: tokenizeDefinition\n};\nconst titleBefore = {\n  tokenize: tokenizeTitleBefore,\n  partial: true\n};\nfunction tokenizeDefinition(effects, ok, nok) {\n  const self2 = this;\n  let identifier;\n  return start;\n  function start(code2) {\n    effects.enter(\"definition\");\n    return before(code2);\n  }\n  function before(code2) {\n    return factoryLabel.call(\n      self2,\n      effects,\n      labelAfter,\n      nok,\n      \"definitionLabel\",\n      \"definitionLabelMarker\",\n      \"definitionLabelString\"\n    )(code2);\n  }\n  function labelAfter(code2) {\n    identifier = normalizeIdentifier(\n      self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n    );\n    if (code2 === 58) {\n      effects.enter(\"definitionMarker\");\n      effects.consume(code2);\n      effects.exit(\"definitionMarker\");\n      return markerAfter;\n    }\n    return nok(code2);\n  }\n  function markerAfter(code2) {\n    return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, destinationBefore)(code2) : destinationBefore(code2);\n  }\n  function destinationBefore(code2) {\n    return factoryDestination(\n      effects,\n      destinationAfter,\n      nok,\n      \"definitionDestination\",\n      \"definitionDestinationLiteral\",\n      \"definitionDestinationLiteralMarker\",\n      \"definitionDestinationRaw\",\n      \"definitionDestinationString\"\n    )(code2);\n  }\n  function destinationAfter(code2) {\n    return effects.attempt(titleBefore, after, after)(code2);\n  }\n  function after(code2) {\n    return markdownSpace(code2) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code2) : afterWhitespace(code2);\n  }\n  function afterWhitespace(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"definition\");\n      self2.parser.defined.push(identifier);\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n}\nfunction tokenizeTitleBefore(effects, ok, nok) {\n  return titleBefore2;\n  function titleBefore2(code2) {\n    return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, beforeMarker)(code2) : nok(code2);\n  }\n  function beforeMarker(code2) {\n    return factoryTitle(\n      effects,\n      titleAfter,\n      nok,\n      \"definitionTitle\",\n      \"definitionTitleMarker\",\n      \"definitionTitleString\"\n    )(code2);\n  }\n  function titleAfter(code2) {\n    return markdownSpace(code2) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code2) : titleAfterOptionalWhitespace(code2);\n  }\n  function titleAfterOptionalWhitespace(code2) {\n    return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n  }\n}\nconst hardBreakEscape = {\n  name: \"hardBreakEscape\",\n  tokenize: tokenizeHardBreakEscape\n};\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start;\n  function start(code2) {\n    effects.enter(\"hardBreakEscape\");\n    effects.consume(code2);\n    return after;\n  }\n  function after(code2) {\n    if (markdownLineEnding(code2)) {\n      effects.exit(\"hardBreakEscape\");\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n}\nconst headingAtx = {\n  name: \"headingAtx\",\n  tokenize: tokenizeHeadingAtx,\n  resolve: resolveHeadingAtx\n};\nfunction resolveHeadingAtx(events, context) {\n  let contentEnd = events.length - 2;\n  let contentStart = 3;\n  let content2;\n  let text2;\n  if (events[contentStart][1].type === \"whitespace\") {\n    contentStart += 2;\n  }\n  if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n    contentEnd -= 2;\n  }\n  if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n  }\n  if (contentEnd > contentStart) {\n    content2 = {\n      type: \"atxHeadingText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    };\n    text2 = {\n      type: \"chunkText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      contentType: \"text\"\n    };\n    splice(events, contentStart, contentEnd - contentStart + 1, [\n      [\"enter\", content2, context],\n      [\"enter\", text2, context],\n      [\"exit\", text2, context],\n      [\"exit\", content2, context]\n    ]);\n  }\n  return events;\n}\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  let size2 = 0;\n  return start;\n  function start(code2) {\n    effects.enter(\"atxHeading\");\n    return before(code2);\n  }\n  function before(code2) {\n    effects.enter(\"atxHeadingSequence\");\n    return sequenceOpen(code2);\n  }\n  function sequenceOpen(code2) {\n    if (code2 === 35 && size2++ < 6) {\n      effects.consume(code2);\n      return sequenceOpen;\n    }\n    if (code2 === null || markdownLineEndingOrSpace(code2)) {\n      effects.exit(\"atxHeadingSequence\");\n      return atBreak(code2);\n    }\n    return nok(code2);\n  }\n  function atBreak(code2) {\n    if (code2 === 35) {\n      effects.enter(\"atxHeadingSequence\");\n      return sequenceFurther(code2);\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"atxHeading\");\n      return ok(code2);\n    }\n    if (markdownSpace(code2)) {\n      return factorySpace(effects, atBreak, \"whitespace\")(code2);\n    }\n    effects.enter(\"atxHeadingText\");\n    return data(code2);\n  }\n  function sequenceFurther(code2) {\n    if (code2 === 35) {\n      effects.consume(code2);\n      return sequenceFurther;\n    }\n    effects.exit(\"atxHeadingSequence\");\n    return atBreak(code2);\n  }\n  function data(code2) {\n    if (code2 === null || code2 === 35 || markdownLineEndingOrSpace(code2)) {\n      effects.exit(\"atxHeadingText\");\n      return atBreak(code2);\n    }\n    effects.consume(code2);\n    return data;\n  }\n}\nconst htmlBlockNames = [\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  \"search\",\n  \"section\",\n  \"summary\",\n  \"table\",\n  \"tbody\",\n  \"td\",\n  \"tfoot\",\n  \"th\",\n  \"thead\",\n  \"title\",\n  \"tr\",\n  \"track\",\n  \"ul\"\n];\nconst htmlRawNames = [\"pre\", \"script\", \"style\", \"textarea\"];\nconst htmlFlow = {\n  name: \"htmlFlow\",\n  tokenize: tokenizeHtmlFlow,\n  resolveTo: resolveToHtmlFlow,\n  concrete: true\n};\nconst blankLineBefore = {\n  tokenize: tokenizeBlankLineBefore,\n  partial: true\n};\nconst nonLazyContinuationStart = {\n  tokenize: tokenizeNonLazyContinuationStart,\n  partial: true\n};\nfunction resolveToHtmlFlow(events) {\n  let index = events.length;\n  while (index--) {\n    if (events[index][0] === \"enter\" && events[index][1].type === \"htmlFlow\") {\n      break;\n    }\n  }\n  if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n    events[index][1].start = events[index - 2][1].start;\n    events[index + 1][1].start = events[index - 2][1].start;\n    events.splice(index - 2, 2);\n  }\n  return events;\n}\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  const self2 = this;\n  let marker;\n  let closingTag;\n  let buffer;\n  let index;\n  let markerB;\n  return start;\n  function start(code2) {\n    return before(code2);\n  }\n  function before(code2) {\n    effects.enter(\"htmlFlow\");\n    effects.enter(\"htmlFlowData\");\n    effects.consume(code2);\n    return open;\n  }\n  function open(code2) {\n    if (code2 === 33) {\n      effects.consume(code2);\n      return declarationOpen;\n    }\n    if (code2 === 47) {\n      effects.consume(code2);\n      closingTag = true;\n      return tagCloseStart;\n    }\n    if (code2 === 63) {\n      effects.consume(code2);\n      marker = 3;\n      return self2.interrupt ? ok : continuationDeclarationInside;\n    }\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      buffer = String.fromCharCode(code2);\n      return tagName;\n    }\n    return nok(code2);\n  }\n  function declarationOpen(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      marker = 2;\n      return commentOpenInside;\n    }\n    if (code2 === 91) {\n      effects.consume(code2);\n      marker = 5;\n      index = 0;\n      return cdataOpenInside;\n    }\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      marker = 4;\n      return self2.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code2);\n  }\n  function commentOpenInside(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return self2.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code2);\n  }\n  function cdataOpenInside(code2) {\n    const value = \"CDATA[\";\n    if (code2 === value.charCodeAt(index++)) {\n      effects.consume(code2);\n      if (index === value.length) {\n        return self2.interrupt ? ok : continuation;\n      }\n      return cdataOpenInside;\n    }\n    return nok(code2);\n  }\n  function tagCloseStart(code2) {\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      buffer = String.fromCharCode(code2);\n      return tagName;\n    }\n    return nok(code2);\n  }\n  function tagName(code2) {\n    if (code2 === null || code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n      const slash = code2 === 47;\n      const name = buffer.toLowerCase();\n      if (!slash && !closingTag && htmlRawNames.includes(name)) {\n        marker = 1;\n        return self2.interrupt ? ok(code2) : continuation(code2);\n      }\n      if (htmlBlockNames.includes(buffer.toLowerCase())) {\n        marker = 6;\n        if (slash) {\n          effects.consume(code2);\n          return basicSelfClosing;\n        }\n        return self2.interrupt ? ok(code2) : continuation(code2);\n      }\n      marker = 7;\n      return self2.interrupt && !self2.parser.lazy[self2.now().line] ? nok(code2) : closingTag ? completeClosingTagAfter(code2) : completeAttributeNameBefore(code2);\n    }\n    if (code2 === 45 || asciiAlphanumeric(code2)) {\n      effects.consume(code2);\n      buffer += String.fromCharCode(code2);\n      return tagName;\n    }\n    return nok(code2);\n  }\n  function basicSelfClosing(code2) {\n    if (code2 === 62) {\n      effects.consume(code2);\n      return self2.interrupt ? ok : continuation;\n    }\n    return nok(code2);\n  }\n  function completeClosingTagAfter(code2) {\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return completeClosingTagAfter;\n    }\n    return completeEnd(code2);\n  }\n  function completeAttributeNameBefore(code2) {\n    if (code2 === 47) {\n      effects.consume(code2);\n      return completeEnd;\n    }\n    if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n      effects.consume(code2);\n      return completeAttributeName;\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return completeAttributeNameBefore;\n    }\n    return completeEnd(code2);\n  }\n  function completeAttributeName(code2) {\n    if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n      effects.consume(code2);\n      return completeAttributeName;\n    }\n    return completeAttributeNameAfter(code2);\n  }\n  function completeAttributeNameAfter(code2) {\n    if (code2 === 61) {\n      effects.consume(code2);\n      return completeAttributeValueBefore;\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return completeAttributeNameAfter;\n    }\n    return completeAttributeNameBefore(code2);\n  }\n  function completeAttributeValueBefore(code2) {\n    if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n      return nok(code2);\n    }\n    if (code2 === 34 || code2 === 39) {\n      effects.consume(code2);\n      markerB = code2;\n      return completeAttributeValueQuoted;\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return completeAttributeValueBefore;\n    }\n    return completeAttributeValueUnquoted(code2);\n  }\n  function completeAttributeValueQuoted(code2) {\n    if (code2 === markerB) {\n      effects.consume(code2);\n      markerB = null;\n      return completeAttributeValueQuotedAfter;\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      return nok(code2);\n    }\n    effects.consume(code2);\n    return completeAttributeValueQuoted;\n  }\n  function completeAttributeValueUnquoted(code2) {\n    if (code2 === null || code2 === 34 || code2 === 39 || code2 === 47 || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96 || markdownLineEndingOrSpace(code2)) {\n      return completeAttributeNameAfter(code2);\n    }\n    effects.consume(code2);\n    return completeAttributeValueUnquoted;\n  }\n  function completeAttributeValueQuotedAfter(code2) {\n    if (code2 === 47 || code2 === 62 || markdownSpace(code2)) {\n      return completeAttributeNameBefore(code2);\n    }\n    return nok(code2);\n  }\n  function completeEnd(code2) {\n    if (code2 === 62) {\n      effects.consume(code2);\n      return completeAfter;\n    }\n    return nok(code2);\n  }\n  function completeAfter(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      return continuation(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return completeAfter;\n    }\n    return nok(code2);\n  }\n  function continuation(code2) {\n    if (code2 === 45 && marker === 2) {\n      effects.consume(code2);\n      return continuationCommentInside;\n    }\n    if (code2 === 60 && marker === 1) {\n      effects.consume(code2);\n      return continuationRawTagOpen;\n    }\n    if (code2 === 62 && marker === 4) {\n      effects.consume(code2);\n      return continuationClose;\n    }\n    if (code2 === 63 && marker === 3) {\n      effects.consume(code2);\n      return continuationDeclarationInside;\n    }\n    if (code2 === 93 && marker === 5) {\n      effects.consume(code2);\n      return continuationCdataInside;\n    }\n    if (markdownLineEnding(code2) && (marker === 6 || marker === 7)) {\n      effects.exit(\"htmlFlowData\");\n      return effects.check(\n        blankLineBefore,\n        continuationAfter,\n        continuationStart\n      )(code2);\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationStart(code2);\n    }\n    effects.consume(code2);\n    return continuation;\n  }\n  function continuationStart(code2) {\n    return effects.check(\n      nonLazyContinuationStart,\n      continuationStartNonLazy,\n      continuationAfter\n    )(code2);\n  }\n  function continuationStartNonLazy(code2) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return continuationBefore;\n  }\n  function continuationBefore(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      return continuationStart(code2);\n    }\n    effects.enter(\"htmlFlowData\");\n    return continuation(code2);\n  }\n  function continuationCommentInside(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return continuationDeclarationInside;\n    }\n    return continuation(code2);\n  }\n  function continuationRawTagOpen(code2) {\n    if (code2 === 47) {\n      effects.consume(code2);\n      buffer = \"\";\n      return continuationRawEndTag;\n    }\n    return continuation(code2);\n  }\n  function continuationRawEndTag(code2) {\n    if (code2 === 62) {\n      const name = buffer.toLowerCase();\n      if (htmlRawNames.includes(name)) {\n        effects.consume(code2);\n        return continuationClose;\n      }\n      return continuation(code2);\n    }\n    if (asciiAlpha(code2) && buffer.length < 8) {\n      effects.consume(code2);\n      buffer += String.fromCharCode(code2);\n      return continuationRawEndTag;\n    }\n    return continuation(code2);\n  }\n  function continuationCdataInside(code2) {\n    if (code2 === 93) {\n      effects.consume(code2);\n      return continuationDeclarationInside;\n    }\n    return continuation(code2);\n  }\n  function continuationDeclarationInside(code2) {\n    if (code2 === 62) {\n      effects.consume(code2);\n      return continuationClose;\n    }\n    if (code2 === 45 && marker === 2) {\n      effects.consume(code2);\n      return continuationDeclarationInside;\n    }\n    return continuation(code2);\n  }\n  function continuationClose(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationAfter(code2);\n    }\n    effects.consume(code2);\n    return continuationClose;\n  }\n  function continuationAfter(code2) {\n    effects.exit(\"htmlFlow\");\n    return ok(code2);\n  }\n}\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    if (markdownLineEnding(code2)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code2);\n      effects.exit(\"lineEnding\");\n      return after;\n    }\n    return nok(code2);\n  }\n  function after(code2) {\n    return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n  }\n}\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n  return start;\n  function start(code2) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return effects.attempt(blankLine, ok, nok);\n  }\n}\nconst htmlText = {\n  name: \"htmlText\",\n  tokenize: tokenizeHtmlText\n};\nfunction tokenizeHtmlText(effects, ok, nok) {\n  const self2 = this;\n  let marker;\n  let index;\n  let returnState;\n  return start;\n  function start(code2) {\n    effects.enter(\"htmlText\");\n    effects.enter(\"htmlTextData\");\n    effects.consume(code2);\n    return open;\n  }\n  function open(code2) {\n    if (code2 === 33) {\n      effects.consume(code2);\n      return declarationOpen;\n    }\n    if (code2 === 47) {\n      effects.consume(code2);\n      return tagCloseStart;\n    }\n    if (code2 === 63) {\n      effects.consume(code2);\n      return instruction;\n    }\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      return tagOpen;\n    }\n    return nok(code2);\n  }\n  function declarationOpen(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return commentOpenInside;\n    }\n    if (code2 === 91) {\n      effects.consume(code2);\n      index = 0;\n      return cdataOpenInside;\n    }\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      return declaration;\n    }\n    return nok(code2);\n  }\n  function commentOpenInside(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return commentEnd;\n    }\n    return nok(code2);\n  }\n  function comment(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (code2 === 45) {\n      effects.consume(code2);\n      return commentClose;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = comment;\n      return lineEndingBefore(code2);\n    }\n    effects.consume(code2);\n    return comment;\n  }\n  function commentClose(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return commentEnd;\n    }\n    return comment(code2);\n  }\n  function commentEnd(code2) {\n    return code2 === 62 ? end(code2) : code2 === 45 ? commentClose(code2) : comment(code2);\n  }\n  function cdataOpenInside(code2) {\n    const value = \"CDATA[\";\n    if (code2 === value.charCodeAt(index++)) {\n      effects.consume(code2);\n      return index === value.length ? cdata : cdataOpenInside;\n    }\n    return nok(code2);\n  }\n  function cdata(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (code2 === 93) {\n      effects.consume(code2);\n      return cdataClose;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = cdata;\n      return lineEndingBefore(code2);\n    }\n    effects.consume(code2);\n    return cdata;\n  }\n  function cdataClose(code2) {\n    if (code2 === 93) {\n      effects.consume(code2);\n      return cdataEnd;\n    }\n    return cdata(code2);\n  }\n  function cdataEnd(code2) {\n    if (code2 === 62) {\n      return end(code2);\n    }\n    if (code2 === 93) {\n      effects.consume(code2);\n      return cdataEnd;\n    }\n    return cdata(code2);\n  }\n  function declaration(code2) {\n    if (code2 === null || code2 === 62) {\n      return end(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = declaration;\n      return lineEndingBefore(code2);\n    }\n    effects.consume(code2);\n    return declaration;\n  }\n  function instruction(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (code2 === 63) {\n      effects.consume(code2);\n      return instructionClose;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = instruction;\n      return lineEndingBefore(code2);\n    }\n    effects.consume(code2);\n    return instruction;\n  }\n  function instructionClose(code2) {\n    return code2 === 62 ? end(code2) : instruction(code2);\n  }\n  function tagCloseStart(code2) {\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      return tagClose;\n    }\n    return nok(code2);\n  }\n  function tagClose(code2) {\n    if (code2 === 45 || asciiAlphanumeric(code2)) {\n      effects.consume(code2);\n      return tagClose;\n    }\n    return tagCloseBetween(code2);\n  }\n  function tagCloseBetween(code2) {\n    if (markdownLineEnding(code2)) {\n      returnState = tagCloseBetween;\n      return lineEndingBefore(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return tagCloseBetween;\n    }\n    return end(code2);\n  }\n  function tagOpen(code2) {\n    if (code2 === 45 || asciiAlphanumeric(code2)) {\n      effects.consume(code2);\n      return tagOpen;\n    }\n    if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n      return tagOpenBetween(code2);\n    }\n    return nok(code2);\n  }\n  function tagOpenBetween(code2) {\n    if (code2 === 47) {\n      effects.consume(code2);\n      return end;\n    }\n    if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n      effects.consume(code2);\n      return tagOpenAttributeName;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = tagOpenBetween;\n      return lineEndingBefore(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return tagOpenBetween;\n    }\n    return end(code2);\n  }\n  function tagOpenAttributeName(code2) {\n    if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n      effects.consume(code2);\n      return tagOpenAttributeName;\n    }\n    return tagOpenAttributeNameAfter(code2);\n  }\n  function tagOpenAttributeNameAfter(code2) {\n    if (code2 === 61) {\n      effects.consume(code2);\n      return tagOpenAttributeValueBefore;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = tagOpenAttributeNameAfter;\n      return lineEndingBefore(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return tagOpenAttributeNameAfter;\n    }\n    return tagOpenBetween(code2);\n  }\n  function tagOpenAttributeValueBefore(code2) {\n    if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n      return nok(code2);\n    }\n    if (code2 === 34 || code2 === 39) {\n      effects.consume(code2);\n      marker = code2;\n      return tagOpenAttributeValueQuoted;\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = tagOpenAttributeValueBefore;\n      return lineEndingBefore(code2);\n    }\n    if (markdownSpace(code2)) {\n      effects.consume(code2);\n      return tagOpenAttributeValueBefore;\n    }\n    effects.consume(code2);\n    return tagOpenAttributeValueUnquoted;\n  }\n  function tagOpenAttributeValueQuoted(code2) {\n    if (code2 === marker) {\n      effects.consume(code2);\n      marker = void 0;\n      return tagOpenAttributeValueQuotedAfter;\n    }\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      returnState = tagOpenAttributeValueQuoted;\n      return lineEndingBefore(code2);\n    }\n    effects.consume(code2);\n    return tagOpenAttributeValueQuoted;\n  }\n  function tagOpenAttributeValueUnquoted(code2) {\n    if (code2 === null || code2 === 34 || code2 === 39 || code2 === 60 || code2 === 61 || code2 === 96) {\n      return nok(code2);\n    }\n    if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n      return tagOpenBetween(code2);\n    }\n    effects.consume(code2);\n    return tagOpenAttributeValueUnquoted;\n  }\n  function tagOpenAttributeValueQuotedAfter(code2) {\n    if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n      return tagOpenBetween(code2);\n    }\n    return nok(code2);\n  }\n  function end(code2) {\n    if (code2 === 62) {\n      effects.consume(code2);\n      effects.exit(\"htmlTextData\");\n      effects.exit(\"htmlText\");\n      return ok;\n    }\n    return nok(code2);\n  }\n  function lineEndingBefore(code2) {\n    effects.exit(\"htmlTextData\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return lineEndingAfter;\n  }\n  function lineEndingAfter(code2) {\n    return markdownSpace(code2) ? factorySpace(\n      effects,\n      lineEndingAfterPrefix,\n      \"linePrefix\",\n      self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n    )(code2) : lineEndingAfterPrefix(code2);\n  }\n  function lineEndingAfterPrefix(code2) {\n    effects.enter(\"htmlTextData\");\n    return returnState(code2);\n  }\n}\nconst labelEnd = {\n  name: \"labelEnd\",\n  tokenize: tokenizeLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  resolveAll: resolveAllLabelEnd\n};\nconst resourceConstruct = {\n  tokenize: tokenizeResource\n};\nconst referenceFullConstruct = {\n  tokenize: tokenizeReferenceFull\n};\nconst referenceCollapsedConstruct = {\n  tokenize: tokenizeReferenceCollapsed\n};\nfunction resolveAllLabelEnd(events) {\n  let index = -1;\n  while (++index < events.length) {\n    const token = events[index][1];\n    if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n      events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n      token.type = \"data\";\n      index++;\n    }\n  }\n  return events;\n}\nfunction resolveToLabelEnd(events, context) {\n  let index = events.length;\n  let offset = 0;\n  let token;\n  let open;\n  let close;\n  let media;\n  while (index--) {\n    token = events[index][1];\n    if (open) {\n      if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n        break;\n      }\n      if (events[index][0] === \"enter\" && token.type === \"labelLink\") {\n        token._inactive = true;\n      }\n    } else if (close) {\n      if (events[index][0] === \"enter\" && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n        open = index;\n        if (token.type !== \"labelLink\") {\n          offset = 2;\n          break;\n        }\n      }\n    } else if (token.type === \"labelEnd\") {\n      close = index;\n    }\n  }\n  const group = {\n    type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n  const label = {\n    type: \"label\",\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[close][1].end)\n  };\n  const text2 = {\n    type: \"labelText\",\n    start: Object.assign({}, events[open + offset + 2][1].end),\n    end: Object.assign({}, events[close - 2][1].start)\n  };\n  media = [\n    [\"enter\", group, context],\n    [\"enter\", label, context]\n  ];\n  media = push(media, events.slice(open + 1, open + offset + 3));\n  media = push(media, [[\"enter\", text2, context]]);\n  media = push(\n    media,\n    resolveAll(\n      context.parser.constructs.insideSpan.null,\n      events.slice(open + offset + 4, close - 3),\n      context\n    )\n  );\n  media = push(media, [\n    [\"exit\", text2, context],\n    events[close - 2],\n    events[close - 1],\n    [\"exit\", label, context]\n  ]);\n  media = push(media, events.slice(close + 1));\n  media = push(media, [[\"exit\", group, context]]);\n  splice(events, open, events.length, media);\n  return events;\n}\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  const self2 = this;\n  let index = self2.events.length;\n  let labelStart;\n  let defined;\n  while (index--) {\n    if ((self2.events[index][1].type === \"labelImage\" || self2.events[index][1].type === \"labelLink\") && !self2.events[index][1]._balanced) {\n      labelStart = self2.events[index][1];\n      break;\n    }\n  }\n  return start;\n  function start(code2) {\n    if (!labelStart) {\n      return nok(code2);\n    }\n    if (labelStart._inactive) {\n      return labelEndNok(code2);\n    }\n    defined = self2.parser.defined.includes(\n      normalizeIdentifier(\n        self2.sliceSerialize({\n          start: labelStart.end,\n          end: self2.now()\n        })\n      )\n    );\n    effects.enter(\"labelEnd\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code2);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelEnd\");\n    return after;\n  }\n  function after(code2) {\n    if (code2 === 40) {\n      return effects.attempt(\n        resourceConstruct,\n        labelEndOk,\n        defined ? labelEndOk : labelEndNok\n      )(code2);\n    }\n    if (code2 === 91) {\n      return effects.attempt(\n        referenceFullConstruct,\n        labelEndOk,\n        defined ? referenceNotFull : labelEndNok\n      )(code2);\n    }\n    return defined ? labelEndOk(code2) : labelEndNok(code2);\n  }\n  function referenceNotFull(code2) {\n    return effects.attempt(\n      referenceCollapsedConstruct,\n      labelEndOk,\n      labelEndNok\n    )(code2);\n  }\n  function labelEndOk(code2) {\n    return ok(code2);\n  }\n  function labelEndNok(code2) {\n    labelStart._balanced = true;\n    return nok(code2);\n  }\n}\nfunction tokenizeResource(effects, ok, nok) {\n  return resourceStart;\n  function resourceStart(code2) {\n    effects.enter(\"resource\");\n    effects.enter(\"resourceMarker\");\n    effects.consume(code2);\n    effects.exit(\"resourceMarker\");\n    return resourceBefore;\n  }\n  function resourceBefore(code2) {\n    return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceOpen)(code2) : resourceOpen(code2);\n  }\n  function resourceOpen(code2) {\n    if (code2 === 41) {\n      return resourceEnd(code2);\n    }\n    return factoryDestination(\n      effects,\n      resourceDestinationAfter,\n      resourceDestinationMissing,\n      \"resourceDestination\",\n      \"resourceDestinationLiteral\",\n      \"resourceDestinationLiteralMarker\",\n      \"resourceDestinationRaw\",\n      \"resourceDestinationString\",\n      32\n    )(code2);\n  }\n  function resourceDestinationAfter(code2) {\n    return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceBetween)(code2) : resourceEnd(code2);\n  }\n  function resourceDestinationMissing(code2) {\n    return nok(code2);\n  }\n  function resourceBetween(code2) {\n    if (code2 === 34 || code2 === 39 || code2 === 40) {\n      return factoryTitle(\n        effects,\n        resourceTitleAfter,\n        nok,\n        \"resourceTitle\",\n        \"resourceTitleMarker\",\n        \"resourceTitleString\"\n      )(code2);\n    }\n    return resourceEnd(code2);\n  }\n  function resourceTitleAfter(code2) {\n    return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceEnd)(code2) : resourceEnd(code2);\n  }\n  function resourceEnd(code2) {\n    if (code2 === 41) {\n      effects.enter(\"resourceMarker\");\n      effects.consume(code2);\n      effects.exit(\"resourceMarker\");\n      effects.exit(\"resource\");\n      return ok;\n    }\n    return nok(code2);\n  }\n}\nfunction tokenizeReferenceFull(effects, ok, nok) {\n  const self2 = this;\n  return referenceFull;\n  function referenceFull(code2) {\n    return factoryLabel.call(\n      self2,\n      effects,\n      referenceFullAfter,\n      referenceFullMissing,\n      \"reference\",\n      \"referenceMarker\",\n      \"referenceString\"\n    )(code2);\n  }\n  function referenceFullAfter(code2) {\n    return self2.parser.defined.includes(\n      normalizeIdentifier(\n        self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n      )\n    ) ? ok(code2) : nok(code2);\n  }\n  function referenceFullMissing(code2) {\n    return nok(code2);\n  }\n}\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n  return referenceCollapsedStart;\n  function referenceCollapsedStart(code2) {\n    effects.enter(\"reference\");\n    effects.enter(\"referenceMarker\");\n    effects.consume(code2);\n    effects.exit(\"referenceMarker\");\n    return referenceCollapsedOpen;\n  }\n  function referenceCollapsedOpen(code2) {\n    if (code2 === 93) {\n      effects.enter(\"referenceMarker\");\n      effects.consume(code2);\n      effects.exit(\"referenceMarker\");\n      effects.exit(\"reference\");\n      return ok;\n    }\n    return nok(code2);\n  }\n}\nconst labelStartImage = {\n  name: \"labelStartImage\",\n  tokenize: tokenizeLabelStartImage,\n  resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    effects.enter(\"labelImage\");\n    effects.enter(\"labelImageMarker\");\n    effects.consume(code2);\n    effects.exit(\"labelImageMarker\");\n    return open;\n  }\n  function open(code2) {\n    if (code2 === 91) {\n      effects.enter(\"labelMarker\");\n      effects.consume(code2);\n      effects.exit(\"labelMarker\");\n      effects.exit(\"labelImage\");\n      return after;\n    }\n    return nok(code2);\n  }\n  function after(code2) {\n    return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n  }\n}\nconst labelStartLink = {\n  name: \"labelStartLink\",\n  tokenize: tokenizeLabelStartLink,\n  resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  const self2 = this;\n  return start;\n  function start(code2) {\n    effects.enter(\"labelLink\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code2);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelLink\");\n    return after;\n  }\n  function after(code2) {\n    return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n  }\n}\nconst lineEnding = {\n  name: \"lineEnding\",\n  tokenize: tokenizeLineEnding\n};\nfunction tokenizeLineEnding(effects, ok) {\n  return start;\n  function start(code2) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, ok, \"linePrefix\");\n  }\n}\nconst thematicBreak = {\n  name: \"thematicBreak\",\n  tokenize: tokenizeThematicBreak\n};\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  let size2 = 0;\n  let marker;\n  return start;\n  function start(code2) {\n    effects.enter(\"thematicBreak\");\n    return before(code2);\n  }\n  function before(code2) {\n    marker = code2;\n    return atBreak(code2);\n  }\n  function atBreak(code2) {\n    if (code2 === marker) {\n      effects.enter(\"thematicBreakSequence\");\n      return sequence(code2);\n    }\n    if (size2 >= 3 && (code2 === null || markdownLineEnding(code2))) {\n      effects.exit(\"thematicBreak\");\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n  function sequence(code2) {\n    if (code2 === marker) {\n      effects.consume(code2);\n      size2++;\n      return sequence;\n    }\n    effects.exit(\"thematicBreakSequence\");\n    return markdownSpace(code2) ? factorySpace(effects, atBreak, \"whitespace\")(code2) : atBreak(code2);\n  }\n}\nconst list = {\n  name: \"list\",\n  tokenize: tokenizeListStart,\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd\n};\nconst listItemPrefixWhitespaceConstruct = {\n  tokenize: tokenizeListItemPrefixWhitespace,\n  partial: true\n};\nconst indentConstruct = {\n  tokenize: tokenizeIndent$1,\n  partial: true\n};\nfunction tokenizeListStart(effects, ok, nok) {\n  const self2 = this;\n  const tail = self2.events[self2.events.length - 1];\n  let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n  let size2 = 0;\n  return start;\n  function start(code2) {\n    const kind = self2.containerState.type || (code2 === 42 || code2 === 43 || code2 === 45 ? \"listUnordered\" : \"listOrdered\");\n    if (kind === \"listUnordered\" ? !self2.containerState.marker || code2 === self2.containerState.marker : asciiDigit(code2)) {\n      if (!self2.containerState.type) {\n        self2.containerState.type = kind;\n        effects.enter(kind, {\n          _container: true\n        });\n      }\n      if (kind === \"listUnordered\") {\n        effects.enter(\"listItemPrefix\");\n        return code2 === 42 || code2 === 45 ? effects.check(thematicBreak, nok, atMarker)(code2) : atMarker(code2);\n      }\n      if (!self2.interrupt || code2 === 49) {\n        effects.enter(\"listItemPrefix\");\n        effects.enter(\"listItemValue\");\n        return inside(code2);\n      }\n    }\n    return nok(code2);\n  }\n  function inside(code2) {\n    if (asciiDigit(code2) && ++size2 < 10) {\n      effects.consume(code2);\n      return inside;\n    }\n    if ((!self2.interrupt || size2 < 2) && (self2.containerState.marker ? code2 === self2.containerState.marker : code2 === 41 || code2 === 46)) {\n      effects.exit(\"listItemValue\");\n      return atMarker(code2);\n    }\n    return nok(code2);\n  }\n  function atMarker(code2) {\n    effects.enter(\"listItemMarker\");\n    effects.consume(code2);\n    effects.exit(\"listItemMarker\");\n    self2.containerState.marker = self2.containerState.marker || code2;\n    return effects.check(\n      blankLine,\n      self2.interrupt ? nok : onBlank,\n      effects.attempt(\n        listItemPrefixWhitespaceConstruct,\n        endOfPrefix,\n        otherPrefix\n      )\n    );\n  }\n  function onBlank(code2) {\n    self2.containerState.initialBlankLine = true;\n    initialSize++;\n    return endOfPrefix(code2);\n  }\n  function otherPrefix(code2) {\n    if (markdownSpace(code2)) {\n      effects.enter(\"listItemPrefixWhitespace\");\n      effects.consume(code2);\n      effects.exit(\"listItemPrefixWhitespace\");\n      return endOfPrefix;\n    }\n    return nok(code2);\n  }\n  function endOfPrefix(code2) {\n    self2.containerState.size = initialSize + self2.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n    return ok(code2);\n  }\n}\nfunction tokenizeListContinuation(effects, ok, nok) {\n  const self2 = this;\n  self2.containerState._closeFlow = void 0;\n  return effects.check(blankLine, onBlank, notBlank);\n  function onBlank(code2) {\n    self2.containerState.furtherBlankLines = self2.containerState.furtherBlankLines || self2.containerState.initialBlankLine;\n    return factorySpace(\n      effects,\n      ok,\n      \"listItemIndent\",\n      self2.containerState.size + 1\n    )(code2);\n  }\n  function notBlank(code2) {\n    if (self2.containerState.furtherBlankLines || !markdownSpace(code2)) {\n      self2.containerState.furtherBlankLines = void 0;\n      self2.containerState.initialBlankLine = void 0;\n      return notInCurrentItem(code2);\n    }\n    self2.containerState.furtherBlankLines = void 0;\n    self2.containerState.initialBlankLine = void 0;\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code2);\n  }\n  function notInCurrentItem(code2) {\n    self2.containerState._closeFlow = true;\n    self2.interrupt = void 0;\n    return factorySpace(\n      effects,\n      effects.attempt(list, ok, nok),\n      \"linePrefix\",\n      self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n    )(code2);\n  }\n}\nfunction tokenizeIndent$1(effects, ok, nok) {\n  const self2 = this;\n  return factorySpace(\n    effects,\n    afterPrefix,\n    \"listItemIndent\",\n    self2.containerState.size + 1\n  );\n  function afterPrefix(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self2.containerState.size ? ok(code2) : nok(code2);\n  }\n}\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type);\n}\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  const self2 = this;\n  return factorySpace(\n    effects,\n    afterPrefix,\n    \"listItemPrefixWhitespace\",\n    self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4 + 1\n  );\n  function afterPrefix(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    return !markdownSpace(code2) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code2) : nok(code2);\n  }\n}\nconst setextUnderline = {\n  name: \"setextUnderline\",\n  tokenize: tokenizeSetextUnderline,\n  resolveTo: resolveToSetextUnderline\n};\nfunction resolveToSetextUnderline(events, context) {\n  let index = events.length;\n  let content2;\n  let text2;\n  let definition2;\n  while (index--) {\n    if (events[index][0] === \"enter\") {\n      if (events[index][1].type === \"content\") {\n        content2 = index;\n        break;\n      }\n      if (events[index][1].type === \"paragraph\") {\n        text2 = index;\n      }\n    } else {\n      if (events[index][1].type === \"content\") {\n        events.splice(index, 1);\n      }\n      if (!definition2 && events[index][1].type === \"definition\") {\n        definition2 = index;\n      }\n    }\n  }\n  const heading = {\n    type: \"setextHeading\",\n    start: Object.assign({}, events[text2][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n  events[text2][1].type = \"setextHeadingText\";\n  if (definition2) {\n    events.splice(text2, 0, [\"enter\", heading, context]);\n    events.splice(definition2 + 1, 0, [\"exit\", events[content2][1], context]);\n    events[content2][1].end = Object.assign({}, events[definition2][1].end);\n  } else {\n    events[content2][1] = heading;\n  }\n  events.push([\"exit\", heading, context]);\n  return events;\n}\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  const self2 = this;\n  let marker;\n  return start;\n  function start(code2) {\n    let index = self2.events.length;\n    let paragraph;\n    while (index--) {\n      if (self2.events[index][1].type !== \"lineEnding\" && self2.events[index][1].type !== \"linePrefix\" && self2.events[index][1].type !== \"content\") {\n        paragraph = self2.events[index][1].type === \"paragraph\";\n        break;\n      }\n    }\n    if (!self2.parser.lazy[self2.now().line] && (self2.interrupt || paragraph)) {\n      effects.enter(\"setextHeadingLine\");\n      marker = code2;\n      return before(code2);\n    }\n    return nok(code2);\n  }\n  function before(code2) {\n    effects.enter(\"setextHeadingLineSequence\");\n    return inside(code2);\n  }\n  function inside(code2) {\n    if (code2 === marker) {\n      effects.consume(code2);\n      return inside;\n    }\n    effects.exit(\"setextHeadingLineSequence\");\n    return markdownSpace(code2) ? factorySpace(effects, after, \"lineSuffix\")(code2) : after(code2);\n  }\n  function after(code2) {\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"setextHeadingLine\");\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n}\nconst flow$1 = {\n  tokenize: initializeFlow\n};\nfunction initializeFlow(effects) {\n  const self2 = this;\n  const initial = effects.attempt(\n    blankLine,\n    atBlankEnding,\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  function atBlankEnding(code2) {\n    if (code2 === null) {\n      effects.consume(code2);\n      return;\n    }\n    effects.enter(\"lineEndingBlank\");\n    effects.consume(code2);\n    effects.exit(\"lineEndingBlank\");\n    self2.currentConstruct = void 0;\n    return initial;\n  }\n  function afterConstruct(code2) {\n    if (code2 === null) {\n      effects.consume(code2);\n      return;\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code2);\n    effects.exit(\"lineEnding\");\n    self2.currentConstruct = void 0;\n    return initial;\n  }\n}\nconst resolver = {\n  resolveAll: createResolver()\n};\nconst string$1 = initializeFactory(\"string\");\nconst text$3 = initializeFactory(\"text\");\nfunction initializeFactory(field) {\n  return {\n    tokenize: initializeText,\n    resolveAll: createResolver(\n      field === \"text\" ? resolveAllLineSuffixes : void 0\n    )\n  };\n  function initializeText(effects) {\n    const self2 = this;\n    const constructs2 = this.parser.constructs[field];\n    const text2 = effects.attempt(constructs2, start, notText);\n    return start;\n    function start(code2) {\n      return atBreak(code2) ? text2(code2) : notText(code2);\n    }\n    function notText(code2) {\n      if (code2 === null) {\n        effects.consume(code2);\n        return;\n      }\n      effects.enter(\"data\");\n      effects.consume(code2);\n      return data;\n    }\n    function data(code2) {\n      if (atBreak(code2)) {\n        effects.exit(\"data\");\n        return text2(code2);\n      }\n      effects.consume(code2);\n      return data;\n    }\n    function atBreak(code2) {\n      if (code2 === null) {\n        return true;\n      }\n      const list2 = constructs2[code2];\n      let index = -1;\n      if (list2) {\n        while (++index < list2.length) {\n          const item = list2[index];\n          if (!item.previous || item.previous.call(self2, self2.previous)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n  }\n}\nfunction createResolver(extraResolver) {\n  return resolveAllText;\n  function resolveAllText(events, context) {\n    let index = -1;\n    let enter;\n    while (++index <= events.length) {\n      if (enter === void 0) {\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        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        enter = void 0;\n      }\n    }\n    return extraResolver ? extraResolver(events, context) : events;\n  }\n}\nfunction resolveAllLineSuffixes(events, context) {\n  let eventIndex = 0;\n  while (++eventIndex <= events.length) {\n    if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n      const data = events[eventIndex - 1][1];\n      const chunks = context.sliceStream(data);\n      let index = chunks.length;\n      let bufferIndex = -1;\n      let size2 = 0;\n      let tabs;\n      while (index--) {\n        const chunk = chunks[index];\n        if (typeof chunk === \"string\") {\n          bufferIndex = chunk.length;\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size2++;\n            bufferIndex--;\n          }\n          if (bufferIndex)\n            break;\n          bufferIndex = -1;\n        } else if (chunk === -2) {\n          tabs = true;\n          size2++;\n        } else if (chunk === -1)\n          ;\n        else {\n          index++;\n          break;\n        }\n      }\n      if (size2) {\n        const token = {\n          type: eventIndex === events.length || tabs || size2 < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n          start: {\n            line: data.end.line,\n            column: data.end.column - size2,\n            offset: data.end.offset - size2,\n            _index: data.start._index + index,\n            _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n          },\n          end: Object.assign({}, data.end)\n        };\n        data.end = Object.assign({}, token.start);\n        if (data.start.offset === data.end.offset) {\n          Object.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      eventIndex++;\n    }\n  }\n  return events;\n}\nfunction createTokenizer(parser, initialize, from) {\n  let point = Object.assign(\n    from ? Object.assign({}, from) : {\n      line: 1,\n      column: 1,\n      offset: 0\n    },\n    {\n      _index: 0,\n      _bufferIndex: -1\n    }\n  );\n  const columnStart = {};\n  const resolveAllConstructs = [];\n  let chunks = [];\n  let stack = [];\n  const effects = {\n    consume,\n    enter,\n    exit: exit2,\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    })\n  };\n  const context = {\n    previous: null,\n    code: null,\n    containerState: {},\n    events: [],\n    parser,\n    sliceStream,\n    sliceSerialize,\n    now,\n    defineSkip,\n    write\n  };\n  let state = initialize.tokenize.call(context, effects);\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize);\n  }\n  return context;\n  function write(slice) {\n    chunks = push(chunks, slice);\n    main();\n    if (chunks[chunks.length - 1] !== null) {\n      return [];\n    }\n    addResult(initialize, 0);\n    context.events = resolveAll(resolveAllConstructs, context.events, context);\n    return context.events;\n  }\n  function sliceSerialize(token, expandTabs) {\n    return serializeChunks(sliceStream(token), expandTabs);\n  }\n  function sliceStream(token) {\n    return sliceChunks(chunks, token);\n  }\n  function now() {\n    const { line, column, offset, _index, _bufferIndex } = point;\n    return {\n      line,\n      column,\n      offset,\n      _index,\n      _bufferIndex\n    };\n  }\n  function defineSkip(value) {\n    columnStart[value.line] = value.column;\n    accountForPotentialSkip();\n  }\n  function main() {\n    let chunkIndex;\n    while (point._index < chunks.length) {\n      const chunk = chunks[point._index];\n      if (typeof chunk === \"string\") {\n        chunkIndex = point._index;\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0;\n        }\n        while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n          go(chunk.charCodeAt(point._bufferIndex));\n        }\n      } else {\n        go(chunk);\n      }\n    }\n  }\n  function go(code2) {\n    state = state(code2);\n  }\n  function consume(code2) {\n    if (markdownLineEnding(code2)) {\n      point.line++;\n      point.column = 1;\n      point.offset += code2 === -3 ? 2 : 1;\n      accountForPotentialSkip();\n    } else if (code2 !== -1) {\n      point.column++;\n      point.offset++;\n    }\n    if (point._bufferIndex < 0) {\n      point._index++;\n    } else {\n      point._bufferIndex++;\n      if (point._bufferIndex === chunks[point._index].length) {\n        point._bufferIndex = -1;\n        point._index++;\n      }\n    }\n    context.previous = code2;\n  }\n  function enter(type, fields) {\n    const 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  }\n  function exit2(type) {\n    const token = stack.pop();\n    token.end = now();\n    context.events.push([\"exit\", token, context]);\n    return token;\n  }\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from);\n  }\n  function onsuccessfulcheck(_, info) {\n    info.restore();\n  }\n  function constructFactory(onreturn, fields) {\n    return hook;\n    function hook(constructs2, returnState, bogusState) {\n      let listOfConstructs;\n      let constructIndex;\n      let currentConstruct;\n      let info;\n      return Array.isArray(constructs2) ? handleListOfConstructs(constructs2) : \"tokenize\" in constructs2 ? handleListOfConstructs([constructs2]) : handleMapOfConstructs(constructs2);\n      function handleMapOfConstructs(map) {\n        return start;\n        function start(code2) {\n          const def2 = code2 !== null && map[code2];\n          const all = code2 !== null && map.null;\n          const list2 = [\n            ...Array.isArray(def2) ? def2 : def2 ? [def2] : [],\n            ...Array.isArray(all) ? all : all ? [all] : []\n          ];\n          return handleListOfConstructs(list2)(code2);\n        }\n      }\n      function handleListOfConstructs(list2) {\n        listOfConstructs = list2;\n        constructIndex = 0;\n        if (list2.length === 0) {\n          return bogusState;\n        }\n        return handleConstruct(list2[constructIndex]);\n      }\n      function handleConstruct(construct) {\n        return start;\n        function start(code2) {\n          info = store();\n          currentConstruct = construct;\n          if (!construct.partial) {\n            context.currentConstruct = construct;\n          }\n          if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n            return nok();\n          }\n          return construct.tokenize.call(\n            fields ? Object.assign(Object.create(context), fields) : context,\n            effects,\n            ok,\n            nok\n          )(code2);\n        }\n      }\n      function ok(code2) {\n        onreturn(currentConstruct, info);\n        return returnState;\n      }\n      function nok(code2) {\n        info.restore();\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex]);\n        }\n        return bogusState;\n      }\n    }\n  }\n  function addResult(construct, from2) {\n    if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n      resolveAllConstructs.push(construct);\n    }\n    if (construct.resolve) {\n      splice(\n        context.events,\n        from2,\n        context.events.length - from2,\n        construct.resolve(context.events.slice(from2), context)\n      );\n    }\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context);\n    }\n  }\n  function store() {\n    const startPoint = now();\n    const startPrevious = context.previous;\n    const startCurrentConstruct = context.currentConstruct;\n    const startEventsIndex = context.events.length;\n    const startStack = Array.from(stack);\n    return {\n      restore,\n      from: startEventsIndex\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  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}\nfunction sliceChunks(chunks, token) {\n  const startIndex = token.start._index;\n  const startBufferIndex = token.start._bufferIndex;\n  const endIndex = token.end._index;\n  const endBufferIndex = token.end._bufferIndex;\n  let view;\n  if (startIndex === endIndex) {\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n  } else {\n    view = chunks.slice(startIndex, endIndex);\n    if (startBufferIndex > -1) {\n      const head = view[0];\n      if (typeof head === \"string\") {\n        view[0] = head.slice(startBufferIndex);\n      } else {\n        view.shift();\n      }\n    }\n    if (endBufferIndex > 0) {\n      view.push(chunks[endIndex].slice(0, endBufferIndex));\n    }\n  }\n  return view;\n}\nfunction serializeChunks(chunks, expandTabs) {\n  let index = -1;\n  const result = [];\n  let atTab;\n  while (++index < chunks.length) {\n    const chunk = chunks[index];\n    let value;\n    if (typeof chunk === \"string\") {\n      value = chunk;\n    } else\n      switch (chunk) {\n        case -5: {\n          value = \"\\r\";\n          break;\n        }\n        case -4: {\n          value = \"\\n\";\n          break;\n        }\n        case -3: {\n          value = \"\\r\\n\";\n          break;\n        }\n        case -2: {\n          value = expandTabs ? \" \" : \"\t\";\n          break;\n        }\n        case -1: {\n          if (!expandTabs && atTab)\n            continue;\n          value = \" \";\n          break;\n        }\n        default: {\n          value = String.fromCharCode(chunk);\n        }\n      }\n    atTab = chunk === -2;\n    result.push(value);\n  }\n  return result.join(\"\");\n}\nconst document$1 = {\n  [42]: list,\n  [43]: list,\n  [45]: list,\n  [48]: list,\n  [49]: list,\n  [50]: list,\n  [51]: list,\n  [52]: list,\n  [53]: list,\n  [54]: list,\n  [55]: list,\n  [56]: list,\n  [57]: list,\n  [62]: blockQuote\n};\nconst contentInitial = {\n  [91]: definition\n};\nconst flowInitial = {\n  [-2]: codeIndented,\n  [-1]: codeIndented,\n  [32]: codeIndented\n};\nconst flow = {\n  [35]: headingAtx,\n  [42]: thematicBreak,\n  [45]: [setextUnderline, thematicBreak],\n  [60]: htmlFlow,\n  [61]: setextUnderline,\n  [95]: thematicBreak,\n  [96]: codeFenced,\n  [126]: codeFenced\n};\nconst string = {\n  [38]: characterReference,\n  [92]: characterEscape\n};\nconst text$2 = {\n  [-5]: lineEnding,\n  [-4]: lineEnding,\n  [-3]: lineEnding,\n  [33]: labelStartImage,\n  [38]: characterReference,\n  [42]: attention,\n  [60]: [autolink, htmlText],\n  [91]: labelStartLink,\n  [92]: [hardBreakEscape, characterEscape],\n  [93]: labelEnd,\n  [95]: attention,\n  [96]: codeText\n};\nconst insideSpan = {\n  null: [attention, resolver]\n};\nconst attentionMarkers = {\n  null: [42, 95]\n};\nconst disable = {\n  null: []\n};\nvar defaultConstructs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  document: document$1,\n  contentInitial,\n  flowInitial,\n  flow,\n  string,\n  text: text$2,\n  insideSpan,\n  attentionMarkers,\n  disable\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction parse(options) {\n  const settings = options || {};\n  const constructs2 = combineExtensions([defaultConstructs, ...settings.extensions || []]);\n  const parser = {\n    defined: [],\n    lazy: {},\n    constructs: constructs2,\n    content: create(content$1),\n    document: create(document$2),\n    flow: create(flow$1),\n    string: create(string$1),\n    text: create(text$3)\n  };\n  return parser;\n  function create(initial) {\n    return creator;\n    function creator(from) {\n      return createTokenizer(parser, initial, from);\n    }\n  }\n}\nfunction postprocess(events) {\n  while (!subtokenize(events)) {\n  }\n  return events;\n}\nconst search = /[\\0\\t\\n\\r]/g;\nfunction preprocess() {\n  let column = 1;\n  let buffer = \"\";\n  let start = true;\n  let atCarriageReturn;\n  return preprocessor;\n  function preprocessor(value, encoding, end) {\n    const chunks = [];\n    let match;\n    let next;\n    let startPosition;\n    let endPosition;\n    let code2;\n    value = buffer + value.toString(encoding);\n    startPosition = 0;\n    buffer = \"\";\n    if (start) {\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++;\n      }\n      start = void 0;\n    }\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition;\n      match = search.exec(value);\n      endPosition = match && match.index !== void 0 ? match.index : value.length;\n      code2 = value.charCodeAt(endPosition);\n      if (!match) {\n        buffer = value.slice(startPosition);\n        break;\n      }\n      if (code2 === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3);\n        atCarriageReturn = void 0;\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5);\n          atCarriageReturn = void 0;\n        }\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition));\n          column += endPosition - startPosition;\n        }\n        switch (code2) {\n          case 0: {\n            chunks.push(65533);\n            column++;\n            break;\n          }\n          case 9: {\n            next = Math.ceil(column / 4) * 4;\n            chunks.push(-2);\n            while (column++ < next)\n              chunks.push(-1);\n            break;\n          }\n          case 10: {\n            chunks.push(-4);\n            column = 1;\n            break;\n          }\n          default: {\n            atCarriageReturn = true;\n            column = 1;\n          }\n        }\n      }\n      startPosition = endPosition + 1;\n    }\n    if (end) {\n      if (atCarriageReturn)\n        chunks.push(-5);\n      if (buffer)\n        chunks.push(buffer);\n      chunks.push(null);\n    }\n    return chunks;\n  }\n}\nfunction micromark(value, encoding, options) {\n  if (typeof encoding !== \"string\") {\n    options = encoding;\n    encoding = void 0;\n  }\n  return compile(options)(\n    postprocess(\n      parse(options).document().write(preprocess()(value, encoding, true))\n    )\n  );\n}\nconst wwwPrefix = {\n  tokenize: tokenizeWwwPrefix,\n  partial: true\n};\nconst domain = {\n  tokenize: tokenizeDomain,\n  partial: true\n};\nconst path = {\n  tokenize: tokenizePath,\n  partial: true\n};\nconst trail = {\n  tokenize: tokenizeTrail,\n  partial: true\n};\nconst emailDomainDotTrail = {\n  tokenize: tokenizeEmailDomainDotTrail,\n  partial: true\n};\nconst wwwAutolink = {\n  tokenize: tokenizeWwwAutolink,\n  previous: previousWww\n};\nconst protocolAutolink = {\n  tokenize: tokenizeProtocolAutolink,\n  previous: previousProtocol\n};\nconst emailAutolink = {\n  tokenize: tokenizeEmailAutolink,\n  previous: previousEmail\n};\nconst text$1 = {};\nconst gfmAutolinkLiteral = {\n  text: text$1\n};\nlet code = 48;\nwhile (code < 123) {\n  text$1[code] = emailAutolink;\n  code++;\n  if (code === 58)\n    code = 65;\n  else if (code === 91)\n    code = 97;\n}\ntext$1[43] = emailAutolink;\ntext$1[45] = emailAutolink;\ntext$1[46] = emailAutolink;\ntext$1[95] = emailAutolink;\ntext$1[72] = [emailAutolink, protocolAutolink];\ntext$1[104] = [emailAutolink, protocolAutolink];\ntext$1[87] = [emailAutolink, wwwAutolink];\ntext$1[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n  const self2 = this;\n  let dot;\n  let data;\n  return start;\n  function start(code2) {\n    if (!gfmAtext(code2) || !previousEmail.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n      return nok(code2);\n    }\n    effects.enter(\"literalAutolink\");\n    effects.enter(\"literalAutolinkEmail\");\n    return atext(code2);\n  }\n  function atext(code2) {\n    if (gfmAtext(code2)) {\n      effects.consume(code2);\n      return atext;\n    }\n    if (code2 === 64) {\n      effects.consume(code2);\n      return emailDomain;\n    }\n    return nok(code2);\n  }\n  function emailDomain(code2) {\n    if (code2 === 46) {\n      return effects.check(\n        emailDomainDotTrail,\n        emailDomainAfter,\n        emailDomainDot\n      )(code2);\n    }\n    if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n      data = true;\n      effects.consume(code2);\n      return emailDomain;\n    }\n    return emailDomainAfter(code2);\n  }\n  function emailDomainDot(code2) {\n    effects.consume(code2);\n    dot = true;\n    return emailDomain;\n  }\n  function emailDomainAfter(code2) {\n    if (data && dot && asciiAlpha(self2.previous)) {\n      effects.exit(\"literalAutolinkEmail\");\n      effects.exit(\"literalAutolink\");\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n}\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n  const self2 = this;\n  return wwwStart;\n  function wwwStart(code2) {\n    if (code2 !== 87 && code2 !== 119 || !previousWww.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n      return nok(code2);\n    }\n    effects.enter(\"literalAutolink\");\n    effects.enter(\"literalAutolinkWww\");\n    return effects.check(\n      wwwPrefix,\n      effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n      nok\n    )(code2);\n  }\n  function wwwAfter(code2) {\n    effects.exit(\"literalAutolinkWww\");\n    effects.exit(\"literalAutolink\");\n    return ok(code2);\n  }\n}\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n  const self2 = this;\n  let buffer = \"\";\n  let seen = false;\n  return protocolStart;\n  function protocolStart(code2) {\n    if ((code2 === 72 || code2 === 104) && previousProtocol.call(self2, self2.previous) && !previousUnbalanced(self2.events)) {\n      effects.enter(\"literalAutolink\");\n      effects.enter(\"literalAutolinkHttp\");\n      buffer += String.fromCodePoint(code2);\n      effects.consume(code2);\n      return protocolPrefixInside;\n    }\n    return nok(code2);\n  }\n  function protocolPrefixInside(code2) {\n    if (asciiAlpha(code2) && buffer.length < 5) {\n      buffer += String.fromCodePoint(code2);\n      effects.consume(code2);\n      return protocolPrefixInside;\n    }\n    if (code2 === 58) {\n      const protocol = buffer.toLowerCase();\n      if (protocol === \"http\" || protocol === \"https\") {\n        effects.consume(code2);\n        return protocolSlashesInside;\n      }\n    }\n    return nok(code2);\n  }\n  function protocolSlashesInside(code2) {\n    if (code2 === 47) {\n      effects.consume(code2);\n      if (seen) {\n        return afterProtocol;\n      }\n      seen = true;\n      return protocolSlashesInside;\n    }\n    return nok(code2);\n  }\n  function afterProtocol(code2) {\n    return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n  }\n  function protocolAfter(code2) {\n    effects.exit(\"literalAutolinkHttp\");\n    effects.exit(\"literalAutolink\");\n    return ok(code2);\n  }\n}\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n  let size2 = 0;\n  return wwwPrefixInside;\n  function wwwPrefixInside(code2) {\n    if ((code2 === 87 || code2 === 119) && size2 < 3) {\n      size2++;\n      effects.consume(code2);\n      return wwwPrefixInside;\n    }\n    if (code2 === 46 && size2 === 3) {\n      effects.consume(code2);\n      return wwwPrefixAfter;\n    }\n    return nok(code2);\n  }\n  function wwwPrefixAfter(code2) {\n    return code2 === null ? nok(code2) : ok(code2);\n  }\n}\nfunction tokenizeDomain(effects, ok, nok) {\n  let underscoreInLastSegment;\n  let underscoreInLastLastSegment;\n  let seen;\n  return domainInside;\n  function domainInside(code2) {\n    if (code2 === 46 || code2 === 95) {\n      return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n    }\n    if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n      return domainAfter(code2);\n    }\n    seen = true;\n    effects.consume(code2);\n    return domainInside;\n  }\n  function domainAtPunctuation(code2) {\n    if (code2 === 95) {\n      underscoreInLastSegment = true;\n    } else {\n      underscoreInLastLastSegment = underscoreInLastSegment;\n      underscoreInLastSegment = void 0;\n    }\n    effects.consume(code2);\n    return domainInside;\n  }\n  function domainAfter(code2) {\n    if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n      return nok(code2);\n    }\n    return ok(code2);\n  }\n}\nfunction tokenizePath(effects, ok) {\n  let sizeOpen = 0;\n  let sizeClose = 0;\n  return pathInside;\n  function pathInside(code2) {\n    if (code2 === 40) {\n      sizeOpen++;\n      effects.consume(code2);\n      return pathInside;\n    }\n    if (code2 === 41 && sizeClose < sizeOpen) {\n      return pathAtPunctuation(code2);\n    }\n    if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n      return effects.check(trail, ok, pathAtPunctuation)(code2);\n    }\n    if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n      return ok(code2);\n    }\n    effects.consume(code2);\n    return pathInside;\n  }\n  function pathAtPunctuation(code2) {\n    if (code2 === 41) {\n      sizeClose++;\n    }\n    effects.consume(code2);\n    return pathInside;\n  }\n}\nfunction tokenizeTrail(effects, ok, nok) {\n  return trail2;\n  function trail2(code2) {\n    if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n      effects.consume(code2);\n      return trail2;\n    }\n    if (code2 === 38) {\n      effects.consume(code2);\n      return trailCharRefStart;\n    }\n    if (code2 === 93) {\n      effects.consume(code2);\n      return trailBracketAfter;\n    }\n    if (code2 === 60 || code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n      return ok(code2);\n    }\n    return nok(code2);\n  }\n  function trailBracketAfter(code2) {\n    if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n      return ok(code2);\n    }\n    return trail2(code2);\n  }\n  function trailCharRefStart(code2) {\n    return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n  }\n  function trailCharRefInside(code2) {\n    if (code2 === 59) {\n      effects.consume(code2);\n      return trail2;\n    }\n    if (asciiAlpha(code2)) {\n      effects.consume(code2);\n      return trailCharRefInside;\n    }\n    return nok(code2);\n  }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n  return start;\n  function start(code2) {\n    effects.consume(code2);\n    return after;\n  }\n  function after(code2) {\n    return asciiAlphanumeric(code2) ? nok(code2) : ok(code2);\n  }\n}\nfunction previousWww(code2) {\n  return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n  return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n  return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n  return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n  let index = events.length;\n  let result = false;\n  while (index--) {\n    const token = events[index][1];\n    if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n      result = true;\n      break;\n    }\n    if (token._gfmAutolinkLiteralWalkedInto) {\n      result = false;\n      break;\n    }\n  }\n  if (events.length > 0 && !result) {\n    events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n  }\n  return result;\n}\nconst gfmAutolinkLiteralHtml = {\n  exit: {\n    literalAutolinkEmail,\n    literalAutolinkHttp,\n    literalAutolinkWww\n  }\n};\nfunction literalAutolinkWww(token) {\n  anchorFromToken.call(this, token, \"http://\");\n}\nfunction literalAutolinkEmail(token) {\n  anchorFromToken.call(this, token, \"mailto:\");\n}\nfunction literalAutolinkHttp(token) {\n  anchorFromToken.call(this, token);\n}\nfunction anchorFromToken(token, protocol) {\n  const url = this.sliceSerialize(token);\n  this.tag('<a href=\"' + sanitizeUri((protocol || \"\") + url) + '\">');\n  this.raw(this.encode(url));\n  this.tag(\"</a>\");\n}\nconst indent = {\n  tokenize: tokenizeIndent,\n  partial: true\n};\nfunction gfmFootnote() {\n  return {\n    document: {\n      [91]: {\n        tokenize: tokenizeDefinitionStart,\n        continuation: {\n          tokenize: tokenizeDefinitionContinuation\n        },\n        exit: gfmFootnoteDefinitionEnd\n      }\n    },\n    text: {\n      [91]: {\n        tokenize: tokenizeGfmFootnoteCall\n      },\n      [93]: {\n        add: \"after\",\n        tokenize: tokenizePotentialGfmFootnoteCall,\n        resolveTo: resolveToPotentialGfmFootnoteCall\n      }\n    }\n  };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n  const self2 = this;\n  let index = self2.events.length;\n  const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n  let labelStart;\n  while (index--) {\n    const token = self2.events[index][1];\n    if (token.type === \"labelImage\") {\n      labelStart = token;\n      break;\n    }\n    if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n      break;\n    }\n  }\n  return start;\n  function start(code2) {\n    if (!labelStart || !labelStart._balanced) {\n      return nok(code2);\n    }\n    const id = normalizeIdentifier(\n      self2.sliceSerialize({\n        start: labelStart.end,\n        end: self2.now()\n      })\n    );\n    if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n      return nok(code2);\n    }\n    effects.enter(\"gfmFootnoteCallLabelMarker\");\n    effects.consume(code2);\n    effects.exit(\"gfmFootnoteCallLabelMarker\");\n    return ok(code2);\n  }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n  let index = events.length;\n  while (index--) {\n    if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n      events[index][1];\n      break;\n    }\n  }\n  events[index + 1][1].type = \"data\";\n  events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n  const call = {\n    type: \"gfmFootnoteCall\",\n    start: Object.assign({}, events[index + 3][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n  const marker = {\n    type: \"gfmFootnoteCallMarker\",\n    start: Object.assign({}, events[index + 3][1].end),\n    end: Object.assign({}, events[index + 3][1].end)\n  };\n  marker.end.column++;\n  marker.end.offset++;\n  marker.end._bufferIndex++;\n  const string2 = {\n    type: \"gfmFootnoteCallString\",\n    start: Object.assign({}, marker.end),\n    end: Object.assign({}, events[events.length - 1][1].start)\n  };\n  const chunk = {\n    type: \"chunkString\",\n    contentType: \"string\",\n    start: Object.assign({}, string2.start),\n    end: Object.assign({}, string2.end)\n  };\n  const replacement = [\n    events[index + 1],\n    events[index + 2],\n    [\"enter\", call, context],\n    events[index + 3],\n    events[index + 4],\n    [\"enter\", marker, context],\n    [\"exit\", marker, context],\n    [\"enter\", string2, context],\n    [\"enter\", chunk, context],\n    [\"exit\", chunk, context],\n    [\"exit\", string2, context],\n    events[events.length - 2],\n    events[events.length - 1],\n    [\"exit\", call, context]\n  ];\n  events.splice(index, events.length - index + 1, ...replacement);\n  return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n  const self2 = this;\n  const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n  let size2 = 0;\n  let data;\n  return start;\n  function start(code2) {\n    effects.enter(\"gfmFootnoteCall\");\n    effects.enter(\"gfmFootnoteCallLabelMarker\");\n    effects.consume(code2);\n    effects.exit(\"gfmFootnoteCallLabelMarker\");\n    return callStart;\n  }\n  function callStart(code2) {\n    if (code2 !== 94)\n      return nok(code2);\n    effects.enter(\"gfmFootnoteCallMarker\");\n    effects.consume(code2);\n    effects.exit(\"gfmFootnoteCallMarker\");\n    effects.enter(\"gfmFootnoteCallString\");\n    effects.enter(\"chunkString\").contentType = \"string\";\n    return callData;\n  }\n  function callData(code2) {\n    if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n      return nok(code2);\n    }\n    if (code2 === 93) {\n      effects.exit(\"chunkString\");\n      const token = effects.exit(\"gfmFootnoteCallString\");\n      if (!defined.includes(normalizeIdentifier(self2.sliceSerialize(token)))) {\n        return nok(code2);\n      }\n      effects.enter(\"gfmFootnoteCallLabelMarker\");\n      effects.consume(code2);\n      effects.exit(\"gfmFootnoteCallLabelMarker\");\n      effects.exit(\"gfmFootnoteCall\");\n      return ok;\n    }\n    if (!markdownLineEndingOrSpace(code2)) {\n      data = true;\n    }\n    size2++;\n    effects.consume(code2);\n    return code2 === 92 ? callEscape : callData;\n  }\n  function callEscape(code2) {\n    if (code2 === 91 || code2 === 92 || code2 === 93) {\n      effects.consume(code2);\n      size2++;\n      return callData;\n    }\n    return callData(code2);\n  }\n}\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n  const self2 = this;\n  const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n  let identifier;\n  let size2 = 0;\n  let data;\n  return start;\n  function start(code2) {\n    effects.enter(\"gfmFootnoteDefinition\")._container = true;\n    effects.enter(\"gfmFootnoteDefinitionLabel\");\n    effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n    effects.consume(code2);\n    effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n    return labelAtMarker;\n  }\n  function labelAtMarker(code2) {\n    if (code2 === 94) {\n      effects.enter(\"gfmFootnoteDefinitionMarker\");\n      effects.consume(code2);\n      effects.exit(\"gfmFootnoteDefinitionMarker\");\n      effects.enter(\"gfmFootnoteDefinitionLabelString\");\n      effects.enter(\"chunkString\").contentType = \"string\";\n      return labelInside;\n    }\n    return nok(code2);\n  }\n  function labelInside(code2) {\n    if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n      return nok(code2);\n    }\n    if (code2 === 93) {\n      effects.exit(\"chunkString\");\n      const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n      identifier = normalizeIdentifier(self2.sliceSerialize(token));\n      effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n      effects.consume(code2);\n      effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n      effects.exit(\"gfmFootnoteDefinitionLabel\");\n      return labelAfter;\n    }\n    if (!markdownLineEndingOrSpace(code2)) {\n      data = true;\n    }\n    size2++;\n    effects.consume(code2);\n    return code2 === 92 ? labelEscape : labelInside;\n  }\n  function labelEscape(code2) {\n    if (code2 === 91 || code2 === 92 || code2 === 93) {\n      effects.consume(code2);\n      size2++;\n      return labelInside;\n    }\n    return labelInside(code2);\n  }\n  function labelAfter(code2) {\n    if (code2 === 58) {\n      effects.enter(\"definitionMarker\");\n      effects.consume(code2);\n      effects.exit(\"definitionMarker\");\n      if (!defined.includes(identifier)) {\n        defined.push(identifier);\n      }\n      return factorySpace(\n        effects,\n        whitespaceAfter,\n        \"gfmFootnoteDefinitionWhitespace\"\n      );\n    }\n    return nok(code2);\n  }\n  function whitespaceAfter(code2) {\n    return ok(code2);\n  }\n}\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n  return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n  effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok, nok) {\n  const self2 = this;\n  return factorySpace(\n    effects,\n    afterPrefix,\n    \"gfmFootnoteDefinitionIndent\",\n    4 + 1\n  );\n  function afterPrefix(code2) {\n    const tail = self2.events[self2.events.length - 1];\n    return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code2) : nok(code2);\n  }\n}\nconst own = {}.hasOwnProperty;\nconst emptyOptions = {};\nfunction defaultBackLabel(referenceIndex, rereferenceIndex) {\n  return \"Back to reference \" + (referenceIndex + 1) + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\");\n}\nfunction gfmFootnoteHtml(options) {\n  const config = options || emptyOptions;\n  const label = config.label || \"Footnotes\";\n  const labelTagName = config.labelTagName || \"h2\";\n  const labelAttributes = config.labelAttributes === null || config.labelAttributes === void 0 ? 'class=\"sr-only\"' : config.labelAttributes;\n  const backLabel = config.backLabel || defaultBackLabel;\n  const clobberPrefix = config.clobberPrefix === null || config.clobberPrefix === void 0 ? \"user-content-\" : config.clobberPrefix;\n  return {\n    enter: {\n      gfmFootnoteDefinition() {\n        const stack = this.getData(\"tightStack\");\n        stack.push(false);\n      },\n      gfmFootnoteDefinitionLabelString() {\n        this.buffer();\n      },\n      gfmFootnoteCallString() {\n        this.buffer();\n      }\n    },\n    exit: {\n      gfmFootnoteDefinition() {\n        let definitions2 = this.getData(\"gfmFootnoteDefinitions\");\n        const footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n        const tightStack = this.getData(\"tightStack\");\n        const current = footnoteStack.pop();\n        const value = this.resume();\n        if (!definitions2) {\n          this.setData(\"gfmFootnoteDefinitions\", definitions2 = {});\n        }\n        if (!own.call(definitions2, current))\n          definitions2[current] = value;\n        tightStack.pop();\n        this.setData(\"slurpOneLineEnding\", true);\n        this.setData(\"lastWasTag\");\n      },\n      gfmFootnoteDefinitionLabelString(token) {\n        let footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n        if (!footnoteStack) {\n          this.setData(\"gfmFootnoteDefinitionStack\", footnoteStack = []);\n        }\n        footnoteStack.push(normalizeIdentifier(this.sliceSerialize(token)));\n        this.resume();\n        this.buffer();\n      },\n      gfmFootnoteCallString(token) {\n        let calls = this.getData(\"gfmFootnoteCallOrder\");\n        let counts = this.getData(\"gfmFootnoteCallCounts\");\n        const id = normalizeIdentifier(this.sliceSerialize(token));\n        let counter;\n        this.resume();\n        if (!calls)\n          this.setData(\"gfmFootnoteCallOrder\", calls = []);\n        if (!counts)\n          this.setData(\"gfmFootnoteCallCounts\", counts = {});\n        const index = calls.indexOf(id);\n        const safeId = sanitizeUri(id.toLowerCase());\n        if (index === -1) {\n          calls.push(id);\n          counts[id] = 1;\n          counter = calls.length;\n        } else {\n          counts[id]++;\n          counter = index + 1;\n        }\n        const reuseCounter = counts[id];\n        this.tag(\n          '<sup><a href=\"#' + clobberPrefix + \"fn-\" + safeId + '\" id=\"' + clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\") + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + \"</a></sup>\"\n        );\n      },\n      null() {\n        const calls = this.getData(\"gfmFootnoteCallOrder\") || [];\n        const counts = this.getData(\"gfmFootnoteCallCounts\") || {};\n        const definitions2 = this.getData(\"gfmFootnoteDefinitions\") || {};\n        let index = -1;\n        if (calls.length > 0) {\n          this.lineEndingIfNeeded();\n          this.tag(\n            '<section data-footnotes=\"\" class=\"footnotes\"><' + labelTagName + ' id=\"footnote-label\"' + (labelAttributes ? \" \" + labelAttributes : \"\") + \">\"\n          );\n          this.raw(this.encode(label));\n          this.tag(\"</\" + labelTagName + \">\");\n          this.lineEndingIfNeeded();\n          this.tag(\"<ol>\");\n        }\n        while (++index < calls.length) {\n          const id = calls[index];\n          const safeId = sanitizeUri(id.toLowerCase());\n          let referenceIndex = 0;\n          const references = [];\n          while (++referenceIndex <= counts[id]) {\n            references.push(\n              '<a href=\"#' + clobberPrefix + \"fnref-\" + safeId + (referenceIndex > 1 ? \"-\" + referenceIndex : \"\") + '\" data-footnote-backref=\"\" aria-label=\"' + this.encode(\n                typeof backLabel === \"string\" ? backLabel : backLabel(index, referenceIndex)\n              ) + '\" class=\"data-footnote-backref\">\\u21A9' + (referenceIndex > 1 ? \"<sup>\" + referenceIndex + \"</sup>\" : \"\") + \"</a>\"\n            );\n          }\n          const reference = references.join(\" \");\n          let injected = false;\n          this.lineEndingIfNeeded();\n          this.tag('<li id=\"' + clobberPrefix + \"fn-\" + safeId + '\">');\n          this.lineEndingIfNeeded();\n          this.tag(\n            definitions2[id].replace(\n              /<\\/p>(?:\\r?\\n|\\r)?$/,\n              ($0) => {\n                injected = true;\n                return \" \" + reference + $0;\n              }\n            )\n          );\n          if (!injected) {\n            this.lineEndingIfNeeded();\n            this.tag(reference);\n          }\n          this.lineEndingIfNeeded();\n          this.tag(\"</li>\");\n        }\n        if (calls.length > 0) {\n          this.lineEndingIfNeeded();\n          this.tag(\"</ol>\");\n          this.lineEndingIfNeeded();\n          this.tag(\"</section>\");\n        }\n      }\n    }\n  };\n}\nconst gfmStrikethroughHtml = {\n  enter: {\n    strikethrough() {\n      this.tag(\"<del>\");\n    }\n  },\n  exit: {\n    strikethrough() {\n      this.tag(\"</del>\");\n    }\n  }\n};\nfunction gfmStrikethrough(options) {\n  const options_ = options || {};\n  let single = options_.singleTilde;\n  const tokenizer = {\n    tokenize: tokenizeStrikethrough,\n    resolveAll: resolveAllStrikethrough\n  };\n  if (single === null || single === void 0) {\n    single = true;\n  }\n  return {\n    text: {\n      [126]: tokenizer\n    },\n    insideSpan: {\n      null: [tokenizer]\n    },\n    attentionMarkers: {\n      null: [126]\n    }\n  };\n  function resolveAllStrikethrough(events, context) {\n    let index = -1;\n    while (++index < events.length) {\n      if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n        let open = index;\n        while (open--) {\n          if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n            events[index][1].type = \"strikethroughSequence\";\n            events[open][1].type = \"strikethroughSequence\";\n            const strikethrough = {\n              type: \"strikethrough\",\n              start: Object.assign({}, events[open][1].start),\n              end: Object.assign({}, events[index][1].end)\n            };\n            const text2 = {\n              type: \"strikethroughText\",\n              start: Object.assign({}, events[open][1].end),\n              end: Object.assign({}, events[index][1].start)\n            };\n            const nextEvents = [\n              [\"enter\", strikethrough, context],\n              [\"enter\", events[open][1], context],\n              [\"exit\", events[open][1], context],\n              [\"enter\", text2, context]\n            ];\n            const insideSpan2 = context.parser.constructs.insideSpan.null;\n            if (insideSpan2) {\n              splice(\n                nextEvents,\n                nextEvents.length,\n                0,\n                resolveAll(insideSpan2, events.slice(open + 1, index), context)\n              );\n            }\n            splice(nextEvents, nextEvents.length, 0, [\n              [\"exit\", text2, context],\n              [\"enter\", events[index][1], context],\n              [\"exit\", events[index][1], context],\n              [\"exit\", strikethrough, context]\n            ]);\n            splice(events, open - 1, index - open + 3, nextEvents);\n            index = open + nextEvents.length - 2;\n            break;\n          }\n        }\n      }\n    }\n    index = -1;\n    while (++index < events.length) {\n      if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n        events[index][1].type = \"data\";\n      }\n    }\n    return events;\n  }\n  function tokenizeStrikethrough(effects, ok, nok) {\n    const previous2 = this.previous;\n    const events = this.events;\n    let size2 = 0;\n    return start;\n    function start(code2) {\n      if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n        return nok(code2);\n      }\n      effects.enter(\"strikethroughSequenceTemporary\");\n      return more(code2);\n    }\n    function more(code2) {\n      const before = classifyCharacter(previous2);\n      if (code2 === 126) {\n        if (size2 > 1)\n          return nok(code2);\n        effects.consume(code2);\n        size2++;\n        return more;\n      }\n      if (size2 < 2 && !single)\n        return nok(code2);\n      const token = effects.exit(\"strikethroughSequenceTemporary\");\n      const after = classifyCharacter(code2);\n      token._open = !after || after === 2 && Boolean(before);\n      token._close = !before || before === 2 && Boolean(after);\n      return ok(code2);\n    }\n  }\n}\nconst alignment = {\n  none: \"\",\n  left: ' align=\"left\"',\n  right: ' align=\"right\"',\n  center: ' align=\"center\"'\n};\nconst gfmTableHtml = {\n  enter: {\n    table(token) {\n      const tableAlign = token._align;\n      this.lineEndingIfNeeded();\n      this.tag(\"<table>\");\n      this.setData(\"tableAlign\", tableAlign);\n    },\n    tableBody() {\n      this.tag(\"<tbody>\");\n    },\n    tableData() {\n      const tableAlign = this.getData(\"tableAlign\");\n      const tableColumn = this.getData(\"tableColumn\");\n      const align = alignment[tableAlign[tableColumn]];\n      if (align === void 0) {\n        this.buffer();\n      } else {\n        this.lineEndingIfNeeded();\n        this.tag(\"<td\" + align + \">\");\n      }\n    },\n    tableHead() {\n      this.lineEndingIfNeeded();\n      this.tag(\"<thead>\");\n    },\n    tableHeader() {\n      const tableAlign = this.getData(\"tableAlign\");\n      const tableColumn = this.getData(\"tableColumn\");\n      const align = alignment[tableAlign[tableColumn]];\n      this.lineEndingIfNeeded();\n      this.tag(\"<th\" + align + \">\");\n    },\n    tableRow() {\n      this.setData(\"tableColumn\", 0);\n      this.lineEndingIfNeeded();\n      this.tag(\"<tr>\");\n    }\n  },\n  exit: {\n    codeTextData(token) {\n      let value = this.sliceSerialize(token);\n      if (this.getData(\"tableAlign\")) {\n        value = value.replace(/\\\\([\\\\|])/g, replace);\n      }\n      this.raw(this.encode(value));\n    },\n    table() {\n      this.setData(\"tableAlign\");\n      this.setData(\"slurpAllLineEndings\");\n      this.lineEndingIfNeeded();\n      this.tag(\"</table>\");\n    },\n    tableBody() {\n      this.lineEndingIfNeeded();\n      this.tag(\"</tbody>\");\n    },\n    tableData() {\n      const tableAlign = this.getData(\"tableAlign\");\n      const tableColumn = this.getData(\"tableColumn\");\n      if (tableColumn in tableAlign) {\n        this.tag(\"</td>\");\n        this.setData(\"tableColumn\", tableColumn + 1);\n      } else {\n        this.resume();\n      }\n    },\n    tableHead() {\n      this.lineEndingIfNeeded();\n      this.tag(\"</thead>\");\n    },\n    tableHeader() {\n      const tableColumn = this.getData(\"tableColumn\");\n      this.tag(\"</th>\");\n      this.setData(\"tableColumn\", tableColumn + 1);\n    },\n    tableRow() {\n      const tableAlign = this.getData(\"tableAlign\");\n      let tableColumn = this.getData(\"tableColumn\");\n      while (tableColumn < tableAlign.length) {\n        this.lineEndingIfNeeded();\n        this.tag(\"<td\" + alignment[tableAlign[tableColumn]] + \"></td>\");\n        tableColumn++;\n      }\n      this.setData(\"tableColumn\", tableColumn);\n      this.lineEndingIfNeeded();\n      this.tag(\"</tr>\");\n    }\n  }\n};\nfunction replace($0, $1) {\n  return $1 === \"|\" ? $1 : $0;\n}\nclass EditMap {\n  constructor() {\n    this.map = [];\n  }\n  add(index, remove2, add2) {\n    addImpl(this, index, remove2, add2);\n  }\n  consume(events) {\n    this.map.sort((a, b) => a[0] - b[0]);\n    if (this.map.length === 0) {\n      return;\n    }\n    let index = this.map.length;\n    const vecs = [];\n    while (index > 0) {\n      index -= 1;\n      vecs.push(events.slice(this.map[index][0] + this.map[index][1]));\n      vecs.push(this.map[index][2]);\n      events.length = this.map[index][0];\n    }\n    vecs.push([...events]);\n    events.length = 0;\n    let slice = vecs.pop();\n    while (slice) {\n      events.push(...slice);\n      slice = vecs.pop();\n    }\n    this.map.length = 0;\n  }\n}\nfunction addImpl(editMap, at, remove2, add2) {\n  let index = 0;\n  if (remove2 === 0 && add2.length === 0) {\n    return;\n  }\n  while (index < editMap.map.length) {\n    if (editMap.map[index][0] === at) {\n      editMap.map[index][1] += remove2;\n      editMap.map[index][2].push(...add2);\n      return;\n    }\n    index += 1;\n  }\n  editMap.map.push([at, remove2, add2]);\n}\nfunction gfmTableAlign(events, index) {\n  let inDelimiterRow = false;\n  const align = [];\n  while (index < events.length) {\n    const event = events[index];\n    if (inDelimiterRow) {\n      if (event[0] === \"enter\") {\n        if (event[1].type === \"tableContent\") {\n          align.push(\n            events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n          );\n        }\n      } else if (event[1].type === \"tableContent\") {\n        if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n          const alignIndex = align.length - 1;\n          align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n        }\n      } else if (event[1].type === \"tableDelimiterRow\") {\n        break;\n      }\n    } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n      inDelimiterRow = true;\n    }\n    index += 1;\n  }\n  return align;\n}\nconst gfmTable = {\n  flow: {\n    null: {\n      tokenize: tokenizeTable,\n      resolveAll: resolveTable\n    }\n  }\n};\nfunction tokenizeTable(effects, ok, nok) {\n  const self2 = this;\n  let size2 = 0;\n  let sizeB = 0;\n  let seen;\n  return start;\n  function start(code2) {\n    let index = self2.events.length - 1;\n    while (index > -1) {\n      const type = self2.events[index][1].type;\n      if (type === \"lineEnding\" || type === \"linePrefix\")\n        index--;\n      else\n        break;\n    }\n    const tail = index > -1 ? self2.events[index][1].type : null;\n    const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n    if (next === bodyRowStart && self2.parser.lazy[self2.now().line]) {\n      return nok(code2);\n    }\n    return next(code2);\n  }\n  function headRowBefore(code2) {\n    effects.enter(\"tableHead\");\n    effects.enter(\"tableRow\");\n    return headRowStart(code2);\n  }\n  function headRowStart(code2) {\n    if (code2 === 124) {\n      return headRowBreak(code2);\n    }\n    seen = true;\n    sizeB += 1;\n    return headRowBreak(code2);\n  }\n  function headRowBreak(code2) {\n    if (code2 === null) {\n      return nok(code2);\n    }\n    if (markdownLineEnding(code2)) {\n      if (sizeB > 1) {\n        sizeB = 0;\n        self2.interrupt = true;\n        effects.exit(\"tableRow\");\n        effects.enter(\"lineEnding\");\n        effects.consume(code2);\n        effects.exit(\"lineEnding\");\n        return headDelimiterStart;\n      }\n      return nok(code2);\n    }\n    if (markdownSpace(code2)) {\n      return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n    }\n    sizeB += 1;\n    if (seen) {\n      seen = false;\n      size2 += 1;\n    }\n    if (code2 === 124) {\n      effects.enter(\"tableCellDivider\");\n      effects.consume(code2);\n      effects.exit(\"tableCellDivider\");\n      seen = true;\n      return headRowBreak;\n    }\n    effects.enter(\"data\");\n    return headRowData(code2);\n  }\n  function headRowData(code2) {\n    if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n      effects.exit(\"data\");\n      return headRowBreak(code2);\n    }\n    effects.consume(code2);\n    return code2 === 92 ? headRowEscape : headRowData;\n  }\n  function headRowEscape(code2) {\n    if (code2 === 92 || code2 === 124) {\n      effects.consume(code2);\n      return headRowData;\n    }\n    return headRowData(code2);\n  }\n  function headDelimiterStart(code2) {\n    self2.interrupt = false;\n    if (self2.parser.lazy[self2.now().line]) {\n      return nok(code2);\n    }\n    effects.enter(\"tableDelimiterRow\");\n    seen = false;\n    if (markdownSpace(code2)) {\n      return factorySpace(\n        effects,\n        headDelimiterBefore,\n        \"linePrefix\",\n        self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n      )(code2);\n    }\n    return headDelimiterBefore(code2);\n  }\n  function headDelimiterBefore(code2) {\n    if (code2 === 45 || code2 === 58) {\n      return headDelimiterValueBefore(code2);\n    }\n    if (code2 === 124) {\n      seen = true;\n      effects.enter(\"tableCellDivider\");\n      effects.consume(code2);\n      effects.exit(\"tableCellDivider\");\n      return headDelimiterCellBefore;\n    }\n    return headDelimiterNok(code2);\n  }\n  function headDelimiterCellBefore(code2) {\n    if (markdownSpace(code2)) {\n      return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n    }\n    return headDelimiterValueBefore(code2);\n  }\n  function headDelimiterValueBefore(code2) {\n    if (code2 === 58) {\n      sizeB += 1;\n      seen = true;\n      effects.enter(\"tableDelimiterMarker\");\n      effects.consume(code2);\n      effects.exit(\"tableDelimiterMarker\");\n      return headDelimiterLeftAlignmentAfter;\n    }\n    if (code2 === 45) {\n      sizeB += 1;\n      return headDelimiterLeftAlignmentAfter(code2);\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      return headDelimiterCellAfter(code2);\n    }\n    return headDelimiterNok(code2);\n  }\n  function headDelimiterLeftAlignmentAfter(code2) {\n    if (code2 === 45) {\n      effects.enter(\"tableDelimiterFiller\");\n      return headDelimiterFiller(code2);\n    }\n    return headDelimiterNok(code2);\n  }\n  function headDelimiterFiller(code2) {\n    if (code2 === 45) {\n      effects.consume(code2);\n      return headDelimiterFiller;\n    }\n    if (code2 === 58) {\n      seen = true;\n      effects.exit(\"tableDelimiterFiller\");\n      effects.enter(\"tableDelimiterMarker\");\n      effects.consume(code2);\n      effects.exit(\"tableDelimiterMarker\");\n      return headDelimiterRightAlignmentAfter;\n    }\n    effects.exit(\"tableDelimiterFiller\");\n    return headDelimiterRightAlignmentAfter(code2);\n  }\n  function headDelimiterRightAlignmentAfter(code2) {\n    if (markdownSpace(code2)) {\n      return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n    }\n    return headDelimiterCellAfter(code2);\n  }\n  function headDelimiterCellAfter(code2) {\n    if (code2 === 124) {\n      return headDelimiterBefore(code2);\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      if (!seen || size2 !== sizeB) {\n        return headDelimiterNok(code2);\n      }\n      effects.exit(\"tableDelimiterRow\");\n      effects.exit(\"tableHead\");\n      return ok(code2);\n    }\n    return headDelimiterNok(code2);\n  }\n  function headDelimiterNok(code2) {\n    return nok(code2);\n  }\n  function bodyRowStart(code2) {\n    effects.enter(\"tableRow\");\n    return bodyRowBreak(code2);\n  }\n  function bodyRowBreak(code2) {\n    if (code2 === 124) {\n      effects.enter(\"tableCellDivider\");\n      effects.consume(code2);\n      effects.exit(\"tableCellDivider\");\n      return bodyRowBreak;\n    }\n    if (code2 === null || markdownLineEnding(code2)) {\n      effects.exit(\"tableRow\");\n      return ok(code2);\n    }\n    if (markdownSpace(code2)) {\n      return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n    }\n    effects.enter(\"data\");\n    return bodyRowData(code2);\n  }\n  function bodyRowData(code2) {\n    if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n      effects.exit(\"data\");\n      return bodyRowBreak(code2);\n    }\n    effects.consume(code2);\n    return code2 === 92 ? bodyRowEscape : bodyRowData;\n  }\n  function bodyRowEscape(code2) {\n    if (code2 === 92 || code2 === 124) {\n      effects.consume(code2);\n      return bodyRowData;\n    }\n    return bodyRowData(code2);\n  }\n}\nfunction resolveTable(events, context) {\n  let index = -1;\n  let inFirstCellAwaitingPipe = true;\n  let rowKind = 0;\n  let lastCell = [0, 0, 0, 0];\n  let cell = [0, 0, 0, 0];\n  let afterHeadAwaitingFirstBodyRow = false;\n  let lastTableEnd = 0;\n  let currentTable;\n  let currentBody;\n  let currentCell;\n  const map = new EditMap();\n  while (++index < events.length) {\n    const event = events[index];\n    const token = event[1];\n    if (event[0] === \"enter\") {\n      if (token.type === \"tableHead\") {\n        afterHeadAwaitingFirstBodyRow = false;\n        if (lastTableEnd !== 0) {\n          flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n          currentBody = void 0;\n          lastTableEnd = 0;\n        }\n        currentTable = {\n          type: \"table\",\n          start: Object.assign({}, token.start),\n          end: Object.assign({}, token.end)\n        };\n        map.add(index, 0, [[\"enter\", currentTable, context]]);\n      } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n        inFirstCellAwaitingPipe = true;\n        currentCell = void 0;\n        lastCell = [0, 0, 0, 0];\n        cell = [0, index + 1, 0, 0];\n        if (afterHeadAwaitingFirstBodyRow) {\n          afterHeadAwaitingFirstBodyRow = false;\n          currentBody = {\n            type: \"tableBody\",\n            start: Object.assign({}, token.start),\n            end: Object.assign({}, token.end)\n          };\n          map.add(index, 0, [[\"enter\", currentBody, context]]);\n        }\n        rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n      } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n        inFirstCellAwaitingPipe = false;\n        if (cell[2] === 0) {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1];\n            currentCell = flushCell(\n              map,\n              context,\n              lastCell,\n              rowKind,\n              void 0,\n              currentCell\n            );\n            lastCell = [0, 0, 0, 0];\n          }\n          cell[2] = index;\n        }\n      } else if (token.type === \"tableCellDivider\") {\n        if (inFirstCellAwaitingPipe) {\n          inFirstCellAwaitingPipe = false;\n        } else {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1];\n            currentCell = flushCell(\n              map,\n              context,\n              lastCell,\n              rowKind,\n              void 0,\n              currentCell\n            );\n          }\n          lastCell = cell;\n          cell = [lastCell[1], index, 0, 0];\n        }\n      }\n    } else if (token.type === \"tableHead\") {\n      afterHeadAwaitingFirstBodyRow = true;\n      lastTableEnd = index;\n    } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n      lastTableEnd = index;\n      if (lastCell[1] !== 0) {\n        cell[0] = cell[1];\n        currentCell = flushCell(\n          map,\n          context,\n          lastCell,\n          rowKind,\n          index,\n          currentCell\n        );\n      } else if (cell[1] !== 0) {\n        currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n      }\n      rowKind = 0;\n    } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n      cell[3] = index;\n    }\n  }\n  if (lastTableEnd !== 0) {\n    flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n  }\n  map.consume(context.events);\n  index = -1;\n  while (++index < context.events.length) {\n    const event = context.events[index];\n    if (event[0] === \"enter\" && event[1].type === \"table\") {\n      event[1]._align = gfmTableAlign(context.events, index);\n    }\n  }\n  return events;\n}\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n  const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n  const valueName = \"tableContent\";\n  if (range[0] !== 0) {\n    previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n    map.add(range[0], 0, [[\"exit\", previousCell, context]]);\n  }\n  const now = getPoint(context.events, range[1]);\n  previousCell = {\n    type: groupName,\n    start: Object.assign({}, now),\n    end: Object.assign({}, now)\n  };\n  map.add(range[1], 0, [[\"enter\", previousCell, context]]);\n  if (range[2] !== 0) {\n    const relatedStart = getPoint(context.events, range[2]);\n    const relatedEnd = getPoint(context.events, range[3]);\n    const valueToken = {\n      type: valueName,\n      start: Object.assign({}, relatedStart),\n      end: Object.assign({}, relatedEnd)\n    };\n    map.add(range[2], 0, [[\"enter\", valueToken, context]]);\n    if (rowKind !== 2) {\n      const start = context.events[range[2]];\n      const end = context.events[range[3]];\n      start[1].end = Object.assign({}, end[1].end);\n      start[1].type = \"chunkText\";\n      start[1].contentType = \"text\";\n      if (range[3] > range[2] + 1) {\n        const a = range[2] + 1;\n        const b = range[3] - range[2] - 1;\n        map.add(a, b, []);\n      }\n    }\n    map.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n  }\n  if (rowEnd !== void 0) {\n    previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n    map.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n    previousCell = void 0;\n  }\n  return previousCell;\n}\nfunction flushTableEnd(map, context, index, table, tableBody) {\n  const exits = [];\n  const related = getPoint(context.events, index);\n  if (tableBody) {\n    tableBody.end = Object.assign({}, related);\n    exits.push([\"exit\", tableBody, context]);\n  }\n  table.end = Object.assign({}, related);\n  exits.push([\"exit\", table, context]);\n  map.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n  const event = events[index];\n  const side = event[0] === \"enter\" ? \"start\" : \"end\";\n  return event[1][side];\n}\nconst reFlow = /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi;\nconst reText = new RegExp(\"^\" + reFlow.source, \"i\");\nconst gfmTagfilterHtml = {\n  exit: {\n    htmlFlowData(token) {\n      exitHtmlData.call(this, token, reFlow);\n    },\n    htmlTextData(token) {\n      exitHtmlData.call(this, token, reText);\n    }\n  }\n};\nfunction exitHtmlData(token, filter) {\n  let value = this.sliceSerialize(token);\n  if (this.options.allowDangerousHtml) {\n    value = value.replace(filter, \"&lt;$1$2\");\n  }\n  this.raw(this.encode(value));\n}\nconst gfmTaskListItemHtml = {\n  enter: {\n    taskListCheck() {\n      this.tag('<input type=\"checkbox\" disabled=\"\" ');\n    }\n  },\n  exit: {\n    taskListCheck() {\n      this.tag(\"/>\");\n    },\n    taskListCheckValueChecked() {\n      this.tag('checked=\"\" ');\n    }\n  }\n};\nconst tasklistCheck = {\n  tokenize: tokenizeTasklistCheck\n};\nconst gfmTaskListItem = {\n  text: {\n    [91]: tasklistCheck\n  }\n};\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n  const self2 = this;\n  return open;\n  function open(code2) {\n    if (self2.previous !== null || !self2._gfmTasklistFirstContentOfListItem) {\n      return nok(code2);\n    }\n    effects.enter(\"taskListCheck\");\n    effects.enter(\"taskListCheckMarker\");\n    effects.consume(code2);\n    effects.exit(\"taskListCheckMarker\");\n    return inside;\n  }\n  function inside(code2) {\n    if (markdownLineEndingOrSpace(code2)) {\n      effects.enter(\"taskListCheckValueUnchecked\");\n      effects.consume(code2);\n      effects.exit(\"taskListCheckValueUnchecked\");\n      return close;\n    }\n    if (code2 === 88 || code2 === 120) {\n      effects.enter(\"taskListCheckValueChecked\");\n      effects.consume(code2);\n      effects.exit(\"taskListCheckValueChecked\");\n      return close;\n    }\n    return nok(code2);\n  }\n  function close(code2) {\n    if (code2 === 93) {\n      effects.enter(\"taskListCheckMarker\");\n      effects.consume(code2);\n      effects.exit(\"taskListCheckMarker\");\n      effects.exit(\"taskListCheck\");\n      return after;\n    }\n    return nok(code2);\n  }\n  function after(code2) {\n    if (markdownLineEnding(code2)) {\n      return ok(code2);\n    }\n    if (markdownSpace(code2)) {\n      return effects.check(\n        {\n          tokenize: spaceThenNonSpace\n        },\n        ok,\n        nok\n      )(code2);\n    }\n    return nok(code2);\n  }\n}\nfunction spaceThenNonSpace(effects, ok, nok) {\n  return factorySpace(effects, after, \"whitespace\");\n  function after(code2) {\n    return code2 === null ? nok(code2) : ok(code2);\n  }\n}\nfunction gfm(options) {\n  return combineExtensions([\n    gfmAutolinkLiteral,\n    gfmFootnote(),\n    gfmStrikethrough(options),\n    gfmTable,\n    gfmTaskListItem\n  ]);\n}\nfunction gfmHtml(options) {\n  return combineHtmlExtensions([\n    gfmAutolinkLiteralHtml,\n    gfmFootnoteHtml(options),\n    gfmStrikethroughHtml,\n    gfmTableHtml,\n    gfmTagfilterHtml,\n    gfmTaskListItemHtml\n  ]);\n}\nconst codes = {\n  carriageReturn: -5,\n  lineFeed: -4,\n  carriageReturnLineFeed: -3,\n  horizontalTab: -2,\n  virtualSpace: -1,\n  eof: null,\n  nul: 0,\n  soh: 1,\n  stx: 2,\n  etx: 3,\n  eot: 4,\n  enq: 5,\n  ack: 6,\n  bel: 7,\n  bs: 8,\n  ht: 9,\n  lf: 10,\n  vt: 11,\n  ff: 12,\n  cr: 13,\n  so: 14,\n  si: 15,\n  dle: 16,\n  dc1: 17,\n  dc2: 18,\n  dc3: 19,\n  dc4: 20,\n  nak: 21,\n  syn: 22,\n  etb: 23,\n  can: 24,\n  em: 25,\n  sub: 26,\n  esc: 27,\n  fs: 28,\n  gs: 29,\n  rs: 30,\n  us: 31,\n  space: 32,\n  exclamationMark: 33,\n  quotationMark: 34,\n  numberSign: 35,\n  dollarSign: 36,\n  percentSign: 37,\n  ampersand: 38,\n  apostrophe: 39,\n  leftParenthesis: 40,\n  rightParenthesis: 41,\n  asterisk: 42,\n  plusSign: 43,\n  comma: 44,\n  dash: 45,\n  dot: 46,\n  slash: 47,\n  digit0: 48,\n  digit1: 49,\n  digit2: 50,\n  digit3: 51,\n  digit4: 52,\n  digit5: 53,\n  digit6: 54,\n  digit7: 55,\n  digit8: 56,\n  digit9: 57,\n  colon: 58,\n  semicolon: 59,\n  lessThan: 60,\n  equalsTo: 61,\n  greaterThan: 62,\n  questionMark: 63,\n  atSign: 64,\n  uppercaseA: 65,\n  uppercaseB: 66,\n  uppercaseC: 67,\n  uppercaseD: 68,\n  uppercaseE: 69,\n  uppercaseF: 70,\n  uppercaseG: 71,\n  uppercaseH: 72,\n  uppercaseI: 73,\n  uppercaseJ: 74,\n  uppercaseK: 75,\n  uppercaseL: 76,\n  uppercaseM: 77,\n  uppercaseN: 78,\n  uppercaseO: 79,\n  uppercaseP: 80,\n  uppercaseQ: 81,\n  uppercaseR: 82,\n  uppercaseS: 83,\n  uppercaseT: 84,\n  uppercaseU: 85,\n  uppercaseV: 86,\n  uppercaseW: 87,\n  uppercaseX: 88,\n  uppercaseY: 89,\n  uppercaseZ: 90,\n  leftSquareBracket: 91,\n  backslash: 92,\n  rightSquareBracket: 93,\n  caret: 94,\n  underscore: 95,\n  graveAccent: 96,\n  lowercaseA: 97,\n  lowercaseB: 98,\n  lowercaseC: 99,\n  lowercaseD: 100,\n  lowercaseE: 101,\n  lowercaseF: 102,\n  lowercaseG: 103,\n  lowercaseH: 104,\n  lowercaseI: 105,\n  lowercaseJ: 106,\n  lowercaseK: 107,\n  lowercaseL: 108,\n  lowercaseM: 109,\n  lowercaseN: 110,\n  lowercaseO: 111,\n  lowercaseP: 112,\n  lowercaseQ: 113,\n  lowercaseR: 114,\n  lowercaseS: 115,\n  lowercaseT: 116,\n  lowercaseU: 117,\n  lowercaseV: 118,\n  lowercaseW: 119,\n  lowercaseX: 120,\n  lowercaseY: 121,\n  lowercaseZ: 122,\n  leftCurlyBrace: 123,\n  verticalBar: 124,\n  rightCurlyBrace: 125,\n  tilde: 126,\n  del: 127,\n  degree: 176,\n  byteOrderMarker: 65279,\n  replacementCharacter: 65533\n};\nconst underlineTokenize = (effects, ok, nok) => {\n  const inside = (code2) => {\n    if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n      return nok(code2);\n    }\n    if (code2 === codes.backslash) {\n      effects.consume(code2);\n      return insideEscape;\n    }\n    if (code2 === codes.degree) {\n      effects.exit(\"underlineContent\");\n      effects.enter(\"underlineMarker\");\n      effects.consume(code2);\n      effects.exit(\"underlineMarker\");\n      effects.exit(\"underline\");\n      return ok;\n    }\n    effects.consume(code2);\n    return inside;\n  };\n  const insideEscape = (code2) => {\n    if (code2 === codes.backslash || code2 === codes.degree) {\n      effects.consume(code2);\n      return inside;\n    }\n    return inside(code2);\n  };\n  const begin = (code2) => code2 === codes.degree ? nok(code2) : inside(code2);\n  return (code2) => {\n    effects.enter(\"underline\");\n    effects.enter(\"underlineMarker\");\n    effects.consume(code2);\n    effects.exit(\"underlineMarker\");\n    effects.enter(\"underlineContent\", { contentType: \"string\" });\n    return begin;\n  };\n};\nconst underlineConstruct = { name: \"underline\", tokenize: underlineTokenize };\nconst underline = { text: { 176: underlineConstruct } };\nconst underlineHtml = {\n  enter: {\n    underline() {\n      this.tag(\"<u>\");\n    }\n  },\n  exit: {\n    underline() {\n      this.tag(\"</u>\");\n    }\n  }\n};\nconst usertagTokenize = (effects, ok, nok) => {\n  const inside = (code2) => {\n    if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n      return nok(code2);\n    }\n    if (code2 === codes.backslash) {\n      effects.consume(code2);\n      return insideEscape;\n    }\n    if (code2 === codes.greaterThan) {\n      effects.exit(\"usertagContent\");\n      effects.enter(\"usertagMarker\");\n      effects.consume(code2);\n      effects.exit(\"usertagMarker\");\n      effects.exit(\"usertag\");\n      return ok;\n    }\n    effects.consume(code2);\n    return inside;\n  };\n  const insideEscape = (code2) => {\n    if (code2 === codes.backslash || code2 === codes.greaterThan) {\n      effects.consume(code2);\n      return inside;\n    }\n    return inside(code2);\n  };\n  const begin = (code2) => {\n    if (code2 === codes.atSign) {\n      effects.consume(code2);\n      effects.exit(\"usertagMarker\");\n      effects.enter(\"usertagContent\");\n      return inside;\n    }\n    return nok(code2);\n  };\n  return (code2) => {\n    effects.enter(\"usertag\");\n    effects.enter(\"usertagMarker\");\n    effects.consume(code2);\n    return begin;\n  };\n};\nconst usertagConstruct = { name: \"usertag\", tokenize: usertagTokenize };\nconst usertag = { text: { 60: usertagConstruct } };\nconst usertagHtml = (users) => ({\n  exit: {\n    usertagContent(token) {\n      const userId = this.sliceSerialize(token);\n      this.tag(`<span class=\"vac-text-tag\" data-user-id=\"${userId}\">`);\n      const user = users.find((user2) => user2._id === userId);\n      this.raw(`@${this.encode(user ? user.username : userId)}`);\n      this.tag(\"</span>\");\n    }\n  }\n});\nvar markdown = (text2, { textFormatting }) => {\n  if (textFormatting) {\n    let gfmDisabled = [];\n    if (!textFormatting.linkify) {\n      gfmDisabled = [\"literalAutolink\", \"literalAutolinkEmail\"];\n    }\n    const markdown2 = micromark(\n      text2.replaceAll(\"<usertag>\", \"<@\").replaceAll(\"</usertag>\", \">\"),\n      {\n        extensions: [\n          {\n            ...gfm(),\n            disable: { null: gfmDisabled }\n          },\n          underline,\n          usertag\n        ],\n        htmlExtensions: [\n          gfmHtml(),\n          underlineHtml,\n          usertagHtml(textFormatting.users)\n        ]\n      }\n    );\n    if (textFormatting.singleLine) {\n      const element2 = document.createElement(\"div\");\n      element2.innerHTML = markdown2;\n      return [\n        {\n          types: [],\n          value: element2.innerText\n        }\n      ];\n    }\n    return [\n      {\n        types: [\"markdown\"],\n        value: markdown2\n      }\n    ];\n  }\n  return [\n    {\n      types: [],\n      value: text2\n    }\n  ];\n};\nconst IMAGE_TYPES = [\"png\", \"jpg\", \"jpeg\", \"webp\", \"svg\", \"gif\"];\nconst VIDEO_TYPES = [\"mp4\", \"video/ogg\", \"webm\", \"quicktime\"];\nconst AUDIO_TYPES = [\"mp3\", \"audio/ogg\", \"wav\", \"mpeg\"];\nconst _sfc_main$n = {\n  name: \"FormatMessage\",\n  components: { SvgIcon },\n  props: {\n    messageId: { type: String, default: \"\" },\n    roomId: { type: String, default: \"\" },\n    roomList: { type: Boolean, default: false },\n    content: { type: [String, Number], required: true },\n    deleted: { type: Boolean, default: false },\n    users: { type: Array, default: () => [] },\n    linkify: { type: Boolean, default: true },\n    singleLine: { type: Boolean, default: false },\n    reply: { type: Boolean, default: false },\n    textFormatting: { type: Object, required: true },\n    textMessages: { type: Object, default: () => {\n    } },\n    linkOptions: { type: Object, required: true }\n  },\n  emits: [\"open-user-tag\"],\n  computed: {\n    parsedMessage() {\n      if (this.deleted) {\n        return [{ value: this.textMessages.MESSAGE_DELETED }];\n      }\n      let options;\n      if (!this.textFormatting.disabled) {\n        options = {\n          textFormatting: {\n            linkify: this.linkify,\n            linkOptions: this.linkOptions,\n            singleLine: this.singleLine,\n            reply: this.reply,\n            users: this.users,\n            ...this.textFormatting\n          }\n        };\n      } else {\n        options = {};\n      }\n      const message = markdown(this.content, options);\n      message.forEach((m) => {\n        m.markdown = this.checkType(m, \"markdown\");\n        m.tag = this.checkType(m, \"tag\");\n        m.image = this.checkImageType(m);\n      });\n      return message;\n    }\n  },\n  methods: {\n    checkType(message, type) {\n      return message.types && message.types.indexOf(type) !== -1;\n    },\n    checkImageType(message) {\n      let index = message.value.lastIndexOf(\".\");\n      const slashIndex = message.value.lastIndexOf(\"/\");\n      if (slashIndex > index)\n        index = -1;\n      const type = message.value.substring(index + 1, message.value.length);\n      const isMedia = index > 0 && IMAGE_TYPES.some((t) => type.toLowerCase().includes(t));\n      if (isMedia)\n        this.setImageSize(message);\n      return isMedia;\n    },\n    setImageSize(message) {\n      const image = new Image();\n      image.src = message.value;\n      image.addEventListener(\"load\", onLoad);\n      function onLoad(img) {\n        const ratio = img.path[0].width / 150;\n        message.height = Math.round(img.path[0].height / ratio) + \"px\";\n        image.removeEventListener(\"load\", onLoad);\n      }\n    },\n    openTag(event) {\n      const userId = event.target.getAttribute(\"data-user-id\");\n      if (!this.singleLine && userId) {\n        const user = this.users.find((u) => String(u._id) === userId);\n        this.$emit(\"open-user-tag\", user);\n      }\n    }\n  }\n};\nconst _hoisted_1$n = [\"innerHTML\"];\nconst _hoisted_2$k = { class: \"vac-image-link-container\" };\nconst _hoisted_3$h = { class: \"vac-image-link-message\" };\nfunction _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createElementBlock(\"div\", {\n    class: normalizeClass([\"vac-format-message-wrapper\", { \"vac-text-ellipsis\": $props.singleLine }])\n  }, [\n    (openBlock(true), createElementBlock(Fragment, null, renderList($options.parsedMessage, (message, i) => {\n      return openBlock(), createElementBlock(Fragment, { key: i }, [\n        message.markdown ? (openBlock(), createElementBlock(\"div\", {\n          key: 0,\n          class: \"markdown\",\n          onClick: _cache[0] || (_cache[0] = (...args) => $options.openTag && $options.openTag(...args)),\n          innerHTML: message.value\n        }, null, 8, _hoisted_1$n)) : (openBlock(), createElementBlock(\"div\", {\n          key: 1,\n          class: normalizeClass([\"vac-format-container\", { \"vac-text-ellipsis\": $props.singleLine }])\n        }, [\n          (openBlock(), createBlock(resolveDynamicComponent(message.url ? \"a\" : \"span\"), {\n            class: normalizeClass({\n              \"vac-text-ellipsis\": $props.singleLine,\n              \"vac-text-tag\": !$props.singleLine && !$props.reply && message.tag\n            }),\n            href: message.href,\n            target: message.href ? $props.linkOptions.target : null,\n            rel: message.href ? $props.linkOptions.rel : null\n          }, {\n            default: withCtx(() => [\n              $props.deleted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n                renderSlot(\n                  _ctx.$slots,\n                  $props.roomList ? \"deleted-icon-room_\" + $props.roomId : \"deleted-icon_\" + $props.messageId,\n                  {},\n                  () => [\n                    createVNode(_component_svg_icon, {\n                      name: \"deleted\",\n                      class: normalizeClass([\"vac-icon-deleted\", { \"vac-icon-deleted-room\": $props.roomList }])\n                    }, null, 8, [\"class\"])\n                  ]\n                ),\n                createTextVNode(\" \" + toDisplayString($props.textMessages.MESSAGE_DELETED), 1)\n              ], 64)) : message.url && message.image ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n                createBaseVNode(\"div\", _hoisted_2$k, [\n                  createBaseVNode(\"div\", {\n                    class: \"vac-image-link\",\n                    style: normalizeStyle({\n                      \"background-image\": `url('${message.value}')`,\n                      height: message.height\n                    })\n                  }, null, 4)\n                ]),\n                createBaseVNode(\"div\", _hoisted_3$h, toDisplayString(message.value), 1)\n              ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n                createTextVNode(toDisplayString(message.value), 1)\n              ], 64))\n            ]),\n            _: 2\n          }, 1032, [\"class\", \"href\", \"target\", \"rel\"]))\n        ], 2))\n      ], 64);\n    }), 128))\n  ], 2);\n}\nvar FormatMessage = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"render\", _sfc_render$n]]);\nconst HANDLERS_PROPERTY = \"__v-click-outside\";\nconst HAS_WINDOWS = typeof window !== \"undefined\";\nconst HAS_NAVIGATOR = typeof navigator !== \"undefined\";\nconst IS_TOUCH = HAS_WINDOWS && (\"ontouchstart\" in window || HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0);\nconst EVENTS = IS_TOUCH ? [\"touchstart\"] : [\"click\"];\nconst processDirectiveArguments = (bindingValue) => {\n  const isFunction2 = typeof bindingValue === \"function\";\n  if (!isFunction2 && typeof bindingValue !== \"object\") {\n    throw new Error(\n      \"v-click-outside: Binding value must be a function or an object\"\n    );\n  }\n  return {\n    handler: isFunction2 ? bindingValue : bindingValue.handler,\n    middleware: bindingValue.middleware || ((item) => item),\n    events: bindingValue.events || EVENTS,\n    isActive: !(bindingValue.isActive === false),\n    detectIframe: !(bindingValue.detectIframe === false),\n    capture: Boolean(bindingValue.capture)\n  };\n};\nconst execHandler = ({ event, handler, middleware }) => {\n  if (middleware(event)) {\n    handler(event);\n  }\n};\nconst onFauxIframeClick = ({ el, event, handler, middleware }) => {\n  setTimeout(() => {\n    const { activeElement } = document;\n    if (activeElement && activeElement.tagName === \"IFRAME\" && !el.contains(activeElement)) {\n      execHandler({ event, handler, middleware });\n    }\n  }, 0);\n};\nconst onEvent = ({ el, event, handler, middleware }) => {\n  const path2 = event.path || event.composedPath && event.composedPath();\n  const isClickOutside = path2 ? path2.indexOf(el) < 0 : !el.contains(event.target);\n  if (!isClickOutside) {\n    return;\n  }\n  execHandler({ event, handler, middleware });\n};\nconst beforeMount = (el, { value }) => {\n  const {\n    events,\n    handler,\n    middleware,\n    isActive,\n    detectIframe,\n    capture\n  } = processDirectiveArguments(value);\n  if (!isActive) {\n    return;\n  }\n  el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n    event: eventName,\n    srcTarget: document.documentElement,\n    handler: (event) => onEvent({ el, event, handler, middleware }),\n    capture\n  }));\n  if (detectIframe) {\n    const detectIframeEvent = {\n      event: \"blur\",\n      srcTarget: window,\n      handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n      capture\n    };\n    el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent];\n  }\n  el[HANDLERS_PROPERTY].forEach(\n    ({ event, srcTarget, handler: thisHandler }) => setTimeout(() => {\n      if (!el[HANDLERS_PROPERTY]) {\n        return;\n      }\n      srcTarget.addEventListener(event, thisHandler, capture);\n    }, 0)\n  );\n};\nconst unmounted = (el) => {\n  const handlers = el[HANDLERS_PROPERTY] || [];\n  handlers.forEach(\n    ({ event, srcTarget, handler, capture }) => srcTarget.removeEventListener(event, handler, capture)\n  );\n  delete el[HANDLERS_PROPERTY];\n};\nconst updated = (el, { value, oldValue }) => {\n  if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n    return;\n  }\n  unmounted(el);\n  beforeMount(el, { value });\n};\nconst directive = {\n  beforeMount,\n  updated,\n  unmounted\n};\nvar vClickOutside = HAS_WINDOWS ? directive : {};\nvar typingText = (room, currentUserId, textMessages) => {\n  if (room.typingUsers && room.typingUsers.length) {\n    const typingUsers = room.users.filter((user) => {\n      if (user._id === currentUserId)\n        return;\n      if (room.typingUsers.indexOf(user._id) === -1)\n        return;\n      if (user.status && user.status.state === \"offline\")\n        return;\n      return true;\n    });\n    if (!typingUsers.length)\n      return;\n    if (room.users.length === 2) {\n      return textMessages.IS_TYPING;\n    } else {\n      return typingUsers.map((user) => user.username).join(\", \") + \" \" + textMessages.IS_TYPING;\n    }\n  }\n};\nfunction checkMediaType(types, file) {\n  if (!file || !file.type)\n    return;\n  return types.some((t) => file.type.toLowerCase().includes(t));\n}\nfunction isImageFile(file) {\n  return checkMediaType(IMAGE_TYPES, file);\n}\nfunction isVideoFile(file) {\n  return checkMediaType(VIDEO_TYPES, file);\n}\nfunction isImageVideoFile(file) {\n  return checkMediaType(IMAGE_TYPES, file) || checkMediaType(VIDEO_TYPES, file);\n}\nfunction isAudioFile(file) {\n  return checkMediaType(AUDIO_TYPES, file);\n}\nconst _sfc_main$m = {\n  name: \"RoomsContent\",\n  components: {\n    SvgIcon,\n    FormatMessage\n  },\n  directives: {\n    clickOutside: vClickOutside\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    room: { type: Object, required: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    textMessages: { type: Object, required: true },\n    roomActions: { type: Array, required: true }\n  },\n  emits: [\"room-action-handler\"],\n  data() {\n    return {\n      roomMenuOpened: null\n    };\n  },\n  computed: {\n    getLastMessage() {\n      const isTyping = this.typingUsers;\n      if (isTyping)\n        return isTyping;\n      const content2 = this.room.lastMessage.content;\n      if (this.room.users.length <= 2) {\n        return content2;\n      }\n      const user = this.room.users.find(\n        (user2) => user2._id === this.room.lastMessage.senderId\n      );\n      if (this.room.lastMessage.username) {\n        return `${this.room.lastMessage.username} - ${content2}`;\n      } else if (!user || user._id === this.currentUserId) {\n        return content2;\n      }\n      return `${user.username} - ${content2}`;\n    },\n    userStatus() {\n      if (!this.room.users || this.room.users.length !== 2)\n        return;\n      const user = this.room.users.find((u) => u._id !== this.currentUserId);\n      if (user && user.status)\n        return user.status.state;\n      return null;\n    },\n    typingUsers() {\n      return typingText(this.room, this.currentUserId, this.textMessages);\n    },\n    isMessageCheckmarkVisible() {\n      return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);\n    },\n    formattedDuration() {\n      var _a, _b;\n      const file = (_b = (_a = this.room.lastMessage) == null ? void 0 : _a.files) == null ? void 0 : _b[0];\n      if (file) {\n        if (!file.duration) {\n          return `${file.name}.${file.extension}`;\n        }\n        let s = Math.floor(file.duration);\n        return (s - (s %= 60)) / 60 + (s > 9 ? \":\" : \":0\") + s;\n      }\n      return \"\";\n    },\n    isAudio() {\n      return this.room.lastMessage.files ? isAudioFile(this.room.lastMessage.files[0]) : false;\n    }\n  },\n  methods: {\n    roomActionHandler(action) {\n      this.closeRoomMenu();\n      this.$emit(\"room-action-handler\", { action, roomId: this.room.roomId });\n    },\n    closeRoomMenu() {\n      this.roomMenuOpened = null;\n    }\n  }\n};\nconst _hoisted_1$m = { class: \"vac-room-container\" };\nconst _hoisted_2$j = { class: \"vac-name-container vac-text-ellipsis\" };\nconst _hoisted_3$g = { class: \"vac-title-container\" };\nconst _hoisted_4$f = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_5$a = {\n  key: 1,\n  class: \"vac-text-date\"\n};\nconst _hoisted_6$6 = { key: 0 };\nconst _hoisted_7$6 = {\n  key: 1,\n  class: \"vac-text-ellipsis\"\n};\nconst _hoisted_8$4 = {\n  key: 3,\n  class: \"vac-text-ellipsis\"\n};\nconst _hoisted_9$4 = { class: \"vac-room-options-container\" };\nconst _hoisted_10$4 = {\n  key: 0,\n  class: \"vac-badge-counter vac-room-badge\"\n};\nconst _hoisted_11$3 = {\n  key: 0,\n  class: \"vac-menu-options\"\n};\nconst _hoisted_12$3 = { class: \"vac-menu-list\" };\nconst _hoisted_13$1 = [\"onClick\"];\nfunction _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_format_message = resolveComponent(\"format-message\");\n  const _directive_click_outside = resolveDirective(\"click-outside\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$m, [\n    renderSlot(_ctx.$slots, \"room-list-item_\" + $props.room.roomId, {}, () => [\n      renderSlot(_ctx.$slots, \"room-list-avatar_\" + $props.room.roomId, {}, () => [\n        $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n          key: 0,\n          class: \"vac-avatar\",\n          style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n        }, null, 4)) : createCommentVNode(\"\", true)\n      ]),\n      createBaseVNode(\"div\", _hoisted_2$j, [\n        createBaseVNode(\"div\", _hoisted_3$g, [\n          $options.userStatus ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: normalizeClass([\"vac-state-circle\", { \"vac-state-online\": $options.userStatus === \"online\" }])\n          }, null, 2)) : createCommentVNode(\"\", true),\n          renderSlot(_ctx.$slots, \"room-list-info_\" + $props.room.roomId, {}, () => [\n            createBaseVNode(\"div\", _hoisted_4$f, toDisplayString($props.room.roomName), 1)\n          ]),\n          $props.room.lastMessage ? (openBlock(), createElementBlock(\"div\", _hoisted_5$a, toDisplayString($props.room.lastMessage.timestamp), 1)) : createCommentVNode(\"\", true)\n        ]),\n        createBaseVNode(\"div\", {\n          class: normalizeClass([\"vac-text-last\", {\n            \"vac-message-new\": $props.room.lastMessage && $props.room.lastMessage.new && !$options.typingUsers\n          }])\n        }, [\n          $options.isMessageCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_6$6, [\n            renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.room.roomId, {}, () => [\n              createVNode(_component_svg_icon, {\n                name: $props.room.lastMessage.distributed ? \"double-checkmark\" : \"checkmark\",\n                param: $props.room.lastMessage.seen ? \"seen\" : \"\",\n                class: \"vac-icon-check\"\n              }, null, 8, [\"name\", \"param\"])\n            ])\n          ])) : createCommentVNode(\"\", true),\n          $props.room.lastMessage && !$props.room.lastMessage.deleted && $options.isAudio ? (openBlock(), createElementBlock(\"div\", _hoisted_7$6, [\n            renderSlot(_ctx.$slots, \"microphone-icon_\" + $props.room.roomId, {}, () => [\n              createVNode(_component_svg_icon, {\n                name: \"microphone\",\n                class: \"vac-icon-microphone\"\n              })\n            ]),\n            createTextVNode(\" \" + toDisplayString($options.formattedDuration), 1)\n          ])) : $props.room.lastMessage ? (openBlock(), createBlock(_component_format_message, {\n            key: 2,\n            \"message-id\": $props.room.lastMessage._id,\n            \"room-id\": $props.room.roomId,\n            \"room-list\": true,\n            content: $options.getLastMessage,\n            deleted: !!$props.room.lastMessage.deleted && !$options.typingUsers,\n            users: $props.room.users,\n            \"text-messages\": $props.textMessages,\n            linkify: false,\n            \"text-formatting\": $props.textFormatting,\n            \"link-options\": $props.linkOptions,\n            \"single-line\": true\n          }, createSlots({ _: 2 }, [\n            renderList(_ctx.$slots, (idx, name) => {\n              return {\n                name,\n                fn: withCtx((data) => [\n                  renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                ])\n              };\n            })\n          ]), 1032, [\"message-id\", \"room-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n          !$props.room.lastMessage && $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_8$4, toDisplayString($options.typingUsers), 1)) : createCommentVNode(\"\", true),\n          createBaseVNode(\"div\", _hoisted_9$4, [\n            $props.room.unreadCount ? (openBlock(), createElementBlock(\"div\", _hoisted_10$4, toDisplayString($props.room.unreadCount), 1)) : createCommentVNode(\"\", true),\n            renderSlot(_ctx.$slots, \"room-list-options_\" + $props.room.roomId, {}, () => [\n              $props.roomActions.length ? (openBlock(), createElementBlock(\"div\", {\n                key: 0,\n                class: \"vac-svg-button vac-list-room-options\",\n                onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $data.roomMenuOpened = $props.room.roomId, [\"stop\"]))\n              }, [\n                renderSlot(_ctx.$slots, \"room-list-options-icon_\" + $props.room.roomId, {}, () => [\n                  createVNode(_component_svg_icon, {\n                    name: \"dropdown\",\n                    param: \"room\"\n                  })\n                ])\n              ])) : createCommentVNode(\"\", true),\n              $props.roomActions.length ? (openBlock(), createBlock(Transition, {\n                key: 1,\n                name: \"vac-slide-left\"\n              }, {\n                default: withCtx(() => [\n                  $data.roomMenuOpened === $props.room.roomId ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$3, [\n                    createBaseVNode(\"div\", _hoisted_12$3, [\n                      (openBlock(true), createElementBlock(Fragment, null, renderList($props.roomActions, (action) => {\n                        return openBlock(), createElementBlock(\"div\", {\n                          key: action.name\n                        }, [\n                          createBaseVNode(\"div\", {\n                            class: \"vac-menu-item\",\n                            onClick: withModifiers(($event) => $options.roomActionHandler(action), [\"stop\"])\n                          }, toDisplayString(action.title), 9, _hoisted_13$1)\n                        ]);\n                      }), 128))\n                    ])\n                  ])), [\n                    [_directive_click_outside, $options.closeRoomMenu]\n                  ]) : createCommentVNode(\"\", true)\n                ]),\n                _: 1\n              })) : createCommentVNode(\"\", true)\n            ])\n          ])\n        ], 2)\n      ])\n    ])\n  ]);\n}\nvar RoomContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"render\", _sfc_render$m]]);\nvar filteredItems = (items, prop, val, startsWith = false) => {\n  if (!val || val === \"\")\n    return items;\n  return items.filter((v) => {\n    if (startsWith)\n      return formatString(v[prop]).startsWith(formatString(val));\n    return formatString(v[prop]).includes(formatString(val));\n  });\n};\nfunction formatString(string2) {\n  return string2.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nconst _sfc_main$l = {\n  name: \"RoomsList\",\n  components: {\n    Loader,\n    RoomsSearch,\n    RoomContent\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    textMessages: { type: Object, required: true },\n    showRoomsList: { type: Boolean, required: true },\n    showSearch: { type: Boolean, required: true },\n    showAddRoom: { type: Boolean, required: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    isMobile: { type: Boolean, required: true },\n    rooms: { type: Array, required: true },\n    loadingRooms: { type: Boolean, required: true },\n    roomsLoaded: { type: Boolean, required: true },\n    room: { type: Object, required: true },\n    customSearchRoomEnabled: { type: [Boolean, String], default: false },\n    roomActions: { type: Array, required: true },\n    scrollDistance: { type: Number, required: true }\n  },\n  emits: [\n    \"add-room\",\n    \"search-room\",\n    \"room-action-handler\",\n    \"loading-more-rooms\",\n    \"fetch-room\",\n    \"fetch-more-rooms\"\n  ],\n  data() {\n    return {\n      filteredRooms: this.rooms || [],\n      observer: null,\n      showLoader: true,\n      loadingMoreRooms: false,\n      selectedRoomId: \"\"\n    };\n  },\n  watch: {\n    rooms: {\n      deep: true,\n      handler(newVal, oldVal) {\n        this.filteredRooms = newVal;\n        if (newVal.length !== oldVal.length || this.roomsLoaded) {\n          this.loadingMoreRooms = false;\n        }\n      }\n    },\n    loadingRooms(val) {\n      if (!val) {\n        setTimeout(() => this.initIntersectionObserver());\n      }\n    },\n    loadingMoreRooms(val) {\n      this.$emit(\"loading-more-rooms\", val);\n    },\n    roomsLoaded: {\n      immediate: true,\n      handler(val) {\n        if (val) {\n          this.loadingMoreRooms = false;\n          if (!this.loadingRooms) {\n            this.showLoader = false;\n          }\n        }\n      }\n    },\n    room: {\n      immediate: true,\n      handler(val) {\n        if (val && !this.isMobile)\n          this.selectedRoomId = val.roomId;\n      }\n    }\n  },\n  methods: {\n    initIntersectionObserver() {\n      if (this.observer) {\n        this.showLoader = true;\n        this.observer.disconnect();\n      }\n      const loader = this.$el.querySelector(\"#infinite-loader-rooms\");\n      if (loader) {\n        const options = {\n          root: this.$el.querySelector(\"#rooms-list\"),\n          rootMargin: `${this.scrollDistance}px`,\n          threshold: 0\n        };\n        this.observer = new IntersectionObserver((entries) => {\n          if (entries[0].isIntersecting) {\n            this.loadMoreRooms();\n          }\n        }, options);\n        this.observer.observe(loader);\n      }\n    },\n    searchRoom(ev) {\n      if (this.customSearchRoomEnabled) {\n        this.$emit(\"search-room\", ev.target.value);\n      } else {\n        this.filteredRooms = filteredItems(\n          this.rooms,\n          \"roomName\",\n          ev.target.value\n        );\n      }\n    },\n    openRoom(room) {\n      if (room.roomId === this.room.roomId && !this.isMobile)\n        return;\n      if (!this.isMobile)\n        this.selectedRoomId = room.roomId;\n      this.$emit(\"fetch-room\", { room });\n    },\n    loadMoreRooms() {\n      if (this.loadingMoreRooms)\n        return;\n      if (this.roomsLoaded) {\n        this.loadingMoreRooms = false;\n        this.showLoader = false;\n        return;\n      }\n      this.$emit(\"fetch-more-rooms\");\n      this.loadingMoreRooms = true;\n    }\n  }\n};\nconst _hoisted_1$l = {\n  key: 0,\n  class: \"vac-rooms-empty\"\n};\nconst _hoisted_2$i = {\n  key: 1,\n  id: \"rooms-list\",\n  class: \"vac-room-list\"\n};\nconst _hoisted_3$f = [\"id\", \"onClick\"];\nconst _hoisted_4$e = {\n  key: 0,\n  id: \"infinite-loader-rooms\"\n};\nfunction _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_rooms_search = resolveComponent(\"rooms-search\");\n  const _component_loader = resolveComponent(\"loader\");\n  const _component_room_content = resolveComponent(\"room-content\");\n  return withDirectives((openBlock(), createElementBlock(\"div\", {\n    class: normalizeClass([\"vac-rooms-container\", {\n      \"vac-rooms-container-full\": $props.isMobile,\n      \"vac-app-border-r\": !$props.isMobile\n    }])\n  }, [\n    renderSlot(_ctx.$slots, \"rooms-header\"),\n    renderSlot(_ctx.$slots, \"rooms-list-search\", {}, () => [\n      createVNode(_component_rooms_search, {\n        rooms: $props.rooms,\n        \"loading-rooms\": $props.loadingRooms,\n        \"text-messages\": $props.textMessages,\n        \"show-search\": $props.showSearch,\n        \"show-add-room\": $props.showAddRoom,\n        onSearchRoom: $options.searchRoom,\n        onAddRoom: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"add-room\"))\n      }, createSlots({ _: 2 }, [\n        renderList(_ctx.$slots, (idx, name) => {\n          return {\n            name,\n            fn: withCtx((data) => [\n              renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n            ])\n          };\n        })\n      ]), 1032, [\"rooms\", \"loading-rooms\", \"text-messages\", \"show-search\", \"show-add-room\", \"onSearchRoom\"])\n    ]),\n    createVNode(_component_loader, {\n      show: $props.loadingRooms,\n      type: \"rooms\"\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (idx, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"show\"]),\n    !$props.loadingRooms && !$props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$l, [\n      renderSlot(_ctx.$slots, \"rooms-empty\", {}, () => [\n        createTextVNode(toDisplayString($props.textMessages.ROOMS_EMPTY), 1)\n      ])\n    ])) : createCommentVNode(\"\", true),\n    !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_2$i, [\n      (openBlock(true), createElementBlock(Fragment, null, renderList($data.filteredRooms, (fRoom) => {\n        return openBlock(), createElementBlock(\"div\", {\n          id: fRoom.roomId,\n          key: fRoom.roomId,\n          class: normalizeClass([\"vac-room-item\", { \"vac-room-selected\": $data.selectedRoomId === fRoom.roomId }]),\n          onClick: ($event) => $options.openRoom(fRoom)\n        }, [\n          createVNode(_component_room_content, {\n            \"current-user-id\": $props.currentUserId,\n            room: fRoom,\n            \"text-formatting\": $props.textFormatting,\n            \"link-options\": $props.linkOptions,\n            \"text-messages\": $props.textMessages,\n            \"room-actions\": $props.roomActions,\n            onRoomActionHandler: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-action-handler\", $event))\n          }, createSlots({ _: 2 }, [\n            renderList(_ctx.$slots, (idx, name) => {\n              return {\n                name,\n                fn: withCtx((data) => [\n                  renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                ])\n              };\n            })\n          ]), 1032, [\"current-user-id\", \"room\", \"text-formatting\", \"link-options\", \"text-messages\", \"room-actions\"])\n        ], 10, _hoisted_3$f);\n      }), 128)),\n      createVNode(Transition, { name: \"vac-fade-message\" }, {\n        default: withCtx(() => [\n          $props.rooms.length && !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_4$e, [\n            createVNode(_component_loader, {\n              show: $data.showLoader,\n              infinite: true,\n              type: \"infinite-rooms\"\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (idx, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1032, [\"show\"])\n          ])) : createCommentVNode(\"\", true)\n        ]),\n        _: 3\n      })\n    ])) : createCommentVNode(\"\", true)\n  ], 2)), [\n    [vShow, $props.showRoomsList]\n  ]);\n}\nvar RoomsList = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"render\", _sfc_render$l]]);\nconst _sfc_main$k = {\n  name: \"RoomHeader\",\n  components: {\n    SvgIcon\n  },\n  directives: {\n    clickOutside: vClickOutside\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    textMessages: { type: Object, required: true },\n    singleRoom: { type: Boolean, required: true },\n    showRoomsList: { type: Boolean, required: true },\n    isMobile: { type: Boolean, required: true },\n    roomInfoEnabled: { type: Boolean, required: true },\n    menuActions: { type: Array, required: true },\n    room: { type: Object, required: true },\n    messageSelectionEnabled: { type: Boolean, required: true },\n    messageSelectionActions: { type: Array, required: true },\n    selectedMessagesTotal: { type: Number, required: true }\n  },\n  emits: [\n    \"toggle-rooms-list\",\n    \"room-info\",\n    \"menu-action-handler\",\n    \"cancel-message-selection\",\n    \"message-selection-action-handler\"\n  ],\n  data() {\n    return {\n      menuOpened: false,\n      messageSelectionAnimationEnded: true\n    };\n  },\n  computed: {\n    typingUsers() {\n      return typingText(this.room, this.currentUserId, this.textMessages);\n    },\n    userStatus() {\n      if (!this.room.users || this.room.users.length !== 2)\n        return;\n      const user = this.room.users.find((u) => u._id !== this.currentUserId);\n      if (!(user == null ? void 0 : user.status))\n        return;\n      let text2 = \"\";\n      if (user.status.state === \"online\") {\n        text2 = this.textMessages.IS_ONLINE;\n      } else if (user.status.lastChanged) {\n        text2 = this.textMessages.LAST_SEEN + user.status.lastChanged;\n      }\n      return text2;\n    }\n  },\n  watch: {\n    messageSelectionEnabled(val) {\n      if (val) {\n        this.messageSelectionAnimationEnded = false;\n      } else {\n        setTimeout(() => {\n          this.messageSelectionAnimationEnded = true;\n        }, 300);\n      }\n    }\n  },\n  methods: {\n    menuActionHandler(action) {\n      this.closeMenu();\n      this.$emit(\"menu-action-handler\", action);\n    },\n    closeMenu() {\n      this.menuOpened = false;\n    },\n    messageSelectionActionHandler(action) {\n      this.$emit(\"message-selection-action-handler\", action);\n    }\n  }\n};\nconst _hoisted_1$k = { class: \"vac-room-header vac-app-border-b\" };\nconst _hoisted_2$h = { class: \"vac-room-wrapper\" };\nconst _hoisted_3$e = {\n  key: 0,\n  class: \"vac-room-selection\"\n};\nconst _hoisted_4$d = [\"id\"];\nconst _hoisted_5$9 = [\"onClick\"];\nconst _hoisted_6$5 = { class: \"vac-selection-button-count\" };\nconst _hoisted_7$5 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_8$3 = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_9$3 = {\n  key: 0,\n  class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_10$3 = {\n  key: 1,\n  class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_11$2 = {\n  key: 0,\n  class: \"vac-menu-options\"\n};\nconst _hoisted_12$2 = { class: \"vac-menu-list\" };\nconst _hoisted_13 = [\"onClick\"];\nfunction _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _directive_click_outside = resolveDirective(\"click-outside\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$k, [\n    renderSlot(_ctx.$slots, \"room-header\", {}, () => [\n      createBaseVNode(\"div\", _hoisted_2$h, [\n        createVNode(Transition, { name: \"vac-slide-up\" }, {\n          default: withCtx(() => [\n            $props.messageSelectionEnabled ? (openBlock(), createElementBlock(\"div\", _hoisted_3$e, [\n              (openBlock(true), createElementBlock(Fragment, null, renderList($props.messageSelectionActions, (action) => {\n                return openBlock(), createElementBlock(\"div\", {\n                  id: action.name,\n                  key: action.name\n                }, [\n                  createBaseVNode(\"div\", {\n                    class: \"vac-selection-button\",\n                    onClick: ($event) => $options.messageSelectionActionHandler(action)\n                  }, [\n                    createTextVNode(toDisplayString(action.title) + \" \", 1),\n                    createBaseVNode(\"span\", _hoisted_6$5, toDisplayString($props.selectedMessagesTotal), 1)\n                  ], 8, _hoisted_5$9)\n                ], 8, _hoisted_4$d);\n              }), 128)),\n              createBaseVNode(\"div\", {\n                class: \"vac-selection-cancel vac-item-clickable\",\n                onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"cancel-message-selection\"))\n              }, toDisplayString($props.textMessages.CANCEL_SELECT_MESSAGE), 1)\n            ])) : createCommentVNode(\"\", true)\n          ]),\n          _: 1\n        }),\n        !$props.messageSelectionEnabled && $data.messageSelectionAnimationEnded ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n          !$props.singleRoom ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: normalizeClass([\"vac-svg-button vac-toggle-button\", {\n              \"vac-rotate-icon-init\": !$props.isMobile,\n              \"vac-rotate-icon\": !$props.showRoomsList && !$props.isMobile\n            }]),\n            onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"toggle-rooms-list\"))\n          }, [\n            renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"toggle\" })\n            ])\n          ], 2)) : createCommentVNode(\"\", true),\n          createBaseVNode(\"div\", {\n            class: normalizeClass([\"vac-info-wrapper\", { \"vac-item-clickable\": $props.roomInfoEnabled }]),\n            onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"room-info\"))\n          }, [\n            renderSlot(_ctx.$slots, \"room-header-avatar\", {}, () => [\n              $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n                key: 0,\n                class: \"vac-avatar\",\n                style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n              }, null, 4)) : createCommentVNode(\"\", true)\n            ]),\n            renderSlot(_ctx.$slots, \"room-header-info\", {}, () => [\n              createBaseVNode(\"div\", _hoisted_7$5, [\n                createBaseVNode(\"div\", _hoisted_8$3, toDisplayString($props.room.roomName), 1),\n                $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_9$3, toDisplayString($options.typingUsers), 1)) : (openBlock(), createElementBlock(\"div\", _hoisted_10$3, toDisplayString($options.userStatus), 1))\n              ])\n            ])\n          ], 2),\n          $props.room.roomId ? renderSlot(_ctx.$slots, \"room-options\", { key: 1 }, () => [\n            $props.menuActions.length ? (openBlock(), createElementBlock(\"div\", {\n              key: 0,\n              class: \"vac-svg-button vac-room-options\",\n              onClick: _cache[3] || (_cache[3] = ($event) => $data.menuOpened = !$data.menuOpened)\n            }, [\n              renderSlot(_ctx.$slots, \"menu-icon\", {}, () => [\n                createVNode(_component_svg_icon, { name: \"menu\" })\n              ])\n            ])) : createCommentVNode(\"\", true),\n            $props.menuActions.length ? (openBlock(), createBlock(Transition, {\n              key: 1,\n              name: \"vac-slide-left\"\n            }, {\n              default: withCtx(() => [\n                $data.menuOpened ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$2, [\n                  createBaseVNode(\"div\", _hoisted_12$2, [\n                    (openBlock(true), createElementBlock(Fragment, null, renderList($props.menuActions, (action) => {\n                      return openBlock(), createElementBlock(\"div\", {\n                        key: action.name\n                      }, [\n                        createBaseVNode(\"div\", {\n                          class: \"vac-menu-item\",\n                          onClick: ($event) => $options.menuActionHandler(action)\n                        }, toDisplayString(action.title), 9, _hoisted_13)\n                      ]);\n                    }), 128))\n                  ])\n                ])), [\n                  [_directive_click_outside, $options.closeMenu]\n                ]) : createCommentVNode(\"\", true)\n              ]),\n              _: 1\n            })) : createCommentVNode(\"\", true)\n          ]) : createCommentVNode(\"\", true)\n        ], 64)) : createCommentVNode(\"\", true)\n      ])\n    ])\n  ]);\n}\nvar RoomHeader = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$k]]);\nfunction assertNonEmptyString(str) {\n  if (typeof str !== \"string\" || !str) {\n    throw new Error(\"expected a non-empty string, got: \" + str);\n  }\n}\nfunction assertNumber(number) {\n  if (typeof number !== \"number\") {\n    throw new Error(\"expected a number, got: \" + number);\n  }\n}\nconst DB_VERSION_CURRENT = 1;\nconst DB_VERSION_INITIAL = 1;\nconst STORE_EMOJI = \"emoji\";\nconst STORE_KEYVALUE = \"keyvalue\";\nconst STORE_FAVORITES = \"favorites\";\nconst FIELD_TOKENS = \"tokens\";\nconst INDEX_TOKENS = \"tokens\";\nconst FIELD_UNICODE = \"unicode\";\nconst INDEX_COUNT = \"count\";\nconst FIELD_GROUP = \"group\";\nconst FIELD_ORDER = \"order\";\nconst INDEX_GROUP_AND_ORDER = \"group-order\";\nconst KEY_ETAG = \"eTag\";\nconst KEY_URL = \"url\";\nconst KEY_PREFERRED_SKINTONE = \"skinTone\";\nconst MODE_READONLY = \"readonly\";\nconst MODE_READWRITE = \"readwrite\";\nconst INDEX_SKIN_UNICODE = \"skinUnicodes\";\nconst FIELD_SKIN_UNICODE = \"skinUnicodes\";\nconst DEFAULT_DATA_SOURCE$1 = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE$1 = \"en\";\nfunction uniqBy$1(arr, func) {\n  const set2 = /* @__PURE__ */ new Set();\n  const res = [];\n  for (const item of arr) {\n    const key = func(item);\n    if (!set2.has(key)) {\n      set2.add(key);\n      res.push(item);\n    }\n  }\n  return res;\n}\nfunction uniqEmoji(emojis) {\n  return uniqBy$1(emojis, (_) => _.unicode);\n}\nfunction initialMigration(db) {\n  function createObjectStore(name, keyPath, indexes) {\n    const store = keyPath ? db.createObjectStore(name, { keyPath }) : db.createObjectStore(name);\n    if (indexes) {\n      for (const [indexName, [keyPath2, multiEntry]] of Object.entries(indexes)) {\n        store.createIndex(indexName, keyPath2, { multiEntry });\n      }\n    }\n    return store;\n  }\n  createObjectStore(STORE_KEYVALUE);\n  createObjectStore(STORE_EMOJI, FIELD_UNICODE, {\n    [INDEX_TOKENS]: [FIELD_TOKENS, true],\n    [INDEX_GROUP_AND_ORDER]: [[FIELD_GROUP, FIELD_ORDER]],\n    [INDEX_SKIN_UNICODE]: [FIELD_SKIN_UNICODE, true]\n  });\n  createObjectStore(STORE_FAVORITES, void 0, {\n    [INDEX_COUNT]: [\"\"]\n  });\n}\nconst openReqs = {};\nconst databaseCache = {};\nconst onCloseListeners = {};\nfunction handleOpenOrDeleteReq(resolve2, reject, req) {\n  req.onerror = () => reject(req.error);\n  req.onblocked = () => reject(new Error(\"IDB blocked\"));\n  req.onsuccess = () => resolve2(req.result);\n}\nasync function createDatabase(dbName) {\n  const db = await new Promise((resolve2, reject) => {\n    const req = indexedDB.open(dbName, DB_VERSION_CURRENT);\n    openReqs[dbName] = req;\n    req.onupgradeneeded = (e) => {\n      if (e.oldVersion < DB_VERSION_INITIAL) {\n        initialMigration(req.result);\n      }\n    };\n    handleOpenOrDeleteReq(resolve2, reject, req);\n  });\n  db.onclose = () => closeDatabase(dbName);\n  return db;\n}\nfunction openDatabase(dbName) {\n  if (!databaseCache[dbName]) {\n    databaseCache[dbName] = createDatabase(dbName);\n  }\n  return databaseCache[dbName];\n}\nfunction dbPromise(db, storeName, readOnlyOrReadWrite, cb) {\n  return new Promise((resolve2, reject) => {\n    const txn = db.transaction(storeName, readOnlyOrReadWrite, { durability: \"relaxed\" });\n    const store = typeof storeName === \"string\" ? txn.objectStore(storeName) : storeName.map((name) => txn.objectStore(name));\n    let res;\n    cb(store, txn, (result) => {\n      res = result;\n    });\n    txn.oncomplete = () => resolve2(res);\n    txn.onerror = () => reject(txn.error);\n  });\n}\nfunction closeDatabase(dbName) {\n  const req = openReqs[dbName];\n  const db = req && req.result;\n  if (db) {\n    db.close();\n    const listeners = onCloseListeners[dbName];\n    if (listeners) {\n      for (const listener of listeners) {\n        listener();\n      }\n    }\n  }\n  delete openReqs[dbName];\n  delete databaseCache[dbName];\n  delete onCloseListeners[dbName];\n}\nfunction deleteDatabase(dbName) {\n  return new Promise((resolve2, reject) => {\n    closeDatabase(dbName);\n    const req = indexedDB.deleteDatabase(dbName);\n    handleOpenOrDeleteReq(resolve2, reject, req);\n  });\n}\nfunction addOnCloseListener(dbName, listener) {\n  let listeners = onCloseListeners[dbName];\n  if (!listeners) {\n    listeners = onCloseListeners[dbName] = [];\n  }\n  listeners.push(listener);\n}\nconst irregularEmoticons = /* @__PURE__ */ new Set([\n  \":D\",\n  \"XD\",\n  \":'D\",\n  \"O:)\",\n  \":X\",\n  \":P\",\n  \";P\",\n  \"XP\",\n  \":L\",\n  \":Z\",\n  \":j\",\n  \"8D\",\n  \"XO\",\n  \"8)\",\n  \":B\",\n  \":O\",\n  \":S\",\n  \":'o\",\n  \"Dx\",\n  \"X(\",\n  \"D:\",\n  \":C\",\n  \">0)\",\n  \":3\",\n  \"</3\",\n  \"<3\",\n  \"\\\\M/\",\n  \":E\",\n  \"8#\"\n]);\nfunction extractTokens(str) {\n  return str.split(/[\\s_]+/).map((word) => {\n    if (!word.match(/\\w/) || irregularEmoticons.has(word)) {\n      return word.toLowerCase();\n    }\n    return word.replace(/[)(:,]/g, \"\").replace(/’/g, \"'\").toLowerCase();\n  }).filter(Boolean);\n}\nconst MIN_SEARCH_TEXT_LENGTH$1 = 2;\nfunction normalizeTokens(str) {\n  return str.filter(Boolean).map((_) => _.toLowerCase()).filter((_) => _.length >= MIN_SEARCH_TEXT_LENGTH$1);\n}\nfunction transformEmojiData(emojiData) {\n  const res = emojiData.map(({ annotation, emoticon, group, order, shortcodes, skins, tags, emoji, version: version2 }) => {\n    const tokens = [...new Set(\n      normalizeTokens([\n        ...(shortcodes || []).map(extractTokens).flat(),\n        ...tags.map(extractTokens).flat(),\n        ...extractTokens(annotation),\n        emoticon\n      ])\n    )].sort();\n    const res2 = {\n      annotation,\n      group,\n      order,\n      tags,\n      tokens,\n      unicode: emoji,\n      version: version2\n    };\n    if (emoticon) {\n      res2.emoticon = emoticon;\n    }\n    if (shortcodes) {\n      res2.shortcodes = shortcodes;\n    }\n    if (skins) {\n      res2.skinTones = [];\n      res2.skinUnicodes = [];\n      res2.skinVersions = [];\n      for (const { tone, emoji: emoji2, version: version3 } of skins) {\n        res2.skinTones.push(tone);\n        res2.skinUnicodes.push(emoji2);\n        res2.skinVersions.push(version3);\n      }\n    }\n    return res2;\n  });\n  return res;\n}\nfunction callStore(store, method, key, cb) {\n  store[method](key).onsuccess = (e) => cb && cb(e.target.result);\n}\nfunction getIDB(store, key, cb) {\n  callStore(store, \"get\", key, cb);\n}\nfunction getAllIDB(store, key, cb) {\n  callStore(store, \"getAll\", key, cb);\n}\nfunction commit(txn) {\n  if (txn.commit) {\n    txn.commit();\n  }\n}\nfunction minBy(array, func) {\n  let minItem = array[0];\n  for (let i = 1; i < array.length; i++) {\n    const item = array[i];\n    if (func(minItem) > func(item)) {\n      minItem = item;\n    }\n  }\n  return minItem;\n}\nfunction findCommonMembers(arrays, uniqByFunc) {\n  const shortestArray = minBy(arrays, (_) => _.length);\n  const results = [];\n  for (const item of shortestArray) {\n    if (!arrays.some((array) => array.findIndex((_) => uniqByFunc(_) === uniqByFunc(item)) === -1)) {\n      results.push(item);\n    }\n  }\n  return results;\n}\nasync function isEmpty(db) {\n  return !await get(db, STORE_KEYVALUE, KEY_URL);\n}\nasync function hasData(db, url, eTag) {\n  const [oldETag, oldUrl] = await Promise.all([KEY_ETAG, KEY_URL].map((key) => get(db, STORE_KEYVALUE, key)));\n  return oldETag === eTag && oldUrl === url;\n}\nasync function doFullDatabaseScanForSingleResult(db, predicate) {\n  const BATCH_SIZE = 50;\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    let lastKey;\n    const processNextBatch = () => {\n      emojiStore.getAll(lastKey && IDBKeyRange.lowerBound(lastKey, true), BATCH_SIZE).onsuccess = (e) => {\n        const results = e.target.result;\n        for (const result of results) {\n          lastKey = result.unicode;\n          if (predicate(result)) {\n            return cb(result);\n          }\n        }\n        if (results.length < BATCH_SIZE) {\n          return cb();\n        }\n        processNextBatch();\n      };\n    };\n    processNextBatch();\n  });\n}\nasync function loadData(db, emojiData, url, eTag) {\n  try {\n    const transformedData = transformEmojiData(emojiData);\n    await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore], txn) => {\n      let oldETag;\n      let oldUrl;\n      let todo = 0;\n      function checkFetched() {\n        if (++todo === 2) {\n          onFetched();\n        }\n      }\n      function onFetched() {\n        if (oldETag === eTag && oldUrl === url) {\n          return;\n        }\n        emojiStore.clear();\n        for (const data of transformedData) {\n          emojiStore.put(data);\n        }\n        metaStore.put(eTag, KEY_ETAG);\n        metaStore.put(url, KEY_URL);\n        commit(txn);\n      }\n      getIDB(metaStore, KEY_ETAG, (result) => {\n        oldETag = result;\n        checkFetched();\n      });\n      getIDB(metaStore, KEY_URL, (result) => {\n        oldUrl = result;\n        checkFetched();\n      });\n    });\n  } finally {\n  }\n}\nasync function getEmojiByGroup(db, group) {\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    const range = IDBKeyRange.bound([group, 0], [group + 1, 0], false, true);\n    getAllIDB(emojiStore.index(INDEX_GROUP_AND_ORDER), range, cb);\n  });\n}\nasync function getEmojiBySearchQuery(db, query) {\n  const tokens = normalizeTokens(extractTokens(query));\n  if (!tokens.length) {\n    return [];\n  }\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n    const intermediateResults = [];\n    const checkDone = () => {\n      if (intermediateResults.length === tokens.length) {\n        onDone();\n      }\n    };\n    const onDone = () => {\n      const results = findCommonMembers(intermediateResults, (_) => _.unicode);\n      cb(results.sort((a, b) => a.order < b.order ? -1 : 1));\n    };\n    for (let i = 0; i < tokens.length; i++) {\n      const token = tokens[i];\n      const range = i === tokens.length - 1 ? IDBKeyRange.bound(token, token + \"\\uFFFF\", false, true) : IDBKeyRange.only(token);\n      getAllIDB(emojiStore.index(INDEX_TOKENS), range, (result) => {\n        intermediateResults.push(result);\n        checkDone();\n      });\n    }\n  });\n}\nasync function getEmojiByShortcode(db, shortcode) {\n  const emojis = await getEmojiBySearchQuery(db, shortcode);\n  if (!emojis.length) {\n    const predicate = (_) => (_.shortcodes || []).includes(shortcode.toLowerCase());\n    return await doFullDatabaseScanForSingleResult(db, predicate) || null;\n  }\n  return emojis.filter((_) => {\n    const lowerShortcodes = (_.shortcodes || []).map((_2) => _2.toLowerCase());\n    return lowerShortcodes.includes(shortcode.toLowerCase());\n  })[0] || null;\n}\nasync function getEmojiByUnicode(db, unicode) {\n  return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => getIDB(emojiStore, unicode, (result) => {\n    if (result) {\n      return cb(result);\n    }\n    getIDB(emojiStore.index(INDEX_SKIN_UNICODE), unicode, (result2) => cb(result2 || null));\n  }));\n}\nfunction get(db, storeName, key) {\n  return dbPromise(db, storeName, MODE_READONLY, (store, txn, cb) => getIDB(store, key, cb));\n}\nfunction set(db, storeName, key, value) {\n  return dbPromise(db, storeName, MODE_READWRITE, (store, txn) => {\n    store.put(value, key);\n    commit(txn);\n  });\n}\nfunction incrementFavoriteEmojiCount(db, unicode) {\n  return dbPromise(db, STORE_FAVORITES, MODE_READWRITE, (store, txn) => getIDB(store, unicode, (result) => {\n    store.put((result || 0) + 1, unicode);\n    commit(txn);\n  }));\n}\nfunction getTopFavoriteEmoji(db, customEmojiIndex2, limit) {\n  if (limit === 0) {\n    return [];\n  }\n  return dbPromise(db, [STORE_FAVORITES, STORE_EMOJI], MODE_READONLY, ([favoritesStore, emojiStore], txn, cb) => {\n    const results = [];\n    favoritesStore.index(INDEX_COUNT).openCursor(void 0, \"prev\").onsuccess = (e) => {\n      const cursor = e.target.result;\n      if (!cursor) {\n        return cb(results);\n      }\n      function addResult(result) {\n        results.push(result);\n        if (results.length === limit) {\n          return cb(results);\n        }\n        cursor.continue();\n      }\n      const unicodeOrName = cursor.primaryKey;\n      const custom = customEmojiIndex2.byName(unicodeOrName);\n      if (custom) {\n        return addResult(custom);\n      }\n      getIDB(emojiStore, unicodeOrName, (emoji) => {\n        if (emoji) {\n          return addResult(emoji);\n        }\n        cursor.continue();\n      });\n    };\n  });\n}\nconst CODA_MARKER = \"\";\nfunction trie(arr, itemToTokens) {\n  const map = /* @__PURE__ */ new Map();\n  for (const item of arr) {\n    const tokens = itemToTokens(item);\n    for (const token of tokens) {\n      let currentMap = map;\n      for (let i = 0; i < token.length; i++) {\n        const char = token.charAt(i);\n        let nextMap = currentMap.get(char);\n        if (!nextMap) {\n          nextMap = /* @__PURE__ */ new Map();\n          currentMap.set(char, nextMap);\n        }\n        currentMap = nextMap;\n      }\n      let valuesAtCoda = currentMap.get(CODA_MARKER);\n      if (!valuesAtCoda) {\n        valuesAtCoda = [];\n        currentMap.set(CODA_MARKER, valuesAtCoda);\n      }\n      valuesAtCoda.push(item);\n    }\n  }\n  const search2 = (query, exact) => {\n    let currentMap = map;\n    for (let i = 0; i < query.length; i++) {\n      const char = query.charAt(i);\n      const nextMap = currentMap.get(char);\n      if (nextMap) {\n        currentMap = nextMap;\n      } else {\n        return [];\n      }\n    }\n    if (exact) {\n      const results2 = currentMap.get(CODA_MARKER);\n      return results2 || [];\n    }\n    const results = [];\n    const queue2 = [currentMap];\n    while (queue2.length) {\n      const currentMap2 = queue2.shift();\n      const entriesSortedByKey = [...currentMap2.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1);\n      for (const [key, value] of entriesSortedByKey) {\n        if (key === CODA_MARKER) {\n          results.push(...value);\n        } else {\n          queue2.push(value);\n        }\n      }\n    }\n    return results;\n  };\n  return search2;\n}\nconst requiredKeys$1 = [\n  \"name\",\n  \"url\"\n];\nfunction assertCustomEmojis(customEmojis) {\n  const isArray2 = customEmojis && Array.isArray(customEmojis);\n  const firstItemIsFaulty = isArray2 && customEmojis.length && (!customEmojis[0] || requiredKeys$1.some((key) => !(key in customEmojis[0])));\n  if (!isArray2 || firstItemIsFaulty) {\n    throw new Error(\"Custom emojis are in the wrong format\");\n  }\n}\nfunction customEmojiIndex(customEmojis) {\n  assertCustomEmojis(customEmojis);\n  const sortByName = (a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n  const all = customEmojis.sort(sortByName);\n  const emojiToTokens = (emoji) => [...new Set((emoji.shortcodes || []).map((shortcode) => extractTokens(shortcode)).flat())];\n  const searchTrie = trie(customEmojis, emojiToTokens);\n  const searchByExactMatch = (_) => searchTrie(_, true);\n  const searchByPrefix = (_) => searchTrie(_, false);\n  const search2 = (query) => {\n    const tokens = extractTokens(query);\n    const intermediateResults = tokens.map((token, i) => (i < tokens.length - 1 ? searchByExactMatch : searchByPrefix)(token));\n    return findCommonMembers(intermediateResults, (_) => _.name).sort(sortByName);\n  };\n  const shortcodeToEmoji = /* @__PURE__ */ new Map();\n  const nameToEmoji = /* @__PURE__ */ new Map();\n  for (const customEmoji of customEmojis) {\n    nameToEmoji.set(customEmoji.name.toLowerCase(), customEmoji);\n    for (const shortcode of customEmoji.shortcodes || []) {\n      shortcodeToEmoji.set(shortcode.toLowerCase(), customEmoji);\n    }\n  }\n  const byShortcode = (shortcode) => shortcodeToEmoji.get(shortcode.toLowerCase());\n  const byName = (name) => nameToEmoji.get(name.toLowerCase());\n  return {\n    all,\n    search: search2,\n    byShortcode,\n    byName\n  };\n}\nfunction cleanEmoji(emoji) {\n  if (!emoji) {\n    return emoji;\n  }\n  delete emoji.tokens;\n  if (emoji.skinTones) {\n    const len = emoji.skinTones.length;\n    emoji.skins = Array(len);\n    for (let i = 0; i < len; i++) {\n      emoji.skins[i] = {\n        tone: emoji.skinTones[i],\n        unicode: emoji.skinUnicodes[i],\n        version: emoji.skinVersions[i]\n      };\n    }\n    delete emoji.skinTones;\n    delete emoji.skinUnicodes;\n    delete emoji.skinVersions;\n  }\n  return emoji;\n}\nfunction warnETag(eTag) {\n  if (!eTag) {\n    console.warn(\"emoji-picker-element is more efficient if the dataSource server exposes an ETag header.\");\n  }\n}\nconst requiredKeys = [\n  \"annotation\",\n  \"emoji\",\n  \"group\",\n  \"order\",\n  \"tags\",\n  \"version\"\n];\nfunction assertEmojiData(emojiData) {\n  if (!emojiData || !Array.isArray(emojiData) || !emojiData[0] || typeof emojiData[0] !== \"object\" || requiredKeys.some((key) => !(key in emojiData[0]))) {\n    throw new Error(\"Emoji data is in the wrong format\");\n  }\n}\nfunction assertStatus(response, dataSource) {\n  if (Math.floor(response.status / 100) !== 2) {\n    throw new Error(\"Failed to fetch: \" + dataSource + \":  \" + response.status);\n  }\n}\nasync function getETag(dataSource) {\n  const response = await fetch(dataSource, { method: \"HEAD\" });\n  assertStatus(response, dataSource);\n  const eTag = response.headers.get(\"etag\");\n  warnETag(eTag);\n  return eTag;\n}\nasync function getETagAndData(dataSource) {\n  const response = await fetch(dataSource);\n  assertStatus(response, dataSource);\n  const eTag = response.headers.get(\"etag\");\n  warnETag(eTag);\n  const emojiData = await response.json();\n  assertEmojiData(emojiData);\n  return [eTag, emojiData];\n}\nfunction arrayBufferToBinaryString(buffer) {\n  var binary = \"\";\n  var bytes = new Uint8Array(buffer);\n  var length = bytes.byteLength;\n  var i = -1;\n  while (++i < length) {\n    binary += String.fromCharCode(bytes[i]);\n  }\n  return binary;\n}\nfunction binaryStringToArrayBuffer(binary) {\n  var length = binary.length;\n  var buf = new ArrayBuffer(length);\n  var arr = new Uint8Array(buf);\n  var i = -1;\n  while (++i < length) {\n    arr[i] = binary.charCodeAt(i);\n  }\n  return buf;\n}\nasync function jsonChecksum(object) {\n  const inString = JSON.stringify(object);\n  const inBuffer = binaryStringToArrayBuffer(inString);\n  const outBuffer = await crypto.subtle.digest(\"SHA-1\", inBuffer);\n  const outBinString = arrayBufferToBinaryString(outBuffer);\n  const res = btoa(outBinString);\n  return res;\n}\nasync function checkForUpdates(db, dataSource) {\n  let emojiData;\n  let eTag = await getETag(dataSource);\n  if (!eTag) {\n    const eTagAndData = await getETagAndData(dataSource);\n    eTag = eTagAndData[0];\n    emojiData = eTagAndData[1];\n    if (!eTag) {\n      eTag = await jsonChecksum(emojiData);\n    }\n  }\n  if (await hasData(db, dataSource, eTag))\n    ;\n  else {\n    if (!emojiData) {\n      const eTagAndData = await getETagAndData(dataSource);\n      emojiData = eTagAndData[1];\n    }\n    await loadData(db, emojiData, dataSource, eTag);\n  }\n}\nasync function loadDataForFirstTime(db, dataSource) {\n  let [eTag, emojiData] = await getETagAndData(dataSource);\n  if (!eTag) {\n    eTag = await jsonChecksum(emojiData);\n  }\n  await loadData(db, emojiData, dataSource, eTag);\n}\nclass Database {\n  constructor({ dataSource = DEFAULT_DATA_SOURCE$1, locale = DEFAULT_LOCALE$1, customEmoji = [] } = {}) {\n    this.dataSource = dataSource;\n    this.locale = locale;\n    this._dbName = `emoji-picker-element-${this.locale}`;\n    this._db = void 0;\n    this._lazyUpdate = void 0;\n    this._custom = customEmojiIndex(customEmoji);\n    this._clear = this._clear.bind(this);\n    this._ready = this._init();\n  }\n  async _init() {\n    const db = this._db = await openDatabase(this._dbName);\n    addOnCloseListener(this._dbName, this._clear);\n    const dataSource = this.dataSource;\n    const empty = await isEmpty(db);\n    if (empty) {\n      await loadDataForFirstTime(db, dataSource);\n    } else {\n      this._lazyUpdate = checkForUpdates(db, dataSource);\n    }\n  }\n  async ready() {\n    const checkReady = async () => {\n      if (!this._ready) {\n        this._ready = this._init();\n      }\n      return this._ready;\n    };\n    await checkReady();\n    if (!this._db) {\n      await checkReady();\n    }\n  }\n  async getEmojiByGroup(group) {\n    assertNumber(group);\n    await this.ready();\n    return uniqEmoji(await getEmojiByGroup(this._db, group)).map(cleanEmoji);\n  }\n  async getEmojiBySearchQuery(query) {\n    assertNonEmptyString(query);\n    await this.ready();\n    const customs = this._custom.search(query);\n    const natives = uniqEmoji(await getEmojiBySearchQuery(this._db, query)).map(cleanEmoji);\n    return [\n      ...customs,\n      ...natives\n    ];\n  }\n  async getEmojiByShortcode(shortcode) {\n    assertNonEmptyString(shortcode);\n    await this.ready();\n    const custom = this._custom.byShortcode(shortcode);\n    if (custom) {\n      return custom;\n    }\n    return cleanEmoji(await getEmojiByShortcode(this._db, shortcode));\n  }\n  async getEmojiByUnicodeOrName(unicodeOrName) {\n    assertNonEmptyString(unicodeOrName);\n    await this.ready();\n    const custom = this._custom.byName(unicodeOrName);\n    if (custom) {\n      return custom;\n    }\n    return cleanEmoji(await getEmojiByUnicode(this._db, unicodeOrName));\n  }\n  async getPreferredSkinTone() {\n    await this.ready();\n    return await get(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE) || 0;\n  }\n  async setPreferredSkinTone(skinTone) {\n    assertNumber(skinTone);\n    await this.ready();\n    return set(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE, skinTone);\n  }\n  async incrementFavoriteEmojiCount(unicodeOrName) {\n    assertNonEmptyString(unicodeOrName);\n    await this.ready();\n    return incrementFavoriteEmojiCount(this._db, unicodeOrName);\n  }\n  async getTopFavoriteEmoji(limit) {\n    assertNumber(limit);\n    await this.ready();\n    return (await getTopFavoriteEmoji(this._db, this._custom, limit)).map(cleanEmoji);\n  }\n  set customEmoji(customEmojis) {\n    this._custom = customEmojiIndex(customEmojis);\n  }\n  get customEmoji() {\n    return this._custom.all;\n  }\n  async _shutdown() {\n    await this.ready();\n    try {\n      await this._lazyUpdate;\n    } catch (err) {\n    }\n  }\n  _clear() {\n    this._db = this._ready = this._lazyUpdate = void 0;\n  }\n  async close() {\n    await this._shutdown();\n    await closeDatabase(this._dbName);\n  }\n  async delete() {\n    await this._shutdown();\n    await deleteDatabase(this._dbName);\n  }\n}\nfunction noop() {\n}\nfunction run(fn) {\n  return fn();\n}\nfunction blank_object() {\n  return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n  fns.forEach(run);\n}\nfunction is_function(thing) {\n  return typeof thing === \"function\";\n}\nfunction safe_not_equal(a, b) {\n  return a != a ? b == b : a !== b || (a && typeof a === \"object\" || typeof a === \"function\");\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n  if (!src_url_equal_anchor) {\n    src_url_equal_anchor = document.createElement(\"a\");\n  }\n  src_url_equal_anchor.href = url;\n  return element_src === src_url_equal_anchor.href;\n}\nfunction is_empty(obj) {\n  return Object.keys(obj).length === 0;\n}\nfunction action_destroyer(action_result) {\n  return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction append(target, node) {\n  target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n  target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n  node.parentNode.removeChild(node);\n}\nfunction element(name) {\n  return document.createElement(name);\n}\nfunction text(data) {\n  return document.createTextNode(data);\n}\nfunction listen(node, event, handler, options) {\n  node.addEventListener(event, handler, options);\n  return () => node.removeEventListener(event, handler, options);\n}\nfunction attr(node, attribute, value) {\n  if (value == null)\n    node.removeAttribute(attribute);\n  else if (node.getAttribute(attribute) !== value)\n    node.setAttribute(attribute, value);\n}\nfunction set_data(text2, data) {\n  data = \"\" + data;\n  if (text2.wholeText !== data)\n    text2.data = data;\n}\nfunction set_input_value(input, value) {\n  input.value = value == null ? \"\" : value;\n}\nfunction set_style(node, key, value, important) {\n  if (value === null) {\n    node.style.removeProperty(key);\n  } else {\n    node.style.setProperty(key, value, important ? \"important\" : \"\");\n  }\n}\nlet current_component;\nfunction set_current_component(component) {\n  current_component = component;\n}\nconst dirty_components = [];\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n  if (!update_scheduled) {\n    update_scheduled = true;\n    resolved_promise.then(flush);\n  }\n}\nfunction tick() {\n  schedule_update();\n  return resolved_promise;\n}\nfunction add_render_callback(fn) {\n  render_callbacks.push(fn);\n}\nconst seen_callbacks = /* @__PURE__ */ new Set();\nlet flushidx = 0;\nfunction flush() {\n  const saved_component = current_component;\n  do {\n    while (flushidx < dirty_components.length) {\n      const component = dirty_components[flushidx];\n      flushidx++;\n      set_current_component(component);\n      update(component.$$);\n    }\n    set_current_component(null);\n    dirty_components.length = 0;\n    flushidx = 0;\n    while (binding_callbacks.length)\n      binding_callbacks.pop()();\n    for (let i = 0; i < render_callbacks.length; i += 1) {\n      const callback = render_callbacks[i];\n      if (!seen_callbacks.has(callback)) {\n        seen_callbacks.add(callback);\n        callback();\n      }\n    }\n    render_callbacks.length = 0;\n  } while (dirty_components.length);\n  while (flush_callbacks.length) {\n    flush_callbacks.pop()();\n  }\n  update_scheduled = false;\n  seen_callbacks.clear();\n  set_current_component(saved_component);\n}\nfunction update($$) {\n  if ($$.fragment !== null) {\n    $$.update();\n    run_all($$.before_update);\n    const dirty = $$.dirty;\n    $$.dirty = [-1];\n    $$.fragment && $$.fragment.p($$.ctx, dirty);\n    $$.after_update.forEach(add_render_callback);\n  }\n}\nconst outroing = /* @__PURE__ */ new Set();\nfunction transition_in(block, local) {\n  if (block && block.i) {\n    outroing.delete(block);\n    block.i(local);\n  }\n}\nconst globals = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : global;\nfunction destroy_block(block, lookup) {\n  block.d(1);\n  lookup.delete(block.key);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list2, lookup, node, destroy, create_each_block2, next, get_context) {\n  let o = old_blocks.length;\n  let n = list2.length;\n  let i = o;\n  const old_indexes = {};\n  while (i--)\n    old_indexes[old_blocks[i].key] = i;\n  const new_blocks = [];\n  const new_lookup = /* @__PURE__ */ new Map();\n  const deltas = /* @__PURE__ */ new Map();\n  i = n;\n  while (i--) {\n    const child_ctx = get_context(ctx, list2, i);\n    const key = get_key(child_ctx);\n    let block = lookup.get(key);\n    if (!block) {\n      block = create_each_block2(key, child_ctx);\n      block.c();\n    } else if (dynamic) {\n      block.p(child_ctx, dirty);\n    }\n    new_lookup.set(key, new_blocks[i] = block);\n    if (key in old_indexes)\n      deltas.set(key, Math.abs(i - old_indexes[key]));\n  }\n  const will_move = /* @__PURE__ */ new Set();\n  const did_move = /* @__PURE__ */ new Set();\n  function insert2(block) {\n    transition_in(block, 1);\n    block.m(node, next);\n    lookup.set(block.key, block);\n    next = block.first;\n    n--;\n  }\n  while (o && n) {\n    const new_block = new_blocks[n - 1];\n    const old_block = old_blocks[o - 1];\n    const new_key = new_block.key;\n    const old_key = old_block.key;\n    if (new_block === old_block) {\n      next = new_block.first;\n      o--;\n      n--;\n    } else if (!new_lookup.has(old_key)) {\n      destroy(old_block, lookup);\n      o--;\n    } else if (!lookup.has(new_key) || will_move.has(new_key)) {\n      insert2(new_block);\n    } else if (did_move.has(old_key)) {\n      o--;\n    } else if (deltas.get(new_key) > deltas.get(old_key)) {\n      did_move.add(new_key);\n      insert2(new_block);\n    } else {\n      will_move.add(old_key);\n      o--;\n    }\n  }\n  while (o--) {\n    const old_block = old_blocks[o];\n    if (!new_lookup.has(old_block.key))\n      destroy(old_block, lookup);\n  }\n  while (n)\n    insert2(new_blocks[n - 1]);\n  return new_blocks;\n}\nfunction mount_component(component, target, anchor, customElement) {\n  const { fragment, on_mount, on_destroy, after_update } = component.$$;\n  fragment && fragment.m(target, anchor);\n  if (!customElement) {\n    add_render_callback(() => {\n      const new_on_destroy = on_mount.map(run).filter(is_function);\n      if (on_destroy) {\n        on_destroy.push(...new_on_destroy);\n      } else {\n        run_all(new_on_destroy);\n      }\n      component.$$.on_mount = [];\n    });\n  }\n  after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n  const $$ = component.$$;\n  if ($$.fragment !== null) {\n    run_all($$.on_destroy);\n    $$.fragment && $$.fragment.d(detaching);\n    $$.on_destroy = $$.fragment = null;\n    $$.ctx = [];\n  }\n}\nfunction make_dirty(component, i) {\n  if (component.$$.dirty[0] === -1) {\n    dirty_components.push(component);\n    schedule_update();\n    component.$$.dirty.fill(0);\n  }\n  component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\nfunction init(component, options, instance2, create_fragment2, not_equal, props, append_styles, dirty = [-1]) {\n  const parent_component = current_component;\n  set_current_component(component);\n  const $$ = component.$$ = {\n    fragment: null,\n    ctx: null,\n    props,\n    update: noop,\n    not_equal,\n    bound: blank_object(),\n    on_mount: [],\n    on_destroy: [],\n    on_disconnect: [],\n    before_update: [],\n    after_update: [],\n    context: new Map(parent_component ? parent_component.$$.context : []),\n    callbacks: blank_object(),\n    dirty,\n    skip_bound: false,\n    root: options.target || parent_component.$$.root\n  };\n  append_styles && append_styles($$.root);\n  let ready = false;\n  $$.ctx = instance2 ? instance2(component, options.props || {}, (i, ret, ...rest) => {\n    const value = rest.length ? rest[0] : ret;\n    if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n      if (!$$.skip_bound && $$.bound[i])\n        $$.bound[i](value);\n      if (ready)\n        make_dirty(component, i);\n    }\n    return ret;\n  }) : [];\n  $$.update();\n  ready = true;\n  run_all($$.before_update);\n  $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;\n  if (options.target) {\n    {\n      $$.fragment && $$.fragment.c();\n    }\n    mount_component(component, options.target, void 0, void 0);\n    flush();\n  }\n  set_current_component(parent_component);\n}\nclass SvelteComponent {\n  $destroy() {\n    destroy_component(this, 1);\n    this.$destroy = noop;\n  }\n  $on(type, callback) {\n    const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n    callbacks.push(callback);\n    return () => {\n      const index = callbacks.indexOf(callback);\n      if (index !== -1)\n        callbacks.splice(index, 1);\n    };\n  }\n  $set($$props) {\n    if (this.$$set && !is_empty($$props)) {\n      this.$$.skip_bound = true;\n      this.$$set($$props);\n      this.$$.skip_bound = false;\n    }\n  }\n}\nconst allGroups = [\n  [-1, \"\\u2728\", \"custom\"],\n  [0, \"\\u{1F600}\", \"smileys-emotion\"],\n  [1, \"\\u{1F44B}\", \"people-body\"],\n  [3, \"\\u{1F431}\", \"animals-nature\"],\n  [4, \"\\u{1F34E}\", \"food-drink\"],\n  [5, \"\\u{1F3E0}\\uFE0F\", \"travel-places\"],\n  [6, \"\\u26BD\", \"activities\"],\n  [7, \"\\u{1F4DD}\", \"objects\"],\n  [8, \"\\u26D4\\uFE0F\", \"symbols\"],\n  [9, \"\\u{1F3C1}\", \"flags\"]\n].map(([id, emoji, name]) => ({ id, emoji, name }));\nconst groups = allGroups.slice(1);\nconst customGroup = allGroups[0];\nconst MIN_SEARCH_TEXT_LENGTH = 2;\nconst NUM_SKIN_TONES = 6;\nconst rIC = typeof requestIdleCallback === \"function\" ? requestIdleCallback : setTimeout;\nfunction hasZwj(emoji) {\n  return emoji.unicode.includes(\"\\u200D\");\n}\nconst versionsAndTestEmoji = {\n  \"\\u{1FAE0}\": 14,\n  \"\\u{1F972}\": 13.1,\n  \"\\u{1F97B}\": 12.1,\n  \"\\u{1F970}\": 11,\n  \"\\u{1F929}\": 5,\n  \"\\u{1F471}\\u200D\\u2640\\uFE0F\": 4,\n  \"\\u{1F923}\": 3,\n  \"\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F\": 2,\n  \"\\u{1F600}\": 1,\n  \"\\u{1F610}\\uFE0F\": 0.7,\n  \"\\u{1F603}\": 0.6\n};\nconst TIMEOUT_BEFORE_LOADING_MESSAGE = 1e3;\nconst DEFAULT_SKIN_TONE_EMOJI = \"\\u{1F590}\\uFE0F\";\nconst DEFAULT_NUM_COLUMNS = 8;\nconst MOST_COMMONLY_USED_EMOJI = [\n  \"\\u{1F60A}\",\n  \"\\u{1F612}\",\n  \"\\u2665\\uFE0F\",\n  \"\\u{1F44D}\\uFE0F\",\n  \"\\u{1F60D}\",\n  \"\\u{1F602}\",\n  \"\\u{1F62D}\",\n  \"\\u263A\\uFE0F\",\n  \"\\u{1F614}\",\n  \"\\u{1F629}\",\n  \"\\u{1F60F}\",\n  \"\\u{1F495}\",\n  \"\\u{1F64C}\",\n  \"\\u{1F618}\"\n];\nconst FONT_FAMILY = '\"Twemoji Mozilla\",\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\",\"EmojiOne Color\",\"Android Emoji\",sans-serif';\nconst DEFAULT_CATEGORY_SORTING = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst getTextFeature = (text2, color) => {\n  const canvas = document.createElement(\"canvas\");\n  canvas.width = canvas.height = 1;\n  const ctx = canvas.getContext(\"2d\");\n  ctx.textBaseline = \"top\";\n  ctx.font = `100px ${FONT_FAMILY}`;\n  ctx.fillStyle = color;\n  ctx.scale(0.01, 0.01);\n  ctx.fillText(text2, 0, 0);\n  return ctx.getImageData(0, 0, 1, 1).data;\n};\nconst compareFeatures = (feature1, feature2) => {\n  const feature1Str = [...feature1].join(\",\");\n  const feature2Str = [...feature2].join(\",\");\n  return feature1Str === feature2Str && !feature1Str.startsWith(\"0,0,0,\");\n};\nfunction testColorEmojiSupported(text2) {\n  const feature1 = getTextFeature(text2, \"#000\");\n  const feature2 = getTextFeature(text2, \"#fff\");\n  return feature1 && feature2 && compareFeatures(feature1, feature2);\n}\nfunction determineEmojiSupportLevel() {\n  const entries = Object.entries(versionsAndTestEmoji);\n  try {\n    for (const [emoji, version2] of entries) {\n      if (testColorEmojiSupported(emoji)) {\n        return version2;\n      }\n    }\n  } catch (e) {\n  } finally {\n  }\n  return entries[0][1];\n}\nconst emojiSupportLevelPromise = new Promise((resolve2) => rIC(() => resolve2(determineEmojiSupportLevel())));\nconst supportedZwjEmojis = /* @__PURE__ */ new Map();\nconst VARIATION_SELECTOR = \"\\uFE0F\";\nconst SKINTONE_MODIFIER = \"\\uD83C\";\nconst ZWJ = \"\\u200D\";\nconst LIGHT_SKIN_TONE = 127995;\nconst LIGHT_SKIN_TONE_MODIFIER = 57339;\nfunction applySkinTone(str, skinTone) {\n  if (skinTone === 0) {\n    return str;\n  }\n  const zwjIndex = str.indexOf(ZWJ);\n  if (zwjIndex !== -1) {\n    return str.substring(0, zwjIndex) + String.fromCodePoint(LIGHT_SKIN_TONE + skinTone - 1) + str.substring(zwjIndex);\n  }\n  if (str.endsWith(VARIATION_SELECTOR)) {\n    str = str.substring(0, str.length - 1);\n  }\n  return str + SKINTONE_MODIFIER + String.fromCodePoint(LIGHT_SKIN_TONE_MODIFIER + skinTone - 1);\n}\nfunction halt(event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\nfunction incrementOrDecrement(decrement, val, arr) {\n  val += decrement ? -1 : 1;\n  if (val < 0) {\n    val = arr.length - 1;\n  } else if (val >= arr.length) {\n    val = 0;\n  }\n  return val;\n}\nfunction uniqBy(arr, func) {\n  const set2 = /* @__PURE__ */ new Set();\n  const res = [];\n  for (const item of arr) {\n    const key = func(item);\n    if (!set2.has(key)) {\n      set2.add(key);\n      res.push(item);\n    }\n  }\n  return res;\n}\nfunction summarizeEmojisForUI(emojis, emojiSupportLevel) {\n  const toSimpleSkinsMap = (skins) => {\n    const res = {};\n    for (const skin of skins) {\n      if (typeof skin.tone === \"number\" && skin.version <= emojiSupportLevel) {\n        res[skin.tone] = skin.unicode;\n      }\n    }\n    return res;\n  };\n  return emojis.map(({ unicode, skins, shortcodes, url, name, category }) => ({\n    unicode,\n    name,\n    shortcodes,\n    url,\n    category,\n    id: unicode || name,\n    skins: skins && toSimpleSkinsMap(skins),\n    title: (shortcodes || []).join(\", \")\n  }));\n}\nconst rAF = requestAnimationFrame;\nlet resizeObserverSupported = typeof ResizeObserver === \"function\";\nfunction calculateWidth(node, onUpdate) {\n  let resizeObserver;\n  if (resizeObserverSupported) {\n    resizeObserver = new ResizeObserver((entries) => onUpdate(entries[0].contentRect.width));\n    resizeObserver.observe(node);\n  } else {\n    rAF(() => onUpdate(node.getBoundingClientRect().width));\n  }\n  return {\n    destroy() {\n      if (resizeObserver) {\n        resizeObserver.disconnect();\n      }\n    }\n  };\n}\nfunction calculateTextWidth(node) {\n  {\n    const range = document.createRange();\n    range.selectNode(node.firstChild);\n    return range.getBoundingClientRect().width;\n  }\n}\nlet baselineEmojiWidth;\nfunction checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode) {\n  for (const emoji of zwjEmojisToCheck) {\n    const domNode = emojiToDomNode(emoji);\n    const emojiWidth = calculateTextWidth(domNode);\n    if (typeof baselineEmojiWidth === \"undefined\") {\n      baselineEmojiWidth = calculateTextWidth(baselineEmoji);\n    }\n    const supported = emojiWidth / 1.8 < baselineEmojiWidth;\n    supportedZwjEmojis.set(emoji.unicode, supported);\n  }\n}\nfunction uniq(arr) {\n  return uniqBy(arr, (_) => _);\n}\nconst { Map: Map_1 } = globals;\nfunction get_each_context(ctx, list2, i) {\n  const child_ctx = ctx.slice();\n  child_ctx[63] = list2[i];\n  child_ctx[65] = i;\n  return child_ctx;\n}\nfunction get_each_context_1(ctx, list2, i) {\n  const child_ctx = ctx.slice();\n  child_ctx[66] = list2[i];\n  child_ctx[65] = i;\n  return child_ctx;\n}\nfunction get_each_context_2(ctx, list2, i) {\n  const child_ctx = ctx.slice();\n  child_ctx[63] = list2[i];\n  child_ctx[65] = i;\n  return child_ctx;\n}\nfunction get_each_context_3(ctx, list2, i) {\n  const child_ctx = ctx.slice();\n  child_ctx[69] = list2[i];\n  return child_ctx;\n}\nfunction get_each_context_4(ctx, list2, i) {\n  const child_ctx = ctx.slice();\n  child_ctx[72] = list2[i];\n  child_ctx[65] = i;\n  return child_ctx;\n}\nfunction create_each_block_4(key_1, ctx) {\n  let div;\n  let t_value = ctx[72] + \"\";\n  let t;\n  let div_id_value;\n  let div_class_value;\n  let div_aria_selected_value;\n  let div_title_value;\n  let div_aria_label_value;\n  return {\n    key: key_1,\n    first: null,\n    c() {\n      div = element(\"div\");\n      t = text(t_value);\n      attr(div, \"id\", div_id_value = \"skintone-\" + ctx[65]);\n      attr(div, \"class\", div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"));\n      attr(div, \"aria-selected\", div_aria_selected_value = ctx[65] === ctx[20]);\n      attr(div, \"role\", \"option\");\n      attr(div, \"title\", div_title_value = ctx[0].skinTones[ctx[65]]);\n      attr(div, \"tabindex\", \"-1\");\n      attr(div, \"aria-label\", div_aria_label_value = ctx[0].skinTones[ctx[65]]);\n      this.first = div;\n    },\n    m(target, anchor) {\n      insert(target, div, anchor);\n      append(div, t);\n    },\n    p(new_ctx, dirty) {\n      ctx = new_ctx;\n      if (dirty[0] & 512 && t_value !== (t_value = ctx[72] + \"\"))\n        set_data(t, t_value);\n      if (dirty[0] & 512 && div_id_value !== (div_id_value = \"skintone-\" + ctx[65])) {\n        attr(div, \"id\", div_id_value);\n      }\n      if (dirty[0] & 1049088 && div_class_value !== (div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"))) {\n        attr(div, \"class\", div_class_value);\n      }\n      if (dirty[0] & 1049088 && div_aria_selected_value !== (div_aria_selected_value = ctx[65] === ctx[20])) {\n        attr(div, \"aria-selected\", div_aria_selected_value);\n      }\n      if (dirty[0] & 513 && div_title_value !== (div_title_value = ctx[0].skinTones[ctx[65]])) {\n        attr(div, \"title\", div_title_value);\n      }\n      if (dirty[0] & 513 && div_aria_label_value !== (div_aria_label_value = ctx[0].skinTones[ctx[65]])) {\n        attr(div, \"aria-label\", div_aria_label_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(div);\n    }\n  };\n}\nfunction create_each_block_3(key_1, ctx) {\n  let button;\n  let div;\n  let t_value = ctx[69].emoji + \"\";\n  let t;\n  let button_aria_controls_value;\n  let button_aria_label_value;\n  let button_aria_selected_value;\n  let button_title_value;\n  let mounted;\n  let dispose;\n  function click_handler() {\n    return ctx[49](ctx[69]);\n  }\n  return {\n    key: key_1,\n    first: null,\n    c() {\n      button = element(\"button\");\n      div = element(\"div\");\n      t = text(t_value);\n      attr(div, \"class\", \"nav-emoji emoji\");\n      attr(button, \"role\", \"tab\");\n      attr(button, \"class\", \"nav-button\");\n      attr(button, \"aria-controls\", button_aria_controls_value = \"tab-\" + ctx[69].id);\n      attr(button, \"aria-label\", button_aria_label_value = ctx[0].categories[ctx[69].name]);\n      attr(button, \"aria-selected\", button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id);\n      attr(button, \"title\", button_title_value = ctx[0].categories[ctx[69].name]);\n      this.first = button;\n    },\n    m(target, anchor) {\n      insert(target, button, anchor);\n      append(button, div);\n      append(div, t);\n      if (!mounted) {\n        dispose = listen(button, \"click\", click_handler);\n        mounted = true;\n      }\n    },\n    p(new_ctx, dirty) {\n      ctx = new_ctx;\n      if (dirty[0] & 4096 && t_value !== (t_value = ctx[69].emoji + \"\"))\n        set_data(t, t_value);\n      if (dirty[0] & 4096 && button_aria_controls_value !== (button_aria_controls_value = \"tab-\" + ctx[69].id)) {\n        attr(button, \"aria-controls\", button_aria_controls_value);\n      }\n      if (dirty[0] & 4097 && button_aria_label_value !== (button_aria_label_value = ctx[0].categories[ctx[69].name])) {\n        attr(button, \"aria-label\", button_aria_label_value);\n      }\n      if (dirty[0] & 12304 && button_aria_selected_value !== (button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id)) {\n        attr(button, \"aria-selected\", button_aria_selected_value);\n      }\n      if (dirty[0] & 4097 && button_title_value !== (button_title_value = ctx[0].categories[ctx[69].name])) {\n        attr(button, \"title\", button_title_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(button);\n      mounted = false;\n      dispose();\n    }\n  };\n}\nfunction create_else_block_1(ctx) {\n  let img;\n  let img_src_value;\n  return {\n    c() {\n      img = element(\"img\");\n      attr(img, \"class\", \"custom-emoji\");\n      if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n        attr(img, \"src\", img_src_value);\n      attr(img, \"alt\", \"\");\n      attr(img, \"loading\", \"lazy\");\n    },\n    m(target, anchor) {\n      insert(target, img, anchor);\n    },\n    p(ctx2, dirty) {\n      if (dirty[0] & 32768 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n        attr(img, \"src\", img_src_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(img);\n    }\n  };\n}\nfunction create_if_block_1(ctx) {\n  let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n  let t;\n  return {\n    c() {\n      t = text(t_value);\n    },\n    m(target, anchor) {\n      insert(target, t, anchor);\n    },\n    p(ctx2, dirty) {\n      if (dirty[0] & 33024 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n        set_data(t, t_value);\n    },\n    d(detaching) {\n      if (detaching)\n        detach(t);\n    }\n  };\n}\nfunction create_each_block_2(key_1, ctx) {\n  let button;\n  let button_role_value;\n  let button_aria_selected_value;\n  let button_aria_label_value;\n  let button_title_value;\n  let button_class_value;\n  let button_id_value;\n  function select_block_type(ctx2, dirty) {\n    if (ctx2[63].unicode)\n      return create_if_block_1;\n    return create_else_block_1;\n  }\n  let current_block_type = select_block_type(ctx);\n  let if_block = current_block_type(ctx);\n  return {\n    key: key_1,\n    first: null,\n    c() {\n      button = element(\"button\");\n      if_block.c();\n      attr(button, \"role\", button_role_value = ctx[4] ? \"option\" : \"menuitem\");\n      attr(button, \"aria-selected\", button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\");\n      attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n      attr(button, \"title\", button_title_value = ctx[63].title);\n      attr(button, \"class\", button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"));\n      attr(button, \"id\", button_id_value = \"emo-\" + ctx[63].id);\n      this.first = button;\n    },\n    m(target, anchor) {\n      insert(target, button, anchor);\n      if_block.m(button, null);\n    },\n    p(new_ctx, dirty) {\n      ctx = new_ctx;\n      if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n        if_block.p(ctx, dirty);\n      } else {\n        if_block.d(1);\n        if_block = current_block_type(ctx);\n        if (if_block) {\n          if_block.c();\n          if_block.m(button, null);\n        }\n      }\n      if (dirty[0] & 16 && button_role_value !== (button_role_value = ctx[4] ? \"option\" : \"menuitem\")) {\n        attr(button, \"role\", button_role_value);\n      }\n      if (dirty[0] & 32816 && button_aria_selected_value !== (button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\")) {\n        attr(button, \"aria-selected\", button_aria_selected_value);\n      }\n      if (dirty[0] & 33024 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n        attr(button, \"aria-label\", button_aria_label_value);\n      }\n      if (dirty[0] & 32768 && button_title_value !== (button_title_value = ctx[63].title)) {\n        attr(button, \"title\", button_title_value);\n      }\n      if (dirty[0] & 32816 && button_class_value !== (button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"))) {\n        attr(button, \"class\", button_class_value);\n      }\n      if (dirty[0] & 32768 && button_id_value !== (button_id_value = \"emo-\" + ctx[63].id)) {\n        attr(button, \"id\", button_id_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(button);\n      if_block.d();\n    }\n  };\n}\nfunction create_each_block_1(key_1, ctx) {\n  let div0;\n  let t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\";\n  let t;\n  let div0_id_value;\n  let div0_class_value;\n  let div1;\n  let each_blocks = [];\n  let each_1_lookup = new Map_1();\n  let div1_role_value;\n  let div1_aria_labelledby_value;\n  let div1_id_value;\n  let each_value_2 = ctx[66].emojis;\n  const get_key = (ctx2) => ctx2[63].id;\n  for (let i = 0; i < each_value_2.length; i += 1) {\n    let child_ctx = get_each_context_2(ctx, each_value_2, i);\n    let key = get_key(child_ctx);\n    each_1_lookup.set(key, each_blocks[i] = create_each_block_2(key, child_ctx));\n  }\n  return {\n    key: key_1,\n    first: null,\n    c() {\n      div0 = element(\"div\");\n      t = text(t_value);\n      div1 = element(\"div\");\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].c();\n      }\n      attr(div0, \"id\", div0_id_value = \"menu-label-\" + ctx[65]);\n      attr(div0, \"class\", div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"));\n      attr(div0, \"aria-hidden\", \"true\");\n      attr(div1, \"class\", \"emoji-menu\");\n      attr(div1, \"role\", div1_role_value = ctx[4] ? \"listbox\" : \"menu\");\n      attr(div1, \"aria-labelledby\", div1_aria_labelledby_value = \"menu-label-\" + ctx[65]);\n      attr(div1, \"id\", div1_id_value = ctx[4] ? \"search-results\" : \"\");\n      this.first = div0;\n    },\n    m(target, anchor) {\n      insert(target, div0, anchor);\n      append(div0, t);\n      insert(target, div1, anchor);\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].m(div1, null);\n      }\n    },\n    p(new_ctx, dirty) {\n      ctx = new_ctx;\n      if (dirty[0] & 40977 && t_value !== (t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\"))\n        set_data(t, t_value);\n      if (dirty[0] & 32768 && div0_id_value !== (div0_id_value = \"menu-label-\" + ctx[65])) {\n        attr(div0, \"id\", div0_id_value);\n      }\n      if (dirty[0] & 32768 && div0_class_value !== (div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"))) {\n        attr(div0, \"class\", div0_class_value);\n      }\n      if (dirty[0] & 402686256) {\n        each_value_2 = ctx[66].emojis;\n        each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_2, each_1_lookup, div1, destroy_block, create_each_block_2, null, get_each_context_2);\n      }\n      if (dirty[0] & 16 && div1_role_value !== (div1_role_value = ctx[4] ? \"listbox\" : \"menu\")) {\n        attr(div1, \"role\", div1_role_value);\n      }\n      if (dirty[0] & 32768 && div1_aria_labelledby_value !== (div1_aria_labelledby_value = \"menu-label-\" + ctx[65])) {\n        attr(div1, \"aria-labelledby\", div1_aria_labelledby_value);\n      }\n      if (dirty[0] & 16 && div1_id_value !== (div1_id_value = ctx[4] ? \"search-results\" : \"\")) {\n        attr(div1, \"id\", div1_id_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(div0);\n      if (detaching)\n        detach(div1);\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].d();\n      }\n    }\n  };\n}\nfunction create_else_block(ctx) {\n  let img;\n  let img_src_value;\n  return {\n    c() {\n      img = element(\"img\");\n      attr(img, \"class\", \"custom-emoji\");\n      if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n        attr(img, \"src\", img_src_value);\n      attr(img, \"alt\", \"\");\n      attr(img, \"loading\", \"lazy\");\n    },\n    m(target, anchor) {\n      insert(target, img, anchor);\n    },\n    p(ctx2, dirty) {\n      if (dirty[0] & 1024 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n        attr(img, \"src\", img_src_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(img);\n    }\n  };\n}\nfunction create_if_block(ctx) {\n  let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n  let t;\n  return {\n    c() {\n      t = text(t_value);\n    },\n    m(target, anchor) {\n      insert(target, t, anchor);\n    },\n    p(ctx2, dirty) {\n      if (dirty[0] & 1280 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n        set_data(t, t_value);\n    },\n    d(detaching) {\n      if (detaching)\n        detach(t);\n    }\n  };\n}\nfunction create_each_block(key_1, ctx) {\n  let button;\n  let button_aria_label_value;\n  let button_title_value;\n  let button_id_value;\n  function select_block_type_1(ctx2, dirty) {\n    if (ctx2[63].unicode)\n      return create_if_block;\n    return create_else_block;\n  }\n  let current_block_type = select_block_type_1(ctx);\n  let if_block = current_block_type(ctx);\n  return {\n    key: key_1,\n    first: null,\n    c() {\n      button = element(\"button\");\n      if_block.c();\n      attr(button, \"role\", \"menuitem\");\n      attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n      attr(button, \"title\", button_title_value = ctx[63].title);\n      attr(button, \"class\", \"emoji\");\n      attr(button, \"id\", button_id_value = \"fav-\" + ctx[63].id);\n      this.first = button;\n    },\n    m(target, anchor) {\n      insert(target, button, anchor);\n      if_block.m(button, null);\n    },\n    p(new_ctx, dirty) {\n      ctx = new_ctx;\n      if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {\n        if_block.p(ctx, dirty);\n      } else {\n        if_block.d(1);\n        if_block = current_block_type(ctx);\n        if (if_block) {\n          if_block.c();\n          if_block.m(button, null);\n        }\n      }\n      if (dirty[0] & 1280 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n        attr(button, \"aria-label\", button_aria_label_value);\n      }\n      if (dirty[0] & 1024 && button_title_value !== (button_title_value = ctx[63].title)) {\n        attr(button, \"title\", button_title_value);\n      }\n      if (dirty[0] & 1024 && button_id_value !== (button_id_value = \"fav-\" + ctx[63].id)) {\n        attr(button, \"id\", button_id_value);\n      }\n    },\n    d(detaching) {\n      if (detaching)\n        detach(button);\n      if_block.d();\n    }\n  };\n}\nfunction create_fragment(ctx) {\n  let section;\n  let div0;\n  let div4;\n  let div1;\n  let input;\n  let input_placeholder_value;\n  let input_aria_expanded_value;\n  let input_aria_activedescendant_value;\n  let label;\n  let t0_value = ctx[0].searchLabel + \"\";\n  let t0;\n  let span0;\n  let t1_value = ctx[0].searchDescription + \"\";\n  let t1;\n  let div2;\n  let button0;\n  let t2;\n  let button0_class_value;\n  let div2_class_value;\n  let span1;\n  let t3_value = ctx[0].skinToneDescription + \"\";\n  let t3;\n  let div3;\n  let each_blocks_3 = [];\n  let each0_lookup = new Map_1();\n  let div3_class_value;\n  let div3_aria_label_value;\n  let div3_aria_activedescendant_value;\n  let div3_aria_hidden_value;\n  let div5;\n  let each_blocks_2 = [];\n  let each1_lookup = new Map_1();\n  let div5_aria_label_value;\n  let div7;\n  let div6;\n  let div8;\n  let t4;\n  let div8_class_value;\n  let div10;\n  let div9;\n  let each_blocks_1 = [];\n  let each2_lookup = new Map_1();\n  let div10_class_value;\n  let div10_role_value;\n  let div10_aria_label_value;\n  let div10_id_value;\n  let div11;\n  let each_blocks = [];\n  let each3_lookup = new Map_1();\n  let div11_class_value;\n  let div11_aria_label_value;\n  let button1;\n  let section_aria_label_value;\n  let mounted;\n  let dispose;\n  let each_value_4 = ctx[9];\n  const get_key = (ctx2) => ctx2[72];\n  for (let i = 0; i < each_value_4.length; i += 1) {\n    let child_ctx = get_each_context_4(ctx, each_value_4, i);\n    let key = get_key(child_ctx);\n    each0_lookup.set(key, each_blocks_3[i] = create_each_block_4(key, child_ctx));\n  }\n  let each_value_3 = ctx[12];\n  const get_key_1 = (ctx2) => ctx2[69].id;\n  for (let i = 0; i < each_value_3.length; i += 1) {\n    let child_ctx = get_each_context_3(ctx, each_value_3, i);\n    let key = get_key_1(child_ctx);\n    each1_lookup.set(key, each_blocks_2[i] = create_each_block_3(key, child_ctx));\n  }\n  let each_value_1 = ctx[15];\n  const get_key_2 = (ctx2) => ctx2[66].category;\n  for (let i = 0; i < each_value_1.length; i += 1) {\n    let child_ctx = get_each_context_1(ctx, each_value_1, i);\n    let key = get_key_2(child_ctx);\n    each2_lookup.set(key, each_blocks_1[i] = create_each_block_1(key, child_ctx));\n  }\n  let each_value = ctx[10];\n  const get_key_3 = (ctx2) => ctx2[63].id;\n  for (let i = 0; i < each_value.length; i += 1) {\n    let child_ctx = get_each_context(ctx, each_value, i);\n    let key = get_key_3(child_ctx);\n    each3_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));\n  }\n  return {\n    c() {\n      section = element(\"section\");\n      div0 = element(\"div\");\n      div4 = element(\"div\");\n      div1 = element(\"div\");\n      input = element(\"input\");\n      label = element(\"label\");\n      t0 = text(t0_value);\n      span0 = element(\"span\");\n      t1 = text(t1_value);\n      div2 = element(\"div\");\n      button0 = element(\"button\");\n      t2 = text(ctx[21]);\n      span1 = element(\"span\");\n      t3 = text(t3_value);\n      div3 = element(\"div\");\n      for (let i = 0; i < each_blocks_3.length; i += 1) {\n        each_blocks_3[i].c();\n      }\n      div5 = element(\"div\");\n      for (let i = 0; i < each_blocks_2.length; i += 1) {\n        each_blocks_2[i].c();\n      }\n      div7 = element(\"div\");\n      div6 = element(\"div\");\n      div8 = element(\"div\");\n      t4 = text(ctx[18]);\n      div10 = element(\"div\");\n      div9 = element(\"div\");\n      for (let i = 0; i < each_blocks_1.length; i += 1) {\n        each_blocks_1[i].c();\n      }\n      div11 = element(\"div\");\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].c();\n      }\n      button1 = element(\"button\");\n      button1.textContent = \"\\u{1F600}\";\n      attr(div0, \"class\", \"pad-top\");\n      attr(input, \"id\", \"search\");\n      attr(input, \"class\", \"search\");\n      attr(input, \"type\", \"search\");\n      attr(input, \"role\", \"combobox\");\n      attr(input, \"enterkeyhint\", \"search\");\n      attr(input, \"placeholder\", input_placeholder_value = ctx[0].searchLabel);\n      attr(input, \"autocapitalize\", \"none\");\n      attr(input, \"autocomplete\", \"off\");\n      attr(input, \"spellcheck\", \"true\");\n      attr(input, \"aria-expanded\", input_aria_expanded_value = !!(ctx[4] && ctx[1].length));\n      attr(input, \"aria-controls\", \"search-results\");\n      attr(input, \"aria-describedby\", \"search-description\");\n      attr(input, \"aria-autocomplete\", \"list\");\n      attr(input, \"aria-activedescendant\", input_aria_activedescendant_value = ctx[26] ? `emo-${ctx[26]}` : \"\");\n      attr(label, \"class\", \"sr-only\");\n      attr(label, \"for\", \"search\");\n      attr(span0, \"id\", \"search-description\");\n      attr(span0, \"class\", \"sr-only\");\n      attr(div1, \"class\", \"search-wrapper\");\n      attr(button0, \"id\", \"skintone-button\");\n      attr(button0, \"class\", button0_class_value = \"emoji \" + (ctx[6] ? \"hide-focus\" : \"\"));\n      attr(button0, \"aria-label\", ctx[23]);\n      attr(button0, \"title\", ctx[23]);\n      attr(button0, \"aria-describedby\", \"skintone-description\");\n      attr(button0, \"aria-haspopup\", \"listbox\");\n      attr(button0, \"aria-expanded\", ctx[6]);\n      attr(button0, \"aria-controls\", \"skintone-list\");\n      attr(div2, \"class\", div2_class_value = \"skintone-button-wrapper \" + (ctx[19] ? \"expanded\" : \"\"));\n      attr(span1, \"id\", \"skintone-description\");\n      attr(span1, \"class\", \"sr-only\");\n      attr(div3, \"id\", \"skintone-list\");\n      attr(div3, \"class\", div3_class_value = \"skintone-list \" + (ctx[6] ? \"\" : \"hidden no-animate\"));\n      set_style(div3, \"transform\", \"translateY(\" + (ctx[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n      attr(div3, \"role\", \"listbox\");\n      attr(div3, \"aria-label\", div3_aria_label_value = ctx[0].skinTonesLabel);\n      attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value = \"skintone-\" + ctx[20]);\n      attr(div3, \"aria-hidden\", div3_aria_hidden_value = !ctx[6]);\n      attr(div4, \"class\", \"search-row\");\n      attr(div5, \"class\", \"nav\");\n      attr(div5, \"role\", \"tablist\");\n      set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx[12].length + \", 1fr)\");\n      attr(div5, \"aria-label\", div5_aria_label_value = ctx[0].categoriesLabel);\n      attr(div6, \"class\", \"indicator\");\n      set_style(div6, \"transform\", \"translateX(\" + (ctx[24] ? -1 : 1) * ctx[11] * 100 + \"%)\");\n      attr(div7, \"class\", \"indicator-wrapper\");\n      attr(div8, \"class\", div8_class_value = \"message \" + (ctx[18] ? \"\" : \"gone\"));\n      attr(div8, \"role\", \"alert\");\n      attr(div8, \"aria-live\", \"polite\");\n      attr(div10, \"class\", div10_class_value = \"tabpanel \" + (!ctx[14] || ctx[18] ? \"gone\" : \"\"));\n      attr(div10, \"role\", div10_role_value = ctx[4] ? \"region\" : \"tabpanel\");\n      attr(div10, \"aria-label\", div10_aria_label_value = ctx[4] ? ctx[0].searchResultsLabel : ctx[0].categories[ctx[13].name]);\n      attr(div10, \"id\", div10_id_value = ctx[4] ? \"\" : `tab-${ctx[13].id}`);\n      attr(div10, \"tabindex\", \"0\");\n      attr(div11, \"class\", div11_class_value = \"favorites emoji-menu \" + (ctx[18] ? \"gone\" : \"\"));\n      attr(div11, \"role\", \"menu\");\n      attr(div11, \"aria-label\", div11_aria_label_value = ctx[0].favoritesLabel);\n      set_style(div11, \"padding-inline-end\", ctx[25] + \"px\");\n      attr(button1, \"aria-hidden\", \"true\");\n      attr(button1, \"tabindex\", \"-1\");\n      attr(button1, \"class\", \"abs-pos hidden emoji\");\n      attr(section, \"class\", \"picker\");\n      attr(section, \"aria-label\", section_aria_label_value = ctx[0].regionLabel);\n      attr(section, \"style\", ctx[22]);\n    },\n    m(target, anchor) {\n      insert(target, section, anchor);\n      append(section, div0);\n      append(section, div4);\n      append(div4, div1);\n      append(div1, input);\n      set_input_value(input, ctx[2]);\n      append(div1, label);\n      append(label, t0);\n      append(div1, span0);\n      append(span0, t1);\n      append(div4, div2);\n      append(div2, button0);\n      append(button0, t2);\n      append(div4, span1);\n      append(span1, t3);\n      append(div4, div3);\n      for (let i = 0; i < each_blocks_3.length; i += 1) {\n        each_blocks_3[i].m(div3, null);\n      }\n      ctx[48](div3);\n      append(section, div5);\n      for (let i = 0; i < each_blocks_2.length; i += 1) {\n        each_blocks_2[i].m(div5, null);\n      }\n      append(section, div7);\n      append(div7, div6);\n      append(section, div8);\n      append(div8, t4);\n      append(section, div10);\n      append(div10, div9);\n      for (let i = 0; i < each_blocks_1.length; i += 1) {\n        each_blocks_1[i].m(div9, null);\n      }\n      ctx[50](div10);\n      append(section, div11);\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].m(div11, null);\n      }\n      append(section, button1);\n      ctx[51](button1);\n      ctx[52](section);\n      if (!mounted) {\n        dispose = [\n          listen(input, \"input\", ctx[47]),\n          listen(input, \"keydown\", ctx[30]),\n          listen(button0, \"click\", ctx[35]),\n          listen(div3, \"focusout\", ctx[38]),\n          listen(div3, \"click\", ctx[34]),\n          listen(div3, \"keydown\", ctx[36]),\n          listen(div3, \"keyup\", ctx[37]),\n          listen(div5, \"keydown\", ctx[32]),\n          action_destroyer(ctx[29].call(null, div9)),\n          listen(div10, \"click\", ctx[33]),\n          listen(div11, \"click\", ctx[33])\n        ];\n        mounted = true;\n      }\n    },\n    p(ctx2, dirty) {\n      if (dirty[0] & 1 && input_placeholder_value !== (input_placeholder_value = ctx2[0].searchLabel)) {\n        attr(input, \"placeholder\", input_placeholder_value);\n      }\n      if (dirty[0] & 18 && input_aria_expanded_value !== (input_aria_expanded_value = !!(ctx2[4] && ctx2[1].length))) {\n        attr(input, \"aria-expanded\", input_aria_expanded_value);\n      }\n      if (dirty[0] & 67108864 && input_aria_activedescendant_value !== (input_aria_activedescendant_value = ctx2[26] ? `emo-${ctx2[26]}` : \"\")) {\n        attr(input, \"aria-activedescendant\", input_aria_activedescendant_value);\n      }\n      if (dirty[0] & 4) {\n        set_input_value(input, ctx2[2]);\n      }\n      if (dirty[0] & 1 && t0_value !== (t0_value = ctx2[0].searchLabel + \"\"))\n        set_data(t0, t0_value);\n      if (dirty[0] & 1 && t1_value !== (t1_value = ctx2[0].searchDescription + \"\"))\n        set_data(t1, t1_value);\n      if (dirty[0] & 2097152)\n        set_data(t2, ctx2[21]);\n      if (dirty[0] & 64 && button0_class_value !== (button0_class_value = \"emoji \" + (ctx2[6] ? \"hide-focus\" : \"\"))) {\n        attr(button0, \"class\", button0_class_value);\n      }\n      if (dirty[0] & 8388608) {\n        attr(button0, \"aria-label\", ctx2[23]);\n      }\n      if (dirty[0] & 8388608) {\n        attr(button0, \"title\", ctx2[23]);\n      }\n      if (dirty[0] & 64) {\n        attr(button0, \"aria-expanded\", ctx2[6]);\n      }\n      if (dirty[0] & 524288 && div2_class_value !== (div2_class_value = \"skintone-button-wrapper \" + (ctx2[19] ? \"expanded\" : \"\"))) {\n        attr(div2, \"class\", div2_class_value);\n      }\n      if (dirty[0] & 1 && t3_value !== (t3_value = ctx2[0].skinToneDescription + \"\"))\n        set_data(t3, t3_value);\n      if (dirty[0] & 1049089) {\n        each_value_4 = ctx2[9];\n        each_blocks_3 = update_keyed_each(each_blocks_3, dirty, get_key, 1, ctx2, each_value_4, each0_lookup, div3, destroy_block, create_each_block_4, null, get_each_context_4);\n      }\n      if (dirty[0] & 64 && div3_class_value !== (div3_class_value = \"skintone-list \" + (ctx2[6] ? \"\" : \"hidden no-animate\"))) {\n        attr(div3, \"class\", div3_class_value);\n      }\n      if (dirty[0] & 64) {\n        set_style(div3, \"transform\", \"translateY(\" + (ctx2[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n      }\n      if (dirty[0] & 1 && div3_aria_label_value !== (div3_aria_label_value = ctx2[0].skinTonesLabel)) {\n        attr(div3, \"aria-label\", div3_aria_label_value);\n      }\n      if (dirty[0] & 1048576 && div3_aria_activedescendant_value !== (div3_aria_activedescendant_value = \"skintone-\" + ctx2[20])) {\n        attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value);\n      }\n      if (dirty[0] & 64 && div3_aria_hidden_value !== (div3_aria_hidden_value = !ctx2[6])) {\n        attr(div3, \"aria-hidden\", div3_aria_hidden_value);\n      }\n      if (dirty[0] & 12305 | dirty[1] & 1) {\n        each_value_3 = ctx2[12];\n        each_blocks_2 = update_keyed_each(each_blocks_2, dirty, get_key_1, 1, ctx2, each_value_3, each1_lookup, div5, destroy_block, create_each_block_3, null, get_each_context_3);\n      }\n      if (dirty[0] & 4096) {\n        set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx2[12].length + \", 1fr)\");\n      }\n      if (dirty[0] & 1 && div5_aria_label_value !== (div5_aria_label_value = ctx2[0].categoriesLabel)) {\n        attr(div5, \"aria-label\", div5_aria_label_value);\n      }\n      if (dirty[0] & 16779264) {\n        set_style(div6, \"transform\", \"translateX(\" + (ctx2[24] ? -1 : 1) * ctx2[11] * 100 + \"%)\");\n      }\n      if (dirty[0] & 262144)\n        set_data(t4, ctx2[18]);\n      if (dirty[0] & 262144 && div8_class_value !== (div8_class_value = \"message \" + (ctx2[18] ? \"\" : \"gone\"))) {\n        attr(div8, \"class\", div8_class_value);\n      }\n      if (dirty[0] & 402694449) {\n        each_value_1 = ctx2[15];\n        each_blocks_1 = update_keyed_each(each_blocks_1, dirty, get_key_2, 1, ctx2, each_value_1, each2_lookup, div9, destroy_block, create_each_block_1, null, get_each_context_1);\n      }\n      if (dirty[0] & 278528 && div10_class_value !== (div10_class_value = \"tabpanel \" + (!ctx2[14] || ctx2[18] ? \"gone\" : \"\"))) {\n        attr(div10, \"class\", div10_class_value);\n      }\n      if (dirty[0] & 16 && div10_role_value !== (div10_role_value = ctx2[4] ? \"region\" : \"tabpanel\")) {\n        attr(div10, \"role\", div10_role_value);\n      }\n      if (dirty[0] & 8209 && div10_aria_label_value !== (div10_aria_label_value = ctx2[4] ? ctx2[0].searchResultsLabel : ctx2[0].categories[ctx2[13].name])) {\n        attr(div10, \"aria-label\", div10_aria_label_value);\n      }\n      if (dirty[0] & 8208 && div10_id_value !== (div10_id_value = ctx2[4] ? \"\" : `tab-${ctx2[13].id}`)) {\n        attr(div10, \"id\", div10_id_value);\n      }\n      if (dirty[0] & 402654464) {\n        each_value = ctx2[10];\n        each_blocks = update_keyed_each(each_blocks, dirty, get_key_3, 1, ctx2, each_value, each3_lookup, div11, destroy_block, create_each_block, null, get_each_context);\n      }\n      if (dirty[0] & 262144 && div11_class_value !== (div11_class_value = \"favorites emoji-menu \" + (ctx2[18] ? \"gone\" : \"\"))) {\n        attr(div11, \"class\", div11_class_value);\n      }\n      if (dirty[0] & 1 && div11_aria_label_value !== (div11_aria_label_value = ctx2[0].favoritesLabel)) {\n        attr(div11, \"aria-label\", div11_aria_label_value);\n      }\n      if (dirty[0] & 33554432) {\n        set_style(div11, \"padding-inline-end\", ctx2[25] + \"px\");\n      }\n      if (dirty[0] & 1 && section_aria_label_value !== (section_aria_label_value = ctx2[0].regionLabel)) {\n        attr(section, \"aria-label\", section_aria_label_value);\n      }\n      if (dirty[0] & 4194304) {\n        attr(section, \"style\", ctx2[22]);\n      }\n    },\n    i: noop,\n    o: noop,\n    d(detaching) {\n      if (detaching)\n        detach(section);\n      for (let i = 0; i < each_blocks_3.length; i += 1) {\n        each_blocks_3[i].d();\n      }\n      ctx[48](null);\n      for (let i = 0; i < each_blocks_2.length; i += 1) {\n        each_blocks_2[i].d();\n      }\n      for (let i = 0; i < each_blocks_1.length; i += 1) {\n        each_blocks_1[i].d();\n      }\n      ctx[50](null);\n      for (let i = 0; i < each_blocks.length; i += 1) {\n        each_blocks[i].d();\n      }\n      ctx[51](null);\n      ctx[52](null);\n      mounted = false;\n      run_all(dispose);\n    }\n  };\n}\nfunction instance($$self, $$props, $$invalidate) {\n  let { skinToneEmoji } = $$props;\n  let { i18n } = $$props;\n  let { database } = $$props;\n  let { customEmoji } = $$props;\n  let { customCategorySorting } = $$props;\n  let initialLoad = true;\n  let currentEmojis = [];\n  let currentEmojisWithCategories = [];\n  let rawSearchText = \"\";\n  let searchText = \"\";\n  let rootElement;\n  let baselineEmoji;\n  let tabpanelElement;\n  let searchMode = false;\n  let activeSearchItem = -1;\n  let message;\n  let skinTonePickerExpanded = false;\n  let skinTonePickerExpandedAfterAnimation = false;\n  let skinToneDropdown;\n  let currentSkinTone = 0;\n  let activeSkinTone = 0;\n  let skinToneButtonText;\n  let pickerStyle;\n  let skinToneButtonLabel = \"\";\n  let skinTones = [];\n  let currentFavorites = [];\n  let defaultFavoriteEmojis;\n  let numColumns = DEFAULT_NUM_COLUMNS;\n  let isRtl = false;\n  let scrollbarWidth = 0;\n  let currentGroupIndex = 0;\n  let groups$1 = groups;\n  let currentGroup;\n  let databaseLoaded = false;\n  let activeSearchItemId;\n  const focus = (id) => {\n    rootElement.getRootNode().getElementById(id).focus();\n  };\n  const fireEvent = (name, detail) => {\n    rootElement.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));\n  };\n  const unicodeWithSkin = (emoji, currentSkinTone2) => currentSkinTone2 && emoji.skins && emoji.skins[currentSkinTone2] || emoji.unicode;\n  const labelWithSkin = (emoji, currentSkinTone2) => uniq([\n    emoji.name || unicodeWithSkin(emoji, currentSkinTone2),\n    ...emoji.shortcodes || []\n  ]).join(\", \");\n  const isSkinToneOption = (element2) => /^skintone-/.test(element2.id);\n  emojiSupportLevelPromise.then((level) => {\n    if (!level) {\n      $$invalidate(18, message = i18n.emojiUnsupportedMessage);\n    }\n  });\n  function calculateEmojiGridStyle(node) {\n    return calculateWidth(node, (width) => {\n      {\n        const style = getComputedStyle(rootElement);\n        const newNumColumns = parseInt(style.getPropertyValue(\"--num-columns\"), 10);\n        const newIsRtl = style.getPropertyValue(\"direction\") === \"rtl\";\n        const parentWidth = node.parentElement.getBoundingClientRect().width;\n        const newScrollbarWidth = parentWidth - width;\n        $$invalidate(46, numColumns = newNumColumns);\n        $$invalidate(25, scrollbarWidth = newScrollbarWidth);\n        $$invalidate(24, isRtl = newIsRtl);\n      }\n    });\n  }\n  function checkZwjSupportAndUpdate(zwjEmojisToCheck) {\n    const rootNode = rootElement.getRootNode();\n    const emojiToDomNode = (emoji) => rootNode.getElementById(`emo-${emoji.id}`);\n    checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode);\n    $$invalidate(1, currentEmojis = currentEmojis);\n  }\n  function isZwjSupported(emoji) {\n    return !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode);\n  }\n  async function filterEmojisByVersion(emojis) {\n    const emojiSupportLevel = await emojiSupportLevelPromise;\n    return emojis.filter(({ version: version2 }) => !version2 || version2 <= emojiSupportLevel);\n  }\n  async function summarizeEmojis(emojis) {\n    return summarizeEmojisForUI(emojis, await emojiSupportLevelPromise);\n  }\n  async function getEmojisByGroup(group) {\n    if (typeof group === \"undefined\") {\n      return [];\n    }\n    const emoji = group === -1 ? customEmoji : await database.getEmojiByGroup(group);\n    return summarizeEmojis(await filterEmojisByVersion(emoji));\n  }\n  async function getEmojisBySearchQuery(query) {\n    return summarizeEmojis(await filterEmojisByVersion(await database.getEmojiBySearchQuery(query)));\n  }\n  function onSearchKeydown(event) {\n    if (!searchMode || !currentEmojis.length) {\n      return;\n    }\n    const goToNextOrPrevious = (previous2) => {\n      halt(event);\n      $$invalidate(5, activeSearchItem = incrementOrDecrement(previous2, activeSearchItem, currentEmojis));\n    };\n    switch (event.key) {\n      case \"ArrowDown\":\n        return goToNextOrPrevious(false);\n      case \"ArrowUp\":\n        return goToNextOrPrevious(true);\n      case \"Enter\":\n        if (activeSearchItem !== -1) {\n          halt(event);\n          return clickEmoji(currentEmojis[activeSearchItem].id);\n        } else if (currentEmojis.length) {\n          $$invalidate(5, activeSearchItem = 0);\n        }\n    }\n  }\n  function onNavClick(group) {\n    $$invalidate(2, rawSearchText = \"\");\n    $$invalidate(44, searchText = \"\");\n    $$invalidate(5, activeSearchItem = -1);\n    $$invalidate(11, currentGroupIndex = groups$1.findIndex((_) => _.id === group.id));\n  }\n  function onNavKeydown(event) {\n    const { target, key } = event;\n    const doFocus = (el) => {\n      if (el) {\n        halt(event);\n        el.focus();\n      }\n    };\n    switch (key) {\n      case \"ArrowLeft\":\n        return doFocus(target.previousSibling);\n      case \"ArrowRight\":\n        return doFocus(target.nextSibling);\n      case \"Home\":\n        return doFocus(target.parentElement.firstChild);\n      case \"End\":\n        return doFocus(target.parentElement.lastChild);\n    }\n  }\n  async function clickEmoji(unicodeOrName) {\n    const emoji = await database.getEmojiByUnicodeOrName(unicodeOrName);\n    const emojiSummary = [...currentEmojis, ...currentFavorites].find((_) => _.id === unicodeOrName);\n    const skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, currentSkinTone);\n    await database.incrementFavoriteEmojiCount(unicodeOrName);\n    fireEvent(\"emoji-click\", {\n      emoji,\n      skinTone: currentSkinTone,\n      ...skinTonedUnicode && { unicode: skinTonedUnicode },\n      ...emojiSummary.name && { name: emojiSummary.name }\n    });\n  }\n  async function onEmojiClick(event) {\n    const { target } = event;\n    if (!target.classList.contains(\"emoji\")) {\n      return;\n    }\n    halt(event);\n    const id = target.id.substring(4);\n    clickEmoji(id);\n  }\n  async function onSkinToneOptionsClick(event) {\n    const { target } = event;\n    if (!isSkinToneOption(target)) {\n      return;\n    }\n    halt(event);\n    const skinTone = parseInt(target.id.slice(9), 10);\n    $$invalidate(8, currentSkinTone = skinTone);\n    $$invalidate(6, skinTonePickerExpanded = false);\n    focus(\"skintone-button\");\n    fireEvent(\"skin-tone-change\", { skinTone });\n    database.setPreferredSkinTone(skinTone);\n  }\n  async function onClickSkinToneButton(event) {\n    $$invalidate(6, skinTonePickerExpanded = !skinTonePickerExpanded);\n    $$invalidate(20, activeSkinTone = currentSkinTone);\n    if (skinTonePickerExpanded) {\n      halt(event);\n      rAF(() => focus(`skintone-${activeSkinTone}`));\n    }\n  }\n  function onSkinToneOptionsKeydown(event) {\n    if (!skinTonePickerExpanded) {\n      return;\n    }\n    const changeActiveSkinTone = async (nextSkinTone) => {\n      halt(event);\n      $$invalidate(20, activeSkinTone = nextSkinTone);\n      await tick();\n      focus(`skintone-${activeSkinTone}`);\n    };\n    switch (event.key) {\n      case \"ArrowUp\":\n        return changeActiveSkinTone(incrementOrDecrement(true, activeSkinTone, skinTones));\n      case \"ArrowDown\":\n        return changeActiveSkinTone(incrementOrDecrement(false, activeSkinTone, skinTones));\n      case \"Home\":\n        return changeActiveSkinTone(0);\n      case \"End\":\n        return changeActiveSkinTone(skinTones.length - 1);\n      case \"Enter\":\n        return onSkinToneOptionsClick(event);\n      case \"Escape\":\n        halt(event);\n        $$invalidate(6, skinTonePickerExpanded = false);\n        return focus(\"skintone-button\");\n    }\n  }\n  function onSkinToneOptionsKeyup(event) {\n    if (!skinTonePickerExpanded) {\n      return;\n    }\n    switch (event.key) {\n      case \" \":\n        return onSkinToneOptionsClick(event);\n    }\n  }\n  async function onSkinToneOptionsFocusOut(event) {\n    const { relatedTarget } = event;\n    if (!relatedTarget || !isSkinToneOption(relatedTarget)) {\n      $$invalidate(6, skinTonePickerExpanded = false);\n    }\n  }\n  function input_input_handler() {\n    rawSearchText = this.value;\n    $$invalidate(2, rawSearchText);\n  }\n  function div3_binding($$value) {\n    binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n      skinToneDropdown = $$value;\n      $$invalidate(7, skinToneDropdown);\n    });\n  }\n  const click_handler = (group) => onNavClick(group);\n  function div10_binding($$value) {\n    binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n      tabpanelElement = $$value;\n      $$invalidate(3, tabpanelElement);\n    });\n  }\n  function button1_binding($$value) {\n    binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n      baselineEmoji = $$value;\n      $$invalidate(17, baselineEmoji);\n    });\n  }\n  function section_binding($$value) {\n    binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n      rootElement = $$value;\n      $$invalidate(16, rootElement);\n    });\n  }\n  $$self.$$set = ($$props2) => {\n    if (\"skinToneEmoji\" in $$props2)\n      $$invalidate(40, skinToneEmoji = $$props2.skinToneEmoji);\n    if (\"i18n\" in $$props2)\n      $$invalidate(0, i18n = $$props2.i18n);\n    if (\"database\" in $$props2)\n      $$invalidate(39, database = $$props2.database);\n    if (\"customEmoji\" in $$props2)\n      $$invalidate(41, customEmoji = $$props2.customEmoji);\n    if (\"customCategorySorting\" in $$props2)\n      $$invalidate(42, customCategorySorting = $$props2.customCategorySorting);\n  };\n  $$self.$$.update = () => {\n    if ($$self.$$.dirty[1] & 1280) {\n      {\n        if (customEmoji && database) {\n          $$invalidate(39, database.customEmoji = customEmoji, database);\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 1 | $$self.$$.dirty[1] & 256) {\n      {\n        async function handleDatabaseLoading() {\n          let showingLoadingMessage = false;\n          const timeoutHandle = setTimeout(\n            () => {\n              showingLoadingMessage = true;\n              $$invalidate(18, message = i18n.loadingMessage);\n            },\n            TIMEOUT_BEFORE_LOADING_MESSAGE\n          );\n          try {\n            await database.ready();\n            $$invalidate(14, databaseLoaded = true);\n          } catch (err) {\n            console.error(err);\n            $$invalidate(18, message = i18n.networkErrorMessage);\n          } finally {\n            clearTimeout(timeoutHandle);\n            if (showingLoadingMessage) {\n              showingLoadingMessage = false;\n              $$invalidate(18, message = \"\");\n            }\n          }\n        }\n        if (database) {\n          handleDatabaseLoading();\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 6144 | $$self.$$.dirty[1] & 1024) {\n      {\n        if (customEmoji && customEmoji.length) {\n          $$invalidate(12, groups$1 = [customGroup, ...groups]);\n        } else if (groups$1 !== groups) {\n          if (currentGroupIndex) {\n            $$invalidate(11, currentGroupIndex--, currentGroupIndex);\n          }\n          $$invalidate(12, groups$1 = groups);\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 4) {\n      {\n        rIC(() => {\n          $$invalidate(44, searchText = (rawSearchText || \"\").trim());\n          $$invalidate(5, activeSearchItem = -1);\n        });\n      }\n    }\n    if ($$self.$$.dirty[0] & 6144) {\n      $$invalidate(13, currentGroup = groups$1[currentGroupIndex]);\n    }\n    if ($$self.$$.dirty[0] & 24576 | $$self.$$.dirty[1] & 8192) {\n      {\n        async function updateEmojis() {\n          if (!databaseLoaded) {\n            $$invalidate(1, currentEmojis = []);\n            $$invalidate(4, searchMode = false);\n          } else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n            const currentSearchText = searchText;\n            const newEmojis = await getEmojisBySearchQuery(currentSearchText);\n            if (currentSearchText === searchText) {\n              $$invalidate(1, currentEmojis = newEmojis);\n              $$invalidate(4, searchMode = true);\n            }\n          } else if (currentGroup) {\n            const currentGroupId = currentGroup.id;\n            const newEmojis = await getEmojisByGroup(currentGroupId);\n            if (currentGroupId === currentGroup.id) {\n              $$invalidate(1, currentEmojis = newEmojis);\n              $$invalidate(4, searchMode = false);\n            }\n          }\n        }\n        updateEmojis();\n      }\n    }\n    if ($$self.$$.dirty[0] & 4112) {\n      $$invalidate(22, pickerStyle = `\n  --font-family: ${FONT_FAMILY};\n  --num-groups: ${groups$1.length}; \n  --indicator-opacity: ${searchMode ? 0 : 1}; \n  --num-skintones: ${NUM_SKIN_TONES};`);\n    }\n    if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n      {\n        async function updatePreferredSkinTone() {\n          if (databaseLoaded) {\n            $$invalidate(8, currentSkinTone = await database.getPreferredSkinTone());\n          }\n        }\n        updatePreferredSkinTone();\n      }\n    }\n    if ($$self.$$.dirty[1] & 512) {\n      $$invalidate(9, skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(skinToneEmoji, i)));\n    }\n    if ($$self.$$.dirty[0] & 768) {\n      $$invalidate(21, skinToneButtonText = skinTones[currentSkinTone]);\n    }\n    if ($$self.$$.dirty[0] & 257) {\n      $$invalidate(23, skinToneButtonLabel = i18n.skinToneLabel.replace(\"{skinTone}\", i18n.skinTones[currentSkinTone]));\n    }\n    if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n      {\n        async function updateDefaultFavoriteEmojis() {\n          $$invalidate(45, defaultFavoriteEmojis = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map((unicode) => database.getEmojiByUnicodeOrName(unicode)))).filter(Boolean));\n        }\n        if (databaseLoaded) {\n          updateDefaultFavoriteEmojis();\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 49408) {\n      {\n        async function updateFavorites() {\n          const dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n          const favorites = await summarizeEmojis(uniqBy([...dbFavorites, ...defaultFavoriteEmojis], (_) => _.unicode || _.name).slice(0, numColumns));\n          $$invalidate(10, currentFavorites = favorites);\n        }\n        if (databaseLoaded && defaultFavoriteEmojis) {\n          updateFavorites();\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 10) {\n      {\n        const zwjEmojisToCheck = currentEmojis.filter((emoji) => emoji.unicode).filter((emoji) => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode));\n        if (zwjEmojisToCheck.length) {\n          rAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n        } else {\n          $$invalidate(1, currentEmojis = currentEmojis.filter(isZwjSupported));\n          rAF(() => {\n            (tabpanelElement || {}).scrollTop = 0;\n          });\n        }\n      }\n    }\n    if ($$self.$$.dirty[0] & 1026 | $$self.$$.dirty[1] & 4096)\n      ;\n    if ($$self.$$.dirty[0] & 18 | $$self.$$.dirty[1] & 2048) {\n      {\n        let calculateCurrentEmojisWithCategories = function() {\n          if (searchMode) {\n            return [{ category: \"\", emojis: currentEmojis }];\n          }\n          const categoriesToEmoji = /* @__PURE__ */ new Map();\n          for (const emoji of currentEmojis) {\n            const category = emoji.category || \"\";\n            let emojis = categoriesToEmoji.get(category);\n            if (!emojis) {\n              emojis = [];\n              categoriesToEmoji.set(category, emojis);\n            }\n            emojis.push(emoji);\n          }\n          return [...categoriesToEmoji.entries()].map(([category, emojis]) => ({ category, emojis })).sort((a, b) => customCategorySorting(a.category, b.category));\n        };\n        $$invalidate(15, currentEmojisWithCategories = calculateCurrentEmojisWithCategories());\n      }\n    }\n    if ($$self.$$.dirty[0] & 34) {\n      $$invalidate(26, activeSearchItemId = activeSearchItem !== -1 && currentEmojis[activeSearchItem].id);\n    }\n    if ($$self.$$.dirty[0] & 192) {\n      {\n        if (skinTonePickerExpanded) {\n          skinToneDropdown.addEventListener(\n            \"transitionend\",\n            () => {\n              $$invalidate(19, skinTonePickerExpandedAfterAnimation = true);\n            },\n            { once: true }\n          );\n        } else {\n          $$invalidate(19, skinTonePickerExpandedAfterAnimation = false);\n        }\n      }\n    }\n  };\n  return [\n    i18n,\n    currentEmojis,\n    rawSearchText,\n    tabpanelElement,\n    searchMode,\n    activeSearchItem,\n    skinTonePickerExpanded,\n    skinToneDropdown,\n    currentSkinTone,\n    skinTones,\n    currentFavorites,\n    currentGroupIndex,\n    groups$1,\n    currentGroup,\n    databaseLoaded,\n    currentEmojisWithCategories,\n    rootElement,\n    baselineEmoji,\n    message,\n    skinTonePickerExpandedAfterAnimation,\n    activeSkinTone,\n    skinToneButtonText,\n    pickerStyle,\n    skinToneButtonLabel,\n    isRtl,\n    scrollbarWidth,\n    activeSearchItemId,\n    unicodeWithSkin,\n    labelWithSkin,\n    calculateEmojiGridStyle,\n    onSearchKeydown,\n    onNavClick,\n    onNavKeydown,\n    onEmojiClick,\n    onSkinToneOptionsClick,\n    onClickSkinToneButton,\n    onSkinToneOptionsKeydown,\n    onSkinToneOptionsKeyup,\n    onSkinToneOptionsFocusOut,\n    database,\n    skinToneEmoji,\n    customEmoji,\n    customCategorySorting,\n    initialLoad,\n    searchText,\n    defaultFavoriteEmojis,\n    numColumns,\n    input_input_handler,\n    div3_binding,\n    click_handler,\n    div10_binding,\n    button1_binding,\n    section_binding\n  ];\n}\nclass Picker extends SvelteComponent {\n  constructor(options) {\n    super();\n    init(\n      this,\n      options,\n      instance,\n      create_fragment,\n      safe_not_equal,\n      {\n        skinToneEmoji: 40,\n        i18n: 0,\n        database: 39,\n        customEmoji: 41,\n        customCategorySorting: 42\n      },\n      null,\n      [-1, -1, -1]\n    );\n  }\n}\nconst DEFAULT_DATA_SOURCE = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE = \"en\";\nvar enI18n = {\n  categoriesLabel: \"Categories\",\n  emojiUnsupportedMessage: \"Your browser does not support color emoji.\",\n  favoritesLabel: \"Favorites\",\n  loadingMessage: \"Loading\\u2026\",\n  networkErrorMessage: \"Could not load emoji.\",\n  regionLabel: \"Emoji picker\",\n  searchDescription: \"When search results are available, press up or down to select and enter to choose.\",\n  searchLabel: \"Search\",\n  searchResultsLabel: \"Search results\",\n  skinToneDescription: \"When expanded, press up or down to select and enter to choose.\",\n  skinToneLabel: \"Choose a skin tone (currently {skinTone})\",\n  skinTonesLabel: \"Skin tones\",\n  skinTones: [\n    \"Default\",\n    \"Light\",\n    \"Medium-Light\",\n    \"Medium\",\n    \"Medium-Dark\",\n    \"Dark\"\n  ],\n  categories: {\n    custom: \"Custom\",\n    \"smileys-emotion\": \"Smileys and emoticons\",\n    \"people-body\": \"People and body\",\n    \"animals-nature\": \"Animals and nature\",\n    \"food-drink\": \"Food and drink\",\n    \"travel-places\": \"Travel and places\",\n    activities: \"Activities\",\n    objects: \"Objects\",\n    symbols: \"Symbols\",\n    flags: \"Flags\"\n  }\n};\nconst PROPS = [\n  \"customEmoji\",\n  \"customCategorySorting\",\n  \"database\",\n  \"dataSource\",\n  \"i18n\",\n  \"locale\",\n  \"skinToneEmoji\"\n];\nclass PickerElement extends HTMLElement {\n  constructor(props) {\n    super();\n    this.attachShadow({ mode: \"open\" });\n    const style = document.createElement(\"style\");\n    style.textContent = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n    this.shadowRoot.appendChild(style);\n    this._ctx = {\n      locale: DEFAULT_LOCALE,\n      dataSource: DEFAULT_DATA_SOURCE,\n      skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n      customCategorySorting: DEFAULT_CATEGORY_SORTING,\n      customEmoji: null,\n      i18n: enI18n,\n      ...props\n    };\n    for (const prop of PROPS) {\n      if (prop !== \"database\" && Object.prototype.hasOwnProperty.call(this, prop)) {\n        this._ctx[prop] = this[prop];\n        delete this[prop];\n      }\n    }\n    this._dbFlush();\n  }\n  connectedCallback() {\n    this._cmp = new Picker({\n      target: this.shadowRoot,\n      props: this._ctx\n    });\n  }\n  disconnectedCallback() {\n    this._cmp.$destroy();\n    this._cmp = void 0;\n    const { database } = this._ctx;\n    if (database) {\n      database.close().catch((err) => console.error(err));\n    }\n  }\n  static get observedAttributes() {\n    return [\"locale\", \"data-source\", \"skin-tone-emoji\"];\n  }\n  attributeChangedCallback(attrName, oldValue, newValue) {\n    this._set(\n      attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n      newValue\n    );\n  }\n  _set(prop, newValue) {\n    this._ctx[prop] = newValue;\n    if (this._cmp) {\n      this._cmp.$set({ [prop]: newValue });\n    }\n    if ([\"locale\", \"dataSource\"].includes(prop)) {\n      this._dbFlush();\n    }\n  }\n  _dbCreate() {\n    const { locale, dataSource, database } = this._ctx;\n    if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n      this._set(\"database\", new Database({ locale, dataSource }));\n    }\n  }\n  _dbFlush() {\n    Promise.resolve().then(() => this._dbCreate());\n  }\n}\nconst definitions = {};\nfor (const prop of PROPS) {\n  definitions[prop] = {\n    get() {\n      if (prop === \"database\") {\n        this._dbCreate();\n      }\n      return this._ctx[prop];\n    },\n    set(val) {\n      if (prop === \"database\") {\n        throw new Error(\"database is read-only\");\n      }\n      this._set(prop, val);\n    }\n  };\n}\nObject.defineProperties(PickerElement.prototype, definitions);\nif (!customElements.get(\"emoji-picker\")) {\n  customElements.define(\"emoji-picker\", PickerElement);\n}\nfunction findParentBySelector(node, selector) {\n  while (node && !node.querySelector(selector)) {\n    node = node.parentNode;\n    const element2 = node.querySelector(selector);\n    if (element2)\n      return element2;\n  }\n  return null;\n}\nconst _sfc_main$j = {\n  name: \"EmojiPickerContainer\",\n  components: {\n    SvgIcon\n  },\n  props: {\n    emojiOpened: { type: Boolean, default: false },\n    emojiReaction: { type: Boolean, default: false },\n    positionTop: { type: Boolean, default: false },\n    positionRight: { type: Boolean, default: false },\n    messageId: { type: String, default: \"\" },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\"add-emoji\", \"open-emoji\"],\n  data() {\n    return {\n      emojiPickerHeight: 320,\n      emojiPickerTop: 0,\n      emojiPickerRight: \"\"\n    };\n  },\n  watch: {\n    emojiOpened(val) {\n      if (val) {\n        setTimeout(() => {\n          this.addCustomStyling();\n          this.$refs.emojiPicker.shadowRoot.addEventListener(\n            \"emoji-click\",\n            ({ detail }) => {\n              this.$emit(\"add-emoji\", {\n                unicode: detail.unicode\n              });\n            }\n          );\n        }, 0);\n      }\n    }\n  },\n  methods: {\n    addCustomStyling() {\n      const picker = `.picker {\n\t\t\t\tborder: none;\n\t\t\t}`;\n      const nav = `.nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}`;\n      const searchBox = `.search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}`;\n      const search2 = `input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}`;\n      const style = document.createElement(\"style\");\n      style.textContent = picker + nav + searchBox + search2;\n      this.$refs.emojiPicker.shadowRoot.appendChild(style);\n    },\n    openEmoji(ev) {\n      this.$emit(\"open-emoji\", !this.emojiOpened);\n      this.setEmojiPickerPosition(\n        ev.clientY,\n        ev.view.innerWidth,\n        ev.view.innerHeight\n      );\n    },\n    setEmojiPickerPosition(clientY, innerWidth, innerHeight) {\n      const mobileSize = innerWidth < 500 || innerHeight < 700;\n      const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n      if (!roomFooterRef) {\n        if (mobileSize)\n          this.emojiPickerRight = \"-50px\";\n        return;\n      }\n      if (mobileSize) {\n        this.emojiPickerRight = innerWidth / 2 - (this.positionTop ? 200 : 150) + \"px\";\n        this.emojiPickerTop = 100;\n        this.emojiPickerHeight = innerHeight - 200;\n      } else {\n        const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n        const pickerTopPosition = roomFooterTop - clientY > this.emojiPickerHeight - 50;\n        if (pickerTopPosition)\n          this.emojiPickerTop = clientY + 10;\n        else\n          this.emojiPickerTop = clientY - this.emojiPickerHeight - 10;\n        this.emojiPickerRight = this.positionTop ? \"0px\" : this.positionRight ? \"60px\" : \"\";\n      }\n    }\n  }\n};\nconst _hoisted_1$j = { class: \"vac-emoji-wrapper\" };\nfunction _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_emoji_picker = resolveComponent(\"emoji-picker\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$j, [\n    createBaseVNode(\"div\", {\n      class: normalizeClass([\"vac-svg-button\", { \"vac-emoji-reaction\": $props.emojiReaction }]),\n      onClick: _cache[0] || (_cache[0] = (...args) => $options.openEmoji && $options.openEmoji(...args))\n    }, [\n      renderSlot(\n        _ctx.$slots,\n        $props.messageId ? \"emoji-picker-reaction-icon_\" + $props.messageId : \"emoji-picker-icon\",\n        {},\n        () => [\n          createVNode(_component_svg_icon, {\n            name: \"emoji\",\n            param: $props.emojiReaction ? \"reaction\" : \"\"\n          }, null, 8, [\"param\"])\n        ]\n      )\n    ], 2),\n    $props.emojiOpened ? (openBlock(), createBlock(Transition, {\n      key: 0,\n      name: \"vac-slide-up\",\n      appear: \"\"\n    }, {\n      default: withCtx(() => [\n        createBaseVNode(\"div\", {\n          class: normalizeClass([\"vac-emoji-picker\", { \"vac-picker-reaction\": $props.emojiReaction }]),\n          style: normalizeStyle({\n            height: `${$data.emojiPickerHeight}px`,\n            top: $props.positionTop ? $data.emojiPickerHeight : `${$data.emojiPickerTop}px`,\n            right: $data.emojiPickerRight,\n            display: $data.emojiPickerTop || !$props.emojiReaction ? \"initial\" : \"none\"\n          })\n        }, [\n          $props.emojiOpened ? (openBlock(), createBlock(_component_emoji_picker, {\n            key: 0,\n            ref: \"emojiPicker\",\n            \"data-source\": $props.emojiDataSource\n          }, null, 8, [\"data-source\"])) : createCommentVNode(\"\", true)\n        ], 6)\n      ]),\n      _: 1\n    })) : createCommentVNode(\"\", true)\n  ]);\n}\nvar EmojiPickerContainer = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"render\", _sfc_render$j]]);\nconst _sfc_main$i = {\n  name: \"RoomFiles\",\n  components: {\n    Loader,\n    SvgIcon\n  },\n  props: {\n    file: { type: Object, required: true },\n    index: { type: Number, required: true }\n  },\n  emits: [\"remove-file\"],\n  computed: {\n    isImage() {\n      return isImageFile(this.file);\n    },\n    isVideo() {\n      return isVideoFile(this.file);\n    }\n  }\n};\nconst _hoisted_1$i = { class: \"vac-room-file-container\" };\nconst _hoisted_2$g = [\"src\"];\nconst _hoisted_3$d = { class: \"vac-text-ellipsis\" };\nconst _hoisted_4$c = {\n  key: 0,\n  class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_loader = resolveComponent(\"loader\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$i, [\n    createVNode(_component_loader, {\n      show: $props.file.loading,\n      type: \"room-file\"\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (idx, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"show\"]),\n    createBaseVNode(\"div\", {\n      class: \"vac-svg-button vac-icon-remove\",\n      onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $props.index))\n    }, [\n      renderSlot(_ctx.$slots, \"image-close-icon\", {}, () => [\n        createVNode(_component_svg_icon, {\n          name: \"close\",\n          param: \"image\"\n        })\n      ])\n    ]),\n    $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n      key: 0,\n      class: normalizeClass([\"vac-message-image\", { \"vac-blur-loading\": $props.file.loading }]),\n      style: normalizeStyle({\n        \"background-image\": `url('${$props.file.localUrl || $props.file.url}')`\n      })\n    }, null, 6)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", {\n      key: 1,\n      controls: \"\",\n      class: normalizeClass({ \"vac-blur-loading\": $props.file.loading })\n    }, [\n      createBaseVNode(\"source\", {\n        src: $props.file.localUrl || $props.file.url\n      }, null, 8, _hoisted_2$g)\n    ], 2)) : (openBlock(), createElementBlock(\"div\", {\n      key: 2,\n      class: normalizeClass([\"vac-file-container\", { \"vac-blur-loading\": $props.file.loading }])\n    }, [\n      createBaseVNode(\"div\", null, [\n        renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n          createVNode(_component_svg_icon, { name: \"file\" })\n        ])\n      ]),\n      createBaseVNode(\"div\", _hoisted_3$d, toDisplayString($props.file.name), 1),\n      $props.file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_4$c, toDisplayString($props.file.extension), 1)) : createCommentVNode(\"\", true)\n    ], 2))\n  ]);\n}\nvar RoomFile = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"render\", _sfc_render$i]]);\nconst _sfc_main$h = {\n  name: \"RoomFiles\",\n  components: {\n    SvgIcon,\n    RoomFile\n  },\n  props: {\n    files: { type: Array, required: true }\n  },\n  emits: [\"remove-file\", \"reset-message\"],\n  computed: {}\n};\nconst _hoisted_1$h = {\n  key: 0,\n  class: \"vac-room-files-container\"\n};\nconst _hoisted_2$f = { class: \"vac-files-box\" };\nconst _hoisted_3$c = { class: \"vac-icon-close\" };\nfunction _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_room_file = resolveComponent(\"room-file\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n    default: withCtx(() => [\n      $props.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$h, [\n        createBaseVNode(\"div\", _hoisted_2$f, [\n          (openBlock(true), createElementBlock(Fragment, null, renderList($props.files, (file, i) => {\n            return openBlock(), createElementBlock(\"div\", { key: i }, [\n              createVNode(_component_room_file, {\n                file,\n                index: i,\n                onRemoveFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $event))\n              }, createSlots({ _: 2 }, [\n                renderList(_ctx.$slots, (idx, name) => {\n                  return {\n                    name,\n                    fn: withCtx((data) => [\n                      renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                    ])\n                  };\n                })\n              ]), 1032, [\"file\", \"index\"])\n            ]);\n          }), 128))\n        ]),\n        createBaseVNode(\"div\", _hoisted_3$c, [\n          createBaseVNode(\"div\", {\n            class: \"vac-svg-button\",\n            onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"reset-message\"))\n          }, [\n            renderSlot(_ctx.$slots, \"files-close-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"close-outline\" })\n            ])\n          ])\n        ])\n      ])) : createCommentVNode(\"\", true)\n    ]),\n    _: 3\n  });\n}\nvar RoomFiles = /* @__PURE__ */ _export_sfc(_sfc_main$h, [[\"render\", _sfc_render$h]]);\nconst _sfc_main$g = {\n  props: {\n    percentage: { type: Number, default: 0 },\n    messageSelectionEnabled: { type: Boolean, required: true }\n  },\n  emits: [\"hover-audio-progress\", \"change-linehead\"],\n  data() {\n    return {\n      isMouseDown: false\n    };\n  },\n  methods: {\n    onMouseDown(ev) {\n      if (this.messageSelectionEnabled)\n        return;\n      this.isMouseDown = true;\n      const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit(\"change-linehead\", seekPos);\n      document.addEventListener(\"mousemove\", this.onMouseMove);\n      document.addEventListener(\"mouseup\", this.onMouseUp);\n    },\n    onMouseUp(ev) {\n      if (this.messageSelectionEnabled)\n        return;\n      this.isMouseDown = false;\n      document.removeEventListener(\"mouseup\", this.onMouseUp);\n      document.removeEventListener(\"mousemove\", this.onMouseMove);\n      const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit(\"change-linehead\", seekPos);\n    },\n    onMouseMove(ev) {\n      if (this.messageSelectionEnabled)\n        return;\n      const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n      this.$emit(\"change-linehead\", seekPos);\n    },\n    calculateLineHeadPosition(ev, element2) {\n      const progressWidth = element2.getBoundingClientRect().width;\n      const leftPosition = element2.getBoundingClientRect().left;\n      let pos = (ev.clientX - leftPosition) / progressWidth;\n      pos = pos < 0 ? 0 : pos;\n      pos = pos > 1 ? 1 : pos;\n      return pos;\n    }\n  }\n};\nconst _hoisted_1$g = { class: \"vac-player-progress\" };\nconst _hoisted_2$e = { class: \"vac-line-container\" };\nfunction _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"div\", {\n    ref: \"progress\",\n    class: \"vac-player-bar\",\n    onMousedown: _cache[0] || (_cache[0] = (...args) => $options.onMouseDown && $options.onMouseDown(...args)),\n    onMouseover: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", true)),\n    onMouseout: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"hover-audio-progress\", false))\n  }, [\n    createBaseVNode(\"div\", _hoisted_1$g, [\n      createBaseVNode(\"div\", _hoisted_2$e, [\n        createBaseVNode(\"div\", {\n          class: \"vac-line-progress\",\n          style: normalizeStyle({ width: `${$props.percentage}%` })\n        }, null, 4),\n        createBaseVNode(\"div\", {\n          class: normalizeClass([\"vac-line-dot\", { \"vac-line-dot__active\": $data.isMouseDown }]),\n          style: normalizeStyle({ left: `${$props.percentage}%` })\n        }, null, 6)\n      ])\n    ])\n  ], 544);\n}\nvar AudioControl = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$g]]);\nconst _sfc_main$f = {\n  name: \"AudioPlayer\",\n  components: {\n    SvgIcon,\n    AudioControl\n  },\n  props: {\n    messageId: { type: [String, Number], default: null },\n    src: { type: String, default: null },\n    messageSelectionEnabled: { type: Boolean, required: true }\n  },\n  emits: [\"hover-audio-progress\", \"update-progress-time\"],\n  data() {\n    return {\n      isPlaying: false,\n      duration: this.convertTimeMMSS(0),\n      playedTime: this.convertTimeMMSS(0),\n      progress: 0\n    };\n  },\n  computed: {\n    playerUniqId() {\n      return `audio-player${this.messageId}`;\n    },\n    audioSource() {\n      if (this.src)\n        return this.src;\n      this.resetProgress();\n      return null;\n    }\n  },\n  mounted() {\n    this.player = this.$el.querySelector(\"#\" + this.playerUniqId);\n    this.player.addEventListener(\"ended\", () => {\n      this.isPlaying = false;\n    });\n    this.player.addEventListener(\"loadeddata\", () => {\n      this.resetProgress();\n      this.duration = this.convertTimeMMSS(this.player.duration);\n      this.updateProgressTime();\n    });\n    this.player.addEventListener(\"timeupdate\", this.onTimeUpdate);\n  },\n  methods: {\n    convertTimeMMSS(seconds) {\n      return new Date(seconds * 1e3).toISOString().substr(14, 5);\n    },\n    playback() {\n      if (this.messageSelectionEnabled || !this.audioSource)\n        return;\n      if (this.isPlaying)\n        this.player.pause();\n      else\n        setTimeout(() => this.player.play());\n      this.isPlaying = !this.isPlaying;\n    },\n    resetProgress() {\n      if (this.isPlaying)\n        this.player.pause();\n      this.duration = this.convertTimeMMSS(0);\n      this.playedTime = this.convertTimeMMSS(0);\n      this.progress = 0;\n      this.isPlaying = false;\n      this.updateProgressTime();\n    },\n    onTimeUpdate() {\n      this.playedTime = this.convertTimeMMSS(this.player.currentTime);\n      this.progress = this.player.currentTime / this.player.duration * 100;\n      this.updateProgressTime();\n    },\n    onUpdateProgress(pos) {\n      if (pos)\n        this.player.currentTime = pos * this.player.duration;\n    },\n    updateProgressTime() {\n      this.$emit(\n        \"update-progress-time\",\n        this.progress > 1 ? this.playedTime : this.duration\n      );\n    }\n  }\n};\nconst _hoisted_1$f = { class: \"vac-audio-player\" };\nconst _hoisted_2$d = [\"id\", \"src\"];\nfunction _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_audio_control = resolveComponent(\"audio-control\");\n  return openBlock(), createElementBlock(\"div\", null, [\n    createBaseVNode(\"div\", _hoisted_1$f, [\n      createBaseVNode(\"div\", {\n        class: \"vac-svg-button\",\n        onClick: _cache[0] || (_cache[0] = (...args) => $options.playback && $options.playback(...args))\n      }, [\n        $data.isPlaying ? renderSlot(_ctx.$slots, \"audio-pause-icon_\" + $props.messageId, { key: 0 }, () => [\n          createVNode(_component_svg_icon, { name: \"audio-pause\" })\n        ]) : renderSlot(_ctx.$slots, \"audio-play-icon_\" + $props.messageId, { key: 1 }, () => [\n          createVNode(_component_svg_icon, { name: \"audio-play\" })\n        ])\n      ]),\n      createVNode(_component_audio_control, {\n        percentage: $data.progress,\n        \"message-selection-enabled\": $props.messageSelectionEnabled,\n        onChangeLinehead: $options.onUpdateProgress,\n        onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", $event))\n      }, null, 8, [\"percentage\", \"message-selection-enabled\", \"onChangeLinehead\"]),\n      createBaseVNode(\"audio\", {\n        id: $options.playerUniqId,\n        src: $options.audioSource\n      }, null, 8, _hoisted_2$d)\n    ])\n  ]);\n}\nvar AudioPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$f]]);\nconst _sfc_main$e = {\n  name: \"RoomMessageReply\",\n  components: {\n    SvgIcon,\n    FormatMessage,\n    AudioPlayer\n  },\n  props: {\n    room: { type: Object, required: true },\n    messageReply: { type: Object, default: null },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true }\n  },\n  emits: [\"reset-message\"],\n  computed: {\n    firstFile() {\n      var _a, _b;\n      return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.messageReply.files[0] : {};\n    },\n    isImage() {\n      return isImageFile(this.firstFile);\n    },\n    isVideo() {\n      return isVideoFile(this.firstFile);\n    },\n    isAudio() {\n      return isAudioFile(this.firstFile);\n    },\n    isOtherFile() {\n      var _a, _b;\n      return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) && !this.isAudio && !this.isVideo && !this.isImage;\n    }\n  }\n};\nconst _hoisted_1$e = {\n  key: 0,\n  class: \"vac-reply-container\"\n};\nconst _hoisted_2$c = { class: \"vac-reply-box\" };\nconst _hoisted_3$b = { class: \"vac-reply-info\" };\nconst _hoisted_4$b = { class: \"vac-reply-username\" };\nconst _hoisted_5$8 = { class: \"vac-reply-content\" };\nconst _hoisted_6$4 = [\"src\"];\nconst _hoisted_7$4 = {\n  key: 1,\n  controls: \"\",\n  class: \"vac-image-reply\"\n};\nconst _hoisted_8$2 = [\"src\"];\nconst _hoisted_9$2 = {\n  key: 3,\n  class: \"vac-image-reply vac-file-container\"\n};\nconst _hoisted_10$2 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_11$1 = {\n  key: 0,\n  class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_12$1 = { class: \"vac-icon-reply\" };\nfunction _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_format_message = resolveComponent(\"format-message\");\n  const _component_audio_player = resolveComponent(\"audio-player\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n    default: withCtx(() => [\n      $props.messageReply ? (openBlock(), createElementBlock(\"div\", _hoisted_1$e, [\n        createBaseVNode(\"div\", _hoisted_2$c, [\n          createBaseVNode(\"div\", _hoisted_3$b, [\n            createBaseVNode(\"div\", _hoisted_4$b, toDisplayString($props.messageReply.username), 1),\n            createBaseVNode(\"div\", _hoisted_5$8, [\n              createVNode(_component_format_message, {\n                \"message-id\": $props.messageReply._id,\n                content: $props.messageReply.content,\n                users: $props.room.users,\n                \"text-formatting\": $props.textFormatting,\n                \"link-options\": $props.linkOptions,\n                reply: true\n              }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n            ])\n          ]),\n          $options.isImage ? (openBlock(), createElementBlock(\"img\", {\n            key: 0,\n            src: $options.firstFile.url,\n            class: \"vac-image-reply\"\n          }, null, 8, _hoisted_6$4)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", _hoisted_7$4, [\n            createBaseVNode(\"source\", {\n              src: $options.firstFile.url\n            }, null, 8, _hoisted_8$2)\n          ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n            key: 2,\n            src: $options.firstFile.url,\n            \"message-selection-enabled\": false,\n            class: \"vac-audio-reply\"\n          }, createSlots({ _: 2 }, [\n            renderList(_ctx.$slots, (idx, name) => {\n              return {\n                name,\n                fn: withCtx((data) => [\n                  renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                ])\n              };\n            })\n          ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_9$2, [\n            createBaseVNode(\"div\", null, [\n              renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n                createVNode(_component_svg_icon, { name: \"file\" })\n              ])\n            ]),\n            createBaseVNode(\"div\", _hoisted_10$2, toDisplayString($options.firstFile.name), 1),\n            $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_11$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n          ])) : createCommentVNode(\"\", true)\n        ]),\n        createBaseVNode(\"div\", _hoisted_12$1, [\n          createBaseVNode(\"div\", {\n            class: \"vac-svg-button\",\n            onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"reset-message\"))\n          }, [\n            renderSlot(_ctx.$slots, \"reply-close-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"close-outline\" })\n            ])\n          ])\n        ])\n      ])) : createCommentVNode(\"\", true)\n    ]),\n    _: 3\n  });\n}\nvar RoomMessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$e]]);\nconst _sfc_main$d = {\n  name: \"RoomUsersTag\",\n  props: {\n    filteredUsersTag: { type: Array, required: true },\n    selectItem: { type: Boolean, default: null },\n    activeUpOrDown: { type: Number, default: null }\n  },\n  emits: [\"select-user-tag\", \"activate-item\"],\n  data() {\n    return {\n      activeItem: null\n    };\n  },\n  watch: {\n    filteredUsersTag(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem(val) {\n      if (val) {\n        this.$emit(\"select-user-tag\", this.filteredUsersTag[this.activeItem]);\n      }\n    },\n    activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredUsersTag.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n      this.$emit(\"activate-item\");\n    }\n  }\n};\nconst _hoisted_1$d = {\n  key: 0,\n  class: \"vac-tags-container\"\n};\nconst _hoisted_2$b = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$a = { class: \"vac-tags-info\" };\nconst _hoisted_4$a = { class: \"vac-tags-username\" };\nfunction _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n    default: withCtx(() => [\n      $props.filteredUsersTag.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$d, [\n        (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredUsersTag, (user, index) => {\n          return openBlock(), createElementBlock(\"div\", {\n            key: user._id,\n            class: normalizeClass([\"vac-tags-box\", { \"vac-tags-box-active\": index === $data.activeItem }]),\n            onMouseover: ($event) => $data.activeItem = index,\n            onClick: ($event) => _ctx.$emit(\"select-user-tag\", user)\n          }, [\n            createBaseVNode(\"div\", _hoisted_3$a, [\n              user.avatar ? (openBlock(), createElementBlock(\"div\", {\n                key: 0,\n                class: \"vac-avatar vac-tags-avatar\",\n                style: normalizeStyle({ \"background-image\": `url('${user.avatar}')` })\n              }, null, 4)) : createCommentVNode(\"\", true),\n              createBaseVNode(\"div\", _hoisted_4$a, toDisplayString(user.username), 1)\n            ])\n          ], 42, _hoisted_2$b);\n        }), 128))\n      ])) : createCommentVNode(\"\", true)\n    ]),\n    _: 1\n  });\n}\nvar RoomUsersTag = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$d]]);\nconst _sfc_main$c = {\n  name: \"RoomEmojis\",\n  props: {\n    filteredEmojis: { type: Array, required: true },\n    selectItem: { type: Boolean, default: null },\n    activeUpOrDown: { type: Number, default: null }\n  },\n  emits: [\"select-emoji\", \"activate-item\"],\n  data() {\n    return {\n      activeItem: null\n    };\n  },\n  watch: {\n    filteredEmojis(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem(val) {\n      if (val) {\n        this.$emit(\"select-emoji\", this.filteredEmojis[this.activeItem]);\n      }\n    },\n    activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredEmojis.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n      this.$emit(\"activate-item\");\n    }\n  }\n};\nconst _hoisted_1$c = {\n  key: 0,\n  class: \"vac-emojis-container\"\n};\nconst _hoisted_2$a = [\"onMouseover\", \"onClick\"];\nfunction _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n    default: withCtx(() => [\n      $props.filteredEmojis.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n        (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredEmojis, (emoji, index) => {\n          return openBlock(), createElementBlock(\"div\", {\n            key: emoji,\n            class: normalizeClass([\"vac-emoji-element\", { \"vac-emoji-element-active\": index === $data.activeItem }]),\n            onMouseover: ($event) => $data.activeItem = index,\n            onClick: ($event) => _ctx.$emit(\"select-emoji\", emoji)\n          }, toDisplayString(emoji), 43, _hoisted_2$a);\n        }), 128))\n      ])) : createCommentVNode(\"\", true)\n    ]),\n    _: 1\n  });\n}\nvar RoomEmojis = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$c]]);\nconst _sfc_main$b = {\n  name: \"RoomTemplatesText\",\n  props: {\n    filteredTemplatesText: { type: Array, required: true },\n    selectItem: { type: Boolean, default: null },\n    activeUpOrDown: { type: Number, default: null }\n  },\n  emits: [\"select-template-text\", \"activate-item\"],\n  data() {\n    return {\n      activeItem: null\n    };\n  },\n  watch: {\n    filteredTemplatesText(val, oldVal) {\n      if (!oldVal.length || val.length !== oldVal.length) {\n        this.activeItem = 0;\n      }\n    },\n    selectItem(val) {\n      if (val) {\n        this.$emit(\n          \"select-template-text\",\n          this.filteredTemplatesText[this.activeItem]\n        );\n      }\n    },\n    activeUpOrDown() {\n      if (this.activeUpOrDown > 0 && this.activeItem < this.filteredTemplatesText.length - 1) {\n        this.activeItem++;\n      } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n        this.activeItem--;\n      }\n      this.$emit(\"activate-item\");\n    }\n  }\n};\nconst _hoisted_1$b = {\n  key: 0,\n  class: \"vac-template-container vac-app-box-shadow\"\n};\nconst _hoisted_2$9 = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$9 = { class: \"vac-template-info\" };\nconst _hoisted_4$9 = { class: \"vac-template-tag\" };\nconst _hoisted_5$7 = { class: \"vac-template-text\" };\nfunction _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n    default: withCtx(() => [\n      $props.filteredTemplatesText.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$b, [\n        (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredTemplatesText, (template, index) => {\n          return openBlock(), createElementBlock(\"div\", {\n            key: index,\n            class: normalizeClass([\"vac-template-box\", { \"vac-template-active\": index === $data.activeItem }]),\n            onMouseover: ($event) => $data.activeItem = index,\n            onClick: ($event) => _ctx.$emit(\"select-template-text\", template)\n          }, [\n            createBaseVNode(\"div\", _hoisted_3$9, [\n              createBaseVNode(\"div\", _hoisted_4$9, \" /\" + toDisplayString(template.tag), 1),\n              createBaseVNode(\"div\", _hoisted_5$7, toDisplayString(template.text), 1)\n            ])\n          ], 42, _hoisted_2$9);\n        }), 128))\n      ])) : createCommentVNode(\"\", true)\n    ]),\n    _: 1\n  });\n}\nvar RoomTemplatesText = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$b]]);\nfunction new_byte$4(count) {\n  return new Int8Array(count);\n}\nfunction new_short(count) {\n  return new Int16Array(count);\n}\nfunction new_int$d(count) {\n  return new Int32Array(count);\n}\nfunction new_float$f(count) {\n  return new Float32Array(count);\n}\nfunction new_double$1(count) {\n  return new Float64Array(count);\n}\nfunction new_float_n$6(args) {\n  if (args.length == 1) {\n    return new_float$f(args[0]);\n  }\n  var sz = args[0];\n  args = args.slice(1);\n  var A = [];\n  for (var i = 0; i < sz; i++) {\n    A.push(new_float_n$6(args));\n  }\n  return A;\n}\nfunction new_int_n$2(args) {\n  if (args.length == 1) {\n    return new_int$d(args[0]);\n  }\n  var sz = args[0];\n  args = args.slice(1);\n  var A = [];\n  for (var i = 0; i < sz; i++) {\n    A.push(new_int_n$2(args));\n  }\n  return A;\n}\nfunction new_short_n$1(args) {\n  if (args.length == 1) {\n    return new_short(args[0]);\n  }\n  var sz = args[0];\n  args = args.slice(1);\n  var A = [];\n  for (var i = 0; i < sz; i++) {\n    A.push(new_short_n$1(args));\n  }\n  return A;\n}\nfunction new_array_n$1(args) {\n  if (args.length == 1) {\n    return new Array(args[0]);\n  }\n  var sz = args[0];\n  args = args.slice(1);\n  var A = [];\n  for (var i = 0; i < sz; i++) {\n    A.push(new_array_n$1(args));\n  }\n  return A;\n}\nvar Arrays$7 = {};\nArrays$7.fill = function(a, fromIndex, toIndex, val) {\n  if (arguments.length == 2) {\n    for (var i = 0; i < a.length; i++) {\n      a[i] = arguments[1];\n    }\n  } else {\n    for (var i = fromIndex; i < toIndex; i++) {\n      a[i] = val;\n    }\n  }\n};\nvar System$a = {};\nSystem$a.arraycopy = function(src, srcPos, dest, destPos, length) {\n  var srcEnd = srcPos + length;\n  while (srcPos < srcEnd)\n    dest[destPos++] = src[srcPos++];\n};\nSystem$a.out = {};\nSystem$a.out.println = function(message) {\n  console.log(message);\n};\nSystem$a.out.printf = function() {\n  console.log.apply(console, arguments);\n};\nvar Util$5 = {};\nUtil$5.SQRT2 = 1.4142135623730951;\nUtil$5.FAST_LOG10 = function(x) {\n  return Math.log10(x);\n};\nUtil$5.FAST_LOG10_X = function(x, y) {\n  return Math.log10(x) * y;\n};\nfunction ShortBlock$3(ordinal) {\n  this.ordinal = ordinal;\n}\nShortBlock$3.short_block_allowed = new ShortBlock$3(0);\nShortBlock$3.short_block_coupled = new ShortBlock$3(1);\nShortBlock$3.short_block_dispensed = new ShortBlock$3(2);\nShortBlock$3.short_block_forced = new ShortBlock$3(3);\nvar Float$2 = {};\nFloat$2.MAX_VALUE = 34028235e31;\nfunction VbrMode$7(ordinal) {\n  this.ordinal = ordinal;\n}\nVbrMode$7.vbr_off = new VbrMode$7(0);\nVbrMode$7.vbr_mt = new VbrMode$7(1);\nVbrMode$7.vbr_rh = new VbrMode$7(2);\nVbrMode$7.vbr_abr = new VbrMode$7(3);\nVbrMode$7.vbr_mtrh = new VbrMode$7(4);\nVbrMode$7.vbr_default = VbrMode$7.vbr_mtrh;\nvar assert$b = function(x) {\n};\nvar common = {\n  System: System$a,\n  VbrMode: VbrMode$7,\n  Float: Float$2,\n  ShortBlock: ShortBlock$3,\n  Util: Util$5,\n  Arrays: Arrays$7,\n  new_array_n: new_array_n$1,\n  new_byte: new_byte$4,\n  new_double: new_double$1,\n  new_float: new_float$f,\n  new_float_n: new_float_n$6,\n  new_int: new_int$d,\n  new_int_n: new_int_n$2,\n  new_short,\n  new_short_n: new_short_n$1,\n  assert: assert$b\n};\nvar System$9 = common.System;\nvar Util$4 = common.Util;\nvar Arrays$6 = common.Arrays;\nvar new_float$e = common.new_float;\nfunction NewMDCT() {\n  var enwindow = [\n    -477e-9 * 0.740951125354959 / 2384e-9,\n    103951e-9 * 0.740951125354959 / 2384e-9,\n    953674e-9 * 0.740951125354959 / 2384e-9,\n    2841473e-9 * 0.740951125354959 / 2384e-9,\n    0.035758972 * 0.740951125354959 / 2384e-9,\n    3401756e-9 * 0.740951125354959 / 2384e-9,\n    983715e-9 * 0.740951125354959 / 2384e-9,\n    99182e-9 * 0.740951125354959 / 2384e-9,\n    12398e-9 * 0.740951125354959 / 2384e-9,\n    191212e-9 * 0.740951125354959 / 2384e-9,\n    2283096e-9 * 0.740951125354959 / 2384e-9,\n    0.016994476 * 0.740951125354959 / 2384e-9,\n    -0.018756866 * 0.740951125354959 / 2384e-9,\n    -2630711e-9 * 0.740951125354959 / 2384e-9,\n    -247478e-9 * 0.740951125354959 / 2384e-9,\n    -14782e-9 * 0.740951125354959 / 2384e-9,\n    0.9063471690191471,\n    0.1960342806591213,\n    -477e-9 * 0.773010453362737 / 2384e-9,\n    105858e-9 * 0.773010453362737 / 2384e-9,\n    930786e-9 * 0.773010453362737 / 2384e-9,\n    2521515e-9 * 0.773010453362737 / 2384e-9,\n    0.035694122 * 0.773010453362737 / 2384e-9,\n    3643036e-9 * 0.773010453362737 / 2384e-9,\n    991821e-9 * 0.773010453362737 / 2384e-9,\n    96321e-9 * 0.773010453362737 / 2384e-9,\n    11444e-9 * 0.773010453362737 / 2384e-9,\n    165462e-9 * 0.773010453362737 / 2384e-9,\n    2110004e-9 * 0.773010453362737 / 2384e-9,\n    0.016112804 * 0.773010453362737 / 2384e-9,\n    -0.019634247 * 0.773010453362737 / 2384e-9,\n    -2803326e-9 * 0.773010453362737 / 2384e-9,\n    -277042e-9 * 0.773010453362737 / 2384e-9,\n    -16689e-9 * 0.773010453362737 / 2384e-9,\n    0.8206787908286602,\n    0.3901806440322567,\n    -477e-9 * 0.803207531480645 / 2384e-9,\n    107288e-9 * 0.803207531480645 / 2384e-9,\n    902653e-9 * 0.803207531480645 / 2384e-9,\n    2174854e-9 * 0.803207531480645 / 2384e-9,\n    0.035586357 * 0.803207531480645 / 2384e-9,\n    3858566e-9 * 0.803207531480645 / 2384e-9,\n    995159e-9 * 0.803207531480645 / 2384e-9,\n    9346e-8 * 0.803207531480645 / 2384e-9,\n    10014e-9 * 0.803207531480645 / 2384e-9,\n    14019e-8 * 0.803207531480645 / 2384e-9,\n    1937389e-9 * 0.803207531480645 / 2384e-9,\n    0.015233517 * 0.803207531480645 / 2384e-9,\n    -0.020506859 * 0.803207531480645 / 2384e-9,\n    -2974033e-9 * 0.803207531480645 / 2384e-9,\n    -30756e-8 * 0.803207531480645 / 2384e-9,\n    -1812e-8 * 0.803207531480645 / 2384e-9,\n    0.7416505462720353,\n    0.5805693545089249,\n    -477e-9 * 0.831469612302545 / 2384e-9,\n    108242e-9 * 0.831469612302545 / 2384e-9,\n    868797e-9 * 0.831469612302545 / 2384e-9,\n    1800537e-9 * 0.831469612302545 / 2384e-9,\n    0.0354352 * 0.831469612302545 / 2384e-9,\n    4049301e-9 * 0.831469612302545 / 2384e-9,\n    994205e-9 * 0.831469612302545 / 2384e-9,\n    90599e-9 * 0.831469612302545 / 2384e-9,\n    906e-8 * 0.831469612302545 / 2384e-9,\n    116348e-9 * 0.831469612302545 / 2384e-9,\n    1766682e-9 * 0.831469612302545 / 2384e-9,\n    0.014358521 * 0.831469612302545 / 2384e-9,\n    -0.021372318 * 0.831469612302545 / 2384e-9,\n    -314188e-8 * 0.831469612302545 / 2384e-9,\n    -339031e-9 * 0.831469612302545 / 2384e-9,\n    -1955e-8 * 0.831469612302545 / 2384e-9,\n    0.6681786379192989,\n    0.7653668647301797,\n    -477e-9 * 0.857728610000272 / 2384e-9,\n    108719e-9 * 0.857728610000272 / 2384e-9,\n    82922e-8 * 0.857728610000272 / 2384e-9,\n    1399517e-9 * 0.857728610000272 / 2384e-9,\n    0.035242081 * 0.857728610000272 / 2384e-9,\n    421524e-8 * 0.857728610000272 / 2384e-9,\n    989437e-9 * 0.857728610000272 / 2384e-9,\n    87261e-9 * 0.857728610000272 / 2384e-9,\n    8106e-9 * 0.857728610000272 / 2384e-9,\n    93937e-9 * 0.857728610000272 / 2384e-9,\n    1597881e-9 * 0.857728610000272 / 2384e-9,\n    0.013489246 * 0.857728610000272 / 2384e-9,\n    -0.022228718 * 0.857728610000272 / 2384e-9,\n    -3306866e-9 * 0.857728610000272 / 2384e-9,\n    -371456e-9 * 0.857728610000272 / 2384e-9,\n    -21458e-9 * 0.857728610000272 / 2384e-9,\n    0.5993769336819237,\n    0.9427934736519954,\n    -477e-9 * 0.881921264348355 / 2384e-9,\n    108719e-9 * 0.881921264348355 / 2384e-9,\n    78392e-8 * 0.881921264348355 / 2384e-9,\n    971317e-9 * 0.881921264348355 / 2384e-9,\n    0.035007 * 0.881921264348355 / 2384e-9,\n    4357815e-9 * 0.881921264348355 / 2384e-9,\n    980854e-9 * 0.881921264348355 / 2384e-9,\n    83923e-9 * 0.881921264348355 / 2384e-9,\n    7629e-9 * 0.881921264348355 / 2384e-9,\n    72956e-9 * 0.881921264348355 / 2384e-9,\n    1432419e-9 * 0.881921264348355 / 2384e-9,\n    0.012627602 * 0.881921264348355 / 2384e-9,\n    -0.02307415 * 0.881921264348355 / 2384e-9,\n    -3467083e-9 * 0.881921264348355 / 2384e-9,\n    -404358e-9 * 0.881921264348355 / 2384e-9,\n    -23365e-9 * 0.881921264348355 / 2384e-9,\n    0.5345111359507916,\n    1.111140466039205,\n    -954e-9 * 0.903989293123443 / 2384e-9,\n    108242e-9 * 0.903989293123443 / 2384e-9,\n    731945e-9 * 0.903989293123443 / 2384e-9,\n    515938e-9 * 0.903989293123443 / 2384e-9,\n    0.034730434 * 0.903989293123443 / 2384e-9,\n    4477024e-9 * 0.903989293123443 / 2384e-9,\n    968933e-9 * 0.903989293123443 / 2384e-9,\n    80585e-9 * 0.903989293123443 / 2384e-9,\n    6676e-9 * 0.903989293123443 / 2384e-9,\n    52929e-9 * 0.903989293123443 / 2384e-9,\n    1269817e-9 * 0.903989293123443 / 2384e-9,\n    0.011775017 * 0.903989293123443 / 2384e-9,\n    -0.023907185 * 0.903989293123443 / 2384e-9,\n    -3622532e-9 * 0.903989293123443 / 2384e-9,\n    -438213e-9 * 0.903989293123443 / 2384e-9,\n    -25272e-9 * 0.903989293123443 / 2384e-9,\n    0.4729647758913199,\n    1.268786568327291,\n    -954e-9 * 0.9238795325112867 / 2384e-9,\n    106812e-9 * 0.9238795325112867 / 2384e-9,\n    674248e-9 * 0.9238795325112867 / 2384e-9,\n    33379e-9 * 0.9238795325112867 / 2384e-9,\n    0.034412861 * 0.9238795325112867 / 2384e-9,\n    4573822e-9 * 0.9238795325112867 / 2384e-9,\n    954151e-9 * 0.9238795325112867 / 2384e-9,\n    76771e-9 * 0.9238795325112867 / 2384e-9,\n    6199e-9 * 0.9238795325112867 / 2384e-9,\n    34332e-9 * 0.9238795325112867 / 2384e-9,\n    1111031e-9 * 0.9238795325112867 / 2384e-9,\n    0.010933399 * 0.9238795325112867 / 2384e-9,\n    -0.024725437 * 0.9238795325112867 / 2384e-9,\n    -3771782e-9 * 0.9238795325112867 / 2384e-9,\n    -472546e-9 * 0.9238795325112867 / 2384e-9,\n    -27657e-9 * 0.9238795325112867 / 2384e-9,\n    0.41421356237309503,\n    1.414213562373095,\n    -954e-9 * 0.941544065183021 / 2384e-9,\n    105381e-9 * 0.941544065183021 / 2384e-9,\n    610352e-9 * 0.941544065183021 / 2384e-9,\n    -475883e-9 * 0.941544065183021 / 2384e-9,\n    0.03405571 * 0.941544065183021 / 2384e-9,\n    4649162e-9 * 0.941544065183021 / 2384e-9,\n    935555e-9 * 0.941544065183021 / 2384e-9,\n    73433e-9 * 0.941544065183021 / 2384e-9,\n    5245e-9 * 0.941544065183021 / 2384e-9,\n    17166e-9 * 0.941544065183021 / 2384e-9,\n    956535e-9 * 0.941544065183021 / 2384e-9,\n    0.010103703 * 0.941544065183021 / 2384e-9,\n    -0.025527 * 0.941544065183021 / 2384e-9,\n    -3914356e-9 * 0.941544065183021 / 2384e-9,\n    -507355e-9 * 0.941544065183021 / 2384e-9,\n    -30041e-9 * 0.941544065183021 / 2384e-9,\n    0.3578057213145241,\n    1.546020906725474,\n    -954e-9 * 0.956940335732209 / 2384e-9,\n    10252e-8 * 0.956940335732209 / 2384e-9,\n    539303e-9 * 0.956940335732209 / 2384e-9,\n    -1011848e-9 * 0.956940335732209 / 2384e-9,\n    0.033659935 * 0.956940335732209 / 2384e-9,\n    4703045e-9 * 0.956940335732209 / 2384e-9,\n    915051e-9 * 0.956940335732209 / 2384e-9,\n    70095e-9 * 0.956940335732209 / 2384e-9,\n    4768e-9 * 0.956940335732209 / 2384e-9,\n    954e-9 * 0.956940335732209 / 2384e-9,\n    806808e-9 * 0.956940335732209 / 2384e-9,\n    9287834e-9 * 0.956940335732209 / 2384e-9,\n    -0.026310921 * 0.956940335732209 / 2384e-9,\n    -4048824e-9 * 0.956940335732209 / 2384e-9,\n    -542164e-9 * 0.956940335732209 / 2384e-9,\n    -32425e-9 * 0.956940335732209 / 2384e-9,\n    0.3033466836073424,\n    1.66293922460509,\n    -1431e-9 * 0.970031253194544 / 2384e-9,\n    99182e-9 * 0.970031253194544 / 2384e-9,\n    462532e-9 * 0.970031253194544 / 2384e-9,\n    -1573563e-9 * 0.970031253194544 / 2384e-9,\n    0.033225536 * 0.970031253194544 / 2384e-9,\n    4737377e-9 * 0.970031253194544 / 2384e-9,\n    891685e-9 * 0.970031253194544 / 2384e-9,\n    6628e-8 * 0.970031253194544 / 2384e-9,\n    4292e-9 * 0.970031253194544 / 2384e-9,\n    -13828e-9 * 0.970031253194544 / 2384e-9,\n    66185e-8 * 0.970031253194544 / 2384e-9,\n    8487225e-9 * 0.970031253194544 / 2384e-9,\n    -0.02707386 * 0.970031253194544 / 2384e-9,\n    -4174709e-9 * 0.970031253194544 / 2384e-9,\n    -576973e-9 * 0.970031253194544 / 2384e-9,\n    -34809e-9 * 0.970031253194544 / 2384e-9,\n    0.2504869601913055,\n    1.76384252869671,\n    -1431e-9 * 0.98078528040323 / 2384e-9,\n    95367e-9 * 0.98078528040323 / 2384e-9,\n    378609e-9 * 0.98078528040323 / 2384e-9,\n    -2161503e-9 * 0.98078528040323 / 2384e-9,\n    0.032754898 * 0.98078528040323 / 2384e-9,\n    4752159e-9 * 0.98078528040323 / 2384e-9,\n    866413e-9 * 0.98078528040323 / 2384e-9,\n    62943e-9 * 0.98078528040323 / 2384e-9,\n    3815e-9 * 0.98078528040323 / 2384e-9,\n    -2718e-8 * 0.98078528040323 / 2384e-9,\n    522137e-9 * 0.98078528040323 / 2384e-9,\n    7703304e-9 * 0.98078528040323 / 2384e-9,\n    -0.027815342 * 0.98078528040323 / 2384e-9,\n    -4290581e-9 * 0.98078528040323 / 2384e-9,\n    -611782e-9 * 0.98078528040323 / 2384e-9,\n    -3767e-8 * 0.98078528040323 / 2384e-9,\n    0.198912367379658,\n    1.847759065022573,\n    -1907e-9 * 0.989176509964781 / 2384e-9,\n    90122e-9 * 0.989176509964781 / 2384e-9,\n    288486e-9 * 0.989176509964781 / 2384e-9,\n    -2774239e-9 * 0.989176509964781 / 2384e-9,\n    0.03224802 * 0.989176509964781 / 2384e-9,\n    4748821e-9 * 0.989176509964781 / 2384e-9,\n    838757e-9 * 0.989176509964781 / 2384e-9,\n    59605e-9 * 0.989176509964781 / 2384e-9,\n    3338e-9 * 0.989176509964781 / 2384e-9,\n    -39577e-9 * 0.989176509964781 / 2384e-9,\n    388145e-9 * 0.989176509964781 / 2384e-9,\n    6937027e-9 * 0.989176509964781 / 2384e-9,\n    -0.028532982 * 0.989176509964781 / 2384e-9,\n    -4395962e-9 * 0.989176509964781 / 2384e-9,\n    -646591e-9 * 0.989176509964781 / 2384e-9,\n    -40531e-9 * 0.989176509964781 / 2384e-9,\n    0.1483359875383474,\n    1.913880671464418,\n    -1907e-9 * 0.995184726672197 / 2384e-9,\n    844e-7 * 0.995184726672197 / 2384e-9,\n    191689e-9 * 0.995184726672197 / 2384e-9,\n    -3411293e-9 * 0.995184726672197 / 2384e-9,\n    0.03170681 * 0.995184726672197 / 2384e-9,\n    4728317e-9 * 0.995184726672197 / 2384e-9,\n    809669e-9 * 0.995184726672197 / 2384e-9,\n    5579e-8 * 0.995184726672197 / 2384e-9,\n    3338e-9 * 0.995184726672197 / 2384e-9,\n    -50545e-9 * 0.995184726672197 / 2384e-9,\n    259876e-9 * 0.995184726672197 / 2384e-9,\n    6189346e-9 * 0.995184726672197 / 2384e-9,\n    -0.029224873 * 0.995184726672197 / 2384e-9,\n    -4489899e-9 * 0.995184726672197 / 2384e-9,\n    -680923e-9 * 0.995184726672197 / 2384e-9,\n    -43392e-9 * 0.995184726672197 / 2384e-9,\n    0.09849140335716425,\n    1.961570560806461,\n    -2384e-9 * 0.998795456205172 / 2384e-9,\n    77724e-9 * 0.998795456205172 / 2384e-9,\n    88215e-9 * 0.998795456205172 / 2384e-9,\n    -4072189e-9 * 0.998795456205172 / 2384e-9,\n    0.031132698 * 0.998795456205172 / 2384e-9,\n    4691124e-9 * 0.998795456205172 / 2384e-9,\n    779152e-9 * 0.998795456205172 / 2384e-9,\n    52929e-9 * 0.998795456205172 / 2384e-9,\n    2861e-9 * 0.998795456205172 / 2384e-9,\n    -60558e-9 * 0.998795456205172 / 2384e-9,\n    137329e-9 * 0.998795456205172 / 2384e-9,\n    546217e-8 * 0.998795456205172 / 2384e-9,\n    -0.02989006 * 0.998795456205172 / 2384e-9,\n    -4570484e-9 * 0.998795456205172 / 2384e-9,\n    -714302e-9 * 0.998795456205172 / 2384e-9,\n    -46253e-9 * 0.998795456205172 / 2384e-9,\n    0.04912684976946725,\n    1.990369453344394,\n    0.035780907 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    0.017876148 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    3134727e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    2457142e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    971317e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    218868e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    101566e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    13828e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n    0.030526638 / 2384e-9,\n    4638195e-9 / 2384e-9,\n    747204e-9 / 2384e-9,\n    49591e-9 / 2384e-9,\n    4756451e-9 / 2384e-9,\n    21458e-9 / 2384e-9,\n    -69618e-9 / 2384e-9\n  ];\n  var NS = 12;\n  var NL = 36;\n  var win = [\n    [\n      2382191739347913e-28,\n      6423305872147834e-28,\n      9400849094049688e-28,\n      1122435026096556e-27,\n      1183840321267481e-27,\n      1122435026096556e-27,\n      940084909404969e-27,\n      6423305872147839e-28,\n      2382191739347918e-28,\n      5456116108943412e-27,\n      4878985199565852e-27,\n      4240448995017367e-27,\n      3559909094758252e-27,\n      2858043359288075e-27,\n      2156177623817898e-27,\n      1475637723558783e-27,\n      8371015190102974e-28,\n      2599706096327376e-28,\n      -5456116108943412e-27,\n      -4878985199565852e-27,\n      -4240448995017367e-27,\n      -3559909094758252e-27,\n      -2858043359288076e-27,\n      -2156177623817898e-27,\n      -1475637723558783e-27,\n      -8371015190102975e-28,\n      -2599706096327376e-28,\n      -2382191739347923e-28,\n      -6423305872147843e-28,\n      -9400849094049696e-28,\n      -1122435026096556e-27,\n      -1183840321267481e-27,\n      -1122435026096556e-27,\n      -9400849094049694e-28,\n      -642330587214784e-27,\n      -2382191739347918e-28\n    ],\n    [\n      2382191739347913e-28,\n      6423305872147834e-28,\n      9400849094049688e-28,\n      1122435026096556e-27,\n      1183840321267481e-27,\n      1122435026096556e-27,\n      9400849094049688e-28,\n      6423305872147841e-28,\n      2382191739347918e-28,\n      5456116108943413e-27,\n      4878985199565852e-27,\n      4240448995017367e-27,\n      3559909094758253e-27,\n      2858043359288075e-27,\n      2156177623817898e-27,\n      1475637723558782e-27,\n      8371015190102975e-28,\n      2599706096327376e-28,\n      -5461314069809755e-27,\n      -4921085770524055e-27,\n      -4343405037091838e-27,\n      -3732668368707687e-27,\n      -3093523840190885e-27,\n      -2430835727329465e-27,\n      -1734679010007751e-27,\n      -974825365660928e-27,\n      -2797435120168326e-28,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      -2283748241799531e-28,\n      -4037858874020686e-28,\n      -2146547464825323e-28\n    ],\n    [\n      0.1316524975873958,\n      0.414213562373095,\n      0.7673269879789602,\n      1.091308501069271,\n      1.303225372841206,\n      1.56968557711749,\n      1.920982126971166,\n      2.414213562373094,\n      3.171594802363212,\n      4.510708503662055,\n      7.595754112725146,\n      22.90376554843115,\n      0.984807753012208,\n      0.6427876096865394,\n      0.3420201433256688,\n      0.9396926207859084,\n      -0.1736481776669303,\n      -0.7660444431189779,\n      0.8660254037844387,\n      0.5,\n      -0.5144957554275265,\n      -0.4717319685649723,\n      -0.3133774542039019,\n      -0.1819131996109812,\n      -0.09457419252642064,\n      -0.04096558288530405,\n      -0.01419856857247115,\n      -0.003699974673760037,\n      0.8574929257125442,\n      0.8817419973177052,\n      0.9496286491027329,\n      0.9833145924917901,\n      0.9955178160675857,\n      0.9991605581781475,\n      0.999899195244447,\n      0.9999931550702802\n    ],\n    [\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      2283748241799531e-28,\n      4037858874020686e-28,\n      2146547464825323e-28,\n      5461314069809755e-27,\n      4921085770524055e-27,\n      4343405037091838e-27,\n      3732668368707687e-27,\n      3093523840190885e-27,\n      2430835727329466e-27,\n      1734679010007751e-27,\n      974825365660928e-27,\n      2797435120168326e-28,\n      -5456116108943413e-27,\n      -4878985199565852e-27,\n      -4240448995017367e-27,\n      -3559909094758253e-27,\n      -2858043359288075e-27,\n      -2156177623817898e-27,\n      -1475637723558782e-27,\n      -8371015190102975e-28,\n      -2599706096327376e-28,\n      -2382191739347913e-28,\n      -6423305872147834e-28,\n      -9400849094049688e-28,\n      -1122435026096556e-27,\n      -1183840321267481e-27,\n      -1122435026096556e-27,\n      -9400849094049688e-28,\n      -6423305872147841e-28,\n      -2382191739347918e-28\n    ]\n  ];\n  var tantab_l = win[Encoder.SHORT_TYPE];\n  var cx = win[Encoder.SHORT_TYPE];\n  var ca = win[Encoder.SHORT_TYPE];\n  var cs = win[Encoder.SHORT_TYPE];\n  var order = [\n    0,\n    1,\n    16,\n    17,\n    8,\n    9,\n    24,\n    25,\n    4,\n    5,\n    20,\n    21,\n    12,\n    13,\n    28,\n    29,\n    2,\n    3,\n    18,\n    19,\n    10,\n    11,\n    26,\n    27,\n    6,\n    7,\n    22,\n    23,\n    14,\n    15,\n    30,\n    31\n  ];\n  function window_subband(x1, x1Pos, a) {\n    var wp = 10;\n    var x2 = x1Pos + 238 - 14 - 286;\n    for (var i = -15; i < 0; i++) {\n      var w, s, t;\n      w = enwindow[wp + -10];\n      s = x1[x2 + -224] * w;\n      t = x1[x1Pos + 224] * w;\n      w = enwindow[wp + -9];\n      s += x1[x2 + -160] * w;\n      t += x1[x1Pos + 160] * w;\n      w = enwindow[wp + -8];\n      s += x1[x2 + -96] * w;\n      t += x1[x1Pos + 96] * w;\n      w = enwindow[wp + -7];\n      s += x1[x2 + -32] * w;\n      t += x1[x1Pos + 32] * w;\n      w = enwindow[wp + -6];\n      s += x1[x2 + 32] * w;\n      t += x1[x1Pos + -32] * w;\n      w = enwindow[wp + -5];\n      s += x1[x2 + 96] * w;\n      t += x1[x1Pos + -96] * w;\n      w = enwindow[wp + -4];\n      s += x1[x2 + 160] * w;\n      t += x1[x1Pos + -160] * w;\n      w = enwindow[wp + -3];\n      s += x1[x2 + 224] * w;\n      t += x1[x1Pos + -224] * w;\n      w = enwindow[wp + -2];\n      s += x1[x1Pos + -256] * w;\n      t -= x1[x2 + 256] * w;\n      w = enwindow[wp + -1];\n      s += x1[x1Pos + -192] * w;\n      t -= x1[x2 + 192] * w;\n      w = enwindow[wp + 0];\n      s += x1[x1Pos + -128] * w;\n      t -= x1[x2 + 128] * w;\n      w = enwindow[wp + 1];\n      s += x1[x1Pos + -64] * w;\n      t -= x1[x2 + 64] * w;\n      w = enwindow[wp + 2];\n      s += x1[x1Pos + 0] * w;\n      t -= x1[x2 + 0] * w;\n      w = enwindow[wp + 3];\n      s += x1[x1Pos + 64] * w;\n      t -= x1[x2 + -64] * w;\n      w = enwindow[wp + 4];\n      s += x1[x1Pos + 128] * w;\n      t -= x1[x2 + -128] * w;\n      w = enwindow[wp + 5];\n      s += x1[x1Pos + 192] * w;\n      t -= x1[x2 + -192] * w;\n      s *= enwindow[wp + 6];\n      w = t - s;\n      a[30 + i * 2] = t + s;\n      a[31 + i * 2] = enwindow[wp + 7] * w;\n      wp += 18;\n      x1Pos--;\n      x2++;\n    }\n    {\n      var s, t, u, v;\n      t = x1[x1Pos + -16] * enwindow[wp + -10];\n      s = x1[x1Pos + -32] * enwindow[wp + -2];\n      t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n      s += x1[x1Pos + -96] * enwindow[wp + -1];\n      t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n      s += x1[x1Pos + -160] * enwindow[wp + 0];\n      t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n      s += x1[x1Pos + -224] * enwindow[wp + 1];\n      t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n      s -= x1[x1Pos + 32] * enwindow[wp + 2];\n      t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n      s -= x1[x1Pos + 96] * enwindow[wp + 3];\n      t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n      s -= x1[x1Pos + 160] * enwindow[wp + 4];\n      t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n      s -= x1[x1Pos + 224];\n      u = s - t;\n      v = s + t;\n      t = a[14];\n      s = a[15] - t;\n      a[31] = v + t;\n      a[30] = u + s;\n      a[15] = u - s;\n      a[14] = v - t;\n    }\n    {\n      var xr;\n      xr = a[28] - a[0];\n      a[0] += a[28];\n      a[28] = xr * enwindow[wp + -2 * 18 + 7];\n      xr = a[29] - a[1];\n      a[1] += a[29];\n      a[29] = xr * enwindow[wp + -2 * 18 + 7];\n      xr = a[26] - a[2];\n      a[2] += a[26];\n      a[26] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = a[27] - a[3];\n      a[3] += a[27];\n      a[27] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = a[24] - a[4];\n      a[4] += a[24];\n      a[24] = xr * enwindow[wp + -6 * 18 + 7];\n      xr = a[25] - a[5];\n      a[5] += a[25];\n      a[25] = xr * enwindow[wp + -6 * 18 + 7];\n      xr = a[22] - a[6];\n      a[6] += a[22];\n      a[22] = xr * Util$4.SQRT2;\n      xr = a[23] - a[7];\n      a[7] += a[23];\n      a[23] = xr * Util$4.SQRT2 - a[7];\n      a[7] -= a[6];\n      a[22] -= a[7];\n      a[23] -= a[22];\n      xr = a[6];\n      a[6] = a[31] - xr;\n      a[31] = a[31] + xr;\n      xr = a[7];\n      a[7] = a[30] - xr;\n      a[30] = a[30] + xr;\n      xr = a[22];\n      a[22] = a[15] - xr;\n      a[15] = a[15] + xr;\n      xr = a[23];\n      a[23] = a[14] - xr;\n      a[14] = a[14] + xr;\n      xr = a[20] - a[8];\n      a[8] += a[20];\n      a[20] = xr * enwindow[wp + -10 * 18 + 7];\n      xr = a[21] - a[9];\n      a[9] += a[21];\n      a[21] = xr * enwindow[wp + -10 * 18 + 7];\n      xr = a[18] - a[10];\n      a[10] += a[18];\n      a[18] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = a[19] - a[11];\n      a[11] += a[19];\n      a[19] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = a[16] - a[12];\n      a[12] += a[16];\n      a[16] = xr * enwindow[wp + -14 * 18 + 7];\n      xr = a[17] - a[13];\n      a[13] += a[17];\n      a[17] = xr * enwindow[wp + -14 * 18 + 7];\n      xr = -a[20] + a[24];\n      a[20] += a[24];\n      a[24] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = -a[21] + a[25];\n      a[21] += a[25];\n      a[25] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = a[4] - a[8];\n      a[4] += a[8];\n      a[8] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = a[5] - a[9];\n      a[5] += a[9];\n      a[9] = xr * enwindow[wp + -12 * 18 + 7];\n      xr = a[0] - a[12];\n      a[0] += a[12];\n      a[12] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = a[1] - a[13];\n      a[1] += a[13];\n      a[13] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = a[16] - a[28];\n      a[16] += a[28];\n      a[28] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = -a[17] + a[29];\n      a[17] += a[29];\n      a[29] = xr * enwindow[wp + -4 * 18 + 7];\n      xr = Util$4.SQRT2 * (a[2] - a[10]);\n      a[2] += a[10];\n      a[10] = xr;\n      xr = Util$4.SQRT2 * (a[3] - a[11]);\n      a[3] += a[11];\n      a[11] = xr;\n      xr = Util$4.SQRT2 * (-a[18] + a[26]);\n      a[18] += a[26];\n      a[26] = xr - a[18];\n      xr = Util$4.SQRT2 * (-a[19] + a[27]);\n      a[19] += a[27];\n      a[27] = xr - a[19];\n      xr = a[2];\n      a[19] -= a[3];\n      a[3] -= xr;\n      a[2] = a[31] - xr;\n      a[31] += xr;\n      xr = a[3];\n      a[11] -= a[19];\n      a[18] -= xr;\n      a[3] = a[30] - xr;\n      a[30] += xr;\n      xr = a[18];\n      a[27] -= a[11];\n      a[19] -= xr;\n      a[18] = a[15] - xr;\n      a[15] += xr;\n      xr = a[19];\n      a[10] -= xr;\n      a[19] = a[14] - xr;\n      a[14] += xr;\n      xr = a[10];\n      a[11] -= xr;\n      a[10] = a[23] - xr;\n      a[23] += xr;\n      xr = a[11];\n      a[26] -= xr;\n      a[11] = a[22] - xr;\n      a[22] += xr;\n      xr = a[26];\n      a[27] -= xr;\n      a[26] = a[7] - xr;\n      a[7] += xr;\n      xr = a[27];\n      a[27] = a[6] - xr;\n      a[6] += xr;\n      xr = Util$4.SQRT2 * (a[0] - a[4]);\n      a[0] += a[4];\n      a[4] = xr;\n      xr = Util$4.SQRT2 * (a[1] - a[5]);\n      a[1] += a[5];\n      a[5] = xr;\n      xr = Util$4.SQRT2 * (a[16] - a[20]);\n      a[16] += a[20];\n      a[20] = xr;\n      xr = Util$4.SQRT2 * (a[17] - a[21]);\n      a[17] += a[21];\n      a[21] = xr;\n      xr = -Util$4.SQRT2 * (a[8] - a[12]);\n      a[8] += a[12];\n      a[12] = xr - a[8];\n      xr = -Util$4.SQRT2 * (a[9] - a[13]);\n      a[9] += a[13];\n      a[13] = xr - a[9];\n      xr = -Util$4.SQRT2 * (a[25] - a[29]);\n      a[25] += a[29];\n      a[29] = xr - a[25];\n      xr = -Util$4.SQRT2 * (a[24] + a[28]);\n      a[24] -= a[28];\n      a[28] = xr - a[24];\n      xr = a[24] - a[16];\n      a[24] = xr;\n      xr = a[20] - xr;\n      a[20] = xr;\n      xr = a[28] - xr;\n      a[28] = xr;\n      xr = a[25] - a[17];\n      a[25] = xr;\n      xr = a[21] - xr;\n      a[21] = xr;\n      xr = a[29] - xr;\n      a[29] = xr;\n      xr = a[17] - a[1];\n      a[17] = xr;\n      xr = a[9] - xr;\n      a[9] = xr;\n      xr = a[25] - xr;\n      a[25] = xr;\n      xr = a[5] - xr;\n      a[5] = xr;\n      xr = a[21] - xr;\n      a[21] = xr;\n      xr = a[13] - xr;\n      a[13] = xr;\n      xr = a[29] - xr;\n      a[29] = xr;\n      xr = a[1] - a[0];\n      a[1] = xr;\n      xr = a[16] - xr;\n      a[16] = xr;\n      xr = a[17] - xr;\n      a[17] = xr;\n      xr = a[8] - xr;\n      a[8] = xr;\n      xr = a[9] - xr;\n      a[9] = xr;\n      xr = a[24] - xr;\n      a[24] = xr;\n      xr = a[25] - xr;\n      a[25] = xr;\n      xr = a[4] - xr;\n      a[4] = xr;\n      xr = a[5] - xr;\n      a[5] = xr;\n      xr = a[20] - xr;\n      a[20] = xr;\n      xr = a[21] - xr;\n      a[21] = xr;\n      xr = a[12] - xr;\n      a[12] = xr;\n      xr = a[13] - xr;\n      a[13] = xr;\n      xr = a[28] - xr;\n      a[28] = xr;\n      xr = a[29] - xr;\n      a[29] = xr;\n      xr = a[0];\n      a[0] += a[31];\n      a[31] -= xr;\n      xr = a[1];\n      a[1] += a[30];\n      a[30] -= xr;\n      xr = a[16];\n      a[16] += a[15];\n      a[15] -= xr;\n      xr = a[17];\n      a[17] += a[14];\n      a[14] -= xr;\n      xr = a[8];\n      a[8] += a[23];\n      a[23] -= xr;\n      xr = a[9];\n      a[9] += a[22];\n      a[22] -= xr;\n      xr = a[24];\n      a[24] += a[7];\n      a[7] -= xr;\n      xr = a[25];\n      a[25] += a[6];\n      a[6] -= xr;\n      xr = a[4];\n      a[4] += a[27];\n      a[27] -= xr;\n      xr = a[5];\n      a[5] += a[26];\n      a[26] -= xr;\n      xr = a[20];\n      a[20] += a[11];\n      a[11] -= xr;\n      xr = a[21];\n      a[21] += a[10];\n      a[10] -= xr;\n      xr = a[12];\n      a[12] += a[19];\n      a[19] -= xr;\n      xr = a[13];\n      a[13] += a[18];\n      a[18] -= xr;\n      xr = a[28];\n      a[28] += a[3];\n      a[3] -= xr;\n      xr = a[29];\n      a[29] += a[2];\n      a[2] -= xr;\n    }\n  }\n  function mdct_short(inout, inoutPos) {\n    for (var l = 0; l < 3; l++) {\n      var tc0, tc1, tc2, ts0, ts1, ts2;\n      ts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0] - inout[inoutPos + 5 * 3];\n      tc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2] - inout[inoutPos + 3 * 3];\n      tc1 = ts0 + tc0;\n      tc2 = ts0 - tc0;\n      ts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0] + inout[inoutPos + 2 * 3];\n      tc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2] + inout[inoutPos + 0 * 3];\n      ts1 = ts0 + tc0;\n      ts2 = -ts0 + tc0;\n      tc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2069978111953089e-26;\n      ts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2069978111953089e-26;\n      inout[inoutPos + 3 * 0] = tc1 * 190752519173728e-25 + tc0;\n      inout[inoutPos + 3 * 5] = -ts1 * 190752519173728e-25 + ts0;\n      tc2 = tc2 * 0.8660254037844387 * 1907525191737281e-26;\n      ts1 = ts1 * 0.5 * 1907525191737281e-26 + ts0;\n      inout[inoutPos + 3 * 1] = tc2 - ts1;\n      inout[inoutPos + 3 * 2] = tc2 + ts1;\n      tc1 = tc1 * 0.5 * 1907525191737281e-26 - tc0;\n      ts2 = ts2 * 0.8660254037844387 * 1907525191737281e-26;\n      inout[inoutPos + 3 * 3] = tc1 + ts2;\n      inout[inoutPos + 3 * 4] = tc1 - ts2;\n      inoutPos++;\n    }\n  }\n  function mdct_long(out, outPos, _in) {\n    var ct, st;\n    {\n      var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n      tc1 = _in[17] - _in[9];\n      tc3 = _in[15] - _in[11];\n      tc4 = _in[14] - _in[12];\n      ts5 = _in[0] + _in[8];\n      ts6 = _in[1] + _in[7];\n      ts7 = _in[2] + _in[6];\n      ts8 = _in[3] + _in[5];\n      out[outPos + 17] = ts5 + ts7 - ts8 - (ts6 - _in[4]);\n      st = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n      ct = (tc1 - tc3 - tc4) * cx[12 + 6];\n      out[outPos + 5] = ct + st;\n      out[outPos + 6] = ct - st;\n      tc2 = (_in[16] - _in[10]) * cx[12 + 6];\n      ts6 = ts6 * cx[12 + 7] + _in[4];\n      ct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n      st = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n      out[outPos + 1] = ct + st;\n      out[outPos + 2] = ct - st;\n      ct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n      st = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n      out[outPos + 9] = ct + st;\n      out[outPos + 10] = ct - st;\n      ct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n      st = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n      out[outPos + 13] = ct + st;\n      out[outPos + 14] = ct - st;\n    }\n    {\n      var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n      ts1 = _in[8] - _in[0];\n      ts3 = _in[6] - _in[2];\n      ts4 = _in[5] - _in[3];\n      tc5 = _in[17] + _in[9];\n      tc6 = _in[16] + _in[10];\n      tc7 = _in[15] + _in[11];\n      tc8 = _in[14] + _in[12];\n      out[outPos + 0] = tc5 + tc7 + tc8 + (tc6 + _in[13]);\n      ct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n      st = (ts1 - ts3 + ts4) * cx[12 + 6];\n      out[outPos + 11] = ct + st;\n      out[outPos + 12] = ct - st;\n      ts2 = (_in[7] - _in[1]) * cx[12 + 6];\n      tc6 = _in[13] - tc6 * cx[12 + 7];\n      ct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n      st = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n      out[outPos + 3] = ct + st;\n      out[outPos + 4] = ct - st;\n      ct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n      st = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n      out[outPos + 7] = ct + st;\n      out[outPos + 8] = ct - st;\n      ct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n      st = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n      out[outPos + 15] = ct + st;\n      out[outPos + 16] = ct - st;\n    }\n  }\n  this.mdct_sub48 = function(gfc, w0, w1) {\n    var wk = w0;\n    var wkPos = 286;\n    for (var ch = 0; ch < gfc.channels_out; ch++) {\n      for (var gr = 0; gr < gfc.mode_gr; gr++) {\n        var band;\n        var gi = gfc.l3_side.tt[gr][ch];\n        var mdct_enc = gi.xr;\n        var mdct_encPos = 0;\n        var samp = gfc.sb_sample[ch][1 - gr];\n        var sampPos = 0;\n        for (var k = 0; k < 18 / 2; k++) {\n          window_subband(wk, wkPos, samp[sampPos]);\n          window_subband(wk, wkPos + 32, samp[sampPos + 1]);\n          sampPos += 2;\n          wkPos += 64;\n          for (band = 1; band < 32; band += 2) {\n            samp[sampPos - 1][band] *= -1;\n          }\n        }\n        for (band = 0; band < 32; band++, mdct_encPos += 18) {\n          var type = gi.block_type;\n          var band0 = gfc.sb_sample[ch][gr];\n          var band1 = gfc.sb_sample[ch][1 - gr];\n          if (gi.mixed_block_flag != 0 && band < 2)\n            type = 0;\n          if (gfc.amp_filter[band] < 1e-12) {\n            Arrays$6.fill(mdct_enc, mdct_encPos + 0, mdct_encPos + 18, 0);\n          } else {\n            if (gfc.amp_filter[band] < 1) {\n              for (var k = 0; k < 18; k++) {\n                band1[k][order[band]] *= gfc.amp_filter[band];\n              }\n            }\n            if (type == Encoder.SHORT_TYPE) {\n              for (var k = -NS / 4; k < 0; k++) {\n                var w = win[Encoder.SHORT_TYPE][k + 3];\n                mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]] * w - band0[8 - k][order[band]];\n                mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]] * w + band0[15 + k][order[band]];\n                mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]] * w - band0[14 - k][order[band]];\n                mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]] * w + band1[3 + k][order[band]];\n                mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]] * w - band1[2 - k][order[band]];\n                mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]] * w + band1[9 + k][order[band]];\n              }\n              mdct_short(mdct_enc, mdct_encPos);\n            } else {\n              var work = new_float$e(18);\n              for (var k = -NL / 4; k < 0; k++) {\n                var a, b;\n                a = win[type][k + 27] * band1[k + 9][order[band]] + win[type][k + 36] * band1[8 - k][order[band]];\n                b = win[type][k + 9] * band0[k + 9][order[band]] - win[type][k + 18] * band0[8 - k][order[band]];\n                work[k + 9] = a - b * tantab_l[3 + k + 9];\n                work[k + 18] = a * tantab_l[3 + k + 9] + b;\n              }\n              mdct_long(mdct_enc, mdct_encPos, work);\n            }\n          }\n          if (type != Encoder.SHORT_TYPE && band != 0) {\n            for (var k = 7; k >= 0; --k) {\n              var bu, bd;\n              bu = mdct_enc[mdct_encPos + k] * ca[20 + k] + mdct_enc[mdct_encPos + -1 - k] * cs[28 + k];\n              bd = mdct_enc[mdct_encPos + k] * cs[28 + k] - mdct_enc[mdct_encPos + -1 - k] * ca[20 + k];\n              mdct_enc[mdct_encPos + -1 - k] = bu;\n              mdct_enc[mdct_encPos + k] = bd;\n            }\n          }\n        }\n      }\n      wk = w1;\n      wkPos = 286;\n      if (gfc.mode_gr == 1) {\n        for (var i = 0; i < 18; i++) {\n          System$9.arraycopy(\n            gfc.sb_sample[ch][1][i],\n            0,\n            gfc.sb_sample[ch][0][i],\n            0,\n            32\n          );\n        }\n      }\n    }\n  };\n}\nvar System$8 = common.System;\nvar new_float$d = common.new_float;\nvar new_float_n$5 = common.new_float_n;\nfunction III_psy_xmin() {\n  this.l = new_float$d(Encoder.SBMAX_l);\n  this.s = new_float_n$5([Encoder.SBMAX_s, 3]);\n  var self2 = this;\n  this.assign = function(iii_psy_xmin) {\n    System$8.arraycopy(iii_psy_xmin.l, 0, self2.l, 0, Encoder.SBMAX_l);\n    for (var i = 0; i < Encoder.SBMAX_s; i++) {\n      for (var j = 0; j < 3; j++) {\n        self2.s[i][j] = iii_psy_xmin.s[i][j];\n      }\n    }\n  };\n}\nfunction III_psy_ratio() {\n  this.thm = new III_psy_xmin();\n  this.en = new III_psy_xmin();\n}\nfunction MPEGMode(ordinal) {\n  var _ordinal = ordinal;\n  this.ordinal = function() {\n    return _ordinal;\n  };\n}\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\nvar System$7 = common.System;\nvar VbrMode$6 = common.VbrMode;\nvar new_array_n = common.new_array_n;\nvar new_float$c = common.new_float;\nvar new_float_n$4 = common.new_float_n;\nvar new_int$c = common.new_int;\nvar assert$a = common.assert;\nEncoder.ENCDELAY = 576;\nEncoder.POSTDELAY = 1152;\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = 224 + Encoder.MDCTDELAY;\nEncoder.DECDELAY = 528;\nEncoder.SBLIMIT = 32;\nEncoder.CBANDS = 64;\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = Encoder.BLKSIZE / 2 + 1;\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = Encoder.BLKSIZE_s / 2 + 1;\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\nEncoder.fircoef = [\n  -0.0207887 * 5,\n  -0.0378413 * 5,\n  -0.0432472 * 5,\n  -0.031183 * 5,\n  779609e-23 * 5,\n  0.0467745 * 5,\n  0.10091 * 5,\n  0.151365 * 5,\n  0.187098 * 5\n];\nfunction Encoder() {\n  var FFTOFFSET = Encoder.FFTOFFSET;\n  var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n  var bs = null;\n  this.psy = null;\n  var psy = null;\n  var vbr = null;\n  var qupvt = null;\n  this.setModules = function(_bs, _psy, _qupvt, _vbr) {\n    bs = _bs;\n    this.psy = _psy;\n    psy = _psy;\n    vbr = _vbr;\n    qupvt = _qupvt;\n  };\n  var newMDCT = new NewMDCT();\n  function adjust_ATH(gfc) {\n    var gr2_max, max_pow;\n    if (gfc.ATH.useAdjust == 0) {\n      gfc.ATH.adjust = 1;\n      return;\n    }\n    max_pow = gfc.loudness_sq[0][0];\n    gr2_max = gfc.loudness_sq[1][0];\n    if (gfc.channels_out == 2) {\n      max_pow += gfc.loudness_sq[0][1];\n      gr2_max += gfc.loudness_sq[1][1];\n    } else {\n      max_pow += max_pow;\n      gr2_max += gr2_max;\n    }\n    if (gfc.mode_gr == 2) {\n      max_pow = Math.max(max_pow, gr2_max);\n    }\n    max_pow *= 0.5;\n    max_pow *= gfc.ATH.aaSensitivityP;\n    if (max_pow > 0.03125) {\n      if (gfc.ATH.adjust >= 1) {\n        gfc.ATH.adjust = 1;\n      } else {\n        if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n          gfc.ATH.adjust = gfc.ATH.adjustLimit;\n        }\n      }\n      gfc.ATH.adjustLimit = 1;\n    } else {\n      var adj_lim_new = 31.98 * max_pow + 625e-6;\n      if (gfc.ATH.adjust >= adj_lim_new) {\n        gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n        if (gfc.ATH.adjust < adj_lim_new) {\n          gfc.ATH.adjust = adj_lim_new;\n        }\n      } else {\n        if (gfc.ATH.adjustLimit >= adj_lim_new) {\n          gfc.ATH.adjust = adj_lim_new;\n        } else {\n          if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n            gfc.ATH.adjust = gfc.ATH.adjustLimit;\n          }\n        }\n      }\n      gfc.ATH.adjustLimit = adj_lim_new;\n    }\n  }\n  function updateStats(gfc) {\n    var gr, ch;\n    assert$a(gfc.bitrate_index >= 0 && gfc.bitrate_index < 16);\n    assert$a(gfc.mode_ext >= 0 && gfc.mode_ext < 4);\n    gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n    gfc.bitrate_stereoMode_Hist[15][4]++;\n    if (gfc.channels_out == 2) {\n      gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n      gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n    }\n    for (gr = 0; gr < gfc.mode_gr; ++gr) {\n      for (ch = 0; ch < gfc.channels_out; ++ch) {\n        var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n        if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n          bt = 4;\n        gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n        gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n        gfc.bitrate_blockType_Hist[15][bt]++;\n        gfc.bitrate_blockType_Hist[15][5]++;\n      }\n    }\n  }\n  function lame_encode_frame_init(gfp, inbuf) {\n    var gfc = gfp.internal_flags;\n    var ch, gr;\n    if (gfc.lame_encode_frame_init == 0) {\n      var i, j;\n      var primebuff0 = new_float$c(286 + 1152 + 576);\n      var primebuff1 = new_float$c(286 + 1152 + 576);\n      gfc.lame_encode_frame_init = 1;\n      for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n        if (i < 576 * gfc.mode_gr) {\n          primebuff0[i] = 0;\n          if (gfc.channels_out == 2)\n            primebuff1[i] = 0;\n        } else {\n          primebuff0[i] = inbuf[0][j];\n          if (gfc.channels_out == 2)\n            primebuff1[i] = inbuf[1][j];\n          ++j;\n        }\n      }\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n        }\n      }\n      newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n      assert$a(gfc.mf_size >= Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET);\n      assert$a(gfc.mf_size >= 512 + gfp.framesize - 32);\n    }\n  }\n  this.lame_encode_mp3_frame = function(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n    var mp3count;\n    var masking_LR = new_array_n([2, 2]);\n    masking_LR[0][0] = new III_psy_ratio();\n    masking_LR[0][1] = new III_psy_ratio();\n    masking_LR[1][0] = new III_psy_ratio();\n    masking_LR[1][1] = new III_psy_ratio();\n    var masking_MS = new_array_n([2, 2]);\n    masking_MS[0][0] = new III_psy_ratio();\n    masking_MS[0][1] = new III_psy_ratio();\n    masking_MS[1][0] = new III_psy_ratio();\n    masking_MS[1][1] = new III_psy_ratio();\n    var masking;\n    var inbuf = [null, null];\n    var gfc = gfp.internal_flags;\n    var tot_ener = new_float_n$4([2, 4]);\n    var ms_ener_ratio = [0.5, 0.5];\n    var pe = [\n      [0, 0],\n      [0, 0]\n    ];\n    var pe_MS = [\n      [0, 0],\n      [0, 0]\n    ];\n    var pe_use;\n    var ch, gr;\n    inbuf[0] = inbuf_l;\n    inbuf[1] = inbuf_r;\n    if (gfc.lame_encode_frame_init == 0) {\n      lame_encode_frame_init(gfp, inbuf);\n    }\n    gfc.padding = 0;\n    if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n      gfc.slot_lag += gfp.out_samplerate;\n      gfc.padding = 1;\n    }\n    if (gfc.psymodel != 0) {\n      var ret;\n      var bufp = [null, null];\n      var bufpPos = 0;\n      var blocktype = new_int$c(2);\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          bufp[ch] = inbuf[ch];\n          bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n        }\n        if (gfp.VBR == VbrMode$6.vbr_mtrh || gfp.VBR == VbrMode$6.vbr_mt) {\n          ret = psy.L3psycho_anal_vbr(\n            gfp,\n            bufp,\n            bufpPos,\n            gr,\n            masking_LR,\n            masking_MS,\n            pe[gr],\n            pe_MS[gr],\n            tot_ener[gr],\n            blocktype\n          );\n        } else {\n          ret = psy.L3psycho_anal_ns(\n            gfp,\n            bufp,\n            bufpPos,\n            gr,\n            masking_LR,\n            masking_MS,\n            pe[gr],\n            pe_MS[gr],\n            tot_ener[gr],\n            blocktype\n          );\n        }\n        if (ret != 0)\n          return -4;\n        if (gfp.mode == MPEGMode.JOINT_STEREO) {\n          ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n          if (ms_ener_ratio[gr] > 0) {\n            ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n          }\n        }\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          var cod_info = gfc.l3_side.tt[gr][ch];\n          cod_info.block_type = blocktype[ch];\n          cod_info.mixed_block_flag = 0;\n        }\n      }\n    } else {\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n          gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n          pe_MS[gr][ch] = pe[gr][ch] = 700;\n        }\n      }\n    }\n    adjust_ATH(gfc);\n    newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n    gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n    if (gfp.force_ms) {\n      gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n    } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n      var sum_pe_MS = 0;\n      var sum_pe_LR = 0;\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          sum_pe_MS += pe_MS[gr][ch];\n          sum_pe_LR += pe[gr][ch];\n        }\n      }\n      if (sum_pe_MS <= 1 * sum_pe_LR) {\n        var gi0 = gfc.l3_side.tt[0];\n        var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n        if (gi0[0].block_type == gi0[1].block_type && gi1[0].block_type == gi1[1].block_type) {\n          gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n        }\n      }\n    }\n    if (gfc.mode_ext == MPG_MD_MS_LR) {\n      masking = masking_MS;\n      pe_use = pe_MS;\n    } else {\n      masking = masking_LR;\n      pe_use = pe;\n    }\n    if (gfp.analysis && gfc.pinfo != null) {\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n          gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n          gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n          gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n          System$7.arraycopy(\n            gfc.l3_side.tt[gr][ch].xr,\n            0,\n            gfc.pinfo.xr[gr][ch],\n            0,\n            576\n          );\n          if (gfc.mode_ext == MPG_MD_MS_LR) {\n            gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n            System$7.arraycopy(\n              gfc.pinfo.energy[gr][ch + 2],\n              0,\n              gfc.pinfo.energy[gr][ch],\n              0,\n              gfc.pinfo.energy[gr][ch].length\n            );\n          }\n        }\n      }\n    }\n    if (gfp.VBR == VbrMode$6.vbr_off || gfp.VBR == VbrMode$6.vbr_abr) {\n      var i;\n      var f;\n      for (i = 0; i < 18; i++)\n        gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n      f = 0;\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++)\n          f += pe_use[gr][ch];\n      }\n      gfc.nsPsy.pefirbuf[18] = f;\n      f = gfc.nsPsy.pefirbuf[9];\n      for (i = 0; i < 9; i++) {\n        f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i]) * Encoder.fircoef[i];\n      }\n      f = 670 * 5 * gfc.mode_gr * gfc.channels_out / f;\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          pe_use[gr][ch] *= f;\n        }\n      }\n    }\n    gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n    bs.format_bitstream(gfp);\n    mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n    if (gfp.bWriteVbrTag)\n      vbr.addVbrFrame(gfp);\n    if (gfp.analysis && gfc.pinfo != null) {\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        var j;\n        for (j = 0; j < FFTOFFSET; j++) {\n          gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j + gfp.framesize];\n        }\n        for (j = FFTOFFSET; j < 1600; j++) {\n          gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n        }\n      }\n      qupvt.set_frame_pinfo(gfp, masking);\n    }\n    updateStats(gfc);\n    return mp3count;\n  };\n}\nvar Util$3 = common.Util;\nvar new_float$b = common.new_float;\nfunction FFT() {\n  var window2 = new_float$b(Encoder.BLKSIZE);\n  var window_s = new_float$b(Encoder.BLKSIZE_s / 2);\n  var costab = [\n    0.9238795325112867,\n    0.3826834323650898,\n    0.9951847266721969,\n    0.0980171403295606,\n    0.9996988186962042,\n    0.02454122852291229,\n    0.9999811752826011,\n    0.006135884649154475\n  ];\n  function fht(fz, fzPos, n) {\n    var tri = 0;\n    var k4;\n    var fi;\n    var gi;\n    n <<= 1;\n    var fn = fzPos + n;\n    k4 = 4;\n    do {\n      var s1, c1;\n      var i, k1, k2, k3, kx;\n      kx = k4 >> 1;\n      k1 = k4;\n      k2 = k4 << 1;\n      k3 = k2 + k1;\n      k4 = k2 << 1;\n      fi = fzPos;\n      gi = fi + kx;\n      do {\n        var f0, f1, f2, f3;\n        f1 = fz[fi + 0] - fz[fi + k1];\n        f0 = fz[fi + 0] + fz[fi + k1];\n        f3 = fz[fi + k2] - fz[fi + k3];\n        f2 = fz[fi + k2] + fz[fi + k3];\n        fz[fi + k2] = f0 - f2;\n        fz[fi + 0] = f0 + f2;\n        fz[fi + k3] = f1 - f3;\n        fz[fi + k1] = f1 + f3;\n        f1 = fz[gi + 0] - fz[gi + k1];\n        f0 = fz[gi + 0] + fz[gi + k1];\n        f3 = Util$3.SQRT2 * fz[gi + k3];\n        f2 = Util$3.SQRT2 * fz[gi + k2];\n        fz[gi + k2] = f0 - f2;\n        fz[gi + 0] = f0 + f2;\n        fz[gi + k3] = f1 - f3;\n        fz[gi + k1] = f1 + f3;\n        gi += k4;\n        fi += k4;\n      } while (fi < fn);\n      c1 = costab[tri + 0];\n      s1 = costab[tri + 1];\n      for (i = 1; i < kx; i++) {\n        var c2, s2;\n        c2 = 1 - 2 * s1 * s1;\n        s2 = 2 * s1 * c1;\n        fi = fzPos + i;\n        gi = fzPos + k1 - i;\n        do {\n          var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n          b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n          a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n          f1 = fz[fi + 0] - a;\n          f0 = fz[fi + 0] + a;\n          g1 = fz[gi + 0] - b;\n          g0 = fz[gi + 0] + b;\n          b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n          a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n          f3 = fz[fi + k2] - a;\n          f2 = fz[fi + k2] + a;\n          g3 = fz[gi + k2] - b;\n          g2 = fz[gi + k2] + b;\n          b = s1 * f2 - c1 * g3;\n          a = c1 * f2 + s1 * g3;\n          fz[fi + k2] = f0 - a;\n          fz[fi + 0] = f0 + a;\n          fz[gi + k3] = g1 - b;\n          fz[gi + k1] = g1 + b;\n          b = c1 * g2 - s1 * f3;\n          a = s1 * g2 + c1 * f3;\n          fz[gi + k2] = g0 - a;\n          fz[gi + 0] = g0 + a;\n          fz[fi + k3] = f1 - b;\n          fz[fi + k1] = f1 + b;\n          gi += k4;\n          fi += k4;\n        } while (fi < fn);\n        c2 = c1;\n        c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n        s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n      }\n      tri += 2;\n    } while (k4 < n);\n  }\n  var rv_tbl = [\n    0,\n    128,\n    64,\n    192,\n    32,\n    160,\n    96,\n    224,\n    16,\n    144,\n    80,\n    208,\n    48,\n    176,\n    112,\n    240,\n    8,\n    136,\n    72,\n    200,\n    40,\n    168,\n    104,\n    232,\n    24,\n    152,\n    88,\n    216,\n    56,\n    184,\n    120,\n    248,\n    4,\n    132,\n    68,\n    196,\n    36,\n    164,\n    100,\n    228,\n    20,\n    148,\n    84,\n    212,\n    52,\n    180,\n    116,\n    244,\n    12,\n    140,\n    76,\n    204,\n    44,\n    172,\n    108,\n    236,\n    28,\n    156,\n    92,\n    220,\n    60,\n    188,\n    124,\n    252,\n    2,\n    130,\n    66,\n    194,\n    34,\n    162,\n    98,\n    226,\n    18,\n    146,\n    82,\n    210,\n    50,\n    178,\n    114,\n    242,\n    10,\n    138,\n    74,\n    202,\n    42,\n    170,\n    106,\n    234,\n    26,\n    154,\n    90,\n    218,\n    58,\n    186,\n    122,\n    250,\n    6,\n    134,\n    70,\n    198,\n    38,\n    166,\n    102,\n    230,\n    22,\n    150,\n    86,\n    214,\n    54,\n    182,\n    118,\n    246,\n    14,\n    142,\n    78,\n    206,\n    46,\n    174,\n    110,\n    238,\n    30,\n    158,\n    94,\n    222,\n    62,\n    190,\n    126,\n    254\n  ];\n  this.fft_short = function(gfc, x_real, chn, buffer, bufPos) {\n    for (var b = 0; b < 3; b++) {\n      var x = Encoder.BLKSIZE_s / 2;\n      var k = 65535 & 576 / 3 * (b + 1);\n      var j = Encoder.BLKSIZE_s / 8 - 1;\n      do {\n        var f0, f1, f2, f3, w;\n        var i = rv_tbl[j << 2] & 255;\n        f0 = window_s[i] * buffer[chn][bufPos + i + k];\n        w = window_s[127 - i] * buffer[chn][bufPos + i + k + 128];\n        f1 = f0 - w;\n        f0 = f0 + w;\n        f2 = window_s[i + 64] * buffer[chn][bufPos + i + k + 64];\n        w = window_s[63 - i] * buffer[chn][bufPos + i + k + 192];\n        f3 = f2 - w;\n        f2 = f2 + w;\n        x -= 4;\n        x_real[b][x + 0] = f0 + f2;\n        x_real[b][x + 2] = f0 - f2;\n        x_real[b][x + 1] = f1 + f3;\n        x_real[b][x + 3] = f1 - f3;\n        f0 = window_s[i + 1] * buffer[chn][bufPos + i + k + 1];\n        w = window_s[126 - i] * buffer[chn][bufPos + i + k + 129];\n        f1 = f0 - w;\n        f0 = f0 + w;\n        f2 = window_s[i + 65] * buffer[chn][bufPos + i + k + 65];\n        w = window_s[62 - i] * buffer[chn][bufPos + i + k + 193];\n        f3 = f2 - w;\n        f2 = f2 + w;\n        x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n        x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n        x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n        x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n      } while (--j >= 0);\n      fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n    }\n  };\n  this.fft_long = function(gfc, y, chn, buffer, bufPos) {\n    var jj = Encoder.BLKSIZE / 8 - 1;\n    var x = Encoder.BLKSIZE / 2;\n    do {\n      var f0, f1, f2, f3, w;\n      var i = rv_tbl[jj] & 255;\n      f0 = window2[i] * buffer[chn][bufPos + i];\n      w = window2[i + 512] * buffer[chn][bufPos + i + 512];\n      f1 = f0 - w;\n      f0 = f0 + w;\n      f2 = window2[i + 256] * buffer[chn][bufPos + i + 256];\n      w = window2[i + 768] * buffer[chn][bufPos + i + 768];\n      f3 = f2 - w;\n      f2 = f2 + w;\n      x -= 4;\n      y[x + 0] = f0 + f2;\n      y[x + 2] = f0 - f2;\n      y[x + 1] = f1 + f3;\n      y[x + 3] = f1 - f3;\n      f0 = window2[i + 1] * buffer[chn][bufPos + i + 1];\n      w = window2[i + 513] * buffer[chn][bufPos + i + 513];\n      f1 = f0 - w;\n      f0 = f0 + w;\n      f2 = window2[i + 257] * buffer[chn][bufPos + i + 257];\n      w = window2[i + 769] * buffer[chn][bufPos + i + 769];\n      f3 = f2 - w;\n      f2 = f2 + w;\n      y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n      y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n      y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n      y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n    } while (--jj >= 0);\n    fht(y, x, Encoder.BLKSIZE / 2);\n  };\n  this.init_fft = function(gfc) {\n    for (var i = 0; i < Encoder.BLKSIZE; i++) {\n      window2[i] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + 0.5) / Encoder.BLKSIZE);\n    }\n    for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++) {\n      window_s[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE_s));\n    }\n  };\n}\nvar VbrMode$5 = common.VbrMode;\nvar Float$1 = common.Float;\nvar ShortBlock$2 = common.ShortBlock;\nvar Util$2 = common.Util;\nvar Arrays$5 = common.Arrays;\nvar new_float$a = common.new_float;\nvar new_float_n$3 = common.new_float_n;\nvar new_int$b = common.new_int;\nvar assert$9 = common.assert;\nfunction PsyModel() {\n  var fft = new FFT();\n  var LOG10 = 2.302585092994046;\n  var rpelev = 2;\n  var rpelev2 = 16;\n  var rpelev_s = 2;\n  var rpelev2_s = 16;\n  var DELBARK = 0.34;\n  var VO_SCALE = 1 / (14752 * 14752) / (Encoder.BLKSIZE / 2);\n  var temporalmask_sustain_sec = 0.01;\n  var NS_PREECHO_ATT0 = 0.8;\n  var NS_PREECHO_ATT1 = 0.6;\n  var NS_PREECHO_ATT2 = 0.3;\n  var NS_MSFIX = 3.5;\n  var NSFIRLEN = 21;\n  var LN_TO_LOG10 = 0.2302585093;\n  function NON_LINEAR_SCALE_ENERGY(x) {\n    return x;\n  }\n  function psycho_loudness_approx(energy, gfc) {\n    var loudness_power = 0;\n    for (var i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n      loudness_power += energy[i] * gfc.ATH.eql_w[i];\n    }\n    loudness_power *= VO_SCALE;\n    return loudness_power;\n  }\n  function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n    var gfc = gfp.internal_flags;\n    if (chn < 2) {\n      fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n      fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n    } else if (chn == 2) {\n      for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n        var l = wsamp_l[wsamp_lPos + 0][j];\n        var r = wsamp_l[wsamp_lPos + 1][j];\n        wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n        wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n      }\n      for (var b = 2; b >= 0; --b) {\n        for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n          var l = wsamp_s[wsamp_sPos + 0][b][j];\n          var r = wsamp_s[wsamp_sPos + 1][b][j];\n          wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util$2.SQRT2 * 0.5;\n          wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util$2.SQRT2 * 0.5;\n        }\n      }\n    }\n    fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n    fftenergy[0] *= fftenergy[0];\n    for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n      var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n      var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n      fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n        (re * re + im * im) * 0.5\n      );\n    }\n    for (var b = 2; b >= 0; --b) {\n      fftenergy_s[b][0] = wsamp_s[wsamp_sPos + 0][b][0];\n      fftenergy_s[b][0] *= fftenergy_s[b][0];\n      for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n        var re = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 - j];\n        var im = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 + j];\n        fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n          (re * re + im * im) * 0.5\n        );\n      }\n    }\n    {\n      var totalenergy = 0;\n      for (var j = 11; j < Encoder.HBLKSIZE; j++)\n        totalenergy += fftenergy[j];\n      gfc.tot_ener[chn] = totalenergy;\n    }\n    if (gfp.analysis) {\n      for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n        gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n        gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n      }\n      gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n    }\n    if (gfp.athaa_loudapprox == 2 && chn < 2) {\n      gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n      gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n    }\n  }\n  var I1LIMIT = 8;\n  var I2LIMIT = 23;\n  var MLIMIT = 15;\n  var ma_max_i1;\n  var ma_max_i2;\n  var ma_max_m;\n  var tab = [\n    1,\n    0.79433,\n    0.63096,\n    0.63096,\n    0.63096,\n    0.63096,\n    0.63096,\n    0.25119,\n    0.11749\n  ];\n  function init_mask_add_max_values() {\n    ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16);\n    ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16);\n    ma_max_m = Math.pow(10, MLIMIT / 10);\n  }\n  var table1 = [\n    3.3246 * 3.3246,\n    3.23837 * 3.23837,\n    3.15437 * 3.15437,\n    3.00412 * 3.00412,\n    2.86103 * 2.86103,\n    2.65407 * 2.65407,\n    2.46209 * 2.46209,\n    2.284 * 2.284,\n    2.11879 * 2.11879,\n    1.96552 * 1.96552,\n    1.82335 * 1.82335,\n    1.69146 * 1.69146,\n    1.56911 * 1.56911,\n    1.46658 * 1.46658,\n    1.37074 * 1.37074,\n    1.31036 * 1.31036,\n    1.25264 * 1.25264,\n    1.20648 * 1.20648,\n    1.16203 * 1.16203,\n    1.12765 * 1.12765,\n    1.09428 * 1.09428,\n    1.0659 * 1.0659,\n    1.03826 * 1.03826,\n    1.01895 * 1.01895,\n    1\n  ];\n  var table2 = [\n    1.33352 * 1.33352,\n    1.35879 * 1.35879,\n    1.38454 * 1.38454,\n    1.39497 * 1.39497,\n    1.40548 * 1.40548,\n    1.3537 * 1.3537,\n    1.30382 * 1.30382,\n    1.22321 * 1.22321,\n    1.14758 * 1.14758,\n    1\n  ];\n  var table3 = [\n    2.35364 * 2.35364,\n    2.29259 * 2.29259,\n    2.23313 * 2.23313,\n    2.12675 * 2.12675,\n    2.02545 * 2.02545,\n    1.87894 * 1.87894,\n    1.74303 * 1.74303,\n    1.61695 * 1.61695,\n    1.49999 * 1.49999,\n    1.39148 * 1.39148,\n    1.29083 * 1.29083,\n    1.19746 * 1.19746,\n    1.11084 * 1.11084,\n    1.03826 * 1.03826\n  ];\n  function mask_add(m1, m2, kk, b, gfc, shortblock) {\n    var ratio;\n    if (m2 > m1) {\n      if (m2 < m1 * ma_max_i2)\n        ratio = m2 / m1;\n      else\n        return m1 + m2;\n    } else {\n      if (m1 >= m2 * ma_max_i2)\n        return m1 + m2;\n      ratio = m1 / m2;\n    }\n    m1 += m2;\n    if (b + 3 <= 3 + 3) {\n      if (ratio >= ma_max_i1) {\n        return m1;\n      }\n      var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n      return m1 * table2[i];\n    }\n    var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n    if (shortblock != 0) {\n      m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n    } else {\n      m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n    }\n    if (m1 < ma_max_m * m2) {\n      if (m1 > m2) {\n        var f, r;\n        f = 1;\n        if (i <= 13)\n          f = table3[i];\n        r = Util$2.FAST_LOG10_X(m1 / m2, 10 / 15);\n        return m1 * ((table1[i] - f) * r + f);\n      }\n      if (i > 13)\n        return m1;\n      return m1 * table3[i];\n    }\n    return m1 * table1[i];\n  }\n  var table2_ = [\n    1.33352 * 1.33352,\n    1.35879 * 1.35879,\n    1.38454 * 1.38454,\n    1.39497 * 1.39497,\n    1.40548 * 1.40548,\n    1.3537 * 1.3537,\n    1.30382 * 1.30382,\n    1.22321 * 1.22321,\n    1.14758 * 1.14758,\n    1\n  ];\n  function vbrpsy_mask_add(m1, m2, b) {\n    var ratio;\n    if (m1 < 0) {\n      m1 = 0;\n    }\n    if (m2 < 0) {\n      m2 = 0;\n    }\n    if (m1 <= 0) {\n      return m2;\n    }\n    if (m2 <= 0) {\n      return m1;\n    }\n    if (m2 > m1) {\n      ratio = m2 / m1;\n    } else {\n      ratio = m1 / m2;\n    }\n    if (b >= -2 && b <= 2) {\n      if (ratio >= ma_max_i1) {\n        return m1 + m2;\n      } else {\n        var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n        return (m1 + m2) * table2_[i];\n      }\n    }\n    if (ratio < ma_max_i2) {\n      return m1 + m2;\n    }\n    if (m1 < m2) {\n      m1 = m2;\n    }\n    return m1;\n  }\n  function calc_interchannel_masking(gfp, ratio) {\n    var gfc = gfp.internal_flags;\n    if (gfc.channels_out > 1) {\n      for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n        var l = gfc.thm[0].l[sb];\n        var r = gfc.thm[1].l[sb];\n        gfc.thm[0].l[sb] += r * ratio;\n        gfc.thm[1].l[sb] += l * ratio;\n      }\n      for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n        for (var sblock = 0; sblock < 3; sblock++) {\n          var l = gfc.thm[0].s[sb][sblock];\n          var r = gfc.thm[1].s[sb][sblock];\n          gfc.thm[0].s[sb][sblock] += r * ratio;\n          gfc.thm[1].s[sb][sblock] += l * ratio;\n        }\n      }\n    }\n  }\n  function msfix1(gfc) {\n    for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n      if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb] || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb]) {\n        continue;\n      }\n      var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n      var rmid = Math.max(gfc.thm[2].l[sb], Math.min(gfc.thm[3].l[sb], mld));\n      mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n      var rside = Math.max(gfc.thm[3].l[sb], Math.min(gfc.thm[2].l[sb], mld));\n      gfc.thm[2].l[sb] = rmid;\n      gfc.thm[3].l[sb] = rside;\n    }\n    for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n      for (var sblock = 0; sblock < 3; sblock++) {\n        if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock] || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock]) {\n          continue;\n        }\n        var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n        var rmid = Math.max(\n          gfc.thm[2].s[sb][sblock],\n          Math.min(gfc.thm[3].s[sb][sblock], mld)\n        );\n        mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n        var rside = Math.max(\n          gfc.thm[3].s[sb][sblock],\n          Math.min(gfc.thm[2].s[sb][sblock], mld)\n        );\n        gfc.thm[2].s[sb][sblock] = rmid;\n        gfc.thm[3].s[sb][sblock] = rside;\n      }\n    }\n  }\n  function ns_msfix(gfc, msfix, athadjust) {\n    var msfix2 = msfix;\n    var athlower = Math.pow(10, athadjust);\n    msfix *= 2;\n    msfix2 *= 2;\n    for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n      var thmLR, thmM, thmS, ath;\n      ath = gfc.ATH.cb_l[gfc.bm_l[sb]] * athlower;\n      thmLR = Math.min(\n        Math.max(gfc.thm[0].l[sb], ath),\n        Math.max(gfc.thm[1].l[sb], ath)\n      );\n      thmM = Math.max(gfc.thm[2].l[sb], ath);\n      thmS = Math.max(gfc.thm[3].l[sb], ath);\n      if (thmLR * msfix < thmM + thmS) {\n        var f = thmLR * msfix2 / (thmM + thmS);\n        thmM *= f;\n        thmS *= f;\n      }\n      gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n      gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n    }\n    athlower *= Encoder.BLKSIZE_s / Encoder.BLKSIZE;\n    for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n      for (var sblock = 0; sblock < 3; sblock++) {\n        var thmLR, thmM, thmS, ath;\n        ath = gfc.ATH.cb_s[gfc.bm_s[sb]] * athlower;\n        thmLR = Math.min(\n          Math.max(gfc.thm[0].s[sb][sblock], ath),\n          Math.max(gfc.thm[1].s[sb][sblock], ath)\n        );\n        thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n        thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n        if (thmLR * msfix < thmM + thmS) {\n          var f = thmLR * msfix / (thmM + thmS);\n          thmM *= f;\n          thmS *= f;\n        }\n        gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock], thmM);\n        gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock], thmS);\n      }\n    }\n  }\n  function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n    var sb, b;\n    var enn = 0;\n    var thmm = 0;\n    for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n      var bo_s_sb = gfc.bo_s[sb];\n      var npart_s = gfc.npart_s;\n      var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n      while (b < b_lim) {\n        assert$9(eb[b] >= 0);\n        assert$9(thr[b] >= 0);\n        enn += eb[b];\n        thmm += thr[b];\n        b++;\n      }\n      gfc.en[chn].s[sb][sblock] = enn;\n      gfc.thm[chn].s[sb][sblock] = thmm;\n      if (b >= npart_s) {\n        ++sb;\n        break;\n      }\n      assert$9(eb[b] >= 0);\n      assert$9(thr[b] >= 0);\n      {\n        var w_curr = gfc.PSY.bo_s_weight[sb];\n        var w_next = 1 - w_curr;\n        enn = w_curr * eb[b];\n        thmm = w_curr * thr[b];\n        gfc.en[chn].s[sb][sblock] += enn;\n        gfc.thm[chn].s[sb][sblock] += thmm;\n        enn = w_next * eb[b];\n        thmm = w_next * thr[b];\n      }\n    }\n    for (; sb < Encoder.SBMAX_s; ++sb) {\n      gfc.en[chn].s[sb][sblock] = 0;\n      gfc.thm[chn].s[sb][sblock] = 0;\n    }\n  }\n  function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n    var sb, b;\n    var enn = 0;\n    var thmm = 0;\n    for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n      var bo_l_sb = gfc.bo_l[sb];\n      var npart_l = gfc.npart_l;\n      var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n      while (b < b_lim) {\n        assert$9(eb[b] >= 0);\n        assert$9(thr[b] >= 0);\n        enn += eb[b];\n        thmm += thr[b];\n        b++;\n      }\n      gfc.en[chn].l[sb] = enn;\n      gfc.thm[chn].l[sb] = thmm;\n      if (b >= npart_l) {\n        ++sb;\n        break;\n      }\n      assert$9(eb[b] >= 0);\n      assert$9(thr[b] >= 0);\n      {\n        var w_curr = gfc.PSY.bo_l_weight[sb];\n        var w_next = 1 - w_curr;\n        enn = w_curr * eb[b];\n        thmm = w_curr * thr[b];\n        gfc.en[chn].l[sb] += enn;\n        gfc.thm[chn].l[sb] += thmm;\n        enn = w_next * eb[b];\n        thmm = w_next * thr[b];\n      }\n    }\n    for (; sb < Encoder.SBMAX_l; ++sb) {\n      gfc.en[chn].l[sb] = 0;\n      gfc.thm[chn].l[sb] = 0;\n    }\n  }\n  function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n    var gfc = gfp.internal_flags;\n    var j, b;\n    for (b = j = 0; b < gfc.npart_s; ++b) {\n      var ebb = 0;\n      var n = gfc.numlines_s[b];\n      for (var i = 0; i < n; ++i, ++j) {\n        var el = fftenergy_s[sblock][j];\n        ebb += el;\n      }\n      eb[b] = ebb;\n    }\n    assert$9(b == gfc.npart_s);\n    for (j = b = 0; b < gfc.npart_s; b++) {\n      var kk = gfc.s3ind_s[b][0];\n      var ecb = gfc.s3_ss[j++] * eb[kk];\n      ++kk;\n      while (kk <= gfc.s3ind_s[b][1]) {\n        ecb += gfc.s3_ss[j] * eb[kk];\n        ++j;\n        ++kk;\n      }\n      {\n        var x = rpelev_s * gfc.nb_s1[chn][b];\n        thr[b] = Math.min(ecb, x);\n      }\n      if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n        var x = rpelev2_s * gfc.nb_s2[chn][b];\n        var y = thr[b];\n        thr[b] = Math.min(x, y);\n      }\n      gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n      gfc.nb_s1[chn][b] = ecb;\n      assert$9(thr[b] >= 0);\n    }\n    for (; b <= Encoder.CBANDS; ++b) {\n      eb[b] = 0;\n      thr[b] = 0;\n    }\n  }\n  function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n    var gfc = gfp.internal_flags;\n    if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n      uselongblock[0] = uselongblock[1] = 0;\n    }\n    for (var chn = 0; chn < gfc.channels_out; chn++) {\n      blocktype[chn] = Encoder.NORM_TYPE;\n      if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n        uselongblock[chn] = 1;\n      }\n      if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n        uselongblock[chn] = 0;\n      }\n      if (uselongblock[chn] != 0) {\n        assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n        if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n          blocktype[chn] = Encoder.STOP_TYPE;\n        }\n      } else {\n        blocktype[chn] = Encoder.SHORT_TYPE;\n        if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n          gfc.blocktype_old[chn] = Encoder.START_TYPE;\n        }\n        if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n          gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n        }\n      }\n      blocktype_d[chn] = gfc.blocktype_old[chn];\n      gfc.blocktype_old[chn] = blocktype[chn];\n    }\n  }\n  function NS_INTERP(x, y, r) {\n    if (r >= 1) {\n      return x;\n    }\n    if (r <= 0)\n      return y;\n    if (y > 0) {\n      return Math.pow(x / y, r) * y;\n    }\n    return 0;\n  }\n  var regcoef_s = [\n    11.8,\n    13.6,\n    17.2,\n    32,\n    46.5,\n    51.3,\n    57.5,\n    67.1,\n    71.5,\n    84.6,\n    97.6,\n    130\n  ];\n  function pecalc_s(mr, masking_lower) {\n    var pe_s = 1236.28 / 4;\n    for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n      for (var sblock = 0; sblock < 3; sblock++) {\n        var thm = mr.thm.s[sb][sblock];\n        if (thm > 0) {\n          var x = thm * masking_lower;\n          var en = mr.en.s[sb][sblock];\n          if (en > x) {\n            if (en > x * 1e10) {\n              pe_s += regcoef_s[sb] * (10 * LOG10);\n            } else {\n              pe_s += regcoef_s[sb] * Util$2.FAST_LOG10(en / x);\n            }\n          }\n        }\n      }\n    }\n    return pe_s;\n  }\n  var regcoef_l = [\n    6.8,\n    5.8,\n    5.8,\n    6.4,\n    6.5,\n    9.9,\n    12.1,\n    14.4,\n    15,\n    18.9,\n    21.6,\n    26.9,\n    34.2,\n    40.2,\n    46.8,\n    56.5,\n    60.7,\n    73.9,\n    85.7,\n    93.4,\n    126.1\n  ];\n  function pecalc_l(mr, masking_lower) {\n    var pe_l = 1124.23 / 4;\n    for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n      var thm = mr.thm.l[sb];\n      if (thm > 0) {\n        var x = thm * masking_lower;\n        var en = mr.en.l[sb];\n        if (en > x) {\n          if (en > x * 1e10) {\n            pe_l += regcoef_l[sb] * (10 * LOG10);\n          } else {\n            pe_l += regcoef_l[sb] * Util$2.FAST_LOG10(en / x);\n          }\n        }\n      }\n    }\n    return pe_l;\n  }\n  function calc_energy(gfc, fftenergy, eb, max, avg) {\n    var b, j;\n    for (b = j = 0; b < gfc.npart_l; ++b) {\n      var ebb = 0;\n      var m = 0;\n      var i;\n      for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n        var el = fftenergy[j];\n        ebb += el;\n        if (m < el)\n          m = el;\n      }\n      eb[b] = ebb;\n      max[b] = m;\n      avg[b] = ebb * gfc.rnumlines_l[b];\n      assert$9(gfc.rnumlines_l[b] >= 0);\n      assert$9(eb[b] >= 0);\n      assert$9(max[b] >= 0);\n      assert$9(avg[b] >= 0);\n    }\n  }\n  function calc_mask_index_l(gfc, max, avg, mask_idx) {\n    var last_tab_entry = tab.length - 1;\n    var b = 0;\n    var a = avg[b] + avg[b + 1];\n    if (a > 0) {\n      var m = max[b];\n      if (m < max[b + 1])\n        m = max[b + 1];\n      assert$9(gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n      a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n      var k = 0 | a;\n      if (k > last_tab_entry)\n        k = last_tab_entry;\n      mask_idx[b] = k;\n    } else {\n      mask_idx[b] = 0;\n    }\n    for (b = 1; b < gfc.npart_l - 1; b++) {\n      a = avg[b - 1] + avg[b] + avg[b + 1];\n      if (a > 0) {\n        var m = max[b - 1];\n        if (m < max[b])\n          m = max[b];\n        if (m < max[b + 1])\n          m = max[b + 1];\n        assert$9(\n          gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0\n        );\n        a = 20 * (m * 3 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n        var k = 0 | a;\n        if (k > last_tab_entry)\n          k = last_tab_entry;\n        mask_idx[b] = k;\n      } else {\n        mask_idx[b] = 0;\n      }\n    }\n    assert$9(b == gfc.npart_l - 1);\n    a = avg[b - 1] + avg[b];\n    if (a > 0) {\n      var m = max[b - 1];\n      if (m < max[b])\n        m = max[b];\n      assert$9(gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1 > 0);\n      a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n      var k = 0 | a;\n      if (k > last_tab_entry)\n        k = last_tab_entry;\n      mask_idx[b] = k;\n    } else {\n      mask_idx[b] = 0;\n    }\n    assert$9(b == gfc.npart_l - 1);\n  }\n  var fircoef = [\n    -865163e-23 * 2,\n    -851586e-8 * 2,\n    -674764e-23 * 2,\n    0.0209036 * 2,\n    -336639e-22 * 2,\n    -0.0438162 * 2,\n    -154175e-22 * 2,\n    0.0931738 * 2,\n    -552212e-22 * 2,\n    -0.313819 * 2\n  ];\n  this.L3psycho_anal_ns = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n    var gfc = gfp.internal_flags;\n    var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n    var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n    var eb_l = new_float$a(Encoder.CBANDS + 1);\n    var eb_s = new_float$a(Encoder.CBANDS + 1);\n    var thr = new_float$a(Encoder.CBANDS + 2);\n    var blocktype = new_int$b(2);\n    var uselongblock = new_int$b(2);\n    var numchn, chn;\n    var b, i, j, k;\n    var sb, sblock;\n    var ns_hpfsmpl = new_float_n$3([2, 576]);\n    var pcfact;\n    var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n    var mask_idx_s = new_int$b(Encoder.CBANDS + 2);\n    Arrays$5.fill(mask_idx_s, 0);\n    numchn = gfc.channels_out;\n    if (gfp.mode == MPEGMode.JOINT_STEREO)\n      numchn = 4;\n    if (gfp.VBR == VbrMode$5.vbr_off) {\n      pcfact = gfc.ResvMax == 0 ? 0 : gfc.ResvSize / gfc.ResvMax * 0.5;\n    } else if (gfp.VBR == VbrMode$5.vbr_rh || gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt) {\n      pcfact = 0.6;\n    } else\n      pcfact = 1;\n    for (chn = 0; chn < gfc.channels_out; chn++) {\n      var firbuf2 = buffer[chn];\n      var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n      for (i = 0; i < 576; i++) {\n        var sum1, sum2;\n        sum1 = firbuf2[firbufPos + i + 10];\n        sum2 = 0;\n        for (j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n          sum1 += fircoef[j] * (firbuf2[firbufPos + i + j] + firbuf2[firbufPos + i + NSFIRLEN - j]);\n          sum2 += fircoef[j + 1] * (firbuf2[firbufPos + i + j + 1] + firbuf2[firbufPos + i + NSFIRLEN - j - 1]);\n        }\n        ns_hpfsmpl[chn][i] = sum1 + sum2;\n      }\n      masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n      masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n      if (numchn > 2) {\n        masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n        masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n      }\n    }\n    for (chn = 0; chn < numchn; chn++) {\n      var wsamp_l;\n      var wsamp_s;\n      var en_subshort = new_float$a(12);\n      var en_short = [0, 0, 0, 0];\n      var attack_intensity = new_float$a(12);\n      var ns_uselongblock = 1;\n      var attackThreshold;\n      var max = new_float$a(Encoder.CBANDS);\n      var avg = new_float$a(Encoder.CBANDS);\n      var ns_attacks = [0, 0, 0, 0];\n      var fftenergy = new_float$a(Encoder.HBLKSIZE);\n      var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n      assert$9(gfc.npart_s <= Encoder.CBANDS);\n      assert$9(gfc.npart_l <= Encoder.CBANDS);\n      for (i = 0; i < 3; i++) {\n        en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n        assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n        attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n        en_short[0] += en_subshort[i];\n      }\n      if (chn == 2) {\n        for (i = 0; i < 576; i++) {\n          var l, r;\n          l = ns_hpfsmpl[0][i];\n          r = ns_hpfsmpl[1][i];\n          ns_hpfsmpl[0][i] = l + r;\n          ns_hpfsmpl[1][i] = l - r;\n        }\n      }\n      {\n        var pf = ns_hpfsmpl[chn & 1];\n        var pfPos = 0;\n        for (i = 0; i < 9; i++) {\n          var pfe = pfPos + 576 / 9;\n          var p2 = 1;\n          for (; pfPos < pfe; pfPos++) {\n            if (p2 < Math.abs(pf[pfPos]))\n              p2 = Math.abs(pf[pfPos]);\n          }\n          gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n          en_short[1 + i / 3] += p2;\n          if (p2 > en_subshort[i + 3 - 2]) {\n            assert$9(en_subshort[i + 3 - 2] > 0);\n            p2 = p2 / en_subshort[i + 3 - 2];\n          } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n            p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n          } else\n            p2 = 0;\n          attack_intensity[i + 3] = p2;\n        }\n      }\n      if (gfp.analysis) {\n        var x = attack_intensity[0];\n        for (i = 1; i < 12; i++) {\n          if (x < attack_intensity[i])\n            x = attack_intensity[i];\n        }\n        gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n        gfc.pinfo.ers_save[chn] = x;\n      }\n      attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n      for (i = 0; i < 12; i++) {\n        if (ns_attacks[i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n          ns_attacks[i / 3] = i % 3 + 1;\n        }\n      }\n      for (i = 1; i < 4; i++) {\n        var ratio;\n        if (en_short[i - 1] > en_short[i]) {\n          assert$9(en_short[i] > 0);\n          ratio = en_short[i - 1] / en_short[i];\n        } else {\n          assert$9(en_short[i - 1] > 0);\n          ratio = en_short[i] / en_short[i - 1];\n        }\n        if (ratio < 1.7) {\n          ns_attacks[i] = 0;\n          if (i == 1)\n            ns_attacks[0] = 0;\n        }\n      }\n      if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0) {\n        ns_attacks[0] = 0;\n      }\n      if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3] != 0) {\n        ns_uselongblock = 0;\n        if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n          ns_attacks[1] = 0;\n        if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n          ns_attacks[2] = 0;\n        if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n          ns_attacks[3] = 0;\n      }\n      if (chn < 2) {\n        uselongblock[chn] = ns_uselongblock;\n      } else {\n        if (ns_uselongblock == 0) {\n          uselongblock[0] = uselongblock[1] = 0;\n        }\n      }\n      energy[chn] = gfc.tot_ener[chn];\n      wsamp_s = wsamp_S;\n      wsamp_l = wsamp_L;\n      compute_ffts(\n        gfp,\n        fftenergy,\n        fftenergy_s,\n        wsamp_l,\n        chn & 1,\n        wsamp_s,\n        chn & 1,\n        gr_out,\n        chn,\n        buffer,\n        bufPos\n      );\n      calc_energy(gfc, fftenergy, eb_l, max, avg);\n      calc_mask_index_l(gfc, max, avg, mask_idx_l);\n      for (sblock = 0; sblock < 3; sblock++) {\n        var enn, thmm;\n        compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n        convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n        for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n          thmm = gfc.thm[chn].s[sb][sblock];\n          thmm *= NS_PREECHO_ATT0;\n          if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n            var idx = sblock != 0 ? sblock - 1 : 2;\n            var p2 = NS_INTERP(\n              gfc.thm[chn].s[sb][idx],\n              thmm,\n              NS_PREECHO_ATT1 * pcfact\n            );\n            thmm = Math.min(thmm, p2);\n          }\n          if (ns_attacks[sblock] == 1) {\n            var idx = sblock != 0 ? sblock - 1 : 2;\n            var p2 = NS_INTERP(\n              gfc.thm[chn].s[sb][idx],\n              thmm,\n              NS_PREECHO_ATT2 * pcfact\n            );\n            thmm = Math.min(thmm, p2);\n          } else if (sblock != 0 && ns_attacks[sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n            var idx = sblock != 2 ? sblock + 1 : 0;\n            var p2 = NS_INTERP(\n              gfc.thm[chn].s[sb][idx],\n              thmm,\n              NS_PREECHO_ATT2 * pcfact\n            );\n            thmm = Math.min(thmm, p2);\n          }\n          enn = en_subshort[sblock * 3 + 3] + en_subshort[sblock * 3 + 4] + en_subshort[sblock * 3 + 5];\n          if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n            thmm *= 0.5;\n            if (en_subshort[sblock * 3 + 4] * 6 < enn)\n              thmm *= 0.5;\n          }\n          gfc.thm[chn].s[sb][sblock] = thmm;\n        }\n      }\n      gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n      k = 0;\n      {\n        for (b = 0; b < gfc.npart_l; b++) {\n          var kk = gfc.s3ind[b][0];\n          var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n          var ecb = gfc.s3_ll[k++] * eb2;\n          while (++kk <= gfc.s3ind[b][1]) {\n            eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n            ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b, gfc, 0);\n          }\n          ecb *= 0.158489319246111;\n          if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n            thr[b] = ecb;\n          else {\n            thr[b] = NS_INTERP(\n              Math.min(\n                ecb,\n                Math.min(rpelev * gfc.nb_1[chn][b], rpelev2 * gfc.nb_2[chn][b])\n              ),\n              ecb,\n              pcfact\n            );\n          }\n          gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n          gfc.nb_1[chn][b] = ecb;\n        }\n      }\n      for (; b <= Encoder.CBANDS; ++b) {\n        eb_l[b] = 0;\n        thr[b] = 0;\n      }\n      convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n    }\n    if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n      if (gfp.interChRatio > 0) {\n        calc_interchannel_masking(gfp, gfp.interChRatio);\n      }\n    }\n    if (gfp.mode == MPEGMode.JOINT_STEREO) {\n      var msfix;\n      msfix1(gfc);\n      msfix = gfp.msfix;\n      if (Math.abs(msfix) > 0) {\n        ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n      }\n    }\n    block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n    for (chn = 0; chn < numchn; chn++) {\n      var ppe;\n      var ppePos = 0;\n      var type;\n      var mr;\n      if (chn > 1) {\n        ppe = percep_MS_entropy;\n        ppePos = -2;\n        type = Encoder.NORM_TYPE;\n        if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n          type = Encoder.SHORT_TYPE;\n        }\n        mr = masking_MS_ratio[gr_out][chn - 2];\n      } else {\n        ppe = percep_entropy;\n        ppePos = 0;\n        type = blocktype_d[chn];\n        mr = masking_ratio[gr_out][chn];\n      }\n      if (type == Encoder.SHORT_TYPE) {\n        ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n      } else\n        ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n      if (gfp.analysis)\n        gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n    }\n    return 0;\n  };\n  function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n    var gfc = gfp.internal_flags;\n    if (chn < 2) {\n      fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n    } else if (chn == 2) {\n      for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n        var l = wsamp_l[wsamp_lPos + 0][j];\n        var r = wsamp_l[wsamp_lPos + 1][j];\n        wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n        wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n      }\n    }\n    fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n    fftenergy[0] *= fftenergy[0];\n    for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n      var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n      var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n      fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n        (re * re + im * im) * 0.5\n      );\n    }\n    {\n      var totalenergy = 0;\n      for (var j = 11; j < Encoder.HBLKSIZE; j++)\n        totalenergy += fftenergy[j];\n      gfc.tot_ener[chn] = totalenergy;\n    }\n    if (gfp.analysis) {\n      for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n        gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n        gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n      }\n      gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n    }\n  }\n  function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n    var gfc = gfp.internal_flags;\n    if (sblock == 0 && chn < 2) {\n      fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n    }\n    if (chn == 2) {\n      for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n        var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n        var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n        wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util$2.SQRT2 * 0.5;\n        wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util$2.SQRT2 * 0.5;\n      }\n    }\n    fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n    fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n    for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n      var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n      var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n      fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n        (re * re + im * im) * 0.5\n      );\n    }\n  }\n  function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n    var gfc = gfp.internal_flags;\n    if (gfp.athaa_loudapprox == 2 && chn < 2) {\n      gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n      gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n    }\n  }\n  var fircoef_ = [\n    -865163e-23 * 2,\n    -851586e-8 * 2,\n    -674764e-23 * 2,\n    0.0209036 * 2,\n    -336639e-22 * 2,\n    -0.0438162 * 2,\n    -154175e-22 * 2,\n    0.0931738 * 2,\n    -552212e-22 * 2,\n    -0.313819 * 2\n  ];\n  function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n    var ns_hpfsmpl = new_float_n$3([2, 576]);\n    var gfc = gfp.internal_flags;\n    var n_chn_out = gfc.channels_out;\n    var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : n_chn_out;\n    for (var chn = 0; chn < n_chn_out; chn++) {\n      firbuf = buffer[chn];\n      var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n      for (var i = 0; i < 576; i++) {\n        var sum1, sum2;\n        sum1 = firbuf[firbufPos + i + 10];\n        sum2 = 0;\n        for (var j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n          sum1 += fircoef_[j] * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i + NSFIRLEN - j]);\n          sum2 += fircoef_[j + 1] * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos + i + NSFIRLEN - j - 1]);\n        }\n        ns_hpfsmpl[chn][i] = sum1 + sum2;\n      }\n      masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n      masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n      if (n_chn_psy > 2) {\n        masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n        masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n      }\n    }\n    for (var chn = 0; chn < n_chn_psy; chn++) {\n      var attack_intensity = new_float$a(12);\n      var en_subshort = new_float$a(12);\n      var en_short = [0, 0, 0, 0];\n      var pf = ns_hpfsmpl[chn & 1];\n      var pfPos = 0;\n      var attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n      var ns_uselongblock = 1;\n      if (chn == 2) {\n        for (var i = 0, j = 576; j > 0; ++i, --j) {\n          var l = ns_hpfsmpl[0][i];\n          var r = ns_hpfsmpl[1][i];\n          ns_hpfsmpl[0][i] = l + r;\n          ns_hpfsmpl[1][i] = l - r;\n        }\n      }\n      for (var i = 0; i < 3; i++) {\n        en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n        assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n        attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n        en_short[0] += en_subshort[i];\n      }\n      for (var i = 0; i < 9; i++) {\n        var pfe = pfPos + 576 / 9;\n        var p2 = 1;\n        for (; pfPos < pfe; pfPos++) {\n          if (p2 < Math.abs(pf[pfPos]))\n            p2 = Math.abs(pf[pfPos]);\n        }\n        gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n        en_short[1 + i / 3] += p2;\n        if (p2 > en_subshort[i + 3 - 2]) {\n          assert$9(en_subshort[i + 3 - 2] > 0);\n          p2 = p2 / en_subshort[i + 3 - 2];\n        } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n          p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n        } else {\n          p2 = 0;\n        }\n        attack_intensity[i + 3] = p2;\n      }\n      for (var i = 0; i < 3; ++i) {\n        var enn = en_subshort[i * 3 + 3] + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n        var factor = 1;\n        if (en_subshort[i * 3 + 5] * 6 < enn) {\n          factor *= 0.5;\n          if (en_subshort[i * 3 + 4] * 6 < enn) {\n            factor *= 0.5;\n          }\n        }\n        sub_short_factor[chn][i] = factor;\n      }\n      if (gfp.analysis) {\n        var x = attack_intensity[0];\n        for (var i = 1; i < 12; i++) {\n          if (x < attack_intensity[i]) {\n            x = attack_intensity[i];\n          }\n        }\n        gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n        gfc.pinfo.ers_save[chn] = x;\n      }\n      for (var i = 0; i < 12; i++) {\n        if (ns_attacks[chn][i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n          ns_attacks[chn][i / 3] = i % 3 + 1;\n        }\n      }\n      for (var i = 1; i < 4; i++) {\n        var u = en_short[i - 1];\n        var v = en_short[i];\n        var m = Math.max(u, v);\n        if (m < 4e4) {\n          if (u < 1.7 * v && v < 1.7 * u) {\n            if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n              ns_attacks[chn][0] = 0;\n            }\n            ns_attacks[chn][i] = 0;\n          }\n        }\n      }\n      if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n        ns_attacks[chn][0] = 0;\n      }\n      if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[chn][0] + ns_attacks[chn][1] + ns_attacks[chn][2] + ns_attacks[chn][3] != 0) {\n        ns_uselongblock = 0;\n        if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n          ns_attacks[chn][1] = 0;\n        }\n        if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n          ns_attacks[chn][2] = 0;\n        }\n        if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n          ns_attacks[chn][3] = 0;\n        }\n      }\n      if (chn < 2) {\n        uselongblock[chn] = ns_uselongblock;\n      } else {\n        if (ns_uselongblock == 0) {\n          uselongblock[0] = uselongblock[1] = 0;\n        }\n      }\n      energy[chn] = gfc.tot_ener[chn];\n    }\n  }\n  function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n    if (sblock == 0) {\n      for (var b = 0; b < gfc.npart_s; b++) {\n        gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n        gfc.nb_s1[chn][b] = 0;\n      }\n    }\n  }\n  function vbrpsy_skip_masking_l(gfc, chn) {\n    for (var b = 0; b < gfc.npart_l; b++) {\n      gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n      gfc.nb_1[chn][b] = 0;\n    }\n  }\n  function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n    var last_tab_entry = tab.length - 1;\n    var b = 0;\n    var a = avg[b] + avg[b + 1];\n    if (a > 0) {\n      var m = max[b];\n      if (m < max[b + 1])\n        m = max[b + 1];\n      assert$9(gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n      a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n      var k = 0 | a;\n      if (k > last_tab_entry)\n        k = last_tab_entry;\n      mask_idx[b] = k;\n    } else {\n      mask_idx[b] = 0;\n    }\n    for (b = 1; b < gfc.npart_s - 1; b++) {\n      a = avg[b - 1] + avg[b] + avg[b + 1];\n      assert$9(b + 1 < gfc.npart_s);\n      if (a > 0) {\n        var m = max[b - 1];\n        if (m < max[b])\n          m = max[b];\n        if (m < max[b + 1])\n          m = max[b + 1];\n        assert$9(\n          gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0\n        );\n        a = 20 * (m * 3 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n        var k = 0 | a;\n        if (k > last_tab_entry)\n          k = last_tab_entry;\n        mask_idx[b] = k;\n      } else {\n        mask_idx[b] = 0;\n      }\n    }\n    assert$9(b == gfc.npart_s - 1);\n    a = avg[b - 1] + avg[b];\n    if (a > 0) {\n      var m = max[b - 1];\n      if (m < max[b])\n        m = max[b];\n      assert$9(gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1 > 0);\n      a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n      var k = 0 | a;\n      if (k > last_tab_entry)\n        k = last_tab_entry;\n      mask_idx[b] = k;\n    } else {\n      mask_idx[b] = 0;\n    }\n    assert$9(b == gfc.npart_s - 1);\n  }\n  function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n    var gfc = gfp.internal_flags;\n    var max = new float[Encoder.CBANDS]();\n    var avg = new_float$a(Encoder.CBANDS);\n    var i, j, b;\n    var mask_idx_s = new int[Encoder.CBANDS]();\n    for (b = j = 0; b < gfc.npart_s; ++b) {\n      var ebb = 0;\n      var m = 0;\n      var n = gfc.numlines_s[b];\n      for (i = 0; i < n; ++i, ++j) {\n        var el = fftenergy_s[sblock][j];\n        ebb += el;\n        if (m < el)\n          m = el;\n      }\n      eb[b] = ebb;\n      max[b] = m;\n      avg[b] = ebb / n;\n      assert$9(avg[b] >= 0);\n    }\n    assert$9(b == gfc.npart_s);\n    for (; b < Encoder.CBANDS; ++b) {\n      max[b] = 0;\n      avg[b] = 0;\n    }\n    psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n    for (j = b = 0; b < gfc.npart_s; b++) {\n      var kk = gfc.s3ind_s[b][0];\n      var last = gfc.s3ind_s[b][1];\n      var dd, dd_n;\n      var x, ecb, avg_mask;\n      dd = mask_idx_s[kk];\n      dd_n = 1;\n      ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n      ++j;\n      ++kk;\n      while (kk <= last) {\n        dd += mask_idx_s[kk];\n        dd_n += 1;\n        x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n        ecb = vbrpsy_mask_add(ecb, x, kk - b);\n        ++j;\n        ++kk;\n      }\n      dd = (1 + 2 * dd) / (2 * dd_n);\n      avg_mask = tab[dd] * 0.5;\n      ecb *= avg_mask;\n      thr[b] = ecb;\n      gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n      gfc.nb_s1[chn][b] = ecb;\n      {\n        x = max[b];\n        x *= gfc.minval_s[b];\n        x *= avg_mask;\n        if (thr[b] > x) {\n          thr[b] = x;\n        }\n      }\n      if (gfc.masking_lower > 1) {\n        thr[b] *= gfc.masking_lower;\n      }\n      if (thr[b] > eb[b]) {\n        thr[b] = eb[b];\n      }\n      if (gfc.masking_lower < 1) {\n        thr[b] *= gfc.masking_lower;\n      }\n      assert$9(thr[b] >= 0);\n    }\n    for (; b < Encoder.CBANDS; ++b) {\n      eb[b] = 0;\n      thr[b] = 0;\n    }\n  }\n  function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n    var max = new_float$a(Encoder.CBANDS);\n    var avg = new_float$a(Encoder.CBANDS);\n    var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n    var b;\n    calc_energy(gfc, fftenergy, eb_l, max, avg);\n    calc_mask_index_l(gfc, max, avg, mask_idx_l);\n    var k = 0;\n    for (b = 0; b < gfc.npart_l; b++) {\n      var x, ecb, avg_mask, t;\n      var kk = gfc.s3ind[b][0];\n      var last = gfc.s3ind[b][1];\n      var dd = 0;\n      var dd_n = 0;\n      dd = mask_idx_l[kk];\n      dd_n += 1;\n      ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n      ++k;\n      ++kk;\n      while (kk <= last) {\n        dd += mask_idx_l[kk];\n        dd_n += 1;\n        x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n        t = vbrpsy_mask_add(ecb, x, kk - b);\n        ecb = t;\n        ++k;\n        ++kk;\n      }\n      dd = (1 + 2 * dd) / (2 * dd_n);\n      avg_mask = tab[dd] * 0.5;\n      ecb *= avg_mask;\n      if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n        var ecb_limit = rpelev * gfc.nb_1[chn][b];\n        if (ecb_limit > 0) {\n          thr[b] = Math.min(ecb, ecb_limit);\n        } else {\n          thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n        }\n      } else {\n        var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n        var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n        var ecb_limit;\n        if (ecb_limit_2 <= 0) {\n          ecb_limit_2 = ecb;\n        }\n        if (ecb_limit_1 <= 0) {\n          ecb_limit_1 = ecb;\n        }\n        if (gfc.blocktype_old[chn & 1] == Encoder.NORM_TYPE) {\n          ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n        } else {\n          ecb_limit = ecb_limit_1;\n        }\n        thr[b] = Math.min(ecb, ecb_limit);\n      }\n      gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n      gfc.nb_1[chn][b] = ecb;\n      {\n        x = max[b];\n        x *= gfc.minval_l[b];\n        x *= avg_mask;\n        if (thr[b] > x) {\n          thr[b] = x;\n        }\n      }\n      if (gfc.masking_lower > 1) {\n        thr[b] *= gfc.masking_lower;\n      }\n      if (thr[b] > eb_l[b]) {\n        thr[b] = eb_l[b];\n      }\n      if (gfc.masking_lower < 1) {\n        thr[b] *= gfc.masking_lower;\n      }\n      assert$9(thr[b] >= 0);\n    }\n    for (; b < Encoder.CBANDS; ++b) {\n      eb_l[b] = 0;\n      thr[b] = 0;\n    }\n  }\n  function vbrpsy_compute_block_type(gfp, uselongblock) {\n    var gfc = gfp.internal_flags;\n    if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n      uselongblock[0] = uselongblock[1] = 0;\n    }\n    for (var chn = 0; chn < gfc.channels_out; chn++) {\n      if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n        uselongblock[chn] = 1;\n      }\n      if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n        uselongblock[chn] = 0;\n      }\n    }\n  }\n  function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n    var gfc = gfp.internal_flags;\n    for (var chn = 0; chn < gfc.channels_out; chn++) {\n      var blocktype = Encoder.NORM_TYPE;\n      if (uselongblock[chn] != 0) {\n        assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n        if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n          blocktype = Encoder.STOP_TYPE;\n        }\n      } else {\n        blocktype = Encoder.SHORT_TYPE;\n        if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n          gfc.blocktype_old[chn] = Encoder.START_TYPE;\n        }\n        if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n          gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n        }\n      }\n      blocktype_d[chn] = gfc.blocktype_old[chn];\n      gfc.blocktype_old[chn] = blocktype;\n    }\n  }\n  function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n    var msfix2 = msfix * 2;\n    var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n    var rside, rmid;\n    for (var b = 0; b < n; ++b) {\n      var ebM = eb[2][b];\n      var ebS = eb[3][b];\n      var thmL = thr[0][b];\n      var thmR = thr[1][b];\n      var thmM = thr[2][b];\n      var thmS = thr[3][b];\n      if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n        var mld_m = cb_mld[b] * ebS;\n        var mld_s = cb_mld[b] * ebM;\n        rmid = Math.max(thmM, Math.min(thmS, mld_m));\n        rside = Math.max(thmS, Math.min(thmM, mld_s));\n      } else {\n        rmid = thmM;\n        rside = thmS;\n      }\n      if (msfix > 0) {\n        var thmLR, thmMS;\n        var ath = ath_cb[b] * athlower;\n        thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n        thmM = Math.max(rmid, ath);\n        thmS = Math.max(rside, ath);\n        thmMS = thmM + thmS;\n        if (thmMS > 0 && thmLR * msfix2 < thmMS) {\n          var f = thmLR * msfix2 / thmMS;\n          thmM *= f;\n          thmS *= f;\n        }\n        rmid = Math.min(thmM, rmid);\n        rside = Math.min(thmS, rside);\n      }\n      if (rmid > ebM) {\n        rmid = ebM;\n      }\n      if (rside > ebS) {\n        rside = ebS;\n      }\n      thr[2][b] = rmid;\n      thr[3][b] = rside;\n    }\n  }\n  this.L3psycho_anal_vbr = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n    var gfc = gfp.internal_flags;\n    var wsamp_l;\n    var wsamp_s;\n    var fftenergy = new_float$a(Encoder.HBLKSIZE);\n    var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n    var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n    var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n    var eb = new_float_n$3([4, Encoder.CBANDS]);\n    var thr = new_float_n$3([4, Encoder.CBANDS]);\n    var sub_short_factor = new_float_n$3([4, 3]);\n    var pcfact = 0.6;\n    var ns_attacks = [\n      [0, 0, 0, 0],\n      [0, 0, 0, 0],\n      [0, 0, 0, 0],\n      [0, 0, 0, 0]\n    ];\n    var uselongblock = new_int$b(2);\n    var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : gfc.channels_out;\n    vbrpsy_attack_detection(\n      gfp,\n      buffer,\n      bufPos,\n      gr_out,\n      masking_ratio,\n      masking_MS_ratio,\n      energy,\n      sub_short_factor,\n      ns_attacks,\n      uselongblock\n    );\n    vbrpsy_compute_block_type(gfp, uselongblock);\n    {\n      for (var chn = 0; chn < n_chn_psy; chn++) {\n        var ch01 = chn & 1;\n        wsamp_l = wsamp_L;\n        vbrpsy_compute_fft_l(\n          gfp,\n          buffer,\n          bufPos,\n          chn,\n          gr_out,\n          fftenergy,\n          wsamp_l,\n          ch01\n        );\n        vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy);\n        if (uselongblock[ch01] != 0) {\n          vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn], chn);\n        } else {\n          vbrpsy_skip_masking_l(gfc, chn);\n        }\n      }\n      if (uselongblock[0] + uselongblock[1] == 2) {\n        if (gfp.mode == MPEGMode.JOINT_STEREO) {\n          vbrpsy_compute_MS_thresholds(\n            eb,\n            thr,\n            gfc.mld_cb_l,\n            gfc.ATH.cb_l,\n            gfp.ATHlower * gfc.ATH.adjust,\n            gfp.msfix,\n            gfc.npart_l\n          );\n        }\n      }\n      for (var chn = 0; chn < n_chn_psy; chn++) {\n        var ch01 = chn & 1;\n        if (uselongblock[ch01] != 0) {\n          convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n        }\n      }\n    }\n    {\n      for (var sblock = 0; sblock < 3; sblock++) {\n        for (var chn = 0; chn < n_chn_psy; ++chn) {\n          var ch01 = chn & 1;\n          if (uselongblock[ch01] != 0) {\n            vbrpsy_skip_masking_s(gfc, chn, sblock);\n          } else {\n            wsamp_s = wsamp_S;\n            vbrpsy_compute_fft_s(\n              gfp,\n              buffer,\n              bufPos,\n              chn,\n              sblock,\n              fftenergy_s,\n              wsamp_s,\n              ch01\n            );\n            vbrpsy_compute_masking_s(\n              gfp,\n              fftenergy_s,\n              eb[chn],\n              thr[chn],\n              chn,\n              sblock\n            );\n          }\n        }\n        if (uselongblock[0] + uselongblock[1] == 0) {\n          if (gfp.mode == MPEGMode.JOINT_STEREO) {\n            vbrpsy_compute_MS_thresholds(\n              eb,\n              thr,\n              gfc.mld_cb_s,\n              gfc.ATH.cb_s,\n              gfp.ATHlower * gfc.ATH.adjust,\n              gfp.msfix,\n              gfc.npart_s\n            );\n          }\n        }\n        for (var chn = 0; chn < n_chn_psy; ++chn) {\n          var ch01 = chn & 1;\n          if (uselongblock[ch01] == 0) {\n            convert_partition2scalefac_s(gfc, eb[chn], thr[chn], chn, sblock);\n          }\n        }\n      }\n      for (var chn = 0; chn < n_chn_psy; chn++) {\n        var ch01 = chn & 1;\n        if (uselongblock[ch01] != 0) {\n          continue;\n        }\n        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n          var new_thmm = new_float$a(3);\n          for (var sblock = 0; sblock < 3; sblock++) {\n            var thmm = gfc.thm[chn].s[sb][sblock];\n            thmm *= NS_PREECHO_ATT0;\n            if (ns_attacks[chn][sblock] >= 2 || ns_attacks[chn][sblock + 1] == 1) {\n              var idx = sblock != 0 ? sblock - 1 : 2;\n              var p2 = NS_INTERP(\n                gfc.thm[chn].s[sb][idx],\n                thmm,\n                NS_PREECHO_ATT1 * pcfact\n              );\n              thmm = Math.min(thmm, p2);\n            } else if (ns_attacks[chn][sblock] == 1) {\n              var idx = sblock != 0 ? sblock - 1 : 2;\n              var p2 = NS_INTERP(\n                gfc.thm[chn].s[sb][idx],\n                thmm,\n                NS_PREECHO_ATT2 * pcfact\n              );\n              thmm = Math.min(thmm, p2);\n            } else if (sblock != 0 && ns_attacks[chn][sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n              var idx = sblock != 2 ? sblock + 1 : 0;\n              var p2 = NS_INTERP(\n                gfc.thm[chn].s[sb][idx],\n                thmm,\n                NS_PREECHO_ATT2 * pcfact\n              );\n              thmm = Math.min(thmm, p2);\n            }\n            thmm *= sub_short_factor[chn][sblock];\n            new_thmm[sblock] = thmm;\n          }\n          for (var sblock = 0; sblock < 3; sblock++) {\n            gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n          }\n        }\n      }\n    }\n    for (var chn = 0; chn < n_chn_psy; chn++) {\n      gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n    }\n    vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n    for (var chn = 0; chn < n_chn_psy; chn++) {\n      var ppe;\n      var ppePos;\n      var type;\n      var mr;\n      if (chn > 1) {\n        ppe = percep_MS_entropy;\n        ppePos = -2;\n        type = Encoder.NORM_TYPE;\n        if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n          type = Encoder.SHORT_TYPE;\n        }\n        mr = masking_MS_ratio[gr_out][chn - 2];\n      } else {\n        ppe = percep_entropy;\n        ppePos = 0;\n        type = blocktype_d[chn];\n        mr = masking_ratio[gr_out][chn];\n      }\n      if (type == Encoder.SHORT_TYPE) {\n        ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n      } else {\n        ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n      }\n      if (gfp.analysis) {\n        gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n      }\n    }\n    return 0;\n  };\n  function s3_func_x(bark, hf_slope) {\n    var tempx = bark;\n    var tempy;\n    if (tempx >= 0) {\n      tempy = -tempx * 27;\n    } else {\n      tempy = tempx * hf_slope;\n    }\n    if (tempy <= -72) {\n      return 0;\n    }\n    return Math.exp(tempy * LN_TO_LOG10);\n  }\n  function norm_s3_func_x(hf_slope) {\n    var lim_a = 0;\n    var lim_b = 0;\n    {\n      var x = 0;\n      var l;\n      var h2;\n      for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n        ;\n      l = x;\n      h2 = 0;\n      while (Math.abs(h2 - l) > 1e-12) {\n        x = (h2 + l) / 2;\n        if (s3_func_x(x, hf_slope) > 0) {\n          h2 = x;\n        } else {\n          l = x;\n        }\n      }\n      lim_a = l;\n    }\n    {\n      var x = 0;\n      var l;\n      var h2;\n      for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n        ;\n      l = 0;\n      h2 = x;\n      while (Math.abs(h2 - l) > 1e-12) {\n        x = (h2 + l) / 2;\n        if (s3_func_x(x, hf_slope) > 0) {\n          l = x;\n        } else {\n          h2 = x;\n        }\n      }\n      lim_b = h2;\n    }\n    {\n      var sum = 0;\n      var m = 1e3;\n      var i;\n      for (i = 0; i <= m; ++i) {\n        var x = lim_a + i * (lim_b - lim_a) / m;\n        var y = s3_func_x(x, hf_slope);\n        sum += y;\n      }\n      {\n        var norm = (m + 1) / (sum * (lim_b - lim_a));\n        return norm;\n      }\n    }\n  }\n  function s3_func(bark) {\n    var tempx, x, tempy, temp;\n    tempx = bark;\n    if (tempx >= 0)\n      tempx *= 3;\n    else\n      tempx *= 1.5;\n    if (tempx >= 0.5 && tempx <= 2.5) {\n      temp = tempx - 0.5;\n      x = 8 * (temp * temp - 2 * temp);\n    } else\n      x = 0;\n    tempx += 0.474;\n    tempy = 15.811389 + 7.5 * tempx - 17.5 * Math.sqrt(1 + tempx * tempx);\n    if (tempy <= -60)\n      return 0;\n    tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n    tempx /= 0.6609193;\n    return tempx;\n  }\n  function freq2bark(freq) {\n    if (freq < 0)\n      freq = 0;\n    freq = freq * 1e-3;\n    return 13 * Math.atan(0.76 * freq) + 3.5 * Math.atan(freq * freq / (7.5 * 7.5));\n  }\n  function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n    var b_frq = new_float$a(Encoder.CBANDS + 1);\n    var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n    var partition = new_int$b(Encoder.HBLKSIZE);\n    var i;\n    sfreq /= blksize;\n    var j = 0;\n    var ni = 0;\n    for (i = 0; i < Encoder.CBANDS; i++) {\n      var bark1;\n      var j2;\n      bark1 = freq2bark(sfreq * j);\n      b_frq[i] = sfreq * j;\n      for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK && j2 <= blksize / 2; j2++)\n        ;\n      numlines[i] = j2 - j;\n      ni = i + 1;\n      while (j < j2) {\n        partition[j++] = i;\n      }\n      if (j > blksize / 2) {\n        j = blksize / 2;\n        ++i;\n        break;\n      }\n    }\n    b_frq[i] = sfreq * j;\n    for (var sfb = 0; sfb < sbmax; sfb++) {\n      var i1, i2, start, end;\n      var arg;\n      start = scalepos[sfb];\n      end = scalepos[sfb + 1];\n      i1 = 0 | Math.floor(0.5 + deltafreq * (start - 0.5));\n      if (i1 < 0)\n        i1 = 0;\n      i2 = 0 | Math.floor(0.5 + deltafreq * (end - 0.5));\n      if (i2 > blksize / 2)\n        i2 = blksize / 2;\n      bm[sfb] = (partition[i1] + partition[i2]) / 2;\n      bo[sfb] = partition[i2];\n      var f_tmp = sample_freq_frac * end;\n      bo_w[sfb] = (f_tmp - b_frq[bo[sfb]]) / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n      if (bo_w[sfb] < 0) {\n        bo_w[sfb] = 0;\n      } else {\n        if (bo_w[sfb] > 1) {\n          bo_w[sfb] = 1;\n        }\n      }\n      arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n      arg = Math.min(arg, 15.5) / 15.5;\n      mld[sfb] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n    }\n    j = 0;\n    for (var k = 0; k < ni; k++) {\n      var w = numlines[k];\n      var bark1, bark2;\n      bark1 = freq2bark(sfreq * j);\n      bark2 = freq2bark(sfreq * (j + w - 1));\n      bval[k] = 0.5 * (bark1 + bark2);\n      bark1 = freq2bark(sfreq * (j - 0.5));\n      bark2 = freq2bark(sfreq * (j + w - 0.5));\n      bval_width[k] = bark2 - bark1;\n      j += w;\n    }\n    return ni;\n  }\n  function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n    var s3 = new_float_n$3([Encoder.CBANDS, Encoder.CBANDS]);\n    var j;\n    var numberOfNoneZero = 0;\n    if (use_old_s3) {\n      for (var i = 0; i < npart; i++) {\n        for (j = 0; j < npart; j++) {\n          var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n          s3[i][j] = v * norm[i];\n        }\n      }\n    } else {\n      for (j = 0; j < npart; j++) {\n        var hf_slope = 15 + Math.min(21 / bval[j], 12);\n        var s3_x_norm = norm_s3_func_x(hf_slope);\n        for (var i = 0; i < npart; i++) {\n          var v = s3_x_norm * s3_func_x(bval[i] - bval[j], hf_slope) * bval_width[j];\n          s3[i][j] = v * norm[i];\n        }\n      }\n    }\n    for (var i = 0; i < npart; i++) {\n      for (j = 0; j < npart; j++) {\n        if (s3[i][j] > 0)\n          break;\n      }\n      s3ind[i][0] = j;\n      for (j = npart - 1; j > 0; j--) {\n        if (s3[i][j] > 0)\n          break;\n      }\n      s3ind[i][1] = j;\n      numberOfNoneZero += s3ind[i][1] - s3ind[i][0] + 1;\n    }\n    var p2 = new_float$a(numberOfNoneZero);\n    var k = 0;\n    for (var i = 0; i < npart; i++) {\n      for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n        p2[k++] = s3[i][j];\n    }\n    return p2;\n  }\n  function stereo_demask(f) {\n    var arg = freq2bark(f);\n    arg = Math.min(arg, 15.5) / 15.5;\n    return Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n  }\n  this.psymodel_init = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var i;\n    var useOldS3 = true;\n    var bvl_a = 13;\n    var bvl_b = 24;\n    var snr_l_a = 0;\n    var snr_l_b = 0;\n    var snr_s_a = -8.25;\n    var snr_s_b = -4.5;\n    var bval = new_float$a(Encoder.CBANDS);\n    var bval_width = new_float$a(Encoder.CBANDS);\n    var norm = new_float$a(Encoder.CBANDS);\n    var sfreq = gfp.out_samplerate;\n    switch (gfp.experimentalZ) {\n      default:\n      case 0:\n        useOldS3 = true;\n        break;\n      case 1:\n        useOldS3 = !(gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt);\n        break;\n      case 2:\n        useOldS3 = false;\n        break;\n      case 3:\n        bvl_a = 8;\n        snr_l_a = -1.75;\n        snr_l_b = -0.0125;\n        snr_s_a = -8.25;\n        snr_s_b = -2.25;\n        break;\n    }\n    gfc.ms_ener_ratio_old = 0.25;\n    gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n    for (i = 0; i < 4; ++i) {\n      for (var j = 0; j < Encoder.CBANDS; ++j) {\n        gfc.nb_1[i][j] = 1e20;\n        gfc.nb_2[i][j] = 1e20;\n        gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1;\n      }\n      for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n        gfc.en[i].l[sb] = 1e20;\n        gfc.thm[i].l[sb] = 1e20;\n      }\n      for (var j = 0; j < 3; ++j) {\n        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n          gfc.en[i].s[sb][j] = 1e20;\n          gfc.thm[i].s[sb][j] = 1e20;\n        }\n        gfc.nsPsy.lastAttacks[i] = 0;\n      }\n      for (var j = 0; j < 9; j++)\n        gfc.nsPsy.last_en_subshort[i][j] = 10;\n    }\n    gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0;\n    gfc.npart_l = init_numline(\n      gfc.numlines_l,\n      gfc.bo_l,\n      gfc.bm_l,\n      bval,\n      bval_width,\n      gfc.mld_l,\n      gfc.PSY.bo_l_weight,\n      sfreq,\n      Encoder.BLKSIZE,\n      gfc.scalefac_band.l,\n      Encoder.BLKSIZE / (2 * 576),\n      Encoder.SBMAX_l\n    );\n    assert$9(gfc.npart_l < Encoder.CBANDS);\n    for (i = 0; i < gfc.npart_l; i++) {\n      var snr = snr_l_a;\n      if (bval[i] >= bvl_a) {\n        snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n      }\n      norm[i] = Math.pow(10, snr / 10);\n      if (gfc.numlines_l[i] > 0) {\n        gfc.rnumlines_l[i] = 1 / gfc.numlines_l[i];\n      } else {\n        gfc.rnumlines_l[i] = 0;\n      }\n    }\n    gfc.s3_ll = init_s3_values(\n      gfc.s3ind,\n      gfc.npart_l,\n      bval,\n      bval_width,\n      norm,\n      useOldS3\n    );\n    var j = 0;\n    for (i = 0; i < gfc.npart_l; i++) {\n      var x;\n      x = Float$1.MAX_VALUE;\n      for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n        var freq = sfreq * j / (1e3 * Encoder.BLKSIZE);\n        var level;\n        level = this.ATHformula(freq * 1e3, gfp) - 20;\n        level = Math.pow(10, 0.1 * level);\n        level *= gfc.numlines_l[i];\n        if (x > level)\n          x = level;\n      }\n      gfc.ATH.cb_l[i] = x;\n      x = -20 + bval[i] * 20 / 10;\n      if (x > 6) {\n        x = 100;\n      }\n      if (x < -15) {\n        x = -15;\n      }\n      x -= 8;\n      gfc.minval_l[i] = Math.pow(10, x / 10) * gfc.numlines_l[i];\n    }\n    gfc.npart_s = init_numline(\n      gfc.numlines_s,\n      gfc.bo_s,\n      gfc.bm_s,\n      bval,\n      bval_width,\n      gfc.mld_s,\n      gfc.PSY.bo_s_weight,\n      sfreq,\n      Encoder.BLKSIZE_s,\n      gfc.scalefac_band.s,\n      Encoder.BLKSIZE_s / (2 * 192),\n      Encoder.SBMAX_s\n    );\n    assert$9(gfc.npart_s < Encoder.CBANDS);\n    j = 0;\n    for (i = 0; i < gfc.npart_s; i++) {\n      var x;\n      var snr = snr_s_a;\n      if (bval[i] >= bvl_a) {\n        snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n      }\n      norm[i] = Math.pow(10, snr / 10);\n      x = Float$1.MAX_VALUE;\n      for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n        var freq = sfreq * j / (1e3 * Encoder.BLKSIZE_s);\n        var level;\n        level = this.ATHformula(freq * 1e3, gfp) - 20;\n        level = Math.pow(10, 0.1 * level);\n        level *= gfc.numlines_s[i];\n        if (x > level)\n          x = level;\n      }\n      gfc.ATH.cb_s[i] = x;\n      x = -7 + bval[i] * 7 / 12;\n      if (bval[i] > 12) {\n        x *= 1 + Math.log(1 + x) * 3.1;\n      }\n      if (bval[i] < 12) {\n        x *= 1 + Math.log(1 - x) * 2.3;\n      }\n      if (x < -15) {\n        x = -15;\n      }\n      x -= 8;\n      gfc.minval_s[i] = Math.pow(10, x / 10) * gfc.numlines_s[i];\n    }\n    gfc.s3_ss = init_s3_values(\n      gfc.s3ind_s,\n      gfc.npart_s,\n      bval,\n      bval_width,\n      norm,\n      useOldS3\n    );\n    init_mask_add_max_values();\n    fft.init_fft(gfc);\n    gfc.decay = Math.exp(\n      -1 * LOG10 / (temporalmask_sustain_sec * sfreq / 192)\n    );\n    {\n      var msfix;\n      msfix = NS_MSFIX;\n      if ((gfp.exp_nspsytune & 2) != 0)\n        msfix = 1;\n      if (Math.abs(gfp.msfix) > 0)\n        msfix = gfp.msfix;\n      gfp.msfix = msfix;\n      for (var b = 0; b < gfc.npart_l; b++) {\n        if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n          gfc.s3ind[b][1] = gfc.npart_l - 1;\n      }\n    }\n    var frame_duration = 576 * gfc.mode_gr / sfreq;\n    gfc.ATH.decay = Math.pow(10, -12 / 10 * frame_duration);\n    gfc.ATH.adjust = 0.01;\n    gfc.ATH.adjustLimit = 1;\n    assert$9(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n    assert$9(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n    if (gfp.ATHtype != -1) {\n      var freq;\n      var freq_inc = gfp.out_samplerate / Encoder.BLKSIZE;\n      var eql_balance = 0;\n      freq = 0;\n      for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n        freq += freq_inc;\n        gfc.ATH.eql_w[i] = 1 / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n        eql_balance += gfc.ATH.eql_w[i];\n      }\n      eql_balance = 1 / eql_balance;\n      for (i = Encoder.BLKSIZE / 2; --i >= 0; ) {\n        gfc.ATH.eql_w[i] *= eql_balance;\n      }\n    }\n    {\n      for (var b = j = 0; b < gfc.npart_s; ++b) {\n        for (i = 0; i < gfc.numlines_s[b]; ++i) {\n          ++j;\n        }\n      }\n      for (var b = j = 0; b < gfc.npart_l; ++b) {\n        for (i = 0; i < gfc.numlines_l[b]; ++i) {\n          ++j;\n        }\n      }\n    }\n    j = 0;\n    for (i = 0; i < gfc.npart_l; i++) {\n      var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1 * Encoder.BLKSIZE);\n      gfc.mld_cb_l[i] = stereo_demask(freq);\n      j += gfc.numlines_l[i];\n    }\n    for (; i < Encoder.CBANDS; ++i) {\n      gfc.mld_cb_l[i] = 1;\n    }\n    j = 0;\n    for (i = 0; i < gfc.npart_s; i++) {\n      var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1 * Encoder.BLKSIZE_s);\n      gfc.mld_cb_s[i] = stereo_demask(freq);\n      j += gfc.numlines_s[i];\n    }\n    for (; i < Encoder.CBANDS; ++i) {\n      gfc.mld_cb_s[i] = 1;\n    }\n    return 0;\n  };\n  function ATHformula_GB(f, value) {\n    if (f < -0.3)\n      f = 3410;\n    f /= 1e3;\n    f = Math.max(0.1, f);\n    var ath = 3.64 * Math.pow(f, -0.8) - 6.8 * Math.exp(-0.6 * Math.pow(f - 3.4, 2)) + 6 * Math.exp(-0.15 * Math.pow(f - 8.7, 2)) + (0.6 + 0.04 * value) * 1e-3 * Math.pow(f, 4);\n    return ath;\n  }\n  this.ATHformula = function(f, gfp) {\n    var ath;\n    switch (gfp.ATHtype) {\n      case 0:\n        ath = ATHformula_GB(f, 9);\n        break;\n      case 1:\n        ath = ATHformula_GB(f, -1);\n        break;\n      case 2:\n        ath = ATHformula_GB(f, 0);\n        break;\n      case 3:\n        ath = ATHformula_GB(f, 1) + 6;\n        break;\n      case 4:\n        ath = ATHformula_GB(f, gfp.ATHcurve);\n        break;\n      default:\n        ath = ATHformula_GB(f, 0);\n        break;\n    }\n    return ath;\n  };\n}\nfunction LameGlobalFlags() {\n  this.class_id = 0;\n  this.num_samples = 0;\n  this.num_channels = 0;\n  this.in_samplerate = 0;\n  this.out_samplerate = 0;\n  this.scale = 0;\n  this.scale_left = 0;\n  this.scale_right = 0;\n  this.analysis = false;\n  this.bWriteVbrTag = false;\n  this.decode_only = false;\n  this.quality = 0;\n  this.mode = MPEGMode.STEREO;\n  this.force_ms = false;\n  this.free_format = false;\n  this.findReplayGain = false;\n  this.decode_on_the_fly = false;\n  this.write_id3tag_automatic = false;\n  this.brate = 0;\n  this.compression_ratio = 0;\n  this.copyright = 0;\n  this.original = 0;\n  this.extension = 0;\n  this.emphasis = 0;\n  this.error_protection = 0;\n  this.strict_ISO = false;\n  this.disable_reservoir = false;\n  this.quant_comp = 0;\n  this.quant_comp_short = 0;\n  this.experimentalY = false;\n  this.experimentalZ = 0;\n  this.exp_nspsytune = 0;\n  this.preset = 0;\n  this.VBR = null;\n  this.VBR_q_frac = 0;\n  this.VBR_q = 0;\n  this.VBR_mean_bitrate_kbps = 0;\n  this.VBR_min_bitrate_kbps = 0;\n  this.VBR_max_bitrate_kbps = 0;\n  this.VBR_hard_min = 0;\n  this.lowpassfreq = 0;\n  this.highpassfreq = 0;\n  this.lowpasswidth = 0;\n  this.highpasswidth = 0;\n  this.maskingadjust = 0;\n  this.maskingadjust_short = 0;\n  this.ATHonly = false;\n  this.ATHshort = false;\n  this.noATH = false;\n  this.ATHtype = 0;\n  this.ATHcurve = 0;\n  this.ATHlower = 0;\n  this.athaa_type = 0;\n  this.athaa_loudapprox = 0;\n  this.athaa_sensitivity = 0;\n  this.short_blocks = null;\n  this.useTemporal = false;\n  this.interChRatio = 0;\n  this.msfix = 0;\n  this.tune = false;\n  this.tune_value_a = 0;\n  this.version = 0;\n  this.encoder_delay = 0;\n  this.encoder_padding = 0;\n  this.framesize = 0;\n  this.frameNum = 0;\n  this.lame_allocated_gfp = 0;\n  this.internal_flags = null;\n}\nvar L3Side$1 = {};\nL3Side$1.SFBMAX = Encoder.SBMAX_s * 3;\nvar new_float$9 = common.new_float;\nvar new_int$a = common.new_int;\nfunction GrInfo() {\n  this.xr = new_float$9(576);\n  this.l3_enc = new_int$a(576);\n  this.scalefac = new_int$a(L3Side$1.SFBMAX);\n  this.xrpow_max = 0;\n  this.part2_3_length = 0;\n  this.big_values = 0;\n  this.count1 = 0;\n  this.global_gain = 0;\n  this.scalefac_compress = 0;\n  this.block_type = 0;\n  this.mixed_block_flag = 0;\n  this.table_select = new_int$a(3);\n  this.subblock_gain = new_int$a(3 + 1);\n  this.region0_count = 0;\n  this.region1_count = 0;\n  this.preflag = 0;\n  this.scalefac_scale = 0;\n  this.count1table_select = 0;\n  this.part2_length = 0;\n  this.sfb_lmax = 0;\n  this.sfb_smin = 0;\n  this.psy_lmax = 0;\n  this.sfbmax = 0;\n  this.psymax = 0;\n  this.sfbdivide = 0;\n  this.width = new_int$a(L3Side$1.SFBMAX);\n  this.window = new_int$a(L3Side$1.SFBMAX);\n  this.count1bits = 0;\n  this.sfb_partition_table = null;\n  this.slen = new_int$a(4);\n  this.max_nonzero_coeff = 0;\n  var self2 = this;\n  function clone_int(array) {\n    return new Int32Array(array);\n  }\n  function clone_float(array) {\n    return new Float32Array(array);\n  }\n  this.assign = function(other) {\n    self2.xr = clone_float(other.xr);\n    self2.l3_enc = clone_int(other.l3_enc);\n    self2.scalefac = clone_int(other.scalefac);\n    self2.xrpow_max = other.xrpow_max;\n    self2.part2_3_length = other.part2_3_length;\n    self2.big_values = other.big_values;\n    self2.count1 = other.count1;\n    self2.global_gain = other.global_gain;\n    self2.scalefac_compress = other.scalefac_compress;\n    self2.block_type = other.block_type;\n    self2.mixed_block_flag = other.mixed_block_flag;\n    self2.table_select = clone_int(other.table_select);\n    self2.subblock_gain = clone_int(other.subblock_gain);\n    self2.region0_count = other.region0_count;\n    self2.region1_count = other.region1_count;\n    self2.preflag = other.preflag;\n    self2.scalefac_scale = other.scalefac_scale;\n    self2.count1table_select = other.count1table_select;\n    self2.part2_length = other.part2_length;\n    self2.sfb_lmax = other.sfb_lmax;\n    self2.sfb_smin = other.sfb_smin;\n    self2.psy_lmax = other.psy_lmax;\n    self2.sfbmax = other.sfbmax;\n    self2.psymax = other.psymax;\n    self2.sfbdivide = other.sfbdivide;\n    self2.width = clone_int(other.width);\n    self2.window = clone_int(other.window);\n    self2.count1bits = other.count1bits;\n    self2.sfb_partition_table = other.sfb_partition_table.slice(0);\n    self2.slen = clone_int(other.slen);\n    self2.max_nonzero_coeff = other.max_nonzero_coeff;\n  };\n}\nvar new_int$9 = common.new_int;\nfunction IIISideInfo() {\n  this.tt = [\n    [null, null],\n    [null, null]\n  ];\n  this.main_data_begin = 0;\n  this.private_bits = 0;\n  this.resvDrain_pre = 0;\n  this.resvDrain_post = 0;\n  this.scfsi = [new_int$9(4), new_int$9(4)];\n  for (var gr = 0; gr < 2; gr++) {\n    for (var ch = 0; ch < 2; ch++) {\n      this.tt[gr][ch] = new GrInfo();\n    }\n  }\n}\nvar System$6 = common.System;\nvar new_int$8 = common.new_int;\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n  this.l = new_int$8(1 + Encoder.SBMAX_l);\n  this.s = new_int$8(1 + Encoder.SBMAX_s);\n  this.psfb21 = new_int$8(1 + Encoder.PSFB21);\n  this.psfb12 = new_int$8(1 + Encoder.PSFB12);\n  var l = this.l;\n  var s = this.s;\n  if (arguments.length == 4) {\n    this.arrL = arguments[0];\n    this.arrS = arguments[1];\n    this.arr21 = arguments[2];\n    this.arr12 = arguments[3];\n    System$6.arraycopy(\n      this.arrL,\n      0,\n      l,\n      0,\n      Math.min(this.arrL.length, this.l.length)\n    );\n    System$6.arraycopy(\n      this.arrS,\n      0,\n      s,\n      0,\n      Math.min(this.arrS.length, this.s.length)\n    );\n    System$6.arraycopy(\n      this.arr21,\n      0,\n      this.psfb21,\n      0,\n      Math.min(this.arr21.length, this.psfb21.length)\n    );\n    System$6.arraycopy(\n      this.arr12,\n      0,\n      this.psfb12,\n      0,\n      Math.min(this.arr12.length, this.psfb12.length)\n    );\n  }\n}\nvar new_float$8 = common.new_float;\nvar new_float_n$2 = common.new_float_n;\nvar new_int$7 = common.new_int;\nfunction NsPsy() {\n  this.last_en_subshort = new_float_n$2([4, 9]);\n  this.lastAttacks = new_int$7(4);\n  this.pefirbuf = new_float$8(19);\n  this.longfact = new_float$8(Encoder.SBMAX_l);\n  this.shortfact = new_float$8(Encoder.SBMAX_s);\n  this.attackthre = 0;\n  this.attackthre_s = 0;\n}\nfunction VBRSeekInfo() {\n  this.sum = 0;\n  this.seen = 0;\n  this.want = 0;\n  this.pos = 0;\n  this.size = 0;\n  this.bag = null;\n  this.nVbrNumFrames = 0;\n  this.nBytesWritten = 0;\n  this.TotalFrameSize = 0;\n}\nvar new_byte$3 = common.new_byte;\nvar new_double = common.new_double;\nvar new_float$7 = common.new_float;\nvar new_float_n$1 = common.new_float_n;\nvar new_int$6 = common.new_int;\nvar new_int_n$1 = common.new_int_n;\nLameInternalFlags$1.MFSIZE = 3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY;\nLameInternalFlags$1.MAX_HEADER_BUF = 256;\nLameInternalFlags$1.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags$1.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags$1.BPC = 320;\nfunction LameInternalFlags$1() {\n  var MAX_HEADER_LEN = 40;\n  this.Class_ID = 0;\n  this.lame_encode_frame_init = 0;\n  this.iteration_init_init = 0;\n  this.fill_buffer_resample_init = 0;\n  this.mfbuf = new_float_n$1([2, LameInternalFlags$1.MFSIZE]);\n  this.mode_gr = 0;\n  this.channels_in = 0;\n  this.channels_out = 0;\n  this.resample_ratio = 0;\n  this.mf_samples_to_encode = 0;\n  this.mf_size = 0;\n  this.VBR_min_bitrate = 0;\n  this.VBR_max_bitrate = 0;\n  this.bitrate_index = 0;\n  this.samplerate_index = 0;\n  this.mode_ext = 0;\n  this.lowpass1 = 0;\n  this.lowpass2 = 0;\n  this.highpass1 = 0;\n  this.highpass2 = 0;\n  this.noise_shaping = 0;\n  this.noise_shaping_amp = 0;\n  this.substep_shaping = 0;\n  this.psymodel = 0;\n  this.noise_shaping_stop = 0;\n  this.subblock_gain = 0;\n  this.use_best_huffman = 0;\n  this.full_outer_loop = 0;\n  this.l3_side = new IIISideInfo();\n  this.ms_ratio = new_float$7(2);\n  this.padding = 0;\n  this.frac_SpF = 0;\n  this.slot_lag = 0;\n  this.tag_spec = null;\n  this.nMusicCRC = 0;\n  this.OldValue = new_int$6(2);\n  this.CurrentStep = new_int$6(2);\n  this.masking_lower = 0;\n  this.bv_scf = new_int$6(576);\n  this.pseudohalf = new_int$6(L3Side$1.SFBMAX);\n  this.sfb21_extra = false;\n  this.inbuf_old = new Array(2);\n  this.blackfilt = new Array(2 * LameInternalFlags$1.BPC + 1);\n  this.itime = new_double(2);\n  this.sideinfo_len = 0;\n  this.sb_sample = new_float_n$1([2, 2, 18, Encoder.SBLIMIT]);\n  this.amp_filter = new_float$7(32);\n  function Header() {\n    this.write_timing = 0;\n    this.ptr = 0;\n    this.buf = new_byte$3(MAX_HEADER_LEN);\n  }\n  this.header = new Array(LameInternalFlags$1.MAX_HEADER_BUF);\n  this.h_ptr = 0;\n  this.w_ptr = 0;\n  this.ancillary_flag = 0;\n  this.ResvSize = 0;\n  this.ResvMax = 0;\n  this.scalefac_band = new ScaleFac();\n  this.minval_l = new_float$7(Encoder.CBANDS);\n  this.minval_s = new_float$7(Encoder.CBANDS);\n  this.nb_1 = new_float_n$1([4, Encoder.CBANDS]);\n  this.nb_2 = new_float_n$1([4, Encoder.CBANDS]);\n  this.nb_s1 = new_float_n$1([4, Encoder.CBANDS]);\n  this.nb_s2 = new_float_n$1([4, Encoder.CBANDS]);\n  this.s3_ss = null;\n  this.s3_ll = null;\n  this.decay = 0;\n  this.thm = new Array(4);\n  this.en = new Array(4);\n  this.tot_ener = new_float$7(4);\n  this.loudness_sq = new_float_n$1([2, 2]);\n  this.loudness_sq_save = new_float$7(2);\n  this.mld_l = new_float$7(Encoder.SBMAX_l);\n  this.mld_s = new_float$7(Encoder.SBMAX_s);\n  this.bm_l = new_int$6(Encoder.SBMAX_l);\n  this.bo_l = new_int$6(Encoder.SBMAX_l);\n  this.bm_s = new_int$6(Encoder.SBMAX_s);\n  this.bo_s = new_int$6(Encoder.SBMAX_s);\n  this.npart_l = 0;\n  this.npart_s = 0;\n  this.s3ind = new_int_n$1([Encoder.CBANDS, 2]);\n  this.s3ind_s = new_int_n$1([Encoder.CBANDS, 2]);\n  this.numlines_s = new_int$6(Encoder.CBANDS);\n  this.numlines_l = new_int$6(Encoder.CBANDS);\n  this.rnumlines_l = new_float$7(Encoder.CBANDS);\n  this.mld_cb_l = new_float$7(Encoder.CBANDS);\n  this.mld_cb_s = new_float$7(Encoder.CBANDS);\n  this.numlines_s_num1 = 0;\n  this.numlines_l_num1 = 0;\n  this.pe = new_float$7(4);\n  this.ms_ratio_s_old = 0;\n  this.ms_ratio_l_old = 0;\n  this.ms_ener_ratio_old = 0;\n  this.blocktype_old = new_int$6(2);\n  this.nsPsy = new NsPsy();\n  this.VBR_seek_table = new VBRSeekInfo();\n  this.ATH = null;\n  this.PSY = null;\n  this.nogap_total = 0;\n  this.nogap_current = 0;\n  this.decode_on_the_fly = true;\n  this.findReplayGain = true;\n  this.findPeakSample = true;\n  this.PeakSample = 0;\n  this.RadioGain = 0;\n  this.AudiophileGain = 0;\n  this.rgdata = null;\n  this.noclipGainChange = 0;\n  this.noclipScale = 0;\n  this.bitrate_stereoMode_Hist = new_int_n$1([16, 4 + 1]);\n  this.bitrate_blockType_Hist = new_int_n$1([16, 4 + 1 + 1]);\n  this.pinfo = null;\n  this.hip = null;\n  this.in_buffer_nsamples = 0;\n  this.in_buffer_0 = null;\n  this.in_buffer_1 = null;\n  this.iteration_loop = null;\n  for (var i = 0; i < this.en.length; i++) {\n    this.en[i] = new III_psy_xmin();\n  }\n  for (var i = 0; i < this.thm.length; i++) {\n    this.thm[i] = new III_psy_xmin();\n  }\n  for (var i = 0; i < this.header.length; i++) {\n    this.header[i] = new Header();\n  }\n}\nvar new_float$6 = common.new_float;\nfunction ATH() {\n  this.useAdjust = 0;\n  this.aaSensitivityP = 0;\n  this.adjust = 0;\n  this.adjustLimit = 0;\n  this.decay = 0;\n  this.floor = 0;\n  this.l = new_float$6(Encoder.SBMAX_l);\n  this.s = new_float$6(Encoder.SBMAX_s);\n  this.psfb21 = new_float$6(Encoder.PSFB21);\n  this.psfb12 = new_float$6(Encoder.PSFB12);\n  this.cb_l = new_float$6(Encoder.CBANDS);\n  this.cb_s = new_float$6(Encoder.CBANDS);\n  this.eql_w = new_float$6(Encoder.BLKSIZE / 2);\n}\nvar System$5 = common.System;\nvar Arrays$4 = common.Arrays;\nGainAnalysis$1.STEPS_per_dB = 100;\nGainAnalysis$1.MAX_dB = 120;\nGainAnalysis$1.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis$1.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.YULE_ORDER = 10;\nGainAnalysis$1.MAX_ORDER = GainAnalysis$1.YULE_ORDER;\nGainAnalysis$1.MAX_SAMP_FREQ = 48e3;\nGainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis$1.MAX_SAMPLES_PER_WINDOW = GainAnalysis$1.MAX_SAMP_FREQ * GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR / GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR + 1;\nfunction GainAnalysis$1() {\n  var PINK_REF = 64.82;\n  var RMS_PERCENTILE = 0.95;\n  var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR;\n  var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR;\n  var ABYule = [\n    [\n      0.038575994352,\n      -3.84664617118067,\n      -0.02160367184185,\n      7.81501653005538,\n      -0.00123395316851,\n      -11.34170355132042,\n      -9291677959e-14,\n      13.05504219327545,\n      -0.01655260341619,\n      -12.28759895145294,\n      0.02161526843274,\n      9.4829380631979,\n      -0.02074045215285,\n      -5.87257861775999,\n      0.00594298065125,\n      2.75465861874613,\n      0.00306428023191,\n      -0.86984376593551,\n      12025322027e-14,\n      0.13919314567432,\n      0.00288463683916\n    ],\n    [\n      0.0541865640643,\n      -3.47845948550071,\n      -0.02911007808948,\n      6.36317777566148,\n      -0.00848709379851,\n      -8.54751527471874,\n      -0.00851165645469,\n      9.4769360780128,\n      -0.00834990904936,\n      -8.81498681370155,\n      0.02245293253339,\n      6.85401540936998,\n      -0.02596338512915,\n      -4.39470996079559,\n      0.01624864962975,\n      2.19611684890774,\n      -0.00240879051584,\n      -0.75104302451432,\n      0.00674613682247,\n      0.13149317958808,\n      -0.00187763777362\n    ],\n    [\n      0.15457299681924,\n      -2.37898834973084,\n      -0.09331049056315,\n      2.84868151156327,\n      -0.06247880153653,\n      -2.64577170229825,\n      0.02163541888798,\n      2.23697657451713,\n      -0.05588393329856,\n      -1.67148153367602,\n      0.04781476674921,\n      1.00595954808547,\n      0.00222312597743,\n      -0.45953458054983,\n      0.03174092540049,\n      0.16378164858596,\n      -0.01390589421898,\n      -0.05032077717131,\n      0.00651420667831,\n      0.0234789740702,\n      -0.00881362733839\n    ],\n    [\n      0.30296907319327,\n      -1.61273165137247,\n      -0.22613988682123,\n      1.0797749225997,\n      -0.08587323730772,\n      -0.2565625775407,\n      0.03282930172664,\n      -0.1627671912044,\n      -0.00915702933434,\n      -0.22638893773906,\n      -0.02364141202522,\n      0.39120800788284,\n      -0.00584456039913,\n      -0.22138138954925,\n      0.06276101321749,\n      0.04500235387352,\n      -828086748e-14,\n      0.02005851806501,\n      0.00205861885564,\n      0.00302439095741,\n      -0.02950134983287\n    ],\n    [\n      0.33642304856132,\n      -1.49858979367799,\n      -0.2557224142557,\n      0.87350271418188,\n      -0.11828570177555,\n      0.12205022308084,\n      0.11921148675203,\n      -0.80774944671438,\n      -0.07834489609479,\n      0.47854794562326,\n      -0.0046997791438,\n      -0.12453458140019,\n      -0.0058950022444,\n      -0.04067510197014,\n      0.05724228140351,\n      0.08333755284107,\n      0.00832043980773,\n      -0.04237348025746,\n      -0.0163538138454,\n      0.02977207319925,\n      -0.0176017656815\n    ],\n    [\n      0.4491525660845,\n      -0.62820619233671,\n      -0.14351757464547,\n      0.29661783706366,\n      -0.22784394429749,\n      -0.372563729424,\n      -0.01419140100551,\n      0.00213767857124,\n      0.04078262797139,\n      -0.42029820170918,\n      -0.12398163381748,\n      0.22199650564824,\n      0.04097565135648,\n      0.00613424350682,\n      0.10478503600251,\n      0.06747620744683,\n      -0.01863887810927,\n      0.05784820375801,\n      -0.03193428438915,\n      0.03222754072173,\n      0.00541907748707\n    ],\n    [\n      0.56619470757641,\n      -1.04800335126349,\n      -0.75464456939302,\n      0.29156311971249,\n      0.1624213774223,\n      -0.26806001042947,\n      0.16744243493672,\n      0.00819999645858,\n      -0.18901604199609,\n      0.45054734505008,\n      0.3093178284183,\n      -0.33032403314006,\n      -0.27562961986224,\n      0.0673936833311,\n      0.00647310677246,\n      -0.04784254229033,\n      0.08647503780351,\n      0.01639907836189,\n      -0.0378898455484,\n      0.01807364323573,\n      -0.00588215443421\n    ],\n    [\n      0.58100494960553,\n      -0.51035327095184,\n      -0.53174909058578,\n      -0.31863563325245,\n      -0.14289799034253,\n      -0.20256413484477,\n      0.17520704835522,\n      0.1472815413433,\n      0.02377945217615,\n      0.38952639978999,\n      0.15558449135573,\n      -0.23313271880868,\n      -0.25344790059353,\n      -0.05246019024463,\n      0.01628462406333,\n      -0.02505961724053,\n      0.06920467763959,\n      0.02442357316099,\n      -0.03721611395801,\n      0.01818801111503,\n      -0.00749618797172\n    ],\n    [\n      0.53648789255105,\n      -0.2504987195602,\n      -0.42163034350696,\n      -0.43193942311114,\n      -0.00275953611929,\n      -0.03424681017675,\n      0.04267842219415,\n      -0.04678328784242,\n      -0.10214864179676,\n      0.26408300200955,\n      0.14590772289388,\n      0.15113130533216,\n      -0.02459864859345,\n      -0.17556493366449,\n      -0.11202315195388,\n      -0.18823009262115,\n      -0.04060034127,\n      0.05477720428674,\n      0.0478866554818,\n      0.0470440968812,\n      -0.02217936801134\n    ]\n  ];\n  var ABButter = [\n    [\n      0.98621192462708,\n      -1.97223372919527,\n      -1.97242384925416,\n      0.97261396931306,\n      0.98621192462708\n    ],\n    [\n      0.98500175787242,\n      -1.96977855582618,\n      -1.97000351574484,\n      0.9702284756635,\n      0.98500175787242\n    ],\n    [\n      0.97938932735214,\n      -1.95835380975398,\n      -1.95877865470428,\n      0.95920349965459,\n      0.97938932735214\n    ],\n    [\n      0.97531843204928,\n      -1.95002759149878,\n      -1.95063686409857,\n      0.95124613669835,\n      0.97531843204928\n    ],\n    [\n      0.97316523498161,\n      -1.94561023566527,\n      -1.94633046996323,\n      0.94705070426118,\n      0.97316523498161\n    ],\n    [\n      0.96454515552826,\n      -1.92783286977036,\n      -1.92909031105652,\n      0.93034775234268,\n      0.96454515552826\n    ],\n    [\n      0.96009142950541,\n      -1.91858953033784,\n      -1.92018285901082,\n      0.92177618768381,\n      0.96009142950541\n    ],\n    [\n      0.95856916599601,\n      -1.9154210807478,\n      -1.91713833199203,\n      0.91885558323625,\n      0.95856916599601\n    ],\n    [\n      0.94597685600279,\n      -1.88903307939452,\n      -1.89195371200558,\n      0.89487434461664,\n      0.94597685600279\n    ]\n  ];\n  function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n    while (nSamples-- != 0) {\n      output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4] - output[outputPos - 3] * kernel[5] + input[inputPos - 3] * kernel[6] - output[outputPos - 4] * kernel[7] + input[inputPos - 4] * kernel[8] - output[outputPos - 5] * kernel[9] + input[inputPos - 5] * kernel[10] - output[outputPos - 6] * kernel[11] + input[inputPos - 6] * kernel[12] - output[outputPos - 7] * kernel[13] + input[inputPos - 7] * kernel[14] - output[outputPos - 8] * kernel[15] + input[inputPos - 8] * kernel[16] - output[outputPos - 9] * kernel[17] + input[inputPos - 9] * kernel[18] - output[outputPos - 10] * kernel[19] + input[inputPos - 10] * kernel[20];\n      ++outputPos;\n      ++inputPos;\n    }\n  }\n  function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n    while (nSamples-- != 0) {\n      output[outputPos] = input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4];\n      ++outputPos;\n      ++inputPos;\n    }\n  }\n  function ResetSampleFrequency(rgData, samplefreq) {\n    for (var i = 0; i < MAX_ORDER; i++) {\n      rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n    }\n    switch (0 | samplefreq) {\n      case 48e3:\n        rgData.reqindex = 0;\n        break;\n      case 44100:\n        rgData.reqindex = 1;\n        break;\n      case 32e3:\n        rgData.reqindex = 2;\n        break;\n      case 24e3:\n        rgData.reqindex = 3;\n        break;\n      case 22050:\n        rgData.reqindex = 4;\n        break;\n      case 16e3:\n        rgData.reqindex = 5;\n        break;\n      case 12e3:\n        rgData.reqindex = 6;\n        break;\n      case 11025:\n        rgData.reqindex = 7;\n        break;\n      case 8e3:\n        rgData.reqindex = 8;\n        break;\n      default:\n        return INIT_GAIN_ANALYSIS_ERROR;\n    }\n    rgData.sampleWindow = 0 | (samplefreq * RMS_WINDOW_TIME_NUMERATOR + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR;\n    rgData.lsum = 0;\n    rgData.rsum = 0;\n    rgData.totsamp = 0;\n    Arrays$4.ill(rgData.A, 0);\n    return INIT_GAIN_ANALYSIS_OK;\n  }\n  this.InitGainAnalysis = function(rgData, samplefreq) {\n    if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n      return INIT_GAIN_ANALYSIS_ERROR;\n    }\n    rgData.linpre = MAX_ORDER;\n    rgData.rinpre = MAX_ORDER;\n    rgData.lstep = MAX_ORDER;\n    rgData.rstep = MAX_ORDER;\n    rgData.lout = MAX_ORDER;\n    rgData.rout = MAX_ORDER;\n    Arrays$4.fill(rgData.B, 0);\n    return INIT_GAIN_ANALYSIS_OK;\n  };\n  function fsqr(d) {\n    return d * d;\n  }\n  this.AnalyzeSamples = function(rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples, num_channels) {\n    var curleft;\n    var curleftBase;\n    var curright;\n    var currightBase;\n    var batchsamples;\n    var cursamples;\n    var cursamplepos;\n    if (num_samples == 0)\n      return GAIN_ANALYSIS_OK;\n    cursamplepos = 0;\n    batchsamples = num_samples;\n    switch (num_channels) {\n      case 1:\n        right_samples = left_samples;\n        right_samplesPos = left_samplesPos;\n        break;\n      case 2:\n        break;\n      default:\n        return GAIN_ANALYSIS_ERROR;\n    }\n    if (num_samples < MAX_ORDER) {\n      System$5.arraycopy(\n        left_samples,\n        left_samplesPos,\n        rgData.linprebuf,\n        MAX_ORDER,\n        num_samples\n      );\n      System$5.arraycopy(\n        right_samples,\n        right_samplesPos,\n        rgData.rinprebuf,\n        MAX_ORDER,\n        num_samples\n      );\n    } else {\n      System$5.arraycopy(\n        left_samples,\n        left_samplesPos,\n        rgData.linprebuf,\n        MAX_ORDER,\n        MAX_ORDER\n      );\n      System$5.arraycopy(\n        right_samples,\n        right_samplesPos,\n        rgData.rinprebuf,\n        MAX_ORDER,\n        MAX_ORDER\n      );\n    }\n    while (batchsamples > 0) {\n      cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow - rgData.totsamp : batchsamples;\n      if (cursamplepos < MAX_ORDER) {\n        curleft = rgData.linpre + cursamplepos;\n        curleftBase = rgData.linprebuf;\n        curright = rgData.rinpre + cursamplepos;\n        currightBase = rgData.rinprebuf;\n        if (cursamples > MAX_ORDER - cursamplepos) {\n          cursamples = MAX_ORDER - cursamplepos;\n        }\n      } else {\n        curleft = left_samplesPos + cursamplepos;\n        curleftBase = left_samples;\n        curright = right_samplesPos + cursamplepos;\n        currightBase = right_samples;\n      }\n      filterYule(\n        curleftBase,\n        curleft,\n        rgData.lstepbuf,\n        rgData.lstep + rgData.totsamp,\n        cursamples,\n        ABYule[rgData.reqindex]\n      );\n      filterYule(\n        currightBase,\n        curright,\n        rgData.rstepbuf,\n        rgData.rstep + rgData.totsamp,\n        cursamples,\n        ABYule[rgData.reqindex]\n      );\n      filterButter(\n        rgData.lstepbuf,\n        rgData.lstep + rgData.totsamp,\n        rgData.loutbuf,\n        rgData.lout + rgData.totsamp,\n        cursamples,\n        ABButter[rgData.reqindex]\n      );\n      filterButter(\n        rgData.rstepbuf,\n        rgData.rstep + rgData.totsamp,\n        rgData.routbuf,\n        rgData.rout + rgData.totsamp,\n        cursamples,\n        ABButter[rgData.reqindex]\n      );\n      curleft = rgData.lout + rgData.totsamp;\n      curleftBase = rgData.loutbuf;\n      curright = rgData.rout + rgData.totsamp;\n      currightBase = rgData.routbuf;\n      var i = cursamples % 8;\n      while (i-- != 0) {\n        rgData.lsum += fsqr(curleftBase[curleft++]);\n        rgData.rsum += fsqr(currightBase[curright++]);\n      }\n      i = cursamples / 8;\n      while (i-- != 0) {\n        rgData.lsum += fsqr(curleftBase[curleft + 0]) + fsqr(curleftBase[curleft + 1]) + fsqr(curleftBase[curleft + 2]) + fsqr(curleftBase[curleft + 3]) + fsqr(curleftBase[curleft + 4]) + fsqr(curleftBase[curleft + 5]) + fsqr(curleftBase[curleft + 6]) + fsqr(curleftBase[curleft + 7]);\n        curleft += 8;\n        rgData.rsum += fsqr(currightBase[curright + 0]) + fsqr(currightBase[curright + 1]) + fsqr(currightBase[curright + 2]) + fsqr(currightBase[curright + 3]) + fsqr(currightBase[curright + 4]) + fsqr(currightBase[curright + 5]) + fsqr(currightBase[curright + 6]) + fsqr(currightBase[curright + 7]);\n        curright += 8;\n      }\n      batchsamples -= cursamples;\n      cursamplepos += cursamples;\n      rgData.totsamp += cursamples;\n      if (rgData.totsamp == rgData.sampleWindow) {\n        var val = GainAnalysis$1.STEPS_per_dB * 10 * Math.log10(\n          (rgData.lsum + rgData.rsum) / rgData.totsamp * 0.5 + 1e-37\n        );\n        var ival = val <= 0 ? 0 : 0 | val;\n        if (ival >= rgData.A.length)\n          ival = rgData.A.length - 1;\n        rgData.A[ival]++;\n        rgData.lsum = rgData.rsum = 0;\n        System$5.arraycopy(\n          rgData.loutbuf,\n          rgData.totsamp,\n          rgData.loutbuf,\n          0,\n          MAX_ORDER\n        );\n        System$5.arraycopy(\n          rgData.routbuf,\n          rgData.totsamp,\n          rgData.routbuf,\n          0,\n          MAX_ORDER\n        );\n        System$5.arraycopy(\n          rgData.lstepbuf,\n          rgData.totsamp,\n          rgData.lstepbuf,\n          0,\n          MAX_ORDER\n        );\n        System$5.arraycopy(\n          rgData.rstepbuf,\n          rgData.totsamp,\n          rgData.rstepbuf,\n          0,\n          MAX_ORDER\n        );\n        rgData.totsamp = 0;\n      }\n      if (rgData.totsamp > rgData.sampleWindow) {\n        return GAIN_ANALYSIS_ERROR;\n      }\n    }\n    if (num_samples < MAX_ORDER) {\n      System$5.arraycopy(\n        rgData.linprebuf,\n        num_samples,\n        rgData.linprebuf,\n        0,\n        MAX_ORDER - num_samples\n      );\n      System$5.arraycopy(\n        rgData.rinprebuf,\n        num_samples,\n        rgData.rinprebuf,\n        0,\n        MAX_ORDER - num_samples\n      );\n      System$5.arraycopy(\n        left_samples,\n        left_samplesPos,\n        rgData.linprebuf,\n        MAX_ORDER - num_samples,\n        num_samples\n      );\n      System$5.arraycopy(\n        right_samples,\n        right_samplesPos,\n        rgData.rinprebuf,\n        MAX_ORDER - num_samples,\n        num_samples\n      );\n    } else {\n      System$5.arraycopy(\n        left_samples,\n        left_samplesPos + num_samples - MAX_ORDER,\n        rgData.linprebuf,\n        0,\n        MAX_ORDER\n      );\n      System$5.arraycopy(\n        right_samples,\n        right_samplesPos + num_samples - MAX_ORDER,\n        rgData.rinprebuf,\n        0,\n        MAX_ORDER\n      );\n    }\n    return GAIN_ANALYSIS_OK;\n  };\n  function analyzeResult(Array2, len) {\n    var i;\n    var elems = 0;\n    for (i = 0; i < len; i++)\n      elems += Array2[i];\n    if (elems == 0)\n      return GAIN_NOT_ENOUGH_SAMPLES;\n    var upper = 0 | Math.ceil(elems * (1 - RMS_PERCENTILE));\n    for (i = len; i-- > 0; ) {\n      if ((upper -= Array2[i]) <= 0)\n        break;\n    }\n    return PINK_REF - i / GainAnalysis$1.STEPS_per_dB;\n  }\n  this.GetTitleGain = function(rgData) {\n    var retval = analyzeResult(rgData.A, rgData.A.length);\n    for (var i = 0; i < rgData.A.length; i++) {\n      rgData.B[i] += rgData.A[i];\n      rgData.A[i] = 0;\n    }\n    for (var i = 0; i < MAX_ORDER; i++) {\n      rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n    }\n    rgData.totsamp = 0;\n    rgData.lsum = rgData.rsum = 0;\n    return retval;\n  };\n}\nvar new_float$5 = common.new_float;\nvar new_int$5 = common.new_int;\nfunction ReplayGain() {\n  this.linprebuf = new_float$5(void 0 * 2);\n  this.linpre = 0;\n  this.lstepbuf = new_float$5(\n    void 0 + void 0\n  );\n  this.lstep = 0;\n  this.loutbuf = new_float$5(\n    void 0 + void 0\n  );\n  this.lout = 0;\n  this.rinprebuf = new_float$5(void 0 * 2);\n  this.rinpre = 0;\n  this.rstepbuf = new_float$5(\n    void 0 + void 0\n  );\n  this.rstep = 0;\n  this.routbuf = new_float$5(\n    void 0 + void 0\n  );\n  this.rout = 0;\n  this.sampleWindow = 0;\n  this.totsamp = 0;\n  this.lsum = 0;\n  this.rsum = 0;\n  this.freqindex = 0;\n  this.first = 0;\n  this.A = new_int$5(0 | void 0 * void 0);\n  this.B = new_int$5(0 | void 0 * void 0);\n}\nfunction MeanBits$1(meanBits) {\n  this.bits = meanBits;\n}\nvar new_float$4 = common.new_float;\nvar new_int$4 = common.new_int;\nvar assert$8 = common.assert;\nfunction CBRNewIterationLoop(_quantize) {\n  var quantize = _quantize;\n  this.quantize = quantize;\n  this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n    var gfc = gfp.internal_flags;\n    var l3_xmin = new_float$4(L3Side$1.SFBMAX);\n    var xrpow = new_float$4(576);\n    var targ_bits = new_int$4(2);\n    var mean_bits = 0;\n    var max_bits;\n    var l3_side = gfc.l3_side;\n    var mb = new MeanBits$1(mean_bits);\n    this.quantize.rv.ResvFrameBegin(gfp, mb);\n    mean_bits = mb.bits;\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      max_bits = this.quantize.qupvt.on_pe(\n        gfp,\n        pe,\n        targ_bits,\n        mean_bits,\n        gr,\n        gr\n      );\n      if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n        this.quantize.ms_convert(gfc.l3_side, gr);\n        this.quantize.qupvt.reduce_side(\n          targ_bits,\n          ms_ener_ratio[gr],\n          mean_bits,\n          max_bits\n        );\n      }\n      for (var ch = 0; ch < gfc.channels_out; ch++) {\n        var adjust, masking_lower_db;\n        var cod_info = l3_side.tt[gr][ch];\n        if (cod_info.block_type != Encoder.SHORT_TYPE) {\n          adjust = 0;\n          masking_lower_db = gfc.PSY.mask_adjust - adjust;\n        } else {\n          adjust = 0;\n          masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n        }\n        gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n        this.quantize.init_outer_loop(gfc, cod_info);\n        if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n          this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin);\n          this.quantize.outer_loop(\n            gfp,\n            cod_info,\n            l3_xmin,\n            xrpow,\n            ch,\n            targ_bits[ch]\n          );\n        }\n        this.quantize.iteration_finish_one(gfc, gr, ch);\n        assert$8(\n          cod_info.part2_3_length <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL\n        );\n        assert$8(cod_info.part2_3_length <= targ_bits[ch]);\n      }\n    }\n    this.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n  };\n}\nfunction HuffCodeTab(len, max, tab, hl) {\n  this.xlen = len;\n  this.linmax = max;\n  this.table = tab;\n  this.hlen = hl;\n}\nvar Tables$1 = {};\nTables$1.t1HB = [1, 1, 1, 0];\nTables$1.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0];\nTables$1.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0];\nTables$1.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0];\nTables$1.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0];\nTables$1.t7HB = [\n  1,\n  2,\n  10,\n  19,\n  16,\n  10,\n  3,\n  3,\n  7,\n  10,\n  5,\n  3,\n  11,\n  4,\n  13,\n  17,\n  8,\n  4,\n  12,\n  11,\n  18,\n  15,\n  11,\n  2,\n  7,\n  6,\n  9,\n  14,\n  3,\n  1,\n  6,\n  4,\n  5,\n  3,\n  2,\n  0\n];\nTables$1.t8HB = [\n  3,\n  4,\n  6,\n  18,\n  12,\n  5,\n  5,\n  1,\n  2,\n  16,\n  9,\n  3,\n  7,\n  3,\n  5,\n  14,\n  7,\n  3,\n  19,\n  17,\n  15,\n  13,\n  10,\n  4,\n  13,\n  5,\n  8,\n  11,\n  5,\n  1,\n  12,\n  4,\n  4,\n  1,\n  1,\n  0\n];\nTables$1.t9HB = [\n  7,\n  5,\n  9,\n  14,\n  15,\n  7,\n  6,\n  4,\n  5,\n  5,\n  6,\n  7,\n  7,\n  6,\n  8,\n  8,\n  8,\n  5,\n  15,\n  6,\n  9,\n  10,\n  5,\n  1,\n  11,\n  7,\n  9,\n  6,\n  4,\n  1,\n  14,\n  4,\n  6,\n  2,\n  6,\n  0\n];\nTables$1.t10HB = [\n  1,\n  2,\n  10,\n  23,\n  35,\n  30,\n  12,\n  17,\n  3,\n  3,\n  8,\n  12,\n  18,\n  21,\n  12,\n  7,\n  11,\n  9,\n  15,\n  21,\n  32,\n  40,\n  19,\n  6,\n  14,\n  13,\n  22,\n  34,\n  46,\n  23,\n  18,\n  7,\n  20,\n  19,\n  33,\n  47,\n  27,\n  22,\n  9,\n  3,\n  31,\n  22,\n  41,\n  26,\n  21,\n  20,\n  5,\n  3,\n  14,\n  13,\n  10,\n  11,\n  16,\n  6,\n  5,\n  1,\n  9,\n  8,\n  7,\n  8,\n  4,\n  4,\n  2,\n  0\n];\nTables$1.t11HB = [\n  3,\n  4,\n  10,\n  24,\n  34,\n  33,\n  21,\n  15,\n  5,\n  3,\n  4,\n  10,\n  32,\n  17,\n  11,\n  10,\n  11,\n  7,\n  13,\n  18,\n  30,\n  31,\n  20,\n  5,\n  25,\n  11,\n  19,\n  59,\n  27,\n  18,\n  12,\n  5,\n  35,\n  33,\n  31,\n  58,\n  30,\n  16,\n  7,\n  5,\n  28,\n  26,\n  32,\n  19,\n  17,\n  15,\n  8,\n  14,\n  14,\n  12,\n  9,\n  13,\n  14,\n  9,\n  4,\n  1,\n  11,\n  4,\n  6,\n  6,\n  6,\n  3,\n  2,\n  0\n];\nTables$1.t12HB = [\n  9,\n  6,\n  16,\n  33,\n  41,\n  39,\n  38,\n  26,\n  7,\n  5,\n  6,\n  9,\n  23,\n  16,\n  26,\n  11,\n  17,\n  7,\n  11,\n  14,\n  21,\n  30,\n  10,\n  7,\n  17,\n  10,\n  15,\n  12,\n  18,\n  28,\n  14,\n  5,\n  32,\n  13,\n  22,\n  19,\n  18,\n  16,\n  9,\n  5,\n  40,\n  17,\n  31,\n  29,\n  17,\n  13,\n  4,\n  2,\n  27,\n  12,\n  11,\n  15,\n  10,\n  7,\n  4,\n  1,\n  27,\n  12,\n  8,\n  12,\n  6,\n  3,\n  1,\n  0\n];\nTables$1.t13HB = [\n  1,\n  5,\n  14,\n  21,\n  34,\n  51,\n  46,\n  71,\n  42,\n  52,\n  68,\n  52,\n  67,\n  44,\n  43,\n  19,\n  3,\n  4,\n  12,\n  19,\n  31,\n  26,\n  44,\n  33,\n  31,\n  24,\n  32,\n  24,\n  31,\n  35,\n  22,\n  14,\n  15,\n  13,\n  23,\n  36,\n  59,\n  49,\n  77,\n  65,\n  29,\n  40,\n  30,\n  40,\n  27,\n  33,\n  42,\n  16,\n  22,\n  20,\n  37,\n  61,\n  56,\n  79,\n  73,\n  64,\n  43,\n  76,\n  56,\n  37,\n  26,\n  31,\n  25,\n  14,\n  35,\n  16,\n  60,\n  57,\n  97,\n  75,\n  114,\n  91,\n  54,\n  73,\n  55,\n  41,\n  48,\n  53,\n  23,\n  24,\n  58,\n  27,\n  50,\n  96,\n  76,\n  70,\n  93,\n  84,\n  77,\n  58,\n  79,\n  29,\n  74,\n  49,\n  41,\n  17,\n  47,\n  45,\n  78,\n  74,\n  115,\n  94,\n  90,\n  79,\n  69,\n  83,\n  71,\n  50,\n  59,\n  38,\n  36,\n  15,\n  72,\n  34,\n  56,\n  95,\n  92,\n  85,\n  91,\n  90,\n  86,\n  73,\n  77,\n  65,\n  51,\n  44,\n  43,\n  42,\n  43,\n  20,\n  30,\n  44,\n  55,\n  78,\n  72,\n  87,\n  78,\n  61,\n  46,\n  54,\n  37,\n  30,\n  20,\n  16,\n  53,\n  25,\n  41,\n  37,\n  44,\n  59,\n  54,\n  81,\n  66,\n  76,\n  57,\n  54,\n  37,\n  18,\n  39,\n  11,\n  35,\n  33,\n  31,\n  57,\n  42,\n  82,\n  72,\n  80,\n  47,\n  58,\n  55,\n  21,\n  22,\n  26,\n  38,\n  22,\n  53,\n  25,\n  23,\n  38,\n  70,\n  60,\n  51,\n  36,\n  55,\n  26,\n  34,\n  23,\n  27,\n  14,\n  9,\n  7,\n  34,\n  32,\n  28,\n  39,\n  49,\n  75,\n  30,\n  52,\n  48,\n  40,\n  52,\n  28,\n  18,\n  17,\n  9,\n  5,\n  45,\n  21,\n  34,\n  64,\n  56,\n  50,\n  49,\n  45,\n  31,\n  19,\n  12,\n  15,\n  10,\n  7,\n  6,\n  3,\n  48,\n  23,\n  20,\n  39,\n  36,\n  35,\n  53,\n  21,\n  16,\n  23,\n  13,\n  10,\n  6,\n  1,\n  4,\n  2,\n  16,\n  15,\n  17,\n  27,\n  25,\n  20,\n  29,\n  11,\n  17,\n  12,\n  16,\n  8,\n  1,\n  1,\n  0,\n  1\n];\nTables$1.t15HB = [\n  7,\n  12,\n  18,\n  53,\n  47,\n  76,\n  124,\n  108,\n  89,\n  123,\n  108,\n  119,\n  107,\n  81,\n  122,\n  63,\n  13,\n  5,\n  16,\n  27,\n  46,\n  36,\n  61,\n  51,\n  42,\n  70,\n  52,\n  83,\n  65,\n  41,\n  59,\n  36,\n  19,\n  17,\n  15,\n  24,\n  41,\n  34,\n  59,\n  48,\n  40,\n  64,\n  50,\n  78,\n  62,\n  80,\n  56,\n  33,\n  29,\n  28,\n  25,\n  43,\n  39,\n  63,\n  55,\n  93,\n  76,\n  59,\n  93,\n  72,\n  54,\n  75,\n  50,\n  29,\n  52,\n  22,\n  42,\n  40,\n  67,\n  57,\n  95,\n  79,\n  72,\n  57,\n  89,\n  69,\n  49,\n  66,\n  46,\n  27,\n  77,\n  37,\n  35,\n  66,\n  58,\n  52,\n  91,\n  74,\n  62,\n  48,\n  79,\n  63,\n  90,\n  62,\n  40,\n  38,\n  125,\n  32,\n  60,\n  56,\n  50,\n  92,\n  78,\n  65,\n  55,\n  87,\n  71,\n  51,\n  73,\n  51,\n  70,\n  30,\n  109,\n  53,\n  49,\n  94,\n  88,\n  75,\n  66,\n  122,\n  91,\n  73,\n  56,\n  42,\n  64,\n  44,\n  21,\n  25,\n  90,\n  43,\n  41,\n  77,\n  73,\n  63,\n  56,\n  92,\n  77,\n  66,\n  47,\n  67,\n  48,\n  53,\n  36,\n  20,\n  71,\n  34,\n  67,\n  60,\n  58,\n  49,\n  88,\n  76,\n  67,\n  106,\n  71,\n  54,\n  38,\n  39,\n  23,\n  15,\n  109,\n  53,\n  51,\n  47,\n  90,\n  82,\n  58,\n  57,\n  48,\n  72,\n  57,\n  41,\n  23,\n  27,\n  62,\n  9,\n  86,\n  42,\n  40,\n  37,\n  70,\n  64,\n  52,\n  43,\n  70,\n  55,\n  42,\n  25,\n  29,\n  18,\n  11,\n  11,\n  118,\n  68,\n  30,\n  55,\n  50,\n  46,\n  74,\n  65,\n  49,\n  39,\n  24,\n  16,\n  22,\n  13,\n  14,\n  7,\n  91,\n  44,\n  39,\n  38,\n  34,\n  63,\n  52,\n  45,\n  31,\n  52,\n  28,\n  19,\n  14,\n  8,\n  9,\n  3,\n  123,\n  60,\n  58,\n  53,\n  47,\n  43,\n  32,\n  22,\n  37,\n  24,\n  17,\n  12,\n  15,\n  10,\n  2,\n  1,\n  71,\n  37,\n  34,\n  30,\n  28,\n  20,\n  17,\n  26,\n  21,\n  16,\n  10,\n  6,\n  8,\n  6,\n  2,\n  0\n];\nTables$1.t16HB = [\n  1,\n  5,\n  14,\n  44,\n  74,\n  63,\n  110,\n  93,\n  172,\n  149,\n  138,\n  242,\n  225,\n  195,\n  376,\n  17,\n  3,\n  4,\n  12,\n  20,\n  35,\n  62,\n  53,\n  47,\n  83,\n  75,\n  68,\n  119,\n  201,\n  107,\n  207,\n  9,\n  15,\n  13,\n  23,\n  38,\n  67,\n  58,\n  103,\n  90,\n  161,\n  72,\n  127,\n  117,\n  110,\n  209,\n  206,\n  16,\n  45,\n  21,\n  39,\n  69,\n  64,\n  114,\n  99,\n  87,\n  158,\n  140,\n  252,\n  212,\n  199,\n  387,\n  365,\n  26,\n  75,\n  36,\n  68,\n  65,\n  115,\n  101,\n  179,\n  164,\n  155,\n  264,\n  246,\n  226,\n  395,\n  382,\n  362,\n  9,\n  66,\n  30,\n  59,\n  56,\n  102,\n  185,\n  173,\n  265,\n  142,\n  253,\n  232,\n  400,\n  388,\n  378,\n  445,\n  16,\n  111,\n  54,\n  52,\n  100,\n  184,\n  178,\n  160,\n  133,\n  257,\n  244,\n  228,\n  217,\n  385,\n  366,\n  715,\n  10,\n  98,\n  48,\n  91,\n  88,\n  165,\n  157,\n  148,\n  261,\n  248,\n  407,\n  397,\n  372,\n  380,\n  889,\n  884,\n  8,\n  85,\n  84,\n  81,\n  159,\n  156,\n  143,\n  260,\n  249,\n  427,\n  401,\n  392,\n  383,\n  727,\n  713,\n  708,\n  7,\n  154,\n  76,\n  73,\n  141,\n  131,\n  256,\n  245,\n  426,\n  406,\n  394,\n  384,\n  735,\n  359,\n  710,\n  352,\n  11,\n  139,\n  129,\n  67,\n  125,\n  247,\n  233,\n  229,\n  219,\n  393,\n  743,\n  737,\n  720,\n  885,\n  882,\n  439,\n  4,\n  243,\n  120,\n  118,\n  115,\n  227,\n  223,\n  396,\n  746,\n  742,\n  736,\n  721,\n  712,\n  706,\n  223,\n  436,\n  6,\n  202,\n  224,\n  222,\n  218,\n  216,\n  389,\n  386,\n  381,\n  364,\n  888,\n  443,\n  707,\n  440,\n  437,\n  1728,\n  4,\n  747,\n  211,\n  210,\n  208,\n  370,\n  379,\n  734,\n  723,\n  714,\n  1735,\n  883,\n  877,\n  876,\n  3459,\n  865,\n  2,\n  377,\n  369,\n  102,\n  187,\n  726,\n  722,\n  358,\n  711,\n  709,\n  866,\n  1734,\n  871,\n  3458,\n  870,\n  434,\n  0,\n  12,\n  10,\n  7,\n  11,\n  10,\n  17,\n  11,\n  9,\n  13,\n  12,\n  10,\n  7,\n  5,\n  3,\n  1,\n  3\n];\nTables$1.t24HB = [\n  15,\n  13,\n  46,\n  80,\n  146,\n  262,\n  248,\n  434,\n  426,\n  669,\n  653,\n  649,\n  621,\n  517,\n  1032,\n  88,\n  14,\n  12,\n  21,\n  38,\n  71,\n  130,\n  122,\n  216,\n  209,\n  198,\n  327,\n  345,\n  319,\n  297,\n  279,\n  42,\n  47,\n  22,\n  41,\n  74,\n  68,\n  128,\n  120,\n  221,\n  207,\n  194,\n  182,\n  340,\n  315,\n  295,\n  541,\n  18,\n  81,\n  39,\n  75,\n  70,\n  134,\n  125,\n  116,\n  220,\n  204,\n  190,\n  178,\n  325,\n  311,\n  293,\n  271,\n  16,\n  147,\n  72,\n  69,\n  135,\n  127,\n  118,\n  112,\n  210,\n  200,\n  188,\n  352,\n  323,\n  306,\n  285,\n  540,\n  14,\n  263,\n  66,\n  129,\n  126,\n  119,\n  114,\n  214,\n  202,\n  192,\n  180,\n  341,\n  317,\n  301,\n  281,\n  262,\n  12,\n  249,\n  123,\n  121,\n  117,\n  113,\n  215,\n  206,\n  195,\n  185,\n  347,\n  330,\n  308,\n  291,\n  272,\n  520,\n  10,\n  435,\n  115,\n  111,\n  109,\n  211,\n  203,\n  196,\n  187,\n  353,\n  332,\n  313,\n  298,\n  283,\n  531,\n  381,\n  17,\n  427,\n  212,\n  208,\n  205,\n  201,\n  193,\n  186,\n  177,\n  169,\n  320,\n  303,\n  286,\n  268,\n  514,\n  377,\n  16,\n  335,\n  199,\n  197,\n  191,\n  189,\n  181,\n  174,\n  333,\n  321,\n  305,\n  289,\n  275,\n  521,\n  379,\n  371,\n  11,\n  668,\n  184,\n  183,\n  179,\n  175,\n  344,\n  331,\n  314,\n  304,\n  290,\n  277,\n  530,\n  383,\n  373,\n  366,\n  10,\n  652,\n  346,\n  171,\n  168,\n  164,\n  318,\n  309,\n  299,\n  287,\n  276,\n  263,\n  513,\n  375,\n  368,\n  362,\n  6,\n  648,\n  322,\n  316,\n  312,\n  307,\n  302,\n  292,\n  284,\n  269,\n  261,\n  512,\n  376,\n  370,\n  364,\n  359,\n  4,\n  620,\n  300,\n  296,\n  294,\n  288,\n  282,\n  273,\n  266,\n  515,\n  380,\n  374,\n  369,\n  365,\n  361,\n  357,\n  2,\n  1033,\n  280,\n  278,\n  274,\n  267,\n  264,\n  259,\n  382,\n  378,\n  372,\n  367,\n  363,\n  360,\n  358,\n  356,\n  0,\n  43,\n  20,\n  19,\n  17,\n  15,\n  13,\n  11,\n  9,\n  7,\n  6,\n  4,\n  7,\n  5,\n  3,\n  1,\n  3\n];\nTables$1.t32HB = [\n  1 << 0,\n  5 << 1,\n  4 << 1,\n  5 << 2,\n  6 << 1,\n  5 << 2,\n  4 << 2,\n  4 << 3,\n  7 << 1,\n  3 << 2,\n  6 << 2,\n  0 << 3,\n  7 << 2,\n  2 << 3,\n  3 << 3,\n  1 << 4\n];\nTables$1.t33HB = [\n  15 << 0,\n  14 << 1,\n  13 << 1,\n  12 << 2,\n  11 << 1,\n  10 << 2,\n  9 << 2,\n  8 << 3,\n  7 << 1,\n  6 << 2,\n  5 << 2,\n  4 << 3,\n  3 << 2,\n  2 << 3,\n  1 << 3,\n  0 << 4\n];\nTables$1.t1l = [1, 4, 3, 5];\nTables$1.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8];\nTables$1.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8];\nTables$1.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10];\nTables$1.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9];\nTables$1.t7l = [\n  1,\n  4,\n  7,\n  9,\n  9,\n  10,\n  4,\n  6,\n  8,\n  9,\n  9,\n  10,\n  7,\n  7,\n  9,\n  10,\n  10,\n  11,\n  8,\n  9,\n  10,\n  11,\n  11,\n  11,\n  8,\n  9,\n  10,\n  11,\n  11,\n  12,\n  9,\n  10,\n  11,\n  12,\n  12,\n  12\n];\nTables$1.t8l = [\n  2,\n  4,\n  7,\n  9,\n  9,\n  10,\n  4,\n  4,\n  6,\n  10,\n  10,\n  10,\n  7,\n  6,\n  8,\n  10,\n  10,\n  11,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  9,\n  9,\n  10,\n  11,\n  12,\n  12,\n  10,\n  10,\n  11,\n  11,\n  13,\n  13\n];\nTables$1.t9l = [\n  3,\n  4,\n  6,\n  7,\n  9,\n  10,\n  4,\n  5,\n  6,\n  7,\n  8,\n  10,\n  5,\n  6,\n  7,\n  8,\n  9,\n  10,\n  7,\n  7,\n  8,\n  9,\n  9,\n  10,\n  8,\n  8,\n  9,\n  9,\n  10,\n  11,\n  9,\n  9,\n  10,\n  10,\n  11,\n  11\n];\nTables$1.t10l = [\n  1,\n  4,\n  7,\n  9,\n  10,\n  10,\n  10,\n  11,\n  4,\n  6,\n  8,\n  9,\n  10,\n  11,\n  10,\n  10,\n  7,\n  8,\n  9,\n  10,\n  11,\n  12,\n  11,\n  11,\n  8,\n  9,\n  10,\n  11,\n  12,\n  12,\n  11,\n  12,\n  9,\n  10,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  10,\n  11,\n  12,\n  12,\n  13,\n  13,\n  12,\n  13,\n  9,\n  10,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  10,\n  10,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13\n];\nTables$1.t11l = [\n  2,\n  4,\n  6,\n  8,\n  9,\n  10,\n  9,\n  10,\n  4,\n  5,\n  6,\n  8,\n  10,\n  10,\n  9,\n  10,\n  6,\n  7,\n  8,\n  9,\n  10,\n  11,\n  10,\n  10,\n  8,\n  8,\n  9,\n  11,\n  10,\n  12,\n  10,\n  11,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  11,\n  12,\n  9,\n  10,\n  11,\n  12,\n  12,\n  13,\n  12,\n  13,\n  9,\n  9,\n  9,\n  10,\n  11,\n  12,\n  12,\n  12,\n  9,\n  9,\n  10,\n  11,\n  12,\n  12,\n  12,\n  12\n];\nTables$1.t12l = [\n  4,\n  4,\n  6,\n  8,\n  9,\n  10,\n  10,\n  10,\n  4,\n  5,\n  6,\n  7,\n  9,\n  9,\n  10,\n  10,\n  6,\n  6,\n  7,\n  8,\n  9,\n  10,\n  9,\n  10,\n  7,\n  7,\n  8,\n  8,\n  9,\n  10,\n  10,\n  10,\n  8,\n  8,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  10,\n  11,\n  9,\n  9,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12\n];\nTables$1.t13l = [\n  1,\n  5,\n  7,\n  8,\n  9,\n  10,\n  10,\n  11,\n  10,\n  11,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  4,\n  6,\n  8,\n  9,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  13,\n  14,\n  14,\n  14,\n  7,\n  8,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  11,\n  12,\n  12,\n  13,\n  13,\n  14,\n  15,\n  15,\n  8,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  15,\n  15,\n  9,\n  9,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  12,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  16,\n  10,\n  10,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  13,\n  15,\n  15,\n  16,\n  16,\n  10,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  16,\n  11,\n  11,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  16,\n  18,\n  18,\n  10,\n  10,\n  11,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  17,\n  17,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  15,\n  14,\n  15,\n  15,\n  16,\n  16,\n  16,\n  18,\n  17,\n  11,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  15,\n  14,\n  15,\n  16,\n  15,\n  16,\n  17,\n  18,\n  19,\n  12,\n  12,\n  12,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  16,\n  17,\n  17,\n  17,\n  18,\n  12,\n  13,\n  13,\n  14,\n  14,\n  15,\n  14,\n  15,\n  16,\n  16,\n  17,\n  17,\n  17,\n  18,\n  18,\n  18,\n  13,\n  13,\n  14,\n  15,\n  15,\n  15,\n  16,\n  16,\n  16,\n  16,\n  16,\n  17,\n  18,\n  17,\n  18,\n  18,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  17,\n  16,\n  16,\n  19,\n  17,\n  17,\n  17,\n  19,\n  18,\n  18,\n  13,\n  14,\n  15,\n  16,\n  16,\n  16,\n  17,\n  16,\n  17,\n  17,\n  18,\n  18,\n  21,\n  20,\n  21,\n  18\n];\nTables$1.t15l = [\n  3,\n  5,\n  6,\n  8,\n  8,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  14,\n  5,\n  5,\n  7,\n  8,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  6,\n  7,\n  7,\n  8,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  7,\n  8,\n  8,\n  9,\n  9,\n  10,\n  10,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  8,\n  8,\n  9,\n  9,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  9,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  10,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  14,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  15,\n  14,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  12,\n  12,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  14,\n  15,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15\n];\nTables$1.t16_5l = [\n  1,\n  5,\n  7,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  11,\n  4,\n  6,\n  8,\n  9,\n  10,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  14,\n  13,\n  14,\n  11,\n  7,\n  8,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  13,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  12,\n  9,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  15,\n  13,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  12,\n  10,\n  10,\n  11,\n  11,\n  12,\n  13,\n  13,\n  14,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  16,\n  13,\n  11,\n  11,\n  11,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  13,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  17,\n  17,\n  13,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  16,\n  16,\n  16,\n  13,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  16,\n  15,\n  16,\n  15,\n  14,\n  12,\n  13,\n  12,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  16,\n  16,\n  16,\n  17,\n  17,\n  16,\n  13,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  16,\n  16,\n  16,\n  16,\n  16,\n  16,\n  15,\n  16,\n  14,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  17,\n  16,\n  16,\n  16,\n  16,\n  18,\n  14,\n  15,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  16,\n  16,\n  18,\n  17,\n  17,\n  17,\n  19,\n  17,\n  14,\n  14,\n  15,\n  13,\n  14,\n  16,\n  16,\n  15,\n  16,\n  16,\n  17,\n  18,\n  17,\n  19,\n  17,\n  16,\n  14,\n  11,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  14,\n  14,\n  14,\n  12\n];\nTables$1.t16l = [\n  1,\n  5,\n  7,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  10,\n  4,\n  6,\n  8,\n  9,\n  10,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  14,\n  13,\n  14,\n  10,\n  7,\n  8,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  13,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  11,\n  9,\n  9,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  15,\n  12,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  11,\n  10,\n  10,\n  11,\n  11,\n  12,\n  13,\n  13,\n  14,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  16,\n  12,\n  11,\n  11,\n  11,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  12,\n  11,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  17,\n  17,\n  12,\n  11,\n  12,\n  12,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  16,\n  16,\n  16,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  16,\n  15,\n  16,\n  15,\n  13,\n  12,\n  13,\n  12,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  16,\n  16,\n  16,\n  17,\n  17,\n  16,\n  12,\n  13,\n  13,\n  13,\n  13,\n  14,\n  14,\n  15,\n  16,\n  16,\n  16,\n  16,\n  16,\n  16,\n  15,\n  16,\n  13,\n  13,\n  14,\n  14,\n  14,\n  14,\n  15,\n  15,\n  15,\n  15,\n  17,\n  16,\n  16,\n  16,\n  16,\n  18,\n  13,\n  15,\n  14,\n  14,\n  14,\n  15,\n  15,\n  16,\n  16,\n  16,\n  18,\n  17,\n  17,\n  17,\n  19,\n  17,\n  13,\n  14,\n  15,\n  13,\n  14,\n  16,\n  16,\n  15,\n  16,\n  16,\n  17,\n  18,\n  17,\n  19,\n  17,\n  16,\n  13,\n  10,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  10\n];\nTables$1.t24l = [\n  4,\n  5,\n  7,\n  8,\n  9,\n  10,\n  10,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  10,\n  5,\n  6,\n  7,\n  8,\n  9,\n  10,\n  10,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  10,\n  7,\n  7,\n  8,\n  9,\n  9,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  13,\n  9,\n  8,\n  8,\n  9,\n  9,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  9,\n  9,\n  9,\n  9,\n  10,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  13,\n  9,\n  10,\n  9,\n  10,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  9,\n  10,\n  10,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  9,\n  11,\n  10,\n  10,\n  10,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  10,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  10,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  10,\n  12,\n  11,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  10,\n  12,\n  12,\n  11,\n  11,\n  11,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  10,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  10,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  10,\n  13,\n  12,\n  12,\n  12,\n  12,\n  12,\n  12,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  13,\n  10,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  9,\n  10,\n  10,\n  10,\n  10,\n  6\n];\nTables$1.t32l = [\n  1 + 0,\n  4 + 1,\n  4 + 1,\n  5 + 2,\n  4 + 1,\n  6 + 2,\n  5 + 2,\n  6 + 3,\n  4 + 1,\n  5 + 2,\n  5 + 2,\n  6 + 3,\n  5 + 2,\n  6 + 3,\n  6 + 3,\n  6 + 4\n];\nTables$1.t33l = [\n  4 + 0,\n  4 + 1,\n  4 + 1,\n  4 + 2,\n  4 + 1,\n  4 + 2,\n  4 + 2,\n  4 + 3,\n  4 + 1,\n  4 + 2,\n  4 + 2,\n  4 + 3,\n  4 + 2,\n  4 + 3,\n  4 + 3,\n  4 + 4\n];\nTables$1.ht = [\n  new HuffCodeTab(0, 0, null, null),\n  new HuffCodeTab(2, 0, Tables$1.t1HB, Tables$1.t1l),\n  new HuffCodeTab(3, 0, Tables$1.t2HB, Tables$1.t2l),\n  new HuffCodeTab(3, 0, Tables$1.t3HB, Tables$1.t3l),\n  new HuffCodeTab(0, 0, null, null),\n  new HuffCodeTab(4, 0, Tables$1.t5HB, Tables$1.t5l),\n  new HuffCodeTab(4, 0, Tables$1.t6HB, Tables$1.t6l),\n  new HuffCodeTab(6, 0, Tables$1.t7HB, Tables$1.t7l),\n  new HuffCodeTab(6, 0, Tables$1.t8HB, Tables$1.t8l),\n  new HuffCodeTab(6, 0, Tables$1.t9HB, Tables$1.t9l),\n  new HuffCodeTab(8, 0, Tables$1.t10HB, Tables$1.t10l),\n  new HuffCodeTab(8, 0, Tables$1.t11HB, Tables$1.t11l),\n  new HuffCodeTab(8, 0, Tables$1.t12HB, Tables$1.t12l),\n  new HuffCodeTab(16, 0, Tables$1.t13HB, Tables$1.t13l),\n  new HuffCodeTab(0, 0, null, Tables$1.t16_5l),\n  new HuffCodeTab(16, 0, Tables$1.t15HB, Tables$1.t15l),\n  new HuffCodeTab(1, 1, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(2, 3, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(3, 7, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(4, 15, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(6, 63, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(8, 255, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(10, 1023, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(13, 8191, Tables$1.t16HB, Tables$1.t16l),\n  new HuffCodeTab(4, 15, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(5, 31, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(6, 63, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(7, 127, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(8, 255, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(9, 511, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(11, 2047, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(13, 8191, Tables$1.t24HB, Tables$1.t24l),\n  new HuffCodeTab(0, 0, Tables$1.t32HB, Tables$1.t32l),\n  new HuffCodeTab(0, 0, Tables$1.t33HB, Tables$1.t33l)\n];\nTables$1.largetbl = [\n  65540,\n  327685,\n  458759,\n  589832,\n  655369,\n  655370,\n  720906,\n  720907,\n  786443,\n  786444,\n  786444,\n  851980,\n  851980,\n  851980,\n  917517,\n  655370,\n  262149,\n  393222,\n  524295,\n  589832,\n  655369,\n  720906,\n  720906,\n  720907,\n  786443,\n  786443,\n  786444,\n  851980,\n  917516,\n  851980,\n  917516,\n  655370,\n  458759,\n  524295,\n  589832,\n  655369,\n  720905,\n  720906,\n  786442,\n  786443,\n  851979,\n  786443,\n  851979,\n  851980,\n  851980,\n  917516,\n  917517,\n  720905,\n  589832,\n  589832,\n  655369,\n  720905,\n  720906,\n  786442,\n  786442,\n  786443,\n  851979,\n  851979,\n  917515,\n  917516,\n  917516,\n  983052,\n  983052,\n  786441,\n  655369,\n  655369,\n  720905,\n  720906,\n  786442,\n  786442,\n  851978,\n  851979,\n  851979,\n  917515,\n  917516,\n  917516,\n  983052,\n  983052,\n  983053,\n  720905,\n  655370,\n  655369,\n  720906,\n  720906,\n  786442,\n  851978,\n  851979,\n  917515,\n  851979,\n  917515,\n  917516,\n  983052,\n  983052,\n  983052,\n  1048588,\n  786441,\n  720906,\n  720906,\n  720906,\n  786442,\n  851978,\n  851979,\n  851979,\n  851979,\n  917515,\n  917516,\n  917516,\n  917516,\n  983052,\n  983052,\n  1048589,\n  786441,\n  720907,\n  720906,\n  786442,\n  786442,\n  851979,\n  851979,\n  851979,\n  917515,\n  917516,\n  983052,\n  983052,\n  983052,\n  983052,\n  1114125,\n  1114125,\n  786442,\n  720907,\n  786443,\n  786443,\n  851979,\n  851979,\n  851979,\n  917515,\n  917515,\n  983051,\n  983052,\n  983052,\n  983052,\n  1048588,\n  1048589,\n  1048589,\n  786442,\n  786443,\n  786443,\n  786443,\n  851979,\n  851979,\n  917515,\n  917515,\n  983052,\n  983052,\n  983052,\n  983052,\n  1048588,\n  983053,\n  1048589,\n  983053,\n  851978,\n  786444,\n  851979,\n  786443,\n  851979,\n  917515,\n  917516,\n  917516,\n  917516,\n  983052,\n  1048588,\n  1048588,\n  1048589,\n  1114125,\n  1114125,\n  1048589,\n  786442,\n  851980,\n  851980,\n  851979,\n  851979,\n  917515,\n  917516,\n  983052,\n  1048588,\n  1048588,\n  1048588,\n  1048588,\n  1048589,\n  1048589,\n  983053,\n  1048589,\n  851978,\n  851980,\n  917516,\n  917516,\n  917516,\n  917516,\n  983052,\n  983052,\n  983052,\n  983052,\n  1114124,\n  1048589,\n  1048589,\n  1048589,\n  1048589,\n  1179661,\n  851978,\n  983052,\n  917516,\n  917516,\n  917516,\n  983052,\n  983052,\n  1048588,\n  1048588,\n  1048589,\n  1179661,\n  1114125,\n  1114125,\n  1114125,\n  1245197,\n  1114125,\n  851978,\n  917517,\n  983052,\n  851980,\n  917516,\n  1048588,\n  1048588,\n  983052,\n  1048589,\n  1048589,\n  1114125,\n  1179661,\n  1114125,\n  1245197,\n  1114125,\n  1048589,\n  851978,\n  655369,\n  655369,\n  655369,\n  720905,\n  720905,\n  786441,\n  786441,\n  786441,\n  851977,\n  851977,\n  851977,\n  851978,\n  851978,\n  851978,\n  851978,\n  655366\n];\nTables$1.table23 = [\n  65538,\n  262147,\n  458759,\n  262148,\n  327684,\n  458759,\n  393222,\n  458759,\n  524296\n];\nTables$1.table56 = [\n  65539,\n  262148,\n  458758,\n  524296,\n  262148,\n  327684,\n  524294,\n  589831,\n  458757,\n  524294,\n  589831,\n  655368,\n  524295,\n  524295,\n  589832,\n  655369\n];\nTables$1.bitrate_table = [\n  [\n    0,\n    8,\n    16,\n    24,\n    32,\n    40,\n    48,\n    56,\n    64,\n    80,\n    96,\n    112,\n    128,\n    144,\n    160,\n    -1\n  ],\n  [\n    0,\n    32,\n    40,\n    48,\n    56,\n    64,\n    80,\n    96,\n    112,\n    128,\n    160,\n    192,\n    224,\n    256,\n    320,\n    -1\n  ],\n  [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]\n];\nTables$1.samplerate_table = [\n  [22050, 24e3, 16e3, -1],\n  [44100, 48e3, 32e3, -1],\n  [11025, 12e3, 8e3, -1]\n];\nTables$1.scfsi_band = [0, 6, 11, 16, 21];\nvar VbrMode$4 = common.VbrMode;\nvar Float = common.Float;\nvar Util$1 = common.Util;\nvar new_float$3 = common.new_float;\nvar new_int$3 = common.new_int;\nvar assert$7 = common.assert;\nQuantizePVT.Q_MAX = 256 + 1;\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 1e5;\nQuantizePVT.IXMAX_VAL = 8206;\nfunction QuantizePVT() {\n  var tak = null;\n  var rv = null;\n  var psy = null;\n  this.setModules = function(_tk, _rv, _psy) {\n    tak = _tk;\n    rv = _rv;\n    psy = _psy;\n  };\n  function POW20(x) {\n    return pow20[x + QuantizePVT.Q_MAX2];\n  }\n  this.IPOW20 = function(x) {\n    return ipow20[x];\n  };\n  var DBL_EPSILON = 2220446049250313e-31;\n  var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n  var PRECALC_SIZE = IXMAX_VAL + 2;\n  var Q_MAX = QuantizePVT.Q_MAX;\n  var Q_MAX2 = QuantizePVT.Q_MAX2;\n  var NSATHSCALE = 100;\n  this.nr_of_sfb_block = [\n    [\n      [6, 5, 5, 5],\n      [9, 9, 9, 9],\n      [6, 9, 9, 9]\n    ],\n    [\n      [6, 5, 7, 3],\n      [9, 9, 12, 6],\n      [6, 9, 12, 6]\n    ],\n    [\n      [11, 10, 0, 0],\n      [18, 18, 0, 0],\n      [15, 18, 0, 0]\n    ],\n    [\n      [7, 7, 7, 0],\n      [12, 12, 12, 0],\n      [6, 15, 12, 0]\n    ],\n    [\n      [6, 6, 6, 3],\n      [12, 9, 9, 6],\n      [6, 12, 9, 6]\n    ],\n    [\n      [8, 8, 5, 0],\n      [15, 12, 9, 0],\n      [6, 18, 9, 0]\n    ]\n  ];\n  var pretab = [\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    1,\n    1,\n    1,\n    1,\n    2,\n    2,\n    3,\n    3,\n    3,\n    2,\n    0\n  ];\n  this.pretab = pretab;\n  this.sfBandIndex = [\n    new ScaleFac(\n      [\n        0,\n        6,\n        12,\n        18,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        80,\n        96,\n        116,\n        140,\n        168,\n        200,\n        238,\n        284,\n        336,\n        396,\n        464,\n        522,\n        576\n      ],\n      [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        6,\n        12,\n        18,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        80,\n        96,\n        114,\n        136,\n        162,\n        194,\n        232,\n        278,\n        332,\n        394,\n        464,\n        540,\n        576\n      ],\n      [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        6,\n        12,\n        18,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        80,\n        96,\n        116,\n        140,\n        168,\n        200,\n        238,\n        284,\n        336,\n        396,\n        464,\n        522,\n        576\n      ],\n      [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        4,\n        8,\n        12,\n        16,\n        20,\n        24,\n        30,\n        36,\n        44,\n        52,\n        62,\n        74,\n        90,\n        110,\n        134,\n        162,\n        196,\n        238,\n        288,\n        342,\n        418,\n        576\n      ],\n      [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        4,\n        8,\n        12,\n        16,\n        20,\n        24,\n        30,\n        36,\n        42,\n        50,\n        60,\n        72,\n        88,\n        106,\n        128,\n        156,\n        190,\n        230,\n        276,\n        330,\n        384,\n        576\n      ],\n      [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        4,\n        8,\n        12,\n        16,\n        20,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        82,\n        102,\n        126,\n        156,\n        194,\n        240,\n        296,\n        364,\n        448,\n        550,\n        576\n      ],\n      [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        6,\n        12,\n        18,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        80,\n        96,\n        116,\n        140,\n        168,\n        200,\n        238,\n        284,\n        336,\n        396,\n        464,\n        522,\n        576\n      ],\n      [\n        0 / 3,\n        12 / 3,\n        24 / 3,\n        36 / 3,\n        54 / 3,\n        78 / 3,\n        108 / 3,\n        144 / 3,\n        186 / 3,\n        240 / 3,\n        312 / 3,\n        402 / 3,\n        522 / 3,\n        576 / 3\n      ],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        6,\n        12,\n        18,\n        24,\n        30,\n        36,\n        44,\n        54,\n        66,\n        80,\n        96,\n        116,\n        140,\n        168,\n        200,\n        238,\n        284,\n        336,\n        396,\n        464,\n        522,\n        576\n      ],\n      [\n        0 / 3,\n        12 / 3,\n        24 / 3,\n        36 / 3,\n        54 / 3,\n        78 / 3,\n        108 / 3,\n        144 / 3,\n        186 / 3,\n        240 / 3,\n        312 / 3,\n        402 / 3,\n        522 / 3,\n        576 / 3\n      ],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    ),\n    new ScaleFac(\n      [\n        0,\n        12,\n        24,\n        36,\n        48,\n        60,\n        72,\n        88,\n        108,\n        132,\n        160,\n        192,\n        232,\n        280,\n        336,\n        400,\n        476,\n        566,\n        568,\n        570,\n        572,\n        574,\n        576\n      ],\n      [\n        0 / 3,\n        24 / 3,\n        48 / 3,\n        72 / 3,\n        108 / 3,\n        156 / 3,\n        216 / 3,\n        288 / 3,\n        372 / 3,\n        480 / 3,\n        486 / 3,\n        492 / 3,\n        498 / 3,\n        576 / 3\n      ],\n      [0, 0, 0, 0, 0, 0, 0],\n      [0, 0, 0, 0, 0, 0, 0]\n    )\n  ];\n  var pow20 = new_float$3(Q_MAX + Q_MAX2 + 1);\n  var ipow20 = new_float$3(Q_MAX);\n  var pow43 = new_float$3(PRECALC_SIZE);\n  var adj43 = new_float$3(PRECALC_SIZE);\n  this.adj43 = adj43;\n  function ATHmdct(gfp, f) {\n    var ath = psy.ATHformula(f, gfp);\n    ath -= NSATHSCALE;\n    ath = Math.pow(10, ath / 10 + gfp.ATHlower);\n    return ath;\n  }\n  function compute_ath(gfp) {\n    var ATH_l = gfp.internal_flags.ATH.l;\n    var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n    var ATH_s = gfp.internal_flags.ATH.s;\n    var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n    var gfc = gfp.internal_flags;\n    var samp_freq = gfp.out_samplerate;\n    for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n      var start = gfc.scalefac_band.l[sfb];\n      var end = gfc.scalefac_band.l[sfb + 1];\n      ATH_l[sfb] = Float.MAX_VALUE;\n      for (var i = start; i < end; i++) {\n        var freq = i * samp_freq / (2 * 576);\n        var ATH_f = ATHmdct(gfp, freq);\n        ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n      }\n    }\n    for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n      var start = gfc.scalefac_band.psfb21[sfb];\n      var end = gfc.scalefac_band.psfb21[sfb + 1];\n      ATH_psfb21[sfb] = Float.MAX_VALUE;\n      for (var i = start; i < end; i++) {\n        var freq = i * samp_freq / (2 * 576);\n        var ATH_f = ATHmdct(gfp, freq);\n        ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n      }\n    }\n    for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n      var start = gfc.scalefac_band.s[sfb];\n      var end = gfc.scalefac_band.s[sfb + 1];\n      ATH_s[sfb] = Float.MAX_VALUE;\n      for (var i = start; i < end; i++) {\n        var freq = i * samp_freq / (2 * 192);\n        var ATH_f = ATHmdct(gfp, freq);\n        ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n      }\n      ATH_s[sfb] *= gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n    }\n    for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n      var start = gfc.scalefac_band.psfb12[sfb];\n      var end = gfc.scalefac_band.psfb12[sfb + 1];\n      ATH_psfb12[sfb] = Float.MAX_VALUE;\n      for (var i = start; i < end; i++) {\n        var freq = i * samp_freq / (2 * 192);\n        var ATH_f = ATHmdct(gfp, freq);\n        ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n      }\n      ATH_psfb12[sfb] *= gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12];\n    }\n    if (gfp.noATH) {\n      for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n        ATH_l[sfb] = 1e-20;\n      }\n      for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n        ATH_psfb21[sfb] = 1e-20;\n      }\n      for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n        ATH_s[sfb] = 1e-20;\n      }\n      for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n        ATH_psfb12[sfb] = 1e-20;\n      }\n    }\n    gfc.ATH.floor = 10 * Math.log10(ATHmdct(gfp, -1));\n  }\n  this.iteration_init = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var l3_side = gfc.l3_side;\n    var i;\n    if (gfc.iteration_init_init == 0) {\n      gfc.iteration_init_init = 1;\n      l3_side.main_data_begin = 0;\n      compute_ath(gfp);\n      pow43[0] = 0;\n      for (i = 1; i < PRECALC_SIZE; i++)\n        pow43[i] = Math.pow(i, 4 / 3);\n      for (i = 0; i < PRECALC_SIZE - 1; i++) {\n        adj43[i] = i + 1 - Math.pow(0.5 * (pow43[i] + pow43[i + 1]), 0.75);\n      }\n      adj43[i] = 0.5;\n      for (i = 0; i < Q_MAX; i++)\n        ipow20[i] = Math.pow(2, (i - 210) * -0.1875);\n      for (i = 0; i <= Q_MAX + Q_MAX2; i++) {\n        pow20[i] = Math.pow(2, (i - 210 - Q_MAX2) * 0.25);\n      }\n      tak.huffman_init(gfc);\n      {\n        var bass, alto, treble, sfb21;\n        i = gfp.exp_nspsytune >> 2 & 63;\n        if (i >= 32)\n          i -= 64;\n        bass = Math.pow(10, i / 4 / 10);\n        i = gfp.exp_nspsytune >> 8 & 63;\n        if (i >= 32)\n          i -= 64;\n        alto = Math.pow(10, i / 4 / 10);\n        i = gfp.exp_nspsytune >> 14 & 63;\n        if (i >= 32)\n          i -= 64;\n        treble = Math.pow(10, i / 4 / 10);\n        i = gfp.exp_nspsytune >> 20 & 63;\n        if (i >= 32)\n          i -= 64;\n        sfb21 = treble * Math.pow(10, i / 4 / 10);\n        for (i = 0; i < Encoder.SBMAX_l; i++) {\n          var f;\n          if (i <= 6)\n            f = bass;\n          else if (i <= 13)\n            f = alto;\n          else if (i <= 20)\n            f = treble;\n          else\n            f = sfb21;\n          gfc.nsPsy.longfact[i] = f;\n        }\n        for (i = 0; i < Encoder.SBMAX_s; i++) {\n          var f;\n          if (i <= 5)\n            f = bass;\n          else if (i <= 10)\n            f = alto;\n          else if (i <= 11)\n            f = treble;\n          else\n            f = sfb21;\n          gfc.nsPsy.shortfact[i] = f;\n        }\n      }\n    }\n  };\n  this.on_pe = function(gfp, pe, targ_bits, mean_bits, gr, cbr) {\n    var gfc = gfp.internal_flags;\n    var tbits = 0;\n    var bits;\n    var add_bits = new_int$3(2);\n    var ch;\n    var mb = new MeanBits$1(tbits);\n    var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n    tbits = mb.bits;\n    var max_bits = tbits + extra_bits;\n    if (max_bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n      max_bits = LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n    }\n    for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n      targ_bits[ch] = Math.min(\n        LameInternalFlags$1.MAX_BITS_PER_CHANNEL,\n        tbits / gfc.channels_out\n      );\n      add_bits[ch] = 0 | targ_bits[ch] * pe[gr][ch] / 700 - targ_bits[ch];\n      if (add_bits[ch] > mean_bits * 3 / 4)\n        add_bits[ch] = mean_bits * 3 / 4;\n      if (add_bits[ch] < 0)\n        add_bits[ch] = 0;\n      if (add_bits[ch] + targ_bits[ch] > LameInternalFlags$1.MAX_BITS_PER_CHANNEL) {\n        add_bits[ch] = Math.max(\n          0,\n          LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[ch]\n        );\n      }\n      bits += add_bits[ch];\n    }\n    if (bits > extra_bits) {\n      for (ch = 0; ch < gfc.channels_out; ++ch) {\n        add_bits[ch] = extra_bits * add_bits[ch] / bits;\n      }\n    }\n    for (ch = 0; ch < gfc.channels_out; ++ch) {\n      targ_bits[ch] += add_bits[ch];\n      extra_bits -= add_bits[ch];\n    }\n    for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n      bits += targ_bits[ch];\n    }\n    if (bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n      var sum = 0;\n      for (ch = 0; ch < gfc.channels_out; ++ch) {\n        targ_bits[ch] *= LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n        targ_bits[ch] /= bits;\n        sum += targ_bits[ch];\n      }\n    }\n    return max_bits;\n  };\n  this.reduce_side = function(targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n    assert$7(\n      targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n    );\n    var fac = 0.33 * (0.5 - ms_ener_ratio) / 0.5;\n    if (fac < 0)\n      fac = 0;\n    if (fac > 0.5)\n      fac = 0.5;\n    var move_bits = 0 | fac * 0.5 * (targ_bits[0] + targ_bits[1]);\n    if (move_bits > LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n      move_bits = LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0];\n    }\n    if (move_bits < 0)\n      move_bits = 0;\n    if (targ_bits[1] >= 125) {\n      if (targ_bits[1] - move_bits > 125) {\n        if (targ_bits[0] < mean_bits)\n          targ_bits[0] += move_bits;\n        targ_bits[1] -= move_bits;\n      } else {\n        targ_bits[0] += targ_bits[1] - 125;\n        targ_bits[1] = 125;\n      }\n    }\n    move_bits = targ_bits[0] + targ_bits[1];\n    if (move_bits > max_bits) {\n      targ_bits[0] = max_bits * targ_bits[0] / move_bits;\n      targ_bits[1] = max_bits * targ_bits[1] / move_bits;\n    }\n    assert$7(targ_bits[0] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n    assert$7(targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n    assert$7(\n      targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n    );\n  };\n  this.athAdjust = function(a, x, athFloor) {\n    var o = 90.30873362;\n    var p2 = 94.82444863;\n    var u = Util$1.FAST_LOG10_X(x, 10);\n    var v = a * a;\n    var w = 0;\n    u -= athFloor;\n    if (v > 1e-20)\n      w = 1 + Util$1.FAST_LOG10_X(v, 10 / o);\n    if (w < 0)\n      w = 0;\n    u *= w;\n    u += athFloor + o - p2;\n    return Math.pow(10, 0.1 * u);\n  };\n  this.calc_xmin = function(gfp, ratio, cod_info, pxmin) {\n    var pxminPos = 0;\n    var gfc = gfp.internal_flags;\n    var gsfb;\n    var j = 0;\n    var ath_over = 0;\n    var ATH2 = gfc.ATH;\n    var xr = cod_info.xr;\n    var enable_athaa_fix = gfp.VBR == VbrMode$4.vbr_mtrh ? 1 : 0;\n    var masking_lower = gfc.masking_lower;\n    if (gfp.VBR == VbrMode$4.vbr_mtrh || gfp.VBR == VbrMode$4.vbr_mt) {\n      masking_lower = 1;\n    }\n    for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n      var en0, xmin;\n      var rh1, rh2;\n      var width, l;\n      if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n        xmin = athAdjust(ATH2.adjust, ATH2.l[gsfb], ATH2.floor);\n      } else\n        xmin = ATH2.adjust * ATH2.l[gsfb];\n      width = cod_info.width[gsfb];\n      rh1 = xmin / width;\n      rh2 = DBL_EPSILON;\n      l = width >> 1;\n      en0 = 0;\n      do {\n        var xa, xb;\n        xa = xr[j] * xr[j];\n        en0 += xa;\n        rh2 += xa < rh1 ? xa : rh1;\n        j++;\n        xb = xr[j] * xr[j];\n        en0 += xb;\n        rh2 += xb < rh1 ? xb : rh1;\n        j++;\n      } while (--l > 0);\n      if (en0 > xmin)\n        ath_over++;\n      if (gsfb == Encoder.SBPSY_l) {\n        var x = xmin * gfc.nsPsy.longfact[gsfb];\n        if (rh2 < x) {\n          rh2 = x;\n        }\n      }\n      if (enable_athaa_fix != 0) {\n        xmin = rh2;\n      }\n      if (!gfp.ATHonly) {\n        var e = ratio.en.l[gsfb];\n        if (e > 0) {\n          var x;\n          x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n          if (enable_athaa_fix != 0)\n            x *= gfc.nsPsy.longfact[gsfb];\n          if (xmin < x)\n            xmin = x;\n        }\n      }\n      if (enable_athaa_fix != 0)\n        pxmin[pxminPos++] = xmin;\n      else\n        pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n    }\n    var max_nonzero = 575;\n    if (cod_info.block_type != Encoder.SHORT_TYPE) {\n      var k = 576;\n      while (k-- != 0 && BitStream$1.EQ(xr[k], 0)) {\n        max_nonzero = k;\n      }\n    }\n    cod_info.max_nonzero_coeff = max_nonzero;\n    for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n      var width, b;\n      var tmpATH;\n      if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n        tmpATH = athAdjust(ATH2.adjust, ATH2.s[sfb], ATH2.floor);\n      } else\n        tmpATH = ATH2.adjust * ATH2.s[sfb];\n      width = cod_info.width[gsfb];\n      for (b = 0; b < 3; b++) {\n        var en0 = 0;\n        var xmin;\n        var rh1, rh2;\n        var l = width >> 1;\n        rh1 = tmpATH / width;\n        rh2 = DBL_EPSILON;\n        do {\n          var xa, xb;\n          xa = xr[j] * xr[j];\n          en0 += xa;\n          rh2 += xa < rh1 ? xa : rh1;\n          j++;\n          xb = xr[j] * xr[j];\n          en0 += xb;\n          rh2 += xb < rh1 ? xb : rh1;\n          j++;\n        } while (--l > 0);\n        if (en0 > tmpATH)\n          ath_over++;\n        if (sfb == Encoder.SBPSY_s) {\n          var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n          if (rh2 < x) {\n            rh2 = x;\n          }\n        }\n        if (enable_athaa_fix != 0)\n          xmin = rh2;\n        else\n          xmin = tmpATH;\n        if (!gfp.ATHonly && !gfp.ATHshort) {\n          var e = ratio.en.s[sfb][b];\n          if (e > 0) {\n            var x;\n            x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n            if (enable_athaa_fix != 0)\n              x *= gfc.nsPsy.shortfact[sfb];\n            if (xmin < x)\n              xmin = x;\n          }\n        }\n        if (enable_athaa_fix != 0)\n          pxmin[pxminPos++] = xmin;\n        else\n          pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n      }\n      if (gfp.useTemporal) {\n        if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1]) {\n          pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1]) * gfc.decay;\n        }\n        if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2]) {\n          pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2]) * gfc.decay;\n        }\n      }\n    }\n    return ath_over;\n  };\n  function StartLine(j) {\n    this.s = j;\n  }\n  this.calc_noise_core = function(cod_info, startline, l, step) {\n    var noise = 0;\n    var j = startline.s;\n    var ix = cod_info.l3_enc;\n    if (j > cod_info.count1) {\n      while (l-- != 0) {\n        var temp;\n        temp = cod_info.xr[j];\n        j++;\n        noise += temp * temp;\n        temp = cod_info.xr[j];\n        j++;\n        noise += temp * temp;\n      }\n    } else if (j > cod_info.big_values) {\n      var ix01 = new_float$3(2);\n      ix01[0] = 0;\n      ix01[1] = step;\n      while (l-- != 0) {\n        var temp;\n        temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n        j++;\n        noise += temp * temp;\n        temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n        j++;\n        noise += temp * temp;\n      }\n    } else {\n      while (l-- != 0) {\n        var temp;\n        temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n        j++;\n        noise += temp * temp;\n        temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n        j++;\n        noise += temp * temp;\n      }\n    }\n    startline.s = j;\n    return noise;\n  };\n  this.calc_noise = function(cod_info, l3_xmin, distort, res, prev_noise) {\n    var distortPos = 0;\n    var l3_xminPos = 0;\n    var sfb;\n    var l;\n    var over = 0;\n    var over_noise_db = 0;\n    var tot_noise_db = 0;\n    var max_noise = -20;\n    var j = 0;\n    var scalefac = cod_info.scalefac;\n    var scalefacPos = 0;\n    res.over_SSD = 0;\n    for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n      var s = cod_info.global_gain - (scalefac[scalefacPos++] + (cod_info.preflag != 0 ? pretab[sfb] : 0) << cod_info.scalefac_scale + 1) - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n      var noise = 0;\n      if (prev_noise != null && prev_noise.step[sfb] == s) {\n        noise = prev_noise.noise[sfb];\n        j += cod_info.width[sfb];\n        distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n        noise = prev_noise.noise_log[sfb];\n      } else {\n        var step = POW20(s);\n        l = cod_info.width[sfb] >> 1;\n        if (j + cod_info.width[sfb] > cod_info.max_nonzero_coeff) {\n          var usefullsize;\n          usefullsize = cod_info.max_nonzero_coeff - j + 1;\n          if (usefullsize > 0)\n            l = usefullsize >> 1;\n          else\n            l = 0;\n        }\n        var sl = new StartLine(j);\n        noise = this.calc_noise_core(cod_info, sl, l, step);\n        j = sl.s;\n        if (prev_noise != null) {\n          prev_noise.step[sfb] = s;\n          prev_noise.noise[sfb] = noise;\n        }\n        noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n        noise = Util$1.FAST_LOG10(Math.max(noise, 1e-20));\n        if (prev_noise != null) {\n          prev_noise.noise_log[sfb] = noise;\n        }\n      }\n      if (prev_noise != null) {\n        prev_noise.global_gain = cod_info.global_gain;\n      }\n      tot_noise_db += noise;\n      if (noise > 0) {\n        var tmp;\n        tmp = Math.max(0 | noise * 10 + 0.5, 1);\n        res.over_SSD += tmp * tmp;\n        over++;\n        over_noise_db += noise;\n      }\n      max_noise = Math.max(max_noise, noise);\n    }\n    res.over_count = over;\n    res.tot_noise = tot_noise_db;\n    res.over_noise = over_noise_db;\n    res.max_noise = max_noise;\n    return over;\n  };\n  this.set_pinfo = function(gfp, cod_info, ratio, gr, ch) {\n    var gfc = gfp.internal_flags;\n    var sfb, sfb2;\n    var l;\n    var en0, en1;\n    var ifqstep = cod_info.scalefac_scale == 0 ? 0.5 : 1;\n    var scalefac = cod_info.scalefac;\n    var l3_xmin = new_float$3(L3Side.SFBMAX);\n    var xfsf = new_float$3(L3Side.SFBMAX);\n    var noise = new CalcNoiseResult();\n    calc_xmin(gfp, ratio, cod_info, l3_xmin);\n    calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n    var j = 0;\n    sfb2 = cod_info.sfb_lmax;\n    if (cod_info.block_type != Encoder.SHORT_TYPE && cod_info.mixed_block_flag == 0) {\n      sfb2 = 22;\n    }\n    for (sfb = 0; sfb < sfb2; sfb++) {\n      var start = gfc.scalefac_band.l[sfb];\n      var end = gfc.scalefac_band.l[sfb + 1];\n      var bw = end - start;\n      for (en0 = 0; j < end; j++)\n        en0 += cod_info.xr[j] * cod_info.xr[j];\n      en0 /= bw;\n      en1 = 1e15;\n      gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n      gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n      if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n        en0 = en0 / ratio.en.l[sfb];\n      else\n        en0 = 0;\n      gfc.pinfo.thr[gr][ch][sfb] = en1 * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n      gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n      if (cod_info.preflag != 0 && sfb >= 11) {\n        gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n      }\n      if (sfb < Encoder.SBPSY_l) {\n        assert$7(scalefac[sfb] >= 0);\n        gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n      }\n    }\n    if (cod_info.block_type == Encoder.SHORT_TYPE) {\n      sfb2 = sfb;\n      for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n        var start = gfc.scalefac_band.s[sfb];\n        var end = gfc.scalefac_band.s[sfb + 1];\n        var bw = end - start;\n        for (var i = 0; i < 3; i++) {\n          for (en0 = 0, l = start; l < end; l++) {\n            en0 += cod_info.xr[j] * cod_info.xr[j];\n            j++;\n          }\n          en0 = Math.max(en0 / bw, 1e-20);\n          en1 = 1e15;\n          gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n          gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2] * xfsf[sfb2] / bw;\n          if (ratio.en.s[sfb][i] > 0)\n            en0 = en0 / ratio.en.s[sfb][i];\n          else\n            en0 = 0;\n          if (gfp.ATHonly || gfp.ATHshort)\n            en0 = 0;\n          gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1 * Math.max(en0 * ratio.thm.s[sfb][i], gfc.ATH.s[sfb]);\n          gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2 * cod_info.subblock_gain[i];\n          if (sfb < Encoder.SBPSY_s) {\n            gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep * scalefac[sfb2];\n          }\n          sfb2++;\n        }\n      }\n    }\n    gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n    gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length + cod_info.part2_length;\n    gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n    gfc.pinfo.over[gr][ch] = noise.over_count;\n    gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10;\n    gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10;\n    gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10;\n    gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n  };\n}\nvar System$4 = common.System;\nvar Arrays$3 = common.Arrays;\nvar new_int$2 = common.new_int;\nvar assert$6 = common.assert;\nfunction Takehiro() {\n  var qupvt = null;\n  this.qupvt = null;\n  this.setModules = function(_qupvt) {\n    this.qupvt = _qupvt;\n    qupvt = _qupvt;\n  };\n  function Bits(b) {\n    this.bits = 0 | b;\n  }\n  var subdv_table = [\n    [0, 0],\n    [0, 0],\n    [0, 0],\n    [0, 0],\n    [0, 0],\n    [0, 1],\n    [1, 1],\n    [1, 1],\n    [1, 2],\n    [2, 2],\n    [2, 3],\n    [2, 3],\n    [3, 4],\n    [3, 4],\n    [3, 4],\n    [4, 5],\n    [4, 5],\n    [4, 6],\n    [5, 6],\n    [5, 6],\n    [5, 7],\n    [6, 7],\n    [6, 7]\n  ];\n  function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n    var compareval0 = (1 - 0.4054) / istep;\n    l = l >> 1;\n    while (l-- != 0) {\n      ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n      ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n    }\n  }\n  function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n    l = l >> 1;\n    var remaining = l % 2;\n    l = l >> 1;\n    while (l-- != 0) {\n      var x0, x1, x2, x3;\n      var rx0, rx1, rx2, rx3;\n      x0 = xr[xrPos++] * istep;\n      x1 = xr[xrPos++] * istep;\n      rx0 = 0 | x0;\n      x2 = xr[xrPos++] * istep;\n      rx1 = 0 | x1;\n      x3 = xr[xrPos++] * istep;\n      rx2 = 0 | x2;\n      x0 += qupvt.adj43[rx0];\n      rx3 = 0 | x3;\n      x1 += qupvt.adj43[rx1];\n      ix[ixPos++] = 0 | x0;\n      x2 += qupvt.adj43[rx2];\n      ix[ixPos++] = 0 | x1;\n      x3 += qupvt.adj43[rx3];\n      ix[ixPos++] = 0 | x2;\n      ix[ixPos++] = 0 | x3;\n    }\n    if (remaining != 0) {\n      var x0, x1;\n      var rx0, rx1;\n      x0 = xr[xrPos++] * istep;\n      x1 = xr[xrPos++] * istep;\n      rx0 = 0 | x0;\n      rx1 = 0 | x1;\n      x0 += qupvt.adj43[rx0];\n      x1 += qupvt.adj43[rx1];\n      ix[ixPos++] = 0 | x0;\n      ix[ixPos++] = 0 | x1;\n    }\n  }\n  function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n    var sfb;\n    var sfbmax;\n    var j = 0;\n    var prev_data_use;\n    var accumulate = 0;\n    var accumulate01 = 0;\n    var xpPos = 0;\n    var iData = pi;\n    var iDataPos = 0;\n    var acc_iData = iData;\n    var acc_iDataPos = 0;\n    var acc_xp = xp;\n    var acc_xpPos = 0;\n    prev_data_use = prevNoise != null && codInfo.global_gain == prevNoise.global_gain;\n    if (codInfo.block_type == Encoder.SHORT_TYPE)\n      sfbmax = 38;\n    else\n      sfbmax = 21;\n    for (sfb = 0; sfb <= sfbmax; sfb++) {\n      var step = -1;\n      if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n        step = codInfo.global_gain - (codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb] : 0) << codInfo.scalefac_scale + 1) - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n      }\n      assert$6(codInfo.width[sfb] >= 0);\n      if (prev_data_use && prevNoise.step[sfb] == step) {\n        if (accumulate != 0) {\n          quantize_lines_xrpow(\n            accumulate,\n            istep,\n            acc_xp,\n            acc_xpPos,\n            acc_iData,\n            acc_iDataPos\n          );\n          accumulate = 0;\n        }\n        if (accumulate01 != 0) {\n          quantize_lines_xrpow_01(\n            accumulate01,\n            istep,\n            acc_xp,\n            acc_xpPos,\n            acc_iData,\n            acc_iDataPos\n          );\n          accumulate01 = 0;\n        }\n      } else {\n        var l = codInfo.width[sfb];\n        if (j + codInfo.width[sfb] > codInfo.max_nonzero_coeff) {\n          var usefullsize;\n          usefullsize = codInfo.max_nonzero_coeff - j + 1;\n          Arrays$3.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n          l = usefullsize;\n          if (l < 0) {\n            l = 0;\n          }\n          sfb = sfbmax + 1;\n        }\n        if (accumulate == 0 && accumulate01 == 0) {\n          acc_iData = iData;\n          acc_iDataPos = iDataPos;\n          acc_xp = xp;\n          acc_xpPos = xpPos;\n        }\n        if (prevNoise != null && prevNoise.sfb_count1 > 0 && sfb >= prevNoise.sfb_count1 && prevNoise.step[sfb] > 0 && step >= prevNoise.step[sfb]) {\n          if (accumulate != 0) {\n            quantize_lines_xrpow(\n              accumulate,\n              istep,\n              acc_xp,\n              acc_xpPos,\n              acc_iData,\n              acc_iDataPos\n            );\n            accumulate = 0;\n            acc_iData = iData;\n            acc_iDataPos = iDataPos;\n            acc_xp = xp;\n            acc_xpPos = xpPos;\n          }\n          accumulate01 += l;\n        } else {\n          if (accumulate01 != 0) {\n            quantize_lines_xrpow_01(\n              accumulate01,\n              istep,\n              acc_xp,\n              acc_xpPos,\n              acc_iData,\n              acc_iDataPos\n            );\n            accumulate01 = 0;\n            acc_iData = iData;\n            acc_iDataPos = iDataPos;\n            acc_xp = xp;\n            acc_xpPos = xpPos;\n          }\n          accumulate += l;\n        }\n        if (l <= 0) {\n          if (accumulate01 != 0) {\n            quantize_lines_xrpow_01(\n              accumulate01,\n              istep,\n              acc_xp,\n              acc_xpPos,\n              acc_iData,\n              acc_iDataPos\n            );\n            accumulate01 = 0;\n          }\n          if (accumulate != 0) {\n            quantize_lines_xrpow(\n              accumulate,\n              istep,\n              acc_xp,\n              acc_xpPos,\n              acc_iData,\n              acc_iDataPos\n            );\n            accumulate = 0;\n          }\n          break;\n        }\n      }\n      if (sfb <= sfbmax) {\n        iDataPos += codInfo.width[sfb];\n        xpPos += codInfo.width[sfb];\n        j += codInfo.width[sfb];\n      }\n    }\n    if (accumulate != 0) {\n      quantize_lines_xrpow(\n        accumulate,\n        istep,\n        acc_xp,\n        acc_xpPos,\n        acc_iData,\n        acc_iDataPos\n      );\n      accumulate = 0;\n    }\n    if (accumulate01 != 0) {\n      quantize_lines_xrpow_01(\n        accumulate01,\n        istep,\n        acc_xp,\n        acc_xpPos,\n        acc_iData,\n        acc_iDataPos\n      );\n      accumulate01 = 0;\n    }\n  }\n  function ix_max(ix, ixPos, endPos) {\n    var max1 = 0;\n    var max2 = 0;\n    do {\n      var x1 = ix[ixPos++];\n      var x2 = ix[ixPos++];\n      if (max1 < x1)\n        max1 = x1;\n      if (max2 < x2)\n        max2 = x2;\n    } while (ixPos < endPos);\n    if (max1 < max2)\n      max1 = max2;\n    return max1;\n  }\n  function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n    var linbits = Tables$1.ht[t1].xlen * 65536 + Tables$1.ht[t2].xlen;\n    var sum = 0;\n    var sum2;\n    do {\n      var x = ix[ixPos++];\n      var y = ix[ixPos++];\n      if (x != 0) {\n        if (x > 14) {\n          x = 15;\n          sum += linbits;\n        }\n        x *= 16;\n      }\n      if (y != 0) {\n        if (y > 14) {\n          y = 15;\n          sum += linbits;\n        }\n        x += y;\n      }\n      sum += Tables$1.largetbl[x];\n    } while (ixPos < end);\n    sum2 = sum & 65535;\n    sum >>= 16;\n    if (sum > sum2) {\n      sum = sum2;\n      t1 = t2;\n    }\n    s.bits += sum;\n    return t1;\n  }\n  function count_bit_noESC(ix, ixPos, end, s) {\n    var sum1 = 0;\n    var hlen1 = Tables$1.ht[1].hlen;\n    do {\n      var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n      ixPos += 2;\n      sum1 += hlen1[x];\n    } while (ixPos < end);\n    s.bits += sum1;\n    return 1;\n  }\n  function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n    var sum = 0;\n    var sum2;\n    var xlen = Tables$1.ht[t1].xlen;\n    var hlen;\n    if (t1 == 2)\n      hlen = Tables$1.table23;\n    else\n      hlen = Tables$1.table56;\n    do {\n      var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n      ixPos += 2;\n      sum += hlen[x];\n    } while (ixPos < end);\n    sum2 = sum & 65535;\n    sum >>= 16;\n    if (sum > sum2) {\n      sum = sum2;\n      t1++;\n    }\n    s.bits += sum;\n    return t1;\n  }\n  function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n    var sum1 = 0;\n    var sum2 = 0;\n    var sum3 = 0;\n    var xlen = Tables$1.ht[t1].xlen;\n    var hlen1 = Tables$1.ht[t1].hlen;\n    var hlen2 = Tables$1.ht[t1 + 1].hlen;\n    var hlen3 = Tables$1.ht[t1 + 2].hlen;\n    do {\n      var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n      ixPos += 2;\n      sum1 += hlen1[x];\n      sum2 += hlen2[x];\n      sum3 += hlen3[x];\n    } while (ixPos < end);\n    var t = t1;\n    if (sum1 > sum2) {\n      sum1 = sum2;\n      t++;\n    }\n    if (sum1 > sum3) {\n      sum1 = sum3;\n      t = t1 + 2;\n    }\n    s.bits += sum1;\n    return t;\n  }\n  var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13];\n  function choose_table(ix, ixPos, endPos, s) {\n    var max = ix_max(ix, ixPos, endPos);\n    switch (max) {\n      case 0:\n        return max;\n      case 1:\n        return count_bit_noESC(ix, ixPos, endPos, s);\n      case 2:\n      case 3:\n        return count_bit_noESC_from2(\n          ix,\n          ixPos,\n          endPos,\n          huf_tbl_noESC[max - 1],\n          s\n        );\n      case 4:\n      case 5:\n      case 6:\n      case 7:\n      case 8:\n      case 9:\n      case 10:\n      case 11:\n      case 12:\n      case 13:\n      case 14:\n      case 15:\n        return count_bit_noESC_from3(\n          ix,\n          ixPos,\n          endPos,\n          huf_tbl_noESC[max - 1],\n          s\n        );\n      default:\n        if (max > QuantizePVT.IXMAX_VAL) {\n          s.bits = QuantizePVT.LARGE_BITS;\n          return -1;\n        }\n        max -= 15;\n        var choice2;\n        for (choice2 = 24; choice2 < 32; choice2++) {\n          if (Tables$1.ht[choice2].linmax >= max) {\n            break;\n          }\n        }\n        var choice;\n        for (choice = choice2 - 8; choice < 24; choice++) {\n          if (Tables$1.ht[choice].linmax >= max) {\n            break;\n          }\n        }\n        return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n    }\n  }\n  this.noquant_count_bits = function(gfc, gi, prev_noise) {\n    var ix = gi.l3_enc;\n    var i = Math.min(576, gi.max_nonzero_coeff + 2 >> 1 << 1);\n    if (prev_noise != null)\n      prev_noise.sfb_count1 = 0;\n    for (; i > 1; i -= 2)\n      if ((ix[i - 1] | ix[i - 2]) != 0)\n        break;\n    gi.count1 = i;\n    var a1 = 0;\n    var a2 = 0;\n    for (; i > 3; i -= 4) {\n      var p2;\n      if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 2147483647) > 1) {\n        break;\n      }\n      p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n      a1 += Tables$1.t32l[p2];\n      a2 += Tables$1.t33l[p2];\n    }\n    var bits = a1;\n    gi.count1table_select = 0;\n    if (a1 > a2) {\n      bits = a2;\n      gi.count1table_select = 1;\n    }\n    gi.count1bits = bits;\n    gi.big_values = i;\n    if (i == 0)\n      return bits;\n    if (gi.block_type == Encoder.SHORT_TYPE) {\n      a1 = 3 * gfc.scalefac_band.s[3];\n      if (a1 > gi.big_values)\n        a1 = gi.big_values;\n      a2 = gi.big_values;\n    } else if (gi.block_type == Encoder.NORM_TYPE) {\n      a1 = gi.region0_count = gfc.bv_scf[i - 2];\n      a2 = gi.region1_count = gfc.bv_scf[i - 1];\n      a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n      a1 = gfc.scalefac_band.l[a1 + 1];\n      if (a2 < i) {\n        var bi = new Bits(bits);\n        gi.table_select[2] = choose_table(ix, a2, i, bi);\n        bits = bi.bits;\n      }\n    } else {\n      gi.region0_count = 7;\n      gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n      a1 = gfc.scalefac_band.l[7 + 1];\n      a2 = i;\n      if (a1 > a2) {\n        a1 = a2;\n      }\n    }\n    a1 = Math.min(a1, i);\n    a2 = Math.min(a2, i);\n    if (a1 > 0) {\n      var bi = new Bits(bits);\n      gi.table_select[0] = choose_table(ix, 0, a1, bi);\n      bits = bi.bits;\n    }\n    if (a1 < a2) {\n      var bi = new Bits(bits);\n      gi.table_select[1] = choose_table(ix, a1, a2, bi);\n      bits = bi.bits;\n    }\n    if (gfc.use_best_huffman == 2) {\n      gi.part2_3_length = bits;\n      best_huffman_divide(gfc, gi);\n      bits = gi.part2_3_length;\n    }\n    if (prev_noise != null) {\n      if (gi.block_type == Encoder.NORM_TYPE) {\n        var sfb = 0;\n        while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n          sfb++;\n        }\n        prev_noise.sfb_count1 = sfb;\n      }\n    }\n    return bits;\n  };\n  this.count_bits = function(gfc, xr, gi, prev_noise) {\n    var ix = gi.l3_enc;\n    var w = QuantizePVT.IXMAX_VAL / qupvt.IPOW20(gi.global_gain);\n    if (gi.xrpow_max > w)\n      return QuantizePVT.LARGE_BITS;\n    quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n    if ((gfc.substep_shaping & 2) != 0) {\n      var j = 0;\n      var gain = gi.global_gain + gi.scalefac_scale;\n      var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n      for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n        var width = gi.width[sfb];\n        if (gfc.pseudohalf[sfb] == 0) {\n          j += width;\n        } else {\n          var k;\n          for (k = j, j += width; k < j; ++k) {\n            ix[k] = xr[k] >= roundfac ? ix[k] : 0;\n          }\n        }\n      }\n    }\n    return this.noquant_count_bits(gfc, gi, prev_noise);\n  };\n  function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n    var bigv = cod_info.big_values;\n    for (var r0 = 0; r0 <= 7 + 15; r0++) {\n      r01_bits[r0] = QuantizePVT.LARGE_BITS;\n    }\n    for (var r0 = 0; r0 < 16; r0++) {\n      var a1 = gfc.scalefac_band.l[r0 + 1];\n      if (a1 >= bigv)\n        break;\n      var r0bits = 0;\n      var bi = new Bits(r0bits);\n      var r0t = choose_table(ix, 0, a1, bi);\n      r0bits = bi.bits;\n      for (var r1 = 0; r1 < 8; r1++) {\n        var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n        if (a2 >= bigv)\n          break;\n        var bits = r0bits;\n        bi = new Bits(bits);\n        var r1t = choose_table(ix, a1, a2, bi);\n        bits = bi.bits;\n        if (r01_bits[r0 + r1] > bits) {\n          r01_bits[r0 + r1] = bits;\n          r01_div[r0 + r1] = r0;\n          r0_tbl[r0 + r1] = r0t;\n          r1_tbl[r0 + r1] = r1t;\n        }\n      }\n    }\n  }\n  function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n    var bigv = cod_info2.big_values;\n    for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n      var a2 = gfc.scalefac_band.l[r2];\n      if (a2 >= bigv)\n        break;\n      var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n      if (gi.part2_3_length <= bits)\n        break;\n      var bi = new Bits(bits);\n      var r2t = choose_table(ix, a2, bigv, bi);\n      bits = bi.bits;\n      if (gi.part2_3_length <= bits)\n        continue;\n      gi.assign(cod_info2);\n      gi.part2_3_length = bits;\n      gi.region0_count = r01_div[r2 - 2];\n      gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n      gi.table_select[0] = r0_tbl[r2 - 2];\n      gi.table_select[1] = r1_tbl[r2 - 2];\n      gi.table_select[2] = r2t;\n    }\n  }\n  this.best_huffman_divide = function(gfc, gi) {\n    var cod_info2 = new GrInfo();\n    var ix = gi.l3_enc;\n    var r01_bits = new_int$2(7 + 15 + 1);\n    var r01_div = new_int$2(7 + 15 + 1);\n    var r0_tbl = new_int$2(7 + 15 + 1);\n    var r1_tbl = new_int$2(7 + 15 + 1);\n    if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n      return;\n    cod_info2.assign(gi);\n    if (gi.block_type == Encoder.NORM_TYPE) {\n      recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n      recalc_divide_sub(\n        gfc,\n        cod_info2,\n        gi,\n        ix,\n        r01_bits,\n        r01_div,\n        r0_tbl,\n        r1_tbl\n      );\n    }\n    var i = cod_info2.big_values;\n    if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n      return;\n    i = gi.count1 + 2;\n    if (i > 576)\n      return;\n    cod_info2.assign(gi);\n    cod_info2.count1 = i;\n    var a1 = 0;\n    var a2 = 0;\n    for (; i > cod_info2.big_values; i -= 4) {\n      var p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n      a1 += Tables$1.t32l[p2];\n      a2 += Tables$1.t33l[p2];\n    }\n    cod_info2.big_values = i;\n    cod_info2.count1table_select = 0;\n    if (a1 > a2) {\n      a1 = a2;\n      cod_info2.count1table_select = 1;\n    }\n    cod_info2.count1bits = a1;\n    if (cod_info2.block_type == Encoder.NORM_TYPE) {\n      recalc_divide_sub(\n        gfc,\n        cod_info2,\n        gi,\n        ix,\n        r01_bits,\n        r01_div,\n        r0_tbl,\n        r1_tbl\n      );\n    } else {\n      cod_info2.part2_3_length = a1;\n      a1 = gfc.scalefac_band.l[7 + 1];\n      if (a1 > i) {\n        a1 = i;\n      }\n      if (a1 > 0) {\n        var bi = new Bits(cod_info2.part2_3_length);\n        cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n        cod_info2.part2_3_length = bi.bits;\n      }\n      if (i > a1) {\n        var bi = new Bits(cod_info2.part2_3_length);\n        cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n        cod_info2.part2_3_length = bi.bits;\n      }\n      if (gi.part2_3_length > cod_info2.part2_3_length)\n        gi.assign(cod_info2);\n    }\n  };\n  var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n  var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n  var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n  var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n  Takehiro.slen1_tab = slen1_tab;\n  Takehiro.slen2_tab = slen2_tab;\n  function scfsi_calc(ch, l3_side) {\n    var sfb;\n    var gi = l3_side.tt[1][ch];\n    var g0 = l3_side.tt[0][ch];\n    for (var i = 0; i < Tables$1.scfsi_band.length - 1; i++) {\n      for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n        if (g0.scalefac[sfb] != gi.scalefac[sfb] && gi.scalefac[sfb] >= 0)\n          break;\n      }\n      if (sfb == Tables$1.scfsi_band[i + 1]) {\n        for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n          gi.scalefac[sfb] = -1;\n        }\n        l3_side.scfsi[ch][i] = 1;\n      }\n    }\n    var s1 = 0;\n    var c1 = 0;\n    for (sfb = 0; sfb < 11; sfb++) {\n      if (gi.scalefac[sfb] == -1)\n        continue;\n      c1++;\n      if (s1 < gi.scalefac[sfb])\n        s1 = gi.scalefac[sfb];\n    }\n    var s2 = 0;\n    var c2 = 0;\n    for (; sfb < Encoder.SBPSY_l; sfb++) {\n      if (gi.scalefac[sfb] == -1)\n        continue;\n      c2++;\n      if (s2 < gi.scalefac[sfb])\n        s2 = gi.scalefac[sfb];\n    }\n    for (var i = 0; i < 16; i++) {\n      if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n        var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n        if (gi.part2_length > c) {\n          gi.part2_length = c;\n          gi.scalefac_compress = i;\n        }\n      }\n    }\n  }\n  this.best_scalefac_store = function(gfc, gr, ch, l3_side) {\n    var gi = l3_side.tt[gr][ch];\n    var sfb, i, j, l;\n    var recalc = 0;\n    j = 0;\n    for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n      var width = gi.width[sfb];\n      j += width;\n      for (l = -width; l < 0; l++) {\n        if (gi.l3_enc[l + j] != 0)\n          break;\n      }\n      if (l == 0)\n        gi.scalefac[sfb] = recalc = -2;\n    }\n    if (gi.scalefac_scale == 0 && gi.preflag == 0) {\n      var s = 0;\n      for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n        if (gi.scalefac[sfb] > 0)\n          s |= gi.scalefac[sfb];\n      }\n      if ((s & 1) == 0 && s != 0) {\n        for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n          if (gi.scalefac[sfb] > 0)\n            gi.scalefac[sfb] >>= 1;\n        }\n        gi.scalefac_scale = recalc = 1;\n      }\n    }\n    if (gi.preflag == 0 && gi.block_type != Encoder.SHORT_TYPE && gfc.mode_gr == 2) {\n      for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n        if (gi.scalefac[sfb] < qupvt.pretab[sfb] && gi.scalefac[sfb] != -2) {\n          break;\n        }\n      }\n      if (sfb == Encoder.SBPSY_l) {\n        for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n          if (gi.scalefac[sfb] > 0)\n            gi.scalefac[sfb] -= qupvt.pretab[sfb];\n        }\n        gi.preflag = recalc = 1;\n      }\n    }\n    for (i = 0; i < 4; i++)\n      l3_side.scfsi[ch][i] = 0;\n    if (gfc.mode_gr == 2 && gr == 1 && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n      scfsi_calc(ch, l3_side);\n      recalc = 0;\n    }\n    for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n      if (gi.scalefac[sfb] == -2) {\n        gi.scalefac[sfb] = 0;\n      }\n    }\n    if (recalc != 0) {\n      if (gfc.mode_gr == 2) {\n        this.scale_bitcount(gi);\n      } else {\n        this.scale_bitcount_lsf(gfc, gi);\n      }\n    }\n  };\n  function all_scalefactors_not_negative(scalefac, n) {\n    for (var i = 0; i < n; ++i) {\n      if (scalefac[i] < 0)\n        return false;\n    }\n    return true;\n  }\n  var scale_short = [\n    0,\n    18,\n    36,\n    54,\n    54,\n    36,\n    54,\n    72,\n    54,\n    72,\n    90,\n    72,\n    90,\n    108,\n    108,\n    126\n  ];\n  var scale_mixed = [\n    0,\n    18,\n    36,\n    54,\n    51,\n    35,\n    53,\n    71,\n    52,\n    70,\n    88,\n    69,\n    87,\n    105,\n    104,\n    122\n  ];\n  var scale_long = [\n    0,\n    10,\n    20,\n    30,\n    33,\n    21,\n    31,\n    41,\n    32,\n    42,\n    52,\n    43,\n    53,\n    63,\n    64,\n    74\n  ];\n  this.scale_bitcount = function(cod_info) {\n    var k;\n    var sfb;\n    var max_slen1 = 0;\n    var max_slen2 = 0;\n    var tab;\n    var scalefac = cod_info.scalefac;\n    assert$6(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n    if (cod_info.block_type == Encoder.SHORT_TYPE) {\n      tab = scale_short;\n      if (cod_info.mixed_block_flag != 0)\n        tab = scale_mixed;\n    } else {\n      tab = scale_long;\n      if (cod_info.preflag == 0) {\n        for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n          if (scalefac[sfb] < qupvt.pretab[sfb])\n            break;\n        }\n        if (sfb == Encoder.SBPSY_l) {\n          cod_info.preflag = 1;\n          for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n            scalefac[sfb] -= qupvt.pretab[sfb];\n          }\n        }\n      }\n    }\n    for (sfb = 0; sfb < cod_info.sfbdivide; sfb++) {\n      if (max_slen1 < scalefac[sfb])\n        max_slen1 = scalefac[sfb];\n    }\n    for (; sfb < cod_info.sfbmax; sfb++) {\n      if (max_slen2 < scalefac[sfb])\n        max_slen2 = scalefac[sfb];\n    }\n    cod_info.part2_length = QuantizePVT.LARGE_BITS;\n    for (k = 0; k < 16; k++) {\n      if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k] && cod_info.part2_length > tab[k]) {\n        cod_info.part2_length = tab[k];\n        cod_info.scalefac_compress = k;\n      }\n    }\n    return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n  };\n  var max_range_sfac_tab = [\n    [15, 15, 7, 7],\n    [15, 15, 7, 0],\n    [7, 3, 0, 0],\n    [15, 31, 31, 0],\n    [7, 7, 7, 0],\n    [3, 3, 0, 0]\n  ];\n  this.scale_bitcount_lsf = function(gfc, cod_info) {\n    var table_number, row_in_table, partition, nr_sfb, window2;\n    var over;\n    var i, sfb;\n    var max_sfac = new_int$2(4);\n    var scalefac = cod_info.scalefac;\n    if (cod_info.preflag != 0)\n      table_number = 2;\n    else\n      table_number = 0;\n    for (i = 0; i < 4; i++)\n      max_sfac[i] = 0;\n    if (cod_info.block_type == Encoder.SHORT_TYPE) {\n      row_in_table = 1;\n      var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n      for (sfb = 0, partition = 0; partition < 4; partition++) {\n        nr_sfb = partition_table[partition] / 3;\n        for (i = 0; i < nr_sfb; i++, sfb++) {\n          for (window2 = 0; window2 < 3; window2++) {\n            if (scalefac[sfb * 3 + window2] > max_sfac[partition]) {\n              max_sfac[partition] = scalefac[sfb * 3 + window2];\n            }\n          }\n        }\n      }\n    } else {\n      row_in_table = 0;\n      var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n      for (sfb = 0, partition = 0; partition < 4; partition++) {\n        nr_sfb = partition_table[partition];\n        for (i = 0; i < nr_sfb; i++, sfb++) {\n          if (scalefac[sfb] > max_sfac[partition]) {\n            max_sfac[partition] = scalefac[sfb];\n          }\n        }\n      }\n    }\n    for (over = false, partition = 0; partition < 4; partition++) {\n      if (max_sfac[partition] > max_range_sfac_tab[table_number][partition]) {\n        over = true;\n      }\n    }\n    if (!over) {\n      var slen1, slen2, slen3, slen4;\n      cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n      for (partition = 0; partition < 4; partition++) {\n        cod_info.slen[partition] = log2tab[max_sfac[partition]];\n      }\n      slen1 = cod_info.slen[0];\n      slen2 = cod_info.slen[1];\n      slen3 = cod_info.slen[2];\n      slen4 = cod_info.slen[3];\n      switch (table_number) {\n        case 0:\n          cod_info.scalefac_compress = (slen1 * 5 + slen2 << 4) + (slen3 << 2) + slen4;\n          break;\n        case 1:\n          cod_info.scalefac_compress = 400 + (slen1 * 5 + slen2 << 2) + slen3;\n          break;\n        case 2:\n          cod_info.scalefac_compress = 500 + slen1 * 3 + slen2;\n          break;\n        default:\n          System$4.err.printf(\"intensity stereo not implemented yet\\n\");\n          break;\n      }\n    }\n    if (!over) {\n      assert$6(cod_info.sfb_partition_table != null);\n      cod_info.part2_length = 0;\n      for (partition = 0; partition < 4; partition++) {\n        cod_info.part2_length += cod_info.slen[partition] * cod_info.sfb_partition_table[partition];\n      }\n    }\n    return over;\n  };\n  var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];\n  this.huffman_init = function(gfc) {\n    for (var i = 2; i <= 576; i += 2) {\n      var scfb_anz = 0;\n      var bv_index;\n      while (gfc.scalefac_band.l[++scfb_anz] < i)\n        ;\n      bv_index = subdv_table[scfb_anz][0];\n      while (gfc.scalefac_band.l[bv_index + 1] > i)\n        bv_index--;\n      if (bv_index < 0) {\n        bv_index = subdv_table[scfb_anz][0];\n      }\n      gfc.bv_scf[i - 2] = bv_index;\n      bv_index = subdv_table[scfb_anz][1];\n      while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i) {\n        bv_index--;\n      }\n      if (bv_index < 0) {\n        bv_index = subdv_table[scfb_anz][1];\n      }\n      gfc.bv_scf[i - 1] = bv_index;\n    }\n  };\n}\nvar System$3 = common.System;\nvar Arrays$2 = common.Arrays;\nvar new_byte$2 = common.new_byte;\nvar new_float_n = common.new_float_n;\nvar new_int$1 = common.new_int;\nvar assert$5 = common.assert;\nBitStream$1.EQ = function(a, b) {\n  return Math.abs(a) > Math.abs(b) ? Math.abs(a - b) <= Math.abs(a) * 1e-6 : Math.abs(a - b) <= Math.abs(b) * 1e-6;\n};\nBitStream$1.NEQ = function(a, b) {\n  return !BitStream$1.EQ(a, b);\n};\nfunction BitStream$1() {\n  var self2 = this;\n  var CRC16_POLYNOMIAL = 32773;\n  var ga = null;\n  var mpg = null;\n  var ver = null;\n  var vbr = null;\n  this.setModules = function(_ga, _mpg, _ver, _vbr) {\n    ga = _ga;\n    mpg = _mpg;\n    ver = _ver;\n    vbr = _vbr;\n  };\n  var buf = null;\n  var totbit = 0;\n  var bufByteIdx = 0;\n  var bufBitIdx = 0;\n  this.getframebits = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var bit_rate;\n    if (gfc.bitrate_index != 0) {\n      bit_rate = Tables$1.bitrate_table[gfp.version][gfc.bitrate_index];\n    } else\n      bit_rate = gfp.brate;\n    var bytes = 0 | (gfp.version + 1) * 72e3 * bit_rate / gfp.out_samplerate + gfc.padding;\n    return 8 * bytes;\n  };\n  function putheader_bits(gfc) {\n    System$3.arraycopy(\n      gfc.header[gfc.w_ptr].buf,\n      0,\n      buf,\n      bufByteIdx,\n      gfc.sideinfo_len\n    );\n    bufByteIdx += gfc.sideinfo_len;\n    totbit += gfc.sideinfo_len * 8;\n    gfc.w_ptr = gfc.w_ptr + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n  }\n  function putbits2(gfc, val, j) {\n    while (j > 0) {\n      var k;\n      if (bufBitIdx == 0) {\n        bufBitIdx = 8;\n        bufByteIdx++;\n        assert$5(gfc.header[gfc.w_ptr].write_timing >= totbit);\n        if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n          putheader_bits(gfc);\n        }\n        buf[bufByteIdx] = 0;\n      }\n      k = Math.min(j, bufBitIdx);\n      j -= k;\n      bufBitIdx -= k;\n      buf[bufByteIdx] |= val >> j << bufBitIdx;\n      totbit += k;\n    }\n  }\n  function putbits_noheaders(gfc, val, j) {\n    while (j > 0) {\n      var k;\n      if (bufBitIdx == 0) {\n        bufBitIdx = 8;\n        bufByteIdx++;\n        buf[bufByteIdx] = 0;\n      }\n      k = Math.min(j, bufBitIdx);\n      j -= k;\n      bufBitIdx -= k;\n      buf[bufByteIdx] |= val >> j << bufBitIdx;\n      totbit += k;\n    }\n  }\n  function drain_into_ancillary(gfp, remainingBits) {\n    var gfc = gfp.internal_flags;\n    var i;\n    if (remainingBits >= 8) {\n      putbits2(gfc, 76, 8);\n      remainingBits -= 8;\n    }\n    if (remainingBits >= 8) {\n      putbits2(gfc, 65, 8);\n      remainingBits -= 8;\n    }\n    if (remainingBits >= 8) {\n      putbits2(gfc, 77, 8);\n      remainingBits -= 8;\n    }\n    if (remainingBits >= 8) {\n      putbits2(gfc, 69, 8);\n      remainingBits -= 8;\n    }\n    if (remainingBits >= 32) {\n      var version2 = ver.getLameShortVersion();\n      if (remainingBits >= 32) {\n        for (i = 0; i < version2.length && remainingBits >= 8; ++i) {\n          remainingBits -= 8;\n          putbits2(gfc, version2.charAt(i), 8);\n        }\n      }\n    }\n    for (; remainingBits >= 1; remainingBits -= 1) {\n      putbits2(gfc, gfc.ancillary_flag, 1);\n      gfc.ancillary_flag ^= !gfp.disable_reservoir ? 1 : 0;\n    }\n  }\n  function writeheader(gfc, val, j) {\n    var ptr = gfc.header[gfc.h_ptr].ptr;\n    while (j > 0) {\n      var k = Math.min(j, 8 - (ptr & 7));\n      j -= k;\n      gfc.header[gfc.h_ptr].buf[ptr >> 3] |= val >> j << 8 - (ptr & 7) - k;\n      ptr += k;\n    }\n    gfc.header[gfc.h_ptr].ptr = ptr;\n  }\n  function CRC_update(value, crc) {\n    value <<= 8;\n    for (var i = 0; i < 8; i++) {\n      value <<= 1;\n      crc <<= 1;\n      if (((crc ^ value) & 65536) != 0)\n        crc ^= CRC16_POLYNOMIAL;\n    }\n    return crc;\n  }\n  this.CRC_writeheader = function(gfc, header) {\n    var crc = 65535;\n    crc = CRC_update(header[2] & 255, crc);\n    crc = CRC_update(header[3] & 255, crc);\n    for (var i = 6; i < gfc.sideinfo_len; i++) {\n      crc = CRC_update(header[i] & 255, crc);\n    }\n    header[4] = byte(crc >> 8);\n    header[5] = byte(crc & 255);\n  };\n  function encodeSideInfo2(gfp, bitsPerFrame) {\n    var gfc = gfp.internal_flags;\n    var l3_side;\n    var gr, ch;\n    l3_side = gfc.l3_side;\n    gfc.header[gfc.h_ptr].ptr = 0;\n    Arrays$2.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n    if (gfp.out_samplerate < 16e3)\n      writeheader(gfc, 4094, 12);\n    else\n      writeheader(gfc, 4095, 12);\n    writeheader(gfc, gfp.version, 1);\n    writeheader(gfc, 4 - 3, 2);\n    writeheader(gfc, !gfp.error_protection ? 1 : 0, 1);\n    writeheader(gfc, gfc.bitrate_index, 4);\n    writeheader(gfc, gfc.samplerate_index, 2);\n    writeheader(gfc, gfc.padding, 1);\n    writeheader(gfc, gfp.extension, 1);\n    writeheader(gfc, gfp.mode.ordinal(), 2);\n    writeheader(gfc, gfc.mode_ext, 2);\n    writeheader(gfc, gfp.copyright, 1);\n    writeheader(gfc, gfp.original, 1);\n    writeheader(gfc, gfp.emphasis, 2);\n    if (gfp.error_protection) {\n      writeheader(gfc, 0, 16);\n    }\n    if (gfp.version == 1) {\n      assert$5(l3_side.main_data_begin >= 0);\n      writeheader(gfc, l3_side.main_data_begin, 9);\n      if (gfc.channels_out == 2)\n        writeheader(gfc, l3_side.private_bits, 3);\n      else\n        writeheader(gfc, l3_side.private_bits, 5);\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        var band;\n        for (band = 0; band < 4; band++) {\n          writeheader(gfc, l3_side.scfsi[ch][band], 1);\n        }\n      }\n      for (gr = 0; gr < 2; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          var gi = l3_side.tt[gr][ch];\n          writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n          writeheader(gfc, gi.big_values / 2, 9);\n          writeheader(gfc, gi.global_gain, 8);\n          writeheader(gfc, gi.scalefac_compress, 4);\n          if (gi.block_type != Encoder.NORM_TYPE) {\n            writeheader(gfc, 1, 1);\n            writeheader(gfc, gi.block_type, 2);\n            writeheader(gfc, gi.mixed_block_flag, 1);\n            if (gi.table_select[0] == 14)\n              gi.table_select[0] = 16;\n            writeheader(gfc, gi.table_select[0], 5);\n            if (gi.table_select[1] == 14)\n              gi.table_select[1] = 16;\n            writeheader(gfc, gi.table_select[1], 5);\n            writeheader(gfc, gi.subblock_gain[0], 3);\n            writeheader(gfc, gi.subblock_gain[1], 3);\n            writeheader(gfc, gi.subblock_gain[2], 3);\n          } else {\n            writeheader(gfc, 0, 1);\n            if (gi.table_select[0] == 14)\n              gi.table_select[0] = 16;\n            writeheader(gfc, gi.table_select[0], 5);\n            if (gi.table_select[1] == 14)\n              gi.table_select[1] = 16;\n            writeheader(gfc, gi.table_select[1], 5);\n            if (gi.table_select[2] == 14)\n              gi.table_select[2] = 16;\n            writeheader(gfc, gi.table_select[2], 5);\n            assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n            assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n            writeheader(gfc, gi.region0_count, 4);\n            writeheader(gfc, gi.region1_count, 3);\n          }\n          writeheader(gfc, gi.preflag, 1);\n          writeheader(gfc, gi.scalefac_scale, 1);\n          writeheader(gfc, gi.count1table_select, 1);\n        }\n      }\n    } else {\n      assert$5(l3_side.main_data_begin >= 0);\n      writeheader(gfc, l3_side.main_data_begin, 8);\n      writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n      gr = 0;\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        var gi = l3_side.tt[gr][ch];\n        writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n        writeheader(gfc, gi.big_values / 2, 9);\n        writeheader(gfc, gi.global_gain, 8);\n        writeheader(gfc, gi.scalefac_compress, 9);\n        if (gi.block_type != Encoder.NORM_TYPE) {\n          writeheader(gfc, 1, 1);\n          writeheader(gfc, gi.block_type, 2);\n          writeheader(gfc, gi.mixed_block_flag, 1);\n          if (gi.table_select[0] == 14)\n            gi.table_select[0] = 16;\n          writeheader(gfc, gi.table_select[0], 5);\n          if (gi.table_select[1] == 14)\n            gi.table_select[1] = 16;\n          writeheader(gfc, gi.table_select[1], 5);\n          writeheader(gfc, gi.subblock_gain[0], 3);\n          writeheader(gfc, gi.subblock_gain[1], 3);\n          writeheader(gfc, gi.subblock_gain[2], 3);\n        } else {\n          writeheader(gfc, 0, 1);\n          if (gi.table_select[0] == 14)\n            gi.table_select[0] = 16;\n          writeheader(gfc, gi.table_select[0], 5);\n          if (gi.table_select[1] == 14)\n            gi.table_select[1] = 16;\n          writeheader(gfc, gi.table_select[1], 5);\n          if (gi.table_select[2] == 14)\n            gi.table_select[2] = 16;\n          writeheader(gfc, gi.table_select[2], 5);\n          assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n          assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n          writeheader(gfc, gi.region0_count, 4);\n          writeheader(gfc, gi.region1_count, 3);\n        }\n        writeheader(gfc, gi.scalefac_scale, 1);\n        writeheader(gfc, gi.count1table_select, 1);\n      }\n    }\n    if (gfp.error_protection) {\n      CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n    }\n    {\n      var old = gfc.h_ptr;\n      assert$5(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n      gfc.h_ptr = old + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n      gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing + bitsPerFrame;\n      if (gfc.h_ptr == gfc.w_ptr) {\n        System$3.err.println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n      }\n    }\n  }\n  function huffman_coder_count1(gfc, gi) {\n    var h2 = Tables$1.ht[gi.count1table_select + 32];\n    var i;\n    var bits = 0;\n    var ix = gi.big_values;\n    var xr = gi.big_values;\n    assert$5(gi.count1table_select < 2);\n    for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n      var huffbits = 0;\n      var p2 = 0;\n      var v;\n      v = gi.l3_enc[ix + 0];\n      if (v != 0) {\n        p2 += 8;\n        if (gi.xr[xr + 0] < 0)\n          huffbits++;\n      }\n      v = gi.l3_enc[ix + 1];\n      if (v != 0) {\n        p2 += 4;\n        huffbits *= 2;\n        if (gi.xr[xr + 1] < 0)\n          huffbits++;\n      }\n      v = gi.l3_enc[ix + 2];\n      if (v != 0) {\n        p2 += 2;\n        huffbits *= 2;\n        if (gi.xr[xr + 2] < 0)\n          huffbits++;\n      }\n      v = gi.l3_enc[ix + 3];\n      if (v != 0) {\n        p2++;\n        huffbits *= 2;\n        if (gi.xr[xr + 3] < 0)\n          huffbits++;\n      }\n      ix += 4;\n      xr += 4;\n      putbits2(gfc, huffbits + h2.table[p2], h2.hlen[p2]);\n      bits += h2.hlen[p2];\n    }\n    return bits;\n  }\n  function Huffmancode(gfc, tableindex, start, end, gi) {\n    var h2 = Tables$1.ht[tableindex];\n    var bits = 0;\n    if (tableindex == 0)\n      return bits;\n    for (var i = start; i < end; i += 2) {\n      var cbits = 0;\n      var xbits = 0;\n      var linbits = h2.xlen;\n      var xlen = h2.xlen;\n      var ext = 0;\n      var x1 = gi.l3_enc[i];\n      var x2 = gi.l3_enc[i + 1];\n      if (x1 != 0) {\n        if (gi.xr[i] < 0)\n          ext++;\n        cbits--;\n      }\n      if (tableindex > 15) {\n        if (x1 > 14) {\n          var linbits_x1 = x1 - 15;\n          assert$5(linbits_x1 <= h2.linmax);\n          ext |= linbits_x1 << 1;\n          xbits = linbits;\n          x1 = 15;\n        }\n        if (x2 > 14) {\n          var linbits_x2 = x2 - 15;\n          assert$5(linbits_x2 <= h2.linmax);\n          ext <<= linbits;\n          ext |= linbits_x2;\n          xbits += linbits;\n          x2 = 15;\n        }\n        xlen = 16;\n      }\n      if (x2 != 0) {\n        ext <<= 1;\n        if (gi.xr[i + 1] < 0)\n          ext++;\n        cbits--;\n      }\n      x1 = x1 * xlen + x2;\n      xbits -= cbits;\n      cbits += h2.hlen[x1];\n      putbits2(gfc, h2.table[x1], cbits);\n      putbits2(gfc, ext, xbits);\n      bits += cbits + xbits;\n    }\n    return bits;\n  }\n  function ShortHuffmancodebits(gfc, gi) {\n    var region1Start = 3 * gfc.scalefac_band.s[3];\n    if (region1Start > gi.big_values)\n      region1Start = gi.big_values;\n    var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n    bits += Huffmancode(\n      gfc,\n      gi.table_select[1],\n      region1Start,\n      gi.big_values,\n      gi\n    );\n    return bits;\n  }\n  function LongHuffmancodebits(gfc, gi) {\n    var bigvalues, bits;\n    var region1Start, region2Start;\n    bigvalues = gi.big_values;\n    var i = gi.region0_count + 1;\n    assert$5(i < gfc.scalefac_band.l.length);\n    region1Start = gfc.scalefac_band.l[i];\n    i += gi.region1_count + 1;\n    assert$5(i < gfc.scalefac_band.l.length);\n    region2Start = gfc.scalefac_band.l[i];\n    if (region1Start > bigvalues)\n      region1Start = bigvalues;\n    if (region2Start > bigvalues)\n      region2Start = bigvalues;\n    bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n    bits += Huffmancode(gfc, gi.table_select[1], region1Start, region2Start, gi);\n    bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues, gi);\n    return bits;\n  }\n  function writeMainData(gfp) {\n    var gr;\n    var ch;\n    var sfb;\n    var data_bits;\n    var tot_bits = 0;\n    var gfc = gfp.internal_flags;\n    var l3_side = gfc.l3_side;\n    if (gfp.version == 1) {\n      for (gr = 0; gr < 2; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          var gi = l3_side.tt[gr][ch];\n          var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n          var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n          data_bits = 0;\n          for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n            if (gi.scalefac[sfb] == -1)\n              continue;\n            putbits2(gfc, gi.scalefac[sfb], slen1);\n            data_bits += slen1;\n          }\n          for (; sfb < gi.sfbmax; sfb++) {\n            if (gi.scalefac[sfb] == -1)\n              continue;\n            putbits2(gfc, gi.scalefac[sfb], slen2);\n            data_bits += slen2;\n          }\n          assert$5(data_bits == gi.part2_length);\n          if (gi.block_type == Encoder.SHORT_TYPE) {\n            data_bits += ShortHuffmancodebits(gfc, gi);\n          } else {\n            data_bits += LongHuffmancodebits(gfc, gi);\n          }\n          data_bits += huffman_coder_count1(gfc, gi);\n          assert$5(data_bits == gi.part2_3_length + gi.part2_length);\n          tot_bits += data_bits;\n        }\n      }\n    } else {\n      gr = 0;\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        var gi = l3_side.tt[gr][ch];\n        var i;\n        var sfb_partition;\n        var scale_bits = 0;\n        assert$5(gi.sfb_partition_table != null);\n        data_bits = 0;\n        sfb = 0;\n        sfb_partition = 0;\n        if (gi.block_type == Encoder.SHORT_TYPE) {\n          for (; sfb_partition < 4; sfb_partition++) {\n            var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n            var slen = gi.slen[sfb_partition];\n            for (i = 0; i < sfbs; i++, sfb++) {\n              putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n              putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n              putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n              scale_bits += 3 * slen;\n            }\n          }\n          data_bits += ShortHuffmancodebits(gfc, gi);\n        } else {\n          for (; sfb_partition < 4; sfb_partition++) {\n            var sfbs = gi.sfb_partition_table[sfb_partition];\n            var slen = gi.slen[sfb_partition];\n            for (i = 0; i < sfbs; i++, sfb++) {\n              putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n              scale_bits += slen;\n            }\n          }\n          data_bits += LongHuffmancodebits(gfc, gi);\n        }\n        data_bits += huffman_coder_count1(gfc, gi);\n        assert$5(data_bits == gi.part2_3_length);\n        assert$5(scale_bits == gi.part2_length);\n        tot_bits += scale_bits + data_bits;\n      }\n    }\n    return tot_bits;\n  }\n  function TotalBytes() {\n    this.total = 0;\n  }\n  function compute_flushbits(gfp, total_bytes_output) {\n    var gfc = gfp.internal_flags;\n    var flushbits, remaining_headers;\n    var bitsPerFrame;\n    var last_ptr, first_ptr;\n    first_ptr = gfc.w_ptr;\n    last_ptr = gfc.h_ptr - 1;\n    if (last_ptr == -1)\n      last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n    flushbits = gfc.header[last_ptr].write_timing - totbit;\n    total_bytes_output.total = flushbits;\n    if (flushbits >= 0) {\n      remaining_headers = 1 + last_ptr - first_ptr;\n      if (last_ptr < first_ptr) {\n        remaining_headers = 1 + last_ptr - first_ptr + LameInternalFlags$1.MAX_HEADER_BUF;\n      }\n      flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n    }\n    bitsPerFrame = self2.getframebits(gfp);\n    flushbits += bitsPerFrame;\n    total_bytes_output.total += bitsPerFrame;\n    if (total_bytes_output.total % 8 != 0) {\n      total_bytes_output.total = 1 + total_bytes_output.total / 8;\n    } else\n      total_bytes_output.total = total_bytes_output.total / 8;\n    total_bytes_output.total += bufByteIdx + 1;\n    if (flushbits < 0) {\n      System$3.err.println(\"strange error flushing buffer ... \\n\");\n    }\n    return flushbits;\n  }\n  this.flush_bitstream = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var l3_side;\n    var flushbits;\n    var last_ptr = gfc.h_ptr - 1;\n    if (last_ptr == -1)\n      last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n    l3_side = gfc.l3_side;\n    if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n      return;\n    drain_into_ancillary(gfp, flushbits);\n    assert$5(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n    gfc.ResvSize = 0;\n    l3_side.main_data_begin = 0;\n    if (gfc.findReplayGain) {\n      var RadioGain = ga.GetTitleGain(gfc.rgdata);\n      assert$5(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n      gfc.RadioGain = Math.floor(RadioGain * 10 + 0.5) | 0;\n    }\n    if (gfc.findPeakSample) {\n      gfc.noclipGainChange = Math.ceil(Math.log10(gfc.PeakSample / 32767) * 20 * 10) | 0;\n      if (gfc.noclipGainChange > 0) {\n        if (EQ(gfp.scale, 1) || EQ(gfp.scale, 0)) {\n          gfc.noclipScale = Math.floor(32767 / gfc.PeakSample * 100) / 100;\n        } else {\n          gfc.noclipScale = -1;\n        }\n      } else {\n        gfc.noclipScale = -1;\n      }\n    }\n  };\n  this.add_dummy_byte = function(gfp, val, n) {\n    var gfc = gfp.internal_flags;\n    var i;\n    while (n-- > 0) {\n      putbits_noheaders(gfc, val, 8);\n      for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n        gfc.header[i].write_timing += 8;\n      }\n    }\n  };\n  this.format_bitstream = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var l3_side;\n    l3_side = gfc.l3_side;\n    var bitsPerFrame = this.getframebits(gfp);\n    drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n    encodeSideInfo2(gfp, bitsPerFrame);\n    var bits = 8 * gfc.sideinfo_len;\n    bits += writeMainData(gfp);\n    drain_into_ancillary(gfp, l3_side.resvDrain_post);\n    bits += l3_side.resvDrain_post;\n    l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n    if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n      System$3.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n    }\n    if (l3_side.main_data_begin * 8 != gfc.ResvSize) {\n      System$3.err.printf(\n        \"bit reservoir error: \\nl3_side.main_data_begin: %d \\nResvoir size:             %d \\nresv drain (post)         %d \\nresv drain (pre)          %d \\nheader and sideinfo:      %d \\ndata bits:                %d \\ntotal bits:               %d (remainder: %d) \\nbitsperframe:             %d \\n\",\n        8 * l3_side.main_data_begin,\n        gfc.ResvSize,\n        l3_side.resvDrain_post,\n        l3_side.resvDrain_pre,\n        8 * gfc.sideinfo_len,\n        bits - l3_side.resvDrain_post - 8 * gfc.sideinfo_len,\n        bits,\n        bits % 8,\n        bitsPerFrame\n      );\n      System$3.err.println(\n        \"This is a fatal error.  It has several possible causes:\"\n      );\n      System$3.err.println(\n        \"90%%  LAME compiled with buggy version of gcc using advanced optimizations\"\n      );\n      System$3.err.println(\" 9%%  Your system is overclocked\");\n      System$3.err.println(\" 1%%  bug in LAME encoding library\");\n      gfc.ResvSize = l3_side.main_data_begin * 8;\n    }\n    if (totbit > 1e9) {\n      var i;\n      for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n        gfc.header[i].write_timing -= totbit;\n      }\n      totbit = 0;\n    }\n    return 0;\n  };\n  this.copy_buffer = function(gfc, buffer, bufferPos, size2, mp3data) {\n    var minimum = bufByteIdx + 1;\n    if (minimum <= 0)\n      return 0;\n    if (size2 != 0 && minimum > size2) {\n      return -1;\n    }\n    System$3.arraycopy(buf, 0, buffer, bufferPos, minimum);\n    bufByteIdx = -1;\n    bufBitIdx = 0;\n    if (mp3data != 0) {\n      var crc = new_int$1(1);\n      crc[0] = gfc.nMusicCRC;\n      vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n      gfc.nMusicCRC = crc[0];\n      if (minimum > 0) {\n        gfc.VBR_seek_table.nBytesWritten += minimum;\n      }\n      if (gfc.decode_on_the_fly) {\n        var pcm_buf = new_float_n([2, 1152]);\n        var mp3_in = minimum;\n        var samples_out = -1;\n        var i;\n        while (samples_out != 0) {\n          samples_out = mpg.hip_decode1_unclipped(\n            gfc.hip,\n            buffer,\n            bufferPos,\n            mp3_in,\n            pcm_buf[0],\n            pcm_buf[1]\n          );\n          mp3_in = 0;\n          if (samples_out == -1) {\n            samples_out = 0;\n          }\n          if (samples_out > 0) {\n            if (gfc.findPeakSample) {\n              for (i = 0; i < samples_out; i++) {\n                if (pcm_buf[0][i] > gfc.PeakSample) {\n                  gfc.PeakSample = pcm_buf[0][i];\n                } else if (-pcm_buf[0][i] > gfc.PeakSample) {\n                  gfc.PeakSample = -pcm_buf[0][i];\n                }\n              }\n              if (gfc.channels_out > 1) {\n                for (i = 0; i < samples_out; i++) {\n                  if (pcm_buf[1][i] > gfc.PeakSample) {\n                    gfc.PeakSample = pcm_buf[1][i];\n                  } else if (-pcm_buf[1][i] > gfc.PeakSample) {\n                    gfc.PeakSample = -pcm_buf[1][i];\n                  }\n                }\n              }\n            }\n            if (gfc.findReplayGain) {\n              if (ga.AnalyzeSamples(\n                gfc.rgdata,\n                pcm_buf[0],\n                0,\n                pcm_buf[1],\n                0,\n                samples_out,\n                gfc.channels_out\n              ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n                return -6;\n              }\n            }\n          }\n        }\n      }\n    }\n    return minimum;\n  };\n  this.init_bit_stream_w = function(gfc) {\n    buf = new_byte$2(Lame$1.LAME_MAXMP3BUFFER);\n    gfc.h_ptr = gfc.w_ptr = 0;\n    gfc.header[gfc.h_ptr].write_timing = 0;\n    bufByteIdx = -1;\n    bufBitIdx = 0;\n    totbit = 0;\n  };\n}\nvar System$2 = common.System;\nvar VbrMode$3 = common.VbrMode;\nvar ShortBlock$1 = common.ShortBlock;\nvar new_float$2 = common.new_float;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert$4 = common.assert;\nfunction Lame$1() {\n  var self2 = this;\n  var LAME_MAXALBUMART = 128 * 1024;\n  Lame$1.V9 = 410;\n  Lame$1.V8 = 420;\n  Lame$1.V7 = 430;\n  Lame$1.V6 = 440;\n  Lame$1.V5 = 450;\n  Lame$1.V4 = 460;\n  Lame$1.V3 = 470;\n  Lame$1.V2 = 480;\n  Lame$1.V1 = 490;\n  Lame$1.V0 = 500;\n  Lame$1.R3MIX = 1e3;\n  Lame$1.STANDARD = 1001;\n  Lame$1.EXTREME = 1002;\n  Lame$1.INSANE = 1003;\n  Lame$1.STANDARD_FAST = 1004;\n  Lame$1.EXTREME_FAST = 1005;\n  Lame$1.MEDIUM = 1006;\n  Lame$1.MEDIUM_FAST = 1007;\n  var LAME_MAXMP3BUFFER = 16384 + LAME_MAXALBUMART;\n  Lame$1.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n  var ga;\n  var bs;\n  var p2;\n  var qupvt;\n  var qu;\n  var psy = new PsyModel();\n  var vbr;\n  var id3;\n  var mpglib;\n  this.enc = new Encoder();\n  this.setModules = function(_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n    ga = _ga;\n    bs = _bs;\n    p2 = _p;\n    qupvt = _qupvt;\n    qu = _qu;\n    vbr = _vbr;\n    id3 = _id3;\n    mpglib = _mpglib;\n    this.enc.setModules(bs, psy, qupvt, vbr);\n  };\n  function PSY() {\n    this.mask_adjust = 0;\n    this.mask_adjust_short = 0;\n    this.bo_l_weight = new_float$2(Encoder.SBMAX_l);\n    this.bo_s_weight = new_float$2(Encoder.SBMAX_s);\n  }\n  function LowPassHighPass() {\n    this.lowerlimit = 0;\n  }\n  function BandPass(bitrate, lPass) {\n    this.lowpass = lPass;\n  }\n  var LAME_ID = 4294479419;\n  function lame_init_old(gfp) {\n    var gfc;\n    gfp.class_id = LAME_ID;\n    gfc = gfp.internal_flags = new LameInternalFlags$1();\n    gfp.mode = MPEGMode.NOT_SET;\n    gfp.original = 1;\n    gfp.in_samplerate = 44100;\n    gfp.num_channels = 2;\n    gfp.num_samples = -1;\n    gfp.bWriteVbrTag = true;\n    gfp.quality = -1;\n    gfp.short_blocks = null;\n    gfc.subblock_gain = -1;\n    gfp.lowpassfreq = 0;\n    gfp.highpassfreq = 0;\n    gfp.lowpasswidth = -1;\n    gfp.highpasswidth = -1;\n    gfp.VBR = VbrMode$3.vbr_off;\n    gfp.VBR_q = 4;\n    gfp.ATHcurve = -1;\n    gfp.VBR_mean_bitrate_kbps = 128;\n    gfp.VBR_min_bitrate_kbps = 0;\n    gfp.VBR_max_bitrate_kbps = 0;\n    gfp.VBR_hard_min = 0;\n    gfc.VBR_min_bitrate = 1;\n    gfc.VBR_max_bitrate = 13;\n    gfp.quant_comp = -1;\n    gfp.quant_comp_short = -1;\n    gfp.msfix = -1;\n    gfc.resample_ratio = 1;\n    gfc.OldValue[0] = 180;\n    gfc.OldValue[1] = 180;\n    gfc.CurrentStep[0] = 4;\n    gfc.CurrentStep[1] = 4;\n    gfc.masking_lower = 1;\n    gfc.nsPsy.attackthre = -1;\n    gfc.nsPsy.attackthre_s = -1;\n    gfp.scale = -1;\n    gfp.athaa_type = -1;\n    gfp.ATHtype = -1;\n    gfp.athaa_loudapprox = -1;\n    gfp.athaa_sensitivity = 0;\n    gfp.useTemporal = null;\n    gfp.interChRatio = -1;\n    gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n    gfp.encoder_padding = 0;\n    gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n    gfp.findReplayGain = false;\n    gfp.decode_on_the_fly = false;\n    gfc.decode_on_the_fly = false;\n    gfc.findReplayGain = false;\n    gfc.findPeakSample = false;\n    gfc.RadioGain = 0;\n    gfc.AudiophileGain = 0;\n    gfc.noclipGainChange = 0;\n    gfc.noclipScale = -1;\n    gfp.preset = 0;\n    gfp.write_id3tag_automatic = true;\n    return 0;\n  }\n  this.lame_init = function() {\n    var gfp = new LameGlobalFlags();\n    lame_init_old(gfp);\n    gfp.lame_allocated_gfp = 1;\n    return gfp;\n  };\n  function filter_coef(x) {\n    if (x > 1)\n      return 0;\n    if (x <= 0)\n      return 1;\n    return Math.cos(Math.PI / 2 * x);\n  }\n  this.nearestBitrateFullIndex = function(bitrate) {\n    var full_bitrate_table = [\n      8,\n      16,\n      24,\n      32,\n      40,\n      48,\n      56,\n      64,\n      80,\n      96,\n      112,\n      128,\n      160,\n      192,\n      224,\n      256,\n      320\n    ];\n    var lower_range = 0;\n    var lower_range_kbps = 0;\n    var upper_range = 0;\n    var upper_range_kbps = 0;\n    upper_range_kbps = full_bitrate_table[16];\n    upper_range = 16;\n    lower_range_kbps = full_bitrate_table[16];\n    lower_range = 16;\n    for (var b = 0; b < 16; b++) {\n      if (Math.max(bitrate, full_bitrate_table[b + 1]) != bitrate) {\n        upper_range_kbps = full_bitrate_table[b + 1];\n        upper_range = b + 1;\n        lower_range_kbps = full_bitrate_table[b];\n        lower_range = b;\n        break;\n      }\n    }\n    if (upper_range_kbps - bitrate > bitrate - lower_range_kbps) {\n      return lower_range;\n    }\n    return upper_range;\n  };\n  function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n    var suggested_samplefreq = 44100;\n    if (input_samplefreq >= 48e3)\n      suggested_samplefreq = 48e3;\n    else if (input_samplefreq >= 44100)\n      suggested_samplefreq = 44100;\n    else if (input_samplefreq >= 32e3)\n      suggested_samplefreq = 32e3;\n    else if (input_samplefreq >= 24e3)\n      suggested_samplefreq = 24e3;\n    else if (input_samplefreq >= 22050)\n      suggested_samplefreq = 22050;\n    else if (input_samplefreq >= 16e3)\n      suggested_samplefreq = 16e3;\n    else if (input_samplefreq >= 12e3)\n      suggested_samplefreq = 12e3;\n    else if (input_samplefreq >= 11025)\n      suggested_samplefreq = 11025;\n    else if (input_samplefreq >= 8e3)\n      suggested_samplefreq = 8e3;\n    if (lowpassfreq == -1)\n      return suggested_samplefreq;\n    if (lowpassfreq <= 15960)\n      suggested_samplefreq = 44100;\n    if (lowpassfreq <= 15250)\n      suggested_samplefreq = 32e3;\n    if (lowpassfreq <= 11220)\n      suggested_samplefreq = 24e3;\n    if (lowpassfreq <= 9970)\n      suggested_samplefreq = 22050;\n    if (lowpassfreq <= 7230)\n      suggested_samplefreq = 16e3;\n    if (lowpassfreq <= 5420)\n      suggested_samplefreq = 12e3;\n    if (lowpassfreq <= 4510)\n      suggested_samplefreq = 11025;\n    if (lowpassfreq <= 3970)\n      suggested_samplefreq = 8e3;\n    if (input_samplefreq < suggested_samplefreq) {\n      if (input_samplefreq > 44100) {\n        return 48e3;\n      }\n      if (input_samplefreq > 32e3) {\n        return 44100;\n      }\n      if (input_samplefreq > 24e3) {\n        return 32e3;\n      }\n      if (input_samplefreq > 22050) {\n        return 24e3;\n      }\n      if (input_samplefreq > 16e3) {\n        return 22050;\n      }\n      if (input_samplefreq > 12e3) {\n        return 16e3;\n      }\n      if (input_samplefreq > 11025) {\n        return 12e3;\n      }\n      if (input_samplefreq > 8e3) {\n        return 11025;\n      }\n      return 8e3;\n    }\n    return suggested_samplefreq;\n  }\n  function SmpFrqIndex(sample_freq, gpf) {\n    switch (sample_freq) {\n      case 44100:\n        gpf.version = 1;\n        return 0;\n      case 48e3:\n        gpf.version = 1;\n        return 1;\n      case 32e3:\n        gpf.version = 1;\n        return 2;\n      case 22050:\n        gpf.version = 0;\n        return 0;\n      case 24e3:\n        gpf.version = 0;\n        return 1;\n      case 16e3:\n        gpf.version = 0;\n        return 2;\n      case 11025:\n        gpf.version = 0;\n        return 0;\n      case 12e3:\n        gpf.version = 0;\n        return 1;\n      case 8e3:\n        gpf.version = 0;\n        return 2;\n      default:\n        gpf.version = 0;\n        return -1;\n    }\n  }\n  function FindNearestBitrate(bRate, version2, samplerate) {\n    if (samplerate < 16e3)\n      version2 = 2;\n    var bitrate = Tables$1.bitrate_table[version2][1];\n    for (var i = 2; i <= 14; i++) {\n      if (Tables$1.bitrate_table[version2][i] > 0) {\n        if (Math.abs(Tables$1.bitrate_table[version2][i] - bRate) < Math.abs(bitrate - bRate)) {\n          bitrate = Tables$1.bitrate_table[version2][i];\n        }\n      }\n    }\n    return bitrate;\n  }\n  function BitrateIndex(bRate, version2, samplerate) {\n    if (samplerate < 16e3)\n      version2 = 2;\n    for (var i = 0; i <= 14; i++) {\n      if (Tables$1.bitrate_table[version2][i] > 0) {\n        if (Tables$1.bitrate_table[version2][i] == bRate) {\n          return i;\n        }\n      }\n    }\n    return -1;\n  }\n  function optimum_bandwidth(lh, bitrate) {\n    var freq_map = [\n      new BandPass(8, 2e3),\n      new BandPass(16, 3700),\n      new BandPass(24, 3900),\n      new BandPass(32, 5500),\n      new BandPass(40, 7e3),\n      new BandPass(48, 7500),\n      new BandPass(56, 1e4),\n      new BandPass(64, 11e3),\n      new BandPass(80, 13500),\n      new BandPass(96, 15100),\n      new BandPass(112, 15600),\n      new BandPass(128, 17e3),\n      new BandPass(160, 17500),\n      new BandPass(192, 18600),\n      new BandPass(224, 19400),\n      new BandPass(256, 19700),\n      new BandPass(320, 20500)\n    ];\n    var table_index = self2.nearestBitrateFullIndex(bitrate);\n    lh.lowerlimit = freq_map[table_index].lowpass;\n  }\n  function lame_init_params_ppflt(gfp) {\n    var gfc = gfp.internal_flags;\n    var lowpass_band = 32;\n    var highpass_band = -1;\n    if (gfc.lowpass1 > 0) {\n      var minband = 999;\n      for (var band = 0; band <= 31; band++) {\n        var freq = band / 31;\n        if (freq >= gfc.lowpass2) {\n          lowpass_band = Math.min(lowpass_band, band);\n        }\n        if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n          minband = Math.min(minband, band);\n        }\n      }\n      if (minband == 999) {\n        gfc.lowpass1 = (lowpass_band - 0.75) / 31;\n      } else {\n        gfc.lowpass1 = (minband - 0.75) / 31;\n      }\n      gfc.lowpass2 = lowpass_band / 31;\n    }\n    if (gfc.highpass2 > 0) {\n      if (gfc.highpass2 < 0.9 * (0.75 / 31)) {\n        gfc.highpass1 = 0;\n        gfc.highpass2 = 0;\n        System$2.err.println(\n          \"Warning: highpass filter disabled.  highpass frequency too small\\n\"\n        );\n      }\n    }\n    if (gfc.highpass2 > 0) {\n      var maxband = -1;\n      for (var band = 0; band <= 31; band++) {\n        var freq = band / 31;\n        if (freq <= gfc.highpass1) {\n          highpass_band = Math.max(highpass_band, band);\n        }\n        if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n          maxband = Math.max(maxband, band);\n        }\n      }\n      gfc.highpass1 = highpass_band / 31;\n      if (maxband == -1) {\n        gfc.highpass2 = (highpass_band + 0.75) / 31;\n      } else {\n        gfc.highpass2 = (maxband + 0.75) / 31;\n      }\n    }\n    for (var band = 0; band < 32; band++) {\n      var fc1, fc2;\n      var freq = band / 31;\n      if (gfc.highpass2 > gfc.highpass1) {\n        fc1 = filter_coef(\n          (gfc.highpass2 - freq) / (gfc.highpass2 - gfc.highpass1 + 1e-20)\n        );\n      } else {\n        fc1 = 1;\n      }\n      if (gfc.lowpass2 > gfc.lowpass1) {\n        fc2 = filter_coef(\n          (freq - gfc.lowpass1) / (gfc.lowpass2 - gfc.lowpass1 + 1e-20)\n        );\n      } else {\n        fc2 = 1;\n      }\n      gfc.amp_filter[band] = fc1 * fc2;\n    }\n  }\n  function lame_init_qval(gfp) {\n    var gfc = gfp.internal_flags;\n    switch (gfp.quality) {\n      default:\n      case 9:\n        gfc.psymodel = 0;\n        gfc.noise_shaping = 0;\n        gfc.noise_shaping_amp = 0;\n        gfc.noise_shaping_stop = 0;\n        gfc.use_best_huffman = 0;\n        gfc.full_outer_loop = 0;\n        break;\n      case 8:\n        gfp.quality = 7;\n      case 7:\n        gfc.psymodel = 1;\n        gfc.noise_shaping = 0;\n        gfc.noise_shaping_amp = 0;\n        gfc.noise_shaping_stop = 0;\n        gfc.use_best_huffman = 0;\n        gfc.full_outer_loop = 0;\n        break;\n      case 6:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        gfc.noise_shaping_amp = 0;\n        gfc.noise_shaping_stop = 0;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 0;\n        gfc.full_outer_loop = 0;\n        break;\n      case 5:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        gfc.noise_shaping_amp = 0;\n        gfc.noise_shaping_stop = 0;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 0;\n        gfc.full_outer_loop = 0;\n        break;\n      case 4:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        gfc.noise_shaping_amp = 0;\n        gfc.noise_shaping_stop = 0;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 1;\n        gfc.full_outer_loop = 0;\n        break;\n      case 3:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        gfc.noise_shaping_amp = 1;\n        gfc.noise_shaping_stop = 1;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 1;\n        gfc.full_outer_loop = 0;\n        break;\n      case 2:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        if (gfc.substep_shaping == 0)\n          gfc.substep_shaping = 2;\n        gfc.noise_shaping_amp = 1;\n        gfc.noise_shaping_stop = 1;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 1;\n        gfc.full_outer_loop = 0;\n        break;\n      case 1:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        if (gfc.substep_shaping == 0)\n          gfc.substep_shaping = 2;\n        gfc.noise_shaping_amp = 2;\n        gfc.noise_shaping_stop = 1;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 1;\n        gfc.full_outer_loop = 0;\n        break;\n      case 0:\n        gfc.psymodel = 1;\n        if (gfc.noise_shaping == 0)\n          gfc.noise_shaping = 1;\n        if (gfc.substep_shaping == 0)\n          gfc.substep_shaping = 2;\n        gfc.noise_shaping_amp = 2;\n        gfc.noise_shaping_stop = 1;\n        if (gfc.subblock_gain == -1)\n          gfc.subblock_gain = 1;\n        gfc.use_best_huffman = 1;\n        gfc.full_outer_loop = 0;\n        break;\n    }\n  }\n  function lame_init_bitstream(gfp) {\n    var gfc = gfp.internal_flags;\n    gfp.frameNum = 0;\n    if (gfp.write_id3tag_automatic) {\n      id3.id3tag_write_v2(gfp);\n    }\n    gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n    gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n    gfc.PeakSample = 0;\n    if (gfp.bWriteVbrTag)\n      vbr.InitVbrTag(gfp);\n  }\n  this.lame_init_params = function(gfp) {\n    var gfc = gfp.internal_flags;\n    gfc.Class_ID = 0;\n    if (gfc.ATH == null)\n      gfc.ATH = new ATH();\n    if (gfc.PSY == null)\n      gfc.PSY = new PSY();\n    if (gfc.rgdata == null)\n      gfc.rgdata = new ReplayGain();\n    gfc.channels_in = gfp.num_channels;\n    if (gfc.channels_in == 1)\n      gfp.mode = MPEGMode.MONO;\n    gfc.channels_out = gfp.mode == MPEGMode.MONO ? 1 : 2;\n    gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n    if (gfp.mode == MPEGMode.MONO)\n      gfp.force_ms = false;\n    if (gfp.VBR == VbrMode$3.vbr_off && gfp.VBR_mean_bitrate_kbps != 128 && gfp.brate == 0) {\n      gfp.brate = gfp.VBR_mean_bitrate_kbps;\n    }\n    if (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_mtrh || gfp.VBR == VbrMode$3.vbr_mt)\n      ;\n    else {\n      gfp.free_format = false;\n    }\n    if (gfp.VBR == VbrMode$3.vbr_off && gfp.brate == 0) {\n      if (BitStream$1.EQ(gfp.compression_ratio, 0))\n        gfp.compression_ratio = 11.025;\n    }\n    if (gfp.VBR == VbrMode$3.vbr_off && gfp.compression_ratio > 0) {\n      if (gfp.out_samplerate == 0) {\n        gfp.out_samplerate = map2MP3Frequency(int(0.97 * gfp.in_samplerate));\n      }\n      gfp.brate = 0 | gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.compression_ratio);\n      gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n      if (!gfp.free_format) {\n        gfp.brate = FindNearestBitrate(\n          gfp.brate,\n          gfp.version,\n          gfp.out_samplerate\n        );\n      }\n    }\n    if (gfp.out_samplerate != 0) {\n      if (gfp.out_samplerate < 16e3) {\n        gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n        gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 64);\n      } else if (gfp.out_samplerate < 32e3) {\n        gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n        gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 160);\n      } else {\n        gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 32);\n        gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n      }\n    }\n    if (gfp.lowpassfreq == 0) {\n      var lowpass = 16e3;\n      switch (gfp.VBR) {\n        case VbrMode$3.vbr_off: {\n          var lh = new LowPassHighPass();\n          optimum_bandwidth(lh, gfp.brate);\n          lowpass = lh.lowerlimit;\n          break;\n        }\n        case VbrMode$3.vbr_abr: {\n          var lh = new LowPassHighPass();\n          optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n          lowpass = lh.lowerlimit;\n          break;\n        }\n        case VbrMode$3.vbr_rh: {\n          var x = [\n            19500,\n            19e3,\n            18600,\n            18e3,\n            17500,\n            16e3,\n            15600,\n            14900,\n            12500,\n            1e4,\n            3950\n          ];\n          if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n            var a = x[gfp.VBR_q];\n            var b = x[gfp.VBR_q + 1];\n            var m = gfp.VBR_q_frac;\n            lowpass = linear_int(a, b, m);\n          } else {\n            lowpass = 19500;\n          }\n          break;\n        }\n        default: {\n          var x = [\n            19500,\n            19e3,\n            18500,\n            18e3,\n            17500,\n            16500,\n            15500,\n            14500,\n            12500,\n            9500,\n            3950\n          ];\n          if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n            var a = x[gfp.VBR_q];\n            var b = x[gfp.VBR_q + 1];\n            var m = gfp.VBR_q_frac;\n            lowpass = linear_int(a, b, m);\n          } else {\n            lowpass = 19500;\n          }\n        }\n      }\n      if (gfp.mode == MPEGMode.MONO && (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_abr)) {\n        lowpass *= 1.5;\n      }\n      gfp.lowpassfreq = lowpass | 0;\n    }\n    if (gfp.out_samplerate == 0) {\n      if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n        gfp.lowpassfreq = gfp.in_samplerate / 2;\n      }\n      gfp.out_samplerate = optimum_samplefreq(\n        gfp.lowpassfreq | 0,\n        gfp.in_samplerate\n      );\n    }\n    gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n    gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n    if (gfp.VBR == VbrMode$3.vbr_off) {\n      gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n    }\n    if (gfp.VBR == VbrMode$3.vbr_abr) {\n      gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n    }\n    if (!gfp.bWriteVbrTag) {\n      gfp.findReplayGain = false;\n      gfp.decode_on_the_fly = false;\n      gfc.findPeakSample = false;\n    }\n    gfc.findReplayGain = gfp.findReplayGain;\n    gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n    if (gfc.decode_on_the_fly)\n      gfc.findPeakSample = true;\n    if (gfc.findReplayGain) {\n      if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n        gfp.internal_flags = null;\n        return -6;\n      }\n    }\n    if (gfc.decode_on_the_fly && !gfp.decode_only) {\n      if (gfc.hip != null) {\n        mpglib.hip_decode_exit(gfc.hip);\n      }\n      gfc.hip = mpglib.hip_decode_init();\n    }\n    gfc.mode_gr = gfp.out_samplerate <= 24e3 ? 1 : 2;\n    gfp.framesize = 576 * gfc.mode_gr;\n    gfp.encoder_delay = Encoder.ENCDELAY;\n    gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n    switch (gfp.VBR) {\n      case VbrMode$3.vbr_mt:\n      case VbrMode$3.vbr_rh:\n      case VbrMode$3.vbr_mtrh:\n        {\n          var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5];\n          gfp.compression_ratio = cmp[gfp.VBR_q];\n        }\n        break;\n      case VbrMode$3.vbr_abr:\n        gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n        break;\n      default:\n        gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n        break;\n    }\n    if (gfp.mode == MPEGMode.NOT_SET) {\n      gfp.mode = MPEGMode.JOINT_STEREO;\n    }\n    if (gfp.highpassfreq > 0) {\n      gfc.highpass1 = 2 * gfp.highpassfreq;\n      if (gfp.highpasswidth >= 0) {\n        gfc.highpass2 = 2 * (gfp.highpassfreq + gfp.highpasswidth);\n      } else {\n        gfc.highpass2 = (1 + 0) * 2 * gfp.highpassfreq;\n      }\n      gfc.highpass1 /= gfp.out_samplerate;\n      gfc.highpass2 /= gfp.out_samplerate;\n    } else {\n      gfc.highpass1 = 0;\n      gfc.highpass2 = 0;\n    }\n    if (gfp.lowpassfreq > 0) {\n      gfc.lowpass2 = 2 * gfp.lowpassfreq;\n      if (gfp.lowpasswidth >= 0) {\n        gfc.lowpass1 = 2 * (gfp.lowpassfreq - gfp.lowpasswidth);\n        if (gfc.lowpass1 < 0)\n          gfc.lowpass1 = 0;\n      } else {\n        gfc.lowpass1 = (1 - 0) * 2 * gfp.lowpassfreq;\n      }\n      gfc.lowpass1 /= gfp.out_samplerate;\n      gfc.lowpass2 /= gfp.out_samplerate;\n    } else {\n      gfc.lowpass1 = 0;\n      gfc.lowpass2 = 0;\n    }\n    lame_init_params_ppflt(gfp);\n    gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n    if (gfc.samplerate_index < 0) {\n      gfp.internal_flags = null;\n      return -1;\n    }\n    if (gfp.VBR == VbrMode$3.vbr_off) {\n      if (gfp.free_format) {\n        gfc.bitrate_index = 0;\n      } else {\n        gfp.brate = FindNearestBitrate(\n          gfp.brate,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        gfc.bitrate_index = BitrateIndex(\n          gfp.brate,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        if (gfc.bitrate_index <= 0) {\n          gfp.internal_flags = null;\n          return -1;\n        }\n      }\n    } else {\n      gfc.bitrate_index = 1;\n    }\n    if (gfp.analysis)\n      gfp.bWriteVbrTag = false;\n    if (gfc.pinfo != null)\n      gfp.bWriteVbrTag = false;\n    bs.init_bit_stream_w(gfc);\n    var j = gfc.samplerate_index + 3 * gfp.version + 6 * (gfp.out_samplerate < 16e3 ? 1 : 0);\n    for (var i = 0; i < Encoder.SBMAX_l + 1; i++) {\n      gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n    }\n    for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n      var size2 = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21]) / Encoder.PSFB21;\n      var start = gfc.scalefac_band.l[21] + i * size2;\n      gfc.scalefac_band.psfb21[i] = start;\n    }\n    gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n    for (var i = 0; i < Encoder.SBMAX_s + 1; i++) {\n      gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n    }\n    for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n      var size2 = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) / Encoder.PSFB12;\n      var start = gfc.scalefac_band.s[12] + i * size2;\n      gfc.scalefac_band.psfb12[i] = start;\n    }\n    gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n    if (gfp.version == 1) {\n      gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 17 : 4 + 32;\n    } else\n      gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 9 : 4 + 17;\n    if (gfp.error_protection)\n      gfc.sideinfo_len += 2;\n    lame_init_bitstream(gfp);\n    gfc.Class_ID = LAME_ID;\n    {\n      var k;\n      for (k = 0; k < 19; k++) {\n        gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n      }\n      if (gfp.ATHtype == -1)\n        gfp.ATHtype = 4;\n    }\n    assert$4(gfp.VBR_q <= 9);\n    assert$4(gfp.VBR_q >= 0);\n    switch (gfp.VBR) {\n      case VbrMode$3.vbr_mt:\n        gfp.VBR = VbrMode$3.vbr_mtrh;\n      case VbrMode$3.vbr_mtrh: {\n        if (gfp.useTemporal == null) {\n          gfp.useTemporal = false;\n        }\n        p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n        if (gfp.quality < 0)\n          gfp.quality = LAME_DEFAULT_QUALITY;\n        if (gfp.quality < 5)\n          gfp.quality = 0;\n        if (gfp.quality > 5)\n          gfp.quality = 5;\n        gfc.PSY.mask_adjust = gfp.maskingadjust;\n        gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n        if (gfp.experimentalY)\n          gfc.sfb21_extra = false;\n        else\n          gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n        gfc.iteration_loop = new VBRNewIterationLoop(qu);\n        break;\n      }\n      case VbrMode$3.vbr_rh: {\n        p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n        gfc.PSY.mask_adjust = gfp.maskingadjust;\n        gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n        if (gfp.experimentalY)\n          gfc.sfb21_extra = false;\n        else\n          gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n        if (gfp.quality > 6)\n          gfp.quality = 6;\n        if (gfp.quality < 0)\n          gfp.quality = LAME_DEFAULT_QUALITY;\n        gfc.iteration_loop = new VBROldIterationLoop(qu);\n        break;\n      }\n      default: {\n        var vbrmode;\n        gfc.sfb21_extra = false;\n        if (gfp.quality < 0)\n          gfp.quality = LAME_DEFAULT_QUALITY;\n        vbrmode = gfp.VBR;\n        if (vbrmode == VbrMode$3.vbr_off)\n          gfp.VBR_mean_bitrate_kbps = gfp.brate;\n        p2.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n        gfp.VBR = vbrmode;\n        gfc.PSY.mask_adjust = gfp.maskingadjust;\n        gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n        if (vbrmode == VbrMode$3.vbr_off) {\n          gfc.iteration_loop = new CBRNewIterationLoop(qu);\n        } else {\n          gfc.iteration_loop = new ABRIterationLoop(qu);\n        }\n        break;\n      }\n    }\n    assert$4(gfp.scale >= 0);\n    if (gfp.VBR != VbrMode$3.vbr_off) {\n      gfc.VBR_min_bitrate = 1;\n      gfc.VBR_max_bitrate = 14;\n      if (gfp.out_samplerate < 16e3)\n        gfc.VBR_max_bitrate = 8;\n      if (gfp.VBR_min_bitrate_kbps != 0) {\n        gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n          gfp.VBR_min_bitrate_kbps,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        gfc.VBR_min_bitrate = BitrateIndex(\n          gfp.VBR_min_bitrate_kbps,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        if (gfc.VBR_min_bitrate < 0)\n          return -1;\n      }\n      if (gfp.VBR_max_bitrate_kbps != 0) {\n        gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n          gfp.VBR_max_bitrate_kbps,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        gfc.VBR_max_bitrate = BitrateIndex(\n          gfp.VBR_max_bitrate_kbps,\n          gfp.version,\n          gfp.out_samplerate\n        );\n        if (gfc.VBR_max_bitrate < 0)\n          return -1;\n      }\n      gfp.VBR_min_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n      gfp.VBR_max_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n      gfp.VBR_mean_bitrate_kbps = Math.min(\n        Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n        gfp.VBR_mean_bitrate_kbps\n      );\n      gfp.VBR_mean_bitrate_kbps = Math.max(\n        Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n        gfp.VBR_mean_bitrate_kbps\n      );\n    }\n    if (gfp.tune) {\n      gfc.PSY.mask_adjust += gfp.tune_value_a;\n      gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n    }\n    lame_init_qval(gfp);\n    assert$4(gfp.scale >= 0);\n    if (gfp.athaa_type < 0)\n      gfc.ATH.useAdjust = 3;\n    else\n      gfc.ATH.useAdjust = gfp.athaa_type;\n    gfc.ATH.aaSensitivityP = Math.pow(10, gfp.athaa_sensitivity / -10);\n    if (gfp.short_blocks == null) {\n      gfp.short_blocks = ShortBlock$1.short_block_allowed;\n    }\n    if (gfp.short_blocks == ShortBlock$1.short_block_allowed && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n      gfp.short_blocks = ShortBlock$1.short_block_coupled;\n    }\n    if (gfp.quant_comp < 0)\n      gfp.quant_comp = 1;\n    if (gfp.quant_comp_short < 0)\n      gfp.quant_comp_short = 0;\n    if (gfp.msfix < 0)\n      gfp.msfix = 0;\n    gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n    if (gfp.internal_flags.nsPsy.attackthre < 0) {\n      gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n    }\n    if (gfp.internal_flags.nsPsy.attackthre_s < 0) {\n      gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n    }\n    assert$4(gfp.scale >= 0);\n    if (gfp.scale < 0)\n      gfp.scale = 1;\n    if (gfp.ATHtype < 0)\n      gfp.ATHtype = 4;\n    if (gfp.ATHcurve < 0)\n      gfp.ATHcurve = 4;\n    if (gfp.athaa_loudapprox < 0)\n      gfp.athaa_loudapprox = 2;\n    if (gfp.interChRatio < 0)\n      gfp.interChRatio = 0;\n    if (gfp.useTemporal == null)\n      gfp.useTemporal = true;\n    gfc.slot_lag = gfc.frac_SpF = 0;\n    if (gfp.VBR == VbrMode$3.vbr_off) {\n      gfc.slot_lag = gfc.frac_SpF = (gfp.version + 1) * 72e3 * gfp.brate % gfp.out_samplerate | 0;\n    }\n    qupvt.iteration_init(gfp);\n    psy.psymodel_init(gfp);\n    assert$4(gfp.scale >= 0);\n    return 0;\n  };\n  function update_inbuffer_size(gfc, nsamples) {\n    if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n      gfc.in_buffer_0 = new_float$2(nsamples);\n      gfc.in_buffer_1 = new_float$2(nsamples);\n      gfc.in_buffer_nsamples = nsamples;\n    }\n  }\n  this.lame_encode_flush = function(gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n    var gfc = gfp.internal_flags;\n    var buffer = new_short_n([2, 1152]);\n    var imp3 = 0;\n    var mp3count;\n    var mp3buffer_size_remaining;\n    var end_padding;\n    var frames_left;\n    var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n    var mf_needed = calcNeeded(gfp);\n    if (gfc.mf_samples_to_encode < 1) {\n      return 0;\n    }\n    mp3count = 0;\n    if (gfp.in_samplerate != gfp.out_samplerate) {\n      samples_to_encode += 16 * gfp.out_samplerate / gfp.in_samplerate;\n    }\n    end_padding = gfp.framesize - samples_to_encode % gfp.framesize;\n    if (end_padding < 576)\n      end_padding += gfp.framesize;\n    gfp.encoder_padding = end_padding;\n    frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n    while (frames_left > 0 && imp3 >= 0) {\n      var bunch = mf_needed - gfc.mf_size;\n      var frame_num = gfp.frameNum;\n      bunch *= gfp.in_samplerate;\n      bunch /= gfp.out_samplerate;\n      if (bunch > 1152)\n        bunch = 1152;\n      if (bunch < 1)\n        bunch = 1;\n      mp3buffer_size_remaining = mp3buffer_size - mp3count;\n      if (mp3buffer_size == 0)\n        mp3buffer_size_remaining = 0;\n      imp3 = this.lame_encode_buffer(\n        gfp,\n        buffer[0],\n        buffer[1],\n        bunch,\n        mp3buffer,\n        mp3bufferPos,\n        mp3buffer_size_remaining\n      );\n      mp3bufferPos += imp3;\n      mp3count += imp3;\n      frames_left -= frame_num != gfp.frameNum ? 1 : 0;\n    }\n    gfc.mf_samples_to_encode = 0;\n    if (imp3 < 0) {\n      return imp3;\n    }\n    mp3buffer_size_remaining = mp3buffer_size - mp3count;\n    if (mp3buffer_size == 0)\n      mp3buffer_size_remaining = 0;\n    bs.flush_bitstream(gfp);\n    imp3 = bs.copy_buffer(\n      gfc,\n      mp3buffer,\n      mp3bufferPos,\n      mp3buffer_size_remaining,\n      1\n    );\n    if (imp3 < 0) {\n      return imp3;\n    }\n    mp3bufferPos += imp3;\n    mp3count += imp3;\n    mp3buffer_size_remaining = mp3buffer_size - mp3count;\n    if (mp3buffer_size == 0)\n      mp3buffer_size_remaining = 0;\n    if (gfp.write_id3tag_automatic) {\n      id3.id3tag_write_v1(gfp);\n      imp3 = bs.copy_buffer(\n        gfc,\n        mp3buffer,\n        mp3bufferPos,\n        mp3buffer_size_remaining,\n        0\n      );\n      if (imp3 < 0) {\n        return imp3;\n      }\n      mp3count += imp3;\n    }\n    return mp3count;\n  };\n  this.lame_encode_buffer = function(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n    var gfc = gfp.internal_flags;\n    var in_buffer = [null, null];\n    if (gfc.Class_ID != LAME_ID)\n      return -3;\n    if (nsamples == 0)\n      return 0;\n    update_inbuffer_size(gfc, nsamples);\n    in_buffer[0] = gfc.in_buffer_0;\n    in_buffer[1] = gfc.in_buffer_1;\n    for (var i = 0; i < nsamples; i++) {\n      in_buffer[0][i] = buffer_l[i];\n      if (gfc.channels_in > 1)\n        in_buffer[1][i] = buffer_r[i];\n    }\n    return lame_encode_buffer_sample(\n      gfp,\n      in_buffer[0],\n      in_buffer[1],\n      nsamples,\n      mp3buf,\n      mp3bufPos,\n      mp3buf_size\n    );\n  };\n  function calcNeeded(gfp) {\n    var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n    mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n    return mf_needed;\n  }\n  function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n    var gfc = gfp.internal_flags;\n    var mp3size = 0;\n    var ret;\n    var i;\n    var ch;\n    var mf_needed;\n    var mp3out;\n    var mfbuf = [null, null];\n    var in_buffer = [null, null];\n    if (gfc.Class_ID != LAME_ID)\n      return -3;\n    if (nsamples == 0)\n      return 0;\n    mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n    if (mp3out < 0)\n      return mp3out;\n    mp3bufPos += mp3out;\n    mp3size += mp3out;\n    in_buffer[0] = buffer_l;\n    in_buffer[1] = buffer_r;\n    if (BitStream$1.NEQ(gfp.scale, 0) && BitStream$1.NEQ(gfp.scale, 1)) {\n      for (i = 0; i < nsamples; ++i) {\n        in_buffer[0][i] *= gfp.scale;\n        if (gfc.channels_out == 2)\n          in_buffer[1][i] *= gfp.scale;\n      }\n    }\n    if (BitStream$1.NEQ(gfp.scale_left, 0) && BitStream$1.NEQ(gfp.scale_left, 1)) {\n      for (i = 0; i < nsamples; ++i) {\n        in_buffer[0][i] *= gfp.scale_left;\n      }\n    }\n    if (BitStream$1.NEQ(gfp.scale_right, 0) && BitStream$1.NEQ(gfp.scale_right, 1)) {\n      for (i = 0; i < nsamples; ++i) {\n        in_buffer[1][i] *= gfp.scale_right;\n      }\n    }\n    if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n      for (i = 0; i < nsamples; ++i) {\n        in_buffer[0][i] = 0.5 * (in_buffer[0][i] + in_buffer[1][i]);\n        in_buffer[1][i] = 0;\n      }\n    }\n    mf_needed = calcNeeded(gfp);\n    mfbuf[0] = gfc.mfbuf[0];\n    mfbuf[1] = gfc.mfbuf[1];\n    var in_bufferPos = 0;\n    while (nsamples > 0) {\n      var in_buffer_ptr = [null, null];\n      var n_in = 0;\n      var n_out = 0;\n      in_buffer_ptr[0] = in_buffer[0];\n      in_buffer_ptr[1] = in_buffer[1];\n      var inOut = new InOut();\n      fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples, inOut);\n      n_in = inOut.n_in;\n      n_out = inOut.n_out;\n      if (gfc.findReplayGain && !gfc.decode_on_the_fly) {\n        if (ga.AnalyzeSamples(\n          gfc.rgdata,\n          mfbuf[0],\n          gfc.mf_size,\n          mfbuf[1],\n          gfc.mf_size,\n          n_out,\n          gfc.channels_out\n        ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n          return -6;\n        }\n      }\n      nsamples -= n_in;\n      in_bufferPos += n_in;\n      if (gfc.channels_out == 2)\n        ;\n      gfc.mf_size += n_out;\n      assert$4(gfc.mf_size <= LameInternalFlags$1.MFSIZE);\n      if (gfc.mf_samples_to_encode < 1) {\n        gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n      }\n      gfc.mf_samples_to_encode += n_out;\n      if (gfc.mf_size >= mf_needed) {\n        var buf_size = mp3buf_size - mp3size;\n        if (mp3buf_size == 0)\n          buf_size = 0;\n        ret = lame_encode_frame(\n          gfp,\n          mfbuf[0],\n          mfbuf[1],\n          mp3buf,\n          mp3bufPos,\n          buf_size\n        );\n        if (ret < 0)\n          return ret;\n        mp3bufPos += ret;\n        mp3size += ret;\n        gfc.mf_size -= gfp.framesize;\n        gfc.mf_samples_to_encode -= gfp.framesize;\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          for (i = 0; i < gfc.mf_size; i++) {\n            mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n          }\n        }\n      }\n    }\n    return mp3size;\n  }\n  function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n    var ret = self2.enc.lame_encode_mp3_frame(\n      gfp,\n      inbuf_l,\n      inbuf_r,\n      mp3buf,\n      mp3bufPos,\n      mp3buf_size\n    );\n    gfp.frameNum++;\n    return ret;\n  }\n  function InOut() {\n    this.n_in = 0;\n    this.n_out = 0;\n  }\n  function NumUsed() {\n    this.num_used = 0;\n  }\n  function gcd(i, j) {\n    return j != 0 ? gcd(j, i % j) : i;\n  }\n  function blackman(x, fcn, l) {\n    var wcn = Math.PI * fcn;\n    x /= l;\n    if (x < 0)\n      x = 0;\n    if (x > 1)\n      x = 1;\n    var x2 = x - 0.5;\n    var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n    if (Math.abs(x2) < 1e-9)\n      return wcn / Math.PI;\n    else\n      return bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2);\n  }\n  function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n    var gfc = gfp.internal_flags;\n    var i;\n    var j = 0;\n    var k;\n    var bpc = gfp.out_samplerate / gcd(gfp.out_samplerate, gfp.in_samplerate);\n    if (bpc > LameInternalFlags$1.BPC)\n      bpc = LameInternalFlags$1.BPC;\n    var intratio = Math.abs(gfc.resample_ratio - Math.floor(0.5 + gfc.resample_ratio)) < 1e-4 ? 1 : 0;\n    var fcn = 1 / gfc.resample_ratio;\n    if (fcn > 1)\n      fcn = 1;\n    var filter_l = 31;\n    if (filter_l % 2 == 0)\n      --filter_l;\n    filter_l += intratio;\n    var BLACKSIZE = filter_l + 1;\n    if (gfc.fill_buffer_resample_init == 0) {\n      gfc.inbuf_old[0] = new_float$2(BLACKSIZE);\n      gfc.inbuf_old[1] = new_float$2(BLACKSIZE);\n      for (i = 0; i <= 2 * bpc; ++i)\n        gfc.blackfilt[i] = new_float$2(BLACKSIZE);\n      gfc.itime[0] = 0;\n      gfc.itime[1] = 0;\n      for (j = 0; j <= 2 * bpc; j++) {\n        var sum = 0;\n        var offset = (j - bpc) / (2 * bpc);\n        for (i = 0; i <= filter_l; i++) {\n          sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn, filter_l);\n        }\n        for (i = 0; i <= filter_l; i++)\n          gfc.blackfilt[j][i] /= sum;\n      }\n      gfc.fill_buffer_resample_init = 1;\n    }\n    var inbuf_old = gfc.inbuf_old[ch];\n    for (k = 0; k < desired_len; k++) {\n      var time0;\n      var joff;\n      time0 = k * gfc.resample_ratio;\n      j = 0 | Math.floor(time0 - gfc.itime[ch]);\n      if (filter_l + j - filter_l / 2 >= len)\n        break;\n      var offset = time0 - gfc.itime[ch] - (j + 0.5 * (filter_l % 2));\n      joff = 0 | Math.floor(offset * 2 * bpc + bpc + 0.5);\n      var xvalue = 0;\n      for (i = 0; i <= filter_l; ++i) {\n        var j2 = 0 | i + j - filter_l / 2;\n        var y;\n        y = j2 < 0 ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos + j2];\n        xvalue += y * gfc.blackfilt[joff][i];\n      }\n      outbuf[outbufPos + k] = xvalue;\n    }\n    num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n    gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n    if (num_used.num_used >= BLACKSIZE) {\n      for (i = 0; i < BLACKSIZE; i++) {\n        inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i - BLACKSIZE];\n      }\n    } else {\n      var n_shift = BLACKSIZE - num_used.num_used;\n      for (i = 0; i < n_shift; ++i) {\n        inbuf_old[i] = inbuf_old[i + num_used.num_used];\n      }\n      for (j = 0; i < BLACKSIZE; ++i, ++j) {\n        inbuf_old[i] = inbuf[in_bufferPos + j];\n      }\n      assert$4(j == num_used.num_used);\n    }\n    return k;\n  }\n  function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n    var gfc = gfp.internal_flags;\n    if (gfc.resample_ratio < 0.9999 || gfc.resample_ratio > 1.0001) {\n      for (var ch = 0; ch < gfc.channels_out; ch++) {\n        var numUsed = new NumUsed();\n        io.n_out = fill_buffer_resample(\n          gfp,\n          mfbuf[ch],\n          gfc.mf_size,\n          gfp.framesize,\n          in_buffer[ch],\n          in_bufferPos,\n          nsamples,\n          numUsed,\n          ch\n        );\n        io.n_in = numUsed.num_used;\n      }\n    } else {\n      io.n_out = Math.min(gfp.framesize, nsamples);\n      io.n_in = io.n_out;\n      for (var i = 0; i < io.n_out; ++i) {\n        mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n        if (gfc.channels_out == 2) {\n          mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n        }\n      }\n    }\n  }\n}\nvar VbrMode$2 = common.VbrMode;\nfunction Presets() {\n  function VBRPresets(qual, comp, compS, y, shThreshold, shThresholdS, adj, adjShort, lower, curve, sens, inter, joint, mod, fix) {\n    this.vbr_q = qual;\n    this.quant_comp = comp;\n    this.quant_comp_s = compS;\n    this.expY = y;\n    this.st_lrm = shThreshold;\n    this.st_s = shThresholdS;\n    this.masking_adj = adj;\n    this.masking_adj_short = adjShort;\n    this.ath_lower = lower;\n    this.ath_curve = curve;\n    this.ath_sensitivity = sens;\n    this.interch = inter;\n    this.safejoint = joint;\n    this.sfb21mod = mod;\n    this.msfix = fix;\n  }\n  function ABRPresets(kbps, comp, compS, joint, fix, shThreshold, shThresholdS, bass, sc, mask, lower, curve, interCh, sfScale) {\n    this.quant_comp = comp;\n    this.quant_comp_s = compS;\n    this.safejoint = joint;\n    this.nsmsfix = fix;\n    this.st_lrm = shThreshold;\n    this.st_s = shThresholdS;\n    this.nsbass = bass;\n    this.scale = sc;\n    this.masking_adj = mask;\n    this.ath_lower = lower;\n    this.ath_curve = curve;\n    this.interch = interCh;\n    this.sfscale = sfScale;\n  }\n  var lame;\n  this.setModules = function(_lame) {\n    lame = _lame;\n  };\n  var vbr_old_switch_map = [\n    new VBRPresets(\n      0,\n      9,\n      9,\n      0,\n      5.2,\n      125,\n      -4.2,\n      -6.3,\n      4.8,\n      1,\n      0,\n      0,\n      2,\n      21,\n      0.97\n    ),\n    new VBRPresets(\n      1,\n      9,\n      9,\n      0,\n      5.3,\n      125,\n      -3.6,\n      -5.6,\n      4.5,\n      1.5,\n      0,\n      0,\n      2,\n      21,\n      1.35\n    ),\n    new VBRPresets(\n      2,\n      9,\n      9,\n      0,\n      5.6,\n      125,\n      -2.2,\n      -3.5,\n      2.8,\n      2,\n      0,\n      0,\n      2,\n      21,\n      1.49\n    ),\n    new VBRPresets(\n      3,\n      9,\n      9,\n      1,\n      5.8,\n      130,\n      -1.8,\n      -2.8,\n      2.6,\n      3,\n      -4,\n      0,\n      2,\n      20,\n      1.64\n    ),\n    new VBRPresets(\n      4,\n      9,\n      9,\n      1,\n      6,\n      135,\n      -0.7,\n      -1.1,\n      1.1,\n      3.5,\n      -8,\n      0,\n      2,\n      0,\n      1.79\n    ),\n    new VBRPresets(\n      5,\n      9,\n      9,\n      1,\n      6.4,\n      140,\n      0.5,\n      0.4,\n      -7.5,\n      4,\n      -12,\n      2e-4,\n      0,\n      0,\n      1.95\n    ),\n    new VBRPresets(\n      6,\n      9,\n      9,\n      1,\n      6.6,\n      145,\n      0.67,\n      0.65,\n      -14.7,\n      6.5,\n      -19,\n      4e-4,\n      0,\n      0,\n      2.3\n    ),\n    new VBRPresets(\n      7,\n      9,\n      9,\n      1,\n      6.6,\n      145,\n      0.8,\n      0.75,\n      -19.7,\n      8,\n      -22,\n      6e-4,\n      0,\n      0,\n      2.7\n    ),\n    new VBRPresets(\n      8,\n      9,\n      9,\n      1,\n      6.6,\n      145,\n      1.2,\n      1.15,\n      -27.5,\n      10,\n      -23,\n      7e-4,\n      0,\n      0,\n      0\n    ),\n    new VBRPresets(\n      9,\n      9,\n      9,\n      1,\n      6.6,\n      145,\n      1.6,\n      1.6,\n      -36,\n      11,\n      -25,\n      8e-4,\n      0,\n      0,\n      0\n    ),\n    new VBRPresets(\n      10,\n      9,\n      9,\n      1,\n      6.6,\n      145,\n      2,\n      2,\n      -36,\n      12,\n      -25,\n      8e-4,\n      0,\n      0,\n      0\n    )\n  ];\n  var vbr_psy_switch_map = [\n    new VBRPresets(\n      0,\n      9,\n      9,\n      0,\n      4.2,\n      25,\n      -7,\n      -4,\n      7.5,\n      1,\n      0,\n      0,\n      2,\n      26,\n      0.97\n    ),\n    new VBRPresets(\n      1,\n      9,\n      9,\n      0,\n      4.2,\n      25,\n      -5.6,\n      -3.6,\n      4.5,\n      1.5,\n      0,\n      0,\n      2,\n      21,\n      1.35\n    ),\n    new VBRPresets(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n    new VBRPresets(\n      3,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      -3.4,\n      -1.25,\n      1.1,\n      3,\n      -4,\n      0,\n      2,\n      15,\n      1.64\n    ),\n    new VBRPresets(4, 9, 9, 1, 4.2, 25, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n    new VBRPresets(\n      5,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      -1,\n      1.65,\n      -7.7,\n      4,\n      -12,\n      2e-4,\n      0,\n      0,\n      1.95\n    ),\n    new VBRPresets(\n      6,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      -0,\n      2.47,\n      -7.7,\n      6.5,\n      -19,\n      4e-4,\n      0,\n      0,\n      2\n    ),\n    new VBRPresets(\n      7,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      0.5,\n      2,\n      -14.5,\n      8,\n      -22,\n      6e-4,\n      0,\n      0,\n      2\n    ),\n    new VBRPresets(\n      8,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      1,\n      2.4,\n      -22,\n      10,\n      -23,\n      7e-4,\n      0,\n      0,\n      2\n    ),\n    new VBRPresets(\n      9,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      1.5,\n      2.95,\n      -30,\n      11,\n      -25,\n      8e-4,\n      0,\n      0,\n      2\n    ),\n    new VBRPresets(\n      10,\n      9,\n      9,\n      1,\n      4.2,\n      25,\n      2,\n      2.95,\n      -36,\n      12,\n      -30,\n      8e-4,\n      0,\n      0,\n      2\n    )\n  ];\n  function apply_vbr_preset(gfp, a, enforce) {\n    var vbr_preset = gfp.VBR == VbrMode$2.vbr_rh ? vbr_old_switch_map : vbr_psy_switch_map;\n    var x = gfp.VBR_q_frac;\n    var p2 = vbr_preset[a];\n    var q = vbr_preset[a + 1];\n    var set2 = p2;\n    p2.st_lrm = p2.st_lrm + x * (q.st_lrm - p2.st_lrm);\n    p2.st_s = p2.st_s + x * (q.st_s - p2.st_s);\n    p2.masking_adj = p2.masking_adj + x * (q.masking_adj - p2.masking_adj);\n    p2.masking_adj_short = p2.masking_adj_short + x * (q.masking_adj_short - p2.masking_adj_short);\n    p2.ath_lower = p2.ath_lower + x * (q.ath_lower - p2.ath_lower);\n    p2.ath_curve = p2.ath_curve + x * (q.ath_curve - p2.ath_curve);\n    p2.ath_sensitivity = p2.ath_sensitivity + x * (q.ath_sensitivity - p2.ath_sensitivity);\n    p2.interch = p2.interch + x * (q.interch - p2.interch);\n    p2.msfix = p2.msfix + x * (q.msfix - p2.msfix);\n    lame_set_VBR_q(gfp, set2.vbr_q);\n    if (enforce != 0)\n      gfp.quant_comp = set2.quant_comp;\n    else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n      gfp.quant_comp = set2.quant_comp;\n    }\n    if (enforce != 0)\n      gfp.quant_comp_short = set2.quant_comp_s;\n    else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n      gfp.quant_comp_short = set2.quant_comp_s;\n    }\n    if (set2.expY != 0) {\n      gfp.experimentalY = set2.expY != 0;\n    }\n    if (enforce != 0)\n      gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n    else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n      gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n    }\n    if (enforce != 0)\n      gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n    else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n      gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n    }\n    if (enforce != 0)\n      gfp.maskingadjust = set2.masking_adj;\n    else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n      gfp.maskingadjust = set2.masking_adj;\n    }\n    if (enforce != 0)\n      gfp.maskingadjust_short = set2.masking_adj_short;\n    else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n      gfp.maskingadjust_short = set2.masking_adj_short;\n    }\n    if (enforce != 0)\n      gfp.ATHlower = -set2.ath_lower / 10;\n    else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n      gfp.ATHlower = -set2.ath_lower / 10;\n    }\n    if (enforce != 0)\n      gfp.ATHcurve = set2.ath_curve;\n    else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n      gfp.ATHcurve = set2.ath_curve;\n    if (enforce != 0)\n      gfp.athaa_sensitivity = set2.ath_sensitivity;\n    else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0)) {\n      gfp.athaa_sensitivity = set2.ath_sensitivity;\n    }\n    if (set2.interch > 0) {\n      if (enforce != 0)\n        gfp.interChRatio = set2.interch;\n      else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n        gfp.interChRatio = set2.interch;\n      }\n    }\n    if (set2.safejoint > 0) {\n      gfp.exp_nspsytune = gfp.exp_nspsytune | set2.safejoint;\n    }\n    if (set2.sfb21mod > 0) {\n      gfp.exp_nspsytune = gfp.exp_nspsytune | set2.sfb21mod << 20;\n    }\n    if (enforce != 0)\n      gfp.msfix = set2.msfix;\n    else if (!(Math.abs(gfp.msfix - -1) > 0))\n      gfp.msfix = set2.msfix;\n    if (enforce == 0) {\n      gfp.VBR_q = a;\n      gfp.VBR_q_frac = x;\n    }\n  }\n  var abr_switch_map = [\n    new ABRPresets(\n      8,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -30,\n      11,\n      12e-4,\n      1\n    ),\n    new ABRPresets(\n      16,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -25,\n      11,\n      1e-3,\n      1\n    ),\n    new ABRPresets(\n      24,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -20,\n      11,\n      1e-3,\n      1\n    ),\n    new ABRPresets(\n      32,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -15,\n      11,\n      1e-3,\n      1\n    ),\n    new ABRPresets(\n      40,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -10,\n      11,\n      9e-4,\n      1\n    ),\n    new ABRPresets(\n      48,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -10,\n      11,\n      9e-4,\n      1\n    ),\n    new ABRPresets(\n      56,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -6,\n      11,\n      8e-4,\n      1\n    ),\n    new ABRPresets(\n      64,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      -2,\n      11,\n      8e-4,\n      1\n    ),\n    new ABRPresets(\n      80,\n      9,\n      9,\n      0,\n      0,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      0,\n      8,\n      7e-4,\n      1\n    ),\n    new ABRPresets(\n      96,\n      9,\n      9,\n      0,\n      2.5,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      1,\n      5.5,\n      6e-4,\n      1\n    ),\n    new ABRPresets(\n      112,\n      9,\n      9,\n      0,\n      2.25,\n      6.6,\n      145,\n      0,\n      0.95,\n      0,\n      2,\n      4.5,\n      5e-4,\n      1\n    ),\n    new ABRPresets(\n      128,\n      9,\n      9,\n      0,\n      1.95,\n      6.4,\n      140,\n      0,\n      0.95,\n      0,\n      3,\n      4,\n      2e-4,\n      1\n    ),\n    new ABRPresets(\n      160,\n      9,\n      9,\n      1,\n      1.79,\n      6,\n      135,\n      0,\n      0.95,\n      -2,\n      5,\n      3.5,\n      0,\n      1\n    ),\n    new ABRPresets(\n      192,\n      9,\n      9,\n      1,\n      1.49,\n      5.6,\n      125,\n      0,\n      0.97,\n      -4,\n      7,\n      3,\n      0,\n      0\n    ),\n    new ABRPresets(\n      224,\n      9,\n      9,\n      1,\n      1.25,\n      5.2,\n      125,\n      0,\n      0.98,\n      -6,\n      9,\n      2,\n      0,\n      0\n    ),\n    new ABRPresets(\n      256,\n      9,\n      9,\n      1,\n      0.97,\n      5.2,\n      125,\n      0,\n      1,\n      -8,\n      10,\n      1,\n      0,\n      0\n    ),\n    new ABRPresets(\n      320,\n      9,\n      9,\n      1,\n      0.9,\n      5.2,\n      125,\n      0,\n      1,\n      -10,\n      12,\n      0,\n      0,\n      0\n    )\n  ];\n  function apply_abr_preset(gfp, preset, enforce) {\n    var actual_bitrate = preset;\n    var r = lame.nearestBitrateFullIndex(preset);\n    gfp.VBR = VbrMode$2.vbr_abr;\n    gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n    gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n    gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n    gfp.brate = gfp.VBR_mean_bitrate_kbps;\n    if (gfp.VBR_mean_bitrate_kbps > 320) {\n      gfp.disable_reservoir = true;\n    }\n    if (abr_switch_map[r].safejoint > 0) {\n      gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n    }\n    if (abr_switch_map[r].sfscale > 0) {\n      gfp.internal_flags.noise_shaping = 2;\n    }\n    if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n      var k = int(abr_switch_map[r].nsbass * 4);\n      if (k < 0)\n        k += 64;\n      gfp.exp_nspsytune = gfp.exp_nspsytune | k << 2;\n    }\n    if (enforce != 0)\n      gfp.quant_comp = abr_switch_map[r].quant_comp;\n    else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n      gfp.quant_comp = abr_switch_map[r].quant_comp;\n    }\n    if (enforce != 0)\n      gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n    else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n      gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n    }\n    if (enforce != 0)\n      gfp.msfix = abr_switch_map[r].nsmsfix;\n    else if (!(Math.abs(gfp.msfix - -1) > 0)) {\n      gfp.msfix = abr_switch_map[r].nsmsfix;\n    }\n    if (enforce != 0) {\n      gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n    } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n      gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n    }\n    if (enforce != 0) {\n      gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n    } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n      gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n    }\n    if (enforce != 0)\n      gfp.scale = abr_switch_map[r].scale;\n    else if (!(Math.abs(gfp.scale - -1) > 0)) {\n      gfp.scale = abr_switch_map[r].scale;\n    }\n    if (enforce != 0)\n      gfp.maskingadjust = abr_switch_map[r].masking_adj;\n    else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n      gfp.maskingadjust = abr_switch_map[r].masking_adj;\n    }\n    if (abr_switch_map[r].masking_adj > 0) {\n      if (enforce != 0) {\n        gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n      } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n        gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n      }\n    } else {\n      if (enforce != 0) {\n        gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n      } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n        gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n      }\n    }\n    if (enforce != 0)\n      gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n    else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n      gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n    }\n    if (enforce != 0)\n      gfp.ATHcurve = abr_switch_map[r].ath_curve;\n    else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) {\n      gfp.ATHcurve = abr_switch_map[r].ath_curve;\n    }\n    if (enforce != 0)\n      gfp.interChRatio = abr_switch_map[r].interch;\n    else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n      gfp.interChRatio = abr_switch_map[r].interch;\n    }\n    return preset;\n  }\n  this.apply_preset = function(gfp, preset, enforce) {\n    switch (preset) {\n      case Lame$1.R3MIX: {\n        preset = Lame$1.V3;\n        gfp.VBR = VbrMode$2.vbr_mtrh;\n        break;\n      }\n      case Lame$1.MEDIUM: {\n        preset = Lame$1.V4;\n        gfp.VBR = VbrMode$2.vbr_rh;\n        break;\n      }\n      case Lame$1.MEDIUM_FAST: {\n        preset = Lame$1.V4;\n        gfp.VBR = VbrMode$2.vbr_mtrh;\n        break;\n      }\n      case Lame$1.STANDARD: {\n        preset = Lame$1.V2;\n        gfp.VBR = VbrMode$2.vbr_rh;\n        break;\n      }\n      case Lame$1.STANDARD_FAST: {\n        preset = Lame$1.V2;\n        gfp.VBR = VbrMode$2.vbr_mtrh;\n        break;\n      }\n      case Lame$1.EXTREME: {\n        preset = Lame$1.V0;\n        gfp.VBR = VbrMode$2.vbr_rh;\n        break;\n      }\n      case Lame$1.EXTREME_FAST: {\n        preset = Lame$1.V0;\n        gfp.VBR = VbrMode$2.vbr_mtrh;\n        break;\n      }\n      case Lame$1.INSANE: {\n        preset = 320;\n        gfp.preset = preset;\n        apply_abr_preset(gfp, preset, enforce);\n        gfp.VBR = VbrMode$2.vbr_off;\n        return preset;\n      }\n    }\n    gfp.preset = preset;\n    {\n      switch (preset) {\n        case Lame$1.V9:\n          apply_vbr_preset(gfp, 9, enforce);\n          return preset;\n        case Lame$1.V8:\n          apply_vbr_preset(gfp, 8, enforce);\n          return preset;\n        case Lame$1.V7:\n          apply_vbr_preset(gfp, 7, enforce);\n          return preset;\n        case Lame$1.V6:\n          apply_vbr_preset(gfp, 6, enforce);\n          return preset;\n        case Lame$1.V5:\n          apply_vbr_preset(gfp, 5, enforce);\n          return preset;\n        case Lame$1.V4:\n          apply_vbr_preset(gfp, 4, enforce);\n          return preset;\n        case Lame$1.V3:\n          apply_vbr_preset(gfp, 3, enforce);\n          return preset;\n        case Lame$1.V2:\n          apply_vbr_preset(gfp, 2, enforce);\n          return preset;\n        case Lame$1.V1:\n          apply_vbr_preset(gfp, 1, enforce);\n          return preset;\n        case Lame$1.V0:\n          apply_vbr_preset(gfp, 0, enforce);\n          return preset;\n      }\n    }\n    if (preset >= 8 && preset <= 320) {\n      return apply_abr_preset(gfp, preset, enforce);\n    }\n    gfp.preset = 0;\n    return preset;\n  };\n  function lame_set_VBR_q(gfp, VBR_q) {\n    var ret = 0;\n    if (VBR_q < 0) {\n      ret = -1;\n      VBR_q = 0;\n    }\n    if (VBR_q > 9) {\n      ret = -1;\n      VBR_q = 9;\n    }\n    gfp.VBR_q = VBR_q;\n    gfp.VBR_q_frac = 0;\n    return ret;\n  }\n}\nfunction VBRQuantize() {\n  this.setModules = function(_qupvt, _tk) {\n  };\n}\nfunction CalcNoiseResult$1() {\n  this.over_noise = 0;\n  this.tot_noise = 0;\n  this.max_noise = 0;\n  this.over_count = 0;\n  this.over_SSD = 0;\n  this.bits = 0;\n}\nvar new_float$1 = common.new_float;\nvar new_int = common.new_int;\nfunction CalcNoiseData() {\n  this.global_gain = 0;\n  this.sfb_count1 = 0;\n  this.step = new_int(39);\n  this.noise = new_float$1(39);\n  this.noise_log = new_float$1(39);\n}\nvar System$1 = common.System;\nvar VbrMode$1 = common.VbrMode;\nvar Util = common.Util;\nvar Arrays$1 = common.Arrays;\nvar new_float = common.new_float;\nvar assert$3 = common.assert;\nfunction Quantize() {\n  var bs;\n  this.rv = null;\n  var rv;\n  this.qupvt = null;\n  var qupvt;\n  var vbr = new VBRQuantize();\n  var tk;\n  this.setModules = function(_bs, _rv, _qupvt, _tk) {\n    bs = _bs;\n    rv = _rv;\n    this.rv = _rv;\n    qupvt = _qupvt;\n    this.qupvt = _qupvt;\n    tk = _tk;\n    vbr.setModules(qupvt, tk);\n  };\n  this.ms_convert = function(l3_side, gr) {\n    for (var i = 0; i < 576; ++i) {\n      var l = l3_side.tt[gr][0].xr[i];\n      var r = l3_side.tt[gr][1].xr[i];\n      l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n      l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n    }\n  };\n  function init_xrpow_core(cod_info, xrpow, upper, sum) {\n    sum = 0;\n    for (var i = 0; i <= upper; ++i) {\n      var tmp = Math.abs(cod_info.xr[i]);\n      sum += tmp;\n      xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n      if (xrpow[i] > cod_info.xrpow_max)\n        cod_info.xrpow_max = xrpow[i];\n    }\n    return sum;\n  }\n  this.init_xrpow = function(gfc, cod_info, xrpow) {\n    var sum = 0;\n    var upper = 0 | cod_info.max_nonzero_coeff;\n    cod_info.xrpow_max = 0;\n    Arrays$1.fill(xrpow, upper, 576, 0);\n    sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n    if (sum > 1e-20) {\n      var j = 0;\n      if ((gfc.substep_shaping & 2) != 0)\n        j = 1;\n      for (var i = 0; i < cod_info.psymax; i++)\n        gfc.pseudohalf[i] = j;\n      return true;\n    }\n    Arrays$1.fill(cod_info.l3_enc, 0, 576, 0);\n    return false;\n  };\n  function psfb21_analogsilence(gfc, cod_info) {\n    var ath = gfc.ATH;\n    var xr = cod_info.xr;\n    if (cod_info.block_type != Encoder.SHORT_TYPE) {\n      var stop = false;\n      for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n        var start = gfc.scalefac_band.psfb21[gsfb];\n        var end = gfc.scalefac_band.psfb21[gsfb + 1];\n        var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb], ath.floor);\n        if (gfc.nsPsy.longfact[21] > 1e-12)\n          ath21 *= gfc.nsPsy.longfact[21];\n        for (var j = end - 1; j >= start; j--) {\n          if (Math.abs(xr[j]) < ath21)\n            xr[j] = 0;\n          else {\n            stop = true;\n            break;\n          }\n        }\n      }\n    } else {\n      for (var block = 0; block < 3; block++) {\n        var stop = false;\n        for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n          var start = gfc.scalefac_band.s[12] * 3 + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) * block + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n          var end = start + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n          var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb], ath.floor);\n          if (gfc.nsPsy.shortfact[12] > 1e-12)\n            ath12 *= gfc.nsPsy.shortfact[12];\n          for (var j = end - 1; j >= start; j--) {\n            if (Math.abs(xr[j]) < ath12)\n              xr[j] = 0;\n            else {\n              stop = true;\n              break;\n            }\n          }\n        }\n      }\n    }\n  }\n  this.init_outer_loop = function(gfc, cod_info) {\n    cod_info.part2_3_length = 0;\n    cod_info.big_values = 0;\n    cod_info.count1 = 0;\n    cod_info.global_gain = 210;\n    cod_info.scalefac_compress = 0;\n    cod_info.table_select[0] = 0;\n    cod_info.table_select[1] = 0;\n    cod_info.table_select[2] = 0;\n    cod_info.subblock_gain[0] = 0;\n    cod_info.subblock_gain[1] = 0;\n    cod_info.subblock_gain[2] = 0;\n    cod_info.subblock_gain[3] = 0;\n    cod_info.region0_count = 0;\n    cod_info.region1_count = 0;\n    cod_info.preflag = 0;\n    cod_info.scalefac_scale = 0;\n    cod_info.count1table_select = 0;\n    cod_info.part2_length = 0;\n    cod_info.sfb_lmax = Encoder.SBPSY_l;\n    cod_info.sfb_smin = Encoder.SBPSY_s;\n    cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n    cod_info.psymax = cod_info.psy_lmax;\n    cod_info.sfbmax = cod_info.sfb_lmax;\n    cod_info.sfbdivide = 11;\n    for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n      cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1] - gfc.scalefac_band.l[sfb];\n      cod_info.window[sfb] = 3;\n    }\n    if (cod_info.block_type == Encoder.SHORT_TYPE) {\n      var ixwork = new_float(576);\n      cod_info.sfb_smin = 0;\n      cod_info.sfb_lmax = 0;\n      if (cod_info.mixed_block_flag != 0) {\n        cod_info.sfb_smin = 3;\n        cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n      }\n      cod_info.psymax = cod_info.sfb_lmax + 3 * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n      cod_info.sfbmax = cod_info.sfb_lmax + 3 * (Encoder.SBPSY_s - cod_info.sfb_smin);\n      cod_info.sfbdivide = cod_info.sfbmax - 18;\n      cod_info.psy_lmax = cod_info.sfb_lmax;\n      var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n      System$1.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n      for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n        var start = gfc.scalefac_band.s[sfb];\n        var end = gfc.scalefac_band.s[sfb + 1];\n        for (var window2 = 0; window2 < 3; window2++) {\n          for (var l = start; l < end; l++) {\n            cod_info.xr[ix++] = ixwork[3 * l + window2];\n          }\n        }\n      }\n      var j = cod_info.sfb_lmax;\n      for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n        cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n        cod_info.window[j] = 0;\n        cod_info.window[j + 1] = 1;\n        cod_info.window[j + 2] = 2;\n        j += 3;\n      }\n    }\n    cod_info.count1bits = 0;\n    cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n    cod_info.slen[0] = 0;\n    cod_info.slen[1] = 0;\n    cod_info.slen[2] = 0;\n    cod_info.slen[3] = 0;\n    cod_info.max_nonzero_coeff = 575;\n    Arrays$1.fill(cod_info.scalefac, 0);\n    psfb21_analogsilence(gfc, cod_info);\n  };\n  function BinSearchDirection(ordinal) {\n    this.ordinal = ordinal;\n  }\n  BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n  BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n  BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n  function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n    var nBits;\n    var CurrentStep = gfc.CurrentStep[ch];\n    var flagGoneOver = false;\n    var start = gfc.OldValue[ch];\n    var Direction = BinSearchDirection.BINSEARCH_NONE;\n    cod_info.global_gain = start;\n    desired_rate -= cod_info.part2_length;\n    for (; ; ) {\n      var step;\n      nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n      if (CurrentStep == 1 || nBits == desired_rate)\n        break;\n      if (nBits > desired_rate) {\n        if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n          flagGoneOver = true;\n        if (flagGoneOver)\n          CurrentStep /= 2;\n        Direction = BinSearchDirection.BINSEARCH_UP;\n        step = CurrentStep;\n      } else {\n        if (Direction == BinSearchDirection.BINSEARCH_UP)\n          flagGoneOver = true;\n        if (flagGoneOver)\n          CurrentStep /= 2;\n        Direction = BinSearchDirection.BINSEARCH_DOWN;\n        step = -CurrentStep;\n      }\n      cod_info.global_gain += step;\n      if (cod_info.global_gain < 0) {\n        cod_info.global_gain = 0;\n        flagGoneOver = true;\n      }\n      if (cod_info.global_gain > 255) {\n        cod_info.global_gain = 255;\n        flagGoneOver = true;\n      }\n    }\n    assert$3(cod_info.global_gain >= 0);\n    assert$3(cod_info.global_gain < 256);\n    while (nBits > desired_rate && cod_info.global_gain < 255) {\n      cod_info.global_gain++;\n      nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n    }\n    gfc.CurrentStep[ch] = start - cod_info.global_gain >= 4 ? 4 : 2;\n    gfc.OldValue[ch] = cod_info.global_gain;\n    cod_info.part2_3_length = nBits;\n    return nBits;\n  }\n  this.trancate_smallspectrums = function(gfc, gi, l3_xmin, work) {\n    var distort = new_float(L3Side$1.SFBMAX);\n    if ((gfc.substep_shaping & 4) == 0 && gi.block_type == Encoder.SHORT_TYPE || (gfc.substep_shaping & 128) != 0) {\n      return;\n    }\n    qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult$1(), null);\n    for (var j = 0; j < 576; j++) {\n      var xr = 0;\n      if (gi.l3_enc[j] != 0)\n        xr = Math.abs(gi.xr[j]);\n      work[j] = xr;\n    }\n    var j = 0;\n    var sfb = 8;\n    if (gi.block_type == Encoder.SHORT_TYPE)\n      sfb = 6;\n    do {\n      var allowedNoise, trancateThreshold;\n      var nsame, start;\n      var width = gi.width[sfb];\n      j += width;\n      if (distort[sfb] >= 1)\n        continue;\n      Arrays$1.sort(work, j - width, width);\n      if (BitStream.EQ(work[j - 1], 0))\n        continue;\n      allowedNoise = (1 - distort[sfb]) * l3_xmin[sfb];\n      trancateThreshold = 0;\n      start = 0;\n      do {\n        var noise;\n        for (nsame = 1; start + nsame < width; nsame++) {\n          if (BitStream.NEQ(\n            work[start + j - width],\n            work[start + j + nsame - width]\n          )) {\n            break;\n          }\n        }\n        noise = work[start + j - width] * work[start + j - width] * nsame;\n        if (allowedNoise < noise) {\n          if (start != 0)\n            trancateThreshold = work[start + j - width - 1];\n          break;\n        }\n        allowedNoise -= noise;\n        start += nsame;\n      } while (start < width);\n      if (BitStream.EQ(trancateThreshold, 0))\n        continue;\n      do {\n        if (Math.abs(gi.xr[j - width]) <= trancateThreshold) {\n          gi.l3_enc[j - width] = 0;\n        }\n      } while (--width > 0);\n    } while (++sfb < gi.psymax);\n    gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n  };\n  function loop_break(cod_info) {\n    for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n      if (cod_info.scalefac[sfb] + cod_info.subblock_gain[cod_info.window[sfb]] == 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function penalties(noise) {\n    return Util.FAST_LOG10(0.368 + 0.632 * noise * noise * noise);\n  }\n  function get_klemm_noise(distort, gi) {\n    var klemm_noise = 1e-37;\n    for (var sfb = 0; sfb < gi.psymax; sfb++) {\n      klemm_noise += penalties(distort[sfb]);\n    }\n    return Math.max(1e-20, klemm_noise);\n  }\n  function quant_compare(quant_comp, best, calc, gi, distort) {\n    var better;\n    switch (quant_comp) {\n      default:\n      case 9: {\n        if (best.over_count > 0) {\n          better = calc.over_SSD <= best.over_SSD;\n          if (calc.over_SSD == best.over_SSD)\n            better = calc.bits < best.bits;\n        } else {\n          better = calc.max_noise < 0 && calc.max_noise * 10 + calc.bits <= best.max_noise * 10 + best.bits;\n        }\n        break;\n      }\n      case 0:\n        better = calc.over_count < best.over_count || calc.over_count == best.over_count && calc.over_noise < best.over_noise || calc.over_count == best.over_count && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n        break;\n      case 8:\n        calc.max_noise = get_klemm_noise(distort, gi);\n      case 1:\n        better = calc.max_noise < best.max_noise;\n        break;\n      case 2:\n        better = calc.tot_noise < best.tot_noise;\n        break;\n      case 3:\n        better = calc.tot_noise < best.tot_noise && calc.max_noise < best.max_noise;\n        break;\n      case 4:\n        better = calc.max_noise <= 0 && best.max_noise > 0.2 || calc.max_noise <= 0 && best.max_noise < 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise || calc.max_noise <= 0 && best.max_noise > 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.05 && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise + calc.over_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.1 && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise + calc.over_noise + calc.over_noise < best.tot_noise + best.over_noise + best.over_noise;\n        break;\n      case 5:\n        better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n        break;\n      case 6:\n        better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || BitStream.EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise);\n        break;\n      case 7:\n        better = calc.over_count < best.over_count || calc.over_noise < best.over_noise;\n        break;\n    }\n    if (best.over_count == 0) {\n      better = better && calc.bits < best.bits;\n    }\n    return better;\n  }\n  function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n    var gfc = gfp.internal_flags;\n    var ifqstep34;\n    if (cod_info.scalefac_scale == 0) {\n      ifqstep34 = 1.2968395546510096;\n    } else {\n      ifqstep34 = 1.6817928305074292;\n    }\n    var trigger2 = 0;\n    for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n      if (trigger2 < distort[sfb])\n        trigger2 = distort[sfb];\n    }\n    var noise_shaping_amp = gfc.noise_shaping_amp;\n    if (noise_shaping_amp == 3) {\n      if (bRefine)\n        noise_shaping_amp = 2;\n      else\n        noise_shaping_amp = 1;\n    }\n    switch (noise_shaping_amp) {\n      case 2:\n        break;\n      case 1:\n        if (trigger2 > 1)\n          trigger2 = Math.pow(trigger2, 0.5);\n        else\n          trigger2 *= 0.95;\n        break;\n      case 0:\n      default:\n        if (trigger2 > 1)\n          trigger2 = 1;\n        else\n          trigger2 *= 0.95;\n        break;\n    }\n    var j = 0;\n    for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n      var width = cod_info.width[sfb];\n      var l;\n      j += width;\n      if (distort[sfb] < trigger2)\n        continue;\n      if ((gfc.substep_shaping & 2) != 0) {\n        gfc.pseudohalf[sfb] = gfc.pseudohalf[sfb] == 0 ? 1 : 0;\n        if (gfc.pseudohalf[sfb] == 0 && gfc.noise_shaping_amp == 2)\n          return;\n      }\n      cod_info.scalefac[sfb]++;\n      for (l = -width; l < 0; l++) {\n        xrpow[j + l] *= ifqstep34;\n        if (xrpow[j + l] > cod_info.xrpow_max)\n          cod_info.xrpow_max = xrpow[j + l];\n      }\n      if (gfc.noise_shaping_amp == 2)\n        return;\n    }\n  }\n  function inc_scalefac_scale(cod_info, xrpow) {\n    var ifqstep34 = 1.2968395546510096;\n    var j = 0;\n    for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n      var width = cod_info.width[sfb];\n      var s = cod_info.scalefac[sfb];\n      if (cod_info.preflag != 0)\n        s += qupvt.pretab[sfb];\n      j += width;\n      if ((s & 1) != 0) {\n        s++;\n        for (var l = -width; l < 0; l++) {\n          xrpow[j + l] *= ifqstep34;\n          if (xrpow[j + l] > cod_info.xrpow_max) {\n            cod_info.xrpow_max = xrpow[j + l];\n          }\n        }\n      }\n      cod_info.scalefac[sfb] = s >> 1;\n    }\n    cod_info.preflag = 0;\n    cod_info.scalefac_scale = 1;\n  }\n  function inc_subblock_gain(gfc, cod_info, xrpow) {\n    var sfb;\n    var scalefac = cod_info.scalefac;\n    for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n      if (scalefac[sfb] >= 16)\n        return true;\n    }\n    for (var window2 = 0; window2 < 3; window2++) {\n      var s1 = 0;\n      var s2 = 0;\n      for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbdivide; sfb += 3) {\n        if (s1 < scalefac[sfb])\n          s1 = scalefac[sfb];\n      }\n      for (; sfb < cod_info.sfbmax; sfb += 3) {\n        if (s2 < scalefac[sfb])\n          s2 = scalefac[sfb];\n      }\n      if (s1 < 16 && s2 < 8)\n        continue;\n      if (cod_info.subblock_gain[window2] >= 7)\n        return true;\n      cod_info.subblock_gain[window2]++;\n      var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n      for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbmax; sfb += 3) {\n        var amp;\n        var width = cod_info.width[sfb];\n        var s = scalefac[sfb];\n        s = s - (4 >> cod_info.scalefac_scale);\n        if (s >= 0) {\n          scalefac[sfb] = s;\n          j += width * 3;\n          continue;\n        }\n        scalefac[sfb] = 0;\n        {\n          var gain = 210 + (s << cod_info.scalefac_scale + 1);\n          amp = qupvt.IPOW20(gain);\n        }\n        j += width * (window2 + 1);\n        for (var l = -width; l < 0; l++) {\n          xrpow[j + l] *= amp;\n          if (xrpow[j + l] > cod_info.xrpow_max) {\n            cod_info.xrpow_max = xrpow[j + l];\n          }\n        }\n        j += width * (3 - window2 - 1);\n      }\n      {\n        var amp = qupvt.IPOW20(202);\n        j += cod_info.width[sfb] * (window2 + 1);\n        for (var l = -cod_info.width[sfb]; l < 0; l++) {\n          xrpow[j + l] *= amp;\n          if (xrpow[j + l] > cod_info.xrpow_max) {\n            cod_info.xrpow_max = xrpow[j + l];\n          }\n        }\n      }\n    }\n    return false;\n  }\n  function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n    var gfc = gfp.internal_flags;\n    amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n    var status = loop_break(cod_info);\n    if (status)\n      return false;\n    if (gfc.mode_gr == 2)\n      status = tk.scale_bitcount(cod_info);\n    else\n      status = tk.scale_bitcount_lsf(gfc, cod_info);\n    if (!status)\n      return true;\n    if (gfc.noise_shaping > 1) {\n      Arrays$1.fill(gfc.pseudohalf, 0);\n      if (cod_info.scalefac_scale == 0) {\n        inc_scalefac_scale(cod_info, xrpow);\n        status = false;\n      } else {\n        if (cod_info.block_type == Encoder.SHORT_TYPE && gfc.subblock_gain > 0) {\n          status = inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info);\n        }\n      }\n    }\n    if (!status) {\n      if (gfc.mode_gr == 2)\n        status = tk.scale_bitcount(cod_info);\n      else\n        status = tk.scale_bitcount_lsf(gfc, cod_info);\n    }\n    return !status;\n  }\n  this.outer_loop = function(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n    var gfc = gfp.internal_flags;\n    var cod_info_w = new GrInfo();\n    var save_xrpow = new_float(576);\n    var distort = new_float(L3Side$1.SFBMAX);\n    var best_noise_info = new CalcNoiseResult$1();\n    var better;\n    var prev_noise = new CalcNoiseData();\n    var best_part2_3_length = 9999999;\n    var bEndOfSearch = false;\n    var bRefine = false;\n    var best_ggain_pass1 = 0;\n    bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n    if (gfc.noise_shaping == 0) {\n      return 100;\n    }\n    qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info, prev_noise);\n    best_noise_info.bits = cod_info.part2_3_length;\n    cod_info_w.assign(cod_info);\n    var age = 0;\n    System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n    while (!bEndOfSearch) {\n      do {\n        var noise_info = new CalcNoiseResult$1();\n        var search_limit;\n        var maxggain = 255;\n        if ((gfc.substep_shaping & 2) != 0) {\n          search_limit = 20;\n        } else {\n          search_limit = 3;\n        }\n        if (gfc.sfb21_extra) {\n          if (distort[cod_info_w.sfbmax] > 1)\n            break;\n          if (cod_info_w.block_type == Encoder.SHORT_TYPE && (distort[cod_info_w.sfbmax + 1] > 1 || distort[cod_info_w.sfbmax + 2] > 1)) {\n            break;\n          }\n        }\n        if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n          break;\n        if (cod_info_w.scalefac_scale != 0)\n          maxggain = 254;\n        var huff_bits = targ_bits - cod_info_w.part2_length;\n        if (huff_bits <= 0)\n          break;\n        while ((cod_info_w.part2_3_length = tk.count_bits(\n          gfc,\n          xrpow,\n          cod_info_w,\n          prev_noise\n        )) > huff_bits && cod_info_w.global_gain <= maxggain) {\n          cod_info_w.global_gain++;\n        }\n        if (cod_info_w.global_gain > maxggain)\n          break;\n        if (best_noise_info.over_count == 0) {\n          while ((cod_info_w.part2_3_length = tk.count_bits(\n            gfc,\n            xrpow,\n            cod_info_w,\n            prev_noise\n          )) > best_part2_3_length && cod_info_w.global_gain <= maxggain) {\n            cod_info_w.global_gain++;\n          }\n          if (cod_info_w.global_gain > maxggain)\n            break;\n        }\n        qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info, prev_noise);\n        noise_info.bits = cod_info_w.part2_3_length;\n        if (cod_info.block_type != Encoder.SHORT_TYPE) {\n          better = gfp.quant_comp;\n        } else\n          better = gfp.quant_comp_short;\n        better = quant_compare(\n          better,\n          best_noise_info,\n          noise_info,\n          cod_info_w,\n          distort\n        ) ? 1 : 0;\n        if (better != 0) {\n          best_part2_3_length = cod_info.part2_3_length;\n          best_noise_info = noise_info;\n          cod_info.assign(cod_info_w);\n          age = 0;\n          System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n        } else {\n          if (gfc.full_outer_loop == 0) {\n            if (++age > search_limit && best_noise_info.over_count == 0)\n              break;\n            if (gfc.noise_shaping_amp == 3 && bRefine && age > 30)\n              break;\n            if (gfc.noise_shaping_amp == 3 && bRefine && cod_info_w.global_gain - best_ggain_pass1 > 15) {\n              break;\n            }\n          }\n        }\n      } while (cod_info_w.global_gain + cod_info_w.scalefac_scale < 255);\n      if (gfc.noise_shaping_amp == 3) {\n        if (!bRefine) {\n          cod_info_w.assign(cod_info);\n          System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n          age = 0;\n          best_ggain_pass1 = cod_info_w.global_gain;\n          bRefine = true;\n        } else {\n          bEndOfSearch = true;\n        }\n      } else {\n        bEndOfSearch = true;\n      }\n    }\n    assert$3(cod_info.global_gain + cod_info.scalefac_scale <= 255);\n    if (gfp.VBR == VbrMode$1.vbr_rh || gfp.VBR == VbrMode$1.vbr_mtrh) {\n      System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n    } else if ((gfc.substep_shaping & 1) != 0) {\n      trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n    }\n    return best_noise_info.over_count;\n  };\n  this.iteration_finish_one = function(gfc, gr, ch) {\n    var l3_side = gfc.l3_side;\n    var cod_info = l3_side.tt[gr][ch];\n    tk.best_scalefac_store(gfc, gr, ch, l3_side);\n    if (gfc.use_best_huffman == 1)\n      tk.best_huffman_divide(gfc, cod_info);\n    rv.ResvAdjust(gfc, cod_info);\n  };\n  this.VBR_encode_granule = function(gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n    var gfc = gfp.internal_flags;\n    var bst_cod_info = new GrInfo();\n    var bst_xrpow = new_float(576);\n    var Max_bits = max_bits;\n    var real_bits = max_bits + 1;\n    var this_bits = (max_bits + min_bits) / 2;\n    var dbits;\n    var over;\n    var found = 0;\n    var sfb21_extra = gfc.sfb21_extra;\n    assert$3(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n    Arrays$1.fill(bst_cod_info.l3_enc, 0);\n    do {\n      if (this_bits > Max_bits - 42)\n        gfc.sfb21_extra = false;\n      else\n        gfc.sfb21_extra = sfb21_extra;\n      over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n      if (over <= 0) {\n        found = 1;\n        real_bits = cod_info.part2_3_length;\n        bst_cod_info.assign(cod_info);\n        System$1.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n        max_bits = real_bits - 32;\n        dbits = max_bits - min_bits;\n        this_bits = (max_bits + min_bits) / 2;\n      } else {\n        min_bits = this_bits + 32;\n        dbits = max_bits - min_bits;\n        this_bits = (max_bits + min_bits) / 2;\n        if (found != 0) {\n          found = 2;\n          cod_info.assign(bst_cod_info);\n          System$1.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n        }\n      }\n    } while (dbits > 12);\n    gfc.sfb21_extra = sfb21_extra;\n    if (found == 2) {\n      System$1.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n    }\n    assert$3(cod_info.part2_3_length <= Max_bits);\n  };\n  this.get_framebits = function(gfp, frameBits) {\n    var gfc = gfp.internal_flags;\n    gfc.bitrate_index = gfc.VBR_min_bitrate;\n    var bitsPerFrame = bs.getframebits(gfp);\n    gfc.bitrate_index = 1;\n    bitsPerFrame = bs.getframebits(gfp);\n    for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n      gfc.bitrate_index = i;\n      var mb = new MeanBits(bitsPerFrame);\n      frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n      bitsPerFrame = mb.bits;\n    }\n  };\n  this.VBR_old_prepare = function(gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits, max_bits, bands) {\n    var gfc = gfp.internal_flags;\n    var masking_lower_db;\n    var adjust = 0;\n    var analog_silence = 1;\n    var bits = 0;\n    gfc.bitrate_index = gfc.VBR_max_bitrate;\n    var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n    get_framebits(gfp, frameBits);\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n      if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n        ms_convert(gfc.l3_side, gr);\n        qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n      }\n      for (var ch = 0; ch < gfc.channels_out; ++ch) {\n        var cod_info = gfc.l3_side.tt[gr][ch];\n        if (cod_info.block_type != Encoder.SHORT_TYPE) {\n          adjust = 1.28 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.05;\n          masking_lower_db = gfc.PSY.mask_adjust - adjust;\n        } else {\n          adjust = 2.56 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.14;\n          masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n        }\n        gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n        init_outer_loop(gfc, cod_info);\n        bands[gr][ch] = qupvt.calc_xmin(\n          gfp,\n          ratio[gr][ch],\n          cod_info,\n          l3_xmin[gr][ch]\n        );\n        if (bands[gr][ch] != 0)\n          analog_silence = 0;\n        min_bits[gr][ch] = 126;\n        bits += max_bits[gr][ch];\n      }\n    }\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      for (var ch = 0; ch < gfc.channels_out; ch++) {\n        if (bits > frameBits[gfc.VBR_max_bitrate]) {\n          max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n          max_bits[gr][ch] /= bits;\n        }\n        if (min_bits[gr][ch] > max_bits[gr][ch]) {\n          min_bits[gr][ch] = max_bits[gr][ch];\n        }\n      }\n    }\n    return analog_silence;\n  };\n  this.bitpressure_strategy = function(gfc, l3_xmin, min_bits, max_bits) {\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      for (var ch = 0; ch < gfc.channels_out; ch++) {\n        var gi = gfc.l3_side.tt[gr][ch];\n        var pxmin = l3_xmin[gr][ch];\n        var pxminPos = 0;\n        for (var sfb = 0; sfb < gi.psy_lmax; sfb++) {\n          pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_l / Encoder.SBMAX_l;\n        }\n        if (gi.block_type == Encoder.SHORT_TYPE) {\n          for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n            pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n            pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n            pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n          }\n        }\n        max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch], 0.9 * max_bits[gr][ch]);\n      }\n    }\n  };\n  this.VBR_new_prepare = function(gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n    var gfc = gfp.internal_flags;\n    var analog_silence = 1;\n    var avg = 0;\n    var bits = 0;\n    var maximum_framebits;\n    if (!gfp.free_format) {\n      gfc.bitrate_index = gfc.VBR_max_bitrate;\n      var mb = new MeanBits(avg);\n      rv.ResvFrameBegin(gfp, mb);\n      avg = mb.bits;\n      get_framebits(gfp, frameBits);\n      maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n    } else {\n      gfc.bitrate_index = 0;\n      var mb = new MeanBits(avg);\n      maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n      avg = mb.bits;\n      frameBits[0] = maximum_framebits;\n    }\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n      if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n        ms_convert(gfc.l3_side, gr);\n      }\n      for (var ch = 0; ch < gfc.channels_out; ++ch) {\n        var cod_info = gfc.l3_side.tt[gr][ch];\n        gfc.masking_lower = Math.pow(10, gfc.PSY.mask_adjust * 0.1);\n        init_outer_loop(gfc, cod_info);\n        if (qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch]) != 0) {\n          analog_silence = 0;\n        }\n        bits += max_bits[gr][ch];\n      }\n    }\n    for (var gr = 0; gr < gfc.mode_gr; gr++) {\n      for (var ch = 0; ch < gfc.channels_out; ch++) {\n        if (bits > maximum_framebits) {\n          max_bits[gr][ch] *= maximum_framebits;\n          max_bits[gr][ch] /= bits;\n        }\n      }\n    }\n    return analog_silence;\n  };\n  this.calc_target_bits = function(gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n    var gfc = gfp.internal_flags;\n    var l3_side = gfc.l3_side;\n    var res_factor;\n    var gr;\n    var ch;\n    var totbits;\n    var mean_bits = 0;\n    gfc.bitrate_index = gfc.VBR_max_bitrate;\n    var mb = new MeanBits(mean_bits);\n    max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n    mean_bits = mb.bits;\n    gfc.bitrate_index = 1;\n    mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n    analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n    mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1e3;\n    if ((gfc.substep_shaping & 1) != 0)\n      mean_bits *= 1.09;\n    mean_bits /= gfp.out_samplerate;\n    mean_bits -= gfc.sideinfo_len * 8;\n    mean_bits /= gfc.mode_gr * gfc.channels_out;\n    res_factor = 0.93 + 0.07 * (11 - gfp.compression_ratio) / (11 - 5.5);\n    if (res_factor < 0.9)\n      res_factor = 0.9;\n    if (res_factor > 1)\n      res_factor = 1;\n    for (gr = 0; gr < gfc.mode_gr; gr++) {\n      var sum = 0;\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        targ_bits[gr][ch] = int(res_factor * mean_bits);\n        if (pe[gr][ch] > 700) {\n          var add_bits = int((pe[gr][ch] - 700) / 1.4);\n          var cod_info = l3_side.tt[gr][ch];\n          targ_bits[gr][ch] = int(res_factor * mean_bits);\n          if (cod_info.block_type == Encoder.SHORT_TYPE) {\n            if (add_bits < mean_bits / 2)\n              add_bits = mean_bits / 2;\n          }\n          if (add_bits > mean_bits * 3 / 2)\n            add_bits = mean_bits * 3 / 2;\n          else if (add_bits < 0)\n            add_bits = 0;\n          targ_bits[gr][ch] += add_bits;\n        }\n        if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n          targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n        }\n        sum += targ_bits[gr][ch];\n      }\n      if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n        for (ch = 0; ch < gfc.channels_out; ++ch) {\n          targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n          targ_bits[gr][ch] /= sum;\n        }\n      }\n    }\n    if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        qupvt.reduce_side(\n          targ_bits[gr],\n          ms_ener_ratio[gr],\n          mean_bits * gfc.channels_out,\n          LameInternalFlags.MAX_BITS_PER_GRANULE\n        );\n      }\n    }\n    totbits = 0;\n    for (gr = 0; gr < gfc.mode_gr; gr++) {\n      for (ch = 0; ch < gfc.channels_out; ch++) {\n        if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n          targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n        }\n        totbits += targ_bits[gr][ch];\n      }\n    }\n    if (totbits > max_frame_bits[0]) {\n      for (gr = 0; gr < gfc.mode_gr; gr++) {\n        for (ch = 0; ch < gfc.channels_out; ch++) {\n          targ_bits[gr][ch] *= max_frame_bits[0];\n          targ_bits[gr][ch] /= totbits;\n        }\n      }\n    }\n  };\n}\nvar assert$2 = common.assert;\nfunction Reservoir() {\n  var bs;\n  this.setModules = function(_bs) {\n    bs = _bs;\n  };\n  this.ResvFrameBegin = function(gfp, mean_bits) {\n    var gfc = gfp.internal_flags;\n    var maxmp3buf;\n    var l3_side = gfc.l3_side;\n    var frameLength = bs.getframebits(gfp);\n    mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n    var resvLimit = 8 * 256 * gfc.mode_gr - 8;\n    if (gfp.brate > 320) {\n      maxmp3buf = 8 * int(gfp.brate * 1e3 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n    } else {\n      maxmp3buf = 8 * 1440;\n      if (gfp.strict_ISO) {\n        maxmp3buf = 8 * int(32e4 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n      }\n    }\n    gfc.ResvMax = maxmp3buf - frameLength;\n    if (gfc.ResvMax > resvLimit)\n      gfc.ResvMax = resvLimit;\n    if (gfc.ResvMax < 0 || gfp.disable_reservoir)\n      gfc.ResvMax = 0;\n    var fullFrameBits = mean_bits.bits * gfc.mode_gr + Math.min(gfc.ResvSize, gfc.ResvMax);\n    if (fullFrameBits > maxmp3buf)\n      fullFrameBits = maxmp3buf;\n    assert$2(gfc.ResvMax % 8 == 0);\n    assert$2(gfc.ResvMax >= 0);\n    l3_side.resvDrain_pre = 0;\n    if (gfc.pinfo != null) {\n      gfc.pinfo.mean_bits = mean_bits.bits / 2;\n      gfc.pinfo.resvsize = gfc.ResvSize;\n    }\n    return fullFrameBits;\n  };\n  this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n    var gfc = gfp.internal_flags;\n    var add_bits;\n    var ResvSize = gfc.ResvSize;\n    var ResvMax = gfc.ResvMax;\n    if (cbr != 0)\n      ResvSize += mean_bits;\n    if ((gfc.substep_shaping & 1) != 0)\n      ResvMax *= 0.9;\n    targ_bits.bits = mean_bits;\n    if (ResvSize * 10 > ResvMax * 9) {\n      add_bits = ResvSize - ResvMax * 9 / 10;\n      targ_bits.bits += add_bits;\n      gfc.substep_shaping |= 128;\n    } else {\n      add_bits = 0;\n      gfc.substep_shaping &= 127;\n      if (!gfp.disable_reservoir && (gfc.substep_shaping & 1) == 0) {\n        targ_bits.bits -= 0.1 * mean_bits;\n      }\n    }\n    var extra_bits = ResvSize < gfc.ResvMax * 6 / 10 ? ResvSize : gfc.ResvMax * 6 / 10;\n    extra_bits -= add_bits;\n    if (extra_bits < 0)\n      extra_bits = 0;\n    return extra_bits;\n  };\n  this.ResvAdjust = function(gfc, gi) {\n    gfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n  };\n  this.ResvFrameEnd = function(gfc, mean_bits) {\n    var over_bits;\n    var l3_side = gfc.l3_side;\n    gfc.ResvSize += mean_bits * gfc.mode_gr;\n    var stuffingBits = 0;\n    l3_side.resvDrain_post = 0;\n    l3_side.resvDrain_pre = 0;\n    if ((over_bits = gfc.ResvSize % 8) != 0)\n      stuffingBits += over_bits;\n    over_bits = gfc.ResvSize - stuffingBits - gfc.ResvMax;\n    if (over_bits > 0) {\n      stuffingBits += over_bits;\n    }\n    {\n      var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n      l3_side.resvDrain_pre += 8 * mdb_bytes;\n      stuffingBits -= 8 * mdb_bytes;\n      gfc.ResvSize -= 8 * mdb_bytes;\n      l3_side.main_data_begin -= mdb_bytes;\n    }\n    l3_side.resvDrain_post += stuffingBits;\n    gfc.ResvSize -= stuffingBits;\n  };\n}\nfunction Version() {\n  var LAME_URL = \"http://www.mp3dev.org/\";\n  var LAME_MAJOR_VERSION = 3;\n  var LAME_MINOR_VERSION = 98;\n  var LAME_PATCH_VERSION = 4;\n  var PSY_MAJOR_VERSION = 0;\n  var PSY_MINOR_VERSION = 93;\n  this.getLameVersion = function() {\n    return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n  };\n  this.getLameShortVersion = function() {\n    return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n  };\n  this.getLameVeryShortVersion = function() {\n    return \"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\";\n  };\n  this.getPsyVersion = function() {\n    return PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION;\n  };\n  this.getLameUrl = function() {\n    return LAME_URL;\n  };\n  this.getLameOsBitness = function() {\n    return \"32bits\";\n  };\n}\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar ShortBlock = common.ShortBlock;\nvar Arrays = common.Arrays;\nvar new_byte$1 = common.new_byte;\nvar assert$1 = common.assert;\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\nfunction VBRTag() {\n  var lame;\n  var bs;\n  var v;\n  this.setModules = function(_lame, _bs, _v) {\n    lame = _lame;\n    bs = _bs;\n    v = _v;\n  };\n  var FRAMES_FLAG = 1;\n  var BYTES_FLAG = 2;\n  var TOC_FLAG = 4;\n  var VBR_SCALE_FLAG = 8;\n  var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n  var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n  var VBRHEADERSIZE = NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4;\n  var LAMEHEADERSIZE = VBRHEADERSIZE + 9 + 1 + 1 + 8 + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2;\n  var XING_BITRATE1 = 128;\n  var XING_BITRATE2 = 64;\n  var XING_BITRATE25 = 32;\n  var ISO_8859_1 = null;\n  var VBRTag0 = \"Xing\";\n  var VBRTag1 = \"Info\";\n  var crc16Lookup = [\n    0,\n    49345,\n    49537,\n    320,\n    49921,\n    960,\n    640,\n    49729,\n    50689,\n    1728,\n    1920,\n    51009,\n    1280,\n    50625,\n    50305,\n    1088,\n    52225,\n    3264,\n    3456,\n    52545,\n    3840,\n    53185,\n    52865,\n    3648,\n    2560,\n    51905,\n    52097,\n    2880,\n    51457,\n    2496,\n    2176,\n    51265,\n    55297,\n    6336,\n    6528,\n    55617,\n    6912,\n    56257,\n    55937,\n    6720,\n    7680,\n    57025,\n    57217,\n    8e3,\n    56577,\n    7616,\n    7296,\n    56385,\n    5120,\n    54465,\n    54657,\n    5440,\n    55041,\n    6080,\n    5760,\n    54849,\n    53761,\n    4800,\n    4992,\n    54081,\n    4352,\n    53697,\n    53377,\n    4160,\n    61441,\n    12480,\n    12672,\n    61761,\n    13056,\n    62401,\n    62081,\n    12864,\n    13824,\n    63169,\n    63361,\n    14144,\n    62721,\n    13760,\n    13440,\n    62529,\n    15360,\n    64705,\n    64897,\n    15680,\n    65281,\n    16320,\n    16e3,\n    65089,\n    64001,\n    15040,\n    15232,\n    64321,\n    14592,\n    63937,\n    63617,\n    14400,\n    10240,\n    59585,\n    59777,\n    10560,\n    60161,\n    11200,\n    10880,\n    59969,\n    60929,\n    11968,\n    12160,\n    61249,\n    11520,\n    60865,\n    60545,\n    11328,\n    58369,\n    9408,\n    9600,\n    58689,\n    9984,\n    59329,\n    59009,\n    9792,\n    8704,\n    58049,\n    58241,\n    9024,\n    57601,\n    8640,\n    8320,\n    57409,\n    40961,\n    24768,\n    24960,\n    41281,\n    25344,\n    41921,\n    41601,\n    25152,\n    26112,\n    42689,\n    42881,\n    26432,\n    42241,\n    26048,\n    25728,\n    42049,\n    27648,\n    44225,\n    44417,\n    27968,\n    44801,\n    28608,\n    28288,\n    44609,\n    43521,\n    27328,\n    27520,\n    43841,\n    26880,\n    43457,\n    43137,\n    26688,\n    30720,\n    47297,\n    47489,\n    31040,\n    47873,\n    31680,\n    31360,\n    47681,\n    48641,\n    32448,\n    32640,\n    48961,\n    32e3,\n    48577,\n    48257,\n    31808,\n    46081,\n    29888,\n    30080,\n    46401,\n    30464,\n    47041,\n    46721,\n    30272,\n    29184,\n    45761,\n    45953,\n    29504,\n    45313,\n    29120,\n    28800,\n    45121,\n    20480,\n    37057,\n    37249,\n    20800,\n    37633,\n    21440,\n    21120,\n    37441,\n    38401,\n    22208,\n    22400,\n    38721,\n    21760,\n    38337,\n    38017,\n    21568,\n    39937,\n    23744,\n    23936,\n    40257,\n    24320,\n    40897,\n    40577,\n    24128,\n    23040,\n    39617,\n    39809,\n    23360,\n    39169,\n    22976,\n    22656,\n    38977,\n    34817,\n    18624,\n    18816,\n    35137,\n    19200,\n    35777,\n    35457,\n    19008,\n    19968,\n    36545,\n    36737,\n    20288,\n    36097,\n    19904,\n    19584,\n    35905,\n    17408,\n    33985,\n    34177,\n    17728,\n    34561,\n    18368,\n    18048,\n    34369,\n    33281,\n    17088,\n    17280,\n    33601,\n    16640,\n    33217,\n    32897,\n    16448\n  ];\n  function addVbr(v2, bitrate) {\n    v2.nVbrNumFrames++;\n    v2.sum += bitrate;\n    v2.seen++;\n    if (v2.seen < v2.want) {\n      return;\n    }\n    if (v2.pos < v2.size) {\n      v2.bag[v2.pos] = v2.sum;\n      v2.pos++;\n      v2.seen = 0;\n    }\n    if (v2.pos == v2.size) {\n      for (var i = 1; i < v2.size; i += 2) {\n        v2.bag[i / 2] = v2.bag[i];\n      }\n      v2.want *= 2;\n      v2.pos /= 2;\n    }\n  }\n  function xingSeekTable(v2, t) {\n    if (v2.pos <= 0)\n      return;\n    for (var i = 1; i < NUMTOCENTRIES; ++i) {\n      var j = i / NUMTOCENTRIES;\n      var act;\n      var sum;\n      var indx = 0 | Math.floor(j * v2.pos);\n      if (indx > v2.pos - 1)\n        indx = v2.pos - 1;\n      act = v2.bag[indx];\n      sum = v2.sum;\n      var seek_point = 0 | 256 * act / sum;\n      if (seek_point > 255)\n        seek_point = 255;\n      t[i] = 255 & seek_point;\n    }\n  }\n  this.addVbrFrame = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n    assert$1(gfc.VBR_seek_table.bag != null);\n    addVbr(gfc.VBR_seek_table, kbps);\n  };\n  function extractInteger(buf, bufPos) {\n    var x = buf[bufPos + 0] & 255;\n    x <<= 8;\n    x |= buf[bufPos + 1] & 255;\n    x <<= 8;\n    x |= buf[bufPos + 2] & 255;\n    x <<= 8;\n    x |= buf[bufPos + 3] & 255;\n    return x;\n  }\n  function createInteger(buf, bufPos, value) {\n    buf[bufPos + 0] = 255 & (value >> 24 & 255);\n    buf[bufPos + 1] = 255 & (value >> 16 & 255);\n    buf[bufPos + 2] = 255 & (value >> 8 & 255);\n    buf[bufPos + 3] = 255 & (value & 255);\n  }\n  function createShort(buf, bufPos, value) {\n    buf[bufPos + 0] = 255 & (value >> 8 & 255);\n    buf[bufPos + 1] = 255 & (value & 255);\n  }\n  function isVbrTag(buf, bufPos) {\n    return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1).equals(VBRTag0) || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1).equals(VBRTag1);\n  }\n  function shiftInBitsValue(x, n, v2) {\n    return 255 & (x << n | v2 & ~(-1 << n));\n  }\n  function setLameTagFrameHeader(gfp, buffer) {\n    var gfc = gfp.internal_flags;\n    buffer[0] = shiftInBitsValue(buffer[0], 8, 255);\n    buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n    buffer[1] = shiftInBitsValue(\n      buffer[1],\n      1,\n      gfp.out_samplerate < 16e3 ? 0 : 1\n    );\n    buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n    buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n    buffer[1] = shiftInBitsValue(buffer[1], 1, !gfp.error_protection ? 1 : 0);\n    buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n    buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n    buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n    buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n    buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n    buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n    buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n    buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n    buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n    buffer[0] = 255;\n    var abyte = 255 & (buffer[1] & 241);\n    var bitrate;\n    if (gfp.version == 1) {\n      bitrate = XING_BITRATE1;\n    } else {\n      if (gfp.out_samplerate < 16e3)\n        bitrate = XING_BITRATE25;\n      else\n        bitrate = XING_BITRATE2;\n    }\n    if (gfp.VBR == VbrMode.vbr_off)\n      bitrate = gfp.brate;\n    var bbyte;\n    if (gfp.free_format)\n      bbyte = 0;\n    else {\n      bbyte = 255 & 16 * lame.BitrateIndex(bitrate, gfp.version, gfp.out_samplerate);\n    }\n    if (gfp.version == 1) {\n      buffer[1] = 255 & (abyte | 10);\n      abyte = 255 & (buffer[2] & 13);\n      buffer[2] = 255 & (bbyte | abyte);\n    } else {\n      buffer[1] = 255 & (abyte | 2);\n      abyte = 255 & (buffer[2] & 13);\n      buffer[2] = 255 & (bbyte | abyte);\n    }\n  }\n  this.getVbrTag = function(buf) {\n    var pTagData = new VBRTagData();\n    var bufPos = 0;\n    pTagData.flags = 0;\n    var hId = buf[bufPos + 1] >> 3 & 1;\n    var hSrIndex = buf[bufPos + 2] >> 2 & 3;\n    var hMode = buf[bufPos + 3] >> 6 & 3;\n    var hBitrate = buf[bufPos + 2] >> 4 & 15;\n    hBitrate = Tables.bitrate_table[hId][hBitrate];\n    if (buf[bufPos + 1] >> 4 == 14) {\n      pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n    } else\n      pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n    if (hId != 0) {\n      if (hMode != 3)\n        bufPos += 32 + 4;\n      else\n        bufPos += 17 + 4;\n    } else {\n      if (hMode != 3)\n        bufPos += 17 + 4;\n      else\n        bufPos += 9 + 4;\n    }\n    if (!isVbrTag(buf, bufPos))\n      return null;\n    bufPos += 4;\n    pTagData.hId = hId;\n    var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n    bufPos += 4;\n    if ((head_flags & FRAMES_FLAG) != 0) {\n      pTagData.frames = extractInteger(buf, bufPos);\n      bufPos += 4;\n    }\n    if ((head_flags & BYTES_FLAG) != 0) {\n      pTagData.bytes = extractInteger(buf, bufPos);\n      bufPos += 4;\n    }\n    if ((head_flags & TOC_FLAG) != 0) {\n      if (pTagData.toc != null) {\n        for (var i = 0; i < NUMTOCENTRIES; i++) {\n          pTagData.toc[i] = buf[bufPos + i];\n        }\n      }\n      bufPos += NUMTOCENTRIES;\n    }\n    pTagData.vbrScale = -1;\n    if ((head_flags & VBR_SCALE_FLAG) != 0) {\n      pTagData.vbrScale = extractInteger(buf, bufPos);\n      bufPos += 4;\n    }\n    pTagData.headersize = (hId + 1) * 72e3 * hBitrate / pTagData.samprate;\n    bufPos += 21;\n    var encDelay = buf[bufPos + 0] << 4;\n    encDelay += buf[bufPos + 1] >> 4;\n    var encPadding = (buf[bufPos + 1] & 15) << 8;\n    encPadding += buf[bufPos + 2] & 255;\n    if (encDelay < 0 || encDelay > 3e3)\n      encDelay = -1;\n    if (encPadding < 0 || encPadding > 3e3)\n      encPadding = -1;\n    pTagData.encDelay = encDelay;\n    pTagData.encPadding = encPadding;\n    return pTagData;\n  };\n  this.InitVbrTag = function(gfp) {\n    var gfc = gfp.internal_flags;\n    var kbps_header;\n    if (gfp.version == 1) {\n      kbps_header = XING_BITRATE1;\n    } else {\n      if (gfp.out_samplerate < 16e3)\n        kbps_header = XING_BITRATE25;\n      else\n        kbps_header = XING_BITRATE2;\n    }\n    if (gfp.VBR == VbrMode.vbr_off)\n      kbps_header = gfp.brate;\n    var totalFrameSize = (gfp.version + 1) * 72e3 * kbps_header / gfp.out_samplerate;\n    var headerSize = gfc.sideinfo_len + LAMEHEADERSIZE;\n    gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n    if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n      gfp.bWriteVbrTag = false;\n      return;\n    }\n    gfc.VBR_seek_table.nVbrNumFrames = 0;\n    gfc.VBR_seek_table.nBytesWritten = 0;\n    gfc.VBR_seek_table.sum = 0;\n    gfc.VBR_seek_table.seen = 0;\n    gfc.VBR_seek_table.want = 1;\n    gfc.VBR_seek_table.pos = 0;\n    if (gfc.VBR_seek_table.bag == null) {\n      gfc.VBR_seek_table.bag = new int[400]();\n      gfc.VBR_seek_table.size = 400;\n    }\n    var buffer = new_byte$1(MAXFRAMESIZE);\n    setLameTagFrameHeader(gfp, buffer);\n    var n = gfc.VBR_seek_table.TotalFrameSize;\n    for (var i = 0; i < n; ++i) {\n      bs.add_dummy_byte(gfp, buffer[i] & 255, 1);\n    }\n  };\n  function crcUpdateLookup(value, crc) {\n    var tmp = crc ^ value;\n    crc = crc >> 8 ^ crc16Lookup[tmp & 255];\n    return crc;\n  }\n  this.updateMusicCRC = function(crc, buffer, bufferPos, size2) {\n    for (var i = 0; i < size2; ++i) {\n      crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n    }\n  };\n  function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n    var gfc = gfp.internal_flags;\n    var bytesWritten = 0;\n    var encDelay = gfp.encoder_delay;\n    var encPadding = gfp.encoder_padding;\n    var quality = 100 - 10 * gfp.VBR_q - gfp.quality;\n    var version2 = v.getLameVeryShortVersion();\n    var vbr;\n    var revision = 0;\n    var revMethod;\n    var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n    var lowpass = 0 | (gfp.lowpassfreq / 100 + 0.5 > 255 ? 255 : gfp.lowpassfreq / 100 + 0.5);\n    var peakSignalAmplitude = 0;\n    var radioReplayGain = 0;\n    var audiophileReplayGain = 0;\n    var noiseShaping = gfp.internal_flags.noise_shaping;\n    var stereoMode = 0;\n    var nonOptimal = 0;\n    var sourceFreq = 0;\n    var misc = 0;\n    var musicCRC = 0;\n    var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n    var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n    var noGapMore = false;\n    var noGapPrevious = false;\n    var noGapCount = gfp.internal_flags.nogap_total;\n    var noGapCurr = gfp.internal_flags.nogap_current;\n    var athType = gfp.ATHtype;\n    var flags = 0;\n    var abrBitrate;\n    switch (gfp.VBR) {\n      case vbr_abr:\n        abrBitrate = gfp.VBR_mean_bitrate_kbps;\n        break;\n      case vbr_off:\n        abrBitrate = gfp.brate;\n        break;\n      default:\n        abrBitrate = gfp.VBR_min_bitrate_kbps;\n    }\n    if (gfp.VBR.ordinal() < vbrTypeTranslator.length) {\n      vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n    } else\n      vbr = 0;\n    revMethod = 16 * revision + vbr;\n    if (gfc.findReplayGain) {\n      if (gfc.RadioGain > 510)\n        gfc.RadioGain = 510;\n      if (gfc.RadioGain < -510)\n        gfc.RadioGain = -510;\n      radioReplayGain = 8192;\n      radioReplayGain |= 3072;\n      if (gfc.RadioGain >= 0) {\n        radioReplayGain |= gfc.RadioGain;\n      } else {\n        radioReplayGain |= 512;\n        radioReplayGain |= -gfc.RadioGain;\n      }\n    }\n    if (gfc.findPeakSample) {\n      peakSignalAmplitude = Math.abs(\n        0 | gfc.PeakSample / 32767 * Math.pow(2, 23) + 0.5\n      );\n    }\n    if (noGapCount != -1) {\n      if (noGapCurr > 0)\n        noGapPrevious = true;\n      if (noGapCurr < noGapCount - 1)\n        noGapMore = true;\n    }\n    flags = athType + ((expNPsyTune ? 1 : 0) << 4) + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6) + ((noGapPrevious ? 1 : 0) << 7);\n    if (quality < 0)\n      quality = 0;\n    switch (gfp.mode) {\n      case MONO:\n        stereoMode = 0;\n        break;\n      case STEREO:\n        stereoMode = 1;\n        break;\n      case DUAL_CHANNEL:\n        stereoMode = 2;\n        break;\n      case JOINT_STEREO:\n        if (gfp.force_ms)\n          stereoMode = 4;\n        else\n          stereoMode = 3;\n        break;\n      case NOT_SET:\n      default:\n        stereoMode = 7;\n        break;\n    }\n    if (gfp.in_samplerate <= 32e3)\n      sourceFreq = 0;\n    else if (gfp.in_samplerate == 48e3)\n      sourceFreq = 2;\n    else if (gfp.in_samplerate > 48e3)\n      sourceFreq = 3;\n    else {\n      sourceFreq = 1;\n    }\n    if (gfp.short_blocks == ShortBlock.short_block_forced || gfp.short_blocks == ShortBlock.short_block_dispensed || gfp.lowpassfreq == -1 && gfp.highpassfreq == -1 || gfp.scale_left < gfp.scale_right || gfp.scale_left > gfp.scale_right || gfp.disable_reservoir && gfp.brate < 320 || gfp.noATH || gfp.ATHonly || athType == 0 || gfp.in_samplerate <= 32e3) {\n      nonOptimal = 1;\n    }\n    misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5) + (sourceFreq << 6);\n    musicCRC = gfc.nMusicCRC;\n    createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n    bytesWritten += 4;\n    for (var j = 0; j < 9; j++) {\n      streamBuffer[streamBufferPos + bytesWritten + j] = 255 & version2.charAt(j);\n    }\n    bytesWritten += 9;\n    streamBuffer[streamBufferPos + bytesWritten] = 255 & revMethod;\n    bytesWritten++;\n    streamBuffer[streamBufferPos + bytesWritten] = 255 & lowpass;\n    bytesWritten++;\n    createInteger(\n      streamBuffer,\n      streamBufferPos + bytesWritten,\n      peakSignalAmplitude\n    );\n    bytesWritten += 4;\n    createShort(streamBuffer, streamBufferPos + bytesWritten, radioReplayGain);\n    bytesWritten += 2;\n    createShort(\n      streamBuffer,\n      streamBufferPos + bytesWritten,\n      audiophileReplayGain\n    );\n    bytesWritten += 2;\n    streamBuffer[streamBufferPos + bytesWritten] = 255 & flags;\n    bytesWritten++;\n    if (abrBitrate >= 255)\n      streamBuffer[streamBufferPos + bytesWritten] = 255;\n    else\n      streamBuffer[streamBufferPos + bytesWritten] = 255 & abrBitrate;\n    bytesWritten++;\n    streamBuffer[streamBufferPos + bytesWritten] = 255 & encDelay >> 4;\n    streamBuffer[streamBufferPos + bytesWritten + 1] = 255 & (encDelay << 4) + (encPadding >> 8);\n    streamBuffer[streamBufferPos + bytesWritten + 2] = 255 & encPadding;\n    bytesWritten += 3;\n    streamBuffer[streamBufferPos + bytesWritten] = 255 & misc;\n    bytesWritten++;\n    streamBuffer[streamBufferPos + bytesWritten++] = 0;\n    createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n    bytesWritten += 2;\n    createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n    bytesWritten += 4;\n    createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n    bytesWritten += 2;\n    for (var i = 0; i < bytesWritten; i++) {\n      crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n    }\n    createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n    bytesWritten += 2;\n    return bytesWritten;\n  }\n  function skipId3v2(fpStream) {\n    fpStream.seek(0);\n    var id3v2Header = new_byte$1(10);\n    fpStream.readFully(id3v2Header);\n    var id3v2TagSize;\n    if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n      id3v2TagSize = ((id3v2Header[6] & 127) << 21 | (id3v2Header[7] & 127) << 14 | (id3v2Header[8] & 127) << 7 | id3v2Header[9] & 127) + id3v2Header.length;\n    } else {\n      id3v2TagSize = 0;\n    }\n    return id3v2TagSize;\n  }\n  this.getLameTagFrame = function(gfp, buffer) {\n    var gfc = gfp.internal_flags;\n    if (!gfp.bWriteVbrTag) {\n      return 0;\n    }\n    if (gfc.Class_ID != Lame.LAME_ID) {\n      return 0;\n    }\n    if (gfc.VBR_seek_table.pos <= 0) {\n      return 0;\n    }\n    if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n      return gfc.VBR_seek_table.TotalFrameSize;\n    }\n    Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n    setLameTagFrameHeader(gfp, buffer);\n    var toc = new_byte$1(NUMTOCENTRIES);\n    if (gfp.free_format) {\n      for (var i = 1; i < NUMTOCENTRIES; ++i)\n        toc[i] = 255 & 255 * i / 100;\n    } else {\n      xingSeekTable(gfc.VBR_seek_table, toc);\n    }\n    var streamIndex = gfc.sideinfo_len;\n    if (gfp.error_protection)\n      streamIndex -= 2;\n    if (gfp.VBR == VbrMode.vbr_off) {\n      buffer[streamIndex++] = 255 & VBRTag1.charAt(0);\n      buffer[streamIndex++] = 255 & VBRTag1.charAt(1);\n      buffer[streamIndex++] = 255 & VBRTag1.charAt(2);\n      buffer[streamIndex++] = 255 & VBRTag1.charAt(3);\n    } else {\n      buffer[streamIndex++] = 255 & VBRTag0.charAt(0);\n      buffer[streamIndex++] = 255 & VBRTag0.charAt(1);\n      buffer[streamIndex++] = 255 & VBRTag0.charAt(2);\n      buffer[streamIndex++] = 255 & VBRTag0.charAt(3);\n    }\n    createInteger(\n      buffer,\n      streamIndex,\n      FRAMES_FLAG + BYTES_FLAG + TOC_FLAG + VBR_SCALE_FLAG\n    );\n    streamIndex += 4;\n    createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n    streamIndex += 4;\n    var streamSize = gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize;\n    createInteger(buffer, streamIndex, 0 | streamSize);\n    streamIndex += 4;\n    System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n    streamIndex += toc.length;\n    if (gfp.error_protection) {\n      bs.CRC_writeheader(gfc, buffer);\n    }\n    var crc = 0;\n    for (var i = 0; i < streamIndex; i++)\n      crc = crcUpdateLookup(buffer[i], crc);\n    streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n    return gfc.VBR_seek_table.TotalFrameSize;\n  };\n  this.putVbrTag = function(gfp, stream) {\n    var gfc = gfp.internal_flags;\n    if (gfc.VBR_seek_table.pos <= 0)\n      return -1;\n    stream.seek(stream.length());\n    if (stream.length() == 0)\n      return -1;\n    var id3v2TagSize = skipId3v2(stream);\n    stream.seek(id3v2TagSize);\n    var buffer = new_byte$1(MAXFRAMESIZE);\n    var bytes = getLameTagFrame(gfp, buffer);\n    if (bytes > buffer.length) {\n      return -1;\n    }\n    if (bytes < 1) {\n      return 0;\n    }\n    stream.write(buffer, 0, bytes);\n    return 0;\n  };\n}\nvar new_byte = common.new_byte;\nvar assert = common.assert;\nfunction GetAudio() {\n  this.setModules = function(parse2, mpg2) {\n  };\n}\nfunction Parse() {\n  this.setModules = function(ver2, id32, pre2) {\n  };\n}\nfunction MPGLib() {\n}\nfunction ID3Tag() {\n  this.setModules = function(_bits, _ver) {\n  };\n}\nfunction Mp3Encoder$1(channels, samplerate, kbps) {\n  if (arguments.length != 3) {\n    console.error(\"WARN: Mp3Encoder(channels, samplerate, kbps) not specified\");\n    channels = 1;\n    samplerate = 44100;\n    kbps = 128;\n  }\n  var lame = new Lame$1();\n  var gaud = new GetAudio();\n  var ga = new GainAnalysis$1();\n  var bs = new BitStream$1();\n  var p2 = new Presets();\n  var qupvt = new QuantizePVT();\n  var qu = new Quantize();\n  var vbr = new VBRTag();\n  var ver = new Version();\n  var id3 = new ID3Tag();\n  var rv = new Reservoir();\n  var tak = new Takehiro();\n  var parse2 = new Parse();\n  var mpg = new MPGLib();\n  lame.setModules(ga, bs, p2, qupvt, qu, vbr, ver, id3, mpg);\n  bs.setModules(ga, mpg, ver, vbr);\n  id3.setModules(bs, ver);\n  p2.setModules(lame);\n  qu.setModules(bs, rv, qupvt, tak);\n  qupvt.setModules(tak, rv, lame.enc.psy);\n  rv.setModules(bs);\n  tak.setModules(qupvt);\n  vbr.setModules(lame, bs, ver);\n  gaud.setModules(parse2, mpg);\n  parse2.setModules(ver, id3, p2);\n  var gfp = lame.lame_init();\n  gfp.num_channels = channels;\n  gfp.in_samplerate = samplerate;\n  gfp.brate = kbps;\n  gfp.mode = MPEGMode.STEREO;\n  gfp.quality = 3;\n  gfp.bWriteVbrTag = false;\n  gfp.disable_reservoir = true;\n  gfp.write_id3tag_automatic = false;\n  lame.lame_init_params(gfp);\n  var maxSamples = 1152;\n  var mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n  var mp3buf = new_byte(mp3buf_size);\n  this.encodeBuffer = function(left, right) {\n    if (channels == 1) {\n      right = left;\n    }\n    assert(left.length == right.length);\n    if (left.length > maxSamples) {\n      maxSamples = left.length;\n      mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n      mp3buf = new_byte(mp3buf_size);\n    }\n    var _sz = lame.lame_encode_buffer(\n      gfp,\n      left,\n      right,\n      left.length,\n      mp3buf,\n      0,\n      mp3buf_size\n    );\n    return new Int8Array(mp3buf.subarray(0, _sz));\n  };\n  this.flush = function() {\n    var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n    return new Int8Array(mp3buf.subarray(0, _sz));\n  };\n}\nfunction fourccToInt(fourcc) {\n  return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\nfourccToInt(\"RIFF\");\nfourccToInt(\"WAVE\");\nfourccToInt(\"fmt \");\nfourccToInt(\"data\");\nclass Mp3Encoder {\n  constructor(config) {\n    this.bitRate = config.bitRate;\n    this.sampleRate = config.sampleRate;\n    this.dataBuffer = [];\n    this.encoder = new Mp3Encoder$1(1, this.sampleRate, this.bitRate);\n  }\n  encode(arrayBuffer) {\n    const maxSamples = 1152;\n    const samples = this._convertBuffer(arrayBuffer);\n    let remaining = samples.length;\n    for (let i = 0; remaining >= 0; i += maxSamples) {\n      const left = samples.subarray(i, i + maxSamples);\n      const buffer = this.encoder.encodeBuffer(left);\n      this.dataBuffer.push(new Int8Array(buffer));\n      remaining -= maxSamples;\n    }\n  }\n  finish() {\n    this.dataBuffer.push(this.encoder.flush());\n    const blob = new Blob(this.dataBuffer, { type: \"audio/mp3\" });\n    this.dataBuffer = [];\n    return {\n      id: Date.now(),\n      blob,\n      url: URL.createObjectURL(blob)\n    };\n  }\n  _floatTo16BitPCM(input, output) {\n    for (let i = 0; i < input.length; i++) {\n      const s = Math.max(-1, Math.min(1, input[i]));\n      output[i] = s < 0 ? s * 32768 : s * 32767;\n    }\n  }\n  _convertBuffer(arrayBuffer) {\n    const data = new Float32Array(arrayBuffer);\n    const out = new Int16Array(arrayBuffer.length);\n    this._floatTo16BitPCM(data, out);\n    return out;\n  }\n}\nclass Recorder {\n  constructor(options = {}) {\n    this.beforeRecording = options.beforeRecording;\n    this.pauseRecording = options.pauseRecording;\n    this.afterRecording = options.afterRecording;\n    this.micFailed = options.micFailed;\n    this.encoderOptions = {\n      bitRate: options.bitRate,\n      sampleRate: options.sampleRate\n    };\n    this.bufferSize = 4096;\n    this.records = [];\n    this.isPause = false;\n    this.isRecording = false;\n    this.duration = 0;\n    this.volume = 0;\n    this._duration = 0;\n  }\n  start() {\n    const constraints = {\n      video: false,\n      audio: {\n        channelCount: 1,\n        echoCancellation: false\n      }\n    };\n    this.beforeRecording && this.beforeRecording(\"start recording\");\n    navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this)).catch(this._micError.bind(this));\n    this.isPause = false;\n    this.isRecording = true;\n    if (!this.lameEncoder) {\n      this.lameEncoder = new Mp3Encoder(this.encoderOptions);\n    }\n  }\n  stop() {\n    this.stream.getTracks().forEach((track2) => track2.stop());\n    this.input.disconnect();\n    this.processor.disconnect();\n    this.context.close();\n    let record = null;\n    record = this.lameEncoder.finish();\n    record.duration = this.duration;\n    this.records.push(record);\n    this._duration = 0;\n    this.duration = 0;\n    this.isPause = false;\n    this.isRecording = false;\n    this.afterRecording && this.afterRecording(record);\n  }\n  pause() {\n    this.stream.getTracks().forEach((track2) => track2.stop());\n    this.input.disconnect();\n    this.processor.disconnect();\n    this._duration = this.duration;\n    this.isPause = true;\n    this.pauseRecording && this.pauseRecording(\"pause recording\");\n  }\n  _micCaptured(stream) {\n    this.context = new (window.AudioContext || window.webkitAudioContext)();\n    this.duration = this._duration;\n    this.input = this.context.createMediaStreamSource(stream);\n    this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);\n    this.stream = stream;\n    this.processor.onaudioprocess = (ev) => {\n      const sample = ev.inputBuffer.getChannelData(0);\n      let sum = 0;\n      if (this.lameEncoder) {\n        this.lameEncoder.encode(sample);\n      }\n      for (let i = 0; i < sample.length; ++i) {\n        sum += sample[i] * sample[i];\n      }\n      this.duration = parseFloat(this._duration) + parseFloat(this.context.currentTime.toFixed(2));\n      this.volume = Math.sqrt(sum / sample.length).toFixed(2);\n    };\n    this.input.connect(this.processor);\n    this.processor.connect(this.context.destination);\n  }\n  _micError(error) {\n    this.micFailed && this.micFailed(error);\n  }\n}\nvar isChromium = window.chrome;\nvar winNav = window.navigator;\nvar vendorName = winNav.vendor;\nvar isOpera = typeof window.opr !== \"undefined\";\nvar isIEedge = winNav.userAgent.indexOf(\"Edg\") > -1;\nvar isIOSChrome = winNav.userAgent.match(\"CriOS\");\nfunction detectChrome() {\n  if (isIOSChrome) {\n    return true;\n  } else if (isChromium !== null && typeof isChromium !== \"undefined\" && vendorName === \"Google Inc.\" && isOpera === false && isIEedge === false) {\n    return true;\n  } else {\n    return false;\n  }\n}\nfunction detectMobile() {\n  var userAgent = getUserAgent();\n  var userAgentPart = userAgent.substr(0, 4);\n  return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n    userAgent\n  ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(\n    userAgentPart\n  );\n}\nfunction getUserAgent() {\n  var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n  if (!userAgent)\n    throw new Error(\"Failed to look for user agent information.\");\n  return userAgent;\n}\nconst _sfc_main$a = {\n  name: \"RoomFooter\",\n  components: {\n    SvgIcon,\n    EmojiPickerContainer,\n    RoomFiles,\n    RoomMessageReply,\n    RoomUsersTag,\n    RoomEmojis,\n    RoomTemplatesText\n  },\n  directives: {\n    clickOutside: vClickOutside\n  },\n  props: {\n    room: { type: Object, required: true },\n    roomId: { type: [String, Number], required: true },\n    roomMessage: { type: String, default: null },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    textMessages: { type: Object, required: true },\n    showSendIcon: { type: Boolean, required: true },\n    showFiles: { type: Boolean, required: true },\n    showAudio: { type: Boolean, required: true },\n    showEmojis: { type: Boolean, required: true },\n    showFooter: { type: Boolean, required: true },\n    acceptedFiles: { type: String, required: true },\n    multipleFiles: { type: Boolean, default: true },\n    captureFiles: { type: String, required: true },\n    textareaActionEnabled: { type: Boolean, required: true },\n    textareaAutoFocus: { type: Boolean, required: true },\n    userTagsEnabled: { type: Boolean, required: true },\n    emojisSuggestionEnabled: { type: Boolean, required: true },\n    templatesText: { type: Array, default: null },\n    audioBitRate: { type: Number, required: true },\n    audioSampleRate: { type: Number, required: true },\n    initReplyMessage: { type: Object, default: null },\n    initEditMessage: { type: Object, default: null },\n    droppedFiles: { type: Array, default: null },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\n    \"edit-message\",\n    \"send-message\",\n    \"update-edited-message-id\",\n    \"textarea-action-handler\",\n    \"typing-message\"\n  ],\n  data() {\n    return {\n      message: \"\",\n      editedMessage: {},\n      messageReply: null,\n      cursorRangePosition: null,\n      files: [],\n      fileDialog: false,\n      selectUsersTagItem: null,\n      selectEmojiItem: null,\n      selectTemplatesTextItem: null,\n      format: \"mp3\",\n      activeUpOrDownEmojis: null,\n      activeUpOrDownUsersTag: null,\n      activeUpOrDownTemplatesText: null,\n      emojisDB: new Database({ dataSource: this.emojiDataSource }),\n      emojiOpened: false,\n      keepKeyboardOpen: false,\n      filteredEmojis: [],\n      filteredUsersTag: [],\n      selectedUsersTag: [],\n      filteredTemplatesText: [],\n      recorder: this.initRecorder(),\n      isRecording: false\n    };\n  },\n  computed: {\n    isMessageEmpty() {\n      return !this.files.length && !this.message.trim();\n    },\n    isFileLoading() {\n      return this.files.some((e) => e.loading);\n    },\n    recordedTime() {\n      return new Date(this.recorder.duration * 1e3).toISOString().substr(14, 5);\n    },\n    shadowFooter() {\n      return !!this.filteredEmojis.length || !!this.filteredUsersTag.length || !!this.filteredTemplatesText.length || !!this.files.length || !!this.messageReply;\n    }\n  },\n  watch: {\n    roomId() {\n      this.resetMessage(true, true);\n      if (this.roomMessage) {\n        this.message = this.roomMessage;\n        setTimeout(() => this.onChangeInput());\n      }\n    },\n    message(val) {\n      this.getTextareaRef().value = val;\n    },\n    roomMessage: {\n      immediate: true,\n      handler(val) {\n        if (val)\n          this.message = this.roomMessage;\n      }\n    },\n    editedMessage(val) {\n      this.$emit(\"update-edited-message-id\", val._id);\n    },\n    initReplyMessage(val) {\n      if (val) {\n        this.replyMessage(val);\n      }\n    },\n    initEditMessage(val) {\n      if (val) {\n        this.editMessage(val);\n      }\n    },\n    droppedFiles(val) {\n      if (val) {\n        this.onFileChange(val);\n      }\n    }\n  },\n  mounted() {\n    const isMobile = detectMobile();\n    let isComposed = true;\n    this.getTextareaRef().addEventListener(\"keyup\", (e) => {\n      if (e.key === \"Enter\" && !e.shiftKey && !this.fileDialog) {\n        if (isMobile) {\n          this.message = this.message + \"\\n\";\n          setTimeout(() => this.onChangeInput());\n        } else if (isComposed && !this.filteredEmojis.length && !this.filteredUsersTag.length && !this.filteredTemplatesText.length) {\n          this.sendMessage();\n        }\n      }\n      isComposed = !e.isComposing;\n      setTimeout(() => {\n        this.updateFooterLists();\n      }, 60);\n    });\n    this.getTextareaRef().addEventListener(\"click\", () => {\n      if (isMobile)\n        this.keepKeyboardOpen = true;\n      this.updateFooterLists();\n    });\n    this.getTextareaRef().addEventListener(\"blur\", () => {\n      setTimeout(() => {\n        this.resetFooterList();\n      }, 100);\n      if (isMobile)\n        setTimeout(() => this.keepKeyboardOpen = false);\n    });\n  },\n  beforeUnmount() {\n    this.stopRecorder();\n  },\n  methods: {\n    getTextareaRef() {\n      return this.$refs.roomTextarea;\n    },\n    focusTextarea(disableMobileFocus) {\n      if (detectMobile() && disableMobileFocus)\n        return;\n      if (!this.getTextareaRef())\n        return;\n      this.getTextareaRef().focus();\n      if (this.cursorRangePosition) {\n        setTimeout(() => {\n          const offset = detectChrome() ? 0 : 1;\n          this.getTextareaRef().setSelectionRange(\n            this.cursorRangePosition + offset,\n            this.cursorRangePosition + offset\n          );\n          this.cursorRangePosition = null;\n        });\n      }\n    },\n    onChangeInput() {\n      var _a, _b, _c;\n      if (((_a = this.getTextareaRef()) == null ? void 0 : _a.value) || ((_b = this.getTextareaRef()) == null ? void 0 : _b.value) === \"\") {\n        this.message = (_c = this.getTextareaRef()) == null ? void 0 : _c.value;\n      }\n      this.keepKeyboardOpen = true;\n      this.resizeTextarea();\n      this.$emit(\"typing-message\", this.message);\n    },\n    resizeTextarea() {\n      const el = this.getTextareaRef();\n      if (!el)\n        return;\n      const padding = window.getComputedStyle(el, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\");\n      el.style.height = 0;\n      el.style.height = el.scrollHeight - padding * 2 + \"px\";\n    },\n    escapeTextarea() {\n      if (this.filteredEmojis.length)\n        this.filteredEmojis = [];\n      else if (this.filteredUsersTag.length)\n        this.filteredUsersTag = [];\n      else if (this.filteredTemplatesText.length) {\n        this.filteredTemplatesText = [];\n      } else\n        this.resetMessage();\n    },\n    onPasteImage(pasteEvent) {\n      var _a;\n      const items = (_a = pasteEvent.clipboardData) == null ? void 0 : _a.items;\n      if (items) {\n        Array.from(items).forEach((item) => {\n          if (item.type.includes(\"image\")) {\n            const blob = item.getAsFile();\n            this.onFileChange([blob]);\n          }\n        });\n      }\n    },\n    updateActiveUpOrDown(event, direction) {\n      if (this.filteredEmojis.length) {\n        this.activeUpOrDownEmojis = direction;\n        event.preventDefault();\n      } else if (this.filteredUsersTag.length) {\n        this.activeUpOrDownUsersTag = direction;\n        event.preventDefault();\n      } else if (this.filteredTemplatesText.length) {\n        this.activeUpOrDownTemplatesText = direction;\n        event.preventDefault();\n      }\n    },\n    selectItem() {\n      if (this.filteredEmojis.length) {\n        this.selectEmojiItem = true;\n      } else if (this.filteredUsersTag.length) {\n        this.selectUsersTagItem = true;\n      } else if (this.filteredTemplatesText.length) {\n        this.selectTemplatesTextItem = true;\n      }\n    },\n    selectEmoji(emoji) {\n      this.selectEmojiItem = false;\n      if (!emoji)\n        return;\n      const { position, endPosition } = this.getCharPosition(\":\");\n      this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);\n      this.cursorRangePosition = position;\n      this.focusTextarea();\n    },\n    selectTemplateText(template) {\n      this.selectTemplatesTextItem = false;\n      if (!template)\n        return;\n      const { position, endPosition } = this.getCharPosition(\"/\");\n      const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n      this.message = this.message.substr(0, position - 1) + template.text + space + this.message.substr(endPosition, this.message.length - 1);\n      this.cursorRangePosition = position + template.text.length + space.length + 1;\n      this.focusTextarea();\n    },\n    addEmoji(emoji) {\n      this.message += emoji.unicode;\n      this.focusTextarea(true);\n    },\n    launchFilePicker() {\n      this.$refs.file.value = \"\";\n      this.$refs.file.click();\n    },\n    async onFileChange(files) {\n      this.fileDialog = true;\n      this.focusTextarea();\n      Array.from(files).forEach(async (file) => {\n        const fileURL = URL.createObjectURL(file);\n        const typeIndex = file.name.lastIndexOf(\".\");\n        this.files.push({\n          loading: true,\n          name: file.name.substring(0, typeIndex),\n          size: file.size,\n          type: file.type,\n          extension: file.name.substring(typeIndex + 1),\n          localUrl: fileURL\n        });\n        const blobFile = await fetch(fileURL).then((res) => res.blob());\n        let loadedFile = this.files.find((file2) => file2.localUrl === fileURL);\n        if (loadedFile) {\n          loadedFile.blob = blobFile;\n          loadedFile.loading = false;\n          delete loadedFile.loading;\n        }\n      });\n      setTimeout(() => this.fileDialog = false, 500);\n    },\n    removeFile(index) {\n      this.files.splice(index, 1);\n      this.focusTextarea();\n    },\n    toggleRecorder(recording) {\n      this.isRecording = recording;\n      if (!this.recorder.isRecording) {\n        setTimeout(() => this.recorder.start(), 200);\n      } else {\n        try {\n          this.recorder.stop();\n          const record = this.recorder.records[0];\n          this.files.push({\n            blob: record.blob,\n            name: `audio.${this.format}`,\n            size: record.blob.size,\n            duration: record.duration,\n            type: record.blob.type,\n            audio: true,\n            localUrl: URL.createObjectURL(record.blob)\n          });\n          this.recorder = this.initRecorder();\n          this.sendMessage();\n        } catch {\n          setTimeout(() => this.stopRecorder(), 100);\n        }\n      }\n    },\n    stopRecorder() {\n      if (this.recorder.isRecording) {\n        try {\n          this.recorder.stop();\n          this.recorder = this.initRecorder();\n        } catch {\n          setTimeout(() => this.stopRecorder(), 100);\n        }\n      }\n    },\n    textareaActionHandler() {\n      this.$emit(\"textarea-action-handler\", this.message);\n    },\n    sendMessage() {\n      var _a;\n      let message = this.message.trim();\n      if (!this.files.length && !message)\n        return;\n      if (this.isFileLoading)\n        return;\n      this.selectedUsersTag.forEach((user) => {\n        message = message.replace(\n          `@${user.username}`,\n          `<usertag>${user._id}</usertag>`\n        );\n      });\n      const files = this.files.length ? this.files : null;\n      if (this.editedMessage._id) {\n        if (this.editedMessage.content !== message || ((_a = this.editedMessage.files) == null ? void 0 : _a.length) || this.files.length) {\n          this.$emit(\"edit-message\", {\n            messageId: this.editedMessage._id,\n            newContent: message,\n            files,\n            replyMessage: this.messageReply,\n            usersTag: this.selectedUsersTag\n          });\n        }\n      } else {\n        this.$emit(\"send-message\", {\n          content: message,\n          files,\n          replyMessage: this.messageReply,\n          usersTag: this.selectedUsersTag\n        });\n      }\n      this.resetMessage(true);\n    },\n    editMessage(message) {\n      this.resetMessage();\n      this.editedMessage = { ...message };\n      let messageContent = message.content;\n      const initialContent = messageContent;\n      const firstTag = \"<usertag>\";\n      const secondTag = \"</usertag>\";\n      const usertags = [\n        ...messageContent.matchAll(new RegExp(firstTag, \"gi\"))\n      ].map((a) => a.index);\n      usertags.forEach((index) => {\n        const userId = initialContent.substring(\n          index + firstTag.length,\n          initialContent.indexOf(secondTag, index)\n        );\n        const user = this.room.users.find((user2) => user2._id === userId);\n        messageContent = messageContent.replace(\n          `${firstTag}${userId}${secondTag}`,\n          `@${(user == null ? void 0 : user.username) || \"unknown\"}`\n        );\n        this.selectUserTag(user, true);\n      });\n      this.message = messageContent;\n      if (message.files) {\n        this.files = [...message.files];\n      }\n      setTimeout(() => this.resizeTextarea());\n    },\n    replyMessage(message) {\n      this.editedMessage = {};\n      this.messageReply = message;\n      this.focusTextarea();\n    },\n    updateFooterLists() {\n      this.updateFooterList(\"@\");\n      this.updateFooterList(\":\");\n      this.updateFooterList(\"/\");\n    },\n    updateFooterList(tagChar) {\n      if (!this.getTextareaRef())\n        return;\n      if (tagChar === \":\" && !this.emojisSuggestionEnabled) {\n        return;\n      }\n      if (tagChar === \"@\" && (!this.userTagsEnabled || !this.room.users)) {\n        return;\n      }\n      if (tagChar === \"/\" && !this.templatesText) {\n        return;\n      }\n      const textareaCursorPosition = this.getTextareaRef().selectionStart;\n      let position = textareaCursorPosition;\n      while (position > 0 && this.message.charAt(position - 1) !== tagChar && (this.message.charAt(position - 1) !== \" \" || tagChar !== \":\")) {\n        position--;\n      }\n      const beforeTag = this.message.charAt(position - 2);\n      const notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);\n      if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === \" \" || notLetterNumber)) {\n        const query = this.message.substring(position, textareaCursorPosition);\n        if (tagChar === \":\") {\n          this.updateEmojis(query);\n        } else if (tagChar === \"@\") {\n          this.updateShowUsersTag(query);\n        } else if (tagChar === \"/\") {\n          this.updateShowTemplatesText(query);\n        }\n      } else {\n        this.resetFooterList(tagChar);\n      }\n    },\n    updateShowUsersTag(query) {\n      this.filteredUsersTag = filteredItems(\n        this.room.users,\n        \"username\",\n        query,\n        true\n      ).filter((user) => user._id !== this.currentUserId);\n    },\n    selectUserTag(user, editMode = false) {\n      this.selectUsersTagItem = false;\n      if (!user)\n        return;\n      const { position, endPosition } = this.getCharPosition(\"@\");\n      const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n      this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);\n      this.selectedUsersTag = [...this.selectedUsersTag, { ...user }];\n      if (!editMode) {\n        this.cursorRangePosition = position + user.username.length + space.length + 1;\n      }\n      this.focusTextarea();\n    },\n    updateShowTemplatesText(query) {\n      this.filteredTemplatesText = filteredItems(\n        this.templatesText,\n        \"tag\",\n        query,\n        true\n      );\n    },\n    getCharPosition(tagChar) {\n      const cursorPosition = this.getTextareaRef().selectionStart;\n      let position = cursorPosition;\n      while (position > 0 && this.message.charAt(position - 1) !== tagChar) {\n        position--;\n      }\n      const endPosition = this.getTextareaRef().selectionEnd;\n      return { position, endPosition };\n    },\n    async updateEmojis(query) {\n      if (!query)\n        return;\n      const emojis = await this.emojisDB.getEmojiBySearchQuery(query);\n      this.filteredEmojis = emojis.map((emoji) => emoji.unicode);\n    },\n    resetFooterList(tagChar = null) {\n      if (tagChar === \":\") {\n        this.filteredEmojis = [];\n      } else if (tagChar === \"@\") {\n        this.filteredUsersTag = [];\n      } else if (tagChar === \"/\") {\n        this.filteredTemplatesText = [];\n      } else {\n        this.filteredEmojis = [];\n        this.filteredUsersTag = [];\n        this.filteredTemplatesText = [];\n      }\n    },\n    resetMessage(disableMobileFocus = false, initRoom = false) {\n      if (!initRoom) {\n        this.$emit(\"typing-message\", null);\n      }\n      this.selectedUsersTag = [];\n      this.resetFooterList();\n      this.resetTextareaSize();\n      this.message = \"\";\n      this.editedMessage = {};\n      this.messageReply = null;\n      this.files = [];\n      this.emojiOpened = false;\n      this.preventKeyboardFromClosing();\n      if (this.textareaAutoFocus || !initRoom) {\n        setTimeout(() => this.focusTextarea(disableMobileFocus));\n      }\n    },\n    resetTextareaSize() {\n      if (this.getTextareaRef()) {\n        this.getTextareaRef().style.height = \"20px\";\n      }\n    },\n    preventKeyboardFromClosing() {\n      if (this.keepKeyboardOpen)\n        this.getTextareaRef().focus();\n    },\n    initRecorder() {\n      this.isRecording = false;\n      return new Recorder({\n        bitRate: Number(this.audioBitRate),\n        sampleRate: Number(this.audioSampleRate),\n        beforeRecording: null,\n        afterRecording: null,\n        pauseRecording: null,\n        micFailed: this.micFailed\n      });\n    },\n    micFailed() {\n      this.isRecording = false;\n      this.recorder = this.initRecorder();\n    }\n  }\n};\nconst _hoisted_1$a = {\n  key: 0,\n  class: \"vac-icon-textarea-left\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-dot-audio-record\" }, null, -1);\nconst _hoisted_3$8 = { class: \"vac-dot-audio-record-time\" };\nconst _hoisted_4$8 = [\"placeholder\"];\nconst _hoisted_5$6 = { class: \"vac-icon-textarea\" };\nconst _hoisted_6$3 = { key: 1 };\nconst _hoisted_7$3 = [\"multiple\", \"accept\", \"capture\"];\nfunction _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_room_emojis = resolveComponent(\"room-emojis\");\n  const _component_room_users_tag = resolveComponent(\"room-users-tag\");\n  const _component_room_templates_text = resolveComponent(\"room-templates-text\");\n  const _component_room_message_reply = resolveComponent(\"room-message-reply\");\n  const _component_room_files = resolveComponent(\"room-files\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n  const _directive_click_outside = resolveDirective(\"click-outside\");\n  return withDirectives((openBlock(), createElementBlock(\"div\", {\n    id: \"room-footer\",\n    class: normalizeClass([\"vac-room-footer\", {\n      \"vac-app-box-shadow\": $options.shadowFooter\n    }])\n  }, [\n    createVNode(_component_room_emojis, {\n      \"filtered-emojis\": $data.filteredEmojis,\n      \"select-item\": $data.selectEmojiItem,\n      \"active-up-or-down\": $data.activeUpOrDownEmojis,\n      onSelectEmoji: _cache[0] || (_cache[0] = ($event) => $options.selectEmoji($event)),\n      onActivateItem: _cache[1] || (_cache[1] = ($event) => $data.activeUpOrDownEmojis = 0)\n    }, null, 8, [\"filtered-emojis\", \"select-item\", \"active-up-or-down\"]),\n    createVNode(_component_room_users_tag, {\n      \"filtered-users-tag\": $data.filteredUsersTag,\n      \"select-item\": $data.selectUsersTagItem,\n      \"active-up-or-down\": $data.activeUpOrDownUsersTag,\n      onSelectUserTag: _cache[2] || (_cache[2] = ($event) => $options.selectUserTag($event)),\n      onActivateItem: _cache[3] || (_cache[3] = ($event) => $data.activeUpOrDownUsersTag = 0)\n    }, null, 8, [\"filtered-users-tag\", \"select-item\", \"active-up-or-down\"]),\n    createVNode(_component_room_templates_text, {\n      \"filtered-templates-text\": $data.filteredTemplatesText,\n      \"select-item\": $data.selectTemplatesTextItem,\n      \"active-up-or-down\": $data.activeUpOrDownTemplatesText,\n      onSelectTemplateText: _cache[4] || (_cache[4] = ($event) => $options.selectTemplateText($event)),\n      onActivateItem: _cache[5] || (_cache[5] = ($event) => $data.activeUpOrDownTemplatesText = 0)\n    }, null, 8, [\"filtered-templates-text\", \"select-item\", \"active-up-or-down\"]),\n    createVNode(_component_room_message_reply, {\n      room: $props.room,\n      \"message-reply\": $data.messageReply,\n      \"text-formatting\": $props.textFormatting,\n      \"link-options\": $props.linkOptions,\n      onResetMessage: $options.resetMessage\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (i, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"room\", \"message-reply\", \"text-formatting\", \"link-options\", \"onResetMessage\"]),\n    createVNode(_component_room_files, {\n      files: $data.files,\n      onRemoveFile: $options.removeFile,\n      onResetMessage: $options.resetMessage\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (i, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"files\", \"onRemoveFile\", \"onResetMessage\"]),\n    createBaseVNode(\"div\", {\n      class: normalizeClass([\"vac-box-footer\", { \"vac-box-footer-border\": !$data.files.length }])\n    }, [\n      $props.showAudio && !$data.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$a, [\n        $data.isRecording ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n          createBaseVNode(\"div\", {\n            class: \"vac-svg-button vac-icon-audio-stop\",\n            onClick: _cache[6] || (_cache[6] = (...args) => $options.stopRecorder && $options.stopRecorder(...args))\n          }, [\n            renderSlot(_ctx.$slots, \"audio-stop-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"close-outline\" })\n            ])\n          ]),\n          _hoisted_2$8,\n          createBaseVNode(\"div\", _hoisted_3$8, toDisplayString($options.recordedTime), 1),\n          createBaseVNode(\"div\", {\n            class: \"vac-svg-button vac-icon-audio-confirm\",\n            onClick: _cache[7] || (_cache[7] = ($event) => $options.toggleRecorder(false))\n          }, [\n            renderSlot(_ctx.$slots, \"audio-check-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"checkmark\" })\n            ])\n          ])\n        ], 64)) : (openBlock(), createElementBlock(\"div\", {\n          key: 1,\n          class: \"vac-svg-button\",\n          onClick: _cache[8] || (_cache[8] = ($event) => $options.toggleRecorder(true))\n        }, [\n          renderSlot(_ctx.$slots, \"microphone-icon\", {}, () => [\n            createVNode(_component_svg_icon, {\n              name: \"microphone\",\n              class: \"vac-icon-microphone\"\n            })\n          ])\n        ]))\n      ])) : createCommentVNode(\"\", true),\n      createBaseVNode(\"textarea\", {\n        id: \"roomTextarea\",\n        ref: \"roomTextarea\",\n        placeholder: $props.textMessages.TYPE_MESSAGE,\n        class: normalizeClass([\"vac-textarea\", {\n          \"vac-textarea-outline\": $data.editedMessage._id\n        }]),\n        style: {\n          \"min-height\": `20px`,\n          \"padding-left\": `12px`\n        },\n        onInput: _cache[9] || (_cache[9] = (...args) => $options.onChangeInput && $options.onChangeInput(...args)),\n        onKeydown: [\n          _cache[10] || (_cache[10] = withKeys((...args) => $options.escapeTextarea && $options.escapeTextarea(...args), [\"esc\"])),\n          _cache[11] || (_cache[11] = withKeys(withModifiers((...args) => $options.selectItem && $options.selectItem(...args), [\"exact\", \"prevent\"]), [\"enter\"])),\n          _cache[13] || (_cache[13] = withKeys(withModifiers(() => {\n          }, [\"exact\", \"prevent\"]), [\"tab\"])),\n          _cache[14] || (_cache[14] = withKeys((...args) => $options.selectItem && $options.selectItem(...args), [\"tab\"])),\n          _cache[15] || (_cache[15] = withKeys(($event) => $options.updateActiveUpOrDown($event, -1), [\"up\"])),\n          _cache[16] || (_cache[16] = withKeys(($event) => $options.updateActiveUpOrDown($event, 1), [\"down\"]))\n        ],\n        onPaste: _cache[12] || (_cache[12] = (...args) => $options.onPasteImage && $options.onPasteImage(...args))\n      }, null, 42, _hoisted_4$8),\n      createBaseVNode(\"div\", _hoisted_5$6, [\n        $data.editedMessage._id ? (openBlock(), createElementBlock(\"div\", {\n          key: 0,\n          class: \"vac-svg-button\",\n          onClick: _cache[17] || (_cache[17] = (...args) => $options.resetMessage && $options.resetMessage(...args))\n        }, [\n          renderSlot(_ctx.$slots, \"edit-close-icon\", {}, () => [\n            createVNode(_component_svg_icon, { name: \"close-outline\" })\n          ])\n        ])) : createCommentVNode(\"\", true),\n        $props.showEmojis ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_6$3, [\n          renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.addEmoji }), () => [\n            createVNode(_component_emoji_picker_container, {\n              \"emoji-opened\": $data.emojiOpened,\n              \"position-top\": true,\n              \"emoji-data-source\": $props.emojiDataSource,\n              onAddEmoji: $options.addEmoji,\n              onOpenEmoji: _cache[18] || (_cache[18] = ($event) => $data.emojiOpened = $event)\n            }, {\n              \"emoji-picker-icon\": withCtx(() => [\n                renderSlot(_ctx.$slots, \"emoji-picker-icon\")\n              ]),\n              _: 3\n            }, 8, [\"emoji-opened\", \"emoji-data-source\", \"onAddEmoji\"])\n          ])\n        ])), [\n          [_directive_click_outside, () => $data.emojiOpened = false]\n        ]) : createCommentVNode(\"\", true),\n        $props.showFiles ? (openBlock(), createElementBlock(\"div\", {\n          key: 2,\n          class: \"vac-svg-button\",\n          onClick: _cache[19] || (_cache[19] = (...args) => $options.launchFilePicker && $options.launchFilePicker(...args))\n        }, [\n          renderSlot(_ctx.$slots, \"paperclip-icon\", {}, () => [\n            createVNode(_component_svg_icon, { name: \"paperclip\" })\n          ])\n        ])) : createCommentVNode(\"\", true),\n        $props.textareaActionEnabled ? (openBlock(), createElementBlock(\"div\", {\n          key: 3,\n          class: \"vac-svg-button\",\n          onClick: _cache[20] || (_cache[20] = (...args) => $options.textareaActionHandler && $options.textareaActionHandler(...args))\n        }, [\n          renderSlot(_ctx.$slots, \"custom-action-icon\", {}, () => [\n            createVNode(_component_svg_icon, { name: \"deleted\" })\n          ])\n        ])) : createCommentVNode(\"\", true),\n        $props.showFiles ? (openBlock(), createElementBlock(\"input\", {\n          key: 4,\n          ref: \"file\",\n          type: \"file\",\n          multiple: $props.multipleFiles ? true : null,\n          accept: $props.acceptedFiles,\n          capture: $props.captureFiles,\n          style: { \"display\": \"none\" },\n          onChange: _cache[21] || (_cache[21] = ($event) => $options.onFileChange($event.target.files))\n        }, null, 40, _hoisted_7$3)) : createCommentVNode(\"\", true),\n        $props.showSendIcon ? (openBlock(), createElementBlock(\"div\", {\n          key: 5,\n          class: normalizeClass([\"vac-svg-button\", { \"vac-send-disabled\": $options.isMessageEmpty }]),\n          onClick: _cache[22] || (_cache[22] = (...args) => $options.sendMessage && $options.sendMessage(...args))\n        }, [\n          renderSlot(_ctx.$slots, \"send-icon\", {}, () => [\n            createVNode(_component_svg_icon, {\n              name: \"send\",\n              param: $options.isMessageEmpty || $options.isFileLoading ? \"disabled\" : \"\"\n            }, null, 8, [\"param\"])\n          ])\n        ], 2)) : createCommentVNode(\"\", true)\n      ])\n    ], 2)\n  ], 2)), [\n    [vShow, Object.keys($props.room).length && $props.showFooter]\n  ]);\n}\nvar RoomFooter = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"render\", _sfc_render$a]]);\nconst _sfc_main$9 = {\n  name: \"MessageReply\",\n  components: { AudioPlayer, SvgIcon, FormatMessage },\n  props: {\n    message: { type: Object, required: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    roomUsers: { type: Array, required: true }\n  },\n  computed: {\n    replyUsername() {\n      const { senderId } = this.message.replyMessage;\n      const replyUser = this.roomUsers.find((user) => user._id === senderId);\n      return replyUser ? replyUser.username : \"\";\n    },\n    firstFile() {\n      var _a, _b;\n      return ((_b = (_a = this.message.replyMessage) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.message.replyMessage.files[0] : {};\n    },\n    isAudio() {\n      return isAudioFile(this.firstFile);\n    },\n    isImage() {\n      return isImageFile(this.firstFile);\n    },\n    isVideo() {\n      return isVideoFile(this.firstFile);\n    },\n    isOtherFile() {\n      var _a;\n      return ((_a = this.message.replyMessage.files) == null ? void 0 : _a.length) && !this.isAudio && !this.isVideo && !this.isImage;\n    }\n  }\n};\nconst _hoisted_1$9 = { class: \"vac-reply-message\" };\nconst _hoisted_2$7 = { class: \"vac-reply-username\" };\nconst _hoisted_3$7 = {\n  key: 0,\n  class: \"vac-image-reply-container\"\n};\nconst _hoisted_4$7 = {\n  key: 1,\n  class: \"vac-video-reply-container\"\n};\nconst _hoisted_5$5 = { controls: \"\" };\nconst _hoisted_6$2 = [\"src\"];\nconst _hoisted_7$2 = {\n  key: 3,\n  class: \"vac-file-container\"\n};\nconst _hoisted_8$1 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_9$1 = {\n  key: 0,\n  class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_10$1 = { class: \"vac-reply-content\" };\nfunction _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_audio_player = resolveComponent(\"audio-player\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_format_message = resolveComponent(\"format-message\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$9, [\n    createBaseVNode(\"div\", _hoisted_2$7, toDisplayString($options.replyUsername), 1),\n    $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_3$7, [\n      createBaseVNode(\"div\", {\n        class: \"vac-message-image vac-message-image-reply\",\n        style: normalizeStyle({\n          \"background-image\": `url('${$options.firstFile.url}')`\n        })\n      }, null, 4)\n    ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_4$7, [\n      createBaseVNode(\"video\", _hoisted_5$5, [\n        createBaseVNode(\"source\", {\n          src: $options.firstFile.url\n        }, null, 8, _hoisted_6$2)\n      ])\n    ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n      key: 2,\n      src: $options.firstFile.url,\n      \"message-selection-enabled\": false,\n      onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => _ctx.progressTime = $event),\n      onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.hoverAudioProgress = $event)\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (idx, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_7$2, [\n      createBaseVNode(\"div\", null, [\n        renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n          createVNode(_component_svg_icon, { name: \"file\" })\n        ])\n      ]),\n      createBaseVNode(\"div\", _hoisted_8$1, toDisplayString($options.firstFile.name), 1),\n      $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_9$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n    ])) : createCommentVNode(\"\", true),\n    createBaseVNode(\"div\", _hoisted_10$1, [\n      createVNode(_component_format_message, {\n        \"message-id\": $props.message.replyMessage._id,\n        content: $props.message.replyMessage.content,\n        users: $props.roomUsers,\n        \"text-formatting\": $props.textFormatting,\n        \"link-options\": $props.linkOptions,\n        reply: true\n      }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n    ])\n  ]);\n}\nvar MessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$9]]);\nconst _sfc_main$8 = {\n  name: \"ProgressBar\",\n  props: {\n    progress: { type: Number, default: 0 }\n  },\n  data() {\n    const radius = 35;\n    const stroke = 4;\n    const normalizedRadius = radius - stroke * 2;\n    const circumference = normalizedRadius * 2 * Math.PI;\n    return {\n      radius,\n      stroke,\n      normalizedRadius,\n      circumference\n    };\n  },\n  computed: {\n    strokeDashoffset() {\n      return this.circumference - this.progress / 100 * this.circumference;\n    }\n  }\n};\nconst _hoisted_1$8 = {\n  ref: \"progress\",\n  class: \"vac-progress-wrapper\"\n};\nconst _hoisted_2$6 = [\"height\", \"width\"];\nconst _hoisted_3$6 = [\"stroke-dasharray\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4$6 = { class: \"vac-progress-text\" };\nconst _hoisted_5$4 = /* @__PURE__ */ createBaseVNode(\"span\", { class: \"vac-progress-pourcent\" }, \"%\", -1);\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createBlock(Transition, {\n    name: \"vac-fade-spinner\",\n    appear: \"\"\n  }, {\n    default: withCtx(() => [\n      createBaseVNode(\"div\", _hoisted_1$8, [\n        (openBlock(), createElementBlock(\"svg\", {\n          height: $data.radius * 2,\n          width: $data.radius * 2\n        }, [\n          createBaseVNode(\"circle\", {\n            stroke: \"rgba(255, 255, 255, 0.7)\",\n            \"stroke-dasharray\": $data.circumference + \" \" + $data.circumference,\n            style: normalizeStyle({\n              strokeDashoffset: $options.strokeDashoffset,\n              strokeLinecap: \"round\"\n            }),\n            \"stroke-width\": $data.stroke,\n            fill: \"transparent\",\n            r: $data.normalizedRadius,\n            cx: $data.radius,\n            cy: $data.radius\n          }, null, 12, _hoisted_3$6)\n        ], 8, _hoisted_2$6)),\n        createBaseVNode(\"div\", {\n          class: \"vac-progress-content\",\n          style: normalizeStyle({\n            height: $data.radius * 2 - 19 + \"px\",\n            width: $data.radius * 2 - 19 + \"px\"\n          })\n        }, [\n          createBaseVNode(\"div\", _hoisted_4$6, [\n            createTextVNode(toDisplayString($props.progress), 1),\n            _hoisted_5$4\n          ])\n        ], 4)\n      ], 512)\n    ]),\n    _: 1\n  });\n}\nvar ProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n  name: \"MessageFile\",\n  components: { SvgIcon, Loader, ProgressBar },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    message: { type: Object, required: true },\n    file: { type: Object, required: true },\n    index: { type: Number, required: true },\n    messageSelectionEnabled: { type: Boolean, required: true }\n  },\n  emits: [\"open-file\"],\n  data() {\n    return {\n      imageResponsive: \"\",\n      imageLoading: false,\n      imageHover: false\n    };\n  },\n  computed: {\n    isImageLoading() {\n      return this.file.url.indexOf(\"blob:http\") !== -1 || this.imageLoading;\n    },\n    isImage() {\n      return isImageFile(this.file);\n    },\n    isVideo() {\n      return isVideoFile(this.file);\n    }\n  },\n  watch: {\n    file: {\n      immediate: true,\n      handler() {\n        this.checkImgLoad();\n      }\n    }\n  },\n  mounted() {\n    const ref = this.$refs[\"imageRef\" + this.index];\n    if (ref) {\n      this.imageResponsive = {\n        maxHeight: ref.clientWidth - 18,\n        loaderTop: ref.clientHeight / 2 - 9\n      };\n    }\n  },\n  methods: {\n    checkImgLoad() {\n      if (!isImageFile(this.file))\n        return;\n      this.imageLoading = true;\n      const image = new Image();\n      image.src = this.file.url;\n      image.addEventListener(\"load\", () => this.imageLoading = false);\n    },\n    openFile(event, action) {\n      if (!this.messageSelectionEnabled) {\n        event.stopPropagation();\n        this.$emit(\"open-file\", { file: this.file, action });\n      }\n    }\n  }\n};\nconst _hoisted_1$7 = { class: \"vac-message-file-container\" };\nconst _hoisted_2$5 = {\n  key: 0,\n  class: \"vac-image-buttons\"\n};\nconst _hoisted_3$5 = { controls: \"\" };\nconst _hoisted_4$5 = [\"src\"];\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_progress_bar = resolveComponent(\"progress-bar\");\n  const _component_loader = resolveComponent(\"loader\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$7, [\n    $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n      key: 0,\n      ref: \"imageRef\" + $props.index,\n      class: \"vac-message-image-container\",\n      onMouseover: _cache[2] || (_cache[2] = ($event) => $data.imageHover = true),\n      onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imageHover = false),\n      onClick: _cache[4] || (_cache[4] = ($event) => $options.openFile($event, \"preview\"))\n    }, [\n      $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n        key: 0,\n        progress: $props.file.progress,\n        style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n      }, null, 8, [\"progress\", \"style\"])) : (openBlock(), createBlock(_component_loader, {\n        key: 1,\n        show: $options.isImageLoading,\n        type: \"message-file\",\n        \"message-id\": $props.message._id,\n        style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n      }, createSlots({ _: 2 }, [\n        renderList(_ctx.$slots, (idx, name) => {\n          return {\n            name,\n            fn: withCtx((data) => [\n              renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n            ])\n          };\n        })\n      ]), 1032, [\"show\", \"message-id\", \"style\"])),\n      createBaseVNode(\"div\", {\n        class: normalizeClass([\"vac-message-image\", {\n          \"vac-blur-loading\": $options.isImageLoading && $props.message.senderId === $props.currentUserId\n        }]),\n        style: normalizeStyle({\n          \"background-image\": `url('${$options.isImageLoading ? $props.file.preview || $props.file.url : $props.file.url}')`,\n          \"max-height\": `${$data.imageResponsive.maxHeight}px`\n        })\n      }, [\n        createVNode(Transition, { name: \"vac-fade-image\" }, {\n          default: withCtx(() => [\n            !$props.messageSelectionEnabled && $data.imageHover && !$options.isImageLoading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n              createBaseVNode(\"div\", {\n                class: \"vac-svg-button vac-button-view\",\n                onClick: _cache[0] || (_cache[0] = ($event) => $options.openFile($event, \"preview\"))\n              }, [\n                renderSlot(_ctx.$slots, \"eye-icon_\" + $props.message._id, {}, () => [\n                  createVNode(_component_svg_icon, { name: \"eye\" })\n                ])\n              ]),\n              createBaseVNode(\"div\", {\n                class: \"vac-svg-button vac-button-download\",\n                onClick: _cache[1] || (_cache[1] = ($event) => $options.openFile($event, \"download\"))\n              }, [\n                renderSlot(_ctx.$slots, \"document-icon_\" + $props.message._id, {}, () => [\n                  createVNode(_component_svg_icon, { name: \"document\" })\n                ])\n              ])\n            ])) : createCommentVNode(\"\", true)\n          ]),\n          _: 3\n        })\n      ], 6)\n    ], 544)) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", {\n      key: 1,\n      class: \"vac-video-container\",\n      onClick: _cache[5] || (_cache[5] = withModifiers(($event) => $options.openFile($event, \"preview\"), [\"prevent\"]))\n    }, [\n      $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n        key: 0,\n        progress: $props.file.progress\n      }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n      createBaseVNode(\"video\", _hoisted_3$5, [\n        createBaseVNode(\"source\", {\n          src: $props.file.url\n        }, null, 8, _hoisted_4$5)\n      ])\n    ])) : createCommentVNode(\"\", true)\n  ]);\n}\nvar MessageFile = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n  name: \"MessageFiles\",\n  components: { SvgIcon, FormatMessage, ProgressBar, MessageFile },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    message: { type: Object, required: true },\n    roomUsers: { type: Array, required: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    messageSelectionEnabled: { type: Boolean, required: true }\n  },\n  emits: [\"open-file\", \"open-user-tag\"],\n  computed: {\n    imageVideoFiles() {\n      return this.message.files.filter((file) => isImageVideoFile(file));\n    },\n    otherFiles() {\n      return this.message.files.filter((file) => !isImageVideoFile(file));\n    }\n  },\n  methods: {\n    openFile(event, file, action) {\n      if (!this.messageSelectionEnabled) {\n        event.stopPropagation();\n        this.$emit(\"open-file\", { file, action });\n      }\n    }\n  }\n};\nconst _hoisted_1$6 = { class: \"vac-message-files-container\" };\nconst _hoisted_2$4 = [\"onClick\"];\nconst _hoisted_3$4 = { class: \"vac-svg-button\" };\nconst _hoisted_4$4 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_5$3 = {\n  key: 0,\n  class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_message_file = resolveComponent(\"message-file\");\n  const _component_progress_bar = resolveComponent(\"progress-bar\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_format_message = resolveComponent(\"format-message\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n    (openBlock(true), createElementBlock(Fragment, null, renderList($options.imageVideoFiles, (file, i) => {\n      return openBlock(), createElementBlock(\"div\", {\n        key: i + \"iv\"\n      }, [\n        createVNode(_component_message_file, {\n          file,\n          \"current-user-id\": $props.currentUserId,\n          message: $props.message,\n          index: i,\n          \"message-selection-enabled\": $props.messageSelectionEnabled,\n          onOpenFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"open-file\", $event))\n        }, createSlots({ _: 2 }, [\n          renderList(_ctx.$slots, (idx, name) => {\n            return {\n              name,\n              fn: withCtx((data) => [\n                renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n              ])\n            };\n          })\n        ]), 1032, [\"file\", \"current-user-id\", \"message\", \"index\", \"message-selection-enabled\"])\n      ]);\n    }), 128)),\n    (openBlock(true), createElementBlock(Fragment, null, renderList($options.otherFiles, (file, i) => {\n      return openBlock(), createElementBlock(\"div\", {\n        key: i + \"a\",\n        class: \"vac-file-wrapper\"\n      }, [\n        file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n          key: 0,\n          progress: file.progress,\n          style: { top: \"44px\" }\n        }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n        createBaseVNode(\"div\", {\n          class: normalizeClass([\"vac-file-container\", { \"vac-file-container-progress\": file.progress >= 0 }]),\n          onClick: ($event) => $options.openFile($event, file, \"download\")\n        }, [\n          createBaseVNode(\"div\", _hoisted_3$4, [\n            renderSlot(_ctx.$slots, \"document-icon\", {}, () => [\n              createVNode(_component_svg_icon, { name: \"document\" })\n            ])\n          ]),\n          createBaseVNode(\"div\", _hoisted_4$4, toDisplayString(file.name), 1),\n          file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_5$3, toDisplayString(file.extension), 1)) : createCommentVNode(\"\", true)\n        ], 10, _hoisted_2$4)\n      ]);\n    }), 128)),\n    createVNode(_component_format_message, {\n      \"message-id\": $props.message._id,\n      content: $props.message.content,\n      users: $props.roomUsers,\n      \"text-formatting\": $props.textFormatting,\n      \"link-options\": $props.linkOptions,\n      onOpenUserTag: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"open-user-tag\", $event))\n    }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n  ]);\n}\nvar MessageFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n  name: \"MessageActions\",\n  components: { SvgIcon, EmojiPickerContainer },\n  directives: {\n    clickOutside: vClickOutside\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    message: { type: Object, required: true },\n    messageActions: { type: Array, required: true },\n    showReactionEmojis: { type: Boolean, required: true },\n    messageHover: { type: Boolean, required: true },\n    hoverMessageId: { type: [String, Number], default: null },\n    hoverAudioProgress: { type: Boolean, required: true },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\n    \"update-emoji-opened\",\n    \"update-options-opened\",\n    \"update-message-hover\",\n    \"message-action-handler\",\n    \"send-message-reaction\"\n  ],\n  data() {\n    return {\n      menuOptionsTop: 0,\n      optionsOpened: false,\n      optionsClosing: false,\n      emojiOpened: false\n    };\n  },\n  computed: {\n    isMessageActions() {\n      return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;\n    },\n    isMessageReactions() {\n      return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;\n    },\n    filteredMessageActions() {\n      return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter((message) => !message.onlyMe);\n    }\n  },\n  watch: {\n    emojiOpened(val) {\n      this.$emit(\"update-emoji-opened\", val);\n      if (val)\n        this.optionsOpened = false;\n    },\n    optionsOpened(val) {\n      this.$emit(\"update-options-opened\", val);\n    }\n  },\n  methods: {\n    openOptions() {\n      if (this.optionsClosing)\n        return;\n      this.optionsOpened = !this.optionsOpened;\n      if (!this.optionsOpened)\n        return;\n      setTimeout(() => {\n        const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n        if (!roomFooterRef || !this.$refs.menuOptions || !this.$refs.actionIcon) {\n          return;\n        }\n        const menuOptionsTop = this.$refs.menuOptions.getBoundingClientRect().height;\n        const actionIconTop = this.$refs.actionIcon.getBoundingClientRect().top;\n        const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n        const optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;\n        if (optionsTopPosition)\n          this.menuOptionsTop = 30;\n        else\n          this.menuOptionsTop = -menuOptionsTop;\n      });\n    },\n    closeOptions() {\n      this.optionsOpened = false;\n      this.optionsClosing = true;\n      this.updateMessageHover();\n      setTimeout(() => this.optionsClosing = false, 100);\n    },\n    openEmoji() {\n      this.emojiOpened = !this.emojiOpened;\n    },\n    closeEmoji() {\n      this.emojiOpened = false;\n      this.updateMessageHover();\n    },\n    updateMessageHover() {\n      if (this.hoverMessageId !== this.message._id) {\n        this.$emit(\"update-message-hover\", false);\n      }\n    },\n    messageActionHandler(action) {\n      this.closeOptions();\n      this.$emit(\"message-action-handler\", action);\n    },\n    sendMessageReaction(emoji, reaction) {\n      this.$emit(\"send-message-reaction\", { emoji, reaction });\n      this.closeEmoji();\n    }\n  }\n};\nconst _hoisted_1$5 = { class: \"vac-message-actions-wrapper\" };\nconst _hoisted_2$3 = { key: \"3\" };\nconst _hoisted_3$3 = { class: \"vac-menu-list\" };\nconst _hoisted_4$3 = [\"onClick\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n  const _directive_click_outside = resolveDirective(\"click-outside\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n    createBaseVNode(\"div\", {\n      class: \"vac-options-container\",\n      style: normalizeStyle({\n        display: $props.hoverAudioProgress ? \"none\" : \"initial\",\n        width: $options.filteredMessageActions.length && $props.showReactionEmojis ? \"70px\" : \"45px\"\n      })\n    }, [\n      createVNode(TransitionGroup, {\n        name: \"vac-slide-left\",\n        tag: \"span\"\n      }, {\n        default: withCtx(() => [\n          $options.isMessageActions || $options.isMessageReactions ? (openBlock(), createElementBlock(\"div\", {\n            key: \"1\",\n            class: normalizeClass([\"vac-blur-container\", {\n              \"vac-options-me\": $props.message.senderId === $props.currentUserId\n            }])\n          }, null, 2)) : createCommentVNode(\"\", true),\n          $options.isMessageActions ? (openBlock(), createElementBlock(\"div\", {\n            ref: \"actionIcon\",\n            key: \"2\",\n            class: \"vac-svg-button vac-message-options\",\n            onClick: _cache[0] || (_cache[0] = (...args) => $options.openOptions && $options.openOptions(...args))\n          }, [\n            renderSlot(_ctx.$slots, \"dropdown-icon_\" + $props.message._id, {}, () => [\n              createVNode(_component_svg_icon, {\n                name: \"dropdown\",\n                param: \"message\"\n              })\n            ])\n          ], 512)) : createCommentVNode(\"\", true),\n          $options.isMessageReactions ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n            renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.sendMessageReaction }), () => [\n              createVNode(_component_emoji_picker_container, {\n                class: \"vac-message-emojis\",\n                style: normalizeStyle({ right: $options.isMessageActions ? \"30px\" : \"5px\" }),\n                \"emoji-opened\": $data.emojiOpened,\n                \"emoji-reaction\": true,\n                \"position-right\": $props.message.senderId === $props.currentUserId,\n                \"message-id\": $props.message._id,\n                \"emoji-data-source\": $props.emojiDataSource,\n                onAddEmoji: $options.sendMessageReaction,\n                onOpenEmoji: $options.openEmoji\n              }, createSlots({ _: 2 }, [\n                renderList(_ctx.$slots, (idx, name) => {\n                  return {\n                    name,\n                    fn: withCtx((data) => [\n                      renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                    ])\n                  };\n                })\n              ]), 1032, [\"style\", \"emoji-opened\", \"position-right\", \"message-id\", \"emoji-data-source\", \"onAddEmoji\", \"onOpenEmoji\"])\n            ])\n          ])), [\n            [_directive_click_outside, $options.closeEmoji]\n          ]) : createCommentVNode(\"\", true)\n        ]),\n        _: 3\n      })\n    ], 4),\n    $options.filteredMessageActions.length ? (openBlock(), createBlock(Transition, {\n      key: 0,\n      name: $props.message.senderId === $props.currentUserId ? \"vac-slide-left\" : \"vac-slide-right\"\n    }, {\n      default: withCtx(() => [\n        $data.optionsOpened ? withDirectives((openBlock(), createElementBlock(\"div\", {\n          key: 0,\n          ref: \"menuOptions\",\n          class: normalizeClass([\"vac-menu-options\", {\n            \"vac-menu-left\": $props.message.senderId !== $props.currentUserId\n          }]),\n          style: normalizeStyle({ top: `${$data.menuOptionsTop}px` })\n        }, [\n          createBaseVNode(\"div\", _hoisted_3$3, [\n            (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredMessageActions, (action) => {\n              return openBlock(), createElementBlock(\"div\", {\n                key: action.name\n              }, [\n                createBaseVNode(\"div\", {\n                  class: \"vac-menu-item\",\n                  onClick: ($event) => $options.messageActionHandler(action)\n                }, toDisplayString(action.title), 9, _hoisted_4$3)\n              ]);\n            }), 128))\n          ])\n        ], 6)), [\n          [_directive_click_outside, $options.closeOptions]\n        ]) : createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    }, 8, [\"name\"])) : createCommentVNode(\"\", true)\n  ]);\n}\nvar MessageActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n  name: \"MessageReactions\",\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    message: { type: Object, required: true }\n  },\n  emits: [\"send-message-reaction\"],\n  methods: {\n    sendMessageReaction(emoji, reaction) {\n      this.$emit(\"send-message-reaction\", { emoji, reaction });\n    }\n  }\n};\nconst _hoisted_1$4 = [\"onClick\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n  return !$props.message.deleted ? (openBlock(), createBlock(TransitionGroup, {\n    key: 0,\n    name: \"vac-slide-left\",\n    tag: \"span\"\n  }, {\n    default: withCtx(() => [\n      (openBlock(true), createElementBlock(Fragment, null, renderList($props.message.reactions, (reaction, key) => {\n        return withDirectives((openBlock(), createElementBlock(\"button\", {\n          key: key + 0,\n          class: normalizeClass([\"vac-button-reaction\", {\n            \"vac-reaction-me\": reaction.indexOf($props.currentUserId) !== -1\n          }]),\n          style: normalizeStyle({\n            float: $props.message.senderId === $props.currentUserId ? \"right\" : \"left\"\n          }),\n          onClick: ($event) => $options.sendMessageReaction({ unicode: key }, reaction)\n        }, [\n          createTextVNode(toDisplayString(key), 1),\n          createBaseVNode(\"span\", null, toDisplayString(reaction.length), 1)\n        ], 14, _hoisted_1$4)), [\n          [vShow, reaction.length]\n        ]);\n      }), 128))\n    ]),\n    _: 1\n  })) : createCommentVNode(\"\", true);\n}\nvar MessageReactions = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nfunction roomsValidation(obj) {\n  const roomsValidate = [\n    { key: \"roomId\", type: [\"string\", \"number\"] },\n    { key: \"roomName\", type: [\"string\"] },\n    { key: \"users\", type: [\"array\"] }\n  ];\n  const validate = (obj2, props) => {\n    return props.every((prop) => {\n      let validType = false;\n      if (prop.type[0] === \"array\" && Array.isArray(obj2[prop.key])) {\n        validType = true;\n      } else if (prop.type.find((t) => t === typeof obj2[prop.key])) {\n        validType = true;\n      }\n      return validType && checkObjectValid(obj2, prop.key);\n    });\n  };\n  if (!validate(obj, roomsValidate)) {\n    throw new Error(\n      \"Rooms object is not valid! Must contain at least roomId[String, Number], roomName[String] and users[Array]\"\n    );\n  }\n}\nfunction partcipantsValidation(obj) {\n  const participantsValidate = [\n    { key: \"_id\", type: [\"string\", \"number\"] },\n    { key: \"username\", type: [\"string\"] }\n  ];\n  const validate = (obj2, props) => {\n    return props.every((prop) => {\n      const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n      return validType && checkObjectValid(obj2, prop.key);\n    });\n  };\n  if (!validate(obj, participantsValidate)) {\n    throw new Error(\n      \"Participants object is not valid! Must contain at least _id[String, Number] and username[String]\"\n    );\n  }\n}\nfunction messagesValidation(obj) {\n  const messagesValidate = [\n    { key: \"_id\", type: [\"string\", \"number\"] },\n    { key: \"senderId\", type: [\"string\", \"number\"] }\n  ];\n  const validate = (obj2, props) => {\n    return props.every((prop) => {\n      const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n      return validType && checkObjectValid(obj2, prop.key);\n    });\n  };\n  if (!validate(obj, messagesValidate)) {\n    throw new Error(\n      \"Messages object is not valid! Must contain at least _id[String, Number] and senderId[String, Number]\"\n    );\n  }\n}\nfunction checkObjectValid(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== void 0;\n}\nconst _sfc_main$3 = {\n  name: \"RoomMessage\",\n  components: {\n    SvgIcon,\n    FormatMessage,\n    AudioPlayer,\n    MessageReply,\n    MessageFiles,\n    MessageActions,\n    MessageReactions\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    textMessages: { type: Object, required: true },\n    index: { type: Number, required: true },\n    message: { type: Object, required: true },\n    messages: { type: Array, required: true },\n    editedMessageId: { type: [String, Number], default: null },\n    roomUsers: { type: Array, default: () => [] },\n    messageActions: { type: Array, required: true },\n    newMessages: { type: Array, default: () => [] },\n    showReactionEmojis: { type: Boolean, required: true },\n    showNewMessagesDivider: { type: Boolean, required: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    usernameOptions: { type: Object, required: true },\n    messageSelectionEnabled: { type: Boolean, required: true },\n    selectedMessages: { type: Array, default: () => [] },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\n    \"message-added\",\n    \"open-file\",\n    \"open-user-tag\",\n    \"open-failed-message\",\n    \"message-action-handler\",\n    \"send-message-reaction\",\n    \"select-message\",\n    \"unselect-message\"\n  ],\n  data() {\n    return {\n      hoverMessageId: null,\n      messageHover: false,\n      optionsOpened: false,\n      emojiOpened: false,\n      newMessage: {},\n      progressTime: \"- : -\",\n      hoverAudioProgress: false\n    };\n  },\n  computed: {\n    showUsername() {\n      if (!this.usernameOptions.currentUser && this.message.senderId === this.currentUserId) {\n        return false;\n      } else {\n        return this.roomUsers.length >= this.usernameOptions.minUsers;\n      }\n    },\n    showDate() {\n      return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;\n    },\n    messageOffset() {\n      return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;\n    },\n    isMessageHover() {\n      return this.editedMessageId === this.message._id || this.hoverMessageId === this.message._id;\n    },\n    isAudio() {\n      var _a;\n      return (_a = this.message.files) == null ? void 0 : _a.some((file) => isAudioFile(file));\n    },\n    isCheckmarkVisible() {\n      return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);\n    },\n    hasCurrentUserAvatar() {\n      return this.messages.some(\n        (message) => message.senderId === this.currentUserId && message.avatar\n      );\n    },\n    hasSenderUserAvatar() {\n      return this.messages.some(\n        (message) => message.senderId !== this.currentUserId && message.avatar\n      );\n    },\n    isMessageSelected() {\n      return this.messageSelectionEnabled && !!this.selectedMessages.find(\n        (message) => message._id === this.message._id\n      );\n    }\n  },\n  watch: {\n    newMessages: {\n      immediate: true,\n      deep: true,\n      handler(val) {\n        if (!val.length || !this.showNewMessagesDivider) {\n          this.newMessage = {};\n          return;\n        }\n        this.newMessage = val.reduce(\n          (res, obj) => obj.index < res.index ? obj : res\n        );\n      }\n    },\n    messageSelectionEnabled() {\n      this.resetMessageHover();\n    }\n  },\n  mounted() {\n    messagesValidation(this.message);\n    this.$emit(\"message-added\", {\n      message: this.message,\n      index: this.index,\n      ref: this.$refs.message\n    });\n  },\n  methods: {\n    onHoverMessage() {\n      if (!this.messageSelectionEnabled) {\n        this.messageHover = true;\n        if (this.canEditMessage())\n          this.hoverMessageId = this.message._id;\n      }\n    },\n    canEditMessage() {\n      return !this.message.deleted;\n    },\n    onLeaveMessage() {\n      if (!this.messageSelectionEnabled) {\n        if (!this.optionsOpened && !this.emojiOpened)\n          this.messageHover = false;\n        this.hoverMessageId = null;\n      }\n    },\n    resetMessageHover() {\n      this.messageHover = false;\n      this.hoverMessageId = null;\n    },\n    openFile(file) {\n      this.$emit(\"open-file\", { message: this.message, file });\n    },\n    openUserTag(user) {\n      this.$emit(\"open-user-tag\", { user });\n    },\n    messageActionHandler(action) {\n      this.resetMessageHover();\n      setTimeout(() => {\n        this.$emit(\"message-action-handler\", { action, message: this.message });\n      }, 300);\n    },\n    sendMessageReaction({ emoji, reaction }) {\n      this.$emit(\"send-message-reaction\", {\n        messageId: this.message._id,\n        reaction: emoji,\n        remove: reaction && reaction.indexOf(this.currentUserId) !== -1\n      });\n      this.messageHover = false;\n    },\n    selectMessage() {\n      if (this.messageSelectionEnabled) {\n        if (this.isMessageSelected) {\n          this.$emit(\"unselect-message\", this.message._id);\n        } else {\n          this.$emit(\"select-message\", this.message);\n        }\n      }\n    }\n  }\n};\nconst _hoisted_1$3 = [\"id\"];\nconst _hoisted_2$2 = {\n  key: 0,\n  class: \"vac-card-info vac-card-date\"\n};\nconst _hoisted_3$2 = {\n  key: 1,\n  class: \"vac-line-new\"\n};\nconst _hoisted_4$2 = {\n  key: 2,\n  class: \"vac-card-info vac-card-system\"\n};\nconst _hoisted_5$2 = {\n  key: 1,\n  class: \"vac-avatar-offset\"\n};\nconst _hoisted_6$1 = {\n  key: 0,\n  class: \"vac-progress-time\"\n};\nconst _hoisted_7$1 = { class: \"vac-text-timestamp\" };\nconst _hoisted_8 = {\n  key: 0,\n  class: \"vac-icon-edited\"\n};\nconst _hoisted_9 = { key: 1 };\nconst _hoisted_10 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-failure-text\" }, \"!\", -1);\nconst _hoisted_11 = [\n  _hoisted_10\n];\nconst _hoisted_12 = {\n  key: 3,\n  class: \"vac-avatar-current-offset\"\n};\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_format_message = resolveComponent(\"format-message\");\n  const _component_message_reply = resolveComponent(\"message-reply\");\n  const _component_message_files = resolveComponent(\"message-files\");\n  const _component_audio_player = resolveComponent(\"audio-player\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_message_actions = resolveComponent(\"message-actions\");\n  const _component_message_reactions = resolveComponent(\"message-reactions\");\n  return openBlock(), createElementBlock(\"div\", {\n    id: $props.message._id,\n    ref: \"message\",\n    class: \"vac-message-wrapper\"\n  }, [\n    $options.showDate ? (openBlock(), createElementBlock(\"div\", _hoisted_2$2, toDisplayString($props.message.date), 1)) : createCommentVNode(\"\", true),\n    $data.newMessage._id === $props.message._id ? (openBlock(), createElementBlock(\"div\", _hoisted_3$2, toDisplayString($props.textMessages.NEW_MESSAGES), 1)) : createCommentVNode(\"\", true),\n    $props.message.system ? (openBlock(), createElementBlock(\"div\", _hoisted_4$2, [\n      renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n        createVNode(_component_format_message, {\n          \"message-id\": $props.message._id,\n          content: $props.message.content,\n          deleted: !!$props.message.deleted,\n          users: $props.roomUsers,\n          \"text-messages\": $props.textMessages,\n          \"text-formatting\": $props.textFormatting,\n          \"link-options\": $props.linkOptions,\n          onOpenUserTag: $options.openUserTag\n        }, createSlots({ _: 2 }, [\n          renderList(_ctx.$slots, (idx, name) => {\n            return {\n              name,\n              fn: withCtx((data) => [\n                renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n              ])\n            };\n          })\n        ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\", \"onOpenUserTag\"])\n      ])\n    ])) : (openBlock(), createElementBlock(\"div\", {\n      key: 3,\n      class: normalizeClass([\"vac-message-box\", { \"vac-offset-current\": $props.message.senderId === $props.currentUserId }]),\n      onClick: _cache[8] || (_cache[8] = (...args) => $options.selectMessage && $options.selectMessage(...args))\n    }, [\n      renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n        $props.message.senderId !== $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 0 }, () => [\n          $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: \"vac-avatar\",\n            style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n          }, null, 4)) : createCommentVNode(\"\", true)\n        ]) : createCommentVNode(\"\", true),\n        $options.hasSenderUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_5$2)) : createCommentVNode(\"\", true),\n        createBaseVNode(\"div\", {\n          class: normalizeClass([\"vac-message-container\", {\n            \"vac-message-container-offset\": $options.messageOffset\n          }])\n        }, [\n          createBaseVNode(\"div\", {\n            class: normalizeClass([\"vac-message-card\", {\n              \"vac-message-highlight\": $options.isMessageHover,\n              \"vac-message-current\": $props.message.senderId === $props.currentUserId,\n              \"vac-message-deleted\": $props.message.deleted,\n              \"vac-item-clickable\": $props.messageSelectionEnabled,\n              \"vac-message-selected\": $options.isMessageSelected\n            }]),\n            onMouseover: _cache[5] || (_cache[5] = (...args) => $options.onHoverMessage && $options.onHoverMessage(...args)),\n            onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.onLeaveMessage && $options.onLeaveMessage(...args))\n          }, [\n            $options.showUsername ? (openBlock(), createElementBlock(\"div\", {\n              key: 0,\n              class: normalizeClass([\"vac-text-username\", {\n                \"vac-username-reply\": !$props.message.deleted && $props.message.replyMessage\n              }])\n            }, [\n              createBaseVNode(\"span\", null, toDisplayString($props.message.username), 1)\n            ], 2)) : createCommentVNode(\"\", true),\n            !$props.message.deleted && $props.message.replyMessage ? (openBlock(), createBlock(_component_message_reply, {\n              key: 1,\n              message: $props.message,\n              \"room-users\": $props.roomUsers,\n              \"text-formatting\": $props.textFormatting,\n              \"link-options\": $props.linkOptions\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (i, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1032, [\"message\", \"room-users\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n            !!$props.message.deleted || !$props.message.files || !$props.message.files.length ? (openBlock(), createBlock(_component_format_message, {\n              key: 2,\n              \"message-id\": $props.message._id,\n              content: $props.message.content,\n              deleted: !!$props.message.deleted,\n              users: $props.roomUsers,\n              \"text-formatting\": $props.textFormatting,\n              \"text-messages\": $props.textMessages,\n              \"link-options\": $props.linkOptions,\n              onOpenUserTag: $options.openUserTag\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (idx, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-formatting\", \"text-messages\", \"link-options\", \"onOpenUserTag\"])) : !$options.isAudio || $props.message.files.length > 1 ? (openBlock(), createBlock(_component_message_files, {\n              key: 3,\n              \"current-user-id\": $props.currentUserId,\n              message: $props.message,\n              \"room-users\": $props.roomUsers,\n              \"text-formatting\": $props.textFormatting,\n              \"link-options\": $props.linkOptions,\n              \"message-selection-enabled\": $props.messageSelectionEnabled,\n              onOpenFile: $options.openFile,\n              onOpenUserTag: $options.openUserTag\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (i, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1032, [\"current-user-id\", \"message\", \"room-users\", \"text-formatting\", \"link-options\", \"message-selection-enabled\", \"onOpenFile\", \"onOpenUserTag\"])) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [\n              createVNode(_component_audio_player, {\n                \"message-id\": $props.message._id,\n                src: $props.message.files[0].url,\n                \"message-selection-enabled\": $props.messageSelectionEnabled,\n                onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => $data.progressTime = $event),\n                onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => $data.hoverAudioProgress = $event)\n              }, createSlots({ _: 2 }, [\n                renderList(_ctx.$slots, (i, name) => {\n                  return {\n                    name,\n                    fn: withCtx((data) => [\n                      renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                    ])\n                  };\n                })\n              ]), 1032, [\"message-id\", \"src\", \"message-selection-enabled\"]),\n              !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_6$1, toDisplayString($data.progressTime), 1)) : createCommentVNode(\"\", true)\n            ], 64)),\n            createBaseVNode(\"div\", _hoisted_7$1, [\n              $props.message.edited && !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n                renderSlot(_ctx.$slots, \"pencil-icon_\" + $props.message._id, {}, () => [\n                  createVNode(_component_svg_icon, { name: \"pencil\" })\n                ])\n              ])) : createCommentVNode(\"\", true),\n              createBaseVNode(\"span\", null, toDisplayString($props.message.timestamp), 1),\n              $options.isCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n                renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.message._id, {}, () => [\n                  createVNode(_component_svg_icon, {\n                    name: $props.message.distributed ? \"double-checkmark\" : \"checkmark\",\n                    param: $props.message.seen ? \"seen\" : \"\",\n                    class: \"vac-icon-check\"\n                  }, null, 8, [\"name\", \"param\"])\n                ])\n              ])) : createCommentVNode(\"\", true)\n            ]),\n            createVNode(_component_message_actions, {\n              \"current-user-id\": $props.currentUserId,\n              message: $props.message,\n              \"message-actions\": $props.messageActions,\n              \"show-reaction-emojis\": $props.showReactionEmojis,\n              \"message-hover\": $data.messageHover,\n              \"hover-message-id\": $data.hoverMessageId,\n              \"hover-audio-progress\": $data.hoverAudioProgress,\n              \"emoji-data-source\": $props.emojiDataSource,\n              onUpdateMessageHover: _cache[2] || (_cache[2] = ($event) => $data.messageHover = $event),\n              onUpdateOptionsOpened: _cache[3] || (_cache[3] = ($event) => $data.optionsOpened = $event),\n              onUpdateEmojiOpened: _cache[4] || (_cache[4] = ($event) => $data.emojiOpened = $event),\n              onMessageActionHandler: $options.messageActionHandler,\n              onSendMessageReaction: $options.sendMessageReaction\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (i, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1032, [\"current-user-id\", \"message\", \"message-actions\", \"show-reaction-emojis\", \"message-hover\", \"hover-message-id\", \"hover-audio-progress\", \"emoji-data-source\", \"onMessageActionHandler\", \"onSendMessageReaction\"])\n          ], 34),\n          createVNode(_component_message_reactions, {\n            \"current-user-id\": $props.currentUserId,\n            message: $props.message,\n            onSendMessageReaction: $options.sendMessageReaction\n          }, null, 8, [\"current-user-id\", \"message\", \"onSendMessageReaction\"])\n        ], 2),\n        renderSlot(_ctx.$slots, \"message-failure_\" + $props.message._id, {}, () => [\n          $props.message.failure && $props.message.senderId === $props.currentUserId ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: normalizeClass([\"vac-failure-container vac-svg-button\", {\n              \"vac-failure-container-avatar\": $props.message.avatar && $props.message.senderId === $props.currentUserId\n            }]),\n            onClick: _cache[7] || (_cache[7] = ($event) => _ctx.$emit(\"open-failed-message\", { message: $props.message }))\n          }, _hoisted_11, 2)) : createCommentVNode(\"\", true)\n        ]),\n        $props.message.senderId === $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 2 }, () => [\n          $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: \"vac-avatar vac-avatar-current\",\n            style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n          }, null, 4)) : createCommentVNode(\"\", true)\n        ]) : createCommentVNode(\"\", true),\n        $options.hasCurrentUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_12)) : createCommentVNode(\"\", true)\n      ])\n    ], 2))\n  ], 8, _hoisted_1$3);\n}\nvar RoomMessage = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n  name: \"ChatRoom\",\n  components: {\n    Loader,\n    SvgIcon,\n    RoomHeader,\n    RoomFooter,\n    RoomMessage\n  },\n  props: {\n    currentUserId: { type: [String, Number], required: true },\n    textMessages: { type: Object, required: true },\n    singleRoom: { type: Boolean, required: true },\n    showRoomsList: { type: Boolean, required: true },\n    isMobile: { type: Boolean, required: true },\n    rooms: { type: Array, required: true },\n    roomId: { type: [String, Number], required: true },\n    loadFirstRoom: { type: Boolean, required: true },\n    messages: { type: Array, required: true },\n    roomMessage: { type: String, default: null },\n    messagesLoaded: { type: Boolean, required: true },\n    menuActions: { type: Array, required: true },\n    messageActions: { type: Array, required: true },\n    messageSelectionActions: { type: Array, required: true },\n    autoScroll: { type: Object, required: true },\n    showSendIcon: { type: Boolean, required: true },\n    showFiles: { type: Boolean, required: true },\n    showAudio: { type: Boolean, required: true },\n    audioBitRate: { type: Number, required: true },\n    audioSampleRate: { type: Number, required: true },\n    showEmojis: { type: Boolean, required: true },\n    showReactionEmojis: { type: Boolean, required: true },\n    showNewMessagesDivider: { type: Boolean, required: true },\n    showFooter: { type: Boolean, required: true },\n    acceptedFiles: { type: String, required: true },\n    captureFiles: { type: String, required: true },\n    multipleFiles: { type: Boolean, default: true },\n    textFormatting: { type: Object, required: true },\n    linkOptions: { type: Object, required: true },\n    loadingRooms: { type: Boolean, required: true },\n    roomInfoEnabled: { type: Boolean, required: true },\n    textareaActionEnabled: { type: Boolean, required: true },\n    textareaAutoFocus: { type: Boolean, required: true },\n    userTagsEnabled: { type: Boolean, required: true },\n    emojisSuggestionEnabled: { type: Boolean, required: true },\n    scrollDistance: { type: Number, required: true },\n    templatesText: { type: Array, default: null },\n    usernameOptions: { type: Object, required: true },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\n    \"toggle-rooms-list\",\n    \"room-info\",\n    \"menu-action-handler\",\n    \"message-selection-action-handler\",\n    \"edit-message\",\n    \"send-message\",\n    \"delete-message\",\n    \"message-action-handler\",\n    \"fetch-messages\",\n    \"send-message-reaction\",\n    \"typing-message\",\n    \"open-file\",\n    \"open-user-tag\",\n    \"open-failed-message\",\n    \"textarea-action-handler\"\n  ],\n  data() {\n    return {\n      editedMessageId: null,\n      initReplyMessage: null,\n      initEditMessage: null,\n      loadingMessages: false,\n      observer: null,\n      showLoader: true,\n      loadingMoreMessages: false,\n      scrollIcon: false,\n      scrollMessagesCount: 0,\n      newMessages: [],\n      messageSelectionEnabled: false,\n      selectedMessages: [],\n      droppedFiles: []\n    };\n  },\n  computed: {\n    room() {\n      return this.rooms.find((room) => room.roomId === this.roomId) || {};\n    },\n    showNoMessages() {\n      return this.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;\n    },\n    showNoRoom() {\n      const noRoomSelected = !this.rooms.length && !this.loadingRooms || !this.roomId && !this.loadFirstRoom;\n      if (noRoomSelected) {\n        this.updateLoadingMessages(false);\n      }\n      return noRoomSelected;\n    },\n    showMessagesStarted() {\n      return this.messages.length && this.messagesLoaded;\n    }\n  },\n  watch: {\n    roomId: {\n      immediate: true,\n      handler() {\n        this.onRoomChanged();\n      }\n    },\n    messages: {\n      deep: true,\n      handler(newVal, oldVal) {\n        newVal.forEach((message, i) => {\n          if (this.showNewMessagesDivider && !message.seen && message.senderId !== this.currentUserId) {\n            this.newMessages.push({\n              _id: message._id,\n              index: i\n            });\n          }\n        });\n        if ((oldVal == null ? void 0 : oldVal.length) === (newVal == null ? void 0 : newVal.length) - 1) {\n          this.newMessages = [];\n        }\n        setTimeout(() => this.loadingMoreMessages = false);\n      }\n    },\n    messagesLoaded(val) {\n      if (val)\n        this.updateLoadingMessages(false);\n    }\n  },\n  mounted() {\n    this.newMessages = [];\n  },\n  methods: {\n    updateLoadingMessages(val) {\n      this.loadingMessages = val;\n      if (!val) {\n        setTimeout(() => this.initIntersectionObserver());\n      }\n    },\n    initIntersectionObserver() {\n      if (this.observer) {\n        this.showLoader = true;\n        this.observer.disconnect();\n      }\n      const loader = this.$el.querySelector(\"#infinite-loader-messages\");\n      if (loader) {\n        const options = {\n          root: this.$el.querySelector(\"#messages-list\"),\n          rootMargin: `${this.scrollDistance}px`,\n          threshold: 0\n        };\n        this.observer = new IntersectionObserver((entries) => {\n          if (entries[0].isIntersecting) {\n            this.loadMoreMessages();\n          }\n        }, options);\n        this.observer.observe(loader);\n      }\n    },\n    preventTopScroll() {\n      const container = this.$refs.scrollContainer;\n      const prevScrollHeight = container.scrollHeight;\n      const observer = new ResizeObserver((_) => {\n        if (container.scrollHeight !== prevScrollHeight) {\n          if (this.$refs.scrollContainer) {\n            this.$refs.scrollContainer.scrollTo({\n              top: container.scrollHeight - prevScrollHeight\n            });\n            observer.disconnect();\n          }\n        }\n      });\n      for (var i = 0; i < container.children.length; i++) {\n        observer.observe(container.children[i]);\n      }\n    },\n    touchStart(touchEvent) {\n      if (this.singleRoom)\n        return;\n      if (touchEvent.changedTouches.length === 1) {\n        const posXStart = touchEvent.changedTouches[0].clientX;\n        const posYStart = touchEvent.changedTouches[0].clientY;\n        addEventListener(\n          \"touchend\",\n          (touchEvent2) => this.touchEnd(touchEvent2, posXStart, posYStart),\n          { once: true }\n        );\n      }\n    },\n    touchEnd(touchEvent, posXStart, posYStart) {\n      if (touchEvent.changedTouches.length === 1) {\n        const posXEnd = touchEvent.changedTouches[0].clientX;\n        const posYEnd = touchEvent.changedTouches[0].clientY;\n        const swippedRight = posXEnd - posXStart > 100;\n        const swippedVertically = Math.abs(posYEnd - posYStart) > 50;\n        if (swippedRight && !swippedVertically) {\n          this.$emit(\"toggle-rooms-list\");\n        }\n      }\n    },\n    onRoomChanged() {\n      this.updateLoadingMessages(true);\n      this.scrollIcon = false;\n      this.scrollMessagesCount = 0;\n      this.resetMessageSelection();\n      const unwatch = this.$watch(\n        () => this.messages,\n        (val) => {\n          if (!val || !val.length)\n            return;\n          const element2 = this.$refs.scrollContainer;\n          if (!element2)\n            return;\n          unwatch();\n          setTimeout(() => {\n            element2.scrollTo({ top: element2.scrollHeight });\n            this.updateLoadingMessages(false);\n          });\n        }\n      );\n    },\n    resetMessageSelection() {\n      this.messageSelectionEnabled = false;\n      this.selectedMessages = [];\n    },\n    selectMessage(message) {\n      this.selectedMessages.push(message);\n    },\n    unselectMessage(messageId) {\n      this.selectedMessages = this.selectedMessages.filter(\n        (message) => message._id !== messageId\n      );\n    },\n    onMessageAdded({ message, index, ref }) {\n      if (index !== this.messages.length - 1)\n        return;\n      const autoScrollOffset = ref.offsetHeight + 60;\n      setTimeout(() => {\n        const scrollContainer = this.$refs.scrollContainer;\n        let scrolledUp = false;\n        if (scrollContainer) {\n          scrolledUp = this.getBottomScroll(scrollContainer) > autoScrollOffset;\n        }\n        if (message.senderId === this.currentUserId) {\n          if (scrolledUp) {\n            if (this.autoScroll.send.newAfterScrollUp) {\n              this.scrollToBottom();\n            }\n          } else {\n            if (this.autoScroll.send.new) {\n              this.scrollToBottom();\n            }\n          }\n        } else {\n          if (scrolledUp) {\n            if (this.autoScroll.receive.newAfterScrollUp) {\n              this.scrollToBottom();\n            } else {\n              this.scrollIcon = true;\n              this.scrollMessagesCount++;\n            }\n          } else {\n            if (this.autoScroll.receive.new) {\n              this.scrollToBottom();\n            } else {\n              this.scrollIcon = true;\n              this.scrollMessagesCount++;\n            }\n          }\n        }\n      });\n    },\n    onContainerScroll(e) {\n      if (!e.target)\n        return;\n      const bottomScroll = this.getBottomScroll(e.target);\n      if (bottomScroll < 60)\n        this.scrollMessagesCount = 0;\n      this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;\n    },\n    loadMoreMessages() {\n      if (this.loadingMessages)\n        return;\n      setTimeout(\n        () => {\n          if (this.loadingMoreMessages)\n            return;\n          if (this.messagesLoaded || !this.roomId) {\n            this.loadingMoreMessages = false;\n            this.showLoader = false;\n            return;\n          }\n          this.preventTopScroll();\n          this.$emit(\"fetch-messages\");\n          this.loadingMoreMessages = true;\n        },\n        500\n      );\n    },\n    messageActionHandler({ action, message }) {\n      switch (action.name) {\n        case \"replyMessage\":\n          this.initReplyMessage = message;\n          setTimeout(() => {\n            this.initReplyMessage = null;\n          });\n          return;\n        case \"editMessage\":\n          this.initEditMessage = message;\n          setTimeout(() => {\n            this.initEditMessage = null;\n          });\n          return;\n        case \"deleteMessage\":\n          return this.$emit(\"delete-message\", message);\n        case \"selectMessages\":\n          this.selectedMessages = [message];\n          this.messageSelectionEnabled = true;\n          return;\n        default:\n          return this.$emit(\"message-action-handler\", { action, message });\n      }\n    },\n    messageSelectionActionHandler(action) {\n      this.$emit(\"message-selection-action-handler\", {\n        action,\n        messages: this.selectedMessages\n      });\n      this.resetMessageSelection();\n    },\n    sendMessageReaction(messageReaction) {\n      this.$emit(\"send-message-reaction\", messageReaction);\n    },\n    getBottomScroll(element2) {\n      const { scrollHeight, clientHeight, scrollTop } = element2;\n      return scrollHeight - clientHeight - scrollTop;\n    },\n    scrollToBottom() {\n      setTimeout(() => {\n        const element2 = this.$refs.scrollContainer;\n        if (element2) {\n          element2.classList.add(\"vac-scroll-smooth\");\n          element2.scrollTo({ top: element2.scrollHeight, behavior: \"smooth\" });\n          setTimeout(() => element2.classList.remove(\"vac-scroll-smooth\"));\n        }\n      }, 50);\n    },\n    openFile({ message, file }) {\n      this.$emit(\"open-file\", { message, file });\n    },\n    openUserTag(user) {\n      this.$emit(\"open-user-tag\", user);\n    },\n    onDropFiles(event) {\n      if (this.showFiles) {\n        this.droppedFiles = event.dataTransfer.files;\n      }\n    }\n  }\n};\nconst _hoisted_1$2 = { class: \"vac-container-center vac-room-empty\" };\nconst _hoisted_2$1 = { class: \"vac-messages-container\" };\nconst _hoisted_3$1 = {\n  key: 0,\n  class: \"vac-text-started\"\n};\nconst _hoisted_4$1 = {\n  key: 1,\n  class: \"vac-text-started\"\n};\nconst _hoisted_5$1 = {\n  key: 0,\n  id: \"infinite-loader-messages\"\n};\nconst _hoisted_6 = { key: 2 };\nconst _hoisted_7 = {\n  key: 0,\n  class: \"vac-badge-counter vac-messages-count\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_room_header = resolveComponent(\"room-header\");\n  const _component_loader = resolveComponent(\"loader\");\n  const _component_room_message = resolveComponent(\"room-message\");\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  const _component_room_footer = resolveComponent(\"room-footer\");\n  return withDirectives((openBlock(), createElementBlock(\"div\", {\n    class: \"vac-col-messages\",\n    onDrop: _cache[12] || (_cache[12] = withModifiers((...args) => $options.onDropFiles && $options.onDropFiles(...args), [\"prevent\"])),\n    onDragenter: _cache[13] || (_cache[13] = withModifiers(() => {\n    }, [\"prevent\"])),\n    onDragover: _cache[14] || (_cache[14] = withModifiers(() => {\n    }, [\"prevent\"])),\n    onDragleave: _cache[15] || (_cache[15] = withModifiers(() => {\n    }, [\"prevent\"])),\n    onTouchstart: _cache[16] || (_cache[16] = (...args) => $options.touchStart && $options.touchStart(...args))\n  }, [\n    $options.showNoRoom ? renderSlot(_ctx.$slots, \"no-room-selected\", { key: 0 }, () => [\n      createBaseVNode(\"div\", _hoisted_1$2, [\n        createBaseVNode(\"div\", null, toDisplayString($props.textMessages.ROOM_EMPTY), 1)\n      ])\n    ]) : (openBlock(), createBlock(_component_room_header, {\n      key: 1,\n      \"current-user-id\": $props.currentUserId,\n      \"text-messages\": $props.textMessages,\n      \"single-room\": $props.singleRoom,\n      \"show-rooms-list\": $props.showRoomsList,\n      \"is-mobile\": $props.isMobile,\n      \"room-info-enabled\": $props.roomInfoEnabled,\n      \"menu-actions\": $props.menuActions,\n      room: $options.room,\n      \"message-selection-enabled\": $data.messageSelectionEnabled,\n      \"message-selection-actions\": $props.messageSelectionActions,\n      \"selected-messages-total\": $data.selectedMessages.length,\n      onToggleRoomsList: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"toggle-rooms-list\")),\n      onRoomInfo: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-info\")),\n      onMenuActionHandler: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"menu-action-handler\", $event)),\n      onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n      onCancelMessageSelection: _cache[3] || (_cache[3] = ($event) => $data.messageSelectionEnabled = false)\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (i, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"current-user-id\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"is-mobile\", \"room-info-enabled\", \"menu-actions\", \"room\", \"message-selection-enabled\", \"message-selection-actions\", \"selected-messages-total\", \"onMessageSelectionActionHandler\"])),\n    createBaseVNode(\"div\", {\n      id: \"messages-list\",\n      ref: \"scrollContainer\",\n      class: \"vac-container-scroll\",\n      onScroll: _cache[5] || (_cache[5] = (...args) => $options.onContainerScroll && $options.onContainerScroll(...args))\n    }, [\n      createVNode(_component_loader, {\n        show: $data.loadingMessages,\n        type: \"messages\"\n      }, createSlots({ _: 2 }, [\n        renderList(_ctx.$slots, (idx, name) => {\n          return {\n            name,\n            fn: withCtx((data) => [\n              renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n            ])\n          };\n        })\n      ]), 1032, [\"show\"]),\n      createBaseVNode(\"div\", _hoisted_2$1, [\n        createBaseVNode(\"div\", {\n          class: normalizeClass({ \"vac-messages-hidden\": $data.loadingMessages })\n        }, [\n          createVNode(Transition, { name: \"vac-fade-message\" }, {\n            default: withCtx(() => [\n              createBaseVNode(\"div\", null, [\n                $options.showNoMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, [\n                  renderSlot(_ctx.$slots, \"messages-empty\", {}, () => [\n                    createTextVNode(toDisplayString($props.textMessages.MESSAGES_EMPTY), 1)\n                  ])\n                ])) : createCommentVNode(\"\", true),\n                $options.showMessagesStarted ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, toDisplayString($props.textMessages.CONVERSATION_STARTED) + \" \" + toDisplayString($props.messages[0].date), 1)) : createCommentVNode(\"\", true)\n              ])\n            ]),\n            _: 3\n          }),\n          $props.messages.length && !$props.messagesLoaded ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, [\n            createVNode(_component_loader, {\n              show: true,\n              infinite: true,\n              type: \"infinite-messages\"\n            }, createSlots({ _: 2 }, [\n              renderList(_ctx.$slots, (idx, name) => {\n                return {\n                  name,\n                  fn: withCtx((data) => [\n                    renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                  ])\n                };\n              })\n            ]), 1024)\n          ])) : createCommentVNode(\"\", true),\n          (openBlock(), createBlock(TransitionGroup, {\n            key: $props.roomId,\n            name: \"vac-fade-message\",\n            tag: \"span\"\n          }, {\n            default: withCtx(() => [\n              (openBlock(true), createElementBlock(Fragment, null, renderList($props.messages, (m, i) => {\n                return openBlock(), createElementBlock(\"div\", {\n                  key: m.indexId || m._id\n                }, [\n                  createVNode(_component_room_message, {\n                    \"current-user-id\": $props.currentUserId,\n                    message: m,\n                    index: i,\n                    messages: $props.messages,\n                    \"edited-message-id\": $data.editedMessageId,\n                    \"message-actions\": $props.messageActions,\n                    \"room-users\": $options.room.users,\n                    \"text-messages\": $props.textMessages,\n                    \"new-messages\": $data.newMessages,\n                    \"show-reaction-emojis\": $props.showReactionEmojis,\n                    \"show-new-messages-divider\": $props.showNewMessagesDivider,\n                    \"text-formatting\": $props.textFormatting,\n                    \"link-options\": $props.linkOptions,\n                    \"username-options\": $props.usernameOptions,\n                    \"message-selection-enabled\": $data.messageSelectionEnabled,\n                    \"selected-messages\": $data.selectedMessages,\n                    \"emoji-data-source\": $props.emojiDataSource,\n                    onMessageAdded: $options.onMessageAdded,\n                    onMessageActionHandler: $options.messageActionHandler,\n                    onOpenFile: $options.openFile,\n                    onOpenUserTag: $options.openUserTag,\n                    onOpenFailedMessage: _cache[4] || (_cache[4] = ($event) => _ctx.$emit(\"open-failed-message\", $event)),\n                    onSendMessageReaction: $options.sendMessageReaction,\n                    onSelectMessage: $options.selectMessage,\n                    onUnselectMessage: $options.unselectMessage\n                  }, createSlots({ _: 2 }, [\n                    renderList(_ctx.$slots, (idx, name) => {\n                      return {\n                        name,\n                        fn: withCtx((data) => [\n                          renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n                        ])\n                      };\n                    })\n                  ]), 1032, [\"current-user-id\", \"message\", \"index\", \"messages\", \"edited-message-id\", \"message-actions\", \"room-users\", \"text-messages\", \"new-messages\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"text-formatting\", \"link-options\", \"username-options\", \"message-selection-enabled\", \"selected-messages\", \"emoji-data-source\", \"onMessageAdded\", \"onMessageActionHandler\", \"onOpenFile\", \"onOpenUserTag\", \"onSendMessageReaction\", \"onSelectMessage\", \"onUnselectMessage\"])\n                ]);\n              }), 128))\n            ]),\n            _: 3\n          }))\n        ], 2)\n      ])\n    ], 544),\n    !$data.loadingMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n      createVNode(Transition, { name: \"vac-bounce\" }, {\n        default: withCtx(() => [\n          $data.scrollIcon ? (openBlock(), createElementBlock(\"div\", {\n            key: 0,\n            class: \"vac-icon-scroll\",\n            onClick: _cache[6] || (_cache[6] = (...args) => $options.scrollToBottom && $options.scrollToBottom(...args))\n          }, [\n            createVNode(Transition, { name: \"vac-bounce\" }, {\n              default: withCtx(() => [\n                $data.scrollMessagesCount ? (openBlock(), createElementBlock(\"div\", _hoisted_7, toDisplayString($data.scrollMessagesCount), 1)) : createCommentVNode(\"\", true)\n              ]),\n              _: 1\n            }),\n            renderSlot(_ctx.$slots, \"scroll-icon\", {}, () => [\n              createVNode(_component_svg_icon, {\n                name: \"dropdown\",\n                param: \"scroll\"\n              })\n            ])\n          ])) : createCommentVNode(\"\", true)\n        ]),\n        _: 3\n      })\n    ])) : createCommentVNode(\"\", true),\n    createVNode(_component_room_footer, {\n      room: $options.room,\n      \"room-id\": $props.roomId,\n      \"room-message\": $props.roomMessage,\n      \"text-messages\": $props.textMessages,\n      \"show-send-icon\": $props.showSendIcon,\n      \"show-files\": $props.showFiles,\n      \"show-audio\": $props.showAudio,\n      \"show-emojis\": $props.showEmojis,\n      \"show-footer\": $props.showFooter,\n      \"accepted-files\": $props.acceptedFiles,\n      \"capture-files\": $props.captureFiles,\n      \"multiple-files\": $props.multipleFiles,\n      \"textarea-action-enabled\": $props.textareaActionEnabled,\n      \"textarea-auto-focus\": $props.textareaAutoFocus,\n      \"user-tags-enabled\": $props.userTagsEnabled,\n      \"emojis-suggestion-enabled\": $props.emojisSuggestionEnabled,\n      \"templates-text\": $props.templatesText,\n      \"text-formatting\": $props.textFormatting,\n      \"link-options\": $props.linkOptions,\n      \"audio-bit-rate\": $props.audioBitRate,\n      \"audio-sample-rate\": $props.audioSampleRate,\n      \"init-reply-message\": $data.initReplyMessage,\n      \"init-edit-message\": $data.initEditMessage,\n      \"dropped-files\": $data.droppedFiles,\n      \"emoji-data-source\": $props.emojiDataSource,\n      onUpdateEditedMessageId: _cache[7] || (_cache[7] = ($event) => $data.editedMessageId = $event),\n      onEditMessage: _cache[8] || (_cache[8] = ($event) => _ctx.$emit(\"edit-message\", $event)),\n      onSendMessage: _cache[9] || (_cache[9] = ($event) => _ctx.$emit(\"send-message\", $event)),\n      onTypingMessage: _cache[10] || (_cache[10] = ($event) => _ctx.$emit(\"typing-message\", $event)),\n      onTextareaActionHandler: _cache[11] || (_cache[11] = ($event) => _ctx.$emit(\"textarea-action-handler\", $event))\n    }, createSlots({ _: 2 }, [\n      renderList(_ctx.$slots, (idx, name) => {\n        return {\n          name,\n          fn: withCtx((data) => [\n            renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n          ])\n        };\n      })\n    ]), 1032, [\"room\", \"room-id\", \"room-message\", \"text-messages\", \"show-send-icon\", \"show-files\", \"show-audio\", \"show-emojis\", \"show-footer\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"templates-text\", \"text-formatting\", \"link-options\", \"audio-bit-rate\", \"audio-sample-rate\", \"init-reply-message\", \"init-edit-message\", \"dropped-files\", \"emoji-data-source\"])\n  ], 544)), [\n    [vShow, $props.isMobile && !$props.showRoomsList || !$props.isMobile || $props.singleRoom]\n  ]);\n}\nvar Room = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {\n  name: \"MediaPreview\",\n  components: {\n    SvgIcon\n  },\n  props: {\n    file: { type: Object, required: true }\n  },\n  emits: [\"close-media-preview\"],\n  computed: {\n    isImage() {\n      return isImageFile(this.file);\n    },\n    isVideo() {\n      return isVideoFile(this.file);\n    }\n  },\n  mounted() {\n    this.$refs.modal.focus();\n  },\n  methods: {\n    closeModal() {\n      this.$emit(\"close-media-preview\");\n    }\n  }\n};\nconst _hoisted_1$1 = {\n  key: 0,\n  class: \"vac-media-preview-container\"\n};\nconst _hoisted_2 = {\n  key: 1,\n  class: \"vac-media-preview-container\"\n};\nconst _hoisted_3 = {\n  controls: \"\",\n  autoplay: \"\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"vac-svg-button\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_svg_icon = resolveComponent(\"svg-icon\");\n  return openBlock(), createElementBlock(\"div\", {\n    ref: \"modal\",\n    tabindex: \"0\",\n    class: \"vac-media-preview\",\n    onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.closeModal && $options.closeModal(...args), [\"stop\"])),\n    onKeydown: _cache[1] || (_cache[1] = withKeys((...args) => $options.closeModal && $options.closeModal(...args), [\"esc\"]))\n  }, [\n    createVNode(Transition, {\n      name: \"vac-bounce-preview\",\n      appear: \"\"\n    }, {\n      default: withCtx(() => [\n        $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n          createBaseVNode(\"div\", {\n            class: \"vac-image-preview\",\n            style: normalizeStyle({\n              \"background-image\": `url('${$props.file.url}')`\n            })\n          }, null, 4)\n        ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n          createBaseVNode(\"video\", _hoisted_3, [\n            createBaseVNode(\"source\", {\n              src: $props.file.url\n            }, null, 8, _hoisted_4)\n          ])\n        ])) : createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    }),\n    createBaseVNode(\"div\", _hoisted_5, [\n      renderSlot(_ctx.$slots, \"preview-close-icon\", {}, () => [\n        createVNode(_component_svg_icon, {\n          name: \"close-outline\",\n          param: \"preview\"\n        })\n      ])\n    ])\n  ], 544);\n}\nvar MediaPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nvar locales = {\n  ROOMS_EMPTY: \"No rooms\",\n  ROOM_EMPTY: \"No room selected\",\n  NEW_MESSAGES: \"New Messages\",\n  MESSAGE_DELETED: \"This message was deleted\",\n  MESSAGES_EMPTY: \"No messages\",\n  CONVERSATION_STARTED: \"Conversation started on:\",\n  TYPE_MESSAGE: \"Type message\",\n  SEARCH: \"Search\",\n  IS_ONLINE: \"is online\",\n  LAST_SEEN: \"last seen \",\n  IS_TYPING: \"is writing...\",\n  CANCEL_SELECT_MESSAGE: \"Cancel\"\n};\nconst defaultThemeStyles = {\n  light: {\n    general: {\n      color: \"#0a0a0a\",\n      colorButtonClear: \"#1976d2\",\n      colorButton: \"#fff\",\n      backgroundColorButton: \"#1976d2\",\n      backgroundInput: \"#fff\",\n      colorPlaceholder: \"#9ca6af\",\n      colorCaret: \"#1976d2\",\n      colorSpinner: \"#333\",\n      borderStyle: \"1px solid #e1e4e8\",\n      backgroundScrollIcon: \"#fff\"\n    },\n    container: {\n      border: \"none\",\n      borderRadius: \"4px\",\n      boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n    },\n    header: {\n      background: \"#fff\",\n      colorRoomName: \"#0a0a0a\",\n      colorRoomInfo: \"#9ca6af\"\n    },\n    footer: {\n      background: \"#f8f9fa\",\n      borderStyleInput: \"1px solid #e1e4e8\",\n      borderInputSelected: \"#1976d2\",\n      backgroundReply: \"#e5e5e6\",\n      backgroundTagActive: \"#e5e5e6\",\n      backgroundTag: \"#f8f9fa\"\n    },\n    content: {\n      background: \"#f8f9fa\"\n    },\n    sidemenu: {\n      background: \"#fff\",\n      backgroundHover: \"#f6f6f6\",\n      backgroundActive: \"#e5effa\",\n      colorActive: \"#1976d2\",\n      borderColorSearch: \"#e1e5e8\"\n    },\n    dropdown: {\n      background: \"#fff\",\n      backgroundHover: \"#f6f6f6\"\n    },\n    message: {\n      background: \"#fff\",\n      backgroundMe: \"#ccf2cf\",\n      color: \"#0a0a0a\",\n      colorStarted: \"#9ca6af\",\n      backgroundDeleted: \"#dadfe2\",\n      backgroundSelected: \"#c2dcf2\",\n      colorDeleted: \"#757e85\",\n      colorUsername: \"#9ca6af\",\n      colorTimestamp: \"#828c94\",\n      backgroundDate: \"#e5effa\",\n      colorDate: \"#505a62\",\n      backgroundSystem: \"#e5effa\",\n      colorSystem: \"#505a62\",\n      backgroundMedia: \"rgba(0, 0, 0, 0.15)\",\n      backgroundReply: \"rgba(0, 0, 0, 0.08)\",\n      colorReplyUsername: \"#0a0a0a\",\n      colorReply: \"#6e6e6e\",\n      colorTag: \"#0d579c\",\n      backgroundImage: \"#ddd\",\n      colorNewMessages: \"#1976d2\",\n      backgroundScrollCounter: \"#0696c7\",\n      colorScrollCounter: \"#fff\",\n      backgroundReaction: \"#eee\",\n      borderStyleReaction: \"1px solid #eee\",\n      backgroundReactionHover: \"#fff\",\n      borderStyleReactionHover: \"1px solid #ddd\",\n      colorReactionCounter: \"#0a0a0a\",\n      backgroundReactionMe: \"#cfecf5\",\n      borderStyleReactionMe: \"1px solid #3b98b8\",\n      backgroundReactionHoverMe: \"#cfecf5\",\n      borderStyleReactionHoverMe: \"1px solid #3b98b8\",\n      colorReactionCounterMe: \"#0b59b3\",\n      backgroundAudioRecord: \"#eb4034\",\n      backgroundAudioLine: \"rgba(0, 0, 0, 0.15)\",\n      backgroundAudioProgress: \"#455247\",\n      backgroundAudioProgressSelector: \"#455247\",\n      colorFileExtension: \"#757e85\"\n    },\n    markdown: {\n      background: \"rgba(239, 239, 239, 0.7)\",\n      border: \"rgba(212, 212, 212, 0.9)\",\n      color: \"#e01e5a\",\n      colorMulti: \"#0a0a0a\"\n    },\n    room: {\n      colorUsername: \"#0a0a0a\",\n      colorMessage: \"#67717a\",\n      colorTimestamp: \"#a2aeb8\",\n      colorStateOnline: \"#4caf50\",\n      colorStateOffline: \"#9ca6af\",\n      backgroundCounterBadge: \"#0696c7\",\n      colorCounterBadge: \"#fff\"\n    },\n    emoji: {\n      background: \"#fff\"\n    },\n    icons: {\n      search: \"#9ca6af\",\n      add: \"#1976d2\",\n      toggle: \"#0a0a0a\",\n      menu: \"#0a0a0a\",\n      close: \"#9ca6af\",\n      closeImage: \"#fff\",\n      file: \"#1976d2\",\n      paperclip: \"#1976d2\",\n      closeOutline: \"#000\",\n      closePreview: \"#fff\",\n      send: \"#1976d2\",\n      sendDisabled: \"#9ca6af\",\n      emoji: \"#1976d2\",\n      emojiReaction: \"rgba(0, 0, 0, 0.3)\",\n      document: \"#1976d2\",\n      pencil: \"#9e9e9e\",\n      checkmark: \"#9e9e9e\",\n      checkmarkSeen: \"#0696c7\",\n      eye: \"#fff\",\n      dropdownMessage: \"#fff\",\n      dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n      dropdownRoom: \"#9e9e9e\",\n      dropdownScroll: \"#0a0a0a\",\n      microphone: \"#1976d2\",\n      audioPlay: \"#455247\",\n      audioPause: \"#455247\",\n      audioCancel: \"#eb4034\",\n      audioConfirm: \"#1ba65b\"\n    }\n  },\n  dark: {\n    general: {\n      color: \"#fff\",\n      colorButtonClear: \"#fff\",\n      colorButton: \"#fff\",\n      backgroundColorButton: \"#1976d2\",\n      backgroundInput: \"#202223\",\n      colorPlaceholder: \"#596269\",\n      colorCaret: \"#fff\",\n      colorSpinner: \"#fff\",\n      borderStyle: \"none\",\n      backgroundScrollIcon: \"#fff\"\n    },\n    container: {\n      border: \"none\",\n      borderRadius: \"4px\",\n      boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n    },\n    header: {\n      background: \"#181a1b\",\n      colorRoomName: \"#fff\",\n      colorRoomInfo: \"#9ca6af\"\n    },\n    footer: {\n      background: \"#131415\",\n      borderStyleInput: \"none\",\n      borderInputSelected: \"#1976d2\",\n      backgroundReply: \"#1b1c1c\",\n      backgroundTagActive: \"#1b1c1c\",\n      backgroundTag: \"#131415\"\n    },\n    content: {\n      background: \"#131415\"\n    },\n    sidemenu: {\n      background: \"#181a1b\",\n      backgroundHover: \"#202224\",\n      backgroundActive: \"#151617\",\n      colorActive: \"#fff\",\n      borderColorSearch: \"#181a1b\"\n    },\n    dropdown: {\n      background: \"#2a2c33\",\n      backgroundHover: \"#26282e\"\n    },\n    message: {\n      background: \"#22242a\",\n      backgroundMe: \"#1f7e80\",\n      color: \"#fff\",\n      colorStarted: \"#9ca6af\",\n      backgroundDeleted: \"#1b1c21\",\n      backgroundSelected: \"#c2dcf2\",\n      colorDeleted: \"#a2a5a8\",\n      colorUsername: \"#b3bac9\",\n      colorTimestamp: \"#ebedf2\",\n      backgroundDate: \"rgba(0, 0, 0, 0.3)\",\n      colorDate: \"#bec5cc\",\n      backgroundSystem: \"rgba(0, 0, 0, 0.3)\",\n      colorSystem: \"#bec5cc\",\n      backgroundMedia: \"rgba(0, 0, 0, 0.18)\",\n      backgroundReply: \"rgba(0, 0, 0, 0.18)\",\n      colorReplyUsername: \"#fff\",\n      colorReply: \"#d6d6d6\",\n      colorTag: \"#f0c60a\",\n      backgroundImage: \"#ddd\",\n      colorNewMessages: \"#fff\",\n      backgroundScrollCounter: \"#1976d2\",\n      colorScrollCounter: \"#fff\",\n      backgroundReaction: \"none\",\n      borderStyleReaction: \"none\",\n      backgroundReactionHover: \"#202223\",\n      borderStyleReactionHover: \"none\",\n      colorReactionCounter: \"#fff\",\n      backgroundReactionMe: \"#4e9ad1\",\n      borderStyleReactionMe: \"none\",\n      backgroundReactionHoverMe: \"#4e9ad1\",\n      borderStyleReactionHoverMe: \"none\",\n      colorReactionCounterMe: \"#fff\",\n      backgroundAudioRecord: \"#eb4034\",\n      backgroundAudioLine: \"rgba(255, 255, 255, 0.15)\",\n      backgroundAudioProgress: \"#b7d4d3\",\n      backgroundAudioProgressSelector: \"#b7d4d3\",\n      colorFileExtension: \"#a2a5a8\"\n    },\n    markdown: {\n      background: \"rgba(239, 239, 239, 0.7)\",\n      border: \"rgba(212, 212, 212, 0.9)\",\n      color: \"#e01e5a\",\n      colorMulti: \"#0a0a0a\"\n    },\n    room: {\n      colorUsername: \"#fff\",\n      colorMessage: \"#6c7278\",\n      colorTimestamp: \"#6c7278\",\n      colorStateOnline: \"#4caf50\",\n      colorStateOffline: \"#596269\",\n      backgroundCounterBadge: \"#1976d2\",\n      colorCounterBadge: \"#fff\"\n    },\n    emoji: {\n      background: \"#343740\"\n    },\n    icons: {\n      search: \"#596269\",\n      add: \"#fff\",\n      toggle: \"#fff\",\n      menu: \"#fff\",\n      close: \"#9ca6af\",\n      closeImage: \"#fff\",\n      file: \"#1976d2\",\n      paperclip: \"#fff\",\n      closeOutline: \"#fff\",\n      closePreview: \"#fff\",\n      send: \"#fff\",\n      sendDisabled: \"#646a70\",\n      emoji: \"#fff\",\n      emojiReaction: \"#fff\",\n      document: \"#1976d2\",\n      pencil: \"#ebedf2\",\n      checkmark: \"#ebedf2\",\n      checkmarkSeen: \"#f0d90a\",\n      eye: \"#fff\",\n      dropdownMessage: \"#fff\",\n      dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n      dropdownRoom: \"#fff\",\n      dropdownScroll: \"#0a0a0a\",\n      microphone: \"#fff\",\n      audioPlay: \"#b7d4d3\",\n      audioPause: \"#b7d4d3\",\n      audioCancel: \"#eb4034\",\n      audioConfirm: \"#1ba65b\"\n    }\n  }\n};\nconst cssThemeVars = ({\n  general,\n  container,\n  header,\n  footer,\n  sidemenu,\n  content: content2,\n  dropdown,\n  message,\n  markdown: markdown2,\n  room,\n  emoji,\n  icons\n}) => {\n  return {\n    \"--chat-color\": general.color,\n    \"--chat-color-button-clear\": general.colorButtonClear,\n    \"--chat-color-button\": general.colorButton,\n    \"--chat-bg-color-button\": general.backgroundColorButton,\n    \"--chat-bg-color-input\": general.backgroundInput,\n    \"--chat-color-spinner\": general.colorSpinner,\n    \"--chat-color-placeholder\": general.colorPlaceholder,\n    \"--chat-color-caret\": general.colorCaret,\n    \"--chat-border-style\": general.borderStyle,\n    \"--chat-bg-scroll-icon\": general.backgroundScrollIcon,\n    \"--chat-container-border\": container.border,\n    \"--chat-container-border-radius\": container.borderRadius,\n    \"--chat-container-box-shadow\": container.boxShadow,\n    \"--chat-header-bg-color\": header.background,\n    \"--chat-header-color-name\": header.colorRoomName,\n    \"--chat-header-color-info\": header.colorRoomInfo,\n    \"--chat-footer-bg-color\": footer.background,\n    \"--chat-border-style-input\": footer.borderStyleInput,\n    \"--chat-border-color-input-selected\": footer.borderInputSelected,\n    \"--chat-footer-bg-color-reply\": footer.backgroundReply,\n    \"--chat-footer-bg-color-tag-active\": footer.backgroundTagActive,\n    \"--chat-footer-bg-color-tag\": footer.backgroundTag,\n    \"--chat-content-bg-color\": content2.background,\n    \"--chat-sidemenu-bg-color\": sidemenu.background,\n    \"--chat-sidemenu-bg-color-hover\": sidemenu.backgroundHover,\n    \"--chat-sidemenu-bg-color-active\": sidemenu.backgroundActive,\n    \"--chat-sidemenu-color-active\": sidemenu.colorActive,\n    \"--chat-sidemenu-border-color-search\": sidemenu.borderColorSearch,\n    \"--chat-dropdown-bg-color\": dropdown.background,\n    \"--chat-dropdown-bg-color-hover\": dropdown.backgroundHover,\n    \"--chat-message-bg-color\": message.background,\n    \"--chat-message-bg-color-me\": message.backgroundMe,\n    \"--chat-message-color-started\": message.colorStarted,\n    \"--chat-message-bg-color-deleted\": message.backgroundDeleted,\n    \"--chat-message-bg-color-selected\": message.backgroundSelected,\n    \"--chat-message-color-deleted\": message.colorDeleted,\n    \"--chat-message-color-username\": message.colorUsername,\n    \"--chat-message-color-timestamp\": message.colorTimestamp,\n    \"--chat-message-bg-color-date\": message.backgroundDate,\n    \"--chat-message-color-date\": message.colorDate,\n    \"--chat-message-bg-color-system\": message.backgroundSystem,\n    \"--chat-message-color-system\": message.colorSystem,\n    \"--chat-message-color\": message.color,\n    \"--chat-message-bg-color-media\": message.backgroundMedia,\n    \"--chat-message-bg-color-reply\": message.backgroundReply,\n    \"--chat-message-color-reply-username\": message.colorReplyUsername,\n    \"--chat-message-color-reply-content\": message.colorReply,\n    \"--chat-message-color-tag\": message.colorTag,\n    \"--chat-message-bg-color-image\": message.backgroundImage,\n    \"--chat-message-color-new-messages\": message.colorNewMessages,\n    \"--chat-message-bg-color-scroll-counter\": message.backgroundScrollCounter,\n    \"--chat-message-color-scroll-counter\": message.colorScrollCounter,\n    \"--chat-message-bg-color-reaction\": message.backgroundReaction,\n    \"--chat-message-border-style-reaction\": message.borderStyleReaction,\n    \"--chat-message-bg-color-reaction-hover\": message.backgroundReactionHover,\n    \"--chat-message-border-style-reaction-hover\": message.borderStyleReactionHover,\n    \"--chat-message-color-reaction-counter\": message.colorReactionCounter,\n    \"--chat-message-bg-color-reaction-me\": message.backgroundReactionMe,\n    \"--chat-message-border-style-reaction-me\": message.borderStyleReactionMe,\n    \"--chat-message-bg-color-reaction-hover-me\": message.backgroundReactionHoverMe,\n    \"--chat-message-border-style-reaction-hover-me\": message.borderStyleReactionHoverMe,\n    \"--chat-message-color-reaction-counter-me\": message.colorReactionCounterMe,\n    \"--chat-message-bg-color-audio-record\": message.backgroundAudioRecord,\n    \"--chat-message-bg-color-audio-line\": message.backgroundAudioLine,\n    \"--chat-message-bg-color-audio-progress\": message.backgroundAudioProgress,\n    \"--chat-message-bg-color-audio-progress-selector\": message.backgroundAudioProgressSelector,\n    \"--chat-message-color-file-extension\": message.colorFileExtension,\n    \"--chat-markdown-bg\": markdown2.background,\n    \"--chat-markdown-border\": markdown2.border,\n    \"--chat-markdown-color\": markdown2.color,\n    \"--chat-markdown-color-multi\": markdown2.colorMulti,\n    \"--chat-room-color-username\": room.colorUsername,\n    \"--chat-room-color-message\": room.colorMessage,\n    \"--chat-room-color-timestamp\": room.colorTimestamp,\n    \"--chat-room-color-online\": room.colorStateOnline,\n    \"--chat-room-color-offline\": room.colorStateOffline,\n    \"--chat-room-bg-color-badge\": room.backgroundCounterBadge,\n    \"--chat-room-color-badge\": room.colorCounterBadge,\n    \"--chat-emoji-bg-color\": emoji.background,\n    \"--chat-icon-color-search\": icons.search,\n    \"--chat-icon-color-add\": icons.add,\n    \"--chat-icon-color-toggle\": icons.toggle,\n    \"--chat-icon-color-menu\": icons.menu,\n    \"--chat-icon-color-close\": icons.close,\n    \"--chat-icon-color-close-image\": icons.closeImage,\n    \"--chat-icon-color-file\": icons.file,\n    \"--chat-icon-color-paperclip\": icons.paperclip,\n    \"--chat-icon-color-close-outline\": icons.closeOutline,\n    \"--chat-icon-color-close-preview\": icons.closePreview,\n    \"--chat-icon-color-send\": icons.send,\n    \"--chat-icon-color-send-disabled\": icons.sendDisabled,\n    \"--chat-icon-color-emoji\": icons.emoji,\n    \"--chat-icon-color-emoji-reaction\": icons.emojiReaction,\n    \"--chat-icon-color-document\": icons.document,\n    \"--chat-icon-color-pencil\": icons.pencil,\n    \"--chat-icon-color-checkmark\": icons.checkmark,\n    \"--chat-icon-color-checkmark-seen\": icons.checkmarkSeen,\n    \"--chat-icon-color-eye\": icons.eye,\n    \"--chat-icon-color-dropdown-message\": icons.dropdownMessage,\n    \"--chat-icon-bg-dropdown-message\": icons.dropdownMessageBackground,\n    \"--chat-icon-color-dropdown-room\": icons.dropdownRoom,\n    \"--chat-icon-color-dropdown-scroll\": icons.dropdownScroll,\n    \"--chat-icon-color-microphone\": icons.microphone,\n    \"--chat-icon-color-audio-play\": icons.audioPlay,\n    \"--chat-icon-color-audio-pause\": icons.audioPause,\n    \"--chat-icon-color-audio-cancel\": icons.audioCancel,\n    \"--chat-icon-color-audio-confirm\": icons.audioConfirm\n  };\n};\nvar _style_0 = '.vac-fade-spinner-enter-from{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter-from{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter-from{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter-from,.vac-slide-left-leave-to{transform:translate(10px);opacity:0}.vac-slide-right-enter-from,.vac-slide-right-leave-to{transform:translate(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter-from,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.markdown p{margin:0}.markdown ol{display:flex;flex-direction:column;list-style-position:inside}.markdown ul{display:flex;flex-direction:column}.markdown code{display:block;font-size:12px;color:var(--chat-markdown-color-multi);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:4px 0;padding:7px}.markdown p code{display:inline-block;font-size:12px;color:var(--chat-markdown-color);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:2px 0;padding:2px 3px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container textarea,.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container input[type=search]{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:#000c;outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.vac-media-preview video{width:100%;height:100%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width: 768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:65px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:25px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px #0003,0 1px 1px #00000024,0 1px 2px #0000001f;display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width: 768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(360deg)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width: 768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px}.vac-textarea{max-height:300px;overflow-y:auto;height:20px;width:100%;line-height:20px;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);animation:vac-scaling .8s ease-in-out infinite alternate}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-confirm{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop svg,.vac-icon-textarea-left .vac-icon-audio-confirm svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width: 768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 5px!important}}@media only screen and (max-height: 768px){.vac-textarea{max-height:120px}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width: 768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width: 768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width: 768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width: 768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width: 768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-item:not(.vac-room-selected){cursor:pointer}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important;background:var(--chat-sidemenu-bg-color-active)!important}.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width: 768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width: 768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width: 768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;-webkit-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px #0000001a,0 1px 2px -1px #0000001c,0 1px 5px -1px #0000001c}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:.4s filter linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{-webkit-box-align:center;align-items:center;display:-webkit-inline-box;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width: 768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width: 768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width: 768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width: 768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:#0000004d}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(to bottom,rgba(0,0,0,0) 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8) 100%)}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-view,.vac-message-file-container .vac-image-buttons .vac-button-download{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{width:100%;height:100%;border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{width:100%;height:100%;border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px #0000001a,0 1px 2px -1px #0000001a,0 1px 2px 1px #0000001a;scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:initial;right:initial}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size: 1.2rem;--background: var(--chat-emoji-bg-color);--emoji-padding: .4rem;--border-color: var(--chat-sidemenu-border-color-search);--button-hover-background: var(--chat-sidemenu-bg-color-hover);--button-active-background: var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-format-message-wrapper .vac-icon-deleted.vac-icon-deleted-room{margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:center center!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px rgba(0,0,0,.25) solid;border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s infinite linear;animation:vac-spin 1s infinite linear}@media only screen and (max-width: 768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:#000000b3;border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}\\n';\nconst _sfc_main = {\n  name: \"ChatContainer\",\n  components: {\n    RoomsList,\n    Room,\n    MediaPreview\n  },\n  props: {\n    height: { type: String, default: \"600px\" },\n    theme: { type: String, default: \"light\" },\n    styles: { type: [Object, String], default: () => ({}) },\n    responsiveBreakpoint: { type: Number, default: 900 },\n    singleRoom: { type: [Boolean, String], default: false },\n    roomsListOpened: { type: [Boolean, String], default: true },\n    textMessages: { type: [Object, String], default: () => ({}) },\n    currentUserId: { type: String, default: \"\" },\n    rooms: { type: [Array, String], default: () => [] },\n    roomsOrder: { type: String, default: \"desc\" },\n    loadingRooms: { type: [Boolean, String], default: false },\n    roomsLoaded: { type: [Boolean, String], default: false },\n    roomId: { type: String, default: null },\n    loadFirstRoom: { type: [Boolean, String], default: true },\n    messages: { type: [Array, String], default: () => [] },\n    messagesLoaded: { type: [Boolean, String], default: false },\n    roomActions: { type: [Array, String], default: () => [] },\n    menuActions: { type: [Array, String], default: () => [] },\n    messageActions: {\n      type: [Array, String],\n      default: () => [\n        { name: \"replyMessage\", title: \"Reply\" },\n        { name: \"editMessage\", title: \"Edit Message\", onlyMe: true },\n        { name: \"deleteMessage\", title: \"Delete Message\", onlyMe: true },\n        { name: \"selectMessages\", title: \"Select\" }\n      ]\n    },\n    messageSelectionActions: { type: [Array, String], default: () => [] },\n    autoScroll: {\n      type: [Object, String],\n      default: () => {\n        return {\n          send: {\n            new: true,\n            newAfterScrollUp: true\n          },\n          receive: {\n            new: true,\n            newAfterScrollUp: false\n          }\n        };\n      }\n    },\n    customSearchRoomEnabled: { type: [Boolean, String], default: false },\n    showSearch: { type: [Boolean, String], default: true },\n    showAddRoom: { type: [Boolean, String], default: true },\n    showSendIcon: { type: [Boolean, String], default: true },\n    showFiles: { type: [Boolean, String], default: true },\n    showAudio: { type: [Boolean, String], default: true },\n    audioBitRate: { type: Number, default: 128 },\n    audioSampleRate: { type: Number, default: 44100 },\n    showEmojis: { type: [Boolean, String], default: true },\n    showReactionEmojis: { type: [Boolean, String], default: true },\n    showNewMessagesDivider: { type: [Boolean, String], default: true },\n    showFooter: { type: [Boolean, String], default: true },\n    textFormatting: {\n      type: [Object, String],\n      default: () => ({\n        disabled: false\n      })\n    },\n    linkOptions: {\n      type: [Object, String],\n      default: () => ({ disabled: false, target: \"_blank\", rel: null })\n    },\n    roomInfoEnabled: { type: [Boolean, String], default: false },\n    textareaActionEnabled: { type: [Boolean, String], default: false },\n    textareaAutoFocus: { type: [Boolean, String], default: true },\n    userTagsEnabled: { type: [Boolean, String], default: true },\n    emojisSuggestionEnabled: { type: [Boolean, String], default: true },\n    roomMessage: { type: String, default: \"\" },\n    scrollDistance: { type: Number, default: 60 },\n    acceptedFiles: { type: String, default: \"*\" },\n    captureFiles: { type: String, default: \"\" },\n    multipleFiles: { type: [Boolean, String], default: true },\n    templatesText: { type: [Array, String], default: () => [] },\n    mediaPreviewEnabled: { type: [Boolean, String], default: true },\n    usernameOptions: {\n      type: [Object, String],\n      default: () => ({ minUsers: 3, currentUser: false })\n    },\n    emojiDataSource: { type: String, default: void 0 }\n  },\n  emits: [\n    \"toggle-rooms-list\",\n    \"room-info\",\n    \"fetch-messages\",\n    \"send-message\",\n    \"edit-message\",\n    \"delete-message\",\n    \"open-file\",\n    \"open-user-tag\",\n    \"open-failed-message\",\n    \"menu-action-handler\",\n    \"message-action-handler\",\n    \"send-message-reaction\",\n    \"typing-message\",\n    \"textarea-action-handler\",\n    \"fetch-more-rooms\",\n    \"add-room\",\n    \"search-room\",\n    \"room-action-handler\",\n    \"message-selection-action-handler\"\n  ],\n  data() {\n    return {\n      slots: [],\n      room: {},\n      loadingMoreRooms: false,\n      showRoomsList: true,\n      isMobile: false,\n      showMediaPreview: false,\n      previewFile: {}\n    };\n  },\n  computed: {\n    t() {\n      return {\n        ...locales,\n        ...this.textMessagesCasted\n      };\n    },\n    cssVars() {\n      const defaultStyles = defaultThemeStyles[this.theme];\n      const customStyles = {};\n      Object.keys(defaultStyles).map((key) => {\n        customStyles[key] = {\n          ...defaultStyles[key],\n          ...this.stylesCasted[key] || {}\n        };\n      });\n      return cssThemeVars(customStyles);\n    },\n    orderedRooms() {\n      return this.roomsCasted.slice().sort((a, b) => {\n        const aVal = a.index || 0;\n        const bVal = b.index || 0;\n        if (this.roomsOrder === \"asc\") {\n          return aVal < bVal ? -1 : bVal < aVal ? 1 : 0;\n        }\n        return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;\n      });\n    },\n    singleRoomCasted() {\n      return this.castBoolean(this.singleRoom);\n    },\n    roomsListOpenedCasted() {\n      return this.castBoolean(this.roomsListOpened);\n    },\n    loadingRoomsCasted() {\n      return this.castBoolean(this.loadingRooms);\n    },\n    roomsLoadedCasted() {\n      return this.castBoolean(this.roomsLoaded);\n    },\n    loadFirstRoomCasted() {\n      return this.castBoolean(this.loadFirstRoom);\n    },\n    messagesLoadedCasted() {\n      return this.castBoolean(this.messagesLoaded);\n    },\n    multipleFilesCasted() {\n      return this.castBoolean(this.multipleFiles);\n    },\n    showSearchCasted() {\n      return this.castBoolean(this.showSearch);\n    },\n    showAddRoomCasted() {\n      return this.castBoolean(this.showAddRoom);\n    },\n    showSendIconCasted() {\n      return this.castBoolean(this.showSendIcon);\n    },\n    showFilesCasted() {\n      return this.castBoolean(this.showFiles);\n    },\n    showAudioCasted() {\n      return this.castBoolean(this.showAudio);\n    },\n    showEmojisCasted() {\n      return this.castBoolean(this.showEmojis);\n    },\n    showReactionEmojisCasted() {\n      return this.castBoolean(this.showReactionEmojis);\n    },\n    showNewMessagesDividerCasted() {\n      return this.castBoolean(this.showNewMessagesDivider);\n    },\n    showFooterCasted() {\n      return this.castBoolean(this.showFooter);\n    },\n    roomInfoEnabledCasted() {\n      return this.castBoolean(this.roomInfoEnabled);\n    },\n    textareaActionEnabledCasted() {\n      return this.castBoolean(this.textareaActionEnabled);\n    },\n    textareaAutoFocusCasted() {\n      return this.castBoolean(this.textareaAutoFocus);\n    },\n    userTagsEnabledCasted() {\n      return this.castBoolean(this.userTagsEnabled);\n    },\n    emojisSuggestionEnabledCasted() {\n      return this.castBoolean(this.emojisSuggestionEnabled);\n    },\n    mediaPreviewEnabledCasted() {\n      return this.castBoolean(this.mediaPreviewEnabled);\n    },\n    roomsCasted() {\n      return this.castArray(this.rooms);\n    },\n    messagesCasted() {\n      return this.castArray(this.messages);\n    },\n    roomActionsCasted() {\n      return this.castArray(this.roomActions);\n    },\n    menuActionsCasted() {\n      return this.castArray(this.menuActions);\n    },\n    messageActionsCasted() {\n      return this.castArray(this.messageActions);\n    },\n    messageSelectionActionsCasted() {\n      return this.castArray(this.messageSelectionActions);\n    },\n    templatesTextCasted() {\n      return this.castArray(this.templatesText);\n    },\n    stylesCasted() {\n      return this.castObject(this.styles);\n    },\n    textMessagesCasted() {\n      return this.castObject(this.textMessages);\n    },\n    autoScrollCasted() {\n      return this.castObject(this.autoScroll);\n    },\n    textFormattingCasted() {\n      return this.castObject(this.textFormatting);\n    },\n    linkOptionsCasted() {\n      return this.castObject(this.linkOptions);\n    },\n    usernameOptionsCasted() {\n      return this.castObject(this.usernameOptions);\n    }\n  },\n  watch: {\n    roomsCasted: {\n      immediate: true,\n      deep: true,\n      handler(newVal, oldVal) {\n        if (!newVal[0] || !newVal.find((room) => room.roomId === this.room.roomId)) {\n          this.showRoomsList = true;\n        }\n        if (!this.loadingMoreRooms && this.loadFirstRoomCasted && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {\n          if (this.roomId) {\n            const room = newVal.find((r) => r.roomId === this.roomId) || {};\n            this.fetchRoom({ room });\n          } else if (!this.isMobile || this.singleRoomCasted) {\n            this.fetchRoom({ room: this.orderedRooms[0] });\n          } else {\n            this.showRoomsList = true;\n          }\n        }\n      }\n    },\n    loadingRoomsCasted(val) {\n      if (val)\n        this.room = {};\n    },\n    roomId: {\n      immediate: true,\n      handler(newVal, oldVal) {\n        if (newVal && !this.loadingRoomsCasted && this.roomsCasted.length) {\n          const room = this.roomsCasted.find((r) => r.roomId === newVal);\n          this.fetchRoom({ room });\n        } else if (oldVal && !newVal) {\n          this.room = {};\n        }\n      }\n    },\n    room(val) {\n      if (!val || Object.entries(val).length === 0)\n        return;\n      roomsValidation(val);\n      val.users.forEach((user) => {\n        partcipantsValidation(user);\n      });\n    },\n    roomsListOpenedCasted: {\n      immediate: true,\n      handler(val) {\n        this.showRoomsList = val;\n      }\n    }\n  },\n  created() {\n    this.updateResponsive();\n    window.addEventListener(\"resize\", (ev) => {\n      if (ev.isTrusted)\n        this.updateResponsive();\n    });\n  },\n  updated() {\n    const slots = document.querySelectorAll(\"[slot]\");\n    if (this.slots.length !== slots.length) {\n      this.slots = slots;\n    }\n  },\n  methods: {\n    castBoolean(val) {\n      return val === \"true\" || val === true;\n    },\n    castArray(val) {\n      return !val ? [] : Array.isArray(val) ? val : JSON.parse(val);\n    },\n    castObject(val) {\n      return !val ? {} : typeof val === \"object\" ? val : JSON.parse(val);\n    },\n    updateResponsive() {\n      this.isMobile = window.innerWidth < Number(this.responsiveBreakpoint);\n    },\n    toggleRoomsList() {\n      this.showRoomsList = !this.showRoomsList;\n      if (this.isMobile)\n        this.room = {};\n      this.$emit(\"toggle-rooms-list\", { opened: this.showRoomsList });\n    },\n    fetchRoom({ room }) {\n      this.room = room;\n      this.fetchMessages({ reset: true });\n      if (this.isMobile)\n        this.showRoomsList = false;\n    },\n    fetchMoreRooms() {\n      this.$emit(\"fetch-more-rooms\");\n    },\n    roomInfo() {\n      this.$emit(\"room-info\", this.room);\n    },\n    addRoom() {\n      this.$emit(\"add-room\");\n    },\n    searchRoom(val) {\n      this.$emit(\"search-room\", { value: val, roomId: this.room.roomId });\n    },\n    fetchMessages(options) {\n      this.$emit(\"fetch-messages\", { room: this.room, options });\n    },\n    sendMessage(message) {\n      this.$emit(\"send-message\", { ...message, roomId: this.room.roomId });\n    },\n    editMessage(message) {\n      this.$emit(\"edit-message\", { ...message, roomId: this.room.roomId });\n    },\n    deleteMessage(message) {\n      this.$emit(\"delete-message\", { message, roomId: this.room.roomId });\n    },\n    openFile({ message, file }) {\n      if (this.mediaPreviewEnabledCasted && file.action === \"preview\") {\n        this.previewFile = file.file;\n        this.showMediaPreview = true;\n      } else {\n        this.$emit(\"open-file\", { message, file });\n      }\n    },\n    openUserTag({ user }) {\n      this.$emit(\"open-user-tag\", { user });\n    },\n    openFailedMessage({ message }) {\n      this.$emit(\"open-failed-message\", {\n        message,\n        roomId: this.room.roomId\n      });\n    },\n    menuActionHandler(ev) {\n      this.$emit(\"menu-action-handler\", {\n        action: ev,\n        roomId: this.room.roomId\n      });\n    },\n    roomActionHandler({ action, roomId }) {\n      this.$emit(\"room-action-handler\", {\n        action,\n        roomId\n      });\n    },\n    messageActionHandler(ev) {\n      this.$emit(\"message-action-handler\", {\n        ...ev,\n        roomId: this.room.roomId\n      });\n    },\n    messageSelectionActionHandler(ev) {\n      this.$emit(\"message-selection-action-handler\", {\n        ...ev,\n        roomId: this.room.roomId\n      });\n    },\n    sendMessageReaction(messageReaction) {\n      this.$emit(\"send-message-reaction\", {\n        ...messageReaction,\n        roomId: this.room.roomId\n      });\n    },\n    typingMessage(message) {\n      this.$emit(\"typing-message\", {\n        message,\n        roomId: this.room.roomId\n      });\n    },\n    textareaActionHandler(message) {\n      this.$emit(\"textarea-action-handler\", {\n        message,\n        roomId: this.room.roomId\n      });\n    }\n  }\n};\nconst _hoisted_1 = { class: \"vac-chat-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_rooms_list = resolveComponent(\"rooms-list\");\n  const _component_room = resolveComponent(\"room\");\n  const _component_media_preview = resolveComponent(\"media-preview\");\n  return openBlock(), createElementBlock(\"div\", {\n    class: \"vac-card-window\",\n    style: normalizeStyle([{ height: $props.height }, $options.cssVars])\n  }, [\n    createBaseVNode(\"div\", _hoisted_1, [\n      !$options.singleRoomCasted ? (openBlock(), createBlock(_component_rooms_list, {\n        key: 0,\n        \"current-user-id\": $props.currentUserId,\n        rooms: $options.orderedRooms,\n        \"loading-rooms\": $options.loadingRoomsCasted,\n        \"rooms-loaded\": $options.roomsLoadedCasted,\n        room: $data.room,\n        \"room-actions\": $options.roomActionsCasted,\n        \"custom-search-room-enabled\": $props.customSearchRoomEnabled,\n        \"text-messages\": $options.t,\n        \"show-search\": $options.showSearchCasted,\n        \"show-add-room\": $options.showAddRoomCasted,\n        \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n        \"text-formatting\": $options.textFormattingCasted,\n        \"link-options\": $options.linkOptionsCasted,\n        \"is-mobile\": $data.isMobile,\n        \"scroll-distance\": $props.scrollDistance,\n        onFetchRoom: $options.fetchRoom,\n        onFetchMoreRooms: $options.fetchMoreRooms,\n        onLoadingMoreRooms: _cache[0] || (_cache[0] = ($event) => $data.loadingMoreRooms = $event),\n        onAddRoom: $options.addRoom,\n        onSearchRoom: $options.searchRoom,\n        onRoomActionHandler: $options.roomActionHandler\n      }, createSlots({ _: 2 }, [\n        renderList($data.slots, (el) => {\n          return {\n            name: el.slot,\n            fn: withCtx((data) => [\n              renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n            ])\n          };\n        })\n      ]), 1032, [\"current-user-id\", \"rooms\", \"loading-rooms\", \"rooms-loaded\", \"room\", \"room-actions\", \"custom-search-room-enabled\", \"text-messages\", \"show-search\", \"show-add-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"scroll-distance\", \"onFetchRoom\", \"onFetchMoreRooms\", \"onAddRoom\", \"onSearchRoom\", \"onRoomActionHandler\"])) : createCommentVNode(\"\", true),\n      createVNode(_component_room, {\n        \"current-user-id\": $props.currentUserId,\n        rooms: $options.roomsCasted,\n        \"room-id\": $data.room.roomId || \"\",\n        \"load-first-room\": $options.loadFirstRoomCasted,\n        messages: $options.messagesCasted,\n        \"room-message\": $props.roomMessage,\n        \"messages-loaded\": $options.messagesLoadedCasted,\n        \"menu-actions\": $options.menuActionsCasted,\n        \"message-actions\": $options.messageActionsCasted,\n        \"message-selection-actions\": $options.messageSelectionActionsCasted,\n        \"auto-scroll\": $options.autoScrollCasted,\n        \"show-send-icon\": $options.showSendIconCasted,\n        \"show-files\": $options.showFilesCasted,\n        \"show-audio\": $options.showAudioCasted,\n        \"audio-bit-rate\": $props.audioBitRate,\n        \"audio-sample-rate\": $props.audioSampleRate,\n        \"show-emojis\": $options.showEmojisCasted,\n        \"show-reaction-emojis\": $options.showReactionEmojisCasted,\n        \"show-new-messages-divider\": $options.showNewMessagesDividerCasted,\n        \"show-footer\": $options.showFooterCasted,\n        \"text-messages\": $options.t,\n        \"single-room\": $options.singleRoomCasted,\n        \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n        \"text-formatting\": $options.textFormattingCasted,\n        \"link-options\": $options.linkOptionsCasted,\n        \"is-mobile\": $data.isMobile,\n        \"loading-rooms\": $options.loadingRoomsCasted,\n        \"room-info-enabled\": $options.roomInfoEnabledCasted,\n        \"textarea-action-enabled\": $options.textareaActionEnabledCasted,\n        \"textarea-auto-focus\": $options.textareaAutoFocusCasted,\n        \"user-tags-enabled\": $options.userTagsEnabledCasted,\n        \"emojis-suggestion-enabled\": $options.emojisSuggestionEnabledCasted,\n        \"scroll-distance\": $props.scrollDistance,\n        \"accepted-files\": $props.acceptedFiles,\n        \"capture-files\": $props.captureFiles,\n        \"multiple-files\": $options.multipleFilesCasted,\n        \"templates-text\": $options.templatesTextCasted,\n        \"username-options\": $options.usernameOptionsCasted,\n        \"emoji-data-source\": $props.emojiDataSource,\n        onToggleRoomsList: $options.toggleRoomsList,\n        onRoomInfo: $options.roomInfo,\n        onFetchMessages: $options.fetchMessages,\n        onSendMessage: $options.sendMessage,\n        onEditMessage: $options.editMessage,\n        onDeleteMessage: $options.deleteMessage,\n        onOpenFile: $options.openFile,\n        onOpenUserTag: $options.openUserTag,\n        onOpenFailedMessage: $options.openFailedMessage,\n        onMenuActionHandler: $options.menuActionHandler,\n        onMessageActionHandler: $options.messageActionHandler,\n        onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n        onSendMessageReaction: $options.sendMessageReaction,\n        onTypingMessage: $options.typingMessage,\n        onTextareaActionHandler: $options.textareaActionHandler\n      }, createSlots({ _: 2 }, [\n        renderList($data.slots, (el) => {\n          return {\n            name: el.slot,\n            fn: withCtx((data) => [\n              renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n            ])\n          };\n        })\n      ]), 1032, [\"current-user-id\", \"rooms\", \"room-id\", \"load-first-room\", \"messages\", \"room-message\", \"messages-loaded\", \"menu-actions\", \"message-actions\", \"message-selection-actions\", \"auto-scroll\", \"show-send-icon\", \"show-files\", \"show-audio\", \"audio-bit-rate\", \"audio-sample-rate\", \"show-emojis\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"show-footer\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"loading-rooms\", \"room-info-enabled\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"scroll-distance\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"templates-text\", \"username-options\", \"emoji-data-source\", \"onToggleRoomsList\", \"onRoomInfo\", \"onFetchMessages\", \"onSendMessage\", \"onEditMessage\", \"onDeleteMessage\", \"onOpenFile\", \"onOpenUserTag\", \"onOpenFailedMessage\", \"onMenuActionHandler\", \"onMessageActionHandler\", \"onMessageSelectionActionHandler\", \"onSendMessageReaction\", \"onTypingMessage\", \"onTextareaActionHandler\"])\n    ]),\n    createVNode(Transition, {\n      name: \"vac-fade-preview\",\n      appear: \"\"\n    }, {\n      default: withCtx(() => [\n        $data.showMediaPreview ? (openBlock(), createBlock(_component_media_preview, {\n          key: 0,\n          file: $data.previewFile,\n          onCloseMediaPreview: _cache[1] || (_cache[1] = ($event) => $data.showMediaPreview = false)\n        }, createSlots({ _: 2 }, [\n          renderList($data.slots, (el) => {\n            return {\n              name: el.slot,\n              fn: withCtx((data) => [\n                renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n              ])\n            };\n          })\n        ]), 1032, [\"file\"])) : createCommentVNode(\"\", true)\n      ]),\n      _: 3\n    })\n  ], 4);\n}\nvar ChatWindow = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"styles\", [_style_0]]]);\nconst VueAdvancedChat = defineCustomElement(ChatWindow);\nconst PACKAGE_NAME = \"vue-advanced-chat\";\nfunction register() {\n  if (!customElements.get(PACKAGE_NAME)) {\n    customElements.define(PACKAGE_NAME, VueAdvancedChat);\n  }\n}\nexport { VueAdvancedChat, register };\n","import { render } from \"./ChatComponent.vue?vue&type=template&id=61a89d0e&ts=true\"\nimport script from \"./ChatComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ChatComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ChatComponent.vue?vue&type=style&index=0&id=61a89d0e&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4610efbd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"bell\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n  src: \"/static/teleforma/images/bell.svg\",\n  alt: \"Notifications\",\n  title: \"Notifications\",\n  class: \"bell-image\"\n}, null, -1))\nconst _hoisted_3 = {\n  key: 0,\n  class: \"bell-count\"\n}\nconst _hoisted_4 = {\n  key: 0,\n  class: \"notifications-list\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_notification_message = _resolveComponent(\"notification-message\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", {\n    id: \"notifications\",\n    onFocus: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.open && _ctx.open(...args))),\n    onFocusout: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.close && _ctx.close(...args))),\n    tabindex: \"0\"\n  }, [\n    _createElementVNode(\"div\", _hoisted_1, [\n      _hoisted_2,\n      (_ctx.numberOfUnread > 0)\n        ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.numberOfUnread), 1))\n        : _createCommentVNode(\"\", true)\n    ]),\n    (_ctx.opened)\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n          _createElementVNode(\"ul\", null, [\n            (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.messages, (message) => {\n              return (_openBlock(), _createBlock(_component_notification_message, {\n                key: message._id,\n                id: message._id,\n                content: message.content,\n                url: message.url,\n                viewed: message.viewed,\n                \"creation-date\": message.created\n              }, null, 8, [\"id\", \"content\", \"url\", \"viewed\", \"creation-date\"]))\n            }), 128))\n          ])\n        ]))\n      : _createCommentVNode(\"\", true)\n  ], 32))\n}","<template>\n  <div id=\"notifications\" @focus=\"open\" @focusout=\"close\" tabindex=\"0\">\n    <div class=\"bell\">\n      <img src=\"/static/teleforma/images/bell.svg\" alt=\"Notifications\" title=\"Notifications\" class=\"bell-image\" />\n      <span v-if=\"numberOfUnread > 0\" class=\"bell-count\">{{ numberOfUnread }}</span>\n    </div>\n    <div v-if=\"opened\" class=\"notifications-list\">\n      <!-- <h1 v-if=\"currentUserId\">{{ currentUserId }}</h1>\n      <h1 v-else>Pas d'utilisateur</h1> -->\n      <ul>\n        <notification-message\n          v-for=\"message in messages\"\n          :key=\"message._id\"\n          :id=\"message._id\"\n          :content=\"message.content\"\n          :url=\"message.url\"\n          :viewed=\"message.viewed\"\n          :creation-date=\"message.created\"\n        ></notification-message>\n      </ul>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\ninterface BaseComponentData {\n  socket: WebSocket | null\n  messagesLoaded: boolean\n  messages: any[]\n  currentUserId: number | null\n  opened: boolean\n}\n\nexport default defineComponent({\n  \n  data(): BaseComponentData {\n    return {\n      socket: null,\n      messagesLoaded: false,\n      messages: [],\n      currentUserId: null,\n      opened: false\n    }\n  },\n  components: {\n    NotificationMessage\n  },\n  created() {\n    // get room info\n    const userId = document.getElementById(\"user_id\")\n    if (!userId) return\n    // this.connect(`notifications_${userId}`)\n    this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n    this.connect()\n  },\n\n  methods: {\n    connect() {\n      // connect to socket\n      let protocol = \"wss\"\n      if (window.location.protocol != \"https:\") protocol = \"ws\"\n      this.socket = new WebSocket(\n        protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n      )\n      this.fetchMessages()\n\n      this.socket.onclose = () => {\n        console.log(\"Chat socket closed\")\n      }\n    },\n\n    async fetchMessages() {\n      this.socket!.onmessage = (e) => {\n        const data = JSON.parse(e.data)\n        const type = data.type\n        // debugger;\n        // do not load messages in case of socket reconnect\n        if (type === \"initial\" && this.messagesLoaded) return\n\n        const newMessages = data.messages\n\n        // check if a message with the same id already exists\n        // it means the message have been updated (probably the \"viewed\" state)\n        let existing = null\n        if (type === \"new\" && newMessages.length === 1) {\n          existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n        }\n\n        // if it exists, then we update it instead of appending a new one\n        if (existing !== null && existing !== -1) {\n          this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n        } else this.messages = [...newMessages, ...this.messages]\n        if (type === \"initial\") this.messagesLoaded = true\n      }\n    },\n\n    open() {\n      this.opened = true\n    },\n    close() {\n      this.opened = false\n    }\n  },\n\n  computed: {\n    numberOfUnread(): any {\n      return this.messages.filter((message) => !message.viewed).length\n    }\n  }\n})\n</script>\n\n<style scoped>\n#notifications {\n  position: absolute;\n  top: 0px;\n  right: 5px;\n  text-align: left;\n}\n.bell {\n  width: 40px;\n  height: 40px;\n  position: relative;\n  cursor: pointer;\n}\n.bell-count {\n  position: absolute;\n  width: 20px;\n  height: 20px;\n  top: 5px;\n  right: 0px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  color: white;\n  border-radius: 10px;\n  background-color: red;\n}\n\n.notifications-list {\n  position: absolute;\n  background-color: white;\n  z-index: 100;\n  right: 10px;\n  width: 400px;\n  max-height: calc(100vh - 300px);\n  max-width: calc(100vw - 50px);\n  border: 1px solid lightblue;\n  border-radius: 3px;\n  overflow-y: scroll;\n}\n\nul {\n  margin: 0;\n  padding: 0;\n  box-shadow: 5px 5px 5px grey;\n}\n</style>\n","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-fa1f8db4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"date\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"li\", {\n    onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onClick())),\n    onMouseup: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.onMiddleClick()), [\"middle\"]))\n  }, [\n    _createElementVNode(\"span\", {\n      class: _normalizeClass({ unviewed: !_ctx.viewed, text: true })\n    }, _toDisplayString(_ctx.content), 3),\n    _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.relativeCreationDate), 1)\n  ], 32))\n}","<template>\n  <li @click=\"onClick()\" @click.middle=\"onMiddleClick()\">\n    <span :class=\"{ unviewed: !viewed, text: true }\">{{ content }}</span>\n    <span class=\"date\">{{ relativeCreationDate }} </span>\n  </li>\n</template>\n\n<script lang=\"ts\">\n\nimport { defineComponent } from 'vue'\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n\nexport default defineComponent({\n  props: {\n    id: Number,\n    content: String,\n    url: String,\n    viewed: Boolean,\n    creationDate: String\n  },\n\n  methods: {\n    async setAsViewed() {\n      if (this.viewed === false) {\n        await axios.post(\"/notification\", { id: this.id, viewed: true })\n      }\n    },\n\n    async onClick() {\n      await this.setAsViewed()\n      if (this.url) window.location.href = this.url\n    },\n\n    async onMiddleClick() {\n      await this.setAsViewed()\n      if (this.url) window.open(this.url, \"_blank\")\n    }\n  },\n  computed: {\n    relativeCreationDate():string {\n      return formatRelative(new Date(this.creationDate as string), new Date(), { locale: fr })\n    }\n  }\n})\n</script>\n\n<style scoped>\nli {\n  list-style: none;\n  display: block;\n  align-items: center;\n  margin: 0;\n  border-radius: 0;\n  padding: 10px;\n  cursor: pointer;\n  overflow: hidden;\n}\nli:hover {\n  background-color: #ccf2cf;\n}\nli:not(:last-child) {\n  border-bottom: 1px solid lightblue;\n}\n\n.unviewed {\n  font-weight: bold;\n}\n.date {\n  float: right;\n  color: lightslategrey;\n  font-size: 0.9em;\n  font-style: italic;\n}\n</style>\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n  var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n  utcDate.setUTCFullYear(date.getFullYear());\n  return date.getTime() - utcDate.getTime();\n}","export default function requiredArgs(required, args) {\n  if (args.length < required) {\n    throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n  }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n  requiredArgs(1, arguments);\n  var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n  if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime());\n  } else if (typeof argument === 'number' || argStr === '[object Number]') {\n    return new Date(argument);\n  } else {\n    if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n      // eslint-disable-next-line no-console\n      console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n      console.warn(new Error().stack);\n    }\n\n    return new Date(NaN);\n  }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var startOfDayLeft = startOfDay(dirtyDateLeft);\n  var startOfDayRight = startOfDay(dirtyDateRight);\n  var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n  var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n  requiredArgs(1, arguments);\n  return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n *   if the first argument is not an instance of Date.\n *   Instead, argument is converted beforehand using `toDate`.\n *\n *   Examples:\n *\n *   | `isValid` argument        | Before v2.0.0 | v2.0.0 onward |\n *   |---------------------------|---------------|---------------|\n *   | `new Date()`              | `true`        | `true`        |\n *   | `new Date('2016-01-01')`  | `true`        | `true`        |\n *   | `new Date('')`            | `false`       | `false`       |\n *   | `new Date(1488370835081)` | `true`        | `true`        |\n *   | `new Date(NaN)`           | `false`       | `false`       |\n *   | `'2016-01-01'`            | `TypeError`   | `false`       |\n *   | `''`                      | `TypeError`   | `false`       |\n *   | `1488370835081`           | `TypeError`   | `true`        |\n *   | `NaN`                     | `TypeError`   | `false`       |\n *\n *   We introduce this change to make *date-fns* consistent with ECMAScript behavior\n *   that try to coerce arguments to the expected type\n *   (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n  requiredArgs(1, arguments);\n\n  if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n    return false;\n  }\n\n  var date = toDate(dirtyDate);\n  return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'less than a second',\n    other: 'less than {{count}} seconds'\n  },\n  xSeconds: {\n    one: '1 second',\n    other: '{{count}} seconds'\n  },\n  halfAMinute: 'half a minute',\n  lessThanXMinutes: {\n    one: 'less than a minute',\n    other: 'less than {{count}} minutes'\n  },\n  xMinutes: {\n    one: '1 minute',\n    other: '{{count}} minutes'\n  },\n  aboutXHours: {\n    one: 'about 1 hour',\n    other: 'about {{count}} hours'\n  },\n  xHours: {\n    one: '1 hour',\n    other: '{{count}} hours'\n  },\n  xDays: {\n    one: '1 day',\n    other: '{{count}} days'\n  },\n  aboutXWeeks: {\n    one: 'about 1 week',\n    other: 'about {{count}} weeks'\n  },\n  xWeeks: {\n    one: '1 week',\n    other: '{{count}} weeks'\n  },\n  aboutXMonths: {\n    one: 'about 1 month',\n    other: 'about {{count}} months'\n  },\n  xMonths: {\n    one: '1 month',\n    other: '{{count}} months'\n  },\n  aboutXYears: {\n    one: 'about 1 year',\n    other: 'about {{count}} years'\n  },\n  xYears: {\n    one: '1 year',\n    other: '{{count}} years'\n  },\n  overXYears: {\n    one: 'over 1 year',\n    other: 'over {{count}} years'\n  },\n  almostXYears: {\n    one: 'almost 1 year',\n    other: 'almost {{count}} years'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === 'string') {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace('{{count}}', count.toString());\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'in ' + result;\n    } else {\n      return result + ' ago';\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n  return function () {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // TODO: Remove String()\n    var width = options.width ? String(options.width) : args.defaultWidth;\n    var format = args.formats[width] || args.formats[args.defaultWidth];\n    return format;\n  };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: 'EEEE, MMMM do, y',\n  long: 'MMMM do, y',\n  medium: 'MMM d, y',\n  short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n  full: 'h:mm:ss a zzzz',\n  long: 'h:mm:ss a z',\n  medium: 'h:mm:ss a',\n  short: 'h:mm a'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'at' {{time}}\",\n  long: \"{{date}} 'at' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"'last' eeee 'at' p\",\n  yesterday: \"'yesterday at' p\",\n  today: \"'today at' p\",\n  tomorrow: \"'tomorrow at' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n  return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n  return function (dirtyIndex, dirtyOptions) {\n    var options = dirtyOptions || {};\n    var context = options.context ? String(options.context) : 'standalone';\n    var valuesArray;\n\n    if (context === 'formatting' && args.formattingValues) {\n      var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n      var width = options.width ? String(options.width) : defaultWidth;\n      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n    } else {\n      var _defaultWidth = args.defaultWidth;\n\n      var _width = options.width ? String(options.width) : args.defaultWidth;\n\n      valuesArray = args.values[_width] || args.values[_defaultWidth];\n    }\n\n    var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n    return valuesArray[index];\n  };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['B', 'A'],\n  abbreviated: ['BC', 'AD'],\n  wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n  narrow: ['1', '2', '3', '4'],\n  abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n  wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n  abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n  narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n  abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n  wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  }\n};\nvar formattingDayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n  var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n  // if they are different for different grammatical genders,\n  // use `options.unit`.\n  //\n  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n  // 'day', 'hour', 'minute', 'second'.\n\n  var rem100 = number % 100;\n\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + 'st';\n\n      case 2:\n        return number + 'nd';\n\n      case 3:\n        return number + 'rd';\n    }\n  }\n\n  return number + 'th';\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return quarter - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide',\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: 'wide'\n  })\n};\nexport default localize;","export default function buildMatchFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var width = options.width;\n    var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n    var matchResult = string.match(matchPattern);\n\n    if (!matchResult) {\n      return null;\n    }\n\n    var matchedString = matchResult[0];\n    var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n    var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    }) : findKey(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    });\n    var value;\n    value = args.valueCallback ? args.valueCallback(key) : key;\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}\n\nfunction findKey(object, predicate) {\n  for (var key in object) {\n    if (object.hasOwnProperty(key) && predicate(object[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}\n\nfunction findIndex(array, predicate) {\n  for (var key = 0; key < array.length; key++) {\n    if (predicate(array[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}","export default function buildMatchPatternFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var matchResult = string.match(args.matchPattern);\n    if (!matchResult) return null;\n    var matchedString = matchResult[0];\n    var parseResult = string.match(args.parsePattern);\n    if (!parseResult) return null;\n    var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(b|a)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|mo|tu|we|th|fr|sa)/i,\n  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mi/i,\n    noon: /^no/i,\n    morning: /morning/i,\n    afternoon: /afternoon/i,\n    evening: /evening/i,\n    night: /night/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n  code: 'en-US',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0\n    /* Sunday */\n    ,\n    firstWeekContainsDate: 1\n  }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n  if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n    return NaN;\n  }\n\n  var number = Number(dirtyNumber);\n\n  if (isNaN(number)) {\n    return number;\n  }\n\n  return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var timestamp = toDate(dirtyDate).getTime();\n  var amount = toInteger(dirtyAmount);\n  return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var timestamp = date.getTime();\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n  var startOfYearTimestamp = date.getTime();\n  var difference = timestamp - startOfYearTimestamp;\n  return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var weekStartsOn = 1;\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var fourthOfJanuaryOfNextYear = new Date(0);\n  fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n  var fourthOfJanuaryOfThisYear = new Date(0);\n  fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var year = getUTCISOWeekYear(dirtyDate);\n  var fourthOfJanuary = new Date(0);\n  fourthOfJanuary.setUTCFullYear(year, 0, 4);\n  fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCISOWeek(fourthOfJanuary);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var firstWeekOfNextYear = new Date(0);\n  firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n  firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n  var firstWeekOfThisYear = new Date(0);\n  firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n  var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n  var firstWeek = new Date(0);\n  firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeek.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCWeek(firstWeek, dirtyOptions);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n  var sign = number < 0 ? '-' : '';\n  var output = Math.abs(number).toString();\n\n  while (output.length < targetLength) {\n    output = '0' + output;\n  }\n\n  return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* |                                |\n * |  d  | Day of month                   |  D  |                                |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  m  | Minute                         |  M  | Month                          |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  y  | Year (abs)                     |  Y  |                                |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n  // Year\n  y: function (date, token) {\n    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n    // |----------|-------|----|-------|-------|-------|\n    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n    var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var year = signedYear > 0 ? signedYear : 1 - signedYear;\n    return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n  },\n  // Month\n  M: function (date, token) {\n    var month = date.getUTCMonth();\n    return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n  },\n  // Day of the month\n  d: function (date, token) {\n    return addLeadingZeros(date.getUTCDate(), token.length);\n  },\n  // AM or PM\n  a: function (date, token) {\n    var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return dayPeriodEnumValue.toUpperCase();\n\n      case 'aaa':\n        return dayPeriodEnumValue;\n\n      case 'aaaaa':\n        return dayPeriodEnumValue[0];\n\n      case 'aaaa':\n      default:\n        return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token) {\n    return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n  },\n  // Hour [0-23]\n  H: function (date, token) {\n    return addLeadingZeros(date.getUTCHours(), token.length);\n  },\n  // Minute\n  m: function (date, token) {\n    return addLeadingZeros(date.getUTCMinutes(), token.length);\n  },\n  // Second\n  s: function (date, token) {\n    return addLeadingZeros(date.getUTCSeconds(), token.length);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    var numberOfDigits = token.length;\n    var milliseconds = date.getUTCMilliseconds();\n    var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n    return addLeadingZeros(fractionalSeconds, token.length);\n  }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n  am: 'am',\n  pm: 'pm',\n  midnight: 'midnight',\n  noon: 'noon',\n  morning: 'morning',\n  afternoon: 'afternoon',\n  evening: 'evening',\n  night: 'night'\n};\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |\n * |  p! | Long localized time            |  P! | Long localized date            |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n  // Era\n  G: function (date, token, localize) {\n    var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n    switch (token) {\n      // AD, BC\n      case 'G':\n      case 'GG':\n      case 'GGG':\n        return localize.era(era, {\n          width: 'abbreviated'\n        });\n      // A, B\n\n      case 'GGGGG':\n        return localize.era(era, {\n          width: 'narrow'\n        });\n      // Anno Domini, Before Christ\n\n      case 'GGGG':\n      default:\n        return localize.era(era, {\n          width: 'wide'\n        });\n    }\n  },\n  // Year\n  y: function (date, token, localize) {\n    // Ordinal number\n    if (token === 'yo') {\n      var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n      var year = signedYear > 0 ? signedYear : 1 - signedYear;\n      return localize.ordinalNumber(year, {\n        unit: 'year'\n      });\n    }\n\n    return lightFormatters.y(date, token);\n  },\n  // Local week-numbering year\n  Y: function (date, token, localize, options) {\n    var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n    if (token === 'YY') {\n      var twoDigitYear = weekYear % 100;\n      return addLeadingZeros(twoDigitYear, 2);\n    } // Ordinal number\n\n\n    if (token === 'Yo') {\n      return localize.ordinalNumber(weekYear, {\n        unit: 'year'\n      });\n    } // Padding\n\n\n    return addLeadingZeros(weekYear, token.length);\n  },\n  // ISO week-numbering year\n  R: function (date, token) {\n    var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n    return addLeadingZeros(isoWeekYear, token.length);\n  },\n  // Extended year. This is a single number designating the year of this calendar system.\n  // The main difference between `y` and `u` localizers are B.C. years:\n  // | Year | `y` | `u` |\n  // |------|-----|-----|\n  // | AC 1 |   1 |   1 |\n  // | BC 1 |   1 |   0 |\n  // | BC 2 |   2 |  -1 |\n  // Also `yy` always returns the last two digits of a year,\n  // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n  u: function (date, token) {\n    var year = date.getUTCFullYear();\n    return addLeadingZeros(year, token.length);\n  },\n  // Quarter\n  Q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'Q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'QQ':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'Qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'QQQ':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'QQQQQ':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'QQQQ':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone quarter\n  q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'qq':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'qqq':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'qqqqq':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'qqqq':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Month\n  M: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      case 'M':\n      case 'MM':\n        return lightFormatters.M(date, token);\n      // 1st, 2nd, ..., 12th\n\n      case 'Mo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'MMM':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // J, F, ..., D\n\n      case 'MMMMM':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // January, February, ..., December\n\n      case 'MMMM':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone month\n  L: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      // 1, 2, ..., 12\n      case 'L':\n        return String(month + 1);\n      // 01, 02, ..., 12\n\n      case 'LL':\n        return addLeadingZeros(month + 1, 2);\n      // 1st, 2nd, ..., 12th\n\n      case 'Lo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'LLL':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // J, F, ..., D\n\n      case 'LLLLL':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // January, February, ..., December\n\n      case 'LLLL':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Local week of year\n  w: function (date, token, localize, options) {\n    var week = getUTCWeek(date, options);\n\n    if (token === 'wo') {\n      return localize.ordinalNumber(week, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(week, token.length);\n  },\n  // ISO week of year\n  I: function (date, token, localize) {\n    var isoWeek = getUTCISOWeek(date);\n\n    if (token === 'Io') {\n      return localize.ordinalNumber(isoWeek, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(isoWeek, token.length);\n  },\n  // Day of the month\n  d: function (date, token, localize) {\n    if (token === 'do') {\n      return localize.ordinalNumber(date.getUTCDate(), {\n        unit: 'date'\n      });\n    }\n\n    return lightFormatters.d(date, token);\n  },\n  // Day of year\n  D: function (date, token, localize) {\n    var dayOfYear = getUTCDayOfYear(date);\n\n    if (token === 'Do') {\n      return localize.ordinalNumber(dayOfYear, {\n        unit: 'dayOfYear'\n      });\n    }\n\n    return addLeadingZeros(dayOfYear, token.length);\n  },\n  // Day of week\n  E: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n\n    switch (token) {\n      // Tue\n      case 'E':\n      case 'EE':\n      case 'EEE':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'EEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'EEEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'EEEE':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Local day of week\n  e: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (Nth day of week with current locale or weekStartsOn)\n      case 'e':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'ee':\n        return addLeadingZeros(localDayOfWeek, 2);\n      // 1st, 2nd, ..., 7th\n\n      case 'eo':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'eee':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'eeeee':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'eeeeee':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'eeee':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone local day of week\n  c: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (same as in `e`)\n      case 'c':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'cc':\n        return addLeadingZeros(localDayOfWeek, token.length);\n      // 1st, 2nd, ..., 7th\n\n      case 'co':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'ccc':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // T\n\n      case 'ccccc':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // Tu\n\n      case 'cccccc':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'standalone'\n        });\n      // Tuesday\n\n      case 'cccc':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // ISO day of week\n  i: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n    var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n    switch (token) {\n      // 2\n      case 'i':\n        return String(isoDayOfWeek);\n      // 02\n\n      case 'ii':\n        return addLeadingZeros(isoDayOfWeek, token.length);\n      // 2nd\n\n      case 'io':\n        return localize.ordinalNumber(isoDayOfWeek, {\n          unit: 'day'\n        });\n      // Tue\n\n      case 'iii':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'iiiii':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'iiiiii':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'iiii':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM or PM\n  a: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'aaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'aaaaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'aaaa':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM, PM, midnight, noon\n  b: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours === 12) {\n      dayPeriodEnumValue = dayPeriodEnum.noon;\n    } else if (hours === 0) {\n      dayPeriodEnumValue = dayPeriodEnum.midnight;\n    } else {\n      dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n    }\n\n    switch (token) {\n      case 'b':\n      case 'bb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'bbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'bbbbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'bbbb':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // in the morning, in the afternoon, in the evening, at night\n  B: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours >= 17) {\n      dayPeriodEnumValue = dayPeriodEnum.evening;\n    } else if (hours >= 12) {\n      dayPeriodEnumValue = dayPeriodEnum.afternoon;\n    } else if (hours >= 4) {\n      dayPeriodEnumValue = dayPeriodEnum.morning;\n    } else {\n      dayPeriodEnumValue = dayPeriodEnum.night;\n    }\n\n    switch (token) {\n      case 'B':\n      case 'BB':\n      case 'BBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'BBBBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'BBBB':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token, localize) {\n    if (token === 'ho') {\n      var hours = date.getUTCHours() % 12;\n      if (hours === 0) hours = 12;\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.h(date, token);\n  },\n  // Hour [0-23]\n  H: function (date, token, localize) {\n    if (token === 'Ho') {\n      return localize.ordinalNumber(date.getUTCHours(), {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.H(date, token);\n  },\n  // Hour [0-11]\n  K: function (date, token, localize) {\n    var hours = date.getUTCHours() % 12;\n\n    if (token === 'Ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Hour [1-24]\n  k: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    if (hours === 0) hours = 24;\n\n    if (token === 'ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Minute\n  m: function (date, token, localize) {\n    if (token === 'mo') {\n      return localize.ordinalNumber(date.getUTCMinutes(), {\n        unit: 'minute'\n      });\n    }\n\n    return lightFormatters.m(date, token);\n  },\n  // Second\n  s: function (date, token, localize) {\n    if (token === 'so') {\n      return localize.ordinalNumber(date.getUTCSeconds(), {\n        unit: 'second'\n      });\n    }\n\n    return lightFormatters.s(date, token);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    return lightFormatters.S(date, token);\n  },\n  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n  X: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    if (timezoneOffset === 0) {\n      return 'Z';\n    }\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'X':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XX`\n\n      case 'XXXX':\n      case 'XX':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XXX`\n\n      case 'XXXXX':\n      case 'XXX': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n  x: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'x':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xx`\n\n      case 'xxxx':\n      case 'xx':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xxx`\n\n      case 'xxxxx':\n      case 'xxx': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (GMT)\n  O: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'O':\n      case 'OO':\n      case 'OOO':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'OOOO':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (specific non-location)\n  z: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'z':\n      case 'zz':\n      case 'zzz':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'zzzz':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Seconds timestamp\n  t: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = Math.floor(originalDate.getTime() / 1000);\n    return addLeadingZeros(timestamp, token.length);\n  },\n  // Milliseconds timestamp\n  T: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = originalDate.getTime();\n    return addLeadingZeros(timestamp, token.length);\n  }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = Math.floor(absOffset / 60);\n  var minutes = absOffset % 60;\n\n  if (minutes === 0) {\n    return sign + String(hours);\n  }\n\n  var delimiter = dirtyDelimiter || '';\n  return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n  if (offset % 60 === 0) {\n    var sign = offset > 0 ? '-' : '+';\n    return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n  }\n\n  return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n  var delimiter = dirtyDelimiter || '';\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n  var minutes = addLeadingZeros(absOffset % 60, 2);\n  return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'P':\n      return formatLong.date({\n        width: 'short'\n      });\n\n    case 'PP':\n      return formatLong.date({\n        width: 'medium'\n      });\n\n    case 'PPP':\n      return formatLong.date({\n        width: 'long'\n      });\n\n    case 'PPPP':\n    default:\n      return formatLong.date({\n        width: 'full'\n      });\n  }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'p':\n      return formatLong.time({\n        width: 'short'\n      });\n\n    case 'pp':\n      return formatLong.time({\n        width: 'medium'\n      });\n\n    case 'ppp':\n      return formatLong.time({\n        width: 'long'\n      });\n\n    case 'pppp':\n    default:\n      return formatLong.time({\n        width: 'full'\n      });\n  }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n  var matchResult = pattern.match(/(P+)(p+)?/) || [];\n  var datePattern = matchResult[1];\n  var timePattern = matchResult[2];\n\n  if (!timePattern) {\n    return dateLongFormatter(pattern, formatLong);\n  }\n\n  var dateTimeFormat;\n\n  switch (datePattern) {\n    case 'P':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'short'\n      });\n      break;\n\n    case 'PP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'medium'\n      });\n      break;\n\n    case 'PPP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'long'\n      });\n      break;\n\n    case 'PPPP':\n    default:\n      dateTimeFormat = formatLong.dateTime({\n        width: 'full'\n      });\n      break;\n  }\n\n  return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n  p: timeLongFormatter,\n  P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n  return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n  return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n  if (token === 'YYYY') {\n    throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'YY') {\n    throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'D') {\n    throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'DD') {\n    throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era                             | G..GGG  | AD, BC                            |       |\n * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 | GGGGG   | A, B                              |       |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |\n * |                                 | yy      | 44, 01, 00, 17                    | 5     |\n * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |\n * |                                 | yyyyy   | ...                               | 3,5   |\n * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |\n * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |\n * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |\n * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |\n * |                                 | YYYYY   | ...                               | 3,5   |\n * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |\n * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |\n * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |\n * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |\n * |                                 | RRRRR   | ...                               | 3,5,7 |\n * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |\n * |                                 | uu      | -43, 01, 1900, 2017               | 5     |\n * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |\n * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |\n * |                                 | uuuuu   | ...                               | 3,5   |\n * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |\n * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | QQ      | 01, 02, 03, 04                    |       |\n * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |\n * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | qq      | 01, 02, 03, 04                    |       |\n * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |\n * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | MM      | 01, 02, ..., 12                   |       |\n * |                                 | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 | MMMM    | January, February, ..., December  | 2     |\n * |                                 | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |\n * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | LL      | 01, 02, ..., 12                   |       |\n * |                                 | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 | LLLL    | January, February, ..., December  | 2     |\n * |                                 | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | w       | 1, 2, ..., 53                     |       |\n * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |\n * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | II      | 01, 02, ..., 53                   | 7     |\n * | Day of month                    | d       | 1, 2, ..., 31                     |       |\n * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |\n * |                                 | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |\n * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |\n * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |\n * |                                 | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 | DDDD    | ...                               | 3     |\n * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |\n * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |\n * |                                 | ii      | 01, 02, ..., 07                   | 7     |\n * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |\n * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |\n * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |\n * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |\n * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | ee      | 02, 03, ..., 01                   |       |\n * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | cc      | 02, 03, ..., 01                   |       |\n * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          | a..aa   | AM, PM                            |       |\n * |                                 | aaa     | am, pm                            |       |\n * |                                 | aaaa    | a.m., p.m.                        | 2     |\n * |                                 | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |\n * |                                 | bbb     | am, pm, noon, midnight            |       |\n * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |\n * |                                 | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |\n * |                                 | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |\n * |                                 | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |\n * |                                 | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |\n * |                                 | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          | m       | 0, 1, ..., 59                     |       |\n * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | mm      | 00, 01, ..., 59                   |       |\n * | Second                          | s       | 0, 1, ..., 59                     |       |\n * |                                 | so      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | ss      | 00, 01, ..., 59                   |       |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |       |\n * |                                 | SS      | 00, 01, ..., 99                   |       |\n * |                                 | SSS     | 000, 001, ..., 999                |       |\n * |                                 | SSSS    | ...                               | 3     |\n * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |\n * |                                 | XX      | -0800, +0530, Z                   |       |\n * |                                 | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |\n * |                                 | xx      | -0800, +0530, +0000               |       |\n * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |\n * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |\n * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |\n * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |\n * | Seconds timestamp               | t       | 512969520                         | 7     |\n * |                                 | tt      | ...                               | 3,7   |\n * | Milliseconds timestamp          | T       | 512969520900                      | 7     |\n * |                                 | TT      | ...                               | 3,7   |\n * | Long localized date             | P       | 04/29/1453                        | 7     |\n * |                                 | PP      | Apr 29, 1453                      | 7     |\n * |                                 | PPP     | April 29th, 1453                  | 7     |\n * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |\n * | Long localized time             | p       | 12:00 AM                          | 7     |\n * |                                 | pp      | 12:00:00 AM                       | 7     |\n * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |\n * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |\n * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |\n * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |\n * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |\n * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n *    the output will be the same as default pattern for this unit, usually\n *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n *    are marked with \"2\" in the last column of the table.\n *\n *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n *    The output will be padded with zeros to match the length of the pattern.\n *\n *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` always returns the last two digits of a year,\n *    while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n *    | Year | `yy` | `uu` |\n *    |------|------|------|\n *    | 1    |   01 |   01 |\n *    | 14   |   14 |   14 |\n *    | 376  |   76 |  376 |\n *    | 1453 |   53 | 1453 |\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n *    so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `t`: seconds timestamp\n *    - `T`: milliseconds timestamp\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   format(new Date(2016, 0, 1))\n *\n *   // v2.0.0 onward\n *   format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n *   ```\n *\n * - New format string API for `format` function\n *   which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n *   See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n *   see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n *   see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n *   locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var formatStr = String(dirtyFormatStr);\n  var options = dirtyOptions || {};\n  var locale = options.locale || defaultLocale;\n  var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  if (!locale.localize) {\n    throw new RangeError('locale must contain localize property');\n  }\n\n  if (!locale.formatLong) {\n    throw new RangeError('locale must contain formatLong property');\n  }\n\n  var originalDate = toDate(dirtyDate);\n\n  if (!isValid(originalDate)) {\n    throw new RangeError('Invalid time value');\n  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n  var utcDate = subMilliseconds(originalDate, timezoneOffset);\n  var formatterOptions = {\n    firstWeekContainsDate: firstWeekContainsDate,\n    weekStartsOn: weekStartsOn,\n    locale: locale,\n    _originalDate: originalDate\n  };\n  var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === 'p' || firstCharacter === 'P') {\n      var longFormatter = longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong, formatterOptions);\n    }\n\n    return substring;\n  }).join('').match(formattingTokensRegExp).map(function (substring) {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return \"'\";\n    }\n\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === \"'\") {\n      return cleanEscapedString(substring);\n    }\n\n    var formatter = formatters[firstCharacter];\n\n    if (formatter) {\n      if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      return formatter(utcDate, substring, locale.localize, formatterOptions);\n    }\n\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n    }\n\n    return substring;\n  }).join('');\n  return result;\n}\n\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport format from \"../format/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result                    |\n * |---------------------------|---------------------------|\n * | Previous 6 days           | last Sunday at 04:30 AM   |\n * | Last day                  | yesterday at 04:30 AM     |\n * | Same day                  | today at 04:30 AM         |\n * | Next day                  | tomorrow at 04:30 AM      |\n * | Next 6 days               | Sunday at 04:30 AM        |\n * | Other                     | 12/31/2017                |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(addDays(new Date(), -6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var baseDate = toDate(dirtyBaseDate);\n\n  var _ref = dirtyOptions || {},\n      _ref$locale = _ref.locale,\n      locale = _ref$locale === void 0 ? defaultLocale : _ref$locale,\n      _ref$weekStartsOn = _ref.weekStartsOn,\n      weekStartsOn = _ref$weekStartsOn === void 0 ? 0 : _ref$weekStartsOn;\n\n  if (!locale.localize) {\n    throw new RangeError('locale must contain localize property');\n  }\n\n  if (!locale.formatLong) {\n    throw new RangeError('locale must contain formatLong property');\n  }\n\n  if (!locale.formatRelative) {\n    throw new RangeError('locale must contain formatRelative property');\n  }\n\n  var diff = differenceInCalendarDays(date, baseDate);\n\n  if (isNaN(diff)) {\n    throw new RangeError('Invalid time value');\n  }\n\n  var token;\n\n  if (diff < -6) {\n    token = 'other';\n  } else if (diff < -1) {\n    token = 'lastWeek';\n  } else if (diff < 0) {\n    token = 'yesterday';\n  } else if (diff < 1) {\n    token = 'today';\n  } else if (diff < 2) {\n    token = 'tomorrow';\n  } else if (diff < 7) {\n    token = 'nextWeek';\n  } else {\n    token = 'other';\n  }\n\n  var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n  var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n  var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, {\n    locale: locale,\n    weekStartsOn: weekStartsOn\n  });\n  return format(date, formatStr, {\n    locale: locale,\n    weekStartsOn: weekStartsOn\n  });\n}","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'moins d’une seconde',\n    other: 'moins de {{count}} secondes'\n  },\n  xSeconds: {\n    one: '1 seconde',\n    other: '{{count}} secondes'\n  },\n  halfAMinute: '30 secondes',\n  lessThanXMinutes: {\n    one: 'moins d’une minute',\n    other: 'moins de {{count}} minutes'\n  },\n  xMinutes: {\n    one: '1 minute',\n    other: '{{count}} minutes'\n  },\n  aboutXHours: {\n    one: 'environ 1 heure',\n    other: 'environ {{count}} heures'\n  },\n  xHours: {\n    one: '1 heure',\n    other: '{{count}} heures'\n  },\n  xDays: {\n    one: '1 jour',\n    other: '{{count}} jours'\n  },\n  aboutXWeeks: {\n    one: 'environ 1 semaine',\n    other: 'environ {{count}} semaines'\n  },\n  xWeeks: {\n    one: '1 semaine',\n    other: '{{count}} semaines'\n  },\n  aboutXMonths: {\n    one: 'environ 1 mois',\n    other: 'environ {{count}} mois'\n  },\n  xMonths: {\n    one: '1 mois',\n    other: '{{count}} mois'\n  },\n  aboutXYears: {\n    one: 'environ 1 an',\n    other: 'environ {{count}} ans'\n  },\n  xYears: {\n    one: '1 an',\n    other: '{{count}} ans'\n  },\n  overXYears: {\n    one: 'plus d’un an',\n    other: 'plus de {{count}} ans'\n  },\n  almostXYears: {\n    one: 'presqu’un an',\n    other: 'presque {{count}} ans'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var form = formatDistanceLocale[token];\n\n  if (typeof form === 'string') {\n    result = form;\n  } else if (count === 1) {\n    result = form.one;\n  } else {\n    result = form.other.replace('{{count}}', String(count));\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'dans ' + result;\n    } else {\n      return 'il y a ' + result;\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: 'EEEE d MMMM y',\n  long: 'd MMMM y',\n  medium: 'd MMM y',\n  short: 'dd/MM/y'\n};\nvar timeFormats = {\n  full: 'HH:mm:ss zzzz',\n  long: 'HH:mm:ss z',\n  medium: 'HH:mm:ss',\n  short: 'HH:mm'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'à' {{time}}\",\n  long: \"{{date}} 'à' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"eeee 'dernier à' p\",\n  yesterday: \"'hier à' p\",\n  today: \"'aujourd’hui à' p\",\n  tomorrow: \"'demain à' p'\",\n  nextWeek: \"eeee 'prochain à' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n  return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['av. J.-C', 'ap. J.-C'],\n  abbreviated: ['av. J.-C', 'ap. J.-C'],\n  wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n  narrow: ['T1', 'T2', 'T3', 'T4'],\n  abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n  wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n  abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n  wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n  narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n  short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n  abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n  wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'mat.',\n    afternoon: 'ap.m.',\n    evening: 'soir',\n    night: 'mat.'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'matin',\n    afternoon: 'après-midi',\n    evening: 'soir',\n    night: 'matin'\n  },\n  wide: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'minuit',\n    noon: 'midi',\n    morning: 'du matin',\n    afternoon: 'de l’après-midi',\n    evening: 'du soir',\n    night: 'du matin'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, options) {\n  var number = Number(dirtyNumber);\n  var unit = options === null || options === void 0 ? void 0 : options.unit;\n  if (number === 0) return '0';\n  var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n  var suffix;\n\n  if (number === 1) {\n    suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n  } else {\n    suffix = 'ème';\n  }\n\n  return number + suffix;\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return quarter - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide'\n  })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n  abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n  wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n  any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^T?[1234]/i,\n  abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n  wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n  wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[lmjvsd]/i,\n  short: /^(di|lu|ma|me|je|ve|sa)/i,\n  abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n  wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n  any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^min/i,\n    noon: /^mid/i,\n    morning: /mat/i,\n    afternoon: /ap/i,\n    evening: /soir/i,\n    night: /nuit/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n  code: 'fr',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1\n    /* Monday */\n    ,\n    firstWeekContainsDate: 4\n  }\n};\nexport default locale;","import { render } from \"./NotificationMessage.vue?vue&type=template&id=fa1f8db4&scoped=true&ts=true\"\nimport script from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationMessage.vue?vue&type=style&index=0&id=fa1f8db4&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa1f8db4\"]])\n\nexport default __exports__","import { render } from \"./NotificationsBell.vue?vue&type=template&id=4610efbd&scoped=true&ts=true\"\nimport script from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationsBell.vue?vue&type=style&index=0&id=4610efbd&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4610efbd\"]])\n\nexport default __exports__","export enum PlayerState {\n    UNSTARTED = 'UNSARTED',\n    ENDED = 'ENDED',\n    PLAYING = 'PLAYING',\n    PAUSE = 'PAUSE',\n    BUFFERING = 'BUFFERING',\n    LOADING = 'LOADING',\n    LOADED = 'LOADED',\n  }","export default function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : String(i);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\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  return obj;\n}","const ENABLE_DEBUG = true;\nexport const Logger = {\n  debug: (...args: unknown[]) => {\n    if (!ENABLE_DEBUG) return;\n    console.debug(...args);\n  },\n  error: (...args: unknown[]) => {\n    console.error(...args);\n  }\n};","import { PlayerState } from './constants';\nimport { MultiVideoPlayer, VideoPlayerOptions } from './main';\nimport { Logger } from \"./utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => { };\nclass VideoPlayer {\n  public videoId: string;\n  public videoPlayerConfig: VideoPlayerOptions;\n  // video js player\n  public videojs: any;\n  private player: MultiVideoPlayer;\n  public controls: boolean;\n  public main: boolean;\n  public videoPlayerArea: Element | null;\n  public videoElement: HTMLVideoElement | null;\n  public videoState: PlayerState;\n  private readonly _startSeconds: number;\n  private readonly loop: boolean;\n  public isPlaying: boolean;\n  constructor(player: MultiVideoPlayer, videoPlayerConfig: VideoPlayerOptions) {\n    this.videoId = Math.random().toString(36).substring(2, 15);\n    this.player = player;\n    this.videoPlayerConfig = videoPlayerConfig;\n    this.main = this.videoPlayerConfig.main ?? false;\n    this.controls = this.videoPlayerConfig.controls ?? player.options.controls ?? true;\n    this.loop = player.options.loop ?? false;\n\n    this._startSeconds = parseFloat(String(this.videoPlayerConfig.startSeconds ?? 0));\n\n    this.videoPlayerArea = null;\n    this.videoElement = null;\n    this.videoState = PlayerState.LOADING;\n    this.isPlaying = false;\n\n    this.mount();\n  }\n\n  private mount() {\n    this.render();\n    this.videoElement = document.querySelector(`#video_player_${this.videoId} video`);\n\n    if (!this.videoElement) {\n      return Logger.debug('video element not found');\n    }\n\n    // if we do not setTimeout here, controls act weirdly (no explanation...)\n    setTimeout(() => {\n      this.setupVideoElement({ controls: this.controls, main: this.main });\n    }, 1);\n\n\n    console.log(\"mount\")\n    console.log(this.videoElement, this.controls)\n\n    this.videoElement.addEventListener('play', this.onStateChange.bind(this, PlayerState.PLAYING), false);\n    this.videoElement.addEventListener('pause', this.onStateChange.bind(this, PlayerState.PAUSE), false);\n    this.videoElement.addEventListener('seeking', this.onSeeking.bind(this), false);\n    this.videoElement.addEventListener('timeupdate', this.onTimeUpdate.bind(this), false);\n    this.videoElement.addEventListener('loadeddata', this.onReady.bind(this), false);\n    this.videoElement.addEventListener('canplaythrough', this.onStateChange.bind(this, PlayerState.UNSTARTED), false);\n\n    this.videoElement.addEventListener('ended', this.onStateChange.bind(this, PlayerState.ENDED), false);\n    this.videoElement.addEventListener('waiting', this.onStateChange.bind(this, PlayerState.BUFFERING), false);\n  }\n\n  private onReady() {\n    console.log(\"READY\")\n    Logger.debug(this.videoId, '::[onReady]');\n    this.timeTo(0);\n    this.player.onReady();\n  }\n\n  private onSeeking() {\n    Logger.debug(this.videoId, '::[onSeeking]');\n    if (!this.main) {\n      return;\n    }\n    this.player.onTimeUpdate(this, this.getPlayedTime());\n  }\n\n  private onTimeUpdate() {\n    if (!this.main) {\n      return;\n    }\n    this.player.onTimeUpdate(this, this.getPlayedTime());\n  }\n\n  private onStateChange(state: PlayerState) {\n    console.log(\"on state change\", state)\n    Logger.debug(this.videoId, '::[onStateChange]', state);\n    this.videoState = state;\n\n    const statesToPropagate = [\n      PlayerState.BUFFERING,\n      PlayerState.PLAYING,\n      PlayerState.PAUSE,\n      PlayerState.ENDED,\n      PlayerState.UNSTARTED,\n    ];\n\n    if (state === PlayerState.PLAYING) {\n      this.isPlaying = true;\n      if (!this.main) {\n        return;\n      }\n    }\n\n    if (state === PlayerState.PAUSE) {\n      this.isPlaying = false;\n      if (!this.main) {\n        return;\n      }\n    }\n\n    if (statesToPropagate.includes(state)) {\n      console.log(\"progate\")\n      this.player.changeState(state, this);\n    }\n  }\n\n  private render() {\n    console.log(\"render\")\n    // if video area is defined, add video to area\n    this.videoPlayerArea = document.querySelector(this.videoPlayerConfig.id);\n    if (!this.videoPlayerArea) {\n      return Logger.debug('id not found: ', this.videoPlayerConfig.id);\n    }\n    this.videoPlayerArea.innerHTML = `\n        <video \n            id=\"video_player_${this.videoId}\"\n            class=\"video-js vjs-theme-fantasy\"\n            controls\n            preload=\"auto\"\n            data-setup='{\"playbackRates\": [1, 1.25, 1.5, 2]}'\n            style=\"width:100%;height:inherit;\"\n        >\n          <source src=\"${this.videoPlayerConfig.initialSrc}\" type=\"video/mp4\" />\n          <p class=\"vjs-no-js\">\n            To view this video please enable JavaScript, and consider upgrading to a\n            web browser that\n            <a href=\"https://videojs.com/html5-video-support/\" target=\"_blank\"\n              >supports HTML5 video</a\n            >\n          </p>\n        </video>\n    `;\n    // console.log(\"test\")\n    this.videojs = window.videojs(`video_player_${this.videoId}`);\n    this.videojs.controls(true)\n    // console.log(player);\n  }\n\n  private setupVideoElement(options: { controls?: boolean, main: boolean }) {\n    if (options.controls !== undefined)\n      this.setControls(options.controls);\n    this.setMain(options.main);\n  }\n\n  public _swap(videoPlayer: VideoPlayer) {\n    if (!this.videoElement || !videoPlayer.videoElement) return;\n    const nodeA = this.videoElement.parentElement;\n    const nodeB = videoPlayer.videoElement.parentElement;\n    const parentA = nodeA!.parentNode;\n    const parentB = nodeB!.parentNode;\n\n    // const newvideojs = videoPlayer.videojs;\n    // videoPlayer.videojs = this.videojs;\n    // this.videojs = newvideojs;\n\n    if (!parentA || !parentB) throw new Error('Parent node not found');\n\n    const siblingA = nodeA!.nextSibling === nodeB ? nodeA : nodeA!.nextSibling;\n    parentB.insertBefore(nodeA!, nodeB);\n    parentA.insertBefore(nodeB!, siblingA);\n\n    const thisControls = this.controls;\n    const thisMain = this.main;\n    this.setupVideoElement({ controls: videoPlayer.controls, main: videoPlayer.main });\n    videoPlayer.setupVideoElement({ controls: thisControls, main: thisMain });\n\n    // this.videojs.dispose();\n    // videoPlayer.videojs.dispose();\n    // this.videojs = videojs(`video_player_${this.videoId}`);\n    // videoPlayer.videojs = videojs(`video_player_${videoPlayer.videoId}`);\n  }\n\n  /**\n   * -------------------------------\n   * PUBLIC METHODS FOR VIDEO PLAYER\n   * -------------------------------\n   */\n\n  public async play() {\n    if (!this.videoElement) return;\n    if (this.videoState === PlayerState.PLAYING) return;\n    await this.videoElement.play().catch(noop);\n  }\n\n  public async pause() {\n    if (!this.videoElement) return;\n    if (this.videoState === PlayerState.PAUSE) return;\n    await this.videoElement.pause();\n  }\n\n  public stop() {\n    if (!this.videoElement) return;\n    this.videoElement.pause();\n    this.timeTo(this.getDuration() - 0.5);\n  }\n\n  public setControls(controls: boolean) {\n    if (!this.videoElement) return;\n    console.log(this.videojs)\n\n    console.log(\"set controls\", controls)\n    this.videojs.controls(controls)\n    // this.videojs.player.userActive(false)\n    // this.videoElement.controls = controls;\n    this.controls = controls;\n  }\n\n  public setMain(main: boolean) {\n    this.main = main;\n  }\n\n  public timeTo(time: number) {\n    if (!this.videoElement) return;\n    time = parseFloat(time.toString());\n    time = (time + this._startSeconds);\n\n    if (time >= this.getDuration()) {\n      this.videoElement.currentTime = this.getDuration() - 0.05;\n      Logger.debug('timeTo: time is greater than duration');\n      this.pause().then(noop);\n      return;\n    }\n\n    Logger.debug('set time to: ', time);\n    this.videoElement.currentTime = time;\n  }\n\n  public getDuration() {\n    return (this.videoElement?.duration || 0);\n  }\n\n  public getPlayLength() {\n    return this.getDuration() - this._startSeconds;\n  }\n\n  public getCurrentTime() {\n    return (this.videoElement?.currentTime || 0);\n  }\n\n  public getPlayedTime() {\n    const time = this.getCurrentTime() - this._startSeconds;\n    return Math.max(time, 0);\n  }\n\n  public isEnded() {\n    const diff = Math.abs(this.getCurrentTime() - this.getDuration());\n    return diff < 0.1;\n\n  }\n}\n\nexport default VideoPlayer;","import {PlayerState} from './constants';\nimport {MultiVideoPlayerOptions, VideoPlayerOptions} from './main';\nimport {Logger} from \"./utils\";\nimport VideoPlayer from './VideoPlayer';\n\nconst validStates = {\n  [PlayerState.LOADING]: [PlayerState.LOADED],\n  [PlayerState.LOADED]: [PlayerState.PLAYING],\n  [PlayerState.PLAYING]: [PlayerState.PAUSE, PlayerState.ENDED],\n  [PlayerState.PAUSE]: [PlayerState.PLAYING, PlayerState.ENDED],\n  [PlayerState.ENDED]: [PlayerState.PLAYING],\n\n  [PlayerState.BUFFERING]: [],\n  [PlayerState.UNSTARTED]: [],\n};\n\nconst isValidState = (currentState: PlayerState, nextState: PlayerState) => {\n  const stateOuts: PlayerState[] = validStates[currentState];\n  if (!stateOuts) {\n    return false;\n  }\n\n  return stateOuts.includes(nextState);\n};\n\n\nclass SyncVideoPlayer {\n  public options: MultiVideoPlayerOptions;\n  public $container: Element | null;\n  public videoPlayers: VideoPlayer[] = [];\n  private readyCount: number;\n  private state: PlayerState;\n  private currentTime: number;\n\n  constructor(options: MultiVideoPlayerOptions) {\n    this.options = {\n      controls: options.controls ?? true,\n      loop: options.loop ?? false,\n      area: options.area || '',\n      videoPlayers: options.videoPlayers || [],\n      template: '<div id=\"sync_video_player_container\"></div>'\n    };\n\n    this.state = PlayerState.LOADING;\n    this.readyCount = 0;\n\n    this.$container = null;\n\n    this.videoPlayers = [];\n    this.currentTime = 0;\n  }\n\n  public mount() {\n    this.render();\n    this.addVideoPlayers(this.options.videoPlayers);\n  }\n\n  private render() {\n    const { template, area } = this.options;\n    if (!area) {\n      return;\n    }\n    const areaEl = document.querySelector(area);\n    if (!areaEl) {\n      return Logger.error('area not found: ', area);\n    }\n\n    areaEl.innerHTML = template || '';\n    this.$container = document.querySelector('#sync_video_player_container');\n  }\n\n  public async changeState(state: PlayerState, videoPlayer: VideoPlayer) {\n    if (state === PlayerState.BUFFERING) {\n      // TODO: find out how to handle buffering\n      return;\n    }\n    if (state === PlayerState.PLAYING) {\n      console.log(\"set state : playing\")\n      return this.play();\n    }\n    if (state === PlayerState.PAUSE) {\n      if (videoPlayer.isEnded()) {\n        return;\n      }\n      return this.pause();\n    }\n    if (state === PlayerState.ENDED) {\n      // the main video player is the only one that can end if main is set\n      const mainVideoPlayer = this.videoPlayers.find((vp) => {\n        return vp.main;\n      });\n      if (mainVideoPlayer && mainVideoPlayer !== videoPlayer) {\n        return;\n      }\n\n      await this.moveStateTo(PlayerState.ENDED, () => {\n        if (this.options.loop) {\n          this.timeTo(0);\n        }\n      });\n    }\n    if (state === PlayerState.UNSTARTED) {\n      if (this.state === PlayerState.ENDED) {\n        if (this.options.loop) {\n          await this.play();\n        }\n      }\n    }\n  }\n\n  private async moveStateTo(state: PlayerState, success?: (newState: PlayerState, oldState: PlayerState) => void, fail?: (newState: PlayerState, oldState: PlayerState) => void) {\n    if (isValidState(this.state, state)) {\n      const oldState = this.state;\n      this.state = state;\n      if (success) {\n        await success(this.state, oldState);\n      }\n      Logger.debug('state changed to: ', state);\n    } else {\n      if (fail) {\n        await fail(this.state, state);\n      }\n      Logger.error('invalid state change: ', this.state, state);\n    }\n  }\n\n  public async onReady() {\n    this.readyCount++;\n    if (this.readyCount !== this.videoPlayers.length) return;\n    console.log(\"READY2\")\n    await this.moveStateTo(PlayerState.LOADED);\n  }\n\n  public onTimeUpdate(videoPlayer: VideoPlayer, time: number) {\n    const diff = Math.abs(this.currentTime - time);\n    if (diff > 0.5) {\n      this.timeTo(time);\n    }\n    this.currentTime = time;\n    this.fixVideoStates();\n  }\n\n  private fixVideoStates() {\n    const mainVideoPlayer = this.videoPlayers.find((vp) => {\n      return vp.main;\n    });\n\n    if (!mainVideoPlayer) return;\n    this.videoPlayers.forEach(vp => {\n      if (vp === mainVideoPlayer) return;\n      if (vp.isEnded()) return;\n      if(mainVideoPlayer.isPlaying && !vp.isPlaying) {\n        vp.play().catch(() => {\n          // noop\n        });\n      }\n      if(!mainVideoPlayer.isPlaying && vp.isPlaying) {\n        vp.pause().catch(() => {\n          // noop\n        });\n      }\n    });\n  }\n\n  /**\n   * ------------------------------\n   * Public methods\n   * ------------------------------\n   */\n\n  public addVideoPlayers(videoPlayers: VideoPlayerOptions[] | undefined) {\n    if (!videoPlayers) return;\n    videoPlayers.forEach(videoPlayer => {\n      this.addVideoPlayer(videoPlayer);\n    });\n  }\n\n  public addVideoPlayer(videoPlayer: VideoPlayerOptions) {\n    const videoInstance = new VideoPlayer(this, videoPlayer);\n    if (!videoInstance.videoElement) return;\n    this.videoPlayers.push(videoInstance);\n  }\n\n  public async play() {\n    console.log(\"play\")\n    await this.moveStateTo(PlayerState.PLAYING, async () => {\n      this.timeTo(this.currentTime);\n      await Promise.all(this.videoPlayers.map(async video => {\n        if (this.currentTime < video.getPlayLength()) {\n          await video.play();\n        }\n      }));\n    });\n  }\n\n  public async pause() {\n    await this.moveStateTo(PlayerState.PAUSE, async () => {\n      await Promise.all(this.videoPlayers.map(async video => {\n        await video.pause();\n      }));\n    });\n  }\n\n  public async stop() {\n    await this.moveStateTo(PlayerState.PAUSE, async () => {\n      await Promise.all(this.videoPlayers.map(async video => {\n        await video.stop();\n      }));\n    });\n  }\n\n  public timeTo(time: number) {\n    this.currentTime = time;\n    this.videoPlayers.forEach(video => {\n      video.timeTo(time);\n    });\n  }\n\n  public swapVideo(index1: number, index2: number) {\n    if (index1 === index2) return;\n    this.videoPlayers[index1]._swap(this.videoPlayers[index2]);\n    const tmp = this.videoPlayers[index1];\n    this.videoPlayers[index1] = this.videoPlayers[index2];\n    this.videoPlayers[index2] = tmp;\n  }\n}\n\nexport default SyncVideoPlayer;","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = { id: \"main-video\" }\nconst _hoisted_3 = { id: \"thumbnails-videos\" }\nconst _hoisted_4 = [\"id\", \"onClick\"]\nconst _hoisted_5 = { class: \"controls\" }\nconst _hoisted_6 = { class: \"time\" }\n\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n  __name: 'VideoComponent',\n  setup(__props) {\n\nconst ids = ref([\"video-0\", \"video-1\", \"video-2\"])\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n  controls: false,\n  loop: false,\n  videoPlayers: [\n    {\n      id: \"#video-0\",\n      controls: true,\n      main: true,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/050/817/original/002822-HD-SPECTRUM-COUNTDOWN-01.mp4\"\n    },\n    {\n      id: \"#video-1\",\n      // startSeconds: 0,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/051/313/original/002823-HD-SPECTRUM-COUNTDOWN-02.mp4\"\n    },\n    {\n      id: \"#video-2\",\n      initialSrc: \"https://static.videezy.com/system/resources/previews/000/049/943/original/002831-HD-COUNTDOWN-03.mp4\"\n    },\n    {\n      id: \"#video-3\",\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    }\n  ]\n})\n\nonMounted(() => {\n  syncVideoPlayer.mount()\n  const mainVideo = document.getElementById(\"main-video\").querySelector(\"video\")\n\n  mainVideo.addEventListener(\"loadeddata\", () => {\n    //Video should now be loaded but we can add a second check\n\n    if (mainVideo.readyState >= 1) {\n      resizeVideoContainers()\n    }\n  })\n  // resize videos containers on window resize\n  window.addEventListener(\"resize\", resizeVideoContainers)\n\n})\n\nfunction resizeVideoContainers() {\n  /** resize video containers so it fits a 2/3 - 1/3 */\n\n  console.log(\"resizeVideoContainers\")\n  const mainVideoContainer = document.getElementById(\"main-video\")\n  const mainVideoHeight = mainVideoContainer?.clientHeight\n  // set height to thumbnails list\n  const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n  // check if window size is less than 1280px (thumbnails wraps below in this case)\n  let thumbnailsVideoHeight = mainVideoHeight\n  if (window.innerWidth < 1280) {\n    thumbnailsVideoHeight = mainVideoHeight / 2\n  \n  }\n  console.log(thumbnailsVideos, thumbnailsVideoHeight)\n  \n  thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n}\n\nasync function onPlay() {\n  await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n  await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n  // create area for video1\n  const id = `video-${Math.random().toString(36).substring(2, 9)}`\n  ids.value.push(id)\n  nextTick(() => {\n    // add video\n    syncVideoPlayer.addVideoPlayer({\n      id: `#${id}`,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    })\n  })\n}\n\nasync function onClick(index: number) {\n  syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n  const value = (e.target as HTMLInputElement).value\n  await syncVideoPlayer.timeTo(parseFloat(value))\n}\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", null, [\n    _createElementVNode(\"div\", _hoisted_1, [\n      _createElementVNode(\"div\", _hoisted_2, [\n        (_openBlock(), _createElementBlock(\"div\", {\n          class: \"box\",\n          id: \"video-0\",\n          key: 0,\n          onClick: _cache[0] || (_cache[0] = ($event: any) => (onClick(0)))\n        }))\n      ]),\n      _createElementVNode(\"div\", _hoisted_3, [\n        (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(ids.value.slice(1), (id, i) => {\n          return (_openBlock(), _createElementBlock(\"div\", {\n            class: \"box\",\n            id: id,\n            key: i + 1,\n            onClick: _withModifiers(($event: any) => (onClick(i + 1)), [\"prevent\"])\n          }, null, 8, _hoisted_4))\n        }), 128))\n      ])\n    ]),\n    _createElementVNode(\"div\", _hoisted_5, [\n      _createElementVNode(\"button\", { onClick: onAdd }, \"Add video\"),\n      _createElementVNode(\"button\", { onClick: onPlay }, \"Play\"),\n      _createElementVNode(\"button\", { onClick: onPause }, \"Pause\"),\n      _createElementVNode(\"div\", _hoisted_6, [\n        _createElementVNode(\"input\", {\n          type: \"range\",\n          min: \"0\",\n          max: \"100\",\n          value: \"0\",\n          class: \"slider\",\n          id: \"myRange\",\n          onInput: onChange\n        }, null, 32)\n      ])\n    ])\n  ]))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\n\nconst ids = ref([\"video-0\", \"video-1\", \"video-2\"])\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n  controls: false,\n  loop: false,\n  videoPlayers: [\n    {\n      id: \"#video-0\",\n      controls: true,\n      main: true,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/050/817/original/002822-HD-SPECTRUM-COUNTDOWN-01.mp4\"\n    },\n    {\n      id: \"#video-1\",\n      // startSeconds: 0,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/051/313/original/002823-HD-SPECTRUM-COUNTDOWN-02.mp4\"\n    },\n    {\n      id: \"#video-2\",\n      initialSrc: \"https://static.videezy.com/system/resources/previews/000/049/943/original/002831-HD-COUNTDOWN-03.mp4\"\n    },\n    {\n      id: \"#video-3\",\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    }\n  ]\n})\n\nonMounted(() => {\n  syncVideoPlayer.mount()\n  const mainVideo = document.getElementById(\"main-video\").querySelector(\"video\")\n\n  mainVideo.addEventListener(\"loadeddata\", () => {\n    //Video should now be loaded but we can add a second check\n\n    if (mainVideo.readyState >= 1) {\n      resizeVideoContainers()\n    }\n  })\n  // resize videos containers on window resize\n  window.addEventListener(\"resize\", resizeVideoContainers)\n\n})\n\nfunction resizeVideoContainers() {\n  /** resize video containers so it fits a 2/3 - 1/3 */\n\n  console.log(\"resizeVideoContainers\")\n  const mainVideoContainer = document.getElementById(\"main-video\")\n  const mainVideoHeight = mainVideoContainer?.clientHeight\n  // set height to thumbnails list\n  const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n  // check if window size is less than 1280px (thumbnails wraps below in this case)\n  let thumbnailsVideoHeight = mainVideoHeight\n  if (window.innerWidth < 1280) {\n    thumbnailsVideoHeight = mainVideoHeight / 2\n  \n  }\n  console.log(thumbnailsVideos, thumbnailsVideoHeight)\n  \n  thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n}\n\nasync function onPlay() {\n  await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n  await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n  // create area for video1\n  const id = `video-${Math.random().toString(36).substring(2, 9)}`\n  ids.value.push(id)\n  nextTick(() => {\n    // add video\n    syncVideoPlayer.addVideoPlayer({\n      id: `#${id}`,\n      initialSrc:\n        \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n    })\n  })\n}\n\nasync function onClick(index: number) {\n  syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n  const value = (e.target as HTMLInputElement).value\n  await syncVideoPlayer.timeTo(parseFloat(value))\n}\n</script>\n\n<template>\n  <div>\n    <div class=\"container\">\n      <div id=\"main-video\">\n        <div class=\"box\" id=\"video-0\" :key=\"0\" @click=\"onClick(0)\"></div>\n      </div>\n      <div id=\"thumbnails-videos\">\n        <div v-for=\"(id, i) in ids.slice(1)\" class=\"box\" :id=\"id\" :key=\"i + 1\" @click.prevent=\"onClick(i + 1)\"></div>\n      </div>\n    </div>\n\n    <div class=\"controls\">\n      <button @click=\"onAdd\">Add video</button>\n      <button @click=\"onPlay\">Play</button>\n      <button @click=\"onPause\">Pause</button>\n      <!-- range selector for time -->\n      <div class=\"time\">\n        <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" class=\"slider\" id=\"myRange\" @input=\"onChange\" />\n      </div>\n    </div>\n  </div>\n</template>\n\n<style>\n.container {\n  display: flex;\n  margin-top: 20px;\n  flex-direction: row;\n  @media (max-width: 1280px) {\n    flex-direction: column;\n  }\n}\n\n#main-video {\n  flex: 2;\n}\n#thumbnails-videos {\n  flex: 1;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  overflow-y: auto;\n  margin-left: 10px;\n  @media (max-width: 1280px) {\n    flex-direction: column;\n    margin-left: 0px;\n  }\n}\n\n#thumbnails-videos .box {\n  width: 100%;\n  @media (max-width: 1280px) {\n    width: 50%;\n  }\n}\n</style>\n","import script from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VideoComponent.vue?vue&type=style&index=0&id=af88429e&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"./compatibility\"\nimport { createApp } from \"vue\"\n\nimport ChatComponent from \"./components/ChatComponent.vue\"\nimport NotificationsBell from \"./components/NotificationsBell.vue\"\nimport VideoComponent from \"./video/VideoComponent.vue\"\n\nimport axios from \"axios\";\n// default axios config\naxios.defaults.xsrfHeaderName = \"X-CSRFTOKEN\";\naxios.defaults.xsrfCookieName = \"csrftoken\";\naxios.defaults.withCredentials = true\n\nif (document.getElementById(\"chat\")) {\n  createApp(ChatComponent).mount('#chat')\n}\n\nif (document.getElementById(\"notifications\")) {\n  createApp(NotificationsBell).mount('#notifications')\n}\n\nif(document.getElementById(\"multivideo\")) {\n  createApp(VideoComponent).mount('#multivideo');\n}"],"names":["module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","status","responseURL","indexOf","responseHeaders","getAllResponseHeaders","responseData","responseType","response","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","e","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","defaults","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","interceptors","arguments","chain","interceptor","unshift","fulfilled","rejected","push","length","shift","getUri","replace","handlers","use","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","error","Error","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","Object","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","process","call","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","parse","maxContentLength","maxBodyLength","thisArg","args","Array","i","apply","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","trim","substr","callback","arr","constructor","FormData","result","ArrayBuffer","isView","getPrototypeOf","isFunction","pipe","URLSearchParams","str","product","obj","l","hasOwnProperty","assignValue","a","b","stripBOM","content","charCodeAt","testVideo","canPlayType","webm","container","getElementById","p","classList","add","prepend","innerHTML","sfc","props","__vccOpts","isCallable","tryToString","$TypeError","argument","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","DESCRIPTORS","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","uncurryThis","stringSlice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","createPropertyDescriptor","object","bitmap","enumerable","configurable","makeBuiltIn","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","fails","get","EXISTS","MAX_SAFE_INTEGER","version","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","NATIVE_BIND","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","namespace","aCallable","isNullOrUndefined","V","P","func","check","Math","globalThis","self","g","toObject","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","state","type","metadata","facade","STATE","documentAll","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","getOwnPropertySymbols","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","len","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","proto","item","argCount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","o","makeMap","expectsLowerCase","Set","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","startsWith","assign","splice","hasOwnProperty$1","isMap","toTypeString","isSet","isRegExp","isPromise","catch","objectToString","toRawType","isIntegerKey","parseInt","isReservedProp","cacheStringFunction","cache","hit","camelizeRE","camelize","_","hyphenateRE","hyphenate","capitalize","toHandlerKey","s","hasChanged","oldValue","is","invokeArrayFns","arg","def","looseToNumber","parseFloat","isNaN","toNumber","Number","NaN","_globalThis","getGlobalThis","GLOBALS_ALLOWED","isGloballyAllowed","normalizeStyle","res","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","normalizeProps","class","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","replacer","_key","__v_isRef","size","entries","reduce","val2","stringifySymbol","values","map","_a","activeEffectScope","activeEffect","EffectScope","detached","_active","effects","cleanups","parent","scopes","active","run","currentEffectScope","on","off","stop","fromParent","last","pop","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","ReactiveEffect","trigger","scheduler","deps","_dirtyLevel","_trackId","_runnings","_shouldSchedule","_depsLength","dirty","pauseTracking","dep","computed","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","onStop","effect2","cleanupDepEffect","trackId","delete","cleanup","_effect","lazy","runner","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","lastDirtyLevel","scheduleEffects","allowRecurse","createDep","Map","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","depsMap","newValue","oldTarget","newLength","key2","getDepFromReactive","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","BaseReactiveHandler","_isReadonly","_shallow","receiver","isReadonly2","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","readonly","reactive","MutableReactiveHandler","super","isOldValueReadonly","isReadonly","isShallow","hadKey","deleteProperty","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","get2","deleteEntry","clear","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","next","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","iteratorMethods","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","_setter","isSSR","_value","triggerRefValue","_cacheable","trackRefValue","_dirty","computed$1","getterOrOptions","debugOptions","onlyGetter","cRef","ref2","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","useDirectValue","triggerRef","unref","toValue","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","__v_isReadonly","toRef","defaultValue","TrackOpTypes","TriggerOpTypes","assertNumber","ErrorCodes","ErrorTypeStrings$1","callWithErrorHandling","err","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","logError","console","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","findInsertionIndex","start","end","middle","middleJob","middleJobId","getId","pre","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","sort","Infinity","comparator","diff","devtools$1","devtoolsNotInstalled","setDevtoolsHook$1","hook","_b","enabled","event","emit","HTMLElement","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","setTimeout","DeprecationTypes$1","warnDeprecation","globalCompatConfig","MODE","configureCompat$1","getCompatConfigForKey","compatConfig","isCompatEnabled","enableForBuiltIn","__isBuiltIn","rawMode","assertCompatEnabled","softAssertCompatEnabled","checkCompatEnabled","eventRegistryMap","getRegistry","events","once","wrapped","vm","cbs","emit$1","compatModelEventPrefix","convertLegacyVModelProps","shapeFlag","dynamicProps","comp","model","applyModelFromMixins","mixins","modelValue","m","compatModelEmit","modelHandler","rawArgs","isUnmounted","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","asMixin","emitsCache","cached","emits","hasExtends","extendEmits","raw2","normalizedFromExtend","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","_scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","_ns","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","some","filterModelListeners","cloneVNode","cls","dirs","transition","filterSingleRoot","children","recurse","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","nextKeys","updateHOCHostEl","subTree","suspense","activeBranch","COMPONENTS","DIRECTIVES","FILTERS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","for","resolveDynamicComponent","resolveDirective","resolveFilter$1","warnMissing","currentInstance","selfName","getComponentName","registry","isSuspense","__isSuspense","suspenseId","SuspenseImpl","n1","n2","anchor","parentComponent","parentSuspense","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","hiddenContainer","pendingBranch","ssContent","ssFallback","setActiveBranch","um","unmount","newBranch","newFallback","isInFallback","isHydrating","isSameVNodeType","pendingId","fallback","move","parentNode","parentSuspenseId","isSuspensible","isVNodeSuspensible","initialAnchor","resume","sync","vnode2","parentComponent2","container2","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","namespace2","anchor2","mountFallback","registerDep","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","asyncResolved","handleSetupResult","placeholder","parentSuspense2","doRemove","node","hydrateNode","isSlotChildren","normalizeSuspenseSlot","default","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","suspensible","legacyDirectiveHookMap","beforeMount","mounted","updated","unmounted","mapCompatDirectiveHook","dir","mappedName","mapped","mappedHook","ssrContextKey","useSSRContext","inject","watchEffect","doWatch","watchPostEffect","flush","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","immediate","deep","onTrack","onTrigger","_cb","unwatch","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","__watcherHandles","fill","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","modifiers","invokeDirectiveHook","oldBindings","binding","leaveCbKey","enterCbKey$1","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","BaseTransitionImpl","setup","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","callHook","callAsyncHook","every","hook2","hooks","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","isKeepAlive","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","toStringTag","__asyncResolved","createInnerComp","loaded","delayed","ce","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","pruneCacheEntry","activate","instance2","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","cachedVNode","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","getCompatChildren","walk","vnodes","getCompatListeners","listeners","convertLegacyRenderFn","_rc","_compatChecked","_compatWrapped","compatH","propsOrChildren","t","is2ndArgArrayChildren","convertLegacySlots","convertLegacyDirectives","convertLegacyProps","skipLegacyRootLevelProps","legacyProps","converted","handlerKey","convertLegacyEventKey","existing","incoming","staticClass","staticStyle","slotName","slot","slotChildren","scopedSlots","normalizeChildren","defineLegacyVNodeProperties","getInstance","componentOptions","defineProperties","tag","elm","componentInstance","text","Ctor","propsData","normalizedFunctionalComponentMap","legacySlotProxyHandlers","convertLegacyFunctionalComponent","legacyFn","Func","legacyCtx","injections","resolveInjections","displayName","renderList","renderItem","from","createSlots","dynamicSlots","j","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","toHandlers","preserveCaseIfNecessary","legacyBindObjectProps","_tag","_asProp","isSync","camelizedKey","hyphenatedKey","$event","legacyBindObjectListeners","mergeProps","legacyRenderSlot","bindObject","legacyresolveScopedSlots","hasDynamicKeys","mapKeyToName","staticCacheMap","legacyRenderStatic","staticRenderFns","legacyCheckKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","configKeyCodes","keyCodes","mappedKeyCode","isKeyNotMatch","expect","actual","legacyMarkOnce","tree","legacyBindDynamicKeys","legacyPrependModifier","installCompatInstanceProperties","del","$set","$delete","$mount","_compat_mount","$destroy","_compat_destroy","$slots","$scopedSlots","$on","$once","$off","$children","$listeners","$vnode","$options","resolveMergedOptions","$parent","_self","_uid","_data","_isMounted","_isDestroyed","$createElement","_o","_s","_l","_t","_q","_i","_m","_f","_k","_v","createTextVNode","_e","createCommentVNode","_u","_g","_p","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$refs","refs","$root","$emit","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","desc","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","deepMergeData","to","toVal","fromVal","defineProps","defineEmits","defineExpose","exposed","defineOptions","defineSlots","defineModel","withDefaults","useSlots","getContext","useAttrs","setupContext","createSetupContext","normalizePropsOrEmits","mergeDefaults","opt","skipFactory","mergeModels","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","unsetCurrentInstance","applyOptions","beforeCreate","callHook$1","dataOptions","computedOptions","methods","watchOptions","provide","provideOptions","injectOptions","created","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","checkDuplicateProperties","methodHandler","createWatcher","provides","registerLifecycleHook","register","_hook","normalizeInject","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","installLegacyOptionMergeStrats","singletonApp","singletonCtor","isCopyingConfig","createCompatVue$1","createApp","createSingletonApp","Vue","Vue2","createCompatApp","app","applySingletonPrototype","_createRoot","install","mixin","directive","_base","cid","extendCache","extendCtor","extendOptions","Super","SubVue","inlineOptions","mergeBase","superValue","observable","util","warn","defineReactive","configureCompat","installAppCompatProperties","installFilterMethod","installCompatMount","installLegacyAPIs","applySingletonAppMutations","_context","isRuntimeOnly","compilerOptions","isCustomElement","hasPrototypeAugmentations","descriptors","getOwnPropertyDescriptors","_component","hasNoRender","template","emptyRender","createComponentInstance","setupComponent","isCompatRoot","selectorOrEl","querySelector","SVGElement","MathMLElement","finishComponentSetup","Element","removeAttribute","_container","__vue_app__","bum","methodsToPatch","patched","WeakSet","reactiveVal","defineReactiveSimple","createAppContext","isNativeTag","performance","warnHandler","propsCache","uid$1","createAppAPI","rootComponent","rootProps","installedPlugins","_props","_instance","plugin","mount","rootContainer","isHydrate","runWithContext","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","createPropsDefaultThis","propKey","shouldSkipAttr","initProps","isStateful","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","endsWith","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","isVFor","doSet","k","hasMismatch","isSVGContainer","namespaceURI","tagName","isMathMLContainer","getContainerType","isComment","nodeType","createHydrationFunctions","mt","mountComponent","patchProp","createText","nextSibling","insert","createComment","hasChildNodes","_vnode","firstChild","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","isTemplateNode","replaceNode","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAnchor","previousSibling","lastChild","hydrateChildren","forcePatch","vnodeHooks","needCallTransitionHooks","needTransition","textContent","onClick","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","isFragment","next2","close","newNode","oldNode","parentNode2","replaceChild","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","resolveChildrenNamespace","unmountChildren","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","compatMountInstance","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition2","remove2","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","mc","pc","pbc","currentNamespace","encoding","allowed","ch1","ch2","arrI","subComponent","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","updateCssVars","shouldRemove","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","ut","normalizedAsyncComponentMap","convertLegacyAsyncComponent","fallbackPromise","rj","loading","convertLegacyComponent","functional","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","mergedProps","flag","createStaticVNode","numberOfNodes","asBlock","memo","slotFlag","toMerge","emptyAppContext","exposeProxy","attrsProxy","slotsProxy","bc","rtg","rtc","sp","internalSetCurrentInstance","setInSSRSetupState","registerGlobalSetter","setters","compile","installWithProxy","setupResult","setupStatefulComponent","resolvedResult","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","skipOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","includeInferred","__name","useModel","camelizedName","hyphenatedName","localValue","propValue","modifierKey","i2","initCustomFormatter","withMemo","isMemoSame","ErrorTypeStrings","devtools","setDevtoolsHook","_ssrUtils","ssrUtils","resolveFilter","_compatUtils","createCompatVue","compatUtils","DeprecationTypes","svgNS","mathmlNS","doc","templateContainer","nodeOps","insertBefore","removeChild","createElementNS","multiple","createTextNode","nodeValue","selector","before","cloneNode","wrapper","appendChild","TRANSITION","ANIMATION","vtcKey","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","h2","hasExplicitCallback","baseProps","legacyClassEnabled","legacyEnterFromClass","legacyAppearFromClass","legacyLeaveFromClass","toLegacyClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","legacyClass","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","body","offsetHeight","patchClass","isSVG","transitionClasses","className","vShowOldKey","vShow","display","setDisplay","initVShowForSSR","getSSRProps","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","querySelectorAll","setVarsOnNode","setVars","setVarsOnVNode","ob","MutationObserver","observe","childList","disconnect","setProperty","patchStyle","currentDisplay","isCssString","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","compatCoerceAttr","isBoolean","isEnumeratedAttr","v2CoercedValue","patchDOMProp","getAttribute","needRemove","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","_vts","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","isNativeOn","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydrate2","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","_def","_connected","_resolved","_numberProps","_ob","shadowRoot","attachShadow","_resolveProps","connectedCallback","_update","_resolveDef","disconnectedCallback","attributes","_setAttr","mutations","attributeName","isAsync","numberProps","_applyStyles","asyncDef","declaredPropKeys","_setProp","_getProp","shouldReflect","shouldUpdate","dispatch","dispatchEvent","CustomEvent","detail","useCssModule","modules","mod","positionMap","newPositionMap","moveCbKey","enterCbKey","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","transform","webkitTransform","transitionDuration","propertyName","cssTransitionProps","getBoundingClientRect","TransitionGroup","oldPos","newPos","dx","left","dy","top","getModelAssigner","onCompositionStart","composing","onCompositionEnd","Event","assignKey","vModelText","castToNumber","domValue","elValue","activeElement","vModelCheckbox","_modelValue","elementValue","getValue","checked","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","_assigning","setSelected","_binding","isMultiple","isArrayValue","option","optionValue","optionType","selectedIndex","vModelDynamic","callModelHook","resolveDynamicModel","modelToUse","initVModelForSSR","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","button","right","exact","withModifiers","_withMods","cacheKey","guard","keyNames","esc","space","up","down","withKeys","globalKeyCodes","_withKeys","eventKey","keyCode","codes","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","resolveRootNamespace","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","runtimeDom","freeze","__proto__","createElementVNode","wrappedCreateApp","show","Vue$1","_hoisted_1","_cache","$setup","_openBlock","_createElementBlock","currentUserId","rooms","messagesLoaded","roomId","messages","title","ROOMS_EMPTY","ROOM_EMPTY","NEW_MESSAGES","MESSAGE_DELETED","MESSAGES_EMPTY","CONVERSATION_STARTED","TYPE_MESSAGE","SEARCH","IS_ONLINE","LAST_SEEN","IS_TYPING","onSendMessage","sendMessage","makeMap$2","list2","NOOP$1","extend$2","hasOwnProperty$3","hasOwn$1","isArray$2","isMap$1","toTypeString$1","isFunction$2","isString$2","isObject$2","objectToString$1","hasChanged$1","def$1","w","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","effectTrackDepth","maxMarkerBits","cleanupEffect","deferStop","trackEffects","shouldTrack2","triggerEffect","get$1","createGetter","shallowGet","readonlyGet","set$1","createSetter","shallowSet","get$1$1","isShallow2","has$1","set$1$1","self2","makeMap$1","isArray$1","isString$1","isObject$1","isFunction$1","onRE$1","isOn$1","isModelListener$1","extend$1","hasOwnProperty$2","cacheStringFunction$1","camelizeRE$1","camelize$1","hyphenateRE$1","hyphenate$1","capitalize$1","toNumber$1","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","currentPreFlushParentJob","p2","queueCb","activeQueue","pendingQueue","queuePreFlushCb","parentJob","isModelListener2","render3","flush2","path2","_leaveCb","callHook2","_enterCb","internalInstance","beforeMount2","updated2","unmounted2","unwrapInjectedRef","set2","register2","unwrapRef","directive2","hostCloneNode","areChildrenSVG","update2","remove3","text2","compile$1","createAttrsProxy","onRE","content2","_getNow","skipTimestampCheck","_getNow2","skipTimestampCheck2","createEvent","timeStamp","ffMatch","addEventListener$1","_vei","nativeOnRE","resolve2","def2","hasOptions","rawKeys","_moveCb","_vod","_export_sfc","_sfc_main$q","infinite","required","messageId","_hoisted_1$q","_hoisted_2$n","_hoisted_3$j","_hoisted_4$g","_hoisted_5$b","_hoisted_6$7","_sfc_render$q","Loader","_sfc_main$p","param","svgItem","toggle","menu","file","paperclip","emoji","pencil","checkmark","eye","dropdown","deleted","microphone","svgId","_hoisted_1$p","_hoisted_2$m","_hoisted_3$i","_sfc_render$p","xmlns","width","height","viewBox","SvgIcon","_sfc_main$o","textMessages","showSearch","showAddRoom","loadingRooms","showSearchBar","_hoisted_1$o","_hoisted_2$l","_sfc_render$o","_component_svg_icon","autocomplete","onInput","RoomsSearch","element$1","decodeNamedCharacterReference","characterReference2","char","items","parameters","chunkStart","combineExtensions","extensions","syntaxExtension","extension","maybe","code2","constructs","combineHtmlExtensions","htmlExtensions","htmlExtension","decodeNumericCharacterReference","fromCharCode","characterReferences","replace2","value2","normalizeIdentifier","unicodePunctuationRegex","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","sanitizeUri","normalizeUri","colon","questionMark","numberSign","slash","skip","protocolHref","protocolSrc","settings","tags","definitions2","buffers","mediaStack","tightStack","defaultHandlers","blockQuote","onenterblockquote","codeFenced","onentercodefenced","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","onentercodeindented","codeText","onentercodetext","onentercontent","onenterdefinition","definitionDestinationString","onenterdefinitiondestinationstring","definitionLabelString","definitionTitleString","emphasis","onenteremphasis","htmlFlow","onenterhtmlflow","htmlText","onenterhtml","image","onenterimage","label","link","onenterlink","listItemMarker","onenterlistitemmarker","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterlistunordered","paragraph","onenterparagraph","reference","resource","onenterresource","resourceDestinationString","onenterresourcedestinationstring","resourceTitleString","setextHeading","onentersetextheading","strong","onenterstrong","exit","atxHeading","onexitatxheading","atxHeadingSequence","onexitatxheadingsequence","autolinkEmail","onexitautolinkemail","autolinkProtocol","onexitautolinkprotocol","onexitblockquote","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitflowcode","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","codeFlowValue","onexitcodeflowvalue","onexitcodetext","codeTextData","onexitdefinition","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexitemphasis","hardBreakEscape","onexithardbreak","hardBreakTrailing","onexithtml","htmlFlowData","htmlTextData","onexitmedia","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlistordered","onexitlistunordered","onexitparagraph","referenceString","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","onexitstrong","thematicBreak","onexitthematicbreak","definitions","lineEndingIfNeeded","encode$1","setData","getData","lineEndingStyle","defaultLineEnding","compile2","listStack","head","sliceSerialize","prepareList","null","handles","kind","handle","atMarker","containerBalance","loose","_loose","buf","lineEnding2","buffer2","previous2","onexitlistitem","count","labelId","referenceId","destination","media","context2","allowDangerousProtocol","allowDangerousHtml","uri","factorySpace","ok","limit","POSITIVE_INFINITY","size2","prefix","consume","content$1","tokenize","initializeContent","contentStart","attempt","parser","contentInitial","afterContentStartConstruct","paragraphInitial","lineStart","contentType","previous","document$2","initializeDocument","containerConstruct","tokenizeContainer","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","point","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","thereIsANewContainer","thereIsNoNewContainer","offset","containerContinue","flow","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","entry","nok","disable","classifyCharacter","resolveAll","constructs2","attention","tokenizeAttention","resolveAllAttention","group","openingSequence","closingSequence","nextEvents","_close","_open","movePoint","insideSpan","attentionMarkers2","attentionMarkers","marker","inside","after","column","_bufferIndex","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","partial","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","contStart","contBefore","characterEscape","tokenizeCharacterEscape","characterReference","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","info","metaBefore","contentBefore","beforeContentChunk","contentChunk","effects2","ok2","nok2","startBefore","start2","beforeSequenceClose","sequenceClose","sequenceCloseAfter","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","furtherStart2","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","between","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","factoryDestination","literalType","literalMarkerType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","escape","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","defined","titleBefore2","beforeMarker","titleAfter","titleAfterOptionalWhitespace","tokenizeHardBreakEscape","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","tokenizeHtmlFlow","resolveTo","resolveToHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","continuationAfter","continuationStartNonLazy","continuationBefore","continuationRawEndTag","tokenizeHtmlText","returnState","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","_inactive","_balanced","labelStart","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","tokenizeLineEnding","tokenizeThematicBreak","sequence","list","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent$1","initialSize","onBlank","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","definition2","heading","flow$1","initializeFlow","initial","atBlankEnding","flowInitial","afterConstruct","resolver","createResolver","string$1","initializeFactory","text$3","field","initializeText","resolveAllLineSuffixes","notText","extraResolver","resolveAllText","chunks","tabs","bufferIndex","chunk","_index","createTokenizer","initialize","columnStart","resolveAllConstructs","exit2","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","main","addResult","expandTabs","serializeChunks","sliceChunks","accountForPotentialSkip","chunkIndex","go","fields","construct","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","from2","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","startIndex","startBufferIndex","endIndex","endBufferIndex","view","atTab","document$1","text$2","defaultConstructs","creator","postprocess","preprocess","atCarriageReturn","preprocessor","endPosition","lastIndex","micromark","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","text$1","gfmAutolinkLiteral","dot","gfmAtext","previousUnbalanced","atext","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","fromCodePoint","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trail2","trailCharRefStart","trailBracketAfter","trailCharRefInside","_gfmAutolinkLiteralWalkedInto","gfmAutolinkLiteralHtml","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","anchorFromToken","indent","tokenizeIndent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","codePointAt","string2","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","own","emptyOptions","defaultBackLabel","referenceIndex","rereferenceIndex","gfmFootnoteHtml","labelTagName","labelAttributes","backLabel","clobberPrefix","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCallString","footnoteStack","calls","counts","counter","safeId","reuseCounter","references","$0","gfmStrikethroughHtml","strikethrough","gfmStrikethrough","options_","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","insideSpan2","alignment","none","center","gfmTableHtml","table","tableAlign","_align","tableBody","tableData","tableColumn","align","tableHead","tableHeader","tableRow","$1","EditMap","add2","addImpl","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","cell","afterHeadAwaitingFirstBodyRow","lastTableEnd","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","exits","related","side","reFlow","reText","gfmTagfilterHtml","exitHtmlData","gfmTaskListItemHtml","taskListCheck","taskListCheckValueChecked","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","gfmHtml","carriageReturn","lineFeed","carriageReturnLineFeed","horizontalTab","virtualSpace","nul","soh","stx","etx","eot","enq","ack","bel","bs","ht","lf","vt","ff","cr","so","si","dle","dc1","dc2","dc3","dc4","nak","syn","etb","can","em","sub","fs","gs","rs","us","exclamationMark","quotationMark","dollarSign","percentSign","ampersand","apostrophe","leftParenthesis","rightParenthesis","asterisk","plusSign","comma","dash","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","semicolon","lessThan","equalsTo","greaterThan","atSign","uppercaseA","uppercaseB","uppercaseC","uppercaseD","uppercaseE","uppercaseF","uppercaseG","uppercaseH","uppercaseI","uppercaseJ","uppercaseK","uppercaseL","uppercaseM","uppercaseN","uppercaseO","uppercaseP","uppercaseQ","uppercaseR","uppercaseS","uppercaseT","uppercaseU","uppercaseV","uppercaseW","uppercaseX","uppercaseY","uppercaseZ","leftSquareBracket","backslash","rightSquareBracket","caret","underscore","graveAccent","lowercaseA","lowercaseB","lowercaseC","lowercaseD","lowercaseE","lowercaseF","lowercaseG","lowercaseH","lowercaseI","lowercaseJ","lowercaseK","lowercaseL","lowercaseM","lowercaseN","lowercaseO","lowercaseP","lowercaseQ","lowercaseR","lowercaseS","lowercaseT","lowercaseU","lowercaseV","lowercaseW","lowercaseX","lowercaseY","lowercaseZ","leftCurlyBrace","verticalBar","rightCurlyBrace","tilde","degree","byteOrderMarker","replacementCharacter","underlineTokenize","insideEscape","underlineConstruct","underline","underlineHtml","usertagTokenize","usertagConstruct","usertag","usertagHtml","users","usertagContent","userId","user","find","user2","markdown","textFormatting","gfmDisabled","linkify","markdown2","replaceAll","singleLine","element2","types","innerText","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","_sfc_main$n","roomList","reply","linkOptions","parsedMessage","checkType","checkImageType","lastIndexOf","slashIndex","substring","isMedia","setImageSize","Image","onLoad","img","ratio","round","src","openTag","_hoisted_1$n","_hoisted_2$k","_hoisted_3$h","_sfc_render$n","rel","FormatMessage","HANDLERS_PROPERTY","HAS_WINDOWS","HAS_NAVIGATOR","IS_TOUCH","msMaxTouchPoints","EVENTS","processDirectiveArguments","bindingValue","isFunction2","middleware","isActive","detectIframe","capture","execHandler","onFauxIframeClick","contains","onEvent","composedPath","isClickOutside","eventName","srcTarget","documentElement","detectIframeEvent","thisHandler","vClickOutside","typingText","room","typingUsers","checkMediaType","isImageFile","isVideoFile","isImageVideoFile","isAudioFile","_sfc_main$m","clickOutside","roomActions","roomMenuOpened","getLastMessage","isTyping","lastMessage","senderId","userStatus","isMessageCheckmarkVisible","saved","distributed","formattedDuration","files","isAudio","roomActionHandler","action","closeRoomMenu","_hoisted_1$m","_hoisted_2$j","_hoisted_3$g","_hoisted_4$f","_hoisted_5$a","_hoisted_6$6","_hoisted_7$6","_hoisted_8$4","_hoisted_9$4","_hoisted_10$4","_hoisted_11$3","_hoisted_12$3","_hoisted_13$1","_sfc_render$m","_component_format_message","_directive_click_outside","avatar","roomName","timestamp","new","idx","unreadCount","RoomContent","filteredItems","formatString","_sfc_main$l","showRoomsList","isMobile","roomsLoaded","customSearchRoomEnabled","scrollDistance","filteredRooms","observer","showLoader","loadingMoreRooms","selectedRoomId","oldVal","initIntersectionObserver","rootMargin","threshold","IntersectionObserver","isIntersecting","loadMoreRooms","searchRoom","ev","openRoom","_hoisted_1$l","_hoisted_2$i","_hoisted_3$f","_hoisted_4$e","_sfc_render$l","_component_rooms_search","_component_loader","_component_room_content","onSearchRoom","onAddRoom","fRoom","onRoomActionHandler","RoomsList","_sfc_main$k","singleRoom","roomInfoEnabled","menuActions","messageSelectionEnabled","messageSelectionActions","selectedMessagesTotal","menuOpened","messageSelectionAnimationEnded","lastChanged","menuActionHandler","closeMenu","messageSelectionActionHandler","_hoisted_1$k","_hoisted_2$h","_hoisted_3$e","_hoisted_4$d","_hoisted_5$9","_hoisted_6$5","_hoisted_7$5","_hoisted_8$3","_hoisted_9$3","_hoisted_10$3","_hoisted_11$2","_hoisted_12$2","_hoisted_13","_sfc_render$k","CANCEL_SELECT_MESSAGE","RoomHeader","assertNonEmptyString","DB_VERSION_CURRENT","DB_VERSION_INITIAL","STORE_EMOJI","STORE_KEYVALUE","STORE_FAVORITES","FIELD_TOKENS","INDEX_TOKENS","FIELD_UNICODE","INDEX_COUNT","FIELD_GROUP","FIELD_ORDER","INDEX_GROUP_AND_ORDER","KEY_ETAG","KEY_URL","KEY_PREFERRED_SKINTONE","MODE_READONLY","MODE_READWRITE","INDEX_SKIN_UNICODE","FIELD_SKIN_UNICODE","DEFAULT_DATA_SOURCE$1","DEFAULT_LOCALE$1","uniqBy$1","uniqEmoji","emojis","unicode","initialMigration","db","createObjectStore","keyPath","indexes","indexName","keyPath2","multiEntry","createIndex","openReqs","databaseCache","onCloseListeners","handleOpenOrDeleteReq","req","onblocked","onsuccess","async","createDatabase","dbName","indexedDB","onupgradeneeded","oldVersion","onclose","closeDatabase","openDatabase","dbPromise","storeName","readOnlyOrReadWrite","txn","transaction","durability","objectStore","oncomplete","listener","deleteDatabase","addOnCloseListener","irregularEmoticons","extractTokens","word","MIN_SEARCH_TEXT_LENGTH$1","normalizeTokens","transformEmojiData","emojiData","annotation","emoticon","order","shortcodes","skins","version2","tokens","flat","res2","skinTones","skinUnicodes","skinVersions","tone","emoji2","version3","callStore","getIDB","getAllIDB","commit","minBy","array","minItem","findCommonMembers","arrays","uniqByFunc","shortestArray","results","isEmpty","hasData","eTag","oldETag","oldUrl","doFullDatabaseScanForSingleResult","predicate","BATCH_SIZE","emojiStore","lastKey","processNextBatch","getAll","IDBKeyRange","lowerBound","loadData","transformedData","metaStore","todo","checkFetched","onFetched","put","getEmojiByGroup","bound","getEmojiBySearchQuery","query","intermediateResults","checkDone","onDone","only","getEmojiByShortcode","shortcode","lowerShortcodes","_2","getEmojiByUnicode","result2","incrementFavoriteEmojiCount","getTopFavoriteEmoji","customEmojiIndex2","favoritesStore","openCursor","cursor","continue","unicodeOrName","primaryKey","custom","byName","CODA_MARKER","trie","itemToTokens","currentMap","nextMap","valuesAtCoda","search2","results2","queue2","currentMap2","entriesSortedByKey","requiredKeys$1","assertCustomEmojis","customEmojis","isArray2","firstItemIsFaulty","customEmojiIndex","sortByName","emojiToTokens","searchTrie","searchByExactMatch","searchByPrefix","shortcodeToEmoji","nameToEmoji","customEmoji","byShortcode","cleanEmoji","warnETag","requiredKeys","assertEmojiData","assertStatus","dataSource","getETag","fetch","getETagAndData","json","arrayBufferToBinaryString","binary","bytes","Uint8Array","byteLength","binaryStringToArrayBuffer","jsonChecksum","inString","inBuffer","outBuffer","crypto","subtle","digest","outBinString","checkForUpdates","eTagAndData","loadDataForFirstTime","Database","locale","_dbName","_db","_lazyUpdate","_custom","_clear","_ready","_init","empty","ready","checkReady","customs","natives","getEmojiByUnicodeOrName","getPreferredSkinTone","setPreferredSkinTone","skinTone","_shutdown","noop","blank_object","run_all","is_function","thing","safe_not_equal","src_url_equal_anchor","current_component","src_url_equal","element_src","is_empty","action_destroyer","action_result","destroy","append","detach","listen","attr","attribute","set_data","wholeText","set_input_value","set_style","important","removeProperty","set_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","tick","add_render_callback","seen_callbacks","flushidx","saved_component","$$","fragment","before_update","after_update","outroing","transition_in","local","globals","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","create_each_block2","get_context","old_indexes","new_blocks","new_lookup","deltas","child_ctx","abs","will_move","did_move","insert2","first","new_block","old_block","new_key","old_key","mount_component","customElement","on_mount","on_destroy","new_on_destroy","destroy_component","detaching","make_dirty","init","create_fragment2","not_equal","append_styles","parent_component","on_disconnect","callbacks","skip_bound","rest","SvelteComponent","$$props","$$set","allGroups","groups","customGroup","MIN_SEARCH_TEXT_LENGTH","NUM_SKIN_TONES","rIC","requestIdleCallback","hasZwj","versionsAndTestEmoji","TIMEOUT_BEFORE_LOADING_MESSAGE","DEFAULT_SKIN_TONE_EMOJI","DEFAULT_NUM_COLUMNS","MOST_COMMONLY_USED_EMOJI","FONT_FAMILY","DEFAULT_CATEGORY_SORTING","getTextFeature","color","canvas","textBaseline","font","fillStyle","scale","fillText","getImageData","compareFeatures","feature1","feature2","feature1Str","feature2Str","testColorEmojiSupported","determineEmojiSupportLevel","emojiSupportLevelPromise","supportedZwjEmojis","VARIATION_SELECTOR","SKINTONE_MODIFIER","ZWJ","LIGHT_SKIN_TONE","LIGHT_SKIN_TONE_MODIFIER","applySkinTone","zwjIndex","halt","incrementOrDecrement","decrement","uniqBy","summarizeEmojisForUI","emojiSupportLevel","toSimpleSkinsMap","skin","category","rAF","baselineEmojiWidth","resizeObserverSupported","ResizeObserver","calculateWidth","onUpdate","resizeObserver","contentRect","calculateTextWidth","createRange","selectNode","checkZwjSupport","zwjEmojisToCheck","baselineEmoji","emojiToDomNode","domNode","emojiWidth","supported","uniq","Map_1","get_each_context","get_each_context_1","get_each_context_2","get_each_context_3","get_each_context_4","create_each_block_4","key_1","div","div_id_value","div_class_value","div_aria_selected_value","div_title_value","div_aria_label_value","t_value","new_ctx","create_each_block_3","button_aria_controls_value","button_aria_label_value","button_aria_selected_value","button_title_value","dispose","click_handler","categories","create_else_block_1","img_src_value","ctx2","create_if_block_1","create_each_block_2","button_role_value","button_class_value","button_id_value","select_block_type","current_block_type","if_block","create_each_block_1","div0","div0_id_value","div0_class_value","div1","div1_role_value","div1_aria_labelledby_value","div1_id_value","searchResultsLabel","each_blocks","each_1_lookup","each_value_2","create_else_block","create_if_block","create_each_block","select_block_type_1","create_fragment","section","div4","input_placeholder_value","input_aria_expanded_value","input_aria_activedescendant_value","t0","span0","t1","div2","button0","t2","button0_class_value","div2_class_value","span1","t3","div3","div3_class_value","div3_aria_label_value","div3_aria_activedescendant_value","div3_aria_hidden_value","div5","div5_aria_label_value","div7","div6","div8","t4","div8_class_value","div10","div9","div10_class_value","div10_role_value","div10_aria_label_value","div10_id_value","div11","div11_class_value","div11_aria_label_value","button1","section_aria_label_value","t0_value","searchLabel","t1_value","searchDescription","t3_value","skinToneDescription","each_blocks_3","each0_lookup","each_blocks_2","each1_lookup","each_blocks_1","each2_lookup","each3_lookup","each_value_4","each_value_3","get_key_1","each_value_1","get_key_2","each_value","get_key_3","skinTonesLabel","categoriesLabel","favoritesLabel","regionLabel","$$self","$$invalidate","rootElement","tabpanelElement","skinToneDropdown","skinToneButtonText","pickerStyle","defaultFavoriteEmojis","currentGroup","activeSearchItemId","skinToneEmoji","i18n","database","customCategorySorting","initialLoad","currentEmojis","currentEmojisWithCategories","rawSearchText","searchText","searchMode","activeSearchItem","skinTonePickerExpanded","skinTonePickerExpandedAfterAnimation","currentSkinTone","activeSkinTone","skinToneButtonLabel","currentFavorites","numColumns","isRtl","scrollbarWidth","currentGroupIndex","groups$1","databaseLoaded","focus","getRootNode","fireEvent","bubbles","composed","unicodeWithSkin","currentSkinTone2","labelWithSkin","isSkinToneOption","calculateEmojiGridStyle","newNumColumns","getPropertyValue","newIsRtl","parentWidth","parentElement","newScrollbarWidth","checkZwjSupportAndUpdate","rootNode","isZwjSupported","filterEmojisByVersion","summarizeEmojis","getEmojisByGroup","getEmojisBySearchQuery","onSearchKeydown","goToNextOrPrevious","clickEmoji","onNavClick","onNavKeydown","doFocus","emojiSummary","skinTonedUnicode","onEmojiClick","onSkinToneOptionsClick","onClickSkinToneButton","onSkinToneOptionsKeydown","changeActiveSkinTone","nextSkinTone","onSkinToneOptionsKeyup","onSkinToneOptionsFocusOut","relatedTarget","input_input_handler","div3_binding","$$value","level","emojiUnsupportedMessage","div10_binding","button1_binding","section_binding","$$props2","handleDatabaseLoading","showingLoadingMessage","timeoutHandle","loadingMessage","networkErrorMessage","clearTimeout","updateEmojis","currentSearchText","newEmojis","currentGroupId","updatePreferredSkinTone","skinToneLabel","updateDefaultFavoriteEmojis","updateFavorites","dbFavorites","favorites","scrollTop","calculateCurrentEmojisWithCategories","categoriesToEmoji","Picker","DEFAULT_DATA_SOURCE","DEFAULT_LOCALE","enI18n","activities","objects","symbols","flags","PROPS","PickerElement","_dbFlush","_cmp","observedAttributes","attributeChangedCallback","attrName","_dbCreate","findParentBySelector","customElements","define","_sfc_main$j","emojiOpened","emojiReaction","positionTop","positionRight","emojiDataSource","emojiPickerHeight","emojiPickerTop","emojiPickerRight","addCustomStyling","emojiPicker","picker","nav","searchBox","openEmoji","setEmojiPickerPosition","clientY","innerWidth","innerHeight","mobileSize","roomFooterRef","roomFooterTop","pickerTopPosition","_hoisted_1$j","_sfc_render$j","_component_emoji_picker","EmojiPickerContainer","_sfc_main$i","isImage","isVideo","_hoisted_1$i","_hoisted_2$g","_hoisted_3$d","_hoisted_4$c","_sfc_render$i","localUrl","controls","RoomFile","_sfc_main$h","_hoisted_1$h","_hoisted_2$f","_hoisted_3$c","_sfc_render$h","_component_room_file","onRemoveFile","RoomFiles","_sfc_main$g","percentage","isMouseDown","onMouseDown","seekPos","calculateLineHeadPosition","progress","onMouseMove","onMouseUp","progressWidth","leftPosition","pos","clientX","_hoisted_1$g","_hoisted_2$e","_sfc_render$g","onMousedown","onMouseover","onMouseout","AudioControl","_sfc_main$f","isPlaying","convertTimeMMSS","playedTime","playerUniqId","audioSource","resetProgress","player","updateProgressTime","onTimeUpdate","seconds","playback","pause","play","currentTime","onUpdateProgress","_hoisted_1$f","_hoisted_2$d","_sfc_render$f","_component_audio_control","onChangeLinehead","onHoverAudioProgress","AudioPlayer","_sfc_main$e","messageReply","firstFile","isOtherFile","_hoisted_1$e","_hoisted_2$c","_hoisted_3$b","_hoisted_4$b","_hoisted_5$8","_hoisted_6$4","_hoisted_7$4","_hoisted_8$2","_hoisted_9$2","_hoisted_10$2","_hoisted_11$1","_hoisted_12$1","_sfc_render$e","_component_audio_player","RoomMessageReply","_sfc_main$d","filteredUsersTag","selectItem","activeUpOrDown","activeItem","_hoisted_1$d","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$d","RoomUsersTag","_sfc_main$c","filteredEmojis","_hoisted_1$c","_hoisted_2$a","_sfc_render$c","RoomEmojis","_sfc_main$b","filteredTemplatesText","_hoisted_1$b","_hoisted_2$9","_hoisted_3$9","_hoisted_4$9","_hoisted_5$7","_sfc_render$b","RoomTemplatesText","new_byte$4","Int8Array","new_short","Int16Array","new_int$d","Int32Array","new_float$f","Float32Array","new_double$1","Float64Array","new_float_n$6","sz","A","new_int_n$2","new_short_n$1","new_array_n$1","Arrays$7","toIndex","System$a","srcPos","dest","destPos","srcEnd","out","println","log","printf","Util$5","ShortBlock$3","ordinal","SQRT2","FAST_LOG10","log10","FAST_LOG10_X","y","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float$2","VbrMode$7","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert$b","System","VbrMode","Float","ShortBlock","Util","Arrays","new_array_n","new_byte","new_double","new_float","new_float_n","new_int","new_int_n","new_short_n","assert","System$9","Util$4","Arrays$6","new_float$e","NewMDCT","enwindow","NS","NL","win","tantab_l","Encoder","SHORT_TYPE","cx","ca","cs","window_subband","x1","x1Pos","xr","wp","x2","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","mdct_sub48","gfc","w0","w1","wk","wkPos","ch","channels_out","gr","mode_gr","band","gi","l3_side","tt","mdct_enc","mdct_encPos","samp","sb_sample","sampPos","block_type","band0","band1","mixed_block_flag","amp_filter","work","bd","arraycopy","System$8","new_float$d","new_float_n$5","III_psy_xmin","SBMAX_l","SBMAX_s","iii_psy_xmin","III_psy_ratio","thm","en","MPEGMode","_ordinal","STEREO","JOINT_STEREO","DUAL_CHANNEL","MONO","NOT_SET","System$7","VbrMode$6","new_float$c","new_float_n$4","new_int$c","assert$a","FFTOFFSET","MPG_MD_MS_LR","psy","vbr","qupvt","setModules","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","ATH","useAdjust","loudness_sq","aaSensitivityP","adjustLimit","adj_lim_new","updateStats","bitrate_index","mode_ext","bitrate_stereoMode_Hist","bt","bitrate_blockType_Hist","lame_encode_frame_init","gfp","inbuf","internal_flags","primebuff0","primebuff1","mf_size","BLKSIZE","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","tot_ener","ms_ener_ratio","pe","pe_MS","padding","slot_lag","frac_SpF","out_samplerate","psymodel","bufp","bufpPos","blocktype","VBR","L3psycho_anal_vbr","L3psycho_anal_ns","cod_info","NORM_TYPE","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","analysis","pinfo","ms_ratio","ers","energy","nsPsy","pefirbuf","fircoef","iteration_loop","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","CBANDS","SBPSY_l","SBPSY_s","PSFB21","PSFB12","HBLKSIZE","BLKSIZE_s","HBLKSIZE_s","START_TYPE","STOP_TYPE","MPG_MD_LR_I","MPG_MD_MS_I","Util$3","new_float$b","FFT","window2","window_s","costab","fht","fz","fzPos","k4","fi","tri","k1","k2","k3","kx","f1","f0","f3","f2","g0","g1","g2","g3","rv_tbl","fft_short","x_real","chn","bufPos","fft_long","jj","init_fft","cos","PI","VbrMode$5","Float$1","ShortBlock$2","Util$2","Arrays$5","new_float$a","new_float_n$3","new_int$b","assert$9","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","loudness_power","eql_w","compute_ffts","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","re","im","totalenergy","energy_save","athaa_loudapprox","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","pow","table1","table2","table3","mask_add","m1","m2","kk","shortblock","cb_s","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","sb","sblock","msfix1","mld","mld_l","rmid","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","numlines_s","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","nb_s2","block_type_set","uselongblock","blocktype_d","short_blocks","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","ResvMax","ResvSize","firbuf2","firbufPos","sum1","sum2","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","last_en_subshort","pf","pfPos","pfe","ers_save","attackthre_s","attackthre","lastAttacks","s3ind","eb2","s3_ll","nb_1","nb_2","interChRatio","ATHlower","ppe","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","firbuf","factor","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","sum","norm","s3_func","temp","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","f_tmp","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","ATHformula","decay","exp_nspsytune","frame_duration","ATHtype","freq_inc","eql_balance","ATHcurve","LameGlobalFlags","class_id","num_samples","num_channels","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","findReplayGain","decode_on_the_fly","write_id3tag_automatic","brate","compression_ratio","original","error_protection","strict_ISO","disable_reservoir","quant_comp","quant_comp_short","experimentalY","preset","VBR_q_frac","VBR_q","VBR_mean_bitrate_kbps","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","maskingadjust","maskingadjust_short","ATHonly","ATHshort","noATH","athaa_type","athaa_sensitivity","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","L3Side$1","SFBMAX","new_float$9","new_int$a","GrInfo","l3_enc","scalefac","xrpow_max","part2_3_length","big_values","count1","global_gain","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","part2_length","sfb_lmax","sfb_smin","psy_lmax","sfbmax","psymax","sfbdivide","count1bits","sfb_partition_table","slen","max_nonzero_coeff","clone_int","clone_float","other","new_int$9","IIISideInfo","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","System$6","new_int$8","ScaleFac","arrL","arrS","arr21","arr12","psfb21","psfb12","new_float$8","new_float_n$2","new_int$7","NsPsy","longfact","shortfact","VBRSeekInfo","want","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","new_byte$3","new_float$7","new_float_n$1","new_int$6","new_int_n$1","LameInternalFlags$1","MAX_HEADER_LEN","Header","write_timing","Class_ID","iteration_init_init","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping","noise_shaping_amp","substep_shaping","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","nMusicCRC","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sideinfo_len","header","MAX_HEADER_BUF","h_ptr","w_ptr","ancillary_flag","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","VBR_seek_table","nogap_total","nogap_current","findPeakSample","PeakSample","RadioGain","AudiophileGain","rgdata","noclipGainChange","noclipScale","hip","in_buffer_nsamples","in_buffer_0","in_buffer_1","MAX_BITS_PER_CHANNEL","MAX_BITS_PER_GRANULE","new_float$6","System$5","Arrays$4","GainAnalysis$1","PINK_REF","RMS_PERCENTILE","RMS_WINDOW_TIME_NUMERATOR","RMS_WINDOW_TIME_DENOMINATOR","ABYule","ABButter","filterYule","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","analyzeResult","Array2","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","B","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","ival","GetTitleGain","retval","MAX_dB","YULE_ORDER","MAX_SAMP_FREQ","MAX_SAMPLES_PER_WINDOW","new_float$5","new_int$5","ReplayGain","freqindex","MeanBits$1","meanBits","bits","new_float$4","new_int$4","assert$8","CBRNewIterationLoop","_quantize","quantize","max_bits","l3_xmin","xrpow","targ_bits","mean_bits","mb","rv","ResvFrameBegin","on_pe","ms_convert","reduce_side","masking_lower_db","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","ResvFrameEnd","HuffCodeTab","hl","xlen","linmax","hlen","Tables$1","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","VbrMode$4","Util$1","new_float$3","new_int$3","assert$7","QuantizePVT","tak","POW20","pow20","Q_MAX2","_tk","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","Q_MAX","NSATHSCALE","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","bass","alto","treble","sfb21","huffman_init","cbr","tbits","add_bits","extra_bits","ResvMaxBits","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","ATH2","enable_athaa_fix","xmin","rh1","rh2","en0","xa","xb","max_nonzero","BitStream$1","EQ","tmpATH","calc_noise_core","startline","step","noise","ix","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","max_noise","scalefacPos","over_SSD","noise_log","usefullsize","sl","over_count","tot_noise","over_noise","set_pinfo","sfb2","en1","ifqstep","L3Side","xfsf","CalcNoiseResult","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","LARGE_BITS","System$4","Arrays$3","new_int$2","assert$6","Takehiro","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","sfb_count1","ix_max","endPos","max1","max2","count_bit_ESC","linbits","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","r2t","noquant_count_bits","best_huffman_divide","count_bits","gain","roundfac","slen1_n","slen2_n","slen1_tab","slen2_tab","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen1","slen2","slen3","slen4","log2tab","bv_index","scfb_anz","System$3","Arrays$2","new_byte$2","new_int$1","assert$5","CRC16_POLYNOMIAL","ga","mpg","ver","_ga","_mpg","_ver","totbit","bufByteIdx","bufBitIdx","putheader_bits","putbits2","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","writeheader","CRC_update","crc","encodeSideInfo2","bitsPerFrame","CRC_writeheader","old","huffman_coder_count1","huffbits","Huffmancode","tableindex","cbits","xbits","ext","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","sfb_partition","scale_bits","sfbs","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","getframebits","bit_rate","byte","flush_bitstream","NEQ","GainAnalysis","add_dummy_byte","bufferPos","mp3data","minimum","updateMusicCRC","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","init_bit_stream_w","Lame$1","LAME_MAXMP3BUFFER","System$2","VbrMode$3","ShortBlock$1","new_float$2","assert$4","LAME_MAXALBUMART","V9","V8","V7","V6","V5","V4","V3","V2","V1","V0","R3MIX","STANDARD","EXTREME","INSANE","STANDARD_FAST","EXTREME_FAST","MEDIUM","MEDIUM_FAST","qu","id3","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","enc","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","samplerate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","nearestBitrateFullIndex","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","io","numUsed","lame_init","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","lame_init_params","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","apply_preset","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","lame_encode_flush","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","lame_encode_buffer","id3tag_write_v1","VbrMode$2","Presets","VBRPresets","qual","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","fix","vbr_q","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","sc","mask","interCh","sfScale","nsmsfix","nsbass","sfscale","lame","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","vbr_preset","q","lame_set_VBR_q","abr_switch_map","apply_abr_preset","actual_bitrate","VBRQuantize","CalcNoiseResult$1","new_float$1","CalcNoiseData","System$1","VbrMode$1","Arrays$1","assert$3","Quantize","tk","init_xrpow_core","psfb21_analogsilence","ath21","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","BitStream","amp_scalefac_bands","bRefine","ifqstep34","trigger2","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","ixwork","trancate_smallspectrums","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","ResvAdjust","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","LameInternalFlags","get_framebits","frameBits","MeanBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","assert$2","Reservoir","maxmp3buf","frameLength","resvLimit","fullFrameBits","resvsize","over_bits","stuffingBits","mdb_bytes","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","new_byte$1","assert$1","VBRTag","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","v2","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","Tables","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","Lame","streamIndex","streamSize","putVbrTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder$1","channels","gaud","maxSamples","encodeBuffer","_sz","subarray","fourccToInt","fourcc","Mp3Encoder","bitRate","sampleRate","dataBuffer","encoder","arrayBuffer","samples","_convertBuffer","finish","blob","Blob","URL","createObjectURL","_floatTo16BitPCM","Recorder","beforeRecording","pauseRecording","afterRecording","micFailed","encoderOptions","bufferSize","records","isPause","isRecording","volume","_duration","constraints","video","audio","channelCount","echoCancellation","mediaDevices","getUserMedia","_micCaptured","_micError","lameEncoder","getTracks","track2","processor","record","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","sample","inputBuffer","getChannelData","toFixed","connect","isChromium","chrome","winNav","vendorName","vendor","isOpera","opr","isIEedge","isIOSChrome","detectChrome","detectMobile","getUserAgent","userAgentPart","opera","_sfc_main$a","roomMessage","showSendIcon","showFiles","showAudio","showEmojis","showFooter","acceptedFiles","multipleFiles","captureFiles","textareaActionEnabled","textareaAutoFocus","userTagsEnabled","emojisSuggestionEnabled","templatesText","audioBitRate","audioSampleRate","initReplyMessage","initEditMessage","droppedFiles","editedMessage","cursorRangePosition","fileDialog","selectUsersTagItem","selectEmojiItem","selectTemplatesTextItem","format","activeUpOrDownEmojis","activeUpOrDownUsersTag","activeUpOrDownTemplatesText","emojisDB","keepKeyboardOpen","selectedUsersTag","recorder","initRecorder","isMessageEmpty","isFileLoading","recordedTime","shadowFooter","resetMessage","onChangeInput","getTextareaRef","replyMessage","editMessage","onFileChange","isComposed","isComposing","updateFooterLists","resetFooterList","stopRecorder","roomTextarea","focusTextarea","disableMobileFocus","setSelectionRange","resizeTextarea","scrollHeight","escapeTextarea","onPasteImage","pasteEvent","clipboardData","getAsFile","updateActiveUpOrDown","direction","selectEmoji","position","getCharPosition","selectTemplateText","addEmoji","launchFilePicker","click","fileURL","typeIndex","blobFile","loadedFile","file2","removeFile","toggleRecorder","recording","textareaActionHandler","newContent","usersTag","messageContent","initialContent","firstTag","secondTag","usertags","matchAll","selectUserTag","updateFooterList","tagChar","textareaCursorPosition","selectionStart","beforeTag","notLetterNumber","updateShowUsersTag","updateShowTemplatesText","editMode","cursorPosition","selectionEnd","initRoom","resetTextareaSize","preventKeyboardFromClosing","_hoisted_1$a","_hoisted_2$8","_hoisted_3$8","_hoisted_4$8","_hoisted_5$6","_hoisted_6$3","_hoisted_7$3","_sfc_render$a","_component_room_emojis","_component_room_users_tag","_component_room_templates_text","_component_room_message_reply","_component_room_files","_component_emoji_picker_container","onSelectEmoji","onActivateItem","onSelectUserTag","onSelectTemplateText","onResetMessage","onKeydown","onPaste","onAddEmoji","onOpenEmoji","accept","onChange","RoomFooter","_sfc_main$9","roomUsers","replyUsername","replyUser","_hoisted_1$9","_hoisted_2$7","_hoisted_3$7","_hoisted_4$7","_hoisted_5$5","_hoisted_6$2","_hoisted_7$2","_hoisted_8$1","_hoisted_9$1","_hoisted_10$1","_sfc_render$9","onUpdateProgressTime","progressTime","hoverAudioProgress","MessageReply","_sfc_main$8","radius","stroke","normalizedRadius","circumference","strokeDashoffset","_hoisted_1$8","_hoisted_2$6","_hoisted_3$6","_hoisted_4$6","_hoisted_5$4","_sfc_render$8","strokeLinecap","cy","ProgressBar","_sfc_main$7","imageResponsive","imageLoading","imageHover","isImageLoading","checkImgLoad","maxHeight","clientWidth","loaderTop","clientHeight","openFile","_hoisted_1$7","_hoisted_2$5","_hoisted_3$5","_hoisted_4$5","_sfc_render$7","_component_progress_bar","onMouseleave","preview","MessageFile","_sfc_main$6","imageVideoFiles","otherFiles","_hoisted_1$6","_hoisted_2$4","_hoisted_3$4","_hoisted_4$4","_hoisted_5$3","_sfc_render$6","_component_message_file","onOpenFile","onOpenUserTag","MessageFiles","_sfc_main$5","messageActions","showReactionEmojis","messageHover","hoverMessageId","menuOptionsTop","optionsOpened","optionsClosing","isMessageActions","filteredMessageActions","disableActions","isMessageReactions","disableReactions","onlyMe","openOptions","menuOptions","actionIcon","actionIconTop","optionsTopPosition","closeOptions","updateMessageHover","closeEmoji","messageActionHandler","sendMessageReaction","reaction","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$5","MessageActions","_sfc_main$4","_hoisted_1$4","_sfc_render$4","reactions","MessageReactions","roomsValidation","roomsValidate","validate","obj2","validType","checkObjectValid","partcipantsValidation","participantsValidate","messagesValidation","messagesValidate","_sfc_main$3","editedMessageId","newMessages","showNewMessagesDivider","usernameOptions","selectedMessages","newMessage","showUsername","currentUser","minUsers","showDate","date","messageOffset","isMessageHover","isCheckmarkVisible","hasCurrentUserAvatar","hasSenderUserAvatar","isMessageSelected","resetMessageHover","onHoverMessage","canEditMessage","onLeaveMessage","openUserTag","selectMessage","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_hoisted_5$2","_hoisted_6$1","_hoisted_7$1","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_sfc_render$3","_component_message_reply","_component_message_files","_component_message_actions","_component_message_reactions","system","edited","onUpdateMessageHover","onUpdateOptionsOpened","onUpdateEmojiOpened","onMessageActionHandler","onSendMessageReaction","failure","RoomMessage","_sfc_main$2","loadFirstRoom","autoScroll","loadingMessages","loadingMoreMessages","scrollIcon","scrollMessagesCount","showNoMessages","showNoRoom","noRoomSelected","updateLoadingMessages","showMessagesStarted","onRoomChanged","loadMoreMessages","preventTopScroll","scrollContainer","prevScrollHeight","scrollTo","touchStart","touchEvent","changedTouches","posXStart","posYStart","touchEvent2","touchEnd","posXEnd","posYEnd","swippedRight","swippedVertically","resetMessageSelection","unselectMessage","onMessageAdded","autoScrollOffset","scrolledUp","getBottomScroll","newAfterScrollUp","scrollToBottom","receive","onContainerScroll","bottomScroll","messageReaction","behavior","onDropFiles","dataTransfer","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_hoisted_6","_hoisted_7","_sfc_render$2","_component_room_header","_component_room_message","_component_room_footer","onDrop","onDragenter","onDragover","onDragleave","onTouchstart","onToggleRoomsList","onRoomInfo","onMenuActionHandler","onMessageSelectionActionHandler","onCancelMessageSelection","onScroll","indexId","onOpenFailedMessage","onSelectMessage","onUnselectMessage","onUpdateEditedMessageId","onEditMessage","onTypingMessage","onTextareaActionHandler","Room","_sfc_main$1","modal","closeModal","_hoisted_1$1","_hoisted_2","_hoisted_3","autoplay","_hoisted_4","_hoisted_5","_sfc_render$1","tabindex","MediaPreview","locales","defaultThemeStyles","light","general","colorButtonClear","colorButton","backgroundColorButton","backgroundInput","colorPlaceholder","colorCaret","colorSpinner","borderStyle","backgroundScrollIcon","border","borderRadius","boxShadow","background","colorRoomName","colorRoomInfo","footer","borderStyleInput","borderInputSelected","backgroundReply","backgroundTagActive","backgroundTag","sidemenu","backgroundHover","backgroundActive","colorActive","borderColorSearch","backgroundMe","colorStarted","backgroundDeleted","backgroundSelected","colorDeleted","colorUsername","colorTimestamp","backgroundDate","colorDate","backgroundSystem","colorSystem","backgroundMedia","colorReplyUsername","colorReply","colorTag","backgroundImage","colorNewMessages","backgroundScrollCounter","colorScrollCounter","backgroundReaction","borderStyleReaction","backgroundReactionHover","borderStyleReactionHover","colorReactionCounter","backgroundReactionMe","borderStyleReactionMe","backgroundReactionHoverMe","borderStyleReactionHoverMe","colorReactionCounterMe","backgroundAudioRecord","backgroundAudioLine","backgroundAudioProgress","backgroundAudioProgressSelector","colorFileExtension","colorMulti","colorMessage","colorStateOnline","colorStateOffline","backgroundCounterBadge","colorCounterBadge","icons","closeImage","closeOutline","closePreview","sendDisabled","checkmarkSeen","dropdownMessage","dropdownMessageBackground","dropdownRoom","dropdownScroll","audioPlay","audioPause","audioCancel","audioConfirm","dark","cssThemeVars","_style_0","_sfc_main","theme","responsiveBreakpoint","roomsListOpened","roomsOrder","mediaPreviewEnabled","showMediaPreview","previewFile","textMessagesCasted","cssVars","defaultStyles","customStyles","stylesCasted","orderedRooms","roomsCasted","aVal","bVal","singleRoomCasted","castBoolean","roomsListOpenedCasted","loadingRoomsCasted","roomsLoadedCasted","loadFirstRoomCasted","messagesLoadedCasted","multipleFilesCasted","showSearchCasted","showAddRoomCasted","showSendIconCasted","showFilesCasted","showAudioCasted","showEmojisCasted","showReactionEmojisCasted","showNewMessagesDividerCasted","showFooterCasted","roomInfoEnabledCasted","textareaActionEnabledCasted","textareaAutoFocusCasted","userTagsEnabledCasted","emojisSuggestionEnabledCasted","mediaPreviewEnabledCasted","castArray","messagesCasted","roomActionsCasted","menuActionsCasted","messageActionsCasted","messageSelectionActionsCasted","templatesTextCasted","castObject","autoScrollCasted","textFormattingCasted","linkOptionsCasted","usernameOptionsCasted","fetchRoom","updateResponsive","isTrusted","toggleRoomsList","opened","fetchMessages","fetchMoreRooms","roomInfo","addRoom","deleteMessage","openFailedMessage","typingMessage","_sfc_render","_component_rooms_list","_component_room","_component_media_preview","onFetchRoom","onFetchMoreRooms","onLoadingMoreRooms","onFetchMessages","onDeleteMessage","onCloseMediaPreview","ChatWindow","VueAdvancedChat","PACKAGE_NAME","socket","roomInfoStr","roomInfoElm","room_name","room_title","user_id","WebSocket","onmessage","replyTo","__exports__","_withScopeId","_pushScopeId","_popScopeId","_createElementVNode","_component_notification_message","_resolveComponent","onFocus","onFocusout","numberOfUnread","_toDisplayString","_createCommentVNode","_Fragment","_renderList","_createBlock","viewed","onMouseup","_withModifiers","onMiddleClick","_normalizeClass","unviewed","relativeCreationDate","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","requiredArgs","toDate","argStr","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","era","quarter","month","day","dayPeriod","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","toInteger","addMilliseconds","dirtyAmount","amount","subMilliseconds","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCDate","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","formatters","signedYear","M","getUTCMonth","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","dayPeriodEnum","G","unit","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","Q","L","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","K","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","dirtyBaseDate","baseDate","_ref","_ref$locale","_ref$weekStartsOn","utcBaseDate","form","suffix","feminineUnits","creationDate","setAsViewed","fr","NotificationMessage","PlayerState","_typeof","_defineProperty","ENABLE_DEBUG","Logger","debug","VideoPlayer","videoPlayerConfig","videoId","loop","_startSeconds","startSeconds","videoPlayerArea","videoElement","videoState","LOADING","setupVideoElement","onStateChange","PLAYING","PAUSE","onSeeking","onReady","UNSTARTED","ENDED","BUFFERING","timeTo","getPlayedTime","statesToPropagate","changeState","initialSrc","videojs","setControls","setMain","_swap","videoPlayer","nodeA","nodeB","parentA","parentB","siblingA","thisControls","thisMain","getDuration","getPlayLength","getCurrentTime","isEnded","validStates","LOADED","isValidState","currentState","nextState","stateOuts","SyncVideoPlayer","area","videoPlayers","readyCount","$container","addVideoPlayers","areaEl","mainVideoPlayer","vp","moveStateTo","success","fail","oldState","fixVideoStates","addVideoPlayer","videoInstance","swapVideo","index1","index2","_defineComponent","__props","ids","syncVideoPlayer","resizeVideoContainers","mainVideoContainer","mainVideoHeight","thumbnailsVideos","thumbnailsVideoHeight","onPlay","onPause","onAdd","mainVideo","ChatComponent","NotificationsBell","VideoComponent"],"sourceRoot":""}
\ No newline at end of file
index 65af2174ba628f9dde4125f94ac48c1e4a9525d3..b094bdc56da35e075d45ffb9d148a2469231d72d 100644 (file)
@@ -88,6 +88,8 @@ $(document).ready(function(){
 <div class="media">
 
 {% if "video" in media.mime_type %}
+
+<div id="multivideo"></div>
 <div class="video">
     <link href="https://vjs.zencdn.net/7.11.4/video-js.css" rel="stylesheet" />
     <link href="https://unpkg.com/@videojs/themes@1/dist/fantasy/index.css" rel="stylesheet">
index 73930a2f0682f1261ecd6d7a599905e97aa8499b..49d72c2c7ddf8b9358267a92dcdadfe072ba2b66 100644 (file)
@@ -443,7 +443,7 @@ def chat_room(context, period=None, course=None):
         'data': {
             'room_name': room_name,
             'room_title': room_title,
-            'user_id': context.request.user.id
+            'user_id': str(context.request.user.id)
         }
     }